diff --git a/minetestforfun_game/.gitignore b/minetestforfun_game/.gitignore new file mode 100755 index 00000000..a57dbc90 --- /dev/null +++ b/minetestforfun_game/.gitignore @@ -0,0 +1,7 @@ +## Generic ignorable patterns and files +*~ +.*.swp +*bak* +tags +*.vim + diff --git a/minetestforfun_game/README.txt b/minetestforfun_game/README.txt new file mode 100755 index 00000000..9456f815 --- /dev/null +++ b/minetestforfun_game/README.txt @@ -0,0 +1,52 @@ +The main game for the Minetest game engine [minetest_game] +========================================================== + +To use this game with Minetest, insert this repository as + /games/minetest_game +in the Minetest Engine. + +The Minetest Engine can be found in: + https://github.com/minetest/minetest/ + +Compatibility +-------------- +The minetest_game github master HEAD is generally compatible with the github +master HEAD of minetest. + +Additionally, when the minetest engine is tagged to be a certain version (eg. +0.4.10), minetest_game is tagged with the version too. + +When stable releases are made, minetest_game is packaged and made available in + http://minetest.net/download.php +and in case the repository has grown too much, it may be reset. In that sense, +this is not a "real" git repository. (Package maintainers please note!) + +License of source code +---------------------- +Copyright (C) 2010-2012 celeron55, Perttu Ahola +See README.txt in each mod directory for information about other authors. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +License of media (textures and sounds) +-------------------------------------- +Copyright (C) 2010-2012 celeron55, Perttu Ahola +See README.txt in each mod directory for information about other authors. + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + +License of menu/header.png +Copyright (C) 2013 BlockMen CC BY-3.0 diff --git a/minetestforfun_game/game.conf b/minetestforfun_game/game.conf new file mode 100755 index 00000000..e14369b2 --- /dev/null +++ b/minetestforfun_game/game.conf @@ -0,0 +1 @@ +name = minetestforfun_game diff --git a/minetestforfun_game/game_api.txt b/minetestforfun_game/game_api.txt new file mode 100755 index 00000000..3d9d7a59 --- /dev/null +++ b/minetestforfun_game/game_api.txt @@ -0,0 +1,199 @@ +minetest_game API +====================== +GitHub Repo: https://github.com/minetest/minetest_game + +Introduction +------------ +The minetest_game gamemode offers multiple new possibilities in addition to Minetest's built-in API, allowing you to +add new plants to farming mod, buckets for new liquids, new stairs and custom panes. +For information on the Minetest API, visit https://github.com/minetest/minetest/blob/master/doc/lua_api.txt +Please note: + [XYZ] refers to a section the Minetest API + [#ABC] refers to a section in this document + ^ Explanation for line above + +Bucket API +---------- +The bucket API allows registering new types of buckets for non-default liquids. + + bucket.register_liquid( + "default:lava_source", -- Source node name + "default:lava_flowing", -- Flowing node name + "bucket:bucket_lava", -- Name to be used for bucket + "bucket_lava.png", -- Bucket texture (for wielditem and inventory_image) + "Lava Bucket" -- Bucket description + ) + +Doors API +--------- +The doors mod allows modders to register custom doors. + + doors.register_door(name, def) + ^ name: "Door name" + ^ def: See [#Door definition] + +#Door definition +---------------- +{ + description = "Door description", + inventory_image = "mod_door_inv.png", + groups = {group = 1}, + tiles_bottom: [Tile definition], + ^ the tiles of the bottom part of the door {front, side} + tiles_top: [Tile definition], + ^ the tiles of the bottom part of the door {front, side} + node_box_bottom = regular nodebox, see [Node boxes], OPTIONAL, + node_box_top = regular nodebox, see [Node boxes], OPTIONAL, + selection_box_bottom = regular nodebox, see [Node boxes], OPTIONAL, + selection_box_top = regular nodebox, see [Node boxes], OPTIONAL, + only_placer_can_open = true/false, + ^ If true, only placer can open the door (locked for others) +} + +Farming API +----------- +The farming API allows you to easily register plants and hoes. + +farming.register_hoe(name, hoe definition) + -> Register a new hoe, see [#hoe definition] + +farming.register_plant(name, Plant definition) + -> Register a new growing plant, see [#Plant definition] + +#Hoe Definition +--------------- +{ + description = "", -- Description for tooltip + inventory_image = "unknown_item.png", -- Image to be used as wield- and inventory image + max_uses = 30, -- Uses until destroyed + recipe = { -- Craft recipe + {"air", "air", "air"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +} + +#Plant definition +----------------- +{ + description = "", -- Description of seed item + inventory_image = "unknown_item.png", -- Image to be used as seed's wield- and inventory image + steps = 8, -- How many steps the plant has to grow, until it can be harvested + ^ Always provide a plant texture for ech step, format: modname_plantname_i.png (i = stepnumber) + minlight = 13, -- Minimum light to grow + maxlight = LIGHT_MAX -- Maximum light to grow +} + +Stairs API +---------- +The stairs API lets you register stairs and slabs and ensures that they are registered the same way as those +delivered with minetest_game, to keep them compatible with other mods. + +stairs.register_stair(subname, recipeitem, groups, images, description, sounds) + -> Registers a stair. + -> subname: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_subname" + -> recipeitem: Item used in the craft recipe, e.g. "default:cobble" + -> groups: see [Known damage and digging time defining groups] + -> images: see [Tile definition] + -> description: used for the description field in the stair's definition + -> sounds: see [#Default sounds] + +stairs.register_slab(subname, recipeitem, groups, images, description, sounds) + -> Registers a slabs + -> subname: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_subname" + -> recipeitem: Item used in the craft recipe, e.g. "default:cobble" + -> groups: see [Known damage and digging time defining groups] + -> images: see [Tile definition] + -> description: used for the description field in the stair's definition + -> sounds: see [#Default sounds] + +stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab, sounds) + -> A wrapper for stairs.register_stair and stairs.register_slab + -> Uses almost the same arguments as stairs.register_stair + -> desc_stair: Description for stair node + -> desc_slab: Description for slab node + +Xpanes API +---------- +Creates panes that automatically connect to each other + +xpanes.register_pane(subname, def) + -> subname: used for nodename. Result: "xpanes:subname_{1..16}" + -> def: See [#Pane definition] + +#Pane definition +---------------- +{ + textures = {"texture_Bottom_top", "texture_left_right", "texture_front_back"}, + ^ More tiles aren't supported + groups = {group = rating}, + ^ Uses the known node groups, see [Known damage and digging time defining groups] + sounds = SoundSpec, + ^ See [#Default sounds] + recipe = {{"","","","","","","","",""}}, + ^ Recipe field only + on_construct = function(pos) + update_pane(pos, "pane") + end, + ^ Required to handle rotation correctly +} + +Default sounds +-------------- +Sounds inside the default table can be used within the sounds field of node definitions. + +default.node_sound_defaults() +default.node_sound_stone_defaults() +default.node_sound_dirt_defaults() +default.node_sound_sand_defaults() +default.node_sound_wood_defaults() +default.node_sound_leaves_defaults() +default.node_sound_glass_defaults() + +Player API +---------- +The player API can register player models and update the player's appearence + +default.player_register_model(name, def) +^ Register a new model to be used by players. + -> name: model filename such as "character.x", "foo.b3d", etc. + -> def: See [#Model definition] + +default.registered_player_models[name] +^ Get a model's definition + -> see [#Model definition] + +default.player_set_model(player, model_name) +^ Change a player's model + -> player: PlayerRef + -> model_name: model registered with player_register_model() + +default.player_set_animation(player, anim_name [, speed]) +^ Applies an animation to a player + -> anim_name: name of the animation. + -> speed: frames per second. If nil, default from the model is used + +default.player_set_textures(player, textures) +^ Sets player textures + -> player: PlayerRef + -> textures: array of textures + ^ If is nil, the default textures from the model def are used + +default.player_get_animation(player) +^ Returns a table containing fields "model", "textures" and "animation". +^ Any of the fields of the returned table may be nil. + -> player: PlayerRef + +Model Definition +---------------- +{ + animation_speed = 30, -- Default animation speed, in FPS. + textures = {"character.png", }, -- Default array of textures. + visual_size = {x=1, y=1,}, -- Used to scale the model. + animations = { + -- = { x=, y=, }, + foo = { x= 0, y=19, }, + bar = { x=20, y=39, }, + -- ... + }, +} diff --git a/minetestforfun_game/menu/header.png b/minetestforfun_game/menu/header.png new file mode 100755 index 00000000..c22192d0 Binary files /dev/null and b/minetestforfun_game/menu/header.png differ diff --git a/minetestforfun_game/menu/icon.png b/minetestforfun_game/menu/icon.png new file mode 100755 index 00000000..410989eb Binary files /dev/null and b/minetestforfun_game/menu/icon.png differ diff --git a/minetestforfun_game/minetest.conf b/minetestforfun_game/minetest.conf new file mode 100755 index 00000000..3fb76797 --- /dev/null +++ b/minetestforfun_game/minetest.conf @@ -0,0 +1,5 @@ +mgv6_spflags = biomeblend, jungles + +movement_liquid_sink = 25 +movement_liquid_fluidity = 0.8 +movement_liquid_fluidity_smooth = 2 diff --git a/minetestforfun_game/mods/.farming/API.txt b/minetestforfun_game/mods/.farming/API.txt new file mode 100644 index 00000000..a2f3d9d6 --- /dev/null +++ b/minetestforfun_game/mods/.farming/API.txt @@ -0,0 +1,27 @@ +farming.register_hoe(name, hoe definition) + -> Register a new hoe, see [hoe definition] + +farming.register_plant(name, Plant definition) + -> Register a new growing plant, see [Plant definition] + +Hoe Definition +{ + description = "", -- Description for tooltip + inventory_image = "unknown_item.png", -- Image to be used as wield- and inventory image + max_uses = 30, -- Uses until destroyed + recipe = { -- Craft recipe + {"air", "air", "air"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +} + +Plant definition +{ + description = "", -- Description of seed item + inventory_image = "unknown_item.png", -- Image to be used as seed's wield- and inventory image + steps = 8, -- How many steps the plant has to grow, until it can be harvested + ^ Always provide a plant texture for ech step, format: modname_plantname_i.png (i = stepnumber) + minlight = 13, -- Minimum light to grow + maxlight = LIGHT_MAX -- Maximum light to grow +} \ No newline at end of file diff --git a/minetestforfun_game/mods/.farming/README.txt b/minetestforfun_game/mods/.farming/README.txt new file mode 100644 index 00000000..4663181a --- /dev/null +++ b/minetestforfun_game/mods/.farming/README.txt @@ -0,0 +1,59 @@ +Minetest 0.4 mod: farming +========================= + +License of source code: +----------------------- +Copyright (C) 2014 webdesigner97 + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2004 Sam Hocevar + + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. + +License of media (textures): +---------------------------- +Created by PilzAdam (License: WTFPL): + farming_bread.png + farming_soil.png + farming_soil_wet.png + farming_soil_wet_side.png + farming_string.png + +Created by BlockMen (License: CC BY 3.0): + farming_tool_diamondhoe.png + farming_tool_mesehoe.png + farming_tool_bronzehoe.png + farming_tool_steelhoe.png + farming_tool_stonehoe.png + farming_tool_woodhoe.png + +Created by VanessaE (License: WTFPL): + farming_cotton_seed.png + farming_wheat_seed.png + farming_flour.png + farming_wheat.png + farming_wheat_1.png + farming_wheat_2.png + farming_wheat_3.png + farming_wheat_4.png + farming_wheat_5.png + farming_wheat_5.png + farming_wheat_7.png + farming_wheat_8.png + farming_cotton_1.png + farming_cotton_2.png + farming_cotton_3.png + farming_cotton_4.png + farming_cotton_5.png + farming_cotton_6.png + farming_cotton_7.png + farming_cotton_8.png diff --git a/minetestforfun_game/mods/.farming/api.lua b/minetestforfun_game/mods/.farming/api.lua new file mode 100644 index 00000000..6ce996d8 --- /dev/null +++ b/minetestforfun_game/mods/.farming/api.lua @@ -0,0 +1,284 @@ +-- Wear out hoes, place soil +-- TODO Ignore group:flower +farming.hoe_on_use = function(itemstack, user, pointed_thing, uses) + local pt = pointed_thing + -- check if pointing at a node + if not pt then + return + end + if pt.type ~= "node" then + return + end + + local under = minetest.get_node(pt.under) + local p = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z} + local above = minetest.get_node(p) + + -- return if any of the nodes is not registered + if not minetest.registered_nodes[under.name] then + return + end + if not minetest.registered_nodes[above.name] then + return + end + + -- check if the node above the pointed thing is air + if above.name ~= "air" then + return + end + + -- check if pointing at soil + if minetest.get_item_group(under.name, "soil") ~= 1 then + return + end + + -- check if (wet) soil defined + local regN = minetest.registered_nodes + if regN[under.name].soil == nil or regN[under.name].soil.wet == nil or regN[under.name].soil.dry == nil then + return + end + + -- turn the node into soil, wear out item and play sound + minetest.set_node(pt.under, {name = regN[under.name].soil.dry}) + minetest.sound_play("default_dig_crumbly", { + pos = pt.under, + gain = 0.5, + }) + + if not minetest.setting_getbool("creative_mode") then + itemstack:add_wear(65535/(uses-1)) + end + return itemstack +end + +-- Register new hoes +farming.register_hoe = function(name, def) + -- Check for : prefix (register new hoes in your mod's namespace) + if name:sub(1,1) ~= ":" then + name = ":" .. name + end + -- Check def table + if def.description == nil then + def.description = "Hoe" + end + if def.inventory_image == nil then + def.inventory_image = "unknown_item.png" + end + if def.recipe == nil then + def.recipe = { + {"air","air",""}, + {"","group:stick",""}, + {"","group:stick",""} + } + end + if def.max_uses == nil then + def.max_uses = 30 + end + -- Register the tool + minetest.register_tool(name, { + description = def.description, + inventory_image = def.inventory_image, + on_use = function(itemstack, user, pointed_thing) + return farming.hoe_on_use(itemstack, user, pointed_thing, def.max_uses) + end + }) + -- Register its recipe + minetest.register_craft({ + output = name:gsub(":", "", 1), + recipe = def.recipe + }) +end + +-- Seed placement +farming.place_seed = function(itemstack, placer, pointed_thing, plantname) + local pt = pointed_thing + -- check if pointing at a node + if not pt then + return + end + if pt.type ~= "node" then + return + end + + local under = minetest.get_node(pt.under) + local above = minetest.get_node(pt.above) + + -- return if any of the nodes is not registered + if not minetest.registered_nodes[under.name] then + return + end + if not minetest.registered_nodes[above.name] then + return + end + + -- check if pointing at the top of the node + if pt.above.y ~= pt.under.y+1 then + return + end + + -- check if you can replace the node above the pointed node + if not minetest.registered_nodes[above.name].buildable_to then + return + end + + -- check if pointing at soil + if minetest.get_item_group(under.name, "soil") < 2 then + return + end + + -- add the node and remove 1 item from the itemstack + minetest.add_node(pt.above, {name = plantname, param2 = 1}) + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack +end + +-- Register plants +farming.register_plant = function(name, def) + local mname = name:split(":")[1] + local pname = name:split(":")[2] + + -- Check def table + if not def.description then + def.description = "Seed" + end + if not def.inventory_image then + def.inventory_image = "unknown_item.png" + end + if not def.steps then + return nil + end + if not def.minlight then + def.minlight = 1 + end + if not def.maxlight then + def.maxlight = 14 + end + if not def.fertility then + def.fertility = {} + end + + -- Register seed + local g = {seed = 1, snappy = 3, attached_node = 1} + for k, v in pairs(def.fertility) do + g[v] = 1 + end + minetest.register_node(":" .. mname .. ":seed_" .. pname, { + description = def.description, + tiles = {def.inventory_image}, + inventory_image = def.inventory_image, + wield_image = def.inventory_image, + drawtype = "signlike", + groups = g, + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + sunlight_propagates = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, + }, + fertility = def.fertility, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, mname .. ":seed_" .. pname) + end + }) + + -- Register harvest + minetest.register_craftitem(":" .. mname .. ":" .. pname, { + description = pname:gsub("^%l", string.upper), + inventory_image = mname .. "_" .. pname .. ".png", + }) + + -- Register growing steps + for i=1,def.steps do + local drop = { + items = { + {items = {mname .. ":" .. pname}, rarity = 9 - i}, + {items = {mname .. ":" .. pname}, rarity= 18 - i * 2}, + {items = {mname .. ":seed_" .. pname}, rarity = 9 - i}, + {items = {mname .. ":seed_" .. pname}, rarity = 18 - i * 2}, + } + } + local nodegroups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1} + nodegroups[pname] = i + minetest.register_node(mname .. ":" .. pname .. "_" .. i, { + drawtype = "plantlike", + waving = 1, + tiles = {mname .. "_" .. pname .. "_" .. i .. ".png"}, + paramtype = "light", + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = drop, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, + }, + groups = nodegroups, + sounds = default.node_sound_leaves_defaults(), + }) + end + + -- Growing ABM + minetest.register_abm({ + nodenames = {"group:" .. pname, "group:seed"}, + neighbors = {"group:soil"}, + interval = 90, + chance = 2, + action = function(pos, node) + local plant_height = minetest.get_item_group(node.name, pname) + + -- return if already full grown + if plant_height == def.steps then + return + end + + local node_def = minetest.registered_items[node.name] or nil + + -- grow seed + if minetest.get_item_group(node.name, "seed") and node_def.fertility then + local can_grow = false + local soil_node = minetest.get_node_or_nil({x = pos.x, y = pos.y - 1, z = pos.z}) + if not soil_node then + return + end + for _, v in pairs(node_def.fertility) do + if minetest.get_item_group(soil_node.name, v) ~= 0 then + can_grow = true + end + end + if can_grow then + minetest.set_node(pos, {name = node.name:gsub("seed_", "") .. "_1"}) + end + return + end + + -- check if on wet soil + pos.y = pos.y - 1 + local n = minetest.get_node(pos) + if minetest.get_item_group(n.name, "soil") < 3 then + return + end + pos.y = pos.y + 1 + + -- check light + local ll = minetest.get_node_light(pos) + + if not ll or ll < def.minlight or ll > def.maxlight then + return + end + + -- grow + minetest.set_node(pos, {name = mname .. ":" .. pname .. "_" .. plant_height + 1}) + end + }) + + -- Return + local r = { + seed = mname .. ":seed_" .. pname, + harvest = mname .. ":" .. pname + } + return r +end diff --git a/minetestforfun_game/mods/.farming/depends.txt b/minetestforfun_game/mods/.farming/depends.txt new file mode 100644 index 00000000..470ec30b --- /dev/null +++ b/minetestforfun_game/mods/.farming/depends.txt @@ -0,0 +1,2 @@ +default +wool diff --git a/minetestforfun_game/mods/.farming/hoes.lua b/minetestforfun_game/mods/.farming/hoes.lua new file mode 100644 index 00000000..084d586f --- /dev/null +++ b/minetestforfun_game/mods/.farming/hoes.lua @@ -0,0 +1,65 @@ +farming.register_hoe(":farming:hoe_wood", { + description = "Wooden Hoe", + inventory_image = "farming_tool_woodhoe.png", + max_uses = 30, + recipe = { + {"group:wood", "group:wood"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) + +farming.register_hoe(":farming:hoe_stone", { + description = "Stone Hoe", + inventory_image = "farming_tool_stonehoe.png", + max_uses = 90, + recipe = { + {"group:stone", "group:stone"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) + +farming.register_hoe(":farming:hoe_steel", { + description = "Steel Hoe", + inventory_image = "farming_tool_steelhoe.png", + max_uses = 200, + recipe = { + {"default:steel_ingot", "default:steel_ingot"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) + +farming.register_hoe(":farming:hoe_bronze", { + description = "Bronze Hoe", + inventory_image = "farming_tool_bronzehoe.png", + max_uses = 220, + recipe = { + {"default:bronze_ingot", "default:bronze_ingot"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) + +farming.register_hoe(":farming:hoe_mese", { + description = "Mese Hoe", + inventory_image = "farming_tool_mesehoe.png", + max_uses = 350, + recipe = { + {"default:mese_crystal", "default:mese_crystal"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) + +farming.register_hoe(":farming:hoe_diamond", { + description = "Diamond Hoe", + inventory_image = "farming_tool_diamondhoe.png", + max_uses = 500, + recipe = { + {"default:diamond", "default:diamond"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) diff --git a/minetestforfun_game/mods/.farming/init.lua b/minetestforfun_game/mods/.farming/init.lua new file mode 100644 index 00000000..9245470f --- /dev/null +++ b/minetestforfun_game/mods/.farming/init.lua @@ -0,0 +1,61 @@ +-- Global farming namespace +farming = {} +farming.path = minetest.get_modpath("farming") + +-- Load files +dofile(farming.path .. "/api.lua") +dofile(farming.path .. "/nodes.lua") +dofile(farming.path .. "/hoes.lua") + +-- WHEAT +farming.register_plant("farming:wheat", { + description = "Wheat seed", + inventory_image = "farming_wheat_seed.png", + steps = 8, + minlight = 13, + maxlight = LIGHT_MAX, + fertility = {"grassland"} +}) +minetest.register_craftitem("farming:flour", { + description = "Flour", + inventory_image = "farming_flour.png", +}) + +minetest.register_craftitem("farming:bread", { + description = "Bread", + inventory_image = "farming_bread.png", + on_use = minetest.item_eat(4), +}) + +minetest.register_craft({ + type = "shapeless", + output = "farming:flour", + recipe = {"farming:wheat", "farming:wheat", "farming:wheat", "farming:wheat"} +}) + +minetest.register_craft({ + type = "cooking", + cooktime = 15, + output = "farming:bread", + recipe = "farming:flour" +}) + +-- Cotton +farming.register_plant("farming:cotton", { + description = "Cotton seed", + inventory_image = "farming_cotton_seed.png", + steps = 8, + minlight = 13, + maxlight = LIGHT_MAX, + fertility = {"grassland", "desert"} +}) + +minetest.register_alias("farming:string", "farming:cotton") + +minetest.register_craft({ + output = "wool:white", + recipe = { + {"farming:cotton", "farming:cotton"}, + {"farming:cotton", "farming:cotton"}, + } +}) diff --git a/minetestforfun_game/mods/.farming/nodes.lua b/minetestforfun_game/mods/.farming/nodes.lua new file mode 100644 index 00000000..ba7aed47 --- /dev/null +++ b/minetestforfun_game/mods/.farming/nodes.lua @@ -0,0 +1,148 @@ +minetest.override_item("default:dirt", { + groups = {crumbly=3,soil=1}, + soil = { + base = "default:dirt", + dry = "farming:soil", + wet = "farming:soil_wet" + } +}) + +minetest.override_item("default:dirt_with_grass", { + groups = {crumbly=3,soil=1}, + soil = { + base = "default:dirt_with_grass", + dry = "farming:soil", + wet = "farming:soil_wet" + } +}) + +minetest.register_node("farming:soil", { + description = "Soil", + tiles = {"farming_soil.png", "default_dirt.png"}, + drop = "default:dirt", + is_ground_content = true, + groups = {crumbly=3, not_in_creative_inventory=1, soil=2, grassland = 1, field = 1}, + sounds = default.node_sound_dirt_defaults(), + soil = { + base = "default:dirt", + dry = "farming:soil", + wet = "farming:soil_wet" + } +}) + +minetest.register_node("farming:soil_wet", { + description = "Wet Soil", + tiles = {"farming_soil_wet.png", "farming_soil_wet_side.png"}, + drop = "default:dirt", + is_ground_content = true, + groups = {crumbly=3, not_in_creative_inventory=1, soil=3, wet = 1, grassland = 1, field = 1}, + sounds = default.node_sound_dirt_defaults(), + soil = { + base = "default:dirt", + dry = "farming:soil", + wet = "farming:soil_wet" + } +}) + +minetest.override_item("default:desert_sand", { + groups = {crumbly=3, falling_node=1, sand=1, soil = 1}, + soil = { + base = "default:desert_sand", + dry = "farming:desert_sand_soil", + wet = "farming:desert_sand_soil_wet" + } +}) +minetest.register_node("farming:desert_sand_soil", { + description = "Desert Sand Soil", + drop = "default:desert_sand", + tiles = {"farming_desert_sand_soil.png", "default_desert_sand.png"}, + is_ground_content = true, + groups = {crumbly=3, not_in_creative_inventory = 1, falling_node=1, sand=1, soil = 2, desert = 1, field = 1}, + sounds = default.node_sound_sand_defaults(), + soil = { + base = "default:desert_sand", + dry = "farming:desert_sand_soil", + wet = "farming:desert_sand_soil_wet" + } +}) + +minetest.register_node("farming:desert_sand_soil_wet", { + description = "Wet Desert Sand Soil", + drop = "default:desert_sand", + tiles = {"farming_desert_sand_soil_wet.png", "farming_desert_sand_soil_wet_side.png"}, + is_ground_content = true, + groups = {crumbly=3, falling_node=1, sand=1, not_in_creative_inventory=1, soil=3, wet = 1, desert = 1, field = 1}, + sounds = default.node_sound_sand_defaults(), + soil = { + base = "default:desert_sand", + dry = "farming:desert_sand_soil", + wet = "farming:desert_sand_soil_wet" + } +}) + +minetest.register_abm({ + nodenames = {"group:field"}, + interval = 15, + chance = 4, + action = function(pos, node) + local n_def = minetest.registered_nodes[node.name] or nil + local wet = n_def.soil.wet or nil + local base = n_def.soil.base or nil + local dry = n_def.soil.dry or nil + if not n_def or not n_def.soil or not wet or not base or not dry then + return + end + + pos.y = pos.y + 1 + local nn = minetest.get_node_or_nil(pos) + if not nn or not nn.name then + return + end + local nn_def = minetest.registered_nodes[nn.name] or nil + pos.y = pos.y - 1 + + if nn_def and nn_def.walkable and minetest.get_item_group(nn.name, "plant") == 0 then + minetest.set_node(pos, {name = base}) + return + end + -- check if there is water nearby + if minetest.find_node_near(pos, 3, {"group:water"}) then + local wet_lvl = minetest.get_item_group(node.name, "wet") + -- if it is dry soil and not base node, turn it into wet soil + if wet_lvl == 0 then + minetest.set_node(pos, {name = wet}) + end + else + -- turn it back into base if it is already dry + if wet_lvl == 0 then + -- only turn it back if there is no plant/seed on top of it + if minetest.get_item_group(nn.name, "plant") == 0 and minetest.get_item_group(nn.name, "seed") == 0 then + minetest.set_node(pos, {name = base}) + end + + -- if its wet turn it back into dry soil + elseif wet_lvl == 1 then + minetest.set_node(pos, {name = dry}) + end + end + end, +}) + + +for i = 1, 5 do + minetest.override_item("default:grass_"..i, {drop = { + max_items = 1, + items = { + {items = {'farming:seed_wheat'},rarity = 5}, + {items = {'default:grass_1'}}, + } + }}) +end + +minetest.override_item("default:junglegrass", {drop = { + max_items = 1, + items = { + {items = {'farming:seed_cotton'},rarity = 8}, + {items = {'default:junglegrass'}}, + } +}}) diff --git a/minetestforfun_game/mods/.farming/textures/farming_bread.png b/minetestforfun_game/mods/.farming/textures/farming_bread.png new file mode 100644 index 00000000..00e53719 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_bread.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_cotton.png b/minetestforfun_game/mods/.farming/textures/farming_cotton.png new file mode 100644 index 00000000..e2bbfd7a Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_cotton.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_cotton_1.png b/minetestforfun_game/mods/.farming/textures/farming_cotton_1.png new file mode 100644 index 00000000..2581db59 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_cotton_1.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_cotton_2.png b/minetestforfun_game/mods/.farming/textures/farming_cotton_2.png new file mode 100644 index 00000000..af9ed340 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_cotton_2.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_cotton_3.png b/minetestforfun_game/mods/.farming/textures/farming_cotton_3.png new file mode 100644 index 00000000..ba46f3d6 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_cotton_3.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_cotton_4.png b/minetestforfun_game/mods/.farming/textures/farming_cotton_4.png new file mode 100644 index 00000000..e6708b55 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_cotton_4.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_cotton_5.png b/minetestforfun_game/mods/.farming/textures/farming_cotton_5.png new file mode 100644 index 00000000..0ad6a8f5 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_cotton_5.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_cotton_6.png b/minetestforfun_game/mods/.farming/textures/farming_cotton_6.png new file mode 100644 index 00000000..838fa930 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_cotton_6.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_cotton_7.png b/minetestforfun_game/mods/.farming/textures/farming_cotton_7.png new file mode 100644 index 00000000..f2623c25 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_cotton_7.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_cotton_8.png b/minetestforfun_game/mods/.farming/textures/farming_cotton_8.png new file mode 100644 index 00000000..d4bf6bd5 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_cotton_8.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_cotton_seed.png b/minetestforfun_game/mods/.farming/textures/farming_cotton_seed.png new file mode 100644 index 00000000..cff769b2 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_cotton_seed.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_desert_sand_soil.png b/minetestforfun_game/mods/.farming/textures/farming_desert_sand_soil.png new file mode 100644 index 00000000..1450e014 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_desert_sand_soil.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_desert_sand_soil_wet.png b/minetestforfun_game/mods/.farming/textures/farming_desert_sand_soil_wet.png new file mode 100644 index 00000000..cffa955d Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_desert_sand_soil_wet.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_desert_sand_soil_wet_side.png b/minetestforfun_game/mods/.farming/textures/farming_desert_sand_soil_wet_side.png new file mode 100644 index 00000000..fbb2815e Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_desert_sand_soil_wet_side.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_flour.png b/minetestforfun_game/mods/.farming/textures/farming_flour.png new file mode 100644 index 00000000..bd33f937 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_flour.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_soil.png b/minetestforfun_game/mods/.farming/textures/farming_soil.png new file mode 100644 index 00000000..0be94e3c Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_soil.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_soil_wet.png b/minetestforfun_game/mods/.farming/textures/farming_soil_wet.png new file mode 100644 index 00000000..d5e335ef Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_soil_wet.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_soil_wet_side.png b/minetestforfun_game/mods/.farming/textures/farming_soil_wet_side.png new file mode 100644 index 00000000..6bd3a56c Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_soil_wet_side.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_tool_bronzehoe.png b/minetestforfun_game/mods/.farming/textures/farming_tool_bronzehoe.png new file mode 100644 index 00000000..ef07a80a Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_tool_bronzehoe.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_tool_diamondhoe.png b/minetestforfun_game/mods/.farming/textures/farming_tool_diamondhoe.png new file mode 100644 index 00000000..093acb82 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_tool_diamondhoe.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_tool_mesehoe.png b/minetestforfun_game/mods/.farming/textures/farming_tool_mesehoe.png new file mode 100644 index 00000000..ffd597a4 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_tool_mesehoe.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_tool_steelhoe.png b/minetestforfun_game/mods/.farming/textures/farming_tool_steelhoe.png new file mode 100644 index 00000000..893a6958 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_tool_steelhoe.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_tool_stonehoe.png b/minetestforfun_game/mods/.farming/textures/farming_tool_stonehoe.png new file mode 100644 index 00000000..4f8dade0 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_tool_stonehoe.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_tool_woodhoe.png b/minetestforfun_game/mods/.farming/textures/farming_tool_woodhoe.png new file mode 100644 index 00000000..8b20d2dc Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_tool_woodhoe.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_wheat.png b/minetestforfun_game/mods/.farming/textures/farming_wheat.png new file mode 100644 index 00000000..cba51374 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_wheat.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_wheat_1.png b/minetestforfun_game/mods/.farming/textures/farming_wheat_1.png new file mode 100644 index 00000000..2ca23ee7 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_wheat_1.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_wheat_2.png b/minetestforfun_game/mods/.farming/textures/farming_wheat_2.png new file mode 100644 index 00000000..6ae90d60 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_wheat_2.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_wheat_3.png b/minetestforfun_game/mods/.farming/textures/farming_wheat_3.png new file mode 100644 index 00000000..29950fe5 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_wheat_3.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_wheat_4.png b/minetestforfun_game/mods/.farming/textures/farming_wheat_4.png new file mode 100644 index 00000000..cdc2003d Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_wheat_4.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_wheat_5.png b/minetestforfun_game/mods/.farming/textures/farming_wheat_5.png new file mode 100644 index 00000000..2ddff037 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_wheat_5.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_wheat_6.png b/minetestforfun_game/mods/.farming/textures/farming_wheat_6.png new file mode 100644 index 00000000..f7d8145e Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_wheat_6.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_wheat_7.png b/minetestforfun_game/mods/.farming/textures/farming_wheat_7.png new file mode 100644 index 00000000..89a95912 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_wheat_7.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_wheat_8.png b/minetestforfun_game/mods/.farming/textures/farming_wheat_8.png new file mode 100644 index 00000000..78181fff Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_wheat_8.png differ diff --git a/minetestforfun_game/mods/.farming/textures/farming_wheat_seed.png b/minetestforfun_game/mods/.farming/textures/farming_wheat_seed.png new file mode 100644 index 00000000..81fc3b22 Binary files /dev/null and b/minetestforfun_game/mods/.farming/textures/farming_wheat_seed.png differ diff --git a/minetestforfun_game/mods/boats/README.txt b/minetestforfun_game/mods/boats/README.txt new file mode 100755 index 00000000..5100481d --- /dev/null +++ b/minetestforfun_game/mods/boats/README.txt @@ -0,0 +1,16 @@ +Minetest 0.4 mod: boats +======================= +by PilzAdam, slightly modified for NeXt + +License of source code: +----------------------- +WTFPL + +License of media (textures and sounds): +--------------------------------------- +WTFPL + +Authors of media files: +----------------------- +textures: Zeg9 +model: thetoon and Zeg9, modified by PavelS(SokolovPavel) diff --git a/minetestforfun_game/mods/boats/depends.txt b/minetestforfun_game/mods/boats/depends.txt new file mode 100755 index 00000000..4ad96d51 --- /dev/null +++ b/minetestforfun_game/mods/boats/depends.txt @@ -0,0 +1 @@ +default diff --git a/minetestforfun_game/mods/boats/init.lua b/minetestforfun_game/mods/boats/init.lua new file mode 100755 index 00000000..12126988 --- /dev/null +++ b/minetestforfun_game/mods/boats/init.lua @@ -0,0 +1,211 @@ + +-- +-- Helper functions +-- + +local function is_water(pos) + local nn = minetest.get_node(pos).name + return minetest.get_item_group(nn, "water") ~= 0 +end + +local function get_sign(i) + if i == 0 then + return 0 + else + return i / math.abs(i) + end +end + +local function get_velocity(v, yaw, y) + local x = -math.sin(yaw) * v + local z = math.cos(yaw) * v + return {x = x, y = y, z = z} +end + +local function get_v(v) + return math.sqrt(v.x ^ 2 + v.z ^ 2) +end + +-- +-- Boat entity +-- + +local boat = { + physical = true, + collisionbox = {-0.6, -0.4, -0.6, 0.6, 0.3, 0.6}, + visual = "mesh", + mesh = "boat.x", + textures = {"default_wood.png"}, + + driver = nil, + v = 0, + last_v = 0, + removed = false +} + +function boat.on_rightclick(self, clicker) + if not clicker or not clicker:is_player() then + return + end + local name = clicker:get_player_name() + if self.driver and clicker == self.driver then + self.driver = nil + clicker:set_detach() + default.player_attached[name] = false + default.player_set_animation(clicker, "stand" , 30) + elseif not self.driver then + self.driver = clicker + clicker:set_attach(self.object, "", {x = 0, y = 11, z = -3}, {x = 0, y = 0, z = 0}) + default.player_attached[name] = true + minetest.after(0.2, function() + default.player_set_animation(clicker, "sit" , 30) + end) + self.object:setyaw(clicker:get_look_yaw() - math.pi / 2) + end +end + +function boat.on_activate(self, staticdata, dtime_s) + self.object:set_armor_groups({immortal = 1}) + if staticdata then + self.v = tonumber(staticdata) + end + self.last_v = self.v +end + +function boat.get_staticdata(self) + return tostring(self.v) +end + +function boat.on_punch(self, puncher, time_from_last_punch, tool_capabilities, direction) + if not puncher or not puncher:is_player() or self.removed then + return + end + puncher:set_detach() + default.player_attached[puncher:get_player_name()] = false + + self.removed = true + -- delay remove to ensure player is detached + minetest.after(0.1, function() + self.object:remove() + end) + if not minetest.setting_getbool("creative_mode") then + puncher:get_inventory():add_item("main", "boats:boat") + end +end + +function boat.on_step(self, dtime) + self.v = get_v(self.object:getvelocity()) * get_sign(self.v) + if self.driver then + local ctrl = self.driver:get_player_control() + local yaw = self.object:getyaw() + if ctrl.up then + self.v = self.v + 0.1 + end + if ctrl.down then + self.v = self.v - 0.08 + end + if ctrl.left then + if ctrl.down then + self.object:setyaw(yaw - (1 + dtime) * 0.03) + else + self.object:setyaw(yaw + (1 + dtime) * 0.03) + end + end + if ctrl.right then + if ctrl.down then + self.object:setyaw(yaw + (1 + dtime) * 0.03) + else + self.object:setyaw(yaw - (1 + dtime) * 0.03) + end + end + end + local velo = self.object:getvelocity() + if self.v == 0 and velo.x == 0 and velo.y == 0 and velo.z == 0 then + return + end + local s = get_sign(self.v) + self.v = self.v - 0.02 * s + if s ~= get_sign(self.v) then + self.object:setvelocity({x = 0, y = 0, z = 0}) + self.v = 0 + return + end + if math.abs(self.v) > 4.5 then + self.v = 4.5 * get_sign(self.v) + end + + local p = self.object:getpos() + p.y = p.y - 0.5 + local new_velo = {x = 0, y = 0, z = 0} + local new_acce = {x = 0, y = 0, z = 0} + if not is_water(p) then + local nodedef = minetest.registered_nodes[minetest.get_node(p).name] + if (not nodedef) or nodedef.walkable then + self.v = 0 + new_acce = {x = 0, y = 1, z = 0} + else + new_acce = {x = 0, y = -9.8, z = 0} -- freefall in air -9.81 + end + new_velo = get_velocity(self.v, self.object:getyaw(), self.object:getvelocity().y) + else + p.y = p.y + 1 + if is_water(p) then + new_acce = {x = 0, y = 3, z = 0} + local y = self.object:getvelocity().y + if y > 2 then + y = 2 + end + if y < 0 then + self.object:setacceleration({x = 0, y = 10, z = 0}) + end + new_velo = get_velocity(self.v, self.object:getyaw(), y) + else + new_acce = {x = 0, y = 0, z = 0} + if math.abs(self.object:getvelocity().y) <= 2 then + local pos = self.object:getpos() + pos.y = math.floor(pos.y) + 0.5 + self.object:setpos(pos) + new_velo = get_velocity(self.v, self.object:getyaw(), 0) + else + new_velo = get_velocity(self.v, self.object:getyaw(), self.object:getvelocity().y) + end + end + end + self.object:setvelocity(new_velo) + self.object:setacceleration(new_acce) +end + +minetest.register_entity("boats:boat", boat) + + +minetest.register_craftitem("boats:boat", { + description = "Boat", + inventory_image = "boat_inventory.png", + wield_image = "boat_wield.png", + wield_scale = {x = 2, y = 2, z = 1}, + liquids_pointable = true, + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return + end + if not is_water(pointed_thing.under) then + return + end + pointed_thing.under.y = pointed_thing.under.y + 0.5 + minetest.add_entity(pointed_thing.under, "boats:boat") + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack + end, +}) + +minetest.register_craft({ + output = "boats:boat", + recipe = { + {"", "", "" }, + {"group:wood", "", "group:wood"}, + {"group:wood", "group:wood", "group:wood"}, + }, +}) diff --git a/minetestforfun_game/mods/boats/models/boat.x b/minetestforfun_game/mods/boats/models/boat.x new file mode 100755 index 00000000..581998e5 --- /dev/null +++ b/minetestforfun_game/mods/boats/models/boat.x @@ -0,0 +1,11110 @@ +xof 0303txt 0032 + +Frame Root { + FrameTransformMatrix { + 0.000000, 0.000000, 1.000000, 0.000000, + -1.000000, 0.000000, 0.000000, 0.000000, + 0.000000, 1.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 0.000000, 1.000000;; + } + Frame Plane { + FrameTransformMatrix { + 0.000000,-9.104475, 0.000000, 0.000000, + 9.104475, 0.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 9.104475, 0.000000, + -0.310965, 0.042220,-1.967153, 1.000000;; + } + Mesh { //Plane_000 Mesh + 2952; + 0.750000;-0.500000;-0.117178;, + 0.750000;-0.625000;-0.117178;, + 0.750000;-0.625000; 0.000000;, + 0.750000;-0.500000; 0.000000;, + -0.625000;-0.875000;-0.117178;, + -0.625000;-0.750000;-0.117178;, + -0.625000;-0.750000; 0.000000;, + -0.625000;-0.875000; 0.000000;, + 0.250000;-0.625000;-0.117178;, + 0.250000;-0.750000;-0.117178;, + 0.250000;-0.750000; 0.000000;, + 0.250000;-0.625000; 0.000000;, + -0.250000;-0.375000;-0.117178;, + -0.250000;-0.500000;-0.117178;, + -0.250000;-0.500000; 0.000000;, + -0.250000;-0.375000; 0.000000;, + -0.250000; 0.750000;-0.117178;, + -0.250000; 0.625000;-0.117178;, + -0.250000; 0.625000; 0.000000;, + -0.250000; 0.750000; 0.000000;, + 0.375000; 0.750000;-0.117178;, + 0.375000; 0.875000;-0.117178;, + 0.375000; 0.875000; 0.000000;, + 0.375000; 0.750000; 0.000000;, + -0.500000; 1.000000;-0.117178;, + -0.375000; 1.000000;-0.117178;, + -0.375000; 1.000000; 0.000000;, + -0.500000; 1.000000; 0.000000;, + -0.125000; 0.250000;-0.117178;, + -0.125000; 0.375000;-0.117178;, + -0.125000; 0.375000; 0.000000;, + -0.125000; 0.250000; 0.000000;, + -0.125000; 1.000000;-0.117178;, + 0.000000; 1.000000;-0.117178;, + 0.000000; 1.000000; 0.000000;, + -0.125000; 1.000000; 0.000000;, + 0.375000;-0.250000;-0.117178;, + 0.375000;-0.125000;-0.117178;, + 0.375000;-0.125000; 0.000000;, + 0.375000;-0.250000; 0.000000;, + 0.750000; 0.000000;-0.117178;, + 0.750000;-0.125000;-0.117178;, + 0.750000;-0.125000; 0.000000;, + 0.750000; 0.000000; 0.000000;, + -0.250000;-0.125000;-0.117178;, + -0.250000;-0.250000;-0.117178;, + -0.250000;-0.250000; 0.000000;, + -0.250000;-0.125000; 0.000000;, + 0.375000; 0.375000;-0.117178;, + 0.375000; 0.500000;-0.117178;, + 0.375000; 0.500000; 0.000000;, + 0.375000; 0.375000; 0.000000;, + 0.750000; 0.250000;-0.117178;, + 0.750000; 0.125000;-0.117178;, + 0.750000; 0.125000; 0.000000;, + 0.750000; 0.250000; 0.000000;, + -0.250000;-1.000000;-0.117178;, + -0.375000;-1.000000;-0.117178;, + -0.375000;-1.000000; 0.000000;, + -0.250000;-1.000000; 0.000000;, + -0.625000;-0.125000;-0.117178;, + -0.625000; 0.000000;-0.117178;, + -0.625000; 0.000000; 0.000000;, + -0.625000;-0.125000; 0.000000;, + 0.375000;-0.625000;-0.117178;, + 0.375000;-0.500000;-0.117178;, + 0.375000;-0.500000; 0.000000;, + 0.375000;-0.625000; 0.000000;, + 0.250000; 1.000000;-0.117178;, + 0.250000; 0.875000;-0.117178;, + 0.250000; 0.875000; 0.000000;, + 0.250000; 1.000000; 0.000000;, + -0.125000; 0.875000; 0.000000;, + -0.125000; 1.000000; 0.000000;, + -0.250000; 1.000000; 0.000000;, + -0.250000; 0.875000; 0.000000;, + -0.125000; 0.750000; 0.000000;, + -0.125000; 0.875000; 0.000000;, + -0.250000; 0.875000; 0.000000;, + -0.250000; 0.750000; 0.000000;, + -0.625000; 0.500000;-0.117178;, + -0.625000; 0.625000;-0.117178;, + -0.625000; 0.625000; 0.000000;, + -0.625000; 0.500000; 0.000000;, + -0.125000;-0.125000; 0.000000;, + -0.125000; 0.000000; 0.000000;, + -0.250000; 0.000000; 0.000000;, + -0.250000;-0.125000; 0.000000;, + -0.125000;-0.250000; 0.000000;, + -0.125000;-0.125000; 0.000000;, + -0.250000;-0.125000; 0.000000;, + -0.250000;-0.250000; 0.000000;, + -0.125000;-0.375000;-0.117178;, + -0.125000;-0.250000;-0.117178;, + -0.125000;-0.250000; 0.000000;, + -0.125000;-0.375000; 0.000000;, + 0.375000; 0.875000; 0.000000;, + 0.375000; 1.000000; 0.000000;, + 0.250000; 1.000000; 0.000000;, + 0.250000; 0.875000; 0.000000;, + 0.375000; 0.750000; 0.000000;, + 0.375000; 0.875000; 0.000000;, + 0.250000; 0.875000; 0.000000;, + 0.250000; 0.750000; 0.000000;, + 0.250000;-0.375000;-0.117178;, + 0.250000;-0.500000;-0.117178;, + 0.250000;-0.500000; 0.000000;, + 0.250000;-0.375000; 0.000000;, + 0.375000; 0.375000; 0.000000;, + 0.375000; 0.500000; 0.000000;, + 0.250000; 0.500000; 0.000000;, + 0.250000; 0.375000; 0.000000;, + 0.375000; 0.250000; 0.000000;, + 0.375000; 0.375000; 0.000000;, + 0.250000; 0.375000; 0.000000;, + 0.250000; 0.250000; 0.000000;, + -0.125000; 0.000000;-0.117178;, + -0.125000; 0.125000;-0.117178;, + -0.125000; 0.125000; 0.000000;, + -0.125000; 0.000000; 0.000000;, + -0.625000; 0.875000; 0.000000;, + -0.625000; 1.000000; 0.000000;, + -0.750000; 1.000000; 0.000000;, + -0.750000; 0.875000; 0.000000;, + -0.625000; 0.750000; 0.000000;, + -0.625000; 0.875000; 0.000000;, + -0.750000; 0.875000; 0.000000;, + -0.750000; 0.750000; 0.000000;, + -0.250000;-0.750000;-0.117178;, + -0.250000;-0.875000;-0.117178;, + -0.250000;-0.875000; 0.000000;, + -0.250000;-0.750000; 0.000000;, + -0.625000; 0.375000; 0.000000;, + -0.625000; 0.500000; 0.000000;, + -0.750000; 0.500000; 0.000000;, + -0.750000; 0.375000; 0.000000;, + -0.625000; 0.250000; 0.000000;, + -0.625000; 0.375000; 0.000000;, + -0.750000; 0.375000; 0.000000;, + -0.750000; 0.250000; 0.000000;, + 0.750000; 0.625000;-0.117178;, + 0.750000; 0.500000;-0.117178;, + 0.750000; 0.500000; 0.000000;, + 0.750000; 0.625000; 0.000000;, + -0.125000; 0.375000; 0.000000;, + -0.125000; 0.500000; 0.000000;, + -0.250000; 0.500000; 0.000000;, + -0.250000; 0.375000; 0.000000;, + -0.125000; 0.250000; 0.000000;, + -0.125000; 0.375000; 0.000000;, + -0.250000; 0.375000; 0.000000;, + -0.250000; 0.250000; 0.000000;, + 0.125000; 1.000000;-0.117178;, + 0.250000; 1.000000;-0.117178;, + 0.250000; 1.000000; 0.000000;, + 0.125000; 1.000000; 0.000000;, + -0.625000;-0.125000; 0.000000;, + -0.625000; 0.000000; 0.000000;, + -0.750000; 0.000000; 0.000000;, + -0.750000;-0.125000; 0.000000;, + -0.625000;-0.250000; 0.000000;, + -0.625000;-0.125000; 0.000000;, + -0.750000;-0.125000; 0.000000;, + -0.750000;-0.250000; 0.000000;, + 0.375000; 0.125000;-0.117178;, + 0.375000; 0.250000;-0.117178;, + 0.375000; 0.250000; 0.000000;, + 0.375000; 0.125000; 0.000000;, + -0.625000;-0.625000; 0.000000;, + -0.625000;-0.500000; 0.000000;, + -0.750000;-0.500000; 0.000000;, + -0.750000;-0.625000; 0.000000;, + -0.625000;-0.750000; 0.000000;, + -0.625000;-0.625000; 0.000000;, + -0.750000;-0.625000; 0.000000;, + -0.750000;-0.750000; 0.000000;, + 0.625000;-1.000000;-0.117178;, + 0.500000;-1.000000;-0.117178;, + 0.500000;-1.000000; 0.000000;, + 0.625000;-1.000000; 0.000000;, + -0.125000;-0.625000; 0.000000;, + -0.125000;-0.500000; 0.000000;, + -0.250000;-0.500000; 0.000000;, + -0.250000;-0.625000; 0.000000;, + -0.125000;-0.750000; 0.000000;, + -0.125000;-0.625000; 0.000000;, + -0.250000;-0.625000; 0.000000;, + -0.250000;-0.750000; 0.000000;, + 0.375000;-0.500000;-0.117178;, + 0.375000;-0.375000;-0.117178;, + 0.375000;-0.375000; 0.000000;, + 0.375000;-0.500000; 0.000000;, + 0.375000;-0.125000; 0.000000;, + 0.375000; 0.000000; 0.000000;, + 0.250000; 0.000000; 0.000000;, + 0.250000;-0.125000; 0.000000;, + 0.375000;-0.250000; 0.000000;, + 0.375000;-0.125000; 0.000000;, + 0.250000;-0.125000; 0.000000;, + 0.250000;-0.250000; 0.000000;, + -0.625000; 0.125000;-0.117178;, + -0.625000; 0.250000;-0.117178;, + -0.625000; 0.250000; 0.000000;, + -0.625000; 0.125000; 0.000000;, + 0.375000;-0.625000; 0.000000;, + 0.375000;-0.500000; 0.000000;, + 0.250000;-0.500000; 0.000000;, + 0.250000;-0.625000; 0.000000;, + 0.375000;-0.750000; 0.000000;, + 0.375000;-0.625000; 0.000000;, + 0.250000;-0.625000; 0.000000;, + 0.250000;-0.750000; 0.000000;, + 0.250000;-0.500000;-0.117178;, + 0.250000;-0.625000;-0.117178;, + 0.250000;-0.625000; 0.000000;, + 0.250000;-0.500000; 0.000000;, + -0.625000;-0.375000;-0.117178;, + -0.625000;-0.250000;-0.117178;, + -0.625000;-0.250000; 0.000000;, + -0.625000;-0.375000; 0.000000;, + 0.250000;-0.125000;-0.117178;, + 0.250000;-0.250000;-0.117178;, + 0.250000;-0.250000; 0.000000;, + 0.250000;-0.125000; 0.000000;, + -0.250000; 0.625000;-0.117178;, + -0.250000; 0.500000;-0.117178;, + -0.250000; 0.500000; 0.000000;, + -0.250000; 0.625000; 0.000000;, + 0.750000; 0.875000;-0.117178;, + 0.750000; 0.750000;-0.117178;, + 0.750000; 0.750000; 0.000000;, + 0.750000; 0.875000; 0.000000;, + -0.125000;-0.875000;-0.117178;, + -0.125000;-0.750000;-0.117178;, + -0.125000;-0.750000; 0.000000;, + -0.125000;-0.875000; 0.000000;, + -0.125000;-0.250000;-0.117178;, + -0.125000;-0.125000;-0.117178;, + -0.125000;-0.125000; 0.000000;, + -0.125000;-0.250000; 0.000000;, + -0.625000; 0.250000;-0.117178;, + -0.625000; 0.375000;-0.117178;, + -0.625000; 0.375000; 0.000000;, + -0.625000; 0.250000; 0.000000;, + -0.250000; 0.250000;-0.117178;, + -0.250000; 0.125000;-0.117178;, + -0.250000; 0.125000; 0.000000;, + -0.250000; 0.250000; 0.000000;, + -0.125000;-0.750000;-0.117178;, + -0.125000;-0.625000;-0.117178;, + -0.125000;-0.625000; 0.000000;, + -0.125000;-0.750000; 0.000000;, + -0.250000; 0.000000;-0.117178;, + -0.250000;-0.125000;-0.117178;, + -0.250000;-0.125000; 0.000000;, + -0.250000; 0.000000; 0.000000;, + -0.250000; 0.875000;-0.117178;, + -0.250000; 0.750000;-0.117178;, + -0.250000; 0.750000; 0.000000;, + -0.250000; 0.875000; 0.000000;, + 0.375000; 0.875000;-0.117178;, + 0.375000; 1.000000;-0.117178;, + 0.375000; 1.000000; 0.000000;, + 0.375000; 0.875000; 0.000000;, + -0.125000; 0.625000; 0.000000;, + -0.125000; 0.750000; 0.000000;, + -0.250000; 0.750000; 0.000000;, + -0.250000; 0.625000; 0.000000;, + -0.125000; 0.500000; 0.000000;, + -0.125000; 0.625000; 0.000000;, + -0.250000; 0.625000; 0.000000;, + -0.250000; 0.500000; 0.000000;, + 0.750000; 0.125000;-0.117178;, + 0.750000; 0.000000;-0.117178;, + 0.750000; 0.000000; 0.000000;, + 0.750000; 0.125000; 0.000000;, + 0.250000; 0.250000;-0.117178;, + 0.250000; 0.125000;-0.117178;, + 0.250000; 0.125000; 0.000000;, + 0.250000; 0.250000; 0.000000;, + -0.375000;-1.000000;-0.117178;, + -0.500000;-1.000000;-0.117178;, + -0.500000;-1.000000; 0.000000;, + -0.375000;-1.000000; 0.000000;, + -0.125000; 0.375000;-0.117178;, + -0.125000; 0.500000;-0.117178;, + -0.125000; 0.500000; 0.000000;, + -0.125000; 0.375000; 0.000000;, + 0.000000;-1.000000;-0.117178;, + -0.125000;-1.000000;-0.117178;, + -0.125000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.375000;-0.125000;-0.117178;, + 0.375000; 0.000000;-0.117178;, + 0.375000; 0.000000; 0.000000;, + 0.375000;-0.125000; 0.000000;, + 0.750000; 0.375000;-0.117178;, + 0.750000; 0.250000;-0.117178;, + 0.750000; 0.250000; 0.000000;, + 0.750000; 0.375000; 0.000000;, + -0.125000;-0.375000; 0.000000;, + -0.125000;-0.250000; 0.000000;, + -0.250000;-0.250000; 0.000000;, + -0.250000;-0.375000; 0.000000;, + -0.125000;-0.500000; 0.000000;, + -0.125000;-0.375000; 0.000000;, + -0.250000;-0.375000; 0.000000;, + -0.250000;-0.500000; 0.000000;, + 0.375000; 1.000000;-0.117178;, + 0.500000; 1.000000;-0.117178;, + 0.500000; 1.000000; 0.000000;, + 0.375000; 1.000000; 0.000000;, + -0.250000;-0.875000;-0.117178;, + -0.250000;-1.000000;-0.117178;, + -0.250000;-1.000000; 0.000000;, + -0.250000;-0.875000; 0.000000;, + 0.000000; 1.000000;-0.117178;, + 0.125000; 1.000000;-0.117178;, + 0.125000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.750000;-0.750000;-0.117178;, + 0.750000;-0.875000;-0.117178;, + 0.750000;-0.875000; 0.000000;, + 0.750000;-0.750000; 0.000000;, + -0.625000; 0.625000;-0.117178;, + -0.625000; 0.750000;-0.117178;, + -0.625000; 0.750000; 0.000000;, + -0.625000; 0.625000; 0.000000;, + 0.375000;-1.000000;-0.117178;, + 0.375000;-0.875000;-0.117178;, + 0.375000;-0.875000; 0.000000;, + 0.375000;-1.000000; 0.000000;, + 0.250000; 0.000000;-0.117178;, + 0.250000;-0.125000;-0.117178;, + 0.250000;-0.125000; 0.000000;, + 0.250000; 0.000000; 0.000000;, + -0.125000; 0.125000;-0.117178;, + -0.125000; 0.250000;-0.117178;, + -0.125000; 0.250000; 0.000000;, + -0.125000; 0.125000; 0.000000;, + -0.250000;-0.625000;-0.117178;, + -0.250000;-0.750000;-0.117178;, + -0.250000;-0.750000; 0.000000;, + -0.250000;-0.625000; 0.000000;, + 0.750000; 1.000000;-0.117178;, + 0.750000; 0.875000;-0.117178;, + 0.750000; 0.875000; 0.000000;, + 0.750000; 1.000000; 0.000000;, + 0.250000;-1.000000;-0.117178;, + 0.125000;-1.000000;-0.117178;, + 0.125000;-1.000000; 0.000000;, + 0.250000;-1.000000; 0.000000;, + -0.125000; 0.750000;-0.117178;, + -0.125000; 0.875000;-0.117178;, + -0.125000; 0.875000; 0.000000;, + -0.125000; 0.750000; 0.000000;, + 0.750000;-0.250000;-0.117178;, + 0.750000;-0.375000;-0.117178;, + 0.750000;-0.375000; 0.000000;, + 0.750000;-0.250000; 0.000000;, + 0.375000; 0.625000; 0.000000;, + 0.375000; 0.750000; 0.000000;, + 0.250000; 0.750000; 0.000000;, + 0.250000; 0.625000; 0.000000;, + 0.375000; 0.500000; 0.000000;, + 0.375000; 0.625000; 0.000000;, + 0.250000; 0.625000; 0.000000;, + 0.250000; 0.500000; 0.000000;, + -0.625000; 1.000000;-0.117178;, + -0.500000; 1.000000;-0.117178;, + -0.500000; 1.000000; 0.000000;, + -0.625000; 1.000000; 0.000000;, + 0.375000;-0.375000;-0.117178;, + 0.375000;-0.250000;-0.117178;, + 0.375000;-0.250000; 0.000000;, + 0.375000;-0.375000; 0.000000;, + -0.625000; 0.750000;-0.117178;, + -0.625000; 0.875000;-0.117178;, + -0.625000; 0.875000; 0.000000;, + -0.625000; 0.750000; 0.000000;, + -0.250000; 0.125000;-0.117178;, + -0.250000; 0.000000;-0.117178;, + -0.250000; 0.000000; 0.000000;, + -0.250000; 0.125000; 0.000000;, + -0.625000;-0.750000;-0.117178;, + -0.625000;-0.625000;-0.117178;, + -0.625000;-0.625000; 0.000000;, + -0.625000;-0.750000; 0.000000;, + -0.250000; 1.000000;-0.117178;, + -0.250000; 0.875000;-0.117178;, + -0.250000; 0.875000; 0.000000;, + -0.250000; 1.000000; 0.000000;, + -0.125000;-0.125000;-0.117178;, + -0.125000; 0.000000;-0.117178;, + -0.125000; 0.000000; 0.000000;, + -0.125000;-0.125000; 0.000000;, + 0.375000; 0.125000; 0.000000;, + 0.375000; 0.250000; 0.000000;, + 0.250000; 0.250000; 0.000000;, + 0.250000; 0.125000; 0.000000;, + 0.375000; 0.000000; 0.000000;, + 0.375000; 0.125000; 0.000000;, + 0.250000; 0.125000; 0.000000;, + 0.250000; 0.000000; 0.000000;, + 0.250000; 0.125000;-0.117178;, + 0.250000; 0.000000;-0.117178;, + 0.250000; 0.000000; 0.000000;, + 0.250000; 0.125000; 0.000000;, + 0.250000; 0.750000;-0.117178;, + 0.250000; 0.625000;-0.117178;, + 0.250000; 0.625000; 0.000000;, + 0.250000; 0.750000; 0.000000;, + -0.125000; 0.500000;-0.117178;, + -0.125000; 0.625000;-0.117178;, + -0.125000; 0.625000; 0.000000;, + -0.125000; 0.500000; 0.000000;, + -0.625000; 0.375000;-0.117178;, + -0.625000; 0.500000;-0.117178;, + -0.625000; 0.500000; 0.000000;, + -0.625000; 0.375000; 0.000000;, + -0.250000; 0.375000;-0.117178;, + -0.250000; 0.250000;-0.117178;, + -0.250000; 0.250000; 0.000000;, + -0.250000; 0.375000; 0.000000;, + -0.125000;-0.625000;-0.117178;, + -0.125000;-0.500000;-0.117178;, + -0.125000;-0.500000; 0.000000;, + -0.125000;-0.625000; 0.000000;, + 0.375000; 0.500000;-0.117178;, + 0.375000; 0.625000;-0.117178;, + 0.375000; 0.625000; 0.000000;, + 0.375000; 0.500000; 0.000000;, + -0.625000; 0.625000; 0.000000;, + -0.625000; 0.750000; 0.000000;, + -0.750000; 0.750000; 0.000000;, + -0.750000; 0.625000; 0.000000;, + -0.625000; 0.500000; 0.000000;, + -0.625000; 0.625000; 0.000000;, + -0.750000; 0.625000; 0.000000;, + -0.750000; 0.500000; 0.000000;, + 0.750000; 0.500000;-0.117178;, + 0.750000; 0.375000;-0.117178;, + 0.750000; 0.375000; 0.000000;, + 0.750000; 0.500000; 0.000000;, + -0.625000; 0.125000; 0.000000;, + -0.625000; 0.250000; 0.000000;, + -0.750000; 0.250000; 0.000000;, + -0.750000; 0.125000; 0.000000;, + -0.625000; 0.000000; 0.000000;, + -0.625000; 0.125000; 0.000000;, + -0.750000; 0.125000; 0.000000;, + -0.750000; 0.000000; 0.000000;, + 0.250000; 0.375000;-0.117178;, + 0.250000; 0.250000;-0.117178;, + 0.250000; 0.250000; 0.000000;, + 0.250000; 0.375000; 0.000000;, + 0.625000; 1.000000;-0.117178;, + 0.750000; 1.000000;-0.117178;, + 0.750000; 1.000000; 0.000000;, + 0.625000; 1.000000; 0.000000;, + 0.750000;-0.875000;-0.117178;, + 0.750000;-1.000000;-0.117178;, + 0.750000;-1.000000; 0.000000;, + 0.750000;-0.875000; 0.000000;, + -0.625000;-1.000000;-0.117178;, + -0.625000;-0.875000;-0.117178;, + -0.625000;-0.875000; 0.000000;, + -0.625000;-1.000000; 0.000000;, + 0.250000;-0.750000;-0.117178;, + 0.250000;-0.875000;-0.117178;, + 0.250000;-0.875000; 0.000000;, + 0.250000;-0.750000; 0.000000;, + 0.500000;-1.000000;-0.117178;, + 0.375000;-1.000000;-0.117178;, + 0.375000;-1.000000; 0.000000;, + 0.500000;-1.000000; 0.000000;, + -0.250000;-0.500000;-0.117178;, + -0.250000;-0.625000;-0.117178;, + -0.250000;-0.625000; 0.000000;, + -0.250000;-0.500000; 0.000000;, + -0.125000; 0.125000; 0.000000;, + -0.125000; 0.250000; 0.000000;, + -0.250000; 0.250000; 0.000000;, + -0.250000; 0.125000; 0.000000;, + -0.125000; 0.000000; 0.000000;, + -0.125000; 0.125000; 0.000000;, + -0.250000; 0.125000; 0.000000;, + -0.250000; 0.000000; 0.000000;, + 0.125000;-1.000000;-0.117178;, + 0.000000;-1.000000;-0.117178;, + 0.000000;-1.000000; 0.000000;, + 0.125000;-1.000000; 0.000000;, + -0.625000;-0.375000; 0.000000;, + -0.625000;-0.250000; 0.000000;, + -0.750000;-0.250000; 0.000000;, + -0.750000;-0.375000; 0.000000;, + -0.625000;-0.500000; 0.000000;, + -0.625000;-0.375000; 0.000000;, + -0.750000;-0.375000; 0.000000;, + -0.750000;-0.500000; 0.000000;, + 0.750000;-0.625000;-0.117178;, + 0.750000;-0.750000;-0.117178;, + 0.750000;-0.750000; 0.000000;, + 0.750000;-0.625000; 0.000000;, + -0.625000;-0.875000; 0.000000;, + -0.625000;-0.750000; 0.000000;, + -0.750000;-0.750000; 0.000000;, + -0.750000;-0.875000; 0.000000;, + -0.625000;-1.000000; 0.000000;, + -0.625000;-0.875000; 0.000000;, + -0.750000;-0.875000; 0.000000;, + -0.750000;-1.000000; 0.000000;, + 0.750000;-0.375000;-0.117178;, + 0.750000;-0.500000;-0.117178;, + 0.750000;-0.500000; 0.000000;, + 0.750000;-0.375000; 0.000000;, + -0.250000;-0.250000;-0.117178;, + -0.250000;-0.375000;-0.117178;, + -0.250000;-0.375000; 0.000000;, + -0.250000;-0.250000; 0.000000;, + 0.375000; 0.250000;-0.117178;, + 0.375000; 0.375000;-0.117178;, + 0.375000; 0.375000; 0.000000;, + 0.375000; 0.250000; 0.000000;, + -0.375000; 1.000000;-0.117178;, + -0.250000; 1.000000;-0.117178;, + -0.250000; 1.000000; 0.000000;, + -0.375000; 1.000000; 0.000000;, + 0.375000;-0.875000;-0.117178;, + 0.375000;-0.750000;-0.117178;, + 0.375000;-0.750000; 0.000000;, + 0.375000;-0.875000; 0.000000;, + -0.625000;-0.250000;-0.117178;, + -0.625000;-0.125000;-0.117178;, + -0.625000;-0.125000; 0.000000;, + -0.625000;-0.250000; 0.000000;, + 0.375000;-0.750000;-0.117178;, + 0.375000;-0.625000;-0.117178;, + 0.375000;-0.625000; 0.000000;, + 0.375000;-0.750000; 0.000000;, + -0.125000;-0.875000; 0.000000;, + -0.125000;-0.750000; 0.000000;, + -0.250000;-0.750000; 0.000000;, + -0.250000;-0.875000; 0.000000;, + -0.125000;-1.000000; 0.000000;, + -0.125000;-0.875000; 0.000000;, + -0.250000;-0.875000; 0.000000;, + -0.250000;-1.000000; 0.000000;, + -0.125000; 0.875000;-0.117178;, + -0.125000; 1.000000;-0.117178;, + -0.125000; 1.000000; 0.000000;, + -0.125000; 0.875000; 0.000000;, + 0.250000; 0.625000;-0.117178;, + 0.250000; 0.500000;-0.117178;, + 0.250000; 0.500000; 0.000000;, + 0.250000; 0.625000; 0.000000;, + 0.750000;-0.125000;-0.117178;, + 0.750000;-0.250000;-0.117178;, + 0.750000;-0.250000; 0.000000;, + 0.750000;-0.125000; 0.000000;, + -0.500000;-1.000000;-0.117178;, + -0.625000;-1.000000;-0.117178;, + -0.625000;-1.000000; 0.000000;, + -0.500000;-1.000000; 0.000000;, + -0.625000; 0.875000;-0.117178;, + -0.625000; 1.000000;-0.117178;, + -0.625000; 1.000000; 0.000000;, + -0.625000; 0.875000; 0.000000;, + -0.250000; 0.500000;-0.117178;, + -0.250000; 0.375000;-0.117178;, + -0.250000; 0.375000; 0.000000;, + -0.250000; 0.500000; 0.000000;, + -0.125000;-0.500000;-0.117178;, + -0.125000;-0.375000;-0.117178;, + -0.125000;-0.375000; 0.000000;, + -0.125000;-0.500000; 0.000000;, + 0.375000;-0.375000; 0.000000;, + 0.375000;-0.250000; 0.000000;, + 0.250000;-0.250000; 0.000000;, + 0.250000;-0.375000; 0.000000;, + 0.375000;-0.500000; 0.000000;, + 0.375000;-0.375000; 0.000000;, + 0.250000;-0.375000; 0.000000;, + 0.250000;-0.500000; 0.000000;, + -0.625000;-0.625000;-0.117178;, + -0.625000;-0.500000;-0.117178;, + -0.625000;-0.500000; 0.000000;, + -0.625000;-0.625000; 0.000000;, + 0.250000; 0.500000;-0.117178;, + 0.250000; 0.375000;-0.117178;, + 0.250000; 0.375000; 0.000000;, + 0.250000; 0.500000; 0.000000;, + 0.375000; 0.000000;-0.117178;, + 0.375000; 0.125000;-0.117178;, + 0.375000; 0.125000; 0.000000;, + 0.375000; 0.000000; 0.000000;, + 0.250000; 0.875000;-0.117178;, + 0.250000; 0.750000;-0.117178;, + 0.250000; 0.750000; 0.000000;, + 0.250000; 0.875000; 0.000000;, + 0.500000; 1.000000;-0.117178;, + 0.625000; 1.000000;-0.117178;, + 0.625000; 1.000000; 0.000000;, + 0.500000; 1.000000; 0.000000;, + -0.125000; 0.625000;-0.117178;, + -0.125000; 0.750000;-0.117178;, + -0.125000; 0.750000; 0.000000;, + -0.125000; 0.625000; 0.000000;, + -0.625000; 0.000000;-0.117178;, + -0.625000; 0.125000;-0.117178;, + -0.625000; 0.125000; 0.000000;, + -0.625000; 0.000000; 0.000000;, + 0.375000;-0.875000; 0.000000;, + 0.375000;-0.750000; 0.000000;, + 0.250000;-0.750000; 0.000000;, + 0.250000;-0.875000; 0.000000;, + 0.375000;-1.000000; 0.000000;, + 0.375000;-0.875000; 0.000000;, + 0.250000;-0.875000; 0.000000;, + 0.250000;-1.000000; 0.000000;, + 0.250000;-0.875000;-0.117178;, + 0.250000;-1.000000;-0.117178;, + 0.250000;-1.000000; 0.000000;, + 0.250000;-0.875000; 0.000000;, + -0.625000;-0.500000;-0.117178;, + -0.625000;-0.375000;-0.117178;, + -0.625000;-0.375000; 0.000000;, + -0.625000;-0.500000; 0.000000;, + 0.250000;-0.250000;-0.117178;, + 0.250000;-0.375000;-0.117178;, + 0.250000;-0.375000; 0.000000;, + 0.250000;-0.250000; 0.000000;, + 0.375000; 0.625000;-0.117178;, + 0.375000; 0.750000;-0.117178;, + 0.375000; 0.750000; 0.000000;, + 0.375000; 0.625000; 0.000000;, + 0.750000; 0.750000;-0.117178;, + 0.750000; 0.625000;-0.117178;, + 0.750000; 0.625000; 0.000000;, + 0.750000; 0.750000; 0.000000;, + -0.125000;-1.000000;-0.117178;, + -0.125000;-0.875000;-0.117178;, + -0.125000;-0.875000; 0.000000;, + -0.125000;-1.000000; 0.000000;, + 0.750000;-1.000000;-0.117178;, + 0.625000;-1.000000;-0.117178;, + 0.625000;-1.000000; 0.000000;, + 0.750000;-1.000000; 0.000000;, + 0.750000; 0.125000;-0.117178;, + 0.750000; 0.250000;-0.117178;, + 0.625000; 0.250000;-0.117178;, + 0.625000; 0.125000;-0.117178;, + 0.750000; 0.375000;-0.117178;, + 0.750000; 0.500000;-0.117178;, + 0.625000; 0.500000;-0.117178;, + 0.625000; 0.375000;-0.117178;, + 0.500000; 0.125000;-0.117178;, + 0.500000; 0.250000;-0.117178;, + 0.375000; 0.250000;-0.117178;, + 0.375000; 0.125000;-0.117178;, + 0.250000; 0.125000;-0.117178;, + 0.250000; 0.250000;-0.117178;, + 0.125000; 0.250000;-0.117178;, + 0.125000; 0.125000;-0.117178;, + 0.250000; 0.375000;-0.117178;, + 0.250000; 0.500000;-0.117178;, + 0.125000; 0.500000;-0.117178;, + 0.125000; 0.375000;-0.117178;, + 0.500000; 0.625000;-0.117178;, + 0.500000; 0.750000;-0.117178;, + 0.375000; 0.750000;-0.117178;, + 0.375000; 0.625000;-0.117178;, + 0.250000; 0.625000;-0.117178;, + 0.250000; 0.750000;-0.117178;, + 0.125000; 0.750000;-0.117178;, + 0.125000; 0.625000;-0.117178;, + 0.250000; 0.875000;-0.117178;, + 0.250000; 1.000000;-0.117178;, + 0.125000; 1.000000;-0.117178;, + 0.125000; 0.875000;-0.117178;, + 0.750000;-0.375000;-0.117178;, + 0.750000;-0.250000;-0.117178;, + 0.625000;-0.250000;-0.117178;, + 0.625000;-0.375000;-0.117178;, + 0.750000;-0.125000;-0.117178;, + 0.750000; 0.000000;-0.117178;, + 0.625000; 0.000000;-0.117178;, + 0.625000;-0.125000;-0.117178;, + 0.000000;-0.375000;-0.117178;, + 0.000000;-0.250000;-0.117178;, + -0.125000;-0.250000;-0.117178;, + -0.125000;-0.375000;-0.117178;, + -0.250000;-0.375000;-0.117178;, + -0.250000;-0.250000;-0.117178;, + -0.375000;-0.250000;-0.117178;, + -0.375000;-0.375000;-0.117178;, + -0.250000;-0.125000;-0.117178;, + -0.250000; 0.000000;-0.117178;, + -0.375000; 0.000000;-0.117178;, + -0.375000;-0.125000;-0.117178;, + 0.000000; 0.625000;-0.117178;, + 0.000000; 0.750000;-0.117178;, + -0.125000; 0.750000;-0.117178;, + -0.125000; 0.625000;-0.117178;, + -0.250000; 0.625000;-0.117178;, + -0.250000; 0.750000;-0.117178;, + -0.375000; 0.750000;-0.117178;, + -0.375000; 0.625000;-0.117178;, + -0.250000; 0.875000;-0.117178;, + -0.250000; 1.000000;-0.117178;, + -0.375000; 1.000000;-0.117178;, + -0.375000; 0.875000;-0.117178;, + 0.750000; 0.625000;-0.117178;, + 0.750000; 0.750000;-0.117178;, + 0.625000; 0.750000;-0.117178;, + 0.625000; 0.625000;-0.117178;, + 0.750000; 0.875000;-0.117178;, + 0.750000; 1.000000;-0.117178;, + 0.625000; 1.000000;-0.117178;, + 0.625000; 0.875000;-0.117178;, + 0.500000;-0.625000;-0.117178;, + 0.500000;-0.500000;-0.117178;, + 0.375000;-0.500000;-0.117178;, + 0.375000;-0.625000;-0.117178;, + 0.500000;-0.125000;-0.117178;, + 0.500000; 0.000000;-0.117178;, + 0.375000; 0.000000;-0.117178;, + 0.375000;-0.125000;-0.117178;, + 0.000000;-0.625000;-0.117178;, + 0.000000;-0.500000;-0.117178;, + -0.125000;-0.500000;-0.117178;, + -0.125000;-0.625000;-0.117178;, + -0.500000;-0.625000;-0.117178;, + -0.500000;-0.500000;-0.117178;, + -0.625000;-0.500000;-0.117178;, + -0.625000;-0.625000;-0.117178;, + -0.500000;-0.125000;-0.117178;, + -0.500000; 0.000000;-0.117178;, + -0.625000; 0.000000;-0.117178;, + -0.625000;-0.125000;-0.117178;, + 0.000000; 0.375000;-0.117178;, + 0.000000; 0.500000;-0.117178;, + -0.125000; 0.500000;-0.117178;, + -0.125000; 0.375000;-0.117178;, + -0.500000; 0.375000;-0.117178;, + -0.500000; 0.500000;-0.117178;, + -0.625000; 0.500000;-0.117178;, + -0.625000; 0.375000;-0.117178;, + -0.500000; 0.875000;-0.117178;, + -0.500000; 1.000000;-0.117178;, + -0.625000; 1.000000;-0.117178;, + -0.625000; 0.875000;-0.117178;, + 0.500000; 0.375000;-0.117178;, + 0.500000; 0.500000;-0.117178;, + 0.375000; 0.500000;-0.117178;, + 0.375000; 0.375000;-0.117178;, + 0.500000; 0.875000;-0.117178;, + 0.500000; 1.000000;-0.117178;, + 0.375000; 1.000000;-0.117178;, + 0.375000; 0.875000;-0.117178;, + 0.000000;-0.125000;-0.117178;, + 0.000000; 0.000000;-0.117178;, + -0.125000; 0.000000;-0.117178;, + -0.125000;-0.125000;-0.117178;, + 0.000000; 0.875000;-0.117178;, + 0.000000; 1.000000;-0.117178;, + -0.125000; 1.000000;-0.117178;, + -0.125000; 0.875000;-0.117178;, + 0.250000;-0.250000; 0.330204;, + 0.250000;-0.125000; 0.330204;, + 0.250000;-0.125000; 0.246450;, + 0.250000;-0.250000; 0.246450;, + -0.250000; 0.500000; 0.330204;, + -0.250000; 0.625000; 0.330204;, + -0.250000; 0.625000; 0.246450;, + -0.250000; 0.500000; 0.246450;, + 0.750000; 0.750000; 0.330204;, + 0.750000; 0.875000; 0.330204;, + 0.750000; 0.875000; 0.246450;, + 0.750000; 0.750000; 0.246450;, + -0.125000;-0.750000; 0.330204;, + -0.125000;-0.875000; 0.330204;, + -0.125000;-0.875000; 0.246450;, + -0.125000;-0.750000; 0.246450;, + -0.125000;-0.125000; 0.330204;, + -0.125000;-0.250000; 0.330204;, + -0.125000;-0.250000; 0.246450;, + -0.125000;-0.125000; 0.246450;, + -0.625000; 0.375000; 0.330204;, + -0.625000; 0.250000; 0.330204;, + -0.625000; 0.250000; 0.246450;, + -0.625000; 0.375000; 0.246450;, + -0.250000; 0.125000; 0.330204;, + -0.250000; 0.250000; 0.330204;, + -0.250000; 0.250000; 0.246450;, + -0.250000; 0.125000; 0.246450;, + -0.125000;-0.625000; 0.330204;, + -0.125000;-0.750000; 0.330204;, + -0.125000;-0.750000; 0.246450;, + -0.125000;-0.625000; 0.246450;, + -0.250000;-0.125000; 0.330204;, + -0.250000; 0.000000; 0.330204;, + -0.250000; 0.000000; 0.246450;, + -0.250000;-0.125000; 0.246450;, + -0.250000; 0.750000; 0.330204;, + -0.250000; 0.875000; 0.330204;, + -0.250000; 0.875000; 0.246450;, + -0.250000; 0.750000; 0.246450;, + 0.375000; 1.000000; 0.330204;, + 0.375000; 0.875000; 0.330204;, + 0.375000; 0.875000; 0.246450;, + 0.375000; 1.000000; 0.246450;, + 0.750000; 0.000000; 0.330204;, + 0.750000; 0.125000; 0.330204;, + 0.750000; 0.125000; 0.246450;, + 0.750000; 0.000000; 0.246450;, + 0.250000; 0.125000; 0.330204;, + 0.250000; 0.250000; 0.330204;, + 0.250000; 0.250000; 0.246450;, + 0.250000; 0.125000; 0.246450;, + -0.500000;-1.000000; 0.330204;, + -0.375000;-1.000000; 0.330204;, + -0.375000;-1.000000; 0.246450;, + -0.500000;-1.000000; 0.246450;, + -0.125000; 0.500000; 0.330204;, + -0.125000; 0.375000; 0.330204;, + -0.125000; 0.375000; 0.246450;, + -0.125000; 0.500000; 0.246450;, + -0.125000;-1.000000; 0.330204;, + 0.000000;-1.000000; 0.330204;, + 0.000000;-1.000000; 0.246450;, + -0.125000;-1.000000; 0.246450;, + 0.375000; 0.000000; 0.330204;, + 0.375000;-0.125000; 0.330204;, + 0.375000;-0.125000; 0.246450;, + 0.375000; 0.000000; 0.246450;, + 0.750000; 0.250000; 0.330204;, + 0.750000; 0.375000; 0.330204;, + 0.750000; 0.375000; 0.246450;, + 0.750000; 0.250000; 0.246450;, + -0.250000; 1.000000; 0.246450;, + -0.125000; 1.000000; 0.246450;, + -0.125000; 0.875000; 0.246450;, + -0.250000; 0.875000; 0.246450;, + -0.250000; 0.875000; 0.246450;, + -0.125000; 0.875000; 0.246450;, + -0.125000; 0.750000; 0.246450;, + -0.250000; 0.750000; 0.246450;, + 0.500000; 1.000000; 0.330204;, + 0.375000; 1.000000; 0.330204;, + 0.375000; 1.000000; 0.246450;, + 0.500000; 1.000000; 0.246450;, + -0.250000; 0.000000; 0.246450;, + -0.125000; 0.000000; 0.246450;, + -0.125000;-0.125000; 0.246450;, + -0.250000;-0.125000; 0.246450;, + -0.250000;-0.125000; 0.246450;, + -0.125000;-0.125000; 0.246450;, + -0.125000;-0.250000; 0.246450;, + -0.250000;-0.250000; 0.246450;, + -0.250000;-1.000000; 0.330204;, + -0.250000;-0.875000; 0.330204;, + -0.250000;-0.875000; 0.246450;, + -0.250000;-1.000000; 0.246450;, + 0.250000; 1.000000; 0.246450;, + 0.375000; 1.000000; 0.246450;, + 0.375000; 0.875000; 0.246450;, + 0.250000; 0.875000; 0.246450;, + 0.250000; 0.875000; 0.246450;, + 0.375000; 0.875000; 0.246450;, + 0.375000; 0.750000; 0.246450;, + 0.250000; 0.750000; 0.246450;, + 0.125000; 1.000000; 0.330204;, + 0.000000; 1.000000; 0.330204;, + 0.000000; 1.000000; 0.246450;, + 0.125000; 1.000000; 0.246450;, + 0.250000; 0.500000; 0.246450;, + 0.375000; 0.500000; 0.246450;, + 0.375000; 0.375000; 0.246450;, + 0.250000; 0.375000; 0.246450;, + 0.250000; 0.375000; 0.246450;, + 0.375000; 0.375000; 0.246450;, + 0.375000; 0.250000; 0.246450;, + 0.250000; 0.250000; 0.246450;, + 0.750000;-0.875000; 0.330204;, + 0.750000;-0.750000; 0.330204;, + 0.750000;-0.750000; 0.246450;, + 0.750000;-0.875000; 0.246450;, + -0.750000; 1.000000; 0.246450;, + -0.625000; 1.000000; 0.246450;, + -0.625000; 0.875000; 0.246450;, + -0.750000; 0.875000; 0.246450;, + -0.750000; 0.875000; 0.246450;, + -0.625000; 0.875000; 0.246450;, + -0.625000; 0.750000; 0.246450;, + -0.750000; 0.750000; 0.246450;, + -0.625000; 0.750000; 0.330204;, + -0.625000; 0.625000; 0.330204;, + -0.625000; 0.625000; 0.246450;, + -0.625000; 0.750000; 0.246450;, + -0.750000; 0.500000; 0.246450;, + -0.625000; 0.500000; 0.246450;, + -0.625000; 0.375000; 0.246450;, + -0.750000; 0.375000; 0.246450;, + -0.750000; 0.375000; 0.246450;, + -0.625000; 0.375000; 0.246450;, + -0.625000; 0.250000; 0.246450;, + -0.750000; 0.250000; 0.246450;, + 0.375000;-0.875000; 0.330204;, + 0.375000;-1.000000; 0.330204;, + 0.375000;-1.000000; 0.246450;, + 0.375000;-0.875000; 0.246450;, + -0.250000; 0.500000; 0.246450;, + -0.125000; 0.500000; 0.246450;, + -0.125000; 0.375000; 0.246450;, + -0.250000; 0.375000; 0.246450;, + -0.250000; 0.375000; 0.246450;, + -0.125000; 0.375000; 0.246450;, + -0.125000; 0.250000; 0.246450;, + -0.250000; 0.250000; 0.246450;, + 0.250000;-0.125000; 0.330204;, + 0.250000; 0.000000; 0.330204;, + 0.250000; 0.000000; 0.246450;, + 0.250000;-0.125000; 0.246450;, + -0.750000; 0.000000; 0.246450;, + -0.625000; 0.000000; 0.246450;, + -0.625000;-0.125000; 0.246450;, + -0.750000;-0.125000; 0.246450;, + -0.750000;-0.125000; 0.246450;, + -0.625000;-0.125000; 0.246450;, + -0.625000;-0.250000; 0.246450;, + -0.750000;-0.250000; 0.246450;, + -0.125000; 0.250000; 0.330204;, + -0.125000; 0.125000; 0.330204;, + -0.125000; 0.125000; 0.246450;, + -0.125000; 0.250000; 0.246450;, + -0.750000;-0.500000; 0.246450;, + -0.625000;-0.500000; 0.246450;, + -0.625000;-0.625000; 0.246450;, + -0.750000;-0.625000; 0.246450;, + -0.750000;-0.625000; 0.246450;, + -0.625000;-0.625000; 0.246450;, + -0.625000;-0.750000; 0.246450;, + -0.750000;-0.750000; 0.246450;, + -0.250000;-0.750000; 0.330204;, + -0.250000;-0.625000; 0.330204;, + -0.250000;-0.625000; 0.246450;, + -0.250000;-0.750000; 0.246450;, + -0.250000;-0.500000; 0.246450;, + -0.125000;-0.500000; 0.246450;, + -0.125000;-0.625000; 0.246450;, + -0.250000;-0.625000; 0.246450;, + -0.250000;-0.625000; 0.246450;, + -0.125000;-0.625000; 0.246450;, + -0.125000;-0.750000; 0.246450;, + -0.250000;-0.750000; 0.246450;, + 0.750000; 0.875000; 0.330204;, + 0.750000; 1.000000; 0.330204;, + 0.750000; 1.000000; 0.246450;, + 0.750000; 0.875000; 0.246450;, + 0.250000; 0.000000; 0.246450;, + 0.375000; 0.000000; 0.246450;, + 0.375000;-0.125000; 0.246450;, + 0.250000;-0.125000; 0.246450;, + 0.250000;-0.125000; 0.246450;, + 0.375000;-0.125000; 0.246450;, + 0.375000;-0.250000; 0.246450;, + 0.250000;-0.250000; 0.246450;, + 0.125000;-1.000000; 0.330204;, + 0.250000;-1.000000; 0.330204;, + 0.250000;-1.000000; 0.246450;, + 0.125000;-1.000000; 0.246450;, + 0.250000;-0.500000; 0.246450;, + 0.375000;-0.500000; 0.246450;, + 0.375000;-0.625000; 0.246450;, + 0.250000;-0.625000; 0.246450;, + 0.250000;-0.625000; 0.246450;, + 0.375000;-0.625000; 0.246450;, + 0.375000;-0.750000; 0.246450;, + 0.250000;-0.750000; 0.246450;, + -0.125000; 0.875000; 0.330204;, + -0.125000; 0.750000; 0.330204;, + -0.125000; 0.750000; 0.246450;, + -0.125000; 0.875000; 0.246450;, + 0.750000;-0.375000; 0.330204;, + 0.750000;-0.250000; 0.330204;, + 0.750000;-0.250000; 0.246450;, + 0.750000;-0.375000; 0.246450;, + -0.500000; 1.000000; 0.330204;, + -0.625000; 1.000000; 0.330204;, + -0.625000; 1.000000; 0.246450;, + -0.500000; 1.000000; 0.246450;, + 0.375000;-0.250000; 0.330204;, + 0.375000;-0.375000; 0.330204;, + 0.375000;-0.375000; 0.246450;, + 0.375000;-0.250000; 0.246450;, + -0.625000; 0.875000; 0.330204;, + -0.625000; 0.750000; 0.330204;, + -0.625000; 0.750000; 0.246450;, + -0.625000; 0.875000; 0.246450;, + -0.250000; 0.000000; 0.330204;, + -0.250000; 0.125000; 0.330204;, + -0.250000; 0.125000; 0.246450;, + -0.250000; 0.000000; 0.246450;, + -0.625000;-0.625000; 0.330204;, + -0.625000;-0.750000; 0.330204;, + -0.625000;-0.750000; 0.246450;, + -0.625000;-0.625000; 0.246450;, + -0.250000; 0.875000; 0.330204;, + -0.250000; 1.000000; 0.330204;, + -0.250000; 1.000000; 0.246450;, + -0.250000; 0.875000; 0.246450;, + -0.125000; 0.000000; 0.330204;, + -0.125000;-0.125000; 0.330204;, + -0.125000;-0.125000; 0.246450;, + -0.125000; 0.000000; 0.246450;, + 0.250000; 0.000000; 0.330204;, + 0.250000; 0.125000; 0.330204;, + 0.250000; 0.125000; 0.246450;, + 0.250000; 0.000000; 0.246450;, + 0.250000; 0.625000; 0.330204;, + 0.250000; 0.750000; 0.330204;, + 0.250000; 0.750000; 0.246450;, + 0.250000; 0.625000; 0.246450;, + -0.125000; 0.625000; 0.330204;, + -0.125000; 0.500000; 0.330204;, + -0.125000; 0.500000; 0.246450;, + -0.125000; 0.625000; 0.246450;, + -0.625000; 0.500000; 0.330204;, + -0.625000; 0.375000; 0.330204;, + -0.625000; 0.375000; 0.246450;, + -0.625000; 0.500000; 0.246450;, + -0.250000; 0.750000; 0.246450;, + -0.125000; 0.750000; 0.246450;, + -0.125000; 0.625000; 0.246450;, + -0.250000; 0.625000; 0.246450;, + -0.250000; 0.625000; 0.246450;, + -0.125000; 0.625000; 0.246450;, + -0.125000; 0.500000; 0.246450;, + -0.250000; 0.500000; 0.246450;, + -0.250000; 0.250000; 0.330204;, + -0.250000; 0.375000; 0.330204;, + -0.250000; 0.375000; 0.246450;, + -0.250000; 0.250000; 0.246450;, + -0.125000;-0.500000; 0.330204;, + -0.125000;-0.625000; 0.330204;, + -0.125000;-0.625000; 0.246450;, + -0.125000;-0.500000; 0.246450;, + 0.375000; 0.625000; 0.330204;, + 0.375000; 0.500000; 0.330204;, + 0.375000; 0.500000; 0.246450;, + 0.375000; 0.625000; 0.246450;, + 0.750000; 0.375000; 0.330204;, + 0.750000; 0.500000; 0.330204;, + 0.750000; 0.500000; 0.246450;, + 0.750000; 0.375000; 0.246450;, + 0.250000; 0.250000; 0.330204;, + 0.250000; 0.375000; 0.330204;, + 0.250000; 0.375000; 0.246450;, + 0.250000; 0.250000; 0.246450;, + 0.750000; 1.000000; 0.330204;, + 0.625000; 1.000000; 0.330204;, + 0.625000; 1.000000; 0.246450;, + 0.750000; 1.000000; 0.246450;, + 0.750000;-1.000000; 0.330204;, + 0.750000;-0.875000; 0.330204;, + 0.750000;-0.875000; 0.246450;, + 0.750000;-1.000000; 0.246450;, + -0.250000;-0.250000; 0.246450;, + -0.125000;-0.250000; 0.246450;, + -0.125000;-0.375000; 0.246450;, + -0.250000;-0.375000; 0.246450;, + -0.250000;-0.375000; 0.246450;, + -0.125000;-0.375000; 0.246450;, + -0.125000;-0.500000; 0.246450;, + -0.250000;-0.500000; 0.246450;, + -0.625000;-0.875000; 0.330204;, + -0.625000;-1.000000; 0.330204;, + -0.625000;-1.000000; 0.246450;, + -0.625000;-0.875000; 0.246450;, + 0.250000;-0.875000; 0.330204;, + 0.250000;-0.750000; 0.330204;, + 0.250000;-0.750000; 0.246450;, + 0.250000;-0.875000; 0.246450;, + 0.375000;-1.000000; 0.330204;, + 0.500000;-1.000000; 0.330204;, + 0.500000;-1.000000; 0.246450;, + 0.375000;-1.000000; 0.246450;, + -0.250000;-0.625000; 0.330204;, + -0.250000;-0.500000; 0.330204;, + -0.250000;-0.500000; 0.246450;, + -0.250000;-0.625000; 0.246450;, + 0.125000;-1.152395; 0.000000;, + 0.125000;-1.152395; 0.246450;, + 0.125000;-1.000000; 0.246450;, + 0.125000;-1.000000; 0.000000;, + 0.750000;-0.750000; 0.330204;, + 0.750000;-0.625000; 0.330204;, + 0.750000;-0.625000; 0.246450;, + 0.750000;-0.750000; 0.246450;, + 0.750000;-0.500000; 0.330204;, + 0.750000;-0.375000; 0.330204;, + 0.750000;-0.375000; 0.246450;, + 0.750000;-0.500000; 0.246450;, + -0.250000;-0.375000; 0.330204;, + -0.250000;-0.250000; 0.330204;, + -0.250000;-0.250000; 0.246450;, + -0.250000;-0.375000; 0.246450;, + 0.375000; 0.375000; 0.330204;, + 0.375000; 0.250000; 0.330204;, + 0.375000; 0.250000; 0.246450;, + 0.375000; 0.375000; 0.246450;, + -0.250000; 1.000000; 0.330204;, + -0.375000; 1.000000; 0.330204;, + -0.375000; 1.000000; 0.246450;, + -0.250000; 1.000000; 0.246450;, + 0.375000;-0.750000; 0.330204;, + 0.375000;-0.875000; 0.330204;, + 0.375000;-0.875000; 0.246450;, + 0.375000;-0.750000; 0.246450;, + -0.625000;-0.125000; 0.330204;, + -0.625000;-0.250000; 0.330204;, + -0.625000;-0.250000; 0.246450;, + -0.625000;-0.125000; 0.246450;, + 0.375000;-0.625000; 0.330204;, + 0.375000;-0.750000; 0.330204;, + 0.375000;-0.750000; 0.246450;, + 0.375000;-0.625000; 0.246450;, + 0.250000; 0.750000; 0.246450;, + 0.375000; 0.750000; 0.246450;, + 0.375000; 0.625000; 0.246450;, + 0.250000; 0.625000; 0.246450;, + 0.250000; 0.625000; 0.246450;, + 0.375000; 0.625000; 0.246450;, + 0.375000; 0.500000; 0.246450;, + 0.250000; 0.500000; 0.246450;, + -0.125000; 1.000000; 0.330204;, + -0.125000; 0.875000; 0.330204;, + -0.125000; 0.875000; 0.246450;, + -0.125000; 1.000000; 0.246450;, + 0.250000; 0.500000; 0.330204;, + 0.250000; 0.625000; 0.330204;, + 0.250000; 0.625000; 0.246450;, + 0.250000; 0.500000; 0.246450;, + 0.750000;-0.250000; 0.330204;, + 0.750000;-0.125000; 0.330204;, + 0.750000;-0.125000; 0.246450;, + 0.750000;-0.250000; 0.246450;, + -0.625000;-1.000000; 0.330204;, + -0.500000;-1.000000; 0.330204;, + -0.500000;-1.000000; 0.246450;, + -0.625000;-1.000000; 0.246450;, + -0.625000; 1.000000; 0.330204;, + -0.625000; 0.875000; 0.330204;, + -0.625000; 0.875000; 0.246450;, + -0.625000; 1.000000; 0.246450;, + -0.250000; 0.375000; 0.330204;, + -0.250000; 0.500000; 0.330204;, + -0.250000; 0.500000; 0.246450;, + -0.250000; 0.375000; 0.246450;, + -0.125000;-0.375000; 0.330204;, + -0.125000;-0.500000; 0.330204;, + -0.125000;-0.500000; 0.246450;, + -0.125000;-0.375000; 0.246450;, + 0.250000; 0.250000; 0.246450;, + 0.375000; 0.250000; 0.246450;, + 0.375000; 0.125000; 0.246450;, + 0.250000; 0.125000; 0.246450;, + 0.250000; 0.125000; 0.246450;, + 0.375000; 0.125000; 0.246450;, + 0.375000; 0.000000; 0.246450;, + 0.250000; 0.000000; 0.246450;, + -0.625000;-0.500000; 0.330204;, + -0.625000;-0.625000; 0.330204;, + -0.625000;-0.625000; 0.246450;, + -0.625000;-0.500000; 0.246450;, + 0.250000; 0.375000; 0.330204;, + 0.250000; 0.500000; 0.330204;, + 0.250000; 0.500000; 0.246450;, + 0.250000; 0.375000; 0.246450;, + 0.375000; 0.125000; 0.330204;, + 0.375000; 0.000000; 0.330204;, + 0.375000; 0.000000; 0.246450;, + 0.375000; 0.125000; 0.246450;, + 0.250000; 0.750000; 0.330204;, + 0.250000; 0.875000; 0.330204;, + 0.250000; 0.875000; 0.246450;, + 0.250000; 0.750000; 0.246450;, + 0.625000; 1.000000; 0.330204;, + 0.500000; 1.000000; 0.330204;, + 0.500000; 1.000000; 0.246450;, + 0.625000; 1.000000; 0.246450;, + -0.125000; 0.750000; 0.330204;, + -0.125000; 0.625000; 0.330204;, + -0.125000; 0.625000; 0.246450;, + -0.125000; 0.750000; 0.246450;, + -0.625000; 0.125000; 0.330204;, + -0.625000; 0.000000; 0.330204;, + -0.625000; 0.000000; 0.246450;, + -0.625000; 0.125000; 0.246450;, + -0.750000; 0.750000; 0.246450;, + -0.625000; 0.750000; 0.246450;, + -0.625000; 0.625000; 0.246450;, + -0.750000; 0.625000; 0.246450;, + -0.750000; 0.625000; 0.246450;, + -0.625000; 0.625000; 0.246450;, + -0.625000; 0.500000; 0.246450;, + -0.750000; 0.500000; 0.246450;, + 0.250000;-1.000000; 0.330204;, + 0.250000;-0.875000; 0.330204;, + 0.250000;-0.875000; 0.246450;, + 0.250000;-1.000000; 0.246450;, + -0.750000; 0.250000; 0.246450;, + -0.625000; 0.250000; 0.246450;, + -0.625000; 0.125000; 0.246450;, + -0.750000; 0.125000; 0.246450;, + -0.750000; 0.125000; 0.246450;, + -0.625000; 0.125000; 0.246450;, + -0.625000; 0.000000; 0.246450;, + -0.750000; 0.000000; 0.246450;, + -0.625000;-0.375000; 0.330204;, + -0.625000;-0.500000; 0.330204;, + -0.625000;-0.500000; 0.246450;, + -0.625000;-0.375000; 0.246450;, + 0.250000;-0.375000; 0.330204;, + 0.250000;-0.250000; 0.330204;, + 0.250000;-0.250000; 0.246450;, + 0.250000;-0.375000; 0.246450;, + 0.375000; 0.750000; 0.330204;, + 0.375000; 0.625000; 0.330204;, + 0.375000; 0.625000; 0.246450;, + 0.375000; 0.750000; 0.246450;, + 0.750000; 0.625000; 0.330204;, + 0.750000; 0.750000; 0.330204;, + 0.750000; 0.750000; 0.246450;, + 0.750000; 0.625000; 0.246450;, + -0.125000;-0.875000; 0.330204;, + -0.125000;-1.000000; 0.330204;, + -0.125000;-1.000000; 0.246450;, + -0.125000;-0.875000; 0.246450;, + 0.625000;-1.000000; 0.330204;, + 0.750000;-1.000000; 0.330204;, + 0.750000;-1.000000; 0.246450;, + 0.625000;-1.000000; 0.246450;, + 0.750000;-0.625000; 0.330204;, + 0.750000;-0.500000; 0.330204;, + 0.750000;-0.500000; 0.246450;, + 0.750000;-0.625000; 0.246450;, + -0.250000; 0.250000; 0.246450;, + -0.125000; 0.250000; 0.246450;, + -0.125000; 0.125000; 0.246450;, + -0.250000; 0.125000; 0.246450;, + -0.250000; 0.125000; 0.246450;, + -0.125000; 0.125000; 0.246450;, + -0.125000; 0.000000; 0.246450;, + -0.250000; 0.000000; 0.246450;, + -0.625000;-0.750000; 0.330204;, + -0.625000;-0.875000; 0.330204;, + -0.625000;-0.875000; 0.246450;, + -0.625000;-0.750000; 0.246450;, + -0.750000;-0.250000; 0.246450;, + -0.625000;-0.250000; 0.246450;, + -0.625000;-0.375000; 0.246450;, + -0.750000;-0.375000; 0.246450;, + -0.750000;-0.375000; 0.246450;, + -0.625000;-0.375000; 0.246450;, + -0.625000;-0.500000; 0.246450;, + -0.750000;-0.500000; 0.246450;, + 0.250000;-0.750000; 0.330204;, + 0.250000;-0.625000; 0.330204;, + 0.250000;-0.625000; 0.246450;, + 0.250000;-0.750000; 0.246450;, + -0.750000;-0.750000; 0.246450;, + -0.625000;-0.750000; 0.246450;, + -0.625000;-0.875000; 0.246450;, + -0.750000;-0.875000; 0.246450;, + -0.750000;-0.875000; 0.246450;, + -0.625000;-0.875000; 0.246450;, + -0.625000;-1.000000; 0.246450;, + -0.750000;-1.000000; 0.246450;, + -0.250000;-0.500000; 0.330204;, + -0.250000;-0.375000; 0.330204;, + -0.250000;-0.375000; 0.246450;, + -0.250000;-0.500000; 0.246450;, + -0.250000; 0.625000; 0.330204;, + -0.250000; 0.750000; 0.330204;, + -0.250000; 0.750000; 0.246450;, + -0.250000; 0.625000; 0.246450;, + 0.375000; 0.875000; 0.330204;, + 0.375000; 0.750000; 0.330204;, + 0.375000; 0.750000; 0.246450;, + 0.375000; 0.875000; 0.246450;, + -0.375000; 1.000000; 0.330204;, + -0.500000; 1.000000; 0.330204;, + -0.500000; 1.000000; 0.246450;, + -0.375000; 1.000000; 0.246450;, + -0.125000; 0.375000; 0.330204;, + -0.125000; 0.250000; 0.330204;, + -0.125000; 0.250000; 0.246450;, + -0.125000; 0.375000; 0.246450;, + 0.000000; 1.000000; 0.330204;, + -0.125000; 1.000000; 0.330204;, + -0.125000; 1.000000; 0.246450;, + 0.000000; 1.000000; 0.246450;, + 0.375000;-0.125000; 0.330204;, + 0.375000;-0.250000; 0.330204;, + 0.375000;-0.250000; 0.246450;, + 0.375000;-0.125000; 0.246450;, + -0.250000;-0.750000; 0.246450;, + -0.125000;-0.750000; 0.246450;, + -0.125000;-0.875000; 0.246450;, + -0.250000;-0.875000; 0.246450;, + -0.250000;-0.875000; 0.246450;, + -0.125000;-0.875000; 0.246450;, + -0.125000;-1.000000; 0.246450;, + -0.250000;-1.000000; 0.246450;, + 0.750000;-0.125000; 0.330204;, + 0.750000; 0.000000; 0.330204;, + 0.750000; 0.000000; 0.246450;, + 0.750000;-0.125000; 0.246450;, + -0.250000;-0.250000; 0.330204;, + -0.250000;-0.125000; 0.330204;, + -0.250000;-0.125000; 0.246450;, + -0.250000;-0.250000; 0.246450;, + 0.375000; 0.500000; 0.330204;, + 0.375000; 0.375000; 0.330204;, + 0.375000; 0.375000; 0.246450;, + 0.375000; 0.500000; 0.246450;, + 0.750000; 0.125000; 0.330204;, + 0.750000; 0.250000; 0.330204;, + 0.750000; 0.250000; 0.246450;, + 0.750000; 0.125000; 0.246450;, + -0.375000;-1.000000; 0.330204;, + -0.250000;-1.000000; 0.330204;, + -0.250000;-1.000000; 0.246450;, + -0.375000;-1.000000; 0.246450;, + -0.625000; 0.000000; 0.330204;, + -0.625000;-0.125000; 0.330204;, + -0.625000;-0.125000; 0.246450;, + -0.625000; 0.000000; 0.246450;, + 0.375000;-0.500000; 0.330204;, + 0.375000;-0.625000; 0.330204;, + 0.375000;-0.625000; 0.246450;, + 0.375000;-0.500000; 0.246450;, + 0.250000;-0.250000; 0.246450;, + 0.375000;-0.250000; 0.246450;, + 0.375000;-0.375000; 0.246450;, + 0.250000;-0.375000; 0.246450;, + 0.250000;-0.375000; 0.246450;, + 0.375000;-0.375000; 0.246450;, + 0.375000;-0.500000; 0.246450;, + 0.250000;-0.500000; 0.246450;, + 0.250000; 0.875000; 0.330204;, + 0.250000; 1.000000; 0.330204;, + 0.250000; 1.000000; 0.246450;, + 0.250000; 0.875000; 0.246450;, + -0.625000; 0.625000; 0.330204;, + -0.625000; 0.500000; 0.330204;, + -0.625000; 0.500000; 0.246450;, + -0.625000; 0.625000; 0.246450;, + -0.125000;-0.250000; 0.330204;, + -0.125000;-0.375000; 0.330204;, + -0.125000;-0.375000; 0.246450;, + -0.125000;-0.250000; 0.246450;, + 0.250000;-0.500000; 0.330204;, + 0.250000;-0.375000; 0.330204;, + 0.250000;-0.375000; 0.246450;, + 0.250000;-0.500000; 0.246450;, + -0.125000; 0.125000; 0.330204;, + -0.125000; 0.000000; 0.330204;, + -0.125000; 0.000000; 0.246450;, + -0.125000; 0.125000; 0.246450;, + -0.250000;-0.875000; 0.330204;, + -0.250000;-0.750000; 0.330204;, + -0.250000;-0.750000; 0.246450;, + -0.250000;-0.875000; 0.246450;, + 0.750000; 0.500000; 0.330204;, + 0.750000; 0.625000; 0.330204;, + 0.750000; 0.625000; 0.246450;, + 0.750000; 0.500000; 0.246450;, + 0.250000;-0.750000; 0.246450;, + 0.375000;-0.750000; 0.246450;, + 0.375000;-0.875000; 0.246450;, + 0.250000;-0.875000; 0.246450;, + 0.250000;-0.875000; 0.246450;, + 0.375000;-0.875000; 0.246450;, + 0.375000;-1.000000; 0.246450;, + 0.250000;-1.000000; 0.246450;, + 0.250000; 1.000000; 0.330204;, + 0.125000; 1.000000; 0.330204;, + 0.125000; 1.000000; 0.246450;, + 0.250000; 1.000000; 0.246450;, + 0.375000; 0.250000; 0.330204;, + 0.375000; 0.125000; 0.330204;, + 0.375000; 0.125000; 0.246450;, + 0.375000; 0.250000; 0.246450;, + 0.500000;-1.000000; 0.330204;, + 0.625000;-1.000000; 0.330204;, + 0.625000;-1.000000; 0.246450;, + 0.500000;-1.000000; 0.246450;, + 0.375000;-0.375000; 0.330204;, + 0.375000;-0.500000; 0.330204;, + 0.375000;-0.500000; 0.246450;, + 0.375000;-0.375000; 0.246450;, + -0.625000; 0.250000; 0.330204;, + -0.625000; 0.125000; 0.330204;, + -0.625000; 0.125000; 0.246450;, + -0.625000; 0.250000; 0.246450;, + 0.250000;-0.625000; 0.330204;, + 0.250000;-0.500000; 0.330204;, + 0.250000;-0.500000; 0.246450;, + 0.250000;-0.625000; 0.246450;, + -0.625000;-0.250000; 0.330204;, + -0.625000;-0.375000; 0.330204;, + -0.625000;-0.375000; 0.246450;, + -0.625000;-0.250000; 0.246450;, + 0.625000;-1.000000; 0.246450;, + 0.750000;-1.000000; 0.246450;, + 0.750000;-1.000000; 0.000000;, + 0.625000;-1.000000; 0.000000;, + 0.000000;-1.287628;-0.289304;, + 0.000000;-1.152395;-0.289304;, + 0.000000;-1.152395; 0.000000;, + 0.000000;-1.287628; 0.000000;, + -0.750000; 0.500000; 0.246450;, + -0.750000; 0.375000; 0.246450;, + -0.750000; 0.375000; 0.000000;, + -0.750000; 0.500000; 0.000000;, + 0.859843;-1.000000; 0.000000;, + 0.859843;-0.875000; 0.000000;, + 0.750000;-0.875000; 0.000000;, + 0.750000;-1.000000; 0.000000;, + -0.750000;-0.250000; 0.246450;, + -0.750000;-0.375000; 0.246450;, + -0.750000;-0.375000; 0.000000;, + -0.750000;-0.250000; 0.000000;, + 0.859843; 0.500000; 0.246450;, + 0.859843; 0.375000; 0.246450;, + 0.750000; 0.375000; 0.246450;, + 0.750000; 0.500000; 0.246450;, + -0.375000; 1.000000; 0.246450;, + -0.500000; 1.000000; 0.246450;, + -0.500000; 1.000000; 0.000000;, + -0.375000; 1.000000; 0.000000;, + -0.750000;-0.500000; 0.246450;, + -0.750000;-0.625000; 0.246450;, + -0.750000;-0.625000; 0.000000;, + -0.750000;-0.500000; 0.000000;, + 0.859843;-0.500000; 0.246450;, + 0.859843;-0.625000; 0.246450;, + 0.750000;-0.625000; 0.246450;, + 0.750000;-0.500000; 0.246450;, + 0.125000;-1.000000; 0.246450;, + 0.250000;-1.000000; 0.246450;, + 0.250000;-1.000000; 0.000000;, + 0.125000;-1.000000; 0.000000;, + -0.750000; 1.000000; 0.246450;, + -0.750000; 0.875000; 0.246450;, + -0.750000; 0.875000; 0.000000;, + -0.750000; 1.000000; 0.000000;, + -0.750000; 0.375000; 0.246450;, + -0.750000; 0.250000; 0.246450;, + -0.750000; 0.250000; 0.000000;, + -0.750000; 0.375000; 0.000000;, + -0.500000; 1.000000; 0.246450;, + -0.625000; 1.000000; 0.246450;, + -0.625000; 1.000000; 0.000000;, + -0.500000; 1.000000; 0.000000;, + 0.859843;-0.375000; 0.246450;, + 0.859843;-0.500000; 0.246450;, + 0.750000;-0.500000; 0.246450;, + 0.750000;-0.375000; 0.246450;, + -0.250000; 1.000000; 0.246450;, + -0.375000; 1.000000; 0.246450;, + -0.375000; 1.000000; 0.000000;, + -0.250000; 1.000000; 0.000000;, + 0.859843; 0.250000; 0.000000;, + 0.859843; 0.375000; 0.000000;, + 0.750000; 0.375000; 0.000000;, + 0.750000; 0.250000; 0.000000;, + -0.750000; 0.000000; 0.246450;, + -0.750000;-0.125000; 0.246450;, + -0.750000;-0.125000; 0.000000;, + -0.750000; 0.000000; 0.000000;, + -0.750000;-0.625000; 0.246450;, + -0.750000;-0.750000; 0.246450;, + -0.750000;-0.750000; 0.000000;, + -0.750000;-0.625000; 0.000000;, + 0.500000; 1.000000; 0.246450;, + 0.375000; 1.000000; 0.246450;, + 0.375000; 1.000000; 0.000000;, + 0.500000; 1.000000; 0.000000;, + 0.859843; 0.250000; 0.246450;, + 0.859843; 0.125000; 0.246450;, + 0.750000; 0.125000; 0.246450;, + 0.750000; 0.250000; 0.246450;, + -0.750000; 0.875000; 0.246450;, + -0.750000; 0.750000; 0.246450;, + -0.750000; 0.750000; 0.000000;, + -0.750000; 0.875000; 0.000000;, + 0.000000; 1.000000; 0.246450;, + -0.125000; 1.000000; 0.246450;, + -0.125000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -0.625000; 1.000000; 0.246450;, + -0.750000; 1.000000; 0.246450;, + -0.750000; 1.000000; 0.000000;, + -0.625000; 1.000000; 0.000000;, + 0.859843;-0.750000; 0.000000;, + 0.859843;-0.625000; 0.000000;, + 0.750000;-0.625000; 0.000000;, + 0.750000;-0.750000; 0.000000;, + 0.625000; 1.000000; 0.246450;, + 0.500000; 1.000000; 0.246450;, + 0.500000; 1.000000; 0.000000;, + 0.625000; 1.000000; 0.000000;, + 0.859843; 0.875000; 0.000000;, + 0.859843; 1.000000; 0.000000;, + 0.750000; 1.000000; 0.000000;, + 0.750000; 0.875000; 0.000000;, + -0.750000;-0.125000; 0.246450;, + -0.750000;-0.250000; 0.246450;, + -0.750000;-0.250000; 0.000000;, + -0.750000;-0.125000; 0.000000;, + -0.500000;-1.000000; 0.246450;, + -0.375000;-1.000000; 0.246450;, + -0.375000;-1.000000; 0.000000;, + -0.500000;-1.000000; 0.000000;, + 0.375000; 1.000000; 0.246450;, + 0.250000; 1.000000; 0.246450;, + 0.250000; 1.000000; 0.000000;, + 0.375000; 1.000000; 0.000000;, + 0.859843; 0.875000; 0.246450;, + 0.859843; 0.750000; 0.246450;, + 0.750000; 0.750000; 0.246450;, + 0.750000; 0.875000; 0.246450;, + 0.859843;-0.375000; 0.000000;, + 0.859843;-0.250000; 0.000000;, + 0.750000;-0.250000; 0.000000;, + 0.750000;-0.375000; 0.000000;, + -0.125000; 1.000000; 0.246450;, + -0.250000; 1.000000; 0.246450;, + -0.250000; 1.000000; 0.000000;, + -0.125000; 1.000000; 0.000000;, + -0.625000;-1.000000; 0.246450;, + -0.500000;-1.000000; 0.246450;, + -0.500000;-1.000000; 0.000000;, + -0.625000;-1.000000; 0.000000;, + 0.750000; 1.000000; 0.246450;, + 0.625000; 1.000000; 0.246450;, + 0.625000; 1.000000; 0.000000;, + 0.750000; 1.000000; 0.000000;, + 0.125000; 1.000000; 0.246450;, + 0.000000; 1.000000; 0.246450;, + 0.000000; 1.000000; 0.000000;, + 0.125000; 1.000000; 0.000000;, + -0.750000; 0.125000; 0.246450;, + -0.750000; 0.000000; 0.246450;, + -0.750000; 0.000000; 0.000000;, + -0.750000; 0.125000; 0.000000;, + 0.859843;-0.750000; 0.246450;, + 0.859843;-0.875000; 0.246450;, + 0.750000;-0.875000; 0.246450;, + 0.750000;-0.750000; 0.246450;, + -0.375000;-1.000000; 0.246450;, + -0.250000;-1.000000; 0.246450;, + -0.250000;-1.000000; 0.000000;, + -0.375000;-1.000000; 0.000000;, + 0.859843;-0.125000; 0.000000;, + 0.859843; 0.000000; 0.000000;, + 0.750000; 0.000000; 0.000000;, + 0.750000;-0.125000; 0.000000;, + 0.375000;-1.000000; 0.246450;, + 0.500000;-1.000000; 0.246450;, + 0.500000;-1.000000; 0.000000;, + 0.375000;-1.000000; 0.000000;, + -0.750000;-0.875000; 0.246450;, + -0.750000;-1.000000; 0.246450;, + -0.750000;-1.000000; 0.000000;, + -0.750000;-0.875000; 0.000000;, + -0.125000;-1.000000; 0.246450;, + 0.000000;-1.000000; 0.246450;, + 0.000000;-1.000000; 0.000000;, + -0.125000;-1.000000; 0.000000;, + -0.750000;-1.000000; 0.246450;, + -0.625000;-1.000000; 0.246450;, + -0.625000;-1.000000; 0.000000;, + -0.750000;-1.000000; 0.000000;, + 0.250000; 1.000000; 0.246450;, + 0.125000; 1.000000; 0.246450;, + 0.125000; 1.000000; 0.000000;, + 0.250000; 1.000000; 0.000000;, + -0.750000; 0.625000; 0.246450;, + -0.750000; 0.500000; 0.246450;, + -0.750000; 0.500000; 0.000000;, + -0.750000; 0.625000; 0.000000;, + -0.750000; 0.250000; 0.246450;, + -0.750000; 0.125000; 0.246450;, + -0.750000; 0.125000; 0.000000;, + -0.750000; 0.250000; 0.000000;, + 0.859843; 0.125000; 0.246450;, + 0.859843; 0.000000; 0.246450;, + 0.750000; 0.000000; 0.246450;, + 0.750000; 0.125000; 0.246450;, + 0.500000;-1.000000; 0.246450;, + 0.625000;-1.000000; 0.246450;, + 0.625000;-1.000000; 0.000000;, + 0.500000;-1.000000; 0.000000;, + 0.250000;-1.000000; 0.246450;, + 0.375000;-1.000000; 0.246450;, + 0.375000;-1.000000; 0.000000;, + 0.250000;-1.000000; 0.000000;, + 0.859843; 1.000000; 0.246450;, + 0.859843; 0.875000; 0.246450;, + 0.750000; 0.875000; 0.246450;, + 0.750000; 1.000000; 0.246450;, + -0.750000;-0.375000; 0.246450;, + -0.750000;-0.500000; 0.246450;, + -0.750000;-0.500000; 0.000000;, + -0.750000;-0.375000; 0.000000;, + -0.750000;-0.750000; 0.246450;, + -0.750000;-0.875000; 0.246450;, + -0.750000;-0.875000; 0.000000;, + -0.750000;-0.750000; 0.000000;, + 0.859843;-0.875000; 0.246450;, + 0.859843;-1.000000; 0.246450;, + 0.750000;-1.000000; 0.246450;, + 0.750000;-0.875000; 0.246450;, + -0.250000;-1.000000; 0.246450;, + -0.125000;-1.000000; 0.246450;, + -0.125000;-1.000000; 0.000000;, + -0.250000;-1.000000; 0.000000;, + 0.859843; 0.375000; 0.000000;, + 0.859843; 0.500000; 0.000000;, + 0.750000; 0.500000; 0.000000;, + 0.750000; 0.375000; 0.000000;, + -0.750000; 0.750000; 0.246450;, + -0.750000; 0.625000; 0.246450;, + -0.750000; 0.625000; 0.000000;, + -0.750000; 0.750000; 0.000000;, + -0.125000; 1.000000; 0.330204;, + 0.000000; 1.000000; 0.330204;, + 0.000000; 0.875000; 0.330204;, + -0.125000; 0.875000; 0.330204;, + -0.125000; 0.000000; 0.330204;, + 0.000000; 0.000000; 0.330204;, + 0.000000;-0.125000; 0.330204;, + -0.125000;-0.125000; 0.330204;, + 0.375000; 1.000000; 0.330204;, + 0.500000; 1.000000; 0.330204;, + 0.500000; 0.875000; 0.330204;, + 0.375000; 0.875000; 0.330204;, + 0.375000; 0.500000; 0.330204;, + 0.500000; 0.500000; 0.330204;, + 0.500000; 0.375000; 0.330204;, + 0.375000; 0.375000; 0.330204;, + -0.625000; 1.000000; 0.330204;, + -0.500000; 1.000000; 0.330204;, + -0.500000; 0.875000; 0.330204;, + -0.625000; 0.875000; 0.330204;, + -0.625000; 0.500000; 0.330204;, + -0.500000; 0.500000; 0.330204;, + -0.500000; 0.375000; 0.330204;, + -0.625000; 0.375000; 0.330204;, + -0.125000; 0.500000; 0.330204;, + 0.000000; 0.500000; 0.330204;, + 0.000000; 0.375000; 0.330204;, + -0.125000; 0.375000; 0.330204;, + -0.625000; 0.000000; 0.330204;, + -0.500000; 0.000000; 0.330204;, + -0.500000;-0.125000; 0.330204;, + -0.625000;-0.125000; 0.330204;, + -0.625000;-0.500000; 0.330204;, + -0.500000;-0.500000; 0.330204;, + -0.500000;-0.625000; 0.330204;, + -0.625000;-0.625000; 0.330204;, + -0.125000;-0.500000; 0.330204;, + 0.000000;-0.500000; 0.330204;, + 0.000000;-0.625000; 0.330204;, + -0.125000;-0.625000; 0.330204;, + 0.375000; 0.000000; 0.330204;, + 0.500000; 0.000000; 0.330204;, + 0.500000;-0.125000; 0.330204;, + 0.375000;-0.125000; 0.330204;, + 0.375000;-0.500000; 0.330204;, + 0.500000;-0.500000; 0.330204;, + 0.500000;-0.625000; 0.330204;, + 0.375000;-0.625000; 0.330204;, + 0.625000; 1.000000; 0.330204;, + 0.750000; 1.000000; 0.330204;, + 0.750000; 0.875000; 0.330204;, + 0.625000; 0.875000; 0.330204;, + 0.625000; 0.750000; 0.330204;, + 0.750000; 0.750000; 0.330204;, + 0.750000; 0.625000; 0.330204;, + 0.625000; 0.625000; 0.330204;, + -0.375000; 1.000000; 0.330204;, + -0.250000; 1.000000; 0.330204;, + -0.250000; 0.875000; 0.330204;, + -0.375000; 0.875000; 0.330204;, + -0.375000; 0.750000; 0.330204;, + -0.250000; 0.750000; 0.330204;, + -0.250000; 0.625000; 0.330204;, + -0.375000; 0.625000; 0.330204;, + -0.125000; 0.750000; 0.330204;, + 0.000000; 0.750000; 0.330204;, + 0.000000; 0.625000; 0.330204;, + -0.125000; 0.625000; 0.330204;, + -0.375000; 0.000000; 0.330204;, + -0.250000; 0.000000; 0.330204;, + -0.250000;-0.125000; 0.330204;, + -0.375000;-0.125000; 0.330204;, + -0.375000;-0.250000; 0.330204;, + -0.250000;-0.250000; 0.330204;, + -0.250000;-0.375000; 0.330204;, + -0.375000;-0.375000; 0.330204;, + -0.125000;-0.250000; 0.330204;, + 0.000000;-0.250000; 0.330204;, + 0.000000;-0.375000; 0.330204;, + -0.125000;-0.375000; 0.330204;, + 0.625000; 0.000000; 0.330204;, + 0.750000; 0.000000; 0.330204;, + 0.750000;-0.125000; 0.330204;, + 0.625000;-0.125000; 0.330204;, + 0.625000;-0.250000; 0.330204;, + 0.750000;-0.250000; 0.330204;, + 0.750000;-0.375000; 0.330204;, + 0.625000;-0.375000; 0.330204;, + 0.125000; 1.000000; 0.330204;, + 0.250000; 1.000000; 0.330204;, + 0.250000; 0.875000; 0.330204;, + 0.125000; 0.875000; 0.330204;, + 0.125000; 0.750000; 0.330204;, + 0.250000; 0.750000; 0.330204;, + 0.250000; 0.625000; 0.330204;, + 0.125000; 0.625000; 0.330204;, + 0.375000; 0.750000; 0.330204;, + 0.500000; 0.750000; 0.330204;, + 0.500000; 0.625000; 0.330204;, + 0.375000; 0.625000; 0.330204;, + 0.125000; 0.500000; 0.330204;, + 0.250000; 0.500000; 0.330204;, + 0.250000; 0.375000; 0.330204;, + 0.125000; 0.375000; 0.330204;, + 0.125000; 0.250000; 0.330204;, + 0.250000; 0.250000; 0.330204;, + 0.250000; 0.125000; 0.330204;, + 0.125000; 0.125000; 0.330204;, + 0.375000; 0.250000; 0.330204;, + 0.500000; 0.250000; 0.330204;, + 0.500000; 0.125000; 0.330204;, + 0.375000; 0.125000; 0.330204;, + 0.625000; 0.500000; 0.330204;, + 0.750000; 0.500000; 0.330204;, + 0.750000; 0.375000; 0.330204;, + 0.625000; 0.375000; 0.330204;, + 0.625000; 0.250000; 0.330204;, + 0.750000; 0.250000; 0.330204;, + 0.750000; 0.125000; 0.330204;, + 0.625000; 0.125000; 0.330204;, + -0.625000; 0.750000; 0.330204;, + -0.500000; 0.750000; 0.330204;, + -0.500000; 0.625000; 0.330204;, + -0.625000; 0.625000; 0.330204;, + -0.625000; 0.250000; 0.330204;, + -0.500000; 0.250000; 0.330204;, + -0.500000; 0.125000; 0.330204;, + -0.625000; 0.125000; 0.330204;, + -0.375000; 0.500000; 0.330204;, + -0.250000; 0.500000; 0.330204;, + -0.250000; 0.375000; 0.330204;, + -0.375000; 0.375000; 0.330204;, + -0.375000; 0.250000; 0.330204;, + -0.250000; 0.250000; 0.330204;, + -0.250000; 0.125000; 0.330204;, + -0.375000; 0.125000; 0.330204;, + -0.125000; 0.250000; 0.330204;, + 0.000000; 0.250000; 0.330204;, + 0.000000; 0.125000; 0.330204;, + -0.125000; 0.125000; 0.330204;, + -0.625000;-0.250000; 0.330204;, + -0.500000;-0.250000; 0.330204;, + -0.500000;-0.375000; 0.330204;, + -0.625000;-0.375000; 0.330204;, + -0.625000;-0.750000; 0.330204;, + -0.500000;-0.750000; 0.330204;, + -0.500000;-0.875000; 0.330204;, + -0.625000;-0.875000; 0.330204;, + -0.375000;-0.500000; 0.330204;, + -0.250000;-0.500000; 0.330204;, + -0.250000;-0.625000; 0.330204;, + -0.375000;-0.625000; 0.330204;, + -0.375000;-0.750000; 0.330204;, + -0.250000;-0.750000; 0.330204;, + -0.250000;-0.875000; 0.330204;, + -0.375000;-0.875000; 0.330204;, + -0.125000;-0.750000; 0.330204;, + 0.000000;-0.750000; 0.330204;, + 0.000000;-0.875000; 0.330204;, + -0.125000;-0.875000; 0.330204;, + 0.125000; 0.000000; 0.330204;, + 0.250000; 0.000000; 0.330204;, + 0.250000;-0.125000; 0.330204;, + 0.125000;-0.125000; 0.330204;, + 0.125000;-0.250000; 0.330204;, + 0.250000;-0.250000; 0.330204;, + 0.250000;-0.375000; 0.330204;, + 0.125000;-0.375000; 0.330204;, + 0.375000;-0.250000; 0.330204;, + 0.500000;-0.250000; 0.330204;, + 0.500000;-0.375000; 0.330204;, + 0.375000;-0.375000; 0.330204;, + 0.125000;-0.500000; 0.330204;, + 0.250000;-0.500000; 0.330204;, + 0.250000;-0.625000; 0.330204;, + 0.125000;-0.625000; 0.330204;, + 0.125000;-0.750000; 0.330204;, + 0.250000;-0.750000; 0.330204;, + 0.250000;-0.875000; 0.330204;, + 0.125000;-0.875000; 0.330204;, + 0.375000;-0.750000; 0.330204;, + 0.500000;-0.750000; 0.330204;, + 0.500000;-0.875000; 0.330204;, + 0.375000;-0.875000; 0.330204;, + 0.625000;-0.500000; 0.330204;, + 0.750000;-0.500000; 0.330204;, + 0.750000;-0.625000; 0.330204;, + 0.625000;-0.625000; 0.330204;, + 0.625000;-0.750000; 0.330204;, + 0.750000;-0.750000; 0.330204;, + 0.750000;-0.875000; 0.330204;, + 0.625000;-0.875000; 0.330204;, + -0.125000; 0.875000; 0.330204;, + 0.000000; 0.875000; 0.330204;, + 0.000000; 0.750000; 0.330204;, + -0.125000; 0.750000; 0.330204;, + -0.125000;-0.125000; 0.330204;, + 0.000000;-0.125000; 0.330204;, + 0.000000;-0.250000; 0.330204;, + -0.125000;-0.250000; 0.330204;, + 0.375000; 0.875000; 0.330204;, + 0.500000; 0.875000; 0.330204;, + 0.500000; 0.750000; 0.330204;, + 0.375000; 0.750000; 0.330204;, + 0.375000; 0.375000; 0.330204;, + 0.500000; 0.375000; 0.330204;, + 0.500000; 0.250000; 0.330204;, + 0.375000; 0.250000; 0.330204;, + -0.625000; 0.875000; 0.330204;, + -0.500000; 0.875000; 0.330204;, + -0.500000; 0.750000; 0.330204;, + -0.625000; 0.750000; 0.330204;, + -0.625000; 0.375000; 0.330204;, + -0.500000; 0.375000; 0.330204;, + -0.500000; 0.250000; 0.330204;, + -0.625000; 0.250000; 0.330204;, + -0.125000; 0.375000; 0.330204;, + 0.000000; 0.375000; 0.330204;, + 0.000000; 0.250000; 0.330204;, + -0.125000; 0.250000; 0.330204;, + -0.625000;-0.125000; 0.330204;, + -0.500000;-0.125000; 0.330204;, + -0.500000;-0.250000; 0.330204;, + -0.625000;-0.250000; 0.330204;, + -0.625000;-0.625000; 0.330204;, + -0.500000;-0.625000; 0.330204;, + -0.500000;-0.750000; 0.330204;, + -0.625000;-0.750000; 0.330204;, + -0.125000;-0.625000; 0.330204;, + 0.000000;-0.625000; 0.330204;, + 0.000000;-0.750000; 0.330204;, + -0.125000;-0.750000; 0.330204;, + 0.375000;-0.125000; 0.330204;, + 0.500000;-0.125000; 0.330204;, + 0.500000;-0.250000; 0.330204;, + 0.375000;-0.250000; 0.330204;, + 0.375000;-0.625000; 0.330204;, + 0.500000;-0.625000; 0.330204;, + 0.500000;-0.750000; 0.330204;, + 0.375000;-0.750000; 0.330204;, + 0.500000; 1.000000; 0.330204;, + 0.625000; 1.000000; 0.330204;, + 0.625000; 0.875000; 0.330204;, + 0.500000; 0.875000; 0.330204;, + 0.500000; 0.875000; 0.330204;, + 0.625000; 0.875000; 0.330204;, + 0.625000; 0.750000; 0.330204;, + 0.500000; 0.750000; 0.330204;, + 0.625000; 0.875000; 0.330204;, + 0.750000; 0.875000; 0.330204;, + 0.750000; 0.750000; 0.330204;, + 0.625000; 0.750000; 0.330204;, + 0.500000; 0.750000; 0.330204;, + 0.625000; 0.750000; 0.330204;, + 0.625000; 0.625000; 0.330204;, + 0.500000; 0.625000; 0.330204;, + 0.500000; 0.625000; 0.330204;, + 0.625000; 0.625000; 0.330204;, + 0.625000; 0.500000; 0.330204;, + 0.500000; 0.500000; 0.330204;, + 0.625000; 0.625000; 0.330204;, + 0.750000; 0.625000; 0.330204;, + 0.750000; 0.500000; 0.330204;, + 0.625000; 0.500000; 0.330204;, + -0.500000; 1.000000; 0.330204;, + -0.375000; 1.000000; 0.330204;, + -0.375000; 0.875000; 0.330204;, + -0.500000; 0.875000; 0.330204;, + -0.500000; 0.875000; 0.330204;, + -0.375000; 0.875000; 0.330204;, + -0.375000; 0.750000; 0.330204;, + -0.500000; 0.750000; 0.330204;, + -0.375000; 0.875000; 0.330204;, + -0.250000; 0.875000; 0.330204;, + -0.250000; 0.750000; 0.330204;, + -0.375000; 0.750000; 0.330204;, + -0.500000; 0.750000; 0.330204;, + -0.375000; 0.750000; 0.330204;, + -0.375000; 0.625000; 0.330204;, + -0.500000; 0.625000; 0.330204;, + -0.500000; 0.625000; 0.330204;, + -0.375000; 0.625000; 0.330204;, + -0.375000; 0.500000; 0.330204;, + -0.500000; 0.500000; 0.330204;, + -0.375000; 0.625000; 0.330204;, + -0.250000; 0.625000; 0.330204;, + -0.250000; 0.500000; 0.330204;, + -0.375000; 0.500000; 0.330204;, + -0.125000; 0.625000; 0.330204;, + 0.000000; 0.625000; 0.330204;, + 0.000000; 0.500000; 0.330204;, + -0.125000; 0.500000; 0.330204;, + -0.500000; 0.000000; 0.330204;, + -0.375000; 0.000000; 0.330204;, + -0.375000;-0.125000; 0.330204;, + -0.500000;-0.125000; 0.330204;, + -0.500000;-0.125000; 0.330204;, + -0.375000;-0.125000; 0.330204;, + -0.375000;-0.250000; 0.330204;, + -0.500000;-0.250000; 0.330204;, + -0.375000;-0.125000; 0.330204;, + -0.250000;-0.125000; 0.330204;, + -0.250000;-0.250000; 0.330204;, + -0.375000;-0.250000; 0.330204;, + -0.500000;-0.250000; 0.330204;, + -0.375000;-0.250000; 0.330204;, + -0.375000;-0.375000; 0.330204;, + -0.500000;-0.375000; 0.330204;, + -0.500000;-0.375000; 0.330204;, + -0.375000;-0.375000; 0.330204;, + -0.375000;-0.500000; 0.330204;, + -0.500000;-0.500000; 0.330204;, + -0.375000;-0.375000; 0.330204;, + -0.250000;-0.375000; 0.330204;, + -0.250000;-0.500000; 0.330204;, + -0.375000;-0.500000; 0.330204;, + -0.125000;-0.375000; 0.330204;, + 0.000000;-0.375000; 0.330204;, + 0.000000;-0.500000; 0.330204;, + -0.125000;-0.500000; 0.330204;, + 0.500000; 0.000000; 0.330204;, + 0.625000; 0.000000; 0.330204;, + 0.625000;-0.125000; 0.330204;, + 0.500000;-0.125000; 0.330204;, + 0.500000;-0.125000; 0.330204;, + 0.625000;-0.125000; 0.330204;, + 0.625000;-0.250000; 0.330204;, + 0.500000;-0.250000; 0.330204;, + 0.625000;-0.125000; 0.330204;, + 0.750000;-0.125000; 0.330204;, + 0.750000;-0.250000; 0.330204;, + 0.625000;-0.250000; 0.330204;, + 0.500000;-0.250000; 0.330204;, + 0.625000;-0.250000; 0.330204;, + 0.625000;-0.375000; 0.330204;, + 0.500000;-0.375000; 0.330204;, + 0.500000;-0.375000; 0.330204;, + 0.625000;-0.375000; 0.330204;, + 0.625000;-0.500000; 0.330204;, + 0.500000;-0.500000; 0.330204;, + 0.625000;-0.375000; 0.330204;, + 0.750000;-0.375000; 0.330204;, + 0.750000;-0.500000; 0.330204;, + 0.625000;-0.500000; 0.330204;, + 0.000000; 1.000000; 0.330204;, + 0.125000; 1.000000; 0.330204;, + 0.125000; 0.875000; 0.330204;, + 0.000000; 0.875000; 0.330204;, + 0.000000; 0.875000; 0.330204;, + 0.125000; 0.875000; 0.330204;, + 0.125000; 0.750000; 0.330204;, + 0.000000; 0.750000; 0.330204;, + 0.125000; 0.875000; 0.330204;, + 0.250000; 0.875000; 0.330204;, + 0.250000; 0.750000; 0.330204;, + 0.125000; 0.750000; 0.330204;, + 0.000000; 0.750000; 0.330204;, + 0.125000; 0.750000; 0.330204;, + 0.125000; 0.625000; 0.330204;, + 0.000000; 0.625000; 0.330204;, + 0.000000; 0.625000; 0.330204;, + 0.125000; 0.625000; 0.330204;, + 0.125000; 0.500000; 0.330204;, + 0.000000; 0.500000; 0.330204;, + 0.125000; 0.625000; 0.330204;, + 0.250000; 0.625000; 0.330204;, + 0.250000; 0.500000; 0.330204;, + 0.125000; 0.500000; 0.330204;, + 0.375000; 0.625000; 0.330204;, + 0.500000; 0.625000; 0.330204;, + 0.500000; 0.500000; 0.330204;, + 0.375000; 0.500000; 0.330204;, + 0.000000; 0.500000; 0.330204;, + 0.125000; 0.500000; 0.330204;, + 0.125000; 0.375000; 0.330204;, + 0.000000; 0.375000; 0.330204;, + 0.000000; 0.375000; 0.330204;, + 0.125000; 0.375000; 0.330204;, + 0.125000; 0.250000; 0.330204;, + 0.000000; 0.250000; 0.330204;, + 0.125000; 0.375000; 0.330204;, + 0.250000; 0.375000; 0.330204;, + 0.250000; 0.250000; 0.330204;, + 0.125000; 0.250000; 0.330204;, + 0.000000; 0.250000; 0.330204;, + 0.125000; 0.250000; 0.330204;, + 0.125000; 0.125000; 0.330204;, + 0.000000; 0.125000; 0.330204;, + 0.000000; 0.125000; 0.330204;, + 0.125000; 0.125000; 0.330204;, + 0.125000; 0.000000; 0.330204;, + 0.000000; 0.000000; 0.330204;, + 0.125000; 0.125000; 0.330204;, + 0.250000; 0.125000; 0.330204;, + 0.250000; 0.000000; 0.330204;, + 0.125000; 0.000000; 0.330204;, + 0.375000; 0.125000; 0.330204;, + 0.500000; 0.125000; 0.330204;, + 0.500000; 0.000000; 0.330204;, + 0.375000; 0.000000; 0.330204;, + 0.500000; 0.500000; 0.330204;, + 0.625000; 0.500000; 0.330204;, + 0.625000; 0.375000; 0.330204;, + 0.500000; 0.375000; 0.330204;, + 0.500000; 0.375000; 0.330204;, + 0.625000; 0.375000; 0.330204;, + 0.625000; 0.250000; 0.330204;, + 0.500000; 0.250000; 0.330204;, + 0.625000; 0.375000; 0.330204;, + 0.750000; 0.375000; 0.330204;, + 0.750000; 0.250000; 0.330204;, + 0.625000; 0.250000; 0.330204;, + 0.500000; 0.250000; 0.330204;, + 0.625000; 0.250000; 0.330204;, + 0.625000; 0.125000; 0.330204;, + 0.500000; 0.125000; 0.330204;, + 0.500000; 0.125000; 0.330204;, + 0.625000; 0.125000; 0.330204;, + 0.625000; 0.000000; 0.330204;, + 0.500000; 0.000000; 0.330204;, + 0.625000; 0.125000; 0.330204;, + 0.750000; 0.125000; 0.330204;, + 0.750000; 0.000000; 0.330204;, + 0.625000; 0.000000; 0.330204;, + -0.625000; 0.625000; 0.330204;, + -0.500000; 0.625000; 0.330204;, + -0.500000; 0.500000; 0.330204;, + -0.625000; 0.500000; 0.330204;, + -0.625000; 0.125000; 0.330204;, + -0.500000; 0.125000; 0.330204;, + -0.500000; 0.000000; 0.330204;, + -0.625000; 0.000000; 0.330204;, + -0.500000; 0.500000; 0.330204;, + -0.375000; 0.500000; 0.330204;, + -0.375000; 0.375000; 0.330204;, + -0.500000; 0.375000; 0.330204;, + -0.500000; 0.375000; 0.330204;, + -0.375000; 0.375000; 0.330204;, + -0.375000; 0.250000; 0.330204;, + -0.500000; 0.250000; 0.330204;, + -0.375000; 0.375000; 0.330204;, + -0.250000; 0.375000; 0.330204;, + -0.250000; 0.250000; 0.330204;, + -0.375000; 0.250000; 0.330204;, + -0.500000; 0.250000; 0.330204;, + -0.375000; 0.250000; 0.330204;, + -0.375000; 0.125000; 0.330204;, + -0.500000; 0.125000; 0.330204;, + -0.500000; 0.125000; 0.330204;, + -0.375000; 0.125000; 0.330204;, + -0.375000; 0.000000; 0.330204;, + -0.500000; 0.000000; 0.330204;, + -0.375000; 0.125000; 0.330204;, + -0.250000; 0.125000; 0.330204;, + -0.250000; 0.000000; 0.330204;, + -0.375000; 0.000000; 0.330204;, + -0.125000; 0.125000; 0.330204;, + 0.000000; 0.125000; 0.330204;, + 0.000000; 0.000000; 0.330204;, + -0.125000; 0.000000; 0.330204;, + -0.625000;-0.375000; 0.330204;, + -0.500000;-0.375000; 0.330204;, + -0.500000;-0.500000; 0.330204;, + -0.625000;-0.500000; 0.330204;, + -0.625000;-0.875000; 0.330204;, + -0.500000;-0.875000; 0.330204;, + -0.500000;-1.000000; 0.330204;, + -0.625000;-1.000000; 0.330204;, + -0.500000;-0.500000; 0.330204;, + -0.375000;-0.500000; 0.330204;, + -0.375000;-0.625000; 0.330204;, + -0.500000;-0.625000; 0.330204;, + -0.500000;-0.625000; 0.330204;, + -0.375000;-0.625000; 0.330204;, + -0.375000;-0.750000; 0.330204;, + -0.500000;-0.750000; 0.330204;, + -0.375000;-0.625000; 0.330204;, + -0.250000;-0.625000; 0.330204;, + -0.250000;-0.750000; 0.330204;, + -0.375000;-0.750000; 0.330204;, + -0.500000;-0.750000; 0.330204;, + -0.375000;-0.750000; 0.330204;, + -0.375000;-0.875000; 0.330204;, + -0.500000;-0.875000; 0.330204;, + -0.500000;-0.875000; 0.330204;, + -0.375000;-0.875000; 0.330204;, + -0.375000;-1.000000; 0.330204;, + -0.500000;-1.000000; 0.330204;, + -0.375000;-0.875000; 0.330204;, + -0.250000;-0.875000; 0.330204;, + -0.250000;-1.000000; 0.330204;, + -0.375000;-1.000000; 0.330204;, + -0.125000;-0.875000; 0.330204;, + 0.000000;-0.875000; 0.330204;, + 0.000000;-1.000000; 0.330204;, + -0.125000;-1.000000; 0.330204;, + 0.000000; 0.000000; 0.330204;, + 0.125000; 0.000000; 0.330204;, + 0.125000;-0.125000; 0.330204;, + 0.000000;-0.125000; 0.330204;, + 0.000000;-0.125000; 0.330204;, + 0.125000;-0.125000; 0.330204;, + 0.125000;-0.250000; 0.330204;, + 0.000000;-0.250000; 0.330204;, + 0.125000;-0.125000; 0.330204;, + 0.250000;-0.125000; 0.330204;, + 0.250000;-0.250000; 0.330204;, + 0.125000;-0.250000; 0.330204;, + 0.000000;-0.250000; 0.330204;, + 0.125000;-0.250000; 0.330204;, + 0.125000;-0.375000; 0.330204;, + 0.000000;-0.375000; 0.330204;, + 0.000000;-0.375000; 0.330204;, + 0.125000;-0.375000; 0.330204;, + 0.125000;-0.500000; 0.330204;, + 0.000000;-0.500000; 0.330204;, + 0.125000;-0.375000; 0.330204;, + 0.250000;-0.375000; 0.330204;, + 0.250000;-0.500000; 0.330204;, + 0.125000;-0.500000; 0.330204;, + 0.375000;-0.375000; 0.330204;, + 0.500000;-0.375000; 0.330204;, + 0.500000;-0.500000; 0.330204;, + 0.375000;-0.500000; 0.330204;, + 0.000000;-0.500000; 0.330204;, + 0.125000;-0.500000; 0.330204;, + 0.125000;-0.625000; 0.330204;, + 0.000000;-0.625000; 0.330204;, + 0.000000;-0.625000; 0.330204;, + 0.125000;-0.625000; 0.330204;, + 0.125000;-0.750000; 0.330204;, + 0.000000;-0.750000; 0.330204;, + 0.125000;-0.625000; 0.330204;, + 0.250000;-0.625000; 0.330204;, + 0.250000;-0.750000; 0.330204;, + 0.125000;-0.750000; 0.330204;, + 0.000000;-0.750000; 0.330204;, + 0.125000;-0.750000; 0.330204;, + 0.125000;-0.875000; 0.330204;, + 0.000000;-0.875000; 0.330204;, + 0.000000;-0.875000; 0.330204;, + 0.125000;-0.875000; 0.330204;, + 0.125000;-1.000000; 0.330204;, + 0.000000;-1.000000; 0.330204;, + 0.125000;-0.875000; 0.330204;, + 0.250000;-0.875000; 0.330204;, + 0.250000;-1.000000; 0.330204;, + 0.125000;-1.000000; 0.330204;, + 0.375000;-0.875000; 0.330204;, + 0.500000;-0.875000; 0.330204;, + 0.500000;-1.000000; 0.330204;, + 0.375000;-1.000000; 0.330204;, + 0.500000;-0.500000; 0.330204;, + 0.625000;-0.500000; 0.330204;, + 0.625000;-0.625000; 0.330204;, + 0.500000;-0.625000; 0.330204;, + 0.500000;-0.625000; 0.330204;, + 0.625000;-0.625000; 0.330204;, + 0.625000;-0.750000; 0.330204;, + 0.500000;-0.750000; 0.330204;, + 0.625000;-0.625000; 0.330204;, + 0.750000;-0.625000; 0.330204;, + 0.750000;-0.750000; 0.330204;, + 0.625000;-0.750000; 0.330204;, + 0.500000;-0.750000; 0.330204;, + 0.625000;-0.750000; 0.330204;, + 0.625000;-0.875000; 0.330204;, + 0.500000;-0.875000; 0.330204;, + 0.500000;-0.875000; 0.330204;, + 0.625000;-0.875000; 0.330204;, + 0.625000;-1.000000; 0.330204;, + 0.500000;-1.000000; 0.330204;, + 0.625000;-0.875000; 0.330204;, + 0.750000;-0.875000; 0.330204;, + 0.750000;-1.000000; 0.330204;, + 0.625000;-1.000000; 0.330204;, + -0.500000; 0.625000;-0.117178;, + -0.500000; 0.750000;-0.117178;, + -0.625000; 0.750000;-0.117178;, + -0.625000; 0.625000;-0.117178;, + -0.500000; 0.125000;-0.117178;, + -0.500000; 0.250000;-0.117178;, + -0.625000; 0.250000;-0.117178;, + -0.625000; 0.125000;-0.117178;, + -0.250000; 0.375000;-0.117178;, + -0.250000; 0.500000;-0.117178;, + -0.375000; 0.500000;-0.117178;, + -0.375000; 0.375000;-0.117178;, + -0.250000; 0.125000;-0.117178;, + -0.250000; 0.250000;-0.117178;, + -0.375000; 0.250000;-0.117178;, + -0.375000; 0.125000;-0.117178;, + 0.000000; 0.125000;-0.117178;, + 0.000000; 0.250000;-0.117178;, + -0.125000; 0.250000;-0.117178;, + -0.125000; 0.125000;-0.117178;, + -0.500000;-0.375000;-0.117178;, + -0.500000;-0.250000;-0.117178;, + -0.625000;-0.250000;-0.117178;, + -0.625000;-0.375000;-0.117178;, + -0.500000;-0.875000;-0.117178;, + -0.500000;-0.750000;-0.117178;, + -0.625000;-0.750000;-0.117178;, + -0.625000;-0.875000;-0.117178;, + -0.250000;-0.625000;-0.117178;, + -0.250000;-0.500000;-0.117178;, + -0.375000;-0.500000;-0.117178;, + -0.375000;-0.625000;-0.117178;, + -0.250000;-0.875000;-0.117178;, + -0.250000;-0.750000;-0.117178;, + -0.375000;-0.750000;-0.117178;, + -0.375000;-0.875000;-0.117178;, + 0.000000;-0.875000;-0.117178;, + 0.000000;-0.750000;-0.117178;, + -0.125000;-0.750000;-0.117178;, + -0.125000;-0.875000;-0.117178;, + 0.250000;-0.125000;-0.117178;, + 0.250000; 0.000000;-0.117178;, + 0.125000; 0.000000;-0.117178;, + 0.125000;-0.125000;-0.117178;, + 0.250000;-0.375000;-0.117178;, + 0.250000;-0.250000;-0.117178;, + 0.125000;-0.250000;-0.117178;, + 0.125000;-0.375000;-0.117178;, + 0.500000;-0.375000;-0.117178;, + 0.500000;-0.250000;-0.117178;, + 0.375000;-0.250000;-0.117178;, + 0.375000;-0.375000;-0.117178;, + 0.250000;-0.625000;-0.117178;, + 0.250000;-0.500000;-0.117178;, + 0.125000;-0.500000;-0.117178;, + 0.125000;-0.625000;-0.117178;, + 0.250000;-0.875000;-0.117178;, + 0.250000;-0.750000;-0.117178;, + 0.125000;-0.750000;-0.117178;, + 0.125000;-0.875000;-0.117178;, + 0.500000;-0.875000;-0.117178;, + 0.500000;-0.750000;-0.117178;, + 0.375000;-0.750000;-0.117178;, + 0.375000;-0.875000;-0.117178;, + 0.750000;-0.625000;-0.117178;, + 0.750000;-0.500000;-0.117178;, + 0.625000;-0.500000;-0.117178;, + 0.625000;-0.625000;-0.117178;, + 0.750000;-0.875000;-0.117178;, + 0.750000;-0.750000;-0.117178;, + 0.625000;-0.750000;-0.117178;, + 0.625000;-0.875000;-0.117178;, + 0.000000; 0.750000;-0.117178;, + 0.000000; 0.875000;-0.117178;, + -0.125000; 0.875000;-0.117178;, + -0.125000; 0.750000;-0.117178;, + 0.000000;-0.250000;-0.117178;, + 0.000000;-0.125000;-0.117178;, + -0.125000;-0.125000;-0.117178;, + -0.125000;-0.250000;-0.117178;, + 0.500000; 0.750000;-0.117178;, + 0.500000; 0.875000;-0.117178;, + 0.375000; 0.875000;-0.117178;, + 0.375000; 0.750000;-0.117178;, + 0.500000; 0.250000;-0.117178;, + 0.500000; 0.375000;-0.117178;, + 0.375000; 0.375000;-0.117178;, + 0.375000; 0.250000;-0.117178;, + -0.500000; 0.750000;-0.117178;, + -0.500000; 0.875000;-0.117178;, + -0.625000; 0.875000;-0.117178;, + -0.625000; 0.750000;-0.117178;, + -0.500000; 0.250000;-0.117178;, + -0.500000; 0.375000;-0.117178;, + -0.625000; 0.375000;-0.117178;, + -0.625000; 0.250000;-0.117178;, + 0.000000; 0.250000;-0.117178;, + 0.000000; 0.375000;-0.117178;, + -0.125000; 0.375000;-0.117178;, + -0.125000; 0.250000;-0.117178;, + -0.500000;-0.250000;-0.117178;, + -0.500000;-0.125000;-0.117178;, + -0.625000;-0.125000;-0.117178;, + -0.625000;-0.250000;-0.117178;, + -0.500000;-0.750000;-0.117178;, + -0.500000;-0.625000;-0.117178;, + -0.625000;-0.625000;-0.117178;, + -0.625000;-0.750000;-0.117178;, + 0.000000;-0.750000;-0.117178;, + 0.000000;-0.625000;-0.117178;, + -0.125000;-0.625000;-0.117178;, + -0.125000;-0.750000;-0.117178;, + 0.500000;-0.250000;-0.117178;, + 0.500000;-0.125000;-0.117178;, + 0.375000;-0.125000;-0.117178;, + 0.375000;-0.250000;-0.117178;, + 0.500000;-0.750000;-0.117178;, + 0.500000;-0.625000;-0.117178;, + 0.375000;-0.625000;-0.117178;, + 0.375000;-0.750000;-0.117178;, + 0.625000; 0.875000;-0.117178;, + 0.625000; 1.000000;-0.117178;, + 0.500000; 1.000000;-0.117178;, + 0.500000; 0.875000;-0.117178;, + 0.625000; 0.750000;-0.117178;, + 0.625000; 0.875000;-0.117178;, + 0.500000; 0.875000;-0.117178;, + 0.500000; 0.750000;-0.117178;, + 0.750000; 0.750000;-0.117178;, + 0.750000; 0.875000;-0.117178;, + 0.625000; 0.875000;-0.117178;, + 0.625000; 0.750000;-0.117178;, + 0.625000; 0.625000;-0.117178;, + 0.625000; 0.750000;-0.117178;, + 0.500000; 0.750000;-0.117178;, + 0.500000; 0.625000;-0.117178;, + 0.625000; 0.500000;-0.117178;, + 0.625000; 0.625000;-0.117178;, + 0.500000; 0.625000;-0.117178;, + 0.500000; 0.500000;-0.117178;, + 0.750000; 0.500000;-0.117178;, + 0.750000; 0.625000;-0.117178;, + 0.625000; 0.625000;-0.117178;, + 0.625000; 0.500000;-0.117178;, + -0.375000; 0.875000;-0.117178;, + -0.375000; 1.000000;-0.117178;, + -0.500000; 1.000000;-0.117178;, + -0.500000; 0.875000;-0.117178;, + -0.375000; 0.750000;-0.117178;, + -0.375000; 0.875000;-0.117178;, + -0.500000; 0.875000;-0.117178;, + -0.500000; 0.750000;-0.117178;, + -0.250000; 0.750000;-0.117178;, + -0.250000; 0.875000;-0.117178;, + -0.375000; 0.875000;-0.117178;, + -0.375000; 0.750000;-0.117178;, + -0.375000; 0.625000;-0.117178;, + -0.375000; 0.750000;-0.117178;, + -0.500000; 0.750000;-0.117178;, + -0.500000; 0.625000;-0.117178;, + -0.375000; 0.500000;-0.117178;, + -0.375000; 0.625000;-0.117178;, + -0.500000; 0.625000;-0.117178;, + -0.500000; 0.500000;-0.117178;, + -0.250000; 0.500000;-0.117178;, + -0.250000; 0.625000;-0.117178;, + -0.375000; 0.625000;-0.117178;, + -0.375000; 0.500000;-0.117178;, + 0.000000; 0.500000;-0.117178;, + 0.000000; 0.625000;-0.117178;, + -0.125000; 0.625000;-0.117178;, + -0.125000; 0.500000;-0.117178;, + -0.375000;-0.125000;-0.117178;, + -0.375000; 0.000000;-0.117178;, + -0.500000; 0.000000;-0.117178;, + -0.500000;-0.125000;-0.117178;, + -0.375000;-0.250000;-0.117178;, + -0.375000;-0.125000;-0.117178;, + -0.500000;-0.125000;-0.117178;, + -0.500000;-0.250000;-0.117178;, + -0.250000;-0.250000;-0.117178;, + -0.250000;-0.125000;-0.117178;, + -0.375000;-0.125000;-0.117178;, + -0.375000;-0.250000;-0.117178;, + -0.375000;-0.375000;-0.117178;, + -0.375000;-0.250000;-0.117178;, + -0.500000;-0.250000;-0.117178;, + -0.500000;-0.375000;-0.117178;, + -0.375000;-0.500000;-0.117178;, + -0.375000;-0.375000;-0.117178;, + -0.500000;-0.375000;-0.117178;, + -0.500000;-0.500000;-0.117178;, + -0.250000;-0.500000;-0.117178;, + -0.250000;-0.375000;-0.117178;, + -0.375000;-0.375000;-0.117178;, + -0.375000;-0.500000;-0.117178;, + 0.000000;-0.500000;-0.117178;, + 0.000000;-0.375000;-0.117178;, + -0.125000;-0.375000;-0.117178;, + -0.125000;-0.500000;-0.117178;, + 0.625000;-0.125000;-0.117178;, + 0.625000; 0.000000;-0.117178;, + 0.500000; 0.000000;-0.117178;, + 0.500000;-0.125000;-0.117178;, + 0.625000;-0.250000;-0.117178;, + 0.625000;-0.125000;-0.117178;, + 0.500000;-0.125000;-0.117178;, + 0.500000;-0.250000;-0.117178;, + 0.750000;-0.250000;-0.117178;, + 0.750000;-0.125000;-0.117178;, + 0.625000;-0.125000;-0.117178;, + 0.625000;-0.250000;-0.117178;, + 0.625000;-0.375000;-0.117178;, + 0.625000;-0.250000;-0.117178;, + 0.500000;-0.250000;-0.117178;, + 0.500000;-0.375000;-0.117178;, + 0.625000;-0.500000;-0.117178;, + 0.625000;-0.375000;-0.117178;, + 0.500000;-0.375000;-0.117178;, + 0.500000;-0.500000;-0.117178;, + 0.750000;-0.500000;-0.117178;, + 0.750000;-0.375000;-0.117178;, + 0.625000;-0.375000;-0.117178;, + 0.625000;-0.500000;-0.117178;, + 0.125000; 0.875000;-0.117178;, + 0.125000; 1.000000;-0.117178;, + 0.000000; 1.000000;-0.117178;, + 0.000000; 0.875000;-0.117178;, + 0.125000; 0.750000;-0.117178;, + 0.125000; 0.875000;-0.117178;, + 0.000000; 0.875000;-0.117178;, + 0.000000; 0.750000;-0.117178;, + 0.250000; 0.750000;-0.117178;, + 0.250000; 0.875000;-0.117178;, + 0.125000; 0.875000;-0.117178;, + 0.125000; 0.750000;-0.117178;, + 0.125000; 0.625000;-0.117178;, + 0.125000; 0.750000;-0.117178;, + 0.000000; 0.750000;-0.117178;, + 0.000000; 0.625000;-0.117178;, + 0.125000; 0.500000;-0.117178;, + 0.125000; 0.625000;-0.117178;, + 0.000000; 0.625000;-0.117178;, + 0.000000; 0.500000;-0.117178;, + 0.250000; 0.500000;-0.117178;, + 0.250000; 0.625000;-0.117178;, + 0.125000; 0.625000;-0.117178;, + 0.125000; 0.500000;-0.117178;, + 0.500000; 0.500000;-0.117178;, + 0.500000; 0.625000;-0.117178;, + 0.375000; 0.625000;-0.117178;, + 0.375000; 0.500000;-0.117178;, + 0.125000; 0.375000;-0.117178;, + 0.125000; 0.500000;-0.117178;, + 0.000000; 0.500000;-0.117178;, + 0.000000; 0.375000;-0.117178;, + 0.125000; 0.250000;-0.117178;, + 0.125000; 0.375000;-0.117178;, + 0.000000; 0.375000;-0.117178;, + 0.000000; 0.250000;-0.117178;, + 0.250000; 0.250000;-0.117178;, + 0.250000; 0.375000;-0.117178;, + 0.125000; 0.375000;-0.117178;, + 0.125000; 0.250000;-0.117178;, + 0.125000; 0.125000;-0.117178;, + 0.125000; 0.250000;-0.117178;, + 0.000000; 0.250000;-0.117178;, + 0.000000; 0.125000;-0.117178;, + 0.125000; 0.000000;-0.117178;, + 0.125000; 0.125000;-0.117178;, + 0.000000; 0.125000;-0.117178;, + 0.000000; 0.000000;-0.117178;, + 0.250000; 0.000000;-0.117178;, + 0.250000; 0.125000;-0.117178;, + 0.125000; 0.125000;-0.117178;, + 0.125000; 0.000000;-0.117178;, + 0.500000; 0.000000;-0.117178;, + 0.500000; 0.125000;-0.117178;, + 0.375000; 0.125000;-0.117178;, + 0.375000; 0.000000;-0.117178;, + 0.625000; 0.375000;-0.117178;, + 0.625000; 0.500000;-0.117178;, + 0.500000; 0.500000;-0.117178;, + 0.500000; 0.375000;-0.117178;, + 0.625000; 0.250000;-0.117178;, + 0.625000; 0.375000;-0.117178;, + 0.500000; 0.375000;-0.117178;, + 0.500000; 0.250000;-0.117178;, + 0.750000; 0.250000;-0.117178;, + 0.750000; 0.375000;-0.117178;, + 0.625000; 0.375000;-0.117178;, + 0.625000; 0.250000;-0.117178;, + 0.625000; 0.125000;-0.117178;, + 0.625000; 0.250000;-0.117178;, + 0.500000; 0.250000;-0.117178;, + 0.500000; 0.125000;-0.117178;, + 0.625000; 0.000000;-0.117178;, + 0.625000; 0.125000;-0.117178;, + 0.500000; 0.125000;-0.117178;, + 0.500000; 0.000000;-0.117178;, + 0.750000; 0.000000;-0.117178;, + 0.750000; 0.125000;-0.117178;, + 0.625000; 0.125000;-0.117178;, + 0.625000; 0.000000;-0.117178;, + -0.500000; 0.500000;-0.117178;, + -0.500000; 0.625000;-0.117178;, + -0.625000; 0.625000;-0.117178;, + -0.625000; 0.500000;-0.117178;, + -0.500000; 0.000000;-0.117178;, + -0.500000; 0.125000;-0.117178;, + -0.625000; 0.125000;-0.117178;, + -0.625000; 0.000000;-0.117178;, + -0.375000; 0.375000;-0.117178;, + -0.375000; 0.500000;-0.117178;, + -0.500000; 0.500000;-0.117178;, + -0.500000; 0.375000;-0.117178;, + -0.375000; 0.250000;-0.117178;, + -0.375000; 0.375000;-0.117178;, + -0.500000; 0.375000;-0.117178;, + -0.500000; 0.250000;-0.117178;, + -0.250000; 0.250000;-0.117178;, + -0.250000; 0.375000;-0.117178;, + -0.375000; 0.375000;-0.117178;, + -0.375000; 0.250000;-0.117178;, + -0.375000; 0.125000;-0.117178;, + -0.375000; 0.250000;-0.117178;, + -0.500000; 0.250000;-0.117178;, + -0.500000; 0.125000;-0.117178;, + -0.375000; 0.000000;-0.117178;, + -0.375000; 0.125000;-0.117178;, + -0.500000; 0.125000;-0.117178;, + -0.500000; 0.000000;-0.117178;, + -0.250000; 0.000000;-0.117178;, + -0.250000; 0.125000;-0.117178;, + -0.375000; 0.125000;-0.117178;, + -0.375000; 0.000000;-0.117178;, + 0.000000; 0.000000;-0.117178;, + 0.000000; 0.125000;-0.117178;, + -0.125000; 0.125000;-0.117178;, + -0.125000; 0.000000;-0.117178;, + -0.500000;-0.500000;-0.117178;, + -0.500000;-0.375000;-0.117178;, + -0.625000;-0.375000;-0.117178;, + -0.625000;-0.500000;-0.117178;, + -0.500000;-1.000000;-0.117178;, + -0.500000;-0.875000;-0.117178;, + -0.625000;-0.875000;-0.117178;, + -0.625000;-1.000000;-0.117178;, + -0.375000;-0.625000;-0.117178;, + -0.375000;-0.500000;-0.117178;, + -0.500000;-0.500000;-0.117178;, + -0.500000;-0.625000;-0.117178;, + -0.375000;-0.750000;-0.117178;, + -0.375000;-0.625000;-0.117178;, + -0.500000;-0.625000;-0.117178;, + -0.500000;-0.750000;-0.117178;, + -0.250000;-0.750000;-0.117178;, + -0.250000;-0.625000;-0.117178;, + -0.375000;-0.625000;-0.117178;, + -0.375000;-0.750000;-0.117178;, + -0.375000;-0.875000;-0.117178;, + -0.375000;-0.750000;-0.117178;, + -0.500000;-0.750000;-0.117178;, + -0.500000;-0.875000;-0.117178;, + -0.375000;-1.000000;-0.117178;, + -0.375000;-0.875000;-0.117178;, + -0.500000;-0.875000;-0.117178;, + -0.500000;-1.000000;-0.117178;, + -0.250000;-1.000000;-0.117178;, + -0.250000;-0.875000;-0.117178;, + -0.375000;-0.875000;-0.117178;, + -0.375000;-1.000000;-0.117178;, + 0.000000;-1.000000;-0.117178;, + 0.000000;-0.875000;-0.117178;, + -0.125000;-0.875000;-0.117178;, + -0.125000;-1.000000;-0.117178;, + 0.125000;-0.125000;-0.117178;, + 0.125000; 0.000000;-0.117178;, + 0.000000; 0.000000;-0.117178;, + 0.000000;-0.125000;-0.117178;, + 0.125000;-0.250000;-0.117178;, + 0.125000;-0.125000;-0.117178;, + 0.000000;-0.125000;-0.117178;, + 0.000000;-0.250000;-0.117178;, + 0.250000;-0.250000;-0.117178;, + 0.250000;-0.125000;-0.117178;, + 0.125000;-0.125000;-0.117178;, + 0.125000;-0.250000;-0.117178;, + 0.125000;-0.375000;-0.117178;, + 0.125000;-0.250000;-0.117178;, + 0.000000;-0.250000;-0.117178;, + 0.000000;-0.375000;-0.117178;, + 0.125000;-0.500000;-0.117178;, + 0.125000;-0.375000;-0.117178;, + 0.000000;-0.375000;-0.117178;, + 0.000000;-0.500000;-0.117178;, + 0.250000;-0.500000;-0.117178;, + 0.250000;-0.375000;-0.117178;, + 0.125000;-0.375000;-0.117178;, + 0.125000;-0.500000;-0.117178;, + 0.500000;-0.500000;-0.117178;, + 0.500000;-0.375000;-0.117178;, + 0.375000;-0.375000;-0.117178;, + 0.375000;-0.500000;-0.117178;, + 0.125000;-0.625000;-0.117178;, + 0.125000;-0.500000;-0.117178;, + 0.000000;-0.500000;-0.117178;, + 0.000000;-0.625000;-0.117178;, + 0.125000;-0.750000;-0.117178;, + 0.125000;-0.625000;-0.117178;, + 0.000000;-0.625000;-0.117178;, + 0.000000;-0.750000;-0.117178;, + 0.250000;-0.750000;-0.117178;, + 0.250000;-0.625000;-0.117178;, + 0.125000;-0.625000;-0.117178;, + 0.125000;-0.750000;-0.117178;, + 0.125000;-0.875000;-0.117178;, + 0.125000;-0.750000;-0.117178;, + 0.000000;-0.750000;-0.117178;, + 0.000000;-0.875000;-0.117178;, + 0.125000;-1.000000;-0.117178;, + 0.125000;-0.875000;-0.117178;, + 0.000000;-0.875000;-0.117178;, + 0.000000;-1.000000;-0.117178;, + 0.250000;-1.000000;-0.117178;, + 0.250000;-0.875000;-0.117178;, + 0.125000;-0.875000;-0.117178;, + 0.125000;-1.000000;-0.117178;, + 0.500000;-1.000000;-0.117178;, + 0.500000;-0.875000;-0.117178;, + 0.375000;-0.875000;-0.117178;, + 0.375000;-1.000000;-0.117178;, + 0.625000;-0.625000;-0.117178;, + 0.625000;-0.500000;-0.117178;, + 0.500000;-0.500000;-0.117178;, + 0.500000;-0.625000;-0.117178;, + 0.625000;-0.750000;-0.117178;, + 0.625000;-0.625000;-0.117178;, + 0.500000;-0.625000;-0.117178;, + 0.500000;-0.750000;-0.117178;, + 0.750000;-0.750000;-0.117178;, + 0.750000;-0.625000;-0.117178;, + 0.625000;-0.625000;-0.117178;, + 0.625000;-0.750000;-0.117178;, + 0.625000;-0.875000;-0.117178;, + 0.625000;-0.750000;-0.117178;, + 0.500000;-0.750000;-0.117178;, + 0.500000;-0.875000;-0.117178;, + 0.625000;-1.000000;-0.117178;, + 0.625000;-0.875000;-0.117178;, + 0.500000;-0.875000;-0.117178;, + 0.500000;-1.000000;-0.117178;, + 0.750000;-1.000000;-0.117178;, + 0.750000;-0.875000;-0.117178;, + 0.625000;-0.875000;-0.117178;, + 0.625000;-1.000000;-0.117178;, + 0.859843;-0.875000; 0.246450;, + 0.859843;-0.750000; 0.246450;, + 0.859843;-0.750000; 0.000000;, + 0.859843;-0.875000; 0.000000;, + 0.859843; 0.750000; 0.246450;, + 0.859843; 0.875000; 0.246450;, + 0.859843; 0.875000; 0.000000;, + 0.859843; 0.750000; 0.000000;, + 0.859843; 0.125000; 0.246450;, + 0.859843; 0.250000; 0.246450;, + 0.859843; 0.250000; 0.000000;, + 0.859843; 0.125000; 0.000000;, + 0.859843;-0.500000; 0.246450;, + 0.859843;-0.375000; 0.246450;, + 0.859843;-0.375000; 0.000000;, + 0.859843;-0.500000; 0.000000;, + 0.859843;-0.625000; 0.246450;, + 0.859843;-0.500000; 0.246450;, + 0.859843;-0.500000; 0.000000;, + 0.859843;-0.625000; 0.000000;, + 0.859843; 0.375000; 0.246450;, + 0.859843; 0.500000; 0.246450;, + 0.859843; 0.500000; 0.000000;, + 0.859843; 0.375000; 0.000000;, + 0.859843;-0.375000; 0.246450;, + 0.859843;-0.250000; 0.246450;, + 0.859843;-0.250000; 0.000000;, + 0.859843;-0.375000; 0.000000;, + 0.859843;-0.750000; 0.246450;, + 0.859843;-0.625000; 0.246450;, + 0.859843;-0.625000; 0.000000;, + 0.859843;-0.750000; 0.000000;, + 0.859843; 0.250000; 0.246450;, + 0.859843; 0.375000; 0.246450;, + 0.859843; 0.375000; 0.000000;, + 0.859843; 0.250000; 0.000000;, + 0.859843; 0.500000; 0.246450;, + 0.859843; 0.625000; 0.246450;, + 0.859843; 0.625000; 0.000000;, + 0.859843; 0.500000; 0.000000;, + 0.859843;-0.125000; 0.246450;, + 0.859843; 0.000000; 0.246450;, + 0.859843; 0.000000; 0.000000;, + 0.859843;-0.125000; 0.000000;, + 0.859843; 0.625000; 0.246450;, + 0.859843; 0.750000; 0.246450;, + 0.859843; 0.750000; 0.000000;, + 0.859843; 0.625000; 0.000000;, + 0.859843;-0.250000; 0.246450;, + 0.859843;-0.125000; 0.246450;, + 0.859843;-0.125000; 0.000000;, + 0.859843;-0.250000; 0.000000;, + 0.859843;-1.000000; 0.246450;, + 0.859843;-0.875000; 0.246450;, + 0.859843;-0.875000; 0.000000;, + 0.859843;-1.000000; 0.000000;, + 0.859843; 0.875000; 0.246450;, + 0.859843; 1.000000; 0.246450;, + 0.859843; 1.000000; 0.000000;, + 0.859843; 0.875000; 0.000000;, + 0.859843; 0.000000; 0.246450;, + 0.859843; 0.125000; 0.246450;, + 0.859843; 0.125000; 0.000000;, + 0.859843; 0.000000; 0.000000;, + 0.859843; 1.000000; 0.000000;, + 0.859843; 1.000000; 0.246450;, + 0.750000; 1.000000; 0.246450;, + 0.750000; 1.000000; 0.000000;, + 0.859843;-0.250000; 0.246450;, + 0.859843;-0.375000; 0.246450;, + 0.750000;-0.375000; 0.246450;, + 0.750000;-0.250000; 0.246450;, + 0.859843; 0.625000; 0.000000;, + 0.859843; 0.750000; 0.000000;, + 0.750000; 0.750000; 0.000000;, + 0.750000; 0.625000; 0.000000;, + 0.859843;-0.625000; 0.246450;, + 0.859843;-0.750000; 0.246450;, + 0.750000;-0.750000; 0.246450;, + 0.750000;-0.625000; 0.246450;, + 0.859843;-0.250000; 0.000000;, + 0.859843;-0.125000; 0.000000;, + 0.750000;-0.125000; 0.000000;, + 0.750000;-0.250000; 0.000000;, + 0.859843; 0.000000; 0.000000;, + 0.859843; 0.125000; 0.000000;, + 0.750000; 0.125000; 0.000000;, + 0.750000; 0.000000; 0.000000;, + 0.859843; 0.625000; 0.246450;, + 0.859843; 0.500000; 0.246450;, + 0.750000; 0.500000; 0.246450;, + 0.750000; 0.625000; 0.246450;, + 0.859843; 0.375000; 0.246450;, + 0.859843; 0.250000; 0.246450;, + 0.750000; 0.250000; 0.246450;, + 0.750000; 0.375000; 0.246450;, + 0.859843;-1.000000; 0.246450;, + 0.859843;-1.000000; 0.000000;, + 0.750000;-1.000000; 0.000000;, + 0.750000;-1.000000; 0.246450;, + 0.859843;-0.500000; 0.000000;, + 0.859843;-0.375000; 0.000000;, + 0.750000;-0.375000; 0.000000;, + 0.750000;-0.500000; 0.000000;, + 0.859843; 0.000000; 0.246450;, + 0.859843;-0.125000; 0.246450;, + 0.750000;-0.125000; 0.246450;, + 0.750000; 0.000000; 0.246450;, + 0.859843; 0.750000; 0.246450;, + 0.859843; 0.625000; 0.246450;, + 0.750000; 0.625000; 0.246450;, + 0.750000; 0.750000; 0.246450;, + 0.859843; 0.500000; 0.000000;, + 0.859843; 0.625000; 0.000000;, + 0.750000; 0.625000; 0.000000;, + 0.750000; 0.500000; 0.000000;, + 0.859843;-0.875000; 0.000000;, + 0.859843;-0.750000; 0.000000;, + 0.750000;-0.750000; 0.000000;, + 0.750000;-0.875000; 0.000000;, + 0.859843; 0.125000; 0.000000;, + 0.859843; 0.250000; 0.000000;, + 0.750000; 0.250000; 0.000000;, + 0.750000; 0.125000; 0.000000;, + 0.859843;-0.625000; 0.000000;, + 0.859843;-0.500000; 0.000000;, + 0.750000;-0.500000; 0.000000;, + 0.750000;-0.625000; 0.000000;, + 0.859843;-0.125000; 0.246450;, + 0.859843;-0.250000; 0.246450;, + 0.750000;-0.250000; 0.246450;, + 0.750000;-0.125000; 0.246450;, + 0.859843; 0.750000; 0.000000;, + 0.859843; 0.875000; 0.000000;, + 0.750000; 0.875000; 0.000000;, + 0.750000; 0.750000; 0.000000;, + 0.125000;-1.287628; 0.246450;, + 0.125000;-1.287628; 0.330204;, + 0.125000;-1.152395; 0.330204;, + 0.125000;-1.152395; 0.246450;, + 0.000000;-1.000000;-0.289304;, + 0.125000;-1.000000;-0.289304;, + 0.125000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.125000;-1.152395; 0.246450;, + 0.125000;-1.152395; 0.330204;, + 0.125000;-1.000000; 0.330204;, + 0.125000;-1.000000; 0.246450;, + 0.000000;-1.152395; 0.330204;, + 0.000000;-1.152395; 0.246450;, + 0.000000;-1.000000; 0.246450;, + 0.000000;-1.000000; 0.330204;, + 0.125000;-1.152395; 0.330204;, + 0.000000;-1.152395; 0.330204;, + 0.000000;-1.000000; 0.330204;, + 0.125000;-1.000000; 0.330204;, + 0.000000;-1.152395; 0.246450;, + 0.000000;-1.152395; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.246450;, + 0.000000;-1.287628; 0.330204;, + 0.125000;-1.287628; 0.330204;, + 0.125000;-1.287628; 0.246450;, + 0.000000;-1.287628; 0.246450;, + 0.000000;-1.534846; 0.246450;, + 0.000000;-1.534846; 0.000000;, + 0.000000;-1.287628; 0.000000;, + 0.000000;-1.287628; 0.246450;, + 0.125000;-1.287628; 0.520154;, + 0.125000;-1.152395; 0.520154;, + 0.125000;-1.152395; 0.330204;, + 0.125000;-1.287628; 0.330204;, + 0.000000;-1.287628; 0.330204;, + 0.000000;-1.287628; 0.246450;, + 0.000000;-1.152395; 0.246450;, + 0.000000;-1.152395; 0.330204;, + 0.000000;-1.287628; 0.246450;, + 0.000000;-1.287628; 0.000000;, + 0.000000;-1.152395; 0.000000;, + 0.000000;-1.152395; 0.246450;, + 0.125000;-1.287628; 0.000000;, + 0.125000;-1.287628; 0.246450;, + 0.125000;-1.152395; 0.246450;, + 0.125000;-1.152395; 0.000000;, + 0.000000;-1.152395; 0.627518;, + 0.000000;-1.287628; 0.627518;, + 0.000000;-1.287628; 0.520154;, + 0.000000;-1.152395; 0.520154;, + 0.125000;-1.152395; 0.520154;, + 0.000000;-1.152395; 0.520154;, + 0.000000;-1.152395; 0.330204;, + 0.125000;-1.152395; 0.330204;, + 0.000000;-1.287628; 0.520154;, + 0.125000;-1.287628; 0.520154;, + 0.125000;-1.287628; 0.330204;, + 0.000000;-1.287628; 0.330204;, + 0.000000;-1.152395; 0.520154;, + 0.000000;-1.287628; 0.520154;, + 0.000000;-1.287628; 0.330204;, + 0.000000;-1.152395; 0.330204;, + 0.125000;-1.287628; 0.627518;, + 0.000000;-1.287628; 0.627518;, + 0.000000;-1.152395; 0.627518;, + 0.125000;-1.152395; 0.627518;, + 0.125000;-0.831729; 0.627518;, + 0.125000;-0.831729; 0.520154;, + 0.125000;-1.152395; 0.520154;, + 0.125000;-1.152395; 0.627518;, + 0.000000;-1.287628; 0.627518;, + 0.125000;-1.287628; 0.627518;, + 0.125000;-1.287628; 0.520154;, + 0.000000;-1.287628; 0.520154;, + 0.125000;-1.287628; 0.627518;, + 0.125000;-1.152395; 0.627518;, + 0.125000;-1.152395; 0.520154;, + 0.125000;-1.287628; 0.520154;, + 0.000000;-1.152395;-0.289304;, + 0.125000;-1.152395;-0.289304;, + 0.125000;-1.000000;-0.289304;, + 0.000000;-1.000000;-0.289304;, + 0.000000;-1.287628;-0.289304;, + 0.125000;-1.287628;-0.289304;, + 0.125000;-1.152395;-0.289304;, + 0.000000;-1.152395;-0.289304;, + 0.125000;-1.000000;-0.289304;, + 0.125000;-1.152395;-0.289304;, + 0.125000;-1.152395; 0.000000;, + 0.125000;-1.000000; 0.000000;, + 0.125000;-1.534846;-0.289304;, + 0.125000;-1.534846; 0.000000;, + 0.125000;-1.287628; 0.000000;, + 0.125000;-1.287628;-0.289304;, + 0.125000;-1.152395;-0.289304;, + 0.125000;-1.287628;-0.289304;, + 0.125000;-1.287628; 0.000000;, + 0.125000;-1.152395; 0.000000;, + 0.000000;-1.152395;-0.289304;, + 0.000000;-1.000000;-0.289304;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.152395; 0.000000;, + 0.000000;-1.534846; 0.246450;, + 0.125000;-1.534846; 0.246450;, + 0.125000;-1.534846; 0.000000;, + 0.000000;-1.534846; 0.000000;, + 0.125000;-1.534846;-0.289304;, + 0.000000;-1.534846;-0.289304;, + 0.000000;-1.534846; 0.000000;, + 0.125000;-1.534846; 0.000000;, + 0.125000;-1.534846; 0.246450;, + 0.000000;-1.534846; 0.246450;, + 0.000000;-1.287628; 0.246450;, + 0.125000;-1.287628; 0.246450;, + 0.125000;-1.534846; 0.000000;, + 0.125000;-1.534846; 0.246450;, + 0.125000;-1.287628; 0.246450;, + 0.125000;-1.287628; 0.000000;, + 0.000000;-1.534846; 0.000000;, + 0.000000;-1.534846;-0.289304;, + 0.000000;-1.287628;-0.289304;, + 0.000000;-1.287628; 0.000000;, + 0.000000;-1.534846;-0.289304;, + 0.125000;-1.534846;-0.289304;, + 0.125000;-1.287628;-0.289304;, + 0.000000;-1.287628;-0.289304;, + 0.125000;-0.831729; 0.627518;, + 0.000000;-0.831729; 0.627518;, + 0.000000;-0.831729; 0.520154;, + 0.125000;-0.831729; 0.520154;, + 0.125000;-0.831729; 0.520154;, + 0.000000;-0.831729; 0.520154;, + 0.000000;-1.152395; 0.520154;, + 0.125000;-1.152395; 0.520154;, + 0.000000;-0.831729; 0.627518;, + 0.125000;-0.831729; 0.627518;, + 0.125000;-1.152395; 0.627518;, + 0.000000;-1.152395; 0.627518;, + 0.000000;-0.831729; 0.520154;, + 0.000000;-0.831729; 0.627518;, + 0.000000;-1.152395; 0.627518;, + 0.000000;-1.152395; 0.520154;; + 738; + 4;0;1;2;3;, + 4;4;5;6;7;, + 4;8;9;10;11;, + 4;12;13;14;15;, + 4;16;17;18;19;, + 4;20;21;22;23;, + 4;24;25;26;27;, + 4;28;29;30;31;, + 4;32;33;34;35;, + 4;36;37;38;39;, + 4;40;41;42;43;, + 4;44;45;46;47;, + 4;48;49;50;51;, + 4;52;53;54;55;, + 4;56;57;58;59;, + 4;60;61;62;63;, + 4;64;65;66;67;, + 4;68;69;70;71;, + 4;72;73;74;75;, + 4;76;77;78;79;, + 4;80;81;82;83;, + 4;84;85;86;87;, + 4;88;89;90;91;, + 4;92;93;94;95;, + 4;96;97;98;99;, + 4;100;101;102;103;, + 4;104;105;106;107;, + 4;108;109;110;111;, + 4;112;113;114;115;, + 4;116;117;118;119;, + 4;120;121;122;123;, + 4;124;125;126;127;, + 4;128;129;130;131;, + 4;132;133;134;135;, + 4;136;137;138;139;, + 4;140;141;142;143;, + 4;144;145;146;147;, + 4;148;149;150;151;, + 4;152;153;154;155;, + 4;156;157;158;159;, + 4;160;161;162;163;, + 4;164;165;166;167;, + 4;168;169;170;171;, + 4;172;173;174;175;, + 4;176;177;178;179;, + 4;180;181;182;183;, + 4;184;185;186;187;, + 4;188;189;190;191;, + 4;192;193;194;195;, + 4;196;197;198;199;, + 4;200;201;202;203;, + 4;204;205;206;207;, + 4;208;209;210;211;, + 4;212;213;214;215;, + 4;216;217;218;219;, + 4;220;221;222;223;, + 4;224;225;226;227;, + 4;228;229;230;231;, + 4;232;233;234;235;, + 4;236;237;238;239;, + 4;240;241;242;243;, + 4;244;245;246;247;, + 4;248;249;250;251;, + 4;252;253;254;255;, + 4;256;257;258;259;, + 4;260;261;262;263;, + 4;264;265;266;267;, + 4;268;269;270;271;, + 4;272;273;274;275;, + 4;276;277;278;279;, + 4;280;281;282;283;, + 4;284;285;286;287;, + 4;288;289;290;291;, + 4;292;293;294;295;, + 4;296;297;298;299;, + 4;300;301;302;303;, + 4;304;305;306;307;, + 4;308;309;310;311;, + 4;312;313;314;315;, + 4;316;317;318;319;, + 4;320;321;322;323;, + 4;324;325;326;327;, + 4;328;329;330;331;, + 4;332;333;334;335;, + 4;336;337;338;339;, + 4;340;341;342;343;, + 4;344;345;346;347;, + 4;348;349;350;351;, + 4;352;353;354;355;, + 4;356;357;358;359;, + 4;360;361;362;363;, + 4;364;365;366;367;, + 4;368;369;370;371;, + 4;372;373;374;375;, + 4;376;377;378;379;, + 4;380;381;382;383;, + 4;384;385;386;387;, + 4;388;389;390;391;, + 4;392;393;394;395;, + 4;396;397;398;399;, + 4;400;401;402;403;, + 4;404;405;406;407;, + 4;408;409;410;411;, + 4;412;413;414;415;, + 4;416;417;418;419;, + 4;420;421;422;423;, + 4;424;425;426;427;, + 4;428;429;430;431;, + 4;432;433;434;435;, + 4;436;437;438;439;, + 4;440;441;442;443;, + 4;444;445;446;447;, + 4;448;449;450;451;, + 4;452;453;454;455;, + 4;456;457;458;459;, + 4;460;461;462;463;, + 4;464;465;466;467;, + 4;468;469;470;471;, + 4;472;473;474;475;, + 4;476;477;478;479;, + 4;480;481;482;483;, + 4;484;485;486;487;, + 4;488;489;490;491;, + 4;492;493;494;495;, + 4;496;497;498;499;, + 4;500;501;502;503;, + 4;504;505;506;507;, + 4;508;509;510;511;, + 4;512;513;514;515;, + 4;516;517;518;519;, + 4;520;521;522;523;, + 4;524;525;526;527;, + 4;528;529;530;531;, + 4;532;533;534;535;, + 4;536;537;538;539;, + 4;540;541;542;543;, + 4;544;545;546;547;, + 4;548;549;550;551;, + 4;552;553;554;555;, + 4;556;557;558;559;, + 4;560;561;562;563;, + 4;564;565;566;567;, + 4;568;569;570;571;, + 4;572;573;574;575;, + 4;576;577;578;579;, + 4;580;581;582;583;, + 4;584;585;586;587;, + 4;588;589;590;591;, + 4;592;593;594;595;, + 4;596;597;598;599;, + 4;600;601;602;603;, + 4;604;605;606;607;, + 4;608;609;610;611;, + 4;612;613;614;615;, + 4;616;617;618;619;, + 4;620;621;622;623;, + 4;624;625;626;627;, + 4;628;629;630;631;, + 4;632;633;634;635;, + 4;636;637;638;639;, + 4;640;641;642;643;, + 4;644;645;646;647;, + 4;648;649;650;651;, + 4;652;653;654;655;, + 4;656;657;658;659;, + 4;660;661;662;663;, + 4;664;665;666;667;, + 4;668;669;670;671;, + 4;672;673;674;675;, + 4;676;677;678;679;, + 4;680;681;682;683;, + 4;684;685;686;687;, + 4;688;689;690;691;, + 4;692;693;694;695;, + 4;696;697;698;699;, + 4;700;701;702;703;, + 4;704;705;706;707;, + 4;708;709;710;711;, + 4;712;713;714;715;, + 4;716;717;718;719;, + 4;720;721;722;723;, + 4;724;725;726;727;, + 4;728;729;730;731;, + 4;732;733;734;735;, + 4;736;737;738;739;, + 4;740;741;742;743;, + 4;744;745;746;747;, + 4;748;749;750;751;, + 4;752;753;754;755;, + 4;756;757;758;759;, + 4;760;761;762;763;, + 4;764;765;766;767;, + 4;768;769;770;771;, + 4;772;773;774;775;, + 4;776;777;778;779;, + 4;780;781;782;783;, + 4;784;785;786;787;, + 4;788;789;790;791;, + 4;792;793;794;795;, + 4;796;797;798;799;, + 4;800;801;802;803;, + 4;804;805;806;807;, + 4;808;809;810;811;, + 4;812;813;814;815;, + 4;816;817;818;819;, + 4;820;821;822;823;, + 4;824;825;826;827;, + 4;828;829;830;831;, + 4;832;833;834;835;, + 4;836;837;838;839;, + 4;840;841;842;843;, + 4;844;845;846;847;, + 4;848;849;850;851;, + 4;852;853;854;855;, + 4;856;857;858;859;, + 4;860;861;862;863;, + 4;864;865;866;867;, + 4;868;869;870;871;, + 4;872;873;874;875;, + 4;876;877;878;879;, + 4;880;881;882;883;, + 4;884;885;886;887;, + 4;888;889;890;891;, + 4;892;893;894;895;, + 4;896;897;898;899;, + 4;900;901;902;903;, + 4;904;905;906;907;, + 4;908;909;910;911;, + 4;912;913;914;915;, + 4;916;917;918;919;, + 4;920;921;922;923;, + 4;924;925;926;927;, + 4;928;929;930;931;, + 4;932;933;934;935;, + 4;936;937;938;939;, + 4;940;941;942;943;, + 4;944;945;946;947;, + 4;948;949;950;951;, + 4;952;953;954;955;, + 4;956;957;958;959;, + 4;960;961;962;963;, + 4;964;965;966;967;, + 4;968;969;970;971;, + 4;972;973;974;975;, + 4;976;977;978;979;, + 4;980;981;982;983;, + 4;984;985;986;987;, + 4;988;989;990;991;, + 4;992;993;994;995;, + 4;996;997;998;999;, + 4;1000;1001;1002;1003;, + 4;1004;1005;1006;1007;, + 4;1008;1009;1010;1011;, + 4;1012;1013;1014;1015;, + 4;1016;1017;1018;1019;, + 4;1020;1021;1022;1023;, + 4;1024;1025;1026;1027;, + 4;1028;1029;1030;1031;, + 4;1032;1033;1034;1035;, + 4;1036;1037;1038;1039;, + 4;1040;1041;1042;1043;, + 4;1044;1045;1046;1047;, + 4;1048;1049;1050;1051;, + 4;1052;1053;1054;1055;, + 4;1056;1057;1058;1059;, + 4;1060;1061;1062;1063;, + 4;1064;1065;1066;1067;, + 4;1068;1069;1070;1071;, + 4;1072;1073;1074;1075;, + 4;1076;1077;1078;1079;, + 4;1080;1081;1082;1083;, + 4;1084;1085;1086;1087;, + 4;1088;1089;1090;1091;, + 4;1092;1093;1094;1095;, + 4;1096;1097;1098;1099;, + 4;1100;1101;1102;1103;, + 4;1104;1105;1106;1107;, + 4;1108;1109;1110;1111;, + 4;1112;1113;1114;1115;, + 4;1116;1117;1118;1119;, + 4;1120;1121;1122;1123;, + 4;1124;1125;1126;1127;, + 4;1128;1129;1130;1131;, + 4;1132;1133;1134;1135;, + 4;1136;1137;1138;1139;, + 4;1140;1141;1142;1143;, + 4;1144;1145;1146;1147;, + 4;1148;1149;1150;1151;, + 4;1152;1153;1154;1155;, + 4;1156;1157;1158;1159;, + 4;1160;1161;1162;1163;, + 4;1164;1165;1166;1167;, + 4;1168;1169;1170;1171;, + 4;1172;1173;1174;1175;, + 4;1176;1177;1178;1179;, + 4;1180;1181;1182;1183;, + 4;1184;1185;1186;1187;, + 4;1188;1189;1190;1191;, + 4;1192;1193;1194;1195;, + 4;1196;1197;1198;1199;, + 4;1200;1201;1202;1203;, + 4;1204;1205;1206;1207;, + 4;1208;1209;1210;1211;, + 4;1212;1213;1214;1215;, + 4;1216;1217;1218;1219;, + 4;1220;1221;1222;1223;, + 4;1224;1225;1226;1227;, + 4;1228;1229;1230;1231;, + 4;1232;1233;1234;1235;, + 4;1236;1237;1238;1239;, + 4;1240;1241;1242;1243;, + 4;1244;1245;1246;1247;, + 4;1248;1249;1250;1251;, + 4;1252;1253;1254;1255;, + 4;1256;1257;1258;1259;, + 4;1260;1261;1262;1263;, + 4;1264;1265;1266;1267;, + 4;1268;1269;1270;1271;, + 4;1272;1273;1274;1275;, + 4;1276;1277;1278;1279;, + 4;1280;1281;1282;1283;, + 4;1284;1285;1286;1287;, + 4;1288;1289;1290;1291;, + 4;1292;1293;1294;1295;, + 4;1296;1297;1298;1299;, + 4;1300;1301;1302;1303;, + 4;1304;1305;1306;1307;, + 4;1308;1309;1310;1311;, + 4;1312;1313;1314;1315;, + 4;1316;1317;1318;1319;, + 4;1320;1321;1322;1323;, + 4;1324;1325;1326;1327;, + 4;1328;1329;1330;1331;, + 4;1332;1333;1334;1335;, + 4;1336;1337;1338;1339;, + 4;1340;1341;1342;1343;, + 4;1344;1345;1346;1347;, + 4;1348;1349;1350;1351;, + 4;1352;1353;1354;1355;, + 4;1356;1357;1358;1359;, + 4;1360;1361;1362;1363;, + 4;1364;1365;1366;1367;, + 4;1368;1369;1370;1371;, + 4;1372;1373;1374;1375;, + 4;1376;1377;1378;1379;, + 4;1380;1381;1382;1383;, + 4;1384;1385;1386;1387;, + 4;1388;1389;1390;1391;, + 4;1392;1393;1394;1395;, + 4;1396;1397;1398;1399;, + 4;1400;1401;1402;1403;, + 4;1404;1405;1406;1407;, + 4;1408;1409;1410;1411;, + 4;1412;1413;1414;1415;, + 4;1416;1417;1418;1419;, + 4;1420;1421;1422;1423;, + 4;1424;1425;1426;1427;, + 4;1428;1429;1430;1431;, + 4;1432;1433;1434;1435;, + 4;1436;1437;1438;1439;, + 4;1440;1441;1442;1443;, + 4;1444;1445;1446;1447;, + 4;1448;1449;1450;1451;, + 4;1452;1453;1454;1455;, + 4;1456;1457;1458;1459;, + 4;1460;1461;1462;1463;, + 4;1464;1465;1466;1467;, + 4;1468;1469;1470;1471;, + 4;1472;1473;1474;1475;, + 4;1476;1477;1478;1479;, + 4;1480;1481;1482;1483;, + 4;1484;1485;1486;1487;, + 4;1488;1489;1490;1491;, + 4;1492;1493;1494;1495;, + 4;1496;1497;1498;1499;, + 4;1500;1501;1502;1503;, + 4;1504;1505;1506;1507;, + 4;1508;1509;1510;1511;, + 4;1512;1513;1514;1515;, + 4;1516;1517;1518;1519;, + 4;1520;1521;1522;1523;, + 4;1524;1525;1526;1527;, + 4;1528;1529;1530;1531;, + 4;1532;1533;1534;1535;, + 4;1536;1537;1538;1539;, + 4;1540;1541;1542;1543;, + 4;1544;1545;1546;1547;, + 4;1548;1549;1550;1551;, + 4;1552;1553;1554;1555;, + 4;1556;1557;1558;1559;, + 4;1560;1561;1562;1563;, + 4;1564;1565;1566;1567;, + 4;1568;1569;1570;1571;, + 4;1572;1573;1574;1575;, + 4;1576;1577;1578;1579;, + 4;1580;1581;1582;1583;, + 4;1584;1585;1586;1587;, + 4;1588;1589;1590;1591;, + 4;1592;1593;1594;1595;, + 4;1596;1597;1598;1599;, + 4;1600;1601;1602;1603;, + 4;1604;1605;1606;1607;, + 4;1608;1609;1610;1611;, + 4;1612;1613;1614;1615;, + 4;1616;1617;1618;1619;, + 4;1620;1621;1622;1623;, + 4;1624;1625;1626;1627;, + 4;1628;1629;1630;1631;, + 4;1632;1633;1634;1635;, + 4;1636;1637;1638;1639;, + 4;1640;1641;1642;1643;, + 4;1644;1645;1646;1647;, + 4;1648;1649;1650;1651;, + 4;1652;1653;1654;1655;, + 4;1656;1657;1658;1659;, + 4;1660;1661;1662;1663;, + 4;1664;1665;1666;1667;, + 4;1668;1669;1670;1671;, + 4;1672;1673;1674;1675;, + 4;1676;1677;1678;1679;, + 4;1680;1681;1682;1683;, + 4;1684;1685;1686;1687;, + 4;1688;1689;1690;1691;, + 4;1692;1693;1694;1695;, + 4;1696;1697;1698;1699;, + 4;1700;1701;1702;1703;, + 4;1704;1705;1706;1707;, + 4;1708;1709;1710;1711;, + 4;1712;1713;1714;1715;, + 4;1716;1717;1718;1719;, + 4;1720;1721;1722;1723;, + 4;1724;1725;1726;1727;, + 4;1728;1729;1730;1731;, + 4;1732;1733;1734;1735;, + 4;1736;1737;1738;1739;, + 4;1740;1741;1742;1743;, + 4;1744;1745;1746;1747;, + 4;1748;1749;1750;1751;, + 4;1752;1753;1754;1755;, + 4;1756;1757;1758;1759;, + 4;1760;1761;1762;1763;, + 4;1764;1765;1766;1767;, + 4;1768;1769;1770;1771;, + 4;1772;1773;1774;1775;, + 4;1776;1777;1778;1779;, + 4;1780;1781;1782;1783;, + 4;1784;1785;1786;1787;, + 4;1788;1789;1790;1791;, + 4;1792;1793;1794;1795;, + 4;1796;1797;1798;1799;, + 4;1800;1801;1802;1803;, + 4;1804;1805;1806;1807;, + 4;1808;1809;1810;1811;, + 4;1812;1813;1814;1815;, + 4;1816;1817;1818;1819;, + 4;1820;1821;1822;1823;, + 4;1824;1825;1826;1827;, + 4;1828;1829;1830;1831;, + 4;1832;1833;1834;1835;, + 4;1836;1837;1838;1839;, + 4;1840;1841;1842;1843;, + 4;1844;1845;1846;1847;, + 4;1848;1849;1850;1851;, + 4;1852;1853;1854;1855;, + 4;1856;1857;1858;1859;, + 4;1860;1861;1862;1863;, + 4;1864;1865;1866;1867;, + 4;1868;1869;1870;1871;, + 4;1872;1873;1874;1875;, + 4;1876;1877;1878;1879;, + 4;1880;1881;1882;1883;, + 4;1884;1885;1886;1887;, + 4;1888;1889;1890;1891;, + 4;1892;1893;1894;1895;, + 4;1896;1897;1898;1899;, + 4;1900;1901;1902;1903;, + 4;1904;1905;1906;1907;, + 4;1908;1909;1910;1911;, + 4;1912;1913;1914;1915;, + 4;1916;1917;1918;1919;, + 4;1920;1921;1922;1923;, + 4;1924;1925;1926;1927;, + 4;1928;1929;1930;1931;, + 4;1932;1933;1934;1935;, + 4;1936;1937;1938;1939;, + 4;1940;1941;1942;1943;, + 4;1944;1945;1946;1947;, + 4;1948;1949;1950;1951;, + 4;1952;1953;1954;1955;, + 4;1956;1957;1958;1959;, + 4;1960;1961;1962;1963;, + 4;1964;1965;1966;1967;, + 4;1968;1969;1970;1971;, + 4;1972;1973;1974;1975;, + 4;1976;1977;1978;1979;, + 4;1980;1981;1982;1983;, + 4;1984;1985;1986;1987;, + 4;1988;1989;1990;1991;, + 4;1992;1993;1994;1995;, + 4;1996;1997;1998;1999;, + 4;2000;2001;2002;2003;, + 4;2004;2005;2006;2007;, + 4;2008;2009;2010;2011;, + 4;2012;2013;2014;2015;, + 4;2016;2017;2018;2019;, + 4;2020;2021;2022;2023;, + 4;2024;2025;2026;2027;, + 4;2028;2029;2030;2031;, + 4;2032;2033;2034;2035;, + 4;2036;2037;2038;2039;, + 4;2040;2041;2042;2043;, + 4;2044;2045;2046;2047;, + 4;2048;2049;2050;2051;, + 4;2052;2053;2054;2055;, + 4;2056;2057;2058;2059;, + 4;2060;2061;2062;2063;, + 4;2064;2065;2066;2067;, + 4;2068;2069;2070;2071;, + 4;2072;2073;2074;2075;, + 4;2076;2077;2078;2079;, + 4;2080;2081;2082;2083;, + 4;2084;2085;2086;2087;, + 4;2088;2089;2090;2091;, + 4;2092;2093;2094;2095;, + 4;2096;2097;2098;2099;, + 4;2100;2101;2102;2103;, + 4;2104;2105;2106;2107;, + 4;2108;2109;2110;2111;, + 4;2112;2113;2114;2115;, + 4;2116;2117;2118;2119;, + 4;2120;2121;2122;2123;, + 4;2124;2125;2126;2127;, + 4;2128;2129;2130;2131;, + 4;2132;2133;2134;2135;, + 4;2136;2137;2138;2139;, + 4;2140;2141;2142;2143;, + 4;2144;2145;2146;2147;, + 4;2148;2149;2150;2151;, + 4;2152;2153;2154;2155;, + 4;2156;2157;2158;2159;, + 4;2160;2161;2162;2163;, + 4;2164;2165;2166;2167;, + 4;2168;2169;2170;2171;, + 4;2172;2173;2174;2175;, + 4;2176;2177;2178;2179;, + 4;2180;2181;2182;2183;, + 4;2184;2185;2186;2187;, + 4;2188;2189;2190;2191;, + 4;2192;2193;2194;2195;, + 4;2196;2197;2198;2199;, + 4;2200;2201;2202;2203;, + 4;2204;2205;2206;2207;, + 4;2208;2209;2210;2211;, + 4;2212;2213;2214;2215;, + 4;2216;2217;2218;2219;, + 4;2220;2221;2222;2223;, + 4;2224;2225;2226;2227;, + 4;2228;2229;2230;2231;, + 4;2232;2233;2234;2235;, + 4;2236;2237;2238;2239;, + 4;2240;2241;2242;2243;, + 4;2244;2245;2246;2247;, + 4;2248;2249;2250;2251;, + 4;2252;2253;2254;2255;, + 4;2256;2257;2258;2259;, + 4;2260;2261;2262;2263;, + 4;2264;2265;2266;2267;, + 4;2268;2269;2270;2271;, + 4;2272;2273;2274;2275;, + 4;2276;2277;2278;2279;, + 4;2280;2281;2282;2283;, + 4;2284;2285;2286;2287;, + 4;2288;2289;2290;2291;, + 4;2292;2293;2294;2295;, + 4;2296;2297;2298;2299;, + 4;2300;2301;2302;2303;, + 4;2304;2305;2306;2307;, + 4;2308;2309;2310;2311;, + 4;2312;2313;2314;2315;, + 4;2316;2317;2318;2319;, + 4;2320;2321;2322;2323;, + 4;2324;2325;2326;2327;, + 4;2328;2329;2330;2331;, + 4;2332;2333;2334;2335;, + 4;2336;2337;2338;2339;, + 4;2340;2341;2342;2343;, + 4;2344;2345;2346;2347;, + 4;2348;2349;2350;2351;, + 4;2352;2353;2354;2355;, + 4;2356;2357;2358;2359;, + 4;2360;2361;2362;2363;, + 4;2364;2365;2366;2367;, + 4;2368;2369;2370;2371;, + 4;2372;2373;2374;2375;, + 4;2376;2377;2378;2379;, + 4;2380;2381;2382;2383;, + 4;2384;2385;2386;2387;, + 4;2388;2389;2390;2391;, + 4;2392;2393;2394;2395;, + 4;2396;2397;2398;2399;, + 4;2400;2401;2402;2403;, + 4;2404;2405;2406;2407;, + 4;2408;2409;2410;2411;, + 4;2412;2413;2414;2415;, + 4;2416;2417;2418;2419;, + 4;2420;2421;2422;2423;, + 4;2424;2425;2426;2427;, + 4;2428;2429;2430;2431;, + 4;2432;2433;2434;2435;, + 4;2436;2437;2438;2439;, + 4;2440;2441;2442;2443;, + 4;2444;2445;2446;2447;, + 4;2448;2449;2450;2451;, + 4;2452;2453;2454;2455;, + 4;2456;2457;2458;2459;, + 4;2460;2461;2462;2463;, + 4;2464;2465;2466;2467;, + 4;2468;2469;2470;2471;, + 4;2472;2473;2474;2475;, + 4;2476;2477;2478;2479;, + 4;2480;2481;2482;2483;, + 4;2484;2485;2486;2487;, + 4;2488;2489;2490;2491;, + 4;2492;2493;2494;2495;, + 4;2496;2497;2498;2499;, + 4;2500;2501;2502;2503;, + 4;2504;2505;2506;2507;, + 4;2508;2509;2510;2511;, + 4;2512;2513;2514;2515;, + 4;2516;2517;2518;2519;, + 4;2520;2521;2522;2523;, + 4;2524;2525;2526;2527;, + 4;2528;2529;2530;2531;, + 4;2532;2533;2534;2535;, + 4;2536;2537;2538;2539;, + 4;2540;2541;2542;2543;, + 4;2544;2545;2546;2547;, + 4;2548;2549;2550;2551;, + 4;2552;2553;2554;2555;, + 4;2556;2557;2558;2559;, + 4;2560;2561;2562;2563;, + 4;2564;2565;2566;2567;, + 4;2568;2569;2570;2571;, + 4;2572;2573;2574;2575;, + 4;2576;2577;2578;2579;, + 4;2580;2581;2582;2583;, + 4;2584;2585;2586;2587;, + 4;2588;2589;2590;2591;, + 4;2592;2593;2594;2595;, + 4;2596;2597;2598;2599;, + 4;2600;2601;2602;2603;, + 4;2604;2605;2606;2607;, + 4;2608;2609;2610;2611;, + 4;2612;2613;2614;2615;, + 4;2616;2617;2618;2619;, + 4;2620;2621;2622;2623;, + 4;2624;2625;2626;2627;, + 4;2628;2629;2630;2631;, + 4;2632;2633;2634;2635;, + 4;2636;2637;2638;2639;, + 4;2640;2641;2642;2643;, + 4;2644;2645;2646;2647;, + 4;2648;2649;2650;2651;, + 4;2652;2653;2654;2655;, + 4;2656;2657;2658;2659;, + 4;2660;2661;2662;2663;, + 4;2664;2665;2666;2667;, + 4;2668;2669;2670;2671;, + 4;2672;2673;2674;2675;, + 4;2676;2677;2678;2679;, + 4;2680;2681;2682;2683;, + 4;2684;2685;2686;2687;, + 4;2688;2689;2690;2691;, + 4;2692;2693;2694;2695;, + 4;2696;2697;2698;2699;, + 4;2700;2701;2702;2703;, + 4;2704;2705;2706;2707;, + 4;2708;2709;2710;2711;, + 4;2712;2713;2714;2715;, + 4;2716;2717;2718;2719;, + 4;2720;2721;2722;2723;, + 4;2724;2725;2726;2727;, + 4;2728;2729;2730;2731;, + 4;2732;2733;2734;2735;, + 4;2736;2737;2738;2739;, + 4;2740;2741;2742;2743;, + 4;2744;2745;2746;2747;, + 4;2748;2749;2750;2751;, + 4;2752;2753;2754;2755;, + 4;2756;2757;2758;2759;, + 4;2760;2761;2762;2763;, + 4;2764;2765;2766;2767;, + 4;2768;2769;2770;2771;, + 4;2772;2773;2774;2775;, + 4;2776;2777;2778;2779;, + 4;2780;2781;2782;2783;, + 4;2784;2785;2786;2787;, + 4;2788;2789;2790;2791;, + 4;2792;2793;2794;2795;, + 4;2796;2797;2798;2799;, + 4;2800;2801;2802;2803;, + 4;2804;2805;2806;2807;, + 4;2808;2809;2810;2811;, + 4;2812;2813;2814;2815;, + 4;2816;2817;2818;2819;, + 4;2820;2821;2822;2823;, + 4;2824;2825;2826;2827;, + 4;2828;2829;2830;2831;, + 4;2832;2833;2834;2835;, + 4;2836;2837;2838;2839;, + 4;2840;2841;2842;2843;, + 4;2844;2845;2846;2847;, + 4;2848;2849;2850;2851;, + 4;2852;2853;2854;2855;, + 4;2856;2857;2858;2859;, + 4;2860;2861;2862;2863;, + 4;2864;2865;2866;2867;, + 4;2868;2869;2870;2871;, + 4;2872;2873;2874;2875;, + 4;2876;2877;2878;2879;, + 4;2880;2881;2882;2883;, + 4;2884;2885;2886;2887;, + 4;2888;2889;2890;2891;, + 4;2892;2893;2894;2895;, + 4;2896;2897;2898;2899;, + 4;2900;2901;2902;2903;, + 4;2904;2905;2906;2907;, + 4;2908;2909;2910;2911;, + 4;2912;2913;2914;2915;, + 4;2916;2917;2918;2919;, + 4;2920;2921;2922;2923;, + 4;2924;2925;2926;2927;, + 4;2928;2929;2930;2931;, + 4;2932;2933;2934;2935;, + 4;2936;2937;2938;2939;, + 4;2940;2941;2942;2943;, + 4;2944;2945;2946;2947;, + 4;2948;2949;2950;2951;; + MeshNormals { //Plane_000 Normals + 2952; + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000;-0.000000;-1.000000;, + 0.000000;-0.000000;-1.000000;, + 0.000000;-0.000000;-1.000000;, + 0.000000;-0.000000;-1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;; + 738; + 4;0;1;2;3;, + 4;4;5;6;7;, + 4;8;9;10;11;, + 4;12;13;14;15;, + 4;16;17;18;19;, + 4;20;21;22;23;, + 4;24;25;26;27;, + 4;28;29;30;31;, + 4;32;33;34;35;, + 4;36;37;38;39;, + 4;40;41;42;43;, + 4;44;45;46;47;, + 4;48;49;50;51;, + 4;52;53;54;55;, + 4;56;57;58;59;, + 4;60;61;62;63;, + 4;64;65;66;67;, + 4;68;69;70;71;, + 4;72;73;74;75;, + 4;76;77;78;79;, + 4;80;81;82;83;, + 4;84;85;86;87;, + 4;88;89;90;91;, + 4;92;93;94;95;, + 4;96;97;98;99;, + 4;100;101;102;103;, + 4;104;105;106;107;, + 4;108;109;110;111;, + 4;112;113;114;115;, + 4;116;117;118;119;, + 4;120;121;122;123;, + 4;124;125;126;127;, + 4;128;129;130;131;, + 4;132;133;134;135;, + 4;136;137;138;139;, + 4;140;141;142;143;, + 4;144;145;146;147;, + 4;148;149;150;151;, + 4;152;153;154;155;, + 4;156;157;158;159;, + 4;160;161;162;163;, + 4;164;165;166;167;, + 4;168;169;170;171;, + 4;172;173;174;175;, + 4;176;177;178;179;, + 4;180;181;182;183;, + 4;184;185;186;187;, + 4;188;189;190;191;, + 4;192;193;194;195;, + 4;196;197;198;199;, + 4;200;201;202;203;, + 4;204;205;206;207;, + 4;208;209;210;211;, + 4;212;213;214;215;, + 4;216;217;218;219;, + 4;220;221;222;223;, + 4;224;225;226;227;, + 4;228;229;230;231;, + 4;232;233;234;235;, + 4;236;237;238;239;, + 4;240;241;242;243;, + 4;244;245;246;247;, + 4;248;249;250;251;, + 4;252;253;254;255;, + 4;256;257;258;259;, + 4;260;261;262;263;, + 4;264;265;266;267;, + 4;268;269;270;271;, + 4;272;273;274;275;, + 4;276;277;278;279;, + 4;280;281;282;283;, + 4;284;285;286;287;, + 4;288;289;290;291;, + 4;292;293;294;295;, + 4;296;297;298;299;, + 4;300;301;302;303;, + 4;304;305;306;307;, + 4;308;309;310;311;, + 4;312;313;314;315;, + 4;316;317;318;319;, + 4;320;321;322;323;, + 4;324;325;326;327;, + 4;328;329;330;331;, + 4;332;333;334;335;, + 4;336;337;338;339;, + 4;340;341;342;343;, + 4;344;345;346;347;, + 4;348;349;350;351;, + 4;352;353;354;355;, + 4;356;357;358;359;, + 4;360;361;362;363;, + 4;364;365;366;367;, + 4;368;369;370;371;, + 4;372;373;374;375;, + 4;376;377;378;379;, + 4;380;381;382;383;, + 4;384;385;386;387;, + 4;388;389;390;391;, + 4;392;393;394;395;, + 4;396;397;398;399;, + 4;400;401;402;403;, + 4;404;405;406;407;, + 4;408;409;410;411;, + 4;412;413;414;415;, + 4;416;417;418;419;, + 4;420;421;422;423;, + 4;424;425;426;427;, + 4;428;429;430;431;, + 4;432;433;434;435;, + 4;436;437;438;439;, + 4;440;441;442;443;, + 4;444;445;446;447;, + 4;448;449;450;451;, + 4;452;453;454;455;, + 4;456;457;458;459;, + 4;460;461;462;463;, + 4;464;465;466;467;, + 4;468;469;470;471;, + 4;472;473;474;475;, + 4;476;477;478;479;, + 4;480;481;482;483;, + 4;484;485;486;487;, + 4;488;489;490;491;, + 4;492;493;494;495;, + 4;496;497;498;499;, + 4;500;501;502;503;, + 4;504;505;506;507;, + 4;508;509;510;511;, + 4;512;513;514;515;, + 4;516;517;518;519;, + 4;520;521;522;523;, + 4;524;525;526;527;, + 4;528;529;530;531;, + 4;532;533;534;535;, + 4;536;537;538;539;, + 4;540;541;542;543;, + 4;544;545;546;547;, + 4;548;549;550;551;, + 4;552;553;554;555;, + 4;556;557;558;559;, + 4;560;561;562;563;, + 4;564;565;566;567;, + 4;568;569;570;571;, + 4;572;573;574;575;, + 4;576;577;578;579;, + 4;580;581;582;583;, + 4;584;585;586;587;, + 4;588;589;590;591;, + 4;592;593;594;595;, + 4;596;597;598;599;, + 4;600;601;602;603;, + 4;604;605;606;607;, + 4;608;609;610;611;, + 4;612;613;614;615;, + 4;616;617;618;619;, + 4;620;621;622;623;, + 4;624;625;626;627;, + 4;628;629;630;631;, + 4;632;633;634;635;, + 4;636;637;638;639;, + 4;640;641;642;643;, + 4;644;645;646;647;, + 4;648;649;650;651;, + 4;652;653;654;655;, + 4;656;657;658;659;, + 4;660;661;662;663;, + 4;664;665;666;667;, + 4;668;669;670;671;, + 4;672;673;674;675;, + 4;676;677;678;679;, + 4;680;681;682;683;, + 4;684;685;686;687;, + 4;688;689;690;691;, + 4;692;693;694;695;, + 4;696;697;698;699;, + 4;700;701;702;703;, + 4;704;705;706;707;, + 4;708;709;710;711;, + 4;712;713;714;715;, + 4;716;717;718;719;, + 4;720;721;722;723;, + 4;724;725;726;727;, + 4;728;729;730;731;, + 4;732;733;734;735;, + 4;736;737;738;739;, + 4;740;741;742;743;, + 4;744;745;746;747;, + 4;748;749;750;751;, + 4;752;753;754;755;, + 4;756;757;758;759;, + 4;760;761;762;763;, + 4;764;765;766;767;, + 4;768;769;770;771;, + 4;772;773;774;775;, + 4;776;777;778;779;, + 4;780;781;782;783;, + 4;784;785;786;787;, + 4;788;789;790;791;, + 4;792;793;794;795;, + 4;796;797;798;799;, + 4;800;801;802;803;, + 4;804;805;806;807;, + 4;808;809;810;811;, + 4;812;813;814;815;, + 4;816;817;818;819;, + 4;820;821;822;823;, + 4;824;825;826;827;, + 4;828;829;830;831;, + 4;832;833;834;835;, + 4;836;837;838;839;, + 4;840;841;842;843;, + 4;844;845;846;847;, + 4;848;849;850;851;, + 4;852;853;854;855;, + 4;856;857;858;859;, + 4;860;861;862;863;, + 4;864;865;866;867;, + 4;868;869;870;871;, + 4;872;873;874;875;, + 4;876;877;878;879;, + 4;880;881;882;883;, + 4;884;885;886;887;, + 4;888;889;890;891;, + 4;892;893;894;895;, + 4;896;897;898;899;, + 4;900;901;902;903;, + 4;904;905;906;907;, + 4;908;909;910;911;, + 4;912;913;914;915;, + 4;916;917;918;919;, + 4;920;921;922;923;, + 4;924;925;926;927;, + 4;928;929;930;931;, + 4;932;933;934;935;, + 4;936;937;938;939;, + 4;940;941;942;943;, + 4;944;945;946;947;, + 4;948;949;950;951;, + 4;952;953;954;955;, + 4;956;957;958;959;, + 4;960;961;962;963;, + 4;964;965;966;967;, + 4;968;969;970;971;, + 4;972;973;974;975;, + 4;976;977;978;979;, + 4;980;981;982;983;, + 4;984;985;986;987;, + 4;988;989;990;991;, + 4;992;993;994;995;, + 4;996;997;998;999;, + 4;1000;1001;1002;1003;, + 4;1004;1005;1006;1007;, + 4;1008;1009;1010;1011;, + 4;1012;1013;1014;1015;, + 4;1016;1017;1018;1019;, + 4;1020;1021;1022;1023;, + 4;1024;1025;1026;1027;, + 4;1028;1029;1030;1031;, + 4;1032;1033;1034;1035;, + 4;1036;1037;1038;1039;, + 4;1040;1041;1042;1043;, + 4;1044;1045;1046;1047;, + 4;1048;1049;1050;1051;, + 4;1052;1053;1054;1055;, + 4;1056;1057;1058;1059;, + 4;1060;1061;1062;1063;, + 4;1064;1065;1066;1067;, + 4;1068;1069;1070;1071;, + 4;1072;1073;1074;1075;, + 4;1076;1077;1078;1079;, + 4;1080;1081;1082;1083;, + 4;1084;1085;1086;1087;, + 4;1088;1089;1090;1091;, + 4;1092;1093;1094;1095;, + 4;1096;1097;1098;1099;, + 4;1100;1101;1102;1103;, + 4;1104;1105;1106;1107;, + 4;1108;1109;1110;1111;, + 4;1112;1113;1114;1115;, + 4;1116;1117;1118;1119;, + 4;1120;1121;1122;1123;, + 4;1124;1125;1126;1127;, + 4;1128;1129;1130;1131;, + 4;1132;1133;1134;1135;, + 4;1136;1137;1138;1139;, + 4;1140;1141;1142;1143;, + 4;1144;1145;1146;1147;, + 4;1148;1149;1150;1151;, + 4;1152;1153;1154;1155;, + 4;1156;1157;1158;1159;, + 4;1160;1161;1162;1163;, + 4;1164;1165;1166;1167;, + 4;1168;1169;1170;1171;, + 4;1172;1173;1174;1175;, + 4;1176;1177;1178;1179;, + 4;1180;1181;1182;1183;, + 4;1184;1185;1186;1187;, + 4;1188;1189;1190;1191;, + 4;1192;1193;1194;1195;, + 4;1196;1197;1198;1199;, + 4;1200;1201;1202;1203;, + 4;1204;1205;1206;1207;, + 4;1208;1209;1210;1211;, + 4;1212;1213;1214;1215;, + 4;1216;1217;1218;1219;, + 4;1220;1221;1222;1223;, + 4;1224;1225;1226;1227;, + 4;1228;1229;1230;1231;, + 4;1232;1233;1234;1235;, + 4;1236;1237;1238;1239;, + 4;1240;1241;1242;1243;, + 4;1244;1245;1246;1247;, + 4;1248;1249;1250;1251;, + 4;1252;1253;1254;1255;, + 4;1256;1257;1258;1259;, + 4;1260;1261;1262;1263;, + 4;1264;1265;1266;1267;, + 4;1268;1269;1270;1271;, + 4;1272;1273;1274;1275;, + 4;1276;1277;1278;1279;, + 4;1280;1281;1282;1283;, + 4;1284;1285;1286;1287;, + 4;1288;1289;1290;1291;, + 4;1292;1293;1294;1295;, + 4;1296;1297;1298;1299;, + 4;1300;1301;1302;1303;, + 4;1304;1305;1306;1307;, + 4;1308;1309;1310;1311;, + 4;1312;1313;1314;1315;, + 4;1316;1317;1318;1319;, + 4;1320;1321;1322;1323;, + 4;1324;1325;1326;1327;, + 4;1328;1329;1330;1331;, + 4;1332;1333;1334;1335;, + 4;1336;1337;1338;1339;, + 4;1340;1341;1342;1343;, + 4;1344;1345;1346;1347;, + 4;1348;1349;1350;1351;, + 4;1352;1353;1354;1355;, + 4;1356;1357;1358;1359;, + 4;1360;1361;1362;1363;, + 4;1364;1365;1366;1367;, + 4;1368;1369;1370;1371;, + 4;1372;1373;1374;1375;, + 4;1376;1377;1378;1379;, + 4;1380;1381;1382;1383;, + 4;1384;1385;1386;1387;, + 4;1388;1389;1390;1391;, + 4;1392;1393;1394;1395;, + 4;1396;1397;1398;1399;, + 4;1400;1401;1402;1403;, + 4;1404;1405;1406;1407;, + 4;1408;1409;1410;1411;, + 4;1412;1413;1414;1415;, + 4;1416;1417;1418;1419;, + 4;1420;1421;1422;1423;, + 4;1424;1425;1426;1427;, + 4;1428;1429;1430;1431;, + 4;1432;1433;1434;1435;, + 4;1436;1437;1438;1439;, + 4;1440;1441;1442;1443;, + 4;1444;1445;1446;1447;, + 4;1448;1449;1450;1451;, + 4;1452;1453;1454;1455;, + 4;1456;1457;1458;1459;, + 4;1460;1461;1462;1463;, + 4;1464;1465;1466;1467;, + 4;1468;1469;1470;1471;, + 4;1472;1473;1474;1475;, + 4;1476;1477;1478;1479;, + 4;1480;1481;1482;1483;, + 4;1484;1485;1486;1487;, + 4;1488;1489;1490;1491;, + 4;1492;1493;1494;1495;, + 4;1496;1497;1498;1499;, + 4;1500;1501;1502;1503;, + 4;1504;1505;1506;1507;, + 4;1508;1509;1510;1511;, + 4;1512;1513;1514;1515;, + 4;1516;1517;1518;1519;, + 4;1520;1521;1522;1523;, + 4;1524;1525;1526;1527;, + 4;1528;1529;1530;1531;, + 4;1532;1533;1534;1535;, + 4;1536;1537;1538;1539;, + 4;1540;1541;1542;1543;, + 4;1544;1545;1546;1547;, + 4;1548;1549;1550;1551;, + 4;1552;1553;1554;1555;, + 4;1556;1557;1558;1559;, + 4;1560;1561;1562;1563;, + 4;1564;1565;1566;1567;, + 4;1568;1569;1570;1571;, + 4;1572;1573;1574;1575;, + 4;1576;1577;1578;1579;, + 4;1580;1581;1582;1583;, + 4;1584;1585;1586;1587;, + 4;1588;1589;1590;1591;, + 4;1592;1593;1594;1595;, + 4;1596;1597;1598;1599;, + 4;1600;1601;1602;1603;, + 4;1604;1605;1606;1607;, + 4;1608;1609;1610;1611;, + 4;1612;1613;1614;1615;, + 4;1616;1617;1618;1619;, + 4;1620;1621;1622;1623;, + 4;1624;1625;1626;1627;, + 4;1628;1629;1630;1631;, + 4;1632;1633;1634;1635;, + 4;1636;1637;1638;1639;, + 4;1640;1641;1642;1643;, + 4;1644;1645;1646;1647;, + 4;1648;1649;1650;1651;, + 4;1652;1653;1654;1655;, + 4;1656;1657;1658;1659;, + 4;1660;1661;1662;1663;, + 4;1664;1665;1666;1667;, + 4;1668;1669;1670;1671;, + 4;1672;1673;1674;1675;, + 4;1676;1677;1678;1679;, + 4;1680;1681;1682;1683;, + 4;1684;1685;1686;1687;, + 4;1688;1689;1690;1691;, + 4;1692;1693;1694;1695;, + 4;1696;1697;1698;1699;, + 4;1700;1701;1702;1703;, + 4;1704;1705;1706;1707;, + 4;1708;1709;1710;1711;, + 4;1712;1713;1714;1715;, + 4;1716;1717;1718;1719;, + 4;1720;1721;1722;1723;, + 4;1724;1725;1726;1727;, + 4;1728;1729;1730;1731;, + 4;1732;1733;1734;1735;, + 4;1736;1737;1738;1739;, + 4;1740;1741;1742;1743;, + 4;1744;1745;1746;1747;, + 4;1748;1749;1750;1751;, + 4;1752;1753;1754;1755;, + 4;1756;1757;1758;1759;, + 4;1760;1761;1762;1763;, + 4;1764;1765;1766;1767;, + 4;1768;1769;1770;1771;, + 4;1772;1773;1774;1775;, + 4;1776;1777;1778;1779;, + 4;1780;1781;1782;1783;, + 4;1784;1785;1786;1787;, + 4;1788;1789;1790;1791;, + 4;1792;1793;1794;1795;, + 4;1796;1797;1798;1799;, + 4;1800;1801;1802;1803;, + 4;1804;1805;1806;1807;, + 4;1808;1809;1810;1811;, + 4;1812;1813;1814;1815;, + 4;1816;1817;1818;1819;, + 4;1820;1821;1822;1823;, + 4;1824;1825;1826;1827;, + 4;1828;1829;1830;1831;, + 4;1832;1833;1834;1835;, + 4;1836;1837;1838;1839;, + 4;1840;1841;1842;1843;, + 4;1844;1845;1846;1847;, + 4;1848;1849;1850;1851;, + 4;1852;1853;1854;1855;, + 4;1856;1857;1858;1859;, + 4;1860;1861;1862;1863;, + 4;1864;1865;1866;1867;, + 4;1868;1869;1870;1871;, + 4;1872;1873;1874;1875;, + 4;1876;1877;1878;1879;, + 4;1880;1881;1882;1883;, + 4;1884;1885;1886;1887;, + 4;1888;1889;1890;1891;, + 4;1892;1893;1894;1895;, + 4;1896;1897;1898;1899;, + 4;1900;1901;1902;1903;, + 4;1904;1905;1906;1907;, + 4;1908;1909;1910;1911;, + 4;1912;1913;1914;1915;, + 4;1916;1917;1918;1919;, + 4;1920;1921;1922;1923;, + 4;1924;1925;1926;1927;, + 4;1928;1929;1930;1931;, + 4;1932;1933;1934;1935;, + 4;1936;1937;1938;1939;, + 4;1940;1941;1942;1943;, + 4;1944;1945;1946;1947;, + 4;1948;1949;1950;1951;, + 4;1952;1953;1954;1955;, + 4;1956;1957;1958;1959;, + 4;1960;1961;1962;1963;, + 4;1964;1965;1966;1967;, + 4;1968;1969;1970;1971;, + 4;1972;1973;1974;1975;, + 4;1976;1977;1978;1979;, + 4;1980;1981;1982;1983;, + 4;1984;1985;1986;1987;, + 4;1988;1989;1990;1991;, + 4;1992;1993;1994;1995;, + 4;1996;1997;1998;1999;, + 4;2000;2001;2002;2003;, + 4;2004;2005;2006;2007;, + 4;2008;2009;2010;2011;, + 4;2012;2013;2014;2015;, + 4;2016;2017;2018;2019;, + 4;2020;2021;2022;2023;, + 4;2024;2025;2026;2027;, + 4;2028;2029;2030;2031;, + 4;2032;2033;2034;2035;, + 4;2036;2037;2038;2039;, + 4;2040;2041;2042;2043;, + 4;2044;2045;2046;2047;, + 4;2048;2049;2050;2051;, + 4;2052;2053;2054;2055;, + 4;2056;2057;2058;2059;, + 4;2060;2061;2062;2063;, + 4;2064;2065;2066;2067;, + 4;2068;2069;2070;2071;, + 4;2072;2073;2074;2075;, + 4;2076;2077;2078;2079;, + 4;2080;2081;2082;2083;, + 4;2084;2085;2086;2087;, + 4;2088;2089;2090;2091;, + 4;2092;2093;2094;2095;, + 4;2096;2097;2098;2099;, + 4;2100;2101;2102;2103;, + 4;2104;2105;2106;2107;, + 4;2108;2109;2110;2111;, + 4;2112;2113;2114;2115;, + 4;2116;2117;2118;2119;, + 4;2120;2121;2122;2123;, + 4;2124;2125;2126;2127;, + 4;2128;2129;2130;2131;, + 4;2132;2133;2134;2135;, + 4;2136;2137;2138;2139;, + 4;2140;2141;2142;2143;, + 4;2144;2145;2146;2147;, + 4;2148;2149;2150;2151;, + 4;2152;2153;2154;2155;, + 4;2156;2157;2158;2159;, + 4;2160;2161;2162;2163;, + 4;2164;2165;2166;2167;, + 4;2168;2169;2170;2171;, + 4;2172;2173;2174;2175;, + 4;2176;2177;2178;2179;, + 4;2180;2181;2182;2183;, + 4;2184;2185;2186;2187;, + 4;2188;2189;2190;2191;, + 4;2192;2193;2194;2195;, + 4;2196;2197;2198;2199;, + 4;2200;2201;2202;2203;, + 4;2204;2205;2206;2207;, + 4;2208;2209;2210;2211;, + 4;2212;2213;2214;2215;, + 4;2216;2217;2218;2219;, + 4;2220;2221;2222;2223;, + 4;2224;2225;2226;2227;, + 4;2228;2229;2230;2231;, + 4;2232;2233;2234;2235;, + 4;2236;2237;2238;2239;, + 4;2240;2241;2242;2243;, + 4;2244;2245;2246;2247;, + 4;2248;2249;2250;2251;, + 4;2252;2253;2254;2255;, + 4;2256;2257;2258;2259;, + 4;2260;2261;2262;2263;, + 4;2264;2265;2266;2267;, + 4;2268;2269;2270;2271;, + 4;2272;2273;2274;2275;, + 4;2276;2277;2278;2279;, + 4;2280;2281;2282;2283;, + 4;2284;2285;2286;2287;, + 4;2288;2289;2290;2291;, + 4;2292;2293;2294;2295;, + 4;2296;2297;2298;2299;, + 4;2300;2301;2302;2303;, + 4;2304;2305;2306;2307;, + 4;2308;2309;2310;2311;, + 4;2312;2313;2314;2315;, + 4;2316;2317;2318;2319;, + 4;2320;2321;2322;2323;, + 4;2324;2325;2326;2327;, + 4;2328;2329;2330;2331;, + 4;2332;2333;2334;2335;, + 4;2336;2337;2338;2339;, + 4;2340;2341;2342;2343;, + 4;2344;2345;2346;2347;, + 4;2348;2349;2350;2351;, + 4;2352;2353;2354;2355;, + 4;2356;2357;2358;2359;, + 4;2360;2361;2362;2363;, + 4;2364;2365;2366;2367;, + 4;2368;2369;2370;2371;, + 4;2372;2373;2374;2375;, + 4;2376;2377;2378;2379;, + 4;2380;2381;2382;2383;, + 4;2384;2385;2386;2387;, + 4;2388;2389;2390;2391;, + 4;2392;2393;2394;2395;, + 4;2396;2397;2398;2399;, + 4;2400;2401;2402;2403;, + 4;2404;2405;2406;2407;, + 4;2408;2409;2410;2411;, + 4;2412;2413;2414;2415;, + 4;2416;2417;2418;2419;, + 4;2420;2421;2422;2423;, + 4;2424;2425;2426;2427;, + 4;2428;2429;2430;2431;, + 4;2432;2433;2434;2435;, + 4;2436;2437;2438;2439;, + 4;2440;2441;2442;2443;, + 4;2444;2445;2446;2447;, + 4;2448;2449;2450;2451;, + 4;2452;2453;2454;2455;, + 4;2456;2457;2458;2459;, + 4;2460;2461;2462;2463;, + 4;2464;2465;2466;2467;, + 4;2468;2469;2470;2471;, + 4;2472;2473;2474;2475;, + 4;2476;2477;2478;2479;, + 4;2480;2481;2482;2483;, + 4;2484;2485;2486;2487;, + 4;2488;2489;2490;2491;, + 4;2492;2493;2494;2495;, + 4;2496;2497;2498;2499;, + 4;2500;2501;2502;2503;, + 4;2504;2505;2506;2507;, + 4;2508;2509;2510;2511;, + 4;2512;2513;2514;2515;, + 4;2516;2517;2518;2519;, + 4;2520;2521;2522;2523;, + 4;2524;2525;2526;2527;, + 4;2528;2529;2530;2531;, + 4;2532;2533;2534;2535;, + 4;2536;2537;2538;2539;, + 4;2540;2541;2542;2543;, + 4;2544;2545;2546;2547;, + 4;2548;2549;2550;2551;, + 4;2552;2553;2554;2555;, + 4;2556;2557;2558;2559;, + 4;2560;2561;2562;2563;, + 4;2564;2565;2566;2567;, + 4;2568;2569;2570;2571;, + 4;2572;2573;2574;2575;, + 4;2576;2577;2578;2579;, + 4;2580;2581;2582;2583;, + 4;2584;2585;2586;2587;, + 4;2588;2589;2590;2591;, + 4;2592;2593;2594;2595;, + 4;2596;2597;2598;2599;, + 4;2600;2601;2602;2603;, + 4;2604;2605;2606;2607;, + 4;2608;2609;2610;2611;, + 4;2612;2613;2614;2615;, + 4;2616;2617;2618;2619;, + 4;2620;2621;2622;2623;, + 4;2624;2625;2626;2627;, + 4;2628;2629;2630;2631;, + 4;2632;2633;2634;2635;, + 4;2636;2637;2638;2639;, + 4;2640;2641;2642;2643;, + 4;2644;2645;2646;2647;, + 4;2648;2649;2650;2651;, + 4;2652;2653;2654;2655;, + 4;2656;2657;2658;2659;, + 4;2660;2661;2662;2663;, + 4;2664;2665;2666;2667;, + 4;2668;2669;2670;2671;, + 4;2672;2673;2674;2675;, + 4;2676;2677;2678;2679;, + 4;2680;2681;2682;2683;, + 4;2684;2685;2686;2687;, + 4;2688;2689;2690;2691;, + 4;2692;2693;2694;2695;, + 4;2696;2697;2698;2699;, + 4;2700;2701;2702;2703;, + 4;2704;2705;2706;2707;, + 4;2708;2709;2710;2711;, + 4;2712;2713;2714;2715;, + 4;2716;2717;2718;2719;, + 4;2720;2721;2722;2723;, + 4;2724;2725;2726;2727;, + 4;2728;2729;2730;2731;, + 4;2732;2733;2734;2735;, + 4;2736;2737;2738;2739;, + 4;2740;2741;2742;2743;, + 4;2744;2745;2746;2747;, + 4;2748;2749;2750;2751;, + 4;2752;2753;2754;2755;, + 4;2756;2757;2758;2759;, + 4;2760;2761;2762;2763;, + 4;2764;2765;2766;2767;, + 4;2768;2769;2770;2771;, + 4;2772;2773;2774;2775;, + 4;2776;2777;2778;2779;, + 4;2780;2781;2782;2783;, + 4;2784;2785;2786;2787;, + 4;2788;2789;2790;2791;, + 4;2792;2793;2794;2795;, + 4;2796;2797;2798;2799;, + 4;2800;2801;2802;2803;, + 4;2804;2805;2806;2807;, + 4;2808;2809;2810;2811;, + 4;2812;2813;2814;2815;, + 4;2816;2817;2818;2819;, + 4;2820;2821;2822;2823;, + 4;2824;2825;2826;2827;, + 4;2828;2829;2830;2831;, + 4;2832;2833;2834;2835;, + 4;2836;2837;2838;2839;, + 4;2840;2841;2842;2843;, + 4;2844;2845;2846;2847;, + 4;2848;2849;2850;2851;, + 4;2852;2853;2854;2855;, + 4;2856;2857;2858;2859;, + 4;2860;2861;2862;2863;, + 4;2864;2865;2866;2867;, + 4;2868;2869;2870;2871;, + 4;2872;2873;2874;2875;, + 4;2876;2877;2878;2879;, + 4;2880;2881;2882;2883;, + 4;2884;2885;2886;2887;, + 4;2888;2889;2890;2891;, + 4;2892;2893;2894;2895;, + 4;2896;2897;2898;2899;, + 4;2900;2901;2902;2903;, + 4;2904;2905;2906;2907;, + 4;2908;2909;2910;2911;, + 4;2912;2913;2914;2915;, + 4;2916;2917;2918;2919;, + 4;2920;2921;2922;2923;, + 4;2924;2925;2926;2927;, + 4;2928;2929;2930;2931;, + 4;2932;2933;2934;2935;, + 4;2936;2937;2938;2939;, + 4;2940;2941;2942;2943;, + 4;2944;2945;2946;2947;, + 4;2948;2949;2950;2951;; + } //End of Plane_000 Normals + MeshMaterialList { //Plane_000 Material List + 1; + 738; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material Material { + 0.640000; 0.640000; 0.640000; 1.000000;; + 96.078431; + 0.500000; 0.500000; 0.500000;; + 0.000000; 0.000000; 0.000000;; + TextureFilename {"boat.png";} + } + } //End of Plane_000 Material List + MeshTextureCoords { //Plane_000 UV Coordinates + 2952; + 0.116022; 0.052830;, + 0.087066; 0.052833;, + 0.087063; 0.025689;, + 0.116019; 0.025685;, + 0.029160; 0.479941;, + 0.058118; 0.479941;, + 0.058118; 0.507087;, + 0.029160; 0.507087;, + 0.087076; 0.222947;, + 0.058119; 0.222948;, + 0.058119; 0.195803;, + 0.087075; 0.195803;, + 0.144991; 0.393067;, + 0.116033; 0.393067;, + 0.116034; 0.365922;, + 0.144991; 0.365922;, + 0.405609; 0.393072;, + 0.376652; 0.393070;, + 0.376653; 0.365924;, + 0.405611; 0.365926;, + 0.405620; 0.139684;, + 0.434582; 0.139684;, + 0.434582; 0.166834;, + 0.405621; 0.166834;, + 0.662141; 0.896163;, + 0.691099; 0.896163;, + 0.691099; 0.923309;, + 0.662141; 0.923309;, + 0.289781; 0.309818;, + 0.318739; 0.309818;, + 0.318739; 0.336965;, + 0.289780; 0.336964;, + 0.749016; 0.896163;, + 0.777974; 0.896163;, + 0.777974; 0.923309;, + 0.749016; 0.923309;, + 0.173944; 0.139696;, + 0.202902; 0.139694;, + 0.202903; 0.166840;, + 0.173946; 0.166842;, + 0.231853; 0.052816;, + 0.202894; 0.052820;, + 0.202891; 0.025674;, + 0.231849; 0.025670;, + 0.202907; 0.393067;, + 0.173949; 0.393067;, + 0.173949; 0.365921;, + 0.202907; 0.365921;, + 0.318738; 0.139687;, + 0.347698; 0.139686;, + 0.347699; 0.166834;, + 0.318739; 0.166835;, + 0.289772; 0.052810;, + 0.260812; 0.052813;, + 0.260808; 0.025666;, + 0.289768; 0.025662;, + 0.579760; 0.536037;, + 0.550803; 0.536034;, + 0.550805; 0.508889;, + 0.579762; 0.508891;, + 0.202907; 0.479940;, + 0.231864; 0.479940;, + 0.231865; 0.507085;, + 0.202907; 0.507085;, + 0.087073; 0.139701;, + 0.116029; 0.139700;, + 0.116031; 0.166845;, + 0.087074; 0.166846;, + 0.463541; 0.222946;, + 0.434580; 0.222944;, + 0.434581; 0.195795;, + 0.463543; 0.195797;, + 0.434571; 0.336970;, + 0.463530; 0.336973;, + 0.463527; 0.365931;, + 0.434569; 0.365928;, + 0.405613; 0.336968;, + 0.434571; 0.336970;, + 0.434569; 0.365928;, + 0.405611; 0.365926;, + 0.347692; 0.479940;, + 0.376649; 0.479941;, + 0.376648; 0.507085;, + 0.347691; 0.507085;, + 0.202907; 0.336964;, + 0.231865; 0.336964;, + 0.231864; 0.365922;, + 0.202907; 0.365921;, + 0.173949; 0.336964;, + 0.202907; 0.336964;, + 0.202907; 0.365921;, + 0.173949; 0.365921;, + 0.144991; 0.309818;, + 0.173949; 0.309818;, + 0.173949; 0.336964;, + 0.144991; 0.336964;, + 0.434582; 0.166834;, + 0.463544; 0.166834;, + 0.463543; 0.195797;, + 0.434581; 0.195795;, + 0.405621; 0.166834;, + 0.434582; 0.166834;, + 0.434581; 0.195795;, + 0.405620; 0.195795;, + 0.144990; 0.222946;, + 0.116033; 0.222947;, + 0.116032; 0.195802;, + 0.144989; 0.195800;, + 0.318739; 0.166835;, + 0.347699; 0.166834;, + 0.347700; 0.195794;, + 0.318740; 0.195795;, + 0.289780; 0.166836;, + 0.318739; 0.166835;, + 0.318740; 0.195795;, + 0.289780; 0.195795;, + 0.231865; 0.309818;, + 0.260823; 0.309818;, + 0.260822; 0.336964;, + 0.231865; 0.336964;, + 0.434560; 0.507088;, + 0.463516; 0.507089;, + 0.463514; 0.536045;, + 0.434558; 0.536044;, + 0.405604; 0.507086;, + 0.434560; 0.507088;, + 0.434558; 0.536044;, + 0.405603; 0.536042;, + 0.058118; 0.393067;, + 0.029160; 0.393067;, + 0.029160; 0.365921;, + 0.058118; 0.365921;, + 0.318735; 0.507084;, + 0.347691; 0.507085;, + 0.347691; 0.536041;, + 0.318735; 0.536041;, + 0.289778; 0.507084;, + 0.318735; 0.507084;, + 0.318735; 0.536041;, + 0.289779; 0.536041;, + 0.376654; 0.052801;, + 0.347693; 0.052804;, + 0.347690; 0.025655;, + 0.376652; 0.025652;, + 0.318739; 0.336965;, + 0.347697; 0.336965;, + 0.347696; 0.365923;, + 0.318738; 0.365923;, + 0.289780; 0.336964;, + 0.318739; 0.336965;, + 0.318738; 0.365923;, + 0.289780; 0.365922;, + 0.806932; 0.896163;, + 0.835890; 0.896163;, + 0.835890; 0.923309;, + 0.806932; 0.923309;, + 0.202907; 0.507085;, + 0.231865; 0.507085;, + 0.231865; 0.536042;, + 0.202908; 0.536043;, + 0.173950; 0.507086;, + 0.202907; 0.507085;, + 0.202908; 0.536043;, + 0.173950; 0.536044;, + 0.260819; 0.139691;, + 0.289778; 0.139689;, + 0.289780; 0.166836;, + 0.260820; 0.166837;, + 0.087076; 0.507087;, + 0.116034; 0.507086;, + 0.116034; 0.536044;, + 0.087076; 0.536045;, + 0.058118; 0.507087;, + 0.087076; 0.507087;, + 0.087076; 0.536045;, + 0.058118; 0.536045;, + 0.782471; 0.536045;, + 0.753512; 0.536045;, + 0.753512; 0.508898;, + 0.782471; 0.508898;, + 0.087076; 0.336964;, + 0.116034; 0.336964;, + 0.116034; 0.365922;, + 0.087076; 0.365921;, + 0.058118; 0.336964;, + 0.087076; 0.336964;, + 0.087076; 0.365921;, + 0.058118; 0.365921;, + 0.116029; 0.139700;, + 0.144987; 0.139698;, + 0.144988; 0.166843;, + 0.116031; 0.166845;, + 0.202903; 0.166840;, + 0.231862; 0.166839;, + 0.231863; 0.195797;, + 0.202905; 0.195798;, + 0.173946; 0.166842;, + 0.202903; 0.166840;, + 0.202905; 0.195798;, + 0.173947; 0.195799;, + 0.260822; 0.479939;, + 0.289779; 0.479939;, + 0.289778; 0.507084;, + 0.260822; 0.507084;, + 0.087074; 0.166846;, + 0.116031; 0.166845;, + 0.116032; 0.195802;, + 0.087075; 0.195803;, + 0.058118; 0.166847;, + 0.087074; 0.166846;, + 0.087075; 0.195803;, + 0.058119; 0.195803;, + 0.116033; 0.222947;, + 0.087076; 0.222947;, + 0.087075; 0.195803;, + 0.116032; 0.195802;, + 0.144992; 0.479940;, + 0.173949; 0.479940;, + 0.173950; 0.507086;, + 0.144992; 0.507086;, + 0.202906; 0.222944;, + 0.173948; 0.222945;, + 0.173947; 0.195799;, + 0.202905; 0.195798;, + 0.376652; 0.393070;, + 0.347695; 0.393069;, + 0.347696; 0.365923;, + 0.376653; 0.365924;, + 0.434578; 0.052797;, + 0.405616; 0.052799;, + 0.405614; 0.025649;, + 0.434577; 0.025647;, + 0.029162; 0.309818;, + 0.058119; 0.309818;, + 0.058118; 0.336964;, + 0.029161; 0.336963;, + 0.173949; 0.309818;, + 0.202907; 0.309818;, + 0.202907; 0.336964;, + 0.173949; 0.336964;, + 0.289779; 0.479939;, + 0.318735; 0.479940;, + 0.318735; 0.507084;, + 0.289778; 0.507084;, + 0.289780; 0.393068;, + 0.260822; 0.393067;, + 0.260822; 0.365922;, + 0.289780; 0.365922;, + 0.058119; 0.309818;, + 0.087076; 0.309818;, + 0.087076; 0.336964;, + 0.058118; 0.336964;, + 0.231864; 0.393067;, + 0.202907; 0.393067;, + 0.202907; 0.365921;, + 0.231864; 0.365922;, + 0.434567; 0.393073;, + 0.405609; 0.393072;, + 0.405611; 0.365926;, + 0.434569; 0.365928;, + 0.434582; 0.139684;, + 0.463545; 0.139683;, + 0.463544; 0.166834;, + 0.434582; 0.166834;, + 0.376655; 0.336967;, + 0.405613; 0.336968;, + 0.405611; 0.365926;, + 0.376653; 0.365924;, + 0.347697; 0.336965;, + 0.376655; 0.336967;, + 0.376653; 0.365924;, + 0.347696; 0.365923;, + 0.260812; 0.052813;, + 0.231853; 0.052816;, + 0.231849; 0.025670;, + 0.260808; 0.025666;, + 0.289781; 0.222942;, + 0.260822; 0.222943;, + 0.260822; 0.195796;, + 0.289780; 0.195795;, + 0.550803; 0.536034;, + 0.521845; 0.536032;, + 0.521847; 0.508886;, + 0.550805; 0.508889;, + 0.318739; 0.309818;, + 0.347698; 0.309819;, + 0.347697; 0.336965;, + 0.318739; 0.336965;, + 0.637676; 0.536041;, + 0.608718; 0.536039;, + 0.608720; 0.508893;, + 0.637678; 0.508895;, + 0.202902; 0.139694;, + 0.231860; 0.139692;, + 0.231862; 0.166839;, + 0.202903; 0.166840;, + 0.318732; 0.052806;, + 0.289772; 0.052810;, + 0.289768; 0.025662;, + 0.318729; 0.025658;, + 0.144991; 0.336964;, + 0.173949; 0.336964;, + 0.173949; 0.365921;, + 0.144991; 0.365922;, + 0.116034; 0.336964;, + 0.144991; 0.336964;, + 0.144991; 0.365922;, + 0.116034; 0.365922;, + 0.864848; 0.896163;, + 0.893806; 0.896163;, + 0.893806; 0.923309;, + 0.864848; 0.923309;, + 0.029160; 0.393067;, + 0.000202; 0.393067;, + 0.000202; 0.365920;, + 0.029160; 0.365921;, + 0.777974; 0.896163;, + 0.806932; 0.896163;, + 0.806932; 0.923309;, + 0.777974; 0.923309;, + 0.058110; 0.052835;, + 0.029155; 0.052838;, + 0.029152; 0.025694;, + 0.058107; 0.025692;, + 0.376649; 0.479941;, + 0.405605; 0.479942;, + 0.405604; 0.507086;, + 0.376648; 0.507085;, + 0.000205; 0.139706;, + 0.029161; 0.139705;, + 0.029162; 0.166848;, + 0.000206; 0.166849;, + 0.231864; 0.222943;, + 0.202906; 0.222944;, + 0.202905; 0.195798;, + 0.231863; 0.195797;, + 0.260823; 0.309818;, + 0.289781; 0.309818;, + 0.289780; 0.336964;, + 0.260822; 0.336964;, + 0.087076; 0.393067;, + 0.058118; 0.393067;, + 0.058118; 0.365921;, + 0.087076; 0.365921;, + 0.463541; 0.052795;, + 0.434578; 0.052797;, + 0.434577; 0.025647;, + 0.463539; 0.025645;, + 0.695593; 0.536044;, + 0.666635; 0.536043;, + 0.666636; 0.508897;, + 0.695594; 0.508898;, + 0.405615; 0.309822;, + 0.434574; 0.309824;, + 0.434571; 0.336970;, + 0.405613; 0.336968;, + 0.173936; 0.052823;, + 0.144979; 0.052827;, + 0.144976; 0.025682;, + 0.173933; 0.025678;, + 0.376660; 0.166834;, + 0.405621; 0.166834;, + 0.405620; 0.195795;, + 0.376660; 0.195794;, + 0.347699; 0.166834;, + 0.376660; 0.166834;, + 0.376660; 0.195794;, + 0.347700; 0.195794;, + 0.633183; 0.896163;, + 0.662141; 0.896163;, + 0.662141; 0.923309;, + 0.633183; 0.923309;, + 0.144987; 0.139698;, + 0.173944; 0.139696;, + 0.173946; 0.166842;, + 0.144988; 0.166843;, + 0.405605; 0.479942;, + 0.434561; 0.479944;, + 0.434560; 0.507088;, + 0.405604; 0.507086;, + 0.260822; 0.393067;, + 0.231864; 0.393067;, + 0.231864; 0.365922;, + 0.260822; 0.365922;, + 0.058118; 0.479941;, + 0.087076; 0.479941;, + 0.087076; 0.507087;, + 0.058118; 0.507087;, + 0.463524; 0.393076;, + 0.434567; 0.393073;, + 0.434569; 0.365928;, + 0.463527; 0.365931;, + 0.202907; 0.309818;, + 0.231865; 0.309818;, + 0.231865; 0.336964;, + 0.202907; 0.336964;, + 0.260820; 0.166837;, + 0.289780; 0.166836;, + 0.289780; 0.195795;, + 0.260822; 0.195796;, + 0.231862; 0.166839;, + 0.260820; 0.166837;, + 0.260822; 0.195796;, + 0.231863; 0.195797;, + 0.260822; 0.222943;, + 0.231864; 0.222943;, + 0.231863; 0.195797;, + 0.260822; 0.195796;, + 0.405620; 0.222943;, + 0.376659; 0.222942;, + 0.376660; 0.195794;, + 0.405620; 0.195795;, + 0.347698; 0.309819;, + 0.376656; 0.309820;, + 0.376655; 0.336967;, + 0.347697; 0.336965;, + 0.318735; 0.479940;, + 0.347692; 0.479940;, + 0.347691; 0.507085;, + 0.318735; 0.507084;, + 0.318737; 0.393068;, + 0.289780; 0.393068;, + 0.289780; 0.365922;, + 0.318738; 0.365923;, + 0.087076; 0.309818;, + 0.116034; 0.309818;, + 0.116034; 0.336964;, + 0.087076; 0.336964;, + 0.347698; 0.139686;, + 0.376659; 0.139685;, + 0.376660; 0.166834;, + 0.347699; 0.166834;, + 0.376648; 0.507085;, + 0.405604; 0.507086;, + 0.405603; 0.536042;, + 0.376647; 0.536041;, + 0.347691; 0.507085;, + 0.376648; 0.507085;, + 0.376647; 0.536041;, + 0.347691; 0.536041;, + 0.347693; 0.052804;, + 0.318732; 0.052806;, + 0.318729; 0.025658;, + 0.347690; 0.025655;, + 0.260822; 0.507084;, + 0.289778; 0.507084;, + 0.289779; 0.536041;, + 0.260822; 0.536041;, + 0.231865; 0.507085;, + 0.260822; 0.507084;, + 0.260822; 0.536041;, + 0.231865; 0.536042;, + 0.318740; 0.222942;, + 0.289781; 0.222942;, + 0.289780; 0.195795;, + 0.318740; 0.195795;, + 0.922764; 0.896163;, + 0.951722; 0.896163;, + 0.951722; 0.923309;, + 0.922764; 0.923309;, + 0.029155; 0.052838;, + 0.000199; 0.052841;, + 0.000197; 0.025697;, + 0.029152; 0.025694;, + 0.000202; 0.479941;, + 0.029160; 0.479941;, + 0.029160; 0.507087;, + 0.000202; 0.507087;, + 0.058119; 0.222948;, + 0.029163; 0.222948;, + 0.029163; 0.195804;, + 0.058119; 0.195803;, + 0.753512; 0.536045;, + 0.724553; 0.536045;, + 0.724553; 0.508898;, + 0.753512; 0.508898;, + 0.116033; 0.393067;, + 0.087076; 0.393067;, + 0.087076; 0.365921;, + 0.116034; 0.365922;, + 0.260822; 0.336964;, + 0.289780; 0.336964;, + 0.289780; 0.365922;, + 0.260822; 0.365922;, + 0.231865; 0.336964;, + 0.260822; 0.336964;, + 0.260822; 0.365922;, + 0.231864; 0.365922;, + 0.666635; 0.536043;, + 0.637676; 0.536041;, + 0.637678; 0.508895;, + 0.666636; 0.508897;, + 0.144992; 0.507086;, + 0.173950; 0.507086;, + 0.173950; 0.536044;, + 0.144992; 0.536044;, + 0.116034; 0.507086;, + 0.144992; 0.507086;, + 0.144992; 0.536044;, + 0.116034; 0.536044;, + 0.087066; 0.052833;, + 0.058110; 0.052835;, + 0.058107; 0.025692;, + 0.087063; 0.025689;, + 0.029160; 0.507087;, + 0.058118; 0.507087;, + 0.058118; 0.536045;, + 0.029160; 0.536045;, + 0.000202; 0.507087;, + 0.029160; 0.507087;, + 0.029160; 0.536045;, + 0.000202; 0.536045;, + 0.144979; 0.052827;, + 0.116022; 0.052830;, + 0.116019; 0.025685;, + 0.144976; 0.025682;, + 0.173949; 0.393067;, + 0.144991; 0.393067;, + 0.144991; 0.365922;, + 0.173949; 0.365921;, + 0.289778; 0.139689;, + 0.318738; 0.139687;, + 0.318739; 0.166835;, + 0.289780; 0.166836;, + 0.691099; 0.896163;, + 0.720057; 0.896163;, + 0.720058; 0.923309;, + 0.691099; 0.923309;, + 0.029161; 0.139705;, + 0.058116; 0.139703;, + 0.058118; 0.166847;, + 0.029162; 0.166848;, + 0.173949; 0.479940;, + 0.202907; 0.479940;, + 0.202907; 0.507085;, + 0.173950; 0.507086;, + 0.058116; 0.139703;, + 0.087073; 0.139701;, + 0.087074; 0.166846;, + 0.058118; 0.166847;, + 0.029161; 0.336963;, + 0.058118; 0.336964;, + 0.058118; 0.365921;, + 0.029160; 0.365921;, + 0.000203; 0.336962;, + 0.029161; 0.336963;, + 0.029160; 0.365921;, + 0.000202; 0.365920;, + 0.434574; 0.309824;, + 0.463533; 0.309827;, + 0.463530; 0.336973;, + 0.434571; 0.336970;, + 0.376659; 0.222942;, + 0.347700; 0.222942;, + 0.347700; 0.195794;, + 0.376660; 0.195794;, + 0.202894; 0.052820;, + 0.173936; 0.052823;, + 0.173933; 0.025678;, + 0.202891; 0.025674;, + 0.521845; 0.536032;, + 0.492888; 0.536029;, + 0.492890; 0.508884;, + 0.521847; 0.508886;, + 0.434561; 0.479944;, + 0.463517; 0.479945;, + 0.463516; 0.507089;, + 0.434560; 0.507088;, + 0.347695; 0.393069;, + 0.318737; 0.393068;, + 0.318738; 0.365923;, + 0.347696; 0.365923;, + 0.116034; 0.309818;, + 0.144991; 0.309818;, + 0.144991; 0.336964;, + 0.116034; 0.336964;, + 0.144988; 0.166843;, + 0.173946; 0.166842;, + 0.173947; 0.195799;, + 0.144989; 0.195800;, + 0.116031; 0.166845;, + 0.144988; 0.166843;, + 0.144989; 0.195800;, + 0.116032; 0.195802;, + 0.087076; 0.479941;, + 0.116034; 0.479941;, + 0.116034; 0.507086;, + 0.087076; 0.507087;, + 0.347700; 0.222942;, + 0.318740; 0.222942;, + 0.318740; 0.195795;, + 0.347700; 0.195794;, + 0.231860; 0.139692;, + 0.260819; 0.139691;, + 0.260820; 0.166837;, + 0.231862; 0.166839;, + 0.434580; 0.222944;, + 0.405620; 0.222943;, + 0.405620; 0.195795;, + 0.434581; 0.195795;, + 0.893806; 0.896163;, + 0.922764; 0.896163;, + 0.922764; 0.923309;, + 0.893806; 0.923309;, + 0.376656; 0.309820;, + 0.405615; 0.309822;, + 0.405613; 0.336968;, + 0.376655; 0.336967;, + 0.231864; 0.479940;, + 0.260822; 0.479939;, + 0.260822; 0.507084;, + 0.231865; 0.507085;, + 0.029162; 0.166848;, + 0.058118; 0.166847;, + 0.058119; 0.195803;, + 0.029163; 0.195804;, + 0.000206; 0.166849;, + 0.029162; 0.166848;, + 0.029163; 0.195804;, + 0.000207; 0.195804;, + 0.029163; 0.222948;, + 0.000207; 0.222948;, + 0.000207; 0.195804;, + 0.029163; 0.195804;, + 0.116034; 0.479941;, + 0.144992; 0.479940;, + 0.144992; 0.507086;, + 0.116034; 0.507086;, + 0.173948; 0.222945;, + 0.144990; 0.222946;, + 0.144989; 0.195800;, + 0.173947; 0.195799;, + 0.376659; 0.139685;, + 0.405620; 0.139684;, + 0.405621; 0.166834;, + 0.376660; 0.166834;, + 0.405616; 0.052799;, + 0.376654; 0.052801;, + 0.376652; 0.025652;, + 0.405614; 0.025649;, + 0.000205; 0.309817;, + 0.029162; 0.309818;, + 0.029161; 0.336963;, + 0.000203; 0.336962;, + 0.811430; 0.536045;, + 0.782471; 0.536045;, + 0.782471; 0.508898;, + 0.811430; 0.508898;, + 0.260812; 0.052813;, + 0.289772; 0.052810;, + 0.289774; 0.081770;, + 0.260815; 0.081772;, + 0.318732; 0.052806;, + 0.347693; 0.052804;, + 0.347695; 0.081765;, + 0.318734; 0.081767;, + 0.260817; 0.110731;, + 0.289777; 0.110729;, + 0.289778; 0.139689;, + 0.260819; 0.139691;, + 0.260822; 0.222943;, + 0.289781; 0.222942;, + 0.289781; 0.251901;, + 0.260823; 0.251901;, + 0.318740; 0.222942;, + 0.347700; 0.222942;, + 0.347699; 0.251901;, + 0.318740; 0.251901;, + 0.376658; 0.110724;, + 0.405619; 0.110723;, + 0.405620; 0.139684;, + 0.376659; 0.139685;, + 0.376659; 0.222942;, + 0.405620; 0.222943;, + 0.405618; 0.251903;, + 0.376659; 0.251902;, + 0.434580; 0.222944;, + 0.463541; 0.222946;, + 0.463539; 0.251907;, + 0.434578; 0.251905;, + 0.144979; 0.052827;, + 0.173936; 0.052823;, + 0.173939; 0.081781;, + 0.144982; 0.081784;, + 0.202894; 0.052820;, + 0.231853; 0.052816;, + 0.231856; 0.081775;, + 0.202897; 0.081778;, + 0.144991; 0.280861;, + 0.173949; 0.280860;, + 0.173949; 0.309818;, + 0.144991; 0.309818;, + 0.144991; 0.393067;, + 0.173949; 0.393067;, + 0.173949; 0.422025;, + 0.144991; 0.422025;, + 0.202907; 0.393067;, + 0.231864; 0.393067;, + 0.231864; 0.422025;, + 0.202907; 0.422025;, + 0.376657; 0.280861;, + 0.405617; 0.280863;, + 0.405615; 0.309822;, + 0.376656; 0.309820;, + 0.376652; 0.393070;, + 0.405609; 0.393072;, + 0.405608; 0.422029;, + 0.376651; 0.422027;, + 0.434567; 0.393073;, + 0.463524; 0.393076;, + 0.463521; 0.422033;, + 0.434565; 0.422031;, + 0.376654; 0.052801;, + 0.405616; 0.052799;, + 0.405618; 0.081761;, + 0.376656; 0.081763;, + 0.434578; 0.052797;, + 0.463541; 0.052795;, + 0.463543; 0.081758;, + 0.434580; 0.081759;, + 0.087071; 0.110745;, + 0.116028; 0.110743;, + 0.116029; 0.139700;, + 0.087073; 0.139701;, + 0.202900; 0.110736;, + 0.231858; 0.110734;, + 0.231860; 0.139692;, + 0.202902; 0.139694;, + 0.087076; 0.280861;, + 0.116034; 0.280861;, + 0.116034; 0.309818;, + 0.087076; 0.309818;, + 0.087076; 0.450983;, + 0.116034; 0.450983;, + 0.116034; 0.479941;, + 0.087076; 0.479941;, + 0.202907; 0.450982;, + 0.231864; 0.450982;, + 0.231864; 0.479940;, + 0.202907; 0.479940;, + 0.318740; 0.280860;, + 0.347698; 0.280860;, + 0.347698; 0.309819;, + 0.318739; 0.309818;, + 0.318736; 0.450983;, + 0.347693; 0.450983;, + 0.347692; 0.479940;, + 0.318735; 0.479940;, + 0.434563; 0.450987;, + 0.463519; 0.450989;, + 0.463517; 0.479945;, + 0.434561; 0.479944;, + 0.318737; 0.110727;, + 0.347697; 0.110726;, + 0.347698; 0.139686;, + 0.318738; 0.139687;, + 0.434581; 0.110722;, + 0.463544; 0.110721;, + 0.463545; 0.139683;, + 0.434582; 0.139684;, + 0.202907; 0.280860;, + 0.231865; 0.280860;, + 0.231865; 0.309818;, + 0.202907; 0.309818;, + 0.434576; 0.280865;, + 0.463536; 0.280867;, + 0.463533; 0.309827;, + 0.434574; 0.309824;, + 0.256841; 0.710209;, + 0.256842; 0.739169;, + 0.237438; 0.739169;, + 0.237437; 0.710210;, + 0.411474; 0.883958;, + 0.411472; 0.912914;, + 0.392071; 0.912913;, + 0.392072; 0.883957;, + 0.102228; 0.941881;, + 0.102232; 0.970836;, + 0.082831; 0.970838;, + 0.082827; 0.941883;, + 0.343726; 0.594367;, + 0.343729; 0.565405;, + 0.363135; 0.565407;, + 0.363131; 0.594369;, + 0.343718; 0.739168;, + 0.343719; 0.710209;, + 0.363123; 0.710210;, + 0.363122; 0.739169;, + 0.498346; 0.855009;, + 0.498349; 0.826052;, + 0.517751; 0.826054;, + 0.517748; 0.855011;, + 0.411480; 0.797088;, + 0.411478; 0.826045;, + 0.392076; 0.826044;, + 0.392077; 0.797087;, + 0.343724; 0.623329;, + 0.343726; 0.594367;, + 0.363131; 0.594369;, + 0.363129; 0.623330;, + 0.411483; 0.739172;, + 0.411481; 0.768130;, + 0.392079; 0.768129;, + 0.392080; 0.739171;, + 0.411469; 0.941870;, + 0.411467; 0.970825;, + 0.392066; 0.970823;, + 0.392068; 0.941868;, + 0.189099; 0.999779;, + 0.189096; 0.970825;, + 0.208496; 0.970823;, + 0.208499; 0.999777;, + 0.102204; 0.768143;, + 0.102209; 0.797100;, + 0.082806; 0.797103;, + 0.082802; 0.768146;, + 0.256844; 0.797085;, + 0.256845; 0.826043;, + 0.237443; 0.826044;, + 0.237441; 0.797086;, + 0.521853; 0.432392;, + 0.550811; 0.432394;, + 0.550809; 0.451796;, + 0.521852; 0.451794;, + 0.343715; 0.883955;, + 0.343716; 0.854999;, + 0.363117; 0.854999;, + 0.363116; 0.883956;, + 0.608726; 0.432398;, + 0.637683; 0.432400;, + 0.637682; 0.451803;, + 0.608724; 0.451801;, + 0.189078; 0.768132;, + 0.189076; 0.739173;, + 0.208479; 0.739171;, + 0.208481; 0.768130;, + 0.102213; 0.826057;, + 0.102217; 0.855013;, + 0.082815; 0.855016;, + 0.082811; 0.826060;, + 0.392064; 0.999777;, + 0.363110; 0.999774;, + 0.363112; 0.970821;, + 0.392066; 0.970823;, + 0.392066; 0.970823;, + 0.363112; 0.970821;, + 0.363114; 0.941867;, + 0.392068; 0.941868;, + 0.893806; 0.999806;, + 0.864848; 0.999805;, + 0.864848; 0.980403;, + 0.893806; 0.980403;, + 0.392079; 0.768129;, + 0.363121; 0.768127;, + 0.363122; 0.739169;, + 0.392080; 0.739171;, + 0.392080; 0.739171;, + 0.363122; 0.739169;, + 0.363123; 0.710210;, + 0.392082; 0.710212;, + 0.411507; 0.536454;, + 0.411501; 0.565415;, + 0.392097; 0.565411;, + 0.392102; 0.536450;, + 0.237452; 0.999775;, + 0.208499; 0.999777;, + 0.208496; 0.970823;, + 0.237450; 0.970821;, + 0.237450; 0.970821;, + 0.208496; 0.970823;, + 0.208494; 0.941869;, + 0.237449; 0.941867;, + 0.806932; 0.999805;, + 0.777974; 0.999805;, + 0.777974; 0.980403;, + 0.806932; 0.980403;, + 0.237446; 0.883957;, + 0.208490; 0.883958;, + 0.208488; 0.855002;, + 0.237444; 0.855000;, + 0.237444; 0.855000;, + 0.208488; 0.855002;, + 0.208486; 0.826045;, + 0.237443; 0.826044;, + 0.102162; 0.565421;, + 0.102170; 0.594384;, + 0.082764; 0.594389;, + 0.082755; 0.565427;, + 0.546688; 0.999799;, + 0.517731; 0.999795;, + 0.517735; 0.970838;, + 0.546692; 0.970842;, + 0.546692; 0.970842;, + 0.517735; 0.970838;, + 0.517739; 0.941881;, + 0.546696; 0.941885;, + 0.498337; 0.941879;, + 0.498340; 0.912923;, + 0.517742; 0.912925;, + 0.517739; 0.941881;, + 0.546702; 0.883971;, + 0.517745; 0.883968;, + 0.517748; 0.855011;, + 0.546705; 0.855014;, + 0.546705; 0.855014;, + 0.517748; 0.855011;, + 0.517751; 0.826054;, + 0.546709; 0.826057;, + 0.189056; 0.565403;, + 0.189053; 0.536436;, + 0.208462; 0.536434;, + 0.208464; 0.565401;, + 0.392072; 0.883957;, + 0.363116; 0.883956;, + 0.363117; 0.854999;, + 0.392074; 0.855001;, + 0.392074; 0.855001;, + 0.363117; 0.854999;, + 0.363118; 0.826043;, + 0.392076; 0.826044;, + 0.256842; 0.739169;, + 0.256843; 0.768127;, + 0.237440; 0.768128;, + 0.237438; 0.739169;, + 0.546715; 0.768142;, + 0.517757; 0.768139;, + 0.517760; 0.739182;, + 0.546718; 0.739185;, + 0.546718; 0.739185;, + 0.517760; 0.739182;, + 0.517763; 0.710224;, + 0.546721; 0.710227;, + 0.343716; 0.826042;, + 0.343717; 0.797085;, + 0.363120; 0.797085;, + 0.363118; 0.826043;, + 0.546728; 0.652311;, + 0.517770; 0.652307;, + 0.517774; 0.623349;, + 0.546732; 0.623353;, + 0.546732; 0.623353;, + 0.517774; 0.623349;, + 0.517778; 0.594391;, + 0.546736; 0.594395;, + 0.411497; 0.594375;, + 0.411493; 0.623335;, + 0.392089; 0.623333;, + 0.392093; 0.594372;, + 0.392086; 0.652293;, + 0.363126; 0.652291;, + 0.363129; 0.623330;, + 0.392089; 0.623333;, + 0.392089; 0.623333;, + 0.363129; 0.623330;, + 0.363131; 0.594369;, + 0.392093; 0.594372;, + 0.102232; 0.970836;, + 0.102236; 0.999791;, + 0.082835; 0.999793;, + 0.082831; 0.970838;, + 0.237440; 0.768128;, + 0.208481; 0.768130;, + 0.208479; 0.739171;, + 0.237438; 0.739169;, + 0.237438; 0.739169;, + 0.208479; 0.739171;, + 0.208477; 0.710212;, + 0.237437; 0.710210;, + 0.666637; 0.432400;, + 0.695596; 0.432400;, + 0.695595; 0.451803;, + 0.666637; 0.451803;, + 0.237433; 0.652289;, + 0.208472; 0.652291;, + 0.208469; 0.623329;, + 0.237432; 0.623327;, + 0.237432; 0.623327;, + 0.208469; 0.623329;, + 0.208467; 0.594365;, + 0.237431; 0.594364;, + 0.343712; 0.970820;, + 0.343713; 0.941866;, + 0.363114; 0.941867;, + 0.363112; 0.970821;, + 0.102189; 0.681267;, + 0.102194; 0.710226;, + 0.082791; 0.710230;, + 0.082785; 0.681271;, + 0.662142; 0.999806;, + 0.633183; 0.999806;, + 0.633183; 0.980403;, + 0.662141; 0.980403;, + 0.189073; 0.710214;, + 0.189070; 0.681254;, + 0.208474; 0.681252;, + 0.208477; 0.710212;, + 0.498333; 0.970835;, + 0.498337; 0.941879;, + 0.517739; 0.941881;, + 0.517735; 0.970838;, + 0.411481; 0.768130;, + 0.411480; 0.797088;, + 0.392077; 0.797087;, + 0.392079; 0.768129;, + 0.498371; 0.623347;, + 0.498375; 0.594388;, + 0.517778; 0.594391;, + 0.517774; 0.623349;, + 0.411467; 0.970825;, + 0.411463; 0.999779;, + 0.392064; 0.999777;, + 0.392066; 0.970823;, + 0.343718; 0.768127;, + 0.343718; 0.739168;, + 0.363122; 0.739169;, + 0.363121; 0.768127;, + 0.256843; 0.768127;, + 0.256844; 0.797085;, + 0.237441; 0.797086;, + 0.237440; 0.768128;, + 0.256848; 0.912911;, + 0.256849; 0.941866;, + 0.237449; 0.941867;, + 0.237447; 0.912912;, + 0.343714; 0.912911;, + 0.343715; 0.883955;, + 0.363116; 0.883956;, + 0.363115; 0.912911;, + 0.498343; 0.883966;, + 0.498346; 0.855009;, + 0.517748; 0.855011;, + 0.517745; 0.883968;, + 0.392068; 0.941868;, + 0.363114; 0.941867;, + 0.363115; 0.912911;, + 0.392071; 0.912913;, + 0.392071; 0.912913;, + 0.363115; 0.912911;, + 0.363116; 0.883956;, + 0.392072; 0.883957;, + 0.411478; 0.826045;, + 0.411476; 0.855002;, + 0.392074; 0.855001;, + 0.392076; 0.826044;, + 0.343722; 0.652290;, + 0.343724; 0.623329;, + 0.363129; 0.623330;, + 0.363126; 0.652291;, + 0.189091; 0.912916;, + 0.189088; 0.883960;, + 0.208490; 0.883958;, + 0.208492; 0.912914;, + 0.102217; 0.855013;, + 0.102221; 0.883969;, + 0.082819; 0.883972;, + 0.082815; 0.855016;, + 0.256845; 0.826043;, + 0.256846; 0.854999;, + 0.237444; 0.855000;, + 0.237443; 0.826044;, + 0.951722; 0.999806;, + 0.922764; 0.999806;, + 0.922764; 0.980403;, + 0.951722; 0.980403;, + 0.102153; 0.536456;, + 0.102162; 0.565421;, + 0.082755; 0.565427;, + 0.082745; 0.536463;, + 0.392082; 0.710212;, + 0.363123; 0.710210;, + 0.363124; 0.681251;, + 0.392084; 0.681253;, + 0.392084; 0.681253;, + 0.363124; 0.681251;, + 0.363126; 0.652291;, + 0.392086; 0.652293;, + 0.498379; 0.565430;, + 0.498384; 0.536472;, + 0.517787; 0.536475;, + 0.517782; 0.565433;, + 0.256837; 0.565399;, + 0.256837; 0.594363;, + 0.237431; 0.594364;, + 0.237430; 0.565399;, + 0.724554; 0.432400;, + 0.753512; 0.432400;, + 0.753512; 0.451803;, + 0.724554; 0.451803;, + 0.411493; 0.623335;, + 0.411490; 0.652295;, + 0.392086; 0.652293;, + 0.392089; 0.623333;, + 0.744377; 0.250556;, + 0.744378; 0.193462;, + 0.779683; 0.193462;, + 0.779682; 0.250557;, + 0.102170; 0.594384;, + 0.102177; 0.623346;, + 0.082772; 0.623351;, + 0.082764; 0.594389;, + 0.102183; 0.652307;, + 0.102189; 0.681267;, + 0.082785; 0.681271;, + 0.082779; 0.652311;, + 0.411488; 0.681254;, + 0.411485; 0.710213;, + 0.392082; 0.710212;, + 0.392084; 0.681253;, + 0.189086; 0.855004;, + 0.189083; 0.826047;, + 0.208486; 0.826045;, + 0.208488; 0.855002;, + 0.720058; 0.999806;, + 0.691100; 0.999806;, + 0.691100; 0.980403;, + 0.720058; 0.980403;, + 0.189060; 0.594367;, + 0.189056; 0.565403;, + 0.208464; 0.565401;, + 0.208467; 0.594365;, + 0.498358; 0.739180;, + 0.498361; 0.710222;, + 0.517763; 0.710224;, + 0.517760; 0.739182;, + 0.189063; 0.623331;, + 0.189060; 0.594367;, + 0.208467; 0.594365;, + 0.208469; 0.623329;, + 0.237449; 0.941867;, + 0.208494; 0.941869;, + 0.208492; 0.912914;, + 0.237447; 0.912912;, + 0.237447; 0.912912;, + 0.208492; 0.912914;, + 0.208490; 0.883958;, + 0.237446; 0.883957;, + 0.343711; 0.999774;, + 0.343712; 0.970820;, + 0.363112; 0.970821;, + 0.363110; 0.999774;, + 0.256847; 0.883956;, + 0.256848; 0.912911;, + 0.237447; 0.912912;, + 0.237446; 0.883957;, + 0.102194; 0.710226;, + 0.102200; 0.739185;, + 0.082797; 0.739188;, + 0.082791; 0.710230;, + 0.492896; 0.432390;, + 0.521853; 0.432392;, + 0.521852; 0.451794;, + 0.492895; 0.451792;, + 0.498329; 0.999792;, + 0.498333; 0.970835;, + 0.517735; 0.970838;, + 0.517731; 0.999795;, + 0.411476; 0.855002;, + 0.411474; 0.883958;, + 0.392072; 0.883957;, + 0.392074; 0.855001;, + 0.343720; 0.681250;, + 0.343722; 0.652290;, + 0.363126; 0.652291;, + 0.363124; 0.681251;, + 0.237443; 0.826044;, + 0.208486; 0.826045;, + 0.208483; 0.797088;, + 0.237441; 0.797086;, + 0.237441; 0.797086;, + 0.208483; 0.797088;, + 0.208481; 0.768130;, + 0.237440; 0.768128;, + 0.498367; 0.652305;, + 0.498371; 0.623347;, + 0.517774; 0.623349;, + 0.517770; 0.652307;, + 0.256846; 0.854999;, + 0.256847; 0.883956;, + 0.237446; 0.883957;, + 0.237444; 0.855000;, + 0.189081; 0.797090;, + 0.189078; 0.768132;, + 0.208481; 0.768130;, + 0.208483; 0.797088;, + 0.256849; 0.941866;, + 0.256850; 0.970820;, + 0.237450; 0.970821;, + 0.237449; 0.941867;, + 0.922764; 0.999806;, + 0.893806; 0.999806;, + 0.893806; 0.980403;, + 0.922764; 0.980403;, + 0.343713; 0.941866;, + 0.343714; 0.912911;, + 0.363115; 0.912911;, + 0.363114; 0.941867;, + 0.498352; 0.797095;, + 0.498355; 0.768137;, + 0.517757; 0.768139;, + 0.517754; 0.797097;, + 0.546696; 0.941885;, + 0.517739; 0.941881;, + 0.517742; 0.912925;, + 0.546699; 0.912928;, + 0.546699; 0.912928;, + 0.517742; 0.912925;, + 0.517745; 0.883968;, + 0.546702; 0.883971;, + 0.256838; 0.536433;, + 0.256837; 0.565399;, + 0.237430; 0.565399;, + 0.237429; 0.536433;, + 0.546709; 0.826057;, + 0.517751; 0.826054;, + 0.517754; 0.797097;, + 0.546712; 0.797100;, + 0.546712; 0.797100;, + 0.517754; 0.797097;, + 0.517757; 0.768139;, + 0.546715; 0.768142;, + 0.498364; 0.681263;, + 0.498367; 0.652305;, + 0.517770; 0.652307;, + 0.517767; 0.681266;, + 0.256839; 0.681249;, + 0.256841; 0.710209;, + 0.237437; 0.710210;, + 0.237435; 0.681250;, + 0.189093; 0.941871;, + 0.189091; 0.912916;, + 0.208492; 0.912914;, + 0.208494; 0.941869;, + 0.102224; 0.912925;, + 0.102228; 0.941881;, + 0.082827; 0.941883;, + 0.082823; 0.912928;, + 0.343729; 0.565405;, + 0.343733; 0.536441;, + 0.363139; 0.536445;, + 0.363135; 0.565407;, + 0.782471; 0.432400;, + 0.811429; 0.432400;, + 0.811429; 0.451803;, + 0.782471; 0.451803;, + 0.102177; 0.623346;, + 0.102183; 0.652307;, + 0.082779; 0.652311;, + 0.082772; 0.623351;, + 0.392076; 0.826044;, + 0.363118; 0.826043;, + 0.363120; 0.797085;, + 0.392077; 0.797087;, + 0.392077; 0.797087;, + 0.363120; 0.797085;, + 0.363121; 0.768127;, + 0.392079; 0.768129;, + 0.498375; 0.594388;, + 0.498379; 0.565430;, + 0.517782; 0.565433;, + 0.517778; 0.594391;, + 0.546721; 0.710227;, + 0.517763; 0.710224;, + 0.517767; 0.681266;, + 0.546725; 0.681269;, + 0.546725; 0.681269;, + 0.517767; 0.681266;, + 0.517770; 0.652307;, + 0.546728; 0.652311;, + 0.256837; 0.594363;, + 0.256838; 0.623326;, + 0.237432; 0.623327;, + 0.237431; 0.594364;, + 0.546736; 0.594395;, + 0.517778; 0.594391;, + 0.517782; 0.565433;, + 0.546740; 0.565437;, + 0.546740; 0.565437;, + 0.517782; 0.565433;, + 0.517787; 0.536475;, + 0.546744; 0.536479;, + 0.411490; 0.652295;, + 0.411488; 0.681254;, + 0.392084; 0.681253;, + 0.392086; 0.652293;, + 0.411472; 0.912914;, + 0.411469; 0.941870;, + 0.392068; 0.941868;, + 0.392071; 0.912913;, + 0.189096; 0.970825;, + 0.189093; 0.941871;, + 0.208494; 0.941869;, + 0.208496; 0.970823;, + 0.691100; 0.999806;, + 0.662142; 0.999806;, + 0.662141; 0.980403;, + 0.691100; 0.980403;, + 0.343716; 0.854999;, + 0.343716; 0.826042;, + 0.363118; 0.826043;, + 0.363117; 0.854999;, + 0.777974; 0.999805;, + 0.749016; 0.999805;, + 0.749016; 0.980403;, + 0.777974; 0.980403;, + 0.189076; 0.739173;, + 0.189073; 0.710214;, + 0.208477; 0.710212;, + 0.208479; 0.739171;, + 0.392093; 0.594372;, + 0.363131; 0.594369;, + 0.363135; 0.565407;, + 0.392097; 0.565411;, + 0.392097; 0.565411;, + 0.363135; 0.565407;, + 0.363139; 0.536445;, + 0.392102; 0.536450;, + 0.102200; 0.739185;, + 0.102204; 0.768143;, + 0.082802; 0.768146;, + 0.082797; 0.739188;, + 0.411485; 0.710213;, + 0.411483; 0.739172;, + 0.392080; 0.739171;, + 0.392082; 0.710212;, + 0.189088; 0.883960;, + 0.189086; 0.855004;, + 0.208488; 0.855002;, + 0.208490; 0.883958;, + 0.102209; 0.797100;, + 0.102213; 0.826057;, + 0.082811; 0.826060;, + 0.082806; 0.797103;, + 0.550811; 0.432394;, + 0.579768; 0.432396;, + 0.579767; 0.451798;, + 0.550809; 0.451796;, + 0.498355; 0.768137;, + 0.498358; 0.739180;, + 0.517760; 0.739182;, + 0.517757; 0.768139;, + 0.189067; 0.652293;, + 0.189063; 0.623331;, + 0.208469; 0.623329;, + 0.208472; 0.652291;, + 0.237437; 0.710210;, + 0.208477; 0.710212;, + 0.208474; 0.681252;, + 0.237435; 0.681250;, + 0.237435; 0.681250;, + 0.208474; 0.681252;, + 0.208472; 0.652291;, + 0.237433; 0.652289;, + 0.256850; 0.970820;, + 0.256852; 0.999774;, + 0.237452; 0.999775;, + 0.237450; 0.970821;, + 0.498340; 0.912923;, + 0.498343; 0.883966;, + 0.517745; 0.883968;, + 0.517742; 0.912925;, + 0.343719; 0.710209;, + 0.343720; 0.681250;, + 0.363124; 0.681251;, + 0.363123; 0.710210;, + 0.256839; 0.652288;, + 0.256839; 0.681249;, + 0.237435; 0.681250;, + 0.237433; 0.652289;, + 0.343717; 0.797085;, + 0.343718; 0.768127;, + 0.363121; 0.768127;, + 0.363120; 0.797085;, + 0.411501; 0.565415;, + 0.411497; 0.594375;, + 0.392093; 0.594372;, + 0.392097; 0.565411;, + 0.102221; 0.883969;, + 0.102224; 0.912925;, + 0.082823; 0.912928;, + 0.082819; 0.883972;, + 0.237431; 0.594364;, + 0.208467; 0.594365;, + 0.208464; 0.565401;, + 0.237430; 0.565399;, + 0.237430; 0.565399;, + 0.208464; 0.565401;, + 0.208462; 0.536434;, + 0.237429; 0.536433;, + 0.835890; 0.999805;, + 0.806932; 0.999805;, + 0.806932; 0.980403;, + 0.835890; 0.980403;, + 0.189083; 0.826047;, + 0.189081; 0.797090;, + 0.208483; 0.797088;, + 0.208486; 0.826045;, + 0.753512; 0.432400;, + 0.782471; 0.432400;, + 0.782471; 0.451803;, + 0.753512; 0.451803;, + 0.189070; 0.681254;, + 0.189067; 0.652293;, + 0.208472; 0.652291;, + 0.208474; 0.681252;, + 0.498349; 0.826052;, + 0.498352; 0.797095;, + 0.517754; 0.797097;, + 0.517751; 0.826054;, + 0.256838; 0.623326;, + 0.256839; 0.652288;, + 0.237433; 0.652289;, + 0.237432; 0.623327;, + 0.498361; 0.710222;, + 0.498364; 0.681263;, + 0.517767; 0.681266;, + 0.517763; 0.710224;, + 0.782471; 0.451803;, + 0.811429; 0.451803;, + 0.811430; 0.508898;, + 0.782471; 0.508898;, + 0.569546; 0.317575;, + 0.538217; 0.317574;, + 0.538218; 0.250552;, + 0.569547; 0.250553;, + 0.546702; 0.883971;, + 0.546705; 0.855014;, + 0.603797; 0.855021;, + 0.603794; 0.883978;, + 0.000194; 0.000253;, + 0.029149; 0.000250;, + 0.029152; 0.025694;, + 0.000197; 0.025697;, + 0.546721; 0.710227;, + 0.546725; 0.681269;, + 0.603818; 0.681276;, + 0.603814; 0.710234;, + 0.057374; 0.883976;, + 0.057370; 0.855020;, + 0.082815; 0.855016;, + 0.082819; 0.883972;, + 0.691100; 0.980403;, + 0.662141; 0.980403;, + 0.662141; 0.923309;, + 0.691099; 0.923309;, + 0.546728; 0.652311;, + 0.546732; 0.623353;, + 0.603825; 0.623360;, + 0.603822; 0.652318;, + 0.057331; 0.652317;, + 0.057323; 0.623357;, + 0.082772; 0.623351;, + 0.082779; 0.652311;, + 0.666637; 0.451803;, + 0.695595; 0.451803;, + 0.695594; 0.508898;, + 0.666636; 0.508897;, + 0.546688; 0.999799;, + 0.546692; 0.970842;, + 0.603783; 0.970849;, + 0.603779; 0.999806;, + 0.546705; 0.855014;, + 0.546709; 0.826057;, + 0.603801; 0.826064;, + 0.603797; 0.855021;, + 0.662141; 0.980403;, + 0.633183; 0.980403;, + 0.633183; 0.923309;, + 0.662141; 0.923309;, + 0.057338; 0.681276;, + 0.057331; 0.652317;, + 0.082779; 0.652311;, + 0.082785; 0.681271;, + 0.720058; 0.980403;, + 0.691100; 0.980403;, + 0.691099; 0.923309;, + 0.720058; 0.923309;, + 0.289765; 0.000213;, + 0.318726; 0.000208;, + 0.318729; 0.025658;, + 0.289768; 0.025662;, + 0.546715; 0.768142;, + 0.546718; 0.739185;, + 0.603811; 0.739191;, + 0.603808; 0.768149;, + 0.546732; 0.623353;, + 0.546736; 0.594395;, + 0.603829; 0.594403;, + 0.603825; 0.623360;, + 0.893806; 0.980403;, + 0.864848; 0.980403;, + 0.864848; 0.923309;, + 0.893806; 0.923309;, + 0.057365; 0.826064;, + 0.057361; 0.797107;, + 0.082806; 0.797103;, + 0.082811; 0.826060;, + 0.546692; 0.970842;, + 0.546696; 0.941885;, + 0.603787; 0.941892;, + 0.603783; 0.970849;, + 0.777974; 0.980403;, + 0.749016; 0.980403;, + 0.749016; 0.923309;, + 0.777974; 0.923309;, + 0.633183; 0.980403;, + 0.604225; 0.980403;, + 0.604225; 0.923309;, + 0.633183; 0.923309;, + 0.058105; 0.000247;, + 0.087060; 0.000244;, + 0.087063; 0.025689;, + 0.058107; 0.025692;, + 0.922764; 0.980403;, + 0.893806; 0.980403;, + 0.893806; 0.923309;, + 0.922764; 0.923309;, + 0.434575; 0.000196;, + 0.463537; 0.000194;, + 0.463539; 0.025645;, + 0.434577; 0.025647;, + 0.546718; 0.739185;, + 0.546721; 0.710227;, + 0.603814; 0.710234;, + 0.603811; 0.739191;, + 0.521852; 0.451794;, + 0.550809; 0.451796;, + 0.550805; 0.508889;, + 0.521847; 0.508886;, + 0.864848; 0.980403;, + 0.835890; 0.980403;, + 0.835890; 0.923309;, + 0.864848; 0.923309;, + 0.057387; 0.970842;, + 0.057383; 0.941887;, + 0.082827; 0.941883;, + 0.082831; 0.970838;, + 0.144972; 0.000236;, + 0.173929; 0.000232;, + 0.173933; 0.025678;, + 0.144976; 0.025682;, + 0.749016; 0.980403;, + 0.720058; 0.980403;, + 0.720058; 0.923309;, + 0.749016; 0.923309;, + 0.492895; 0.451792;, + 0.521852; 0.451794;, + 0.521847; 0.508886;, + 0.492890; 0.508884;, + 0.951722; 0.980403;, + 0.922764; 0.980403;, + 0.922764; 0.923309;, + 0.951722; 0.923309;, + 0.806932; 0.980403;, + 0.777974; 0.980403;, + 0.777974; 0.923309;, + 0.806932; 0.923309;, + 0.546712; 0.797100;, + 0.546715; 0.768142;, + 0.603808; 0.768149;, + 0.603804; 0.797106;, + 0.057314; 0.594397;, + 0.057305; 0.565436;, + 0.082755; 0.565427;, + 0.082764; 0.594389;, + 0.550809; 0.451796;, + 0.579767; 0.451798;, + 0.579762; 0.508891;, + 0.550805; 0.508889;, + 0.202887; 0.000227;, + 0.231845; 0.000222;, + 0.231849; 0.025670;, + 0.202891; 0.025674;, + 0.724554; 0.451803;, + 0.753512; 0.451803;, + 0.753512; 0.508898;, + 0.724553; 0.508898;, + 0.546740; 0.565437;, + 0.546744; 0.536479;, + 0.603837; 0.536487;, + 0.603833; 0.565445;, + 0.608724; 0.451801;, + 0.637682; 0.451803;, + 0.637678; 0.508895;, + 0.608720; 0.508893;, + 0.463938; 0.451790;, + 0.492895; 0.451792;, + 0.492890; 0.508884;, + 0.463933; 0.508882;, + 0.835890; 0.980403;, + 0.806932; 0.980403;, + 0.806932; 0.923309;, + 0.835890; 0.923309;, + 0.546699; 0.912928;, + 0.546702; 0.883971;, + 0.603794; 0.883978;, + 0.603790; 0.912935;, + 0.546709; 0.826057;, + 0.546712; 0.797100;, + 0.603804; 0.797106;, + 0.603801; 0.826064;, + 0.057361; 0.797107;, + 0.057355; 0.768150;, + 0.082802; 0.768146;, + 0.082806; 0.797103;, + 0.753512; 0.451803;, + 0.782471; 0.451803;, + 0.782471; 0.508898;, + 0.753512; 0.508898;, + 0.695595; 0.451803;, + 0.724554; 0.451803;, + 0.724553; 0.508898;, + 0.695594; 0.508898;, + 0.057391; 0.999797;, + 0.057387; 0.970842;, + 0.082831; 0.970838;, + 0.082835; 0.999793;, + 0.546725; 0.681269;, + 0.546728; 0.652311;, + 0.603822; 0.652318;, + 0.603818; 0.681276;, + 0.546736; 0.594395;, + 0.546740; 0.565437;, + 0.603833; 0.565445;, + 0.603829; 0.594403;, + 0.057305; 0.565436;, + 0.057294; 0.536474;, + 0.082745; 0.536463;, + 0.082755; 0.565427;, + 0.579767; 0.451798;, + 0.608724; 0.451801;, + 0.608720; 0.508893;, + 0.579762; 0.508891;, + 0.318726; 0.000208;, + 0.347687; 0.000205;, + 0.347690; 0.025655;, + 0.318729; 0.025658;, + 0.546696; 0.941885;, + 0.546699; 0.912928;, + 0.603790; 0.912935;, + 0.603787; 0.941892;, + 0.343711; 0.999774;, + 0.314758; 0.999773;, + 0.314758; 0.970819;, + 0.343712; 0.970820;, + 0.343718; 0.768127;, + 0.314759; 0.768126;, + 0.314760; 0.739168;, + 0.343718; 0.739168;, + 0.189099; 0.999779;, + 0.160145; 0.999783;, + 0.160142; 0.970828;, + 0.189096; 0.970825;, + 0.189088; 0.883960;, + 0.160132; 0.883963;, + 0.160129; 0.855006;, + 0.189086; 0.855004;, + 0.498329; 0.999792;, + 0.469373; 0.999787;, + 0.469377; 0.970832;, + 0.498333; 0.970835;, + 0.498343; 0.883966;, + 0.469387; 0.883963;, + 0.469389; 0.855006;, + 0.498346; 0.855009;, + 0.343715; 0.883955;, + 0.314759; 0.883955;, + 0.314759; 0.854998;, + 0.343716; 0.854999;, + 0.498355; 0.768137;, + 0.469397; 0.768135;, + 0.469400; 0.739177;, + 0.498358; 0.739180;, + 0.498367; 0.652305;, + 0.469409; 0.652301;, + 0.469412; 0.623343;, + 0.498371; 0.623347;, + 0.343722; 0.652290;, + 0.314761; 0.652288;, + 0.314762; 0.623327;, + 0.343724; 0.623329;, + 0.189078; 0.768132;, + 0.160120; 0.768135;, + 0.160117; 0.739176;, + 0.189076; 0.739173;, + 0.189067; 0.652293;, + 0.160105; 0.652296;, + 0.160101; 0.623334;, + 0.189063; 0.623331;, + 0.131191; 0.999786;, + 0.102236; 0.999791;, + 0.102232; 0.970836;, + 0.131187; 0.970832;, + 0.131183; 0.941877;, + 0.102228; 0.941881;, + 0.102224; 0.912925;, + 0.131180; 0.912922;, + 0.440418; 0.999783;, + 0.411463; 0.999779;, + 0.411467; 0.970825;, + 0.440421; 0.970828;, + 0.440425; 0.941873;, + 0.411469; 0.941870;, + 0.411472; 0.912914;, + 0.440428; 0.912917;, + 0.343713; 0.941866;, + 0.314758; 0.941865;, + 0.314759; 0.912910;, + 0.343714; 0.912911;, + 0.440439; 0.768132;, + 0.411481; 0.768130;, + 0.411483; 0.739172;, + 0.440442; 0.739174;, + 0.440444; 0.710216;, + 0.411485; 0.710213;, + 0.411488; 0.681254;, + 0.440447; 0.681257;, + 0.343719; 0.710209;, + 0.314760; 0.710209;, + 0.314760; 0.681249;, + 0.343720; 0.681250;, + 0.131162; 0.768138;, + 0.102204; 0.768143;, + 0.102200; 0.739185;, + 0.131158; 0.739180;, + 0.131154; 0.710221;, + 0.102194; 0.710226;, + 0.102189; 0.681267;, + 0.131149; 0.681261;, + 0.285805; 0.999773;, + 0.256852; 0.999774;, + 0.256850; 0.970820;, + 0.285804; 0.970820;, + 0.285804; 0.941865;, + 0.256849; 0.941866;, + 0.256848; 0.912911;, + 0.285803; 0.912910;, + 0.189093; 0.941871;, + 0.160138; 0.941874;, + 0.160135; 0.912918;, + 0.189091; 0.912916;, + 0.285803; 0.883955;, + 0.256847; 0.883956;, + 0.256846; 0.854999;, + 0.285802; 0.854999;, + 0.285802; 0.826042;, + 0.256845; 0.826043;, + 0.256844; 0.797085;, + 0.285802; 0.797085;, + 0.189083; 0.826047;, + 0.160126; 0.826050;, + 0.160123; 0.797093;, + 0.189081; 0.797090;, + 0.131176; 0.883966;, + 0.102221; 0.883969;, + 0.102217; 0.855013;, + 0.131173; 0.855010;, + 0.131170; 0.826053;, + 0.102213; 0.826057;, + 0.102209; 0.797100;, + 0.131166; 0.797096;, + 0.498337; 0.941879;, + 0.469381; 0.941876;, + 0.469384; 0.912920;, + 0.498340; 0.912923;, + 0.498349; 0.826052;, + 0.469392; 0.826049;, + 0.469394; 0.797092;, + 0.498352; 0.797095;, + 0.440430; 0.883961;, + 0.411474; 0.883958;, + 0.411476; 0.855002;, + 0.440433; 0.855004;, + 0.440435; 0.826047;, + 0.411478; 0.826045;, + 0.411480; 0.797088;, + 0.440437; 0.797090;, + 0.343716; 0.826042;, + 0.314759; 0.826042;, + 0.314759; 0.797084;, + 0.343717; 0.797085;, + 0.498361; 0.710222;, + 0.469402; 0.710219;, + 0.469405; 0.681260;, + 0.498364; 0.681263;, + 0.498375; 0.594388;, + 0.469416; 0.594384;, + 0.469421; 0.565425;, + 0.498379; 0.565430;, + 0.440450; 0.652298;, + 0.411490; 0.652295;, + 0.411493; 0.623335;, + 0.440453; 0.623339;, + 0.440457; 0.594380;, + 0.411497; 0.594375;, + 0.411501; 0.565415;, + 0.440461; 0.565420;, + 0.343726; 0.594367;, + 0.314764; 0.594365;, + 0.314766; 0.565402;, + 0.343729; 0.565405;, + 0.285801; 0.768127;, + 0.256843; 0.768127;, + 0.256842; 0.739169;, + 0.285801; 0.739168;, + 0.285800; 0.710209;, + 0.256841; 0.710209;, + 0.256839; 0.681249;, + 0.285800; 0.681249;, + 0.189073; 0.710214;, + 0.160113; 0.710217;, + 0.160109; 0.681257;, + 0.189070; 0.681254;, + 0.285800; 0.652288;, + 0.256839; 0.652288;, + 0.256838; 0.623326;, + 0.285800; 0.623326;, + 0.285801; 0.594363;, + 0.256837; 0.594363;, + 0.256837; 0.565399;, + 0.285802; 0.565400;, + 0.189060; 0.594367;, + 0.160096; 0.594371;, + 0.160091; 0.565407;, + 0.189056; 0.565403;, + 0.131144; 0.652301;, + 0.102183; 0.652307;, + 0.102177; 0.623346;, + 0.131138; 0.623340;, + 0.131132; 0.594377;, + 0.102170; 0.594384;, + 0.102162; 0.565421;, + 0.131126; 0.565413;, + 0.343712; 0.970820;, + 0.314758; 0.970819;, + 0.314758; 0.941865;, + 0.343713; 0.941866;, + 0.343718; 0.739168;, + 0.314760; 0.739168;, + 0.314760; 0.710209;, + 0.343719; 0.710209;, + 0.189096; 0.970825;, + 0.160142; 0.970828;, + 0.160138; 0.941874;, + 0.189093; 0.941871;, + 0.189086; 0.855004;, + 0.160129; 0.855006;, + 0.160126; 0.826050;, + 0.189083; 0.826047;, + 0.498333; 0.970835;, + 0.469377; 0.970832;, + 0.469381; 0.941876;, + 0.498337; 0.941879;, + 0.498346; 0.855009;, + 0.469389; 0.855006;, + 0.469392; 0.826049;, + 0.498349; 0.826052;, + 0.343716; 0.854999;, + 0.314759; 0.854998;, + 0.314759; 0.826042;, + 0.343716; 0.826042;, + 0.498358; 0.739180;, + 0.469400; 0.739177;, + 0.469402; 0.710219;, + 0.498361; 0.710222;, + 0.498371; 0.623347;, + 0.469412; 0.623343;, + 0.469416; 0.594384;, + 0.498375; 0.594388;, + 0.343724; 0.623329;, + 0.314762; 0.623327;, + 0.314764; 0.594365;, + 0.343726; 0.594367;, + 0.189076; 0.739173;, + 0.160117; 0.739176;, + 0.160113; 0.710217;, + 0.189073; 0.710214;, + 0.189063; 0.623331;, + 0.160101; 0.623334;, + 0.160096; 0.594371;, + 0.189060; 0.594367;, + 0.160145; 0.999783;, + 0.131191; 0.999786;, + 0.131187; 0.970832;, + 0.160142; 0.970828;, + 0.160142; 0.970828;, + 0.131187; 0.970832;, + 0.131183; 0.941877;, + 0.160138; 0.941874;, + 0.131187; 0.970832;, + 0.102232; 0.970836;, + 0.102228; 0.941881;, + 0.131183; 0.941877;, + 0.160138; 0.941874;, + 0.131183; 0.941877;, + 0.131180; 0.912922;, + 0.160135; 0.912918;, + 0.160135; 0.912918;, + 0.131180; 0.912922;, + 0.131176; 0.883966;, + 0.160132; 0.883963;, + 0.131180; 0.912922;, + 0.102224; 0.912925;, + 0.102221; 0.883969;, + 0.131176; 0.883966;, + 0.469373; 0.999787;, + 0.440418; 0.999783;, + 0.440421; 0.970828;, + 0.469377; 0.970832;, + 0.469377; 0.970832;, + 0.440421; 0.970828;, + 0.440425; 0.941873;, + 0.469381; 0.941876;, + 0.440421; 0.970828;, + 0.411467; 0.970825;, + 0.411469; 0.941870;, + 0.440425; 0.941873;, + 0.469381; 0.941876;, + 0.440425; 0.941873;, + 0.440428; 0.912917;, + 0.469384; 0.912920;, + 0.469384; 0.912920;, + 0.440428; 0.912917;, + 0.440430; 0.883961;, + 0.469387; 0.883963;, + 0.440428; 0.912917;, + 0.411472; 0.912914;, + 0.411474; 0.883958;, + 0.440430; 0.883961;, + 0.343714; 0.912911;, + 0.314759; 0.912910;, + 0.314759; 0.883955;, + 0.343715; 0.883955;, + 0.469397; 0.768135;, + 0.440439; 0.768132;, + 0.440442; 0.739174;, + 0.469400; 0.739177;, + 0.469400; 0.739177;, + 0.440442; 0.739174;, + 0.440444; 0.710216;, + 0.469402; 0.710219;, + 0.440442; 0.739174;, + 0.411483; 0.739172;, + 0.411485; 0.710213;, + 0.440444; 0.710216;, + 0.469402; 0.710219;, + 0.440444; 0.710216;, + 0.440447; 0.681257;, + 0.469405; 0.681260;, + 0.469405; 0.681260;, + 0.440447; 0.681257;, + 0.440450; 0.652298;, + 0.469409; 0.652301;, + 0.440447; 0.681257;, + 0.411488; 0.681254;, + 0.411490; 0.652295;, + 0.440450; 0.652298;, + 0.343720; 0.681250;, + 0.314760; 0.681249;, + 0.314761; 0.652288;, + 0.343722; 0.652290;, + 0.160120; 0.768135;, + 0.131162; 0.768138;, + 0.131158; 0.739180;, + 0.160117; 0.739176;, + 0.160117; 0.739176;, + 0.131158; 0.739180;, + 0.131154; 0.710221;, + 0.160113; 0.710217;, + 0.131158; 0.739180;, + 0.102200; 0.739185;, + 0.102194; 0.710226;, + 0.131154; 0.710221;, + 0.160113; 0.710217;, + 0.131154; 0.710221;, + 0.131149; 0.681261;, + 0.160109; 0.681257;, + 0.160109; 0.681257;, + 0.131149; 0.681261;, + 0.131144; 0.652301;, + 0.160105; 0.652296;, + 0.131149; 0.681261;, + 0.102189; 0.681267;, + 0.102183; 0.652307;, + 0.131144; 0.652301;, + 0.314758; 0.999773;, + 0.285805; 0.999773;, + 0.285804; 0.970820;, + 0.314758; 0.970819;, + 0.314758; 0.970819;, + 0.285804; 0.970820;, + 0.285804; 0.941865;, + 0.314758; 0.941865;, + 0.285804; 0.970820;, + 0.256850; 0.970820;, + 0.256849; 0.941866;, + 0.285804; 0.941865;, + 0.314758; 0.941865;, + 0.285804; 0.941865;, + 0.285803; 0.912910;, + 0.314759; 0.912910;, + 0.314759; 0.912910;, + 0.285803; 0.912910;, + 0.285803; 0.883955;, + 0.314759; 0.883955;, + 0.285803; 0.912910;, + 0.256848; 0.912911;, + 0.256847; 0.883956;, + 0.285803; 0.883955;, + 0.189091; 0.912916;, + 0.160135; 0.912918;, + 0.160132; 0.883963;, + 0.189088; 0.883960;, + 0.314759; 0.883955;, + 0.285803; 0.883955;, + 0.285802; 0.854999;, + 0.314759; 0.854998;, + 0.314759; 0.854998;, + 0.285802; 0.854999;, + 0.285802; 0.826042;, + 0.314759; 0.826042;, + 0.285802; 0.854999;, + 0.256846; 0.854999;, + 0.256845; 0.826043;, + 0.285802; 0.826042;, + 0.314759; 0.826042;, + 0.285802; 0.826042;, + 0.285802; 0.797085;, + 0.314759; 0.797084;, + 0.314759; 0.797084;, + 0.285802; 0.797085;, + 0.285801; 0.768127;, + 0.314759; 0.768126;, + 0.285802; 0.797085;, + 0.256844; 0.797085;, + 0.256843; 0.768127;, + 0.285801; 0.768127;, + 0.189081; 0.797090;, + 0.160123; 0.797093;, + 0.160120; 0.768135;, + 0.189078; 0.768132;, + 0.160132; 0.883963;, + 0.131176; 0.883966;, + 0.131173; 0.855010;, + 0.160129; 0.855006;, + 0.160129; 0.855006;, + 0.131173; 0.855010;, + 0.131170; 0.826053;, + 0.160126; 0.826050;, + 0.131173; 0.855010;, + 0.102217; 0.855013;, + 0.102213; 0.826057;, + 0.131170; 0.826053;, + 0.160126; 0.826050;, + 0.131170; 0.826053;, + 0.131166; 0.797096;, + 0.160123; 0.797093;, + 0.160123; 0.797093;, + 0.131166; 0.797096;, + 0.131162; 0.768138;, + 0.160120; 0.768135;, + 0.131166; 0.797096;, + 0.102209; 0.797100;, + 0.102204; 0.768143;, + 0.131162; 0.768138;, + 0.498340; 0.912923;, + 0.469384; 0.912920;, + 0.469387; 0.883963;, + 0.498343; 0.883966;, + 0.498352; 0.797095;, + 0.469394; 0.797092;, + 0.469397; 0.768135;, + 0.498355; 0.768137;, + 0.469387; 0.883963;, + 0.440430; 0.883961;, + 0.440433; 0.855004;, + 0.469389; 0.855006;, + 0.469389; 0.855006;, + 0.440433; 0.855004;, + 0.440435; 0.826047;, + 0.469392; 0.826049;, + 0.440433; 0.855004;, + 0.411476; 0.855002;, + 0.411478; 0.826045;, + 0.440435; 0.826047;, + 0.469392; 0.826049;, + 0.440435; 0.826047;, + 0.440437; 0.797090;, + 0.469394; 0.797092;, + 0.469394; 0.797092;, + 0.440437; 0.797090;, + 0.440439; 0.768132;, + 0.469397; 0.768135;, + 0.440437; 0.797090;, + 0.411480; 0.797088;, + 0.411481; 0.768130;, + 0.440439; 0.768132;, + 0.343717; 0.797085;, + 0.314759; 0.797084;, + 0.314759; 0.768126;, + 0.343718; 0.768127;, + 0.498364; 0.681263;, + 0.469405; 0.681260;, + 0.469409; 0.652301;, + 0.498367; 0.652305;, + 0.498379; 0.565430;, + 0.469421; 0.565425;, + 0.469426; 0.536466;, + 0.498384; 0.536472;, + 0.469409; 0.652301;, + 0.440450; 0.652298;, + 0.440453; 0.623339;, + 0.469412; 0.623343;, + 0.469412; 0.623343;, + 0.440453; 0.623339;, + 0.440457; 0.594380;, + 0.469416; 0.594384;, + 0.440453; 0.623339;, + 0.411493; 0.623335;, + 0.411497; 0.594375;, + 0.440457; 0.594380;, + 0.469416; 0.594384;, + 0.440457; 0.594380;, + 0.440461; 0.565420;, + 0.469421; 0.565425;, + 0.469421; 0.565425;, + 0.440461; 0.565420;, + 0.440467; 0.536460;, + 0.469426; 0.536466;, + 0.440461; 0.565420;, + 0.411501; 0.565415;, + 0.411507; 0.536454;, + 0.440467; 0.536460;, + 0.343729; 0.565405;, + 0.314766; 0.565402;, + 0.314769; 0.536438;, + 0.343733; 0.536441;, + 0.314759; 0.768126;, + 0.285801; 0.768127;, + 0.285801; 0.739168;, + 0.314760; 0.739168;, + 0.314760; 0.739168;, + 0.285801; 0.739168;, + 0.285800; 0.710209;, + 0.314760; 0.710209;, + 0.285801; 0.739168;, + 0.256842; 0.739169;, + 0.256841; 0.710209;, + 0.285800; 0.710209;, + 0.314760; 0.710209;, + 0.285800; 0.710209;, + 0.285800; 0.681249;, + 0.314760; 0.681249;, + 0.314760; 0.681249;, + 0.285800; 0.681249;, + 0.285800; 0.652288;, + 0.314761; 0.652288;, + 0.285800; 0.681249;, + 0.256839; 0.681249;, + 0.256839; 0.652288;, + 0.285800; 0.652288;, + 0.189070; 0.681254;, + 0.160109; 0.681257;, + 0.160105; 0.652296;, + 0.189067; 0.652293;, + 0.314761; 0.652288;, + 0.285800; 0.652288;, + 0.285800; 0.623326;, + 0.314762; 0.623327;, + 0.314762; 0.623327;, + 0.285800; 0.623326;, + 0.285801; 0.594363;, + 0.314764; 0.594365;, + 0.285800; 0.623326;, + 0.256838; 0.623326;, + 0.256837; 0.594363;, + 0.285801; 0.594363;, + 0.314764; 0.594365;, + 0.285801; 0.594363;, + 0.285802; 0.565400;, + 0.314766; 0.565402;, + 0.314766; 0.565402;, + 0.285802; 0.565400;, + 0.285804; 0.536435;, + 0.314769; 0.536438;, + 0.285802; 0.565400;, + 0.256837; 0.565399;, + 0.256838; 0.536433;, + 0.285804; 0.536435;, + 0.189056; 0.565403;, + 0.160091; 0.565407;, + 0.160085; 0.536441;, + 0.189053; 0.536436;, + 0.160105; 0.652296;, + 0.131144; 0.652301;, + 0.131138; 0.623340;, + 0.160101; 0.623334;, + 0.160101; 0.623334;, + 0.131138; 0.623340;, + 0.131132; 0.594377;, + 0.160096; 0.594371;, + 0.131138; 0.623340;, + 0.102177; 0.623346;, + 0.102170; 0.594384;, + 0.131132; 0.594377;, + 0.160096; 0.594371;, + 0.131132; 0.594377;, + 0.131126; 0.565413;, + 0.160091; 0.565407;, + 0.160091; 0.565407;, + 0.131126; 0.565413;, + 0.131119; 0.536448;, + 0.160085; 0.536441;, + 0.131126; 0.565413;, + 0.102162; 0.565421;, + 0.102153; 0.536456;, + 0.131119; 0.536448;, + 0.376650; 0.450984;, + 0.405606; 0.450986;, + 0.405605; 0.479942;, + 0.376649; 0.479941;, + 0.260822; 0.450982;, + 0.289779; 0.450982;, + 0.289779; 0.479939;, + 0.260822; 0.479939;, + 0.318737; 0.393068;, + 0.347695; 0.393069;, + 0.347694; 0.422026;, + 0.318736; 0.422026;, + 0.260822; 0.393067;, + 0.289780; 0.393068;, + 0.289779; 0.422025;, + 0.260822; 0.422025;, + 0.260823; 0.280860;, + 0.289781; 0.280860;, + 0.289781; 0.309818;, + 0.260823; 0.309818;, + 0.144991; 0.450983;, + 0.173949; 0.450983;, + 0.173949; 0.479940;, + 0.144992; 0.479940;, + 0.029160; 0.450983;, + 0.058118; 0.450983;, + 0.058118; 0.479941;, + 0.029160; 0.479941;, + 0.087076; 0.393067;, + 0.116033; 0.393067;, + 0.116033; 0.422025;, + 0.087076; 0.422025;, + 0.029160; 0.393067;, + 0.058118; 0.393067;, + 0.058118; 0.422025;, + 0.029160; 0.422025;, + 0.029162; 0.280861;, + 0.058119; 0.280861;, + 0.058119; 0.309818;, + 0.029162; 0.309818;, + 0.202906; 0.222944;, + 0.231864; 0.222943;, + 0.231864; 0.251902;, + 0.202906; 0.251902;, + 0.144990; 0.222946;, + 0.173948; 0.222945;, + 0.173948; 0.251903;, + 0.144991; 0.251903;, + 0.144984; 0.110741;, + 0.173942; 0.110738;, + 0.173944; 0.139696;, + 0.144987; 0.139698;, + 0.087076; 0.222947;, + 0.116033; 0.222947;, + 0.116033; 0.251904;, + 0.087076; 0.251904;, + 0.029163; 0.222948;, + 0.058119; 0.222948;, + 0.058119; 0.251904;, + 0.029163; 0.251904;, + 0.029159; 0.110749;, + 0.058115; 0.110747;, + 0.058116; 0.139703;, + 0.029161; 0.139705;, + 0.087066; 0.052833;, + 0.116022; 0.052830;, + 0.116025; 0.081786;, + 0.087069; 0.081789;, + 0.029155; 0.052838;, + 0.058110; 0.052835;, + 0.058113; 0.081791;, + 0.029157; 0.081794;, + 0.405617; 0.280863;, + 0.434576; 0.280865;, + 0.434574; 0.309824;, + 0.405615; 0.309822;, + 0.173949; 0.280860;, + 0.202907; 0.280860;, + 0.202907; 0.309818;, + 0.173949; 0.309818;, + 0.405619; 0.110723;, + 0.434581; 0.110722;, + 0.434582; 0.139684;, + 0.405620; 0.139684;, + 0.289777; 0.110729;, + 0.318737; 0.110727;, + 0.318738; 0.139687;, + 0.289778; 0.139689;, + 0.405606; 0.450986;, + 0.434563; 0.450987;, + 0.434561; 0.479944;, + 0.405605; 0.479942;, + 0.289779; 0.450982;, + 0.318736; 0.450983;, + 0.318735; 0.479940;, + 0.289779; 0.479939;, + 0.289781; 0.280860;, + 0.318740; 0.280860;, + 0.318739; 0.309818;, + 0.289781; 0.309818;, + 0.173949; 0.450983;, + 0.202907; 0.450982;, + 0.202907; 0.479940;, + 0.173949; 0.479940;, + 0.058118; 0.450983;, + 0.087076; 0.450983;, + 0.087076; 0.479941;, + 0.058118; 0.479941;, + 0.058119; 0.280861;, + 0.087076; 0.280861;, + 0.087076; 0.309818;, + 0.058119; 0.309818;, + 0.173942; 0.110738;, + 0.202900; 0.110736;, + 0.202902; 0.139694;, + 0.173944; 0.139696;, + 0.058115; 0.110747;, + 0.087071; 0.110745;, + 0.087073; 0.139701;, + 0.058116; 0.139703;, + 0.434580; 0.081759;, + 0.463543; 0.081758;, + 0.463544; 0.110721;, + 0.434581; 0.110722;, + 0.405618; 0.081761;, + 0.434580; 0.081759;, + 0.434581; 0.110722;, + 0.405619; 0.110723;, + 0.405616; 0.052799;, + 0.434578; 0.052797;, + 0.434580; 0.081759;, + 0.405618; 0.081761;, + 0.376656; 0.081763;, + 0.405618; 0.081761;, + 0.405619; 0.110723;, + 0.376658; 0.110724;, + 0.347695; 0.081765;, + 0.376656; 0.081763;, + 0.376658; 0.110724;, + 0.347697; 0.110726;, + 0.347693; 0.052804;, + 0.376654; 0.052801;, + 0.376656; 0.081763;, + 0.347695; 0.081765;, + 0.434565; 0.422031;, + 0.463521; 0.422033;, + 0.463519; 0.450989;, + 0.434563; 0.450987;, + 0.405608; 0.422029;, + 0.434565; 0.422031;, + 0.434563; 0.450987;, + 0.405606; 0.450986;, + 0.405609; 0.393072;, + 0.434567; 0.393073;, + 0.434565; 0.422031;, + 0.405608; 0.422029;, + 0.376651; 0.422027;, + 0.405608; 0.422029;, + 0.405606; 0.450986;, + 0.376650; 0.450984;, + 0.347694; 0.422026;, + 0.376651; 0.422027;, + 0.376650; 0.450984;, + 0.347693; 0.450983;, + 0.347695; 0.393069;, + 0.376652; 0.393070;, + 0.376651; 0.422027;, + 0.347694; 0.422026;, + 0.347698; 0.280860;, + 0.376657; 0.280861;, + 0.376656; 0.309820;, + 0.347698; 0.309819;, + 0.202907; 0.422025;, + 0.231864; 0.422025;, + 0.231864; 0.450982;, + 0.202907; 0.450982;, + 0.173949; 0.422025;, + 0.202907; 0.422025;, + 0.202907; 0.450982;, + 0.173949; 0.450983;, + 0.173949; 0.393067;, + 0.202907; 0.393067;, + 0.202907; 0.422025;, + 0.173949; 0.422025;, + 0.144991; 0.422025;, + 0.173949; 0.422025;, + 0.173949; 0.450983;, + 0.144991; 0.450983;, + 0.116033; 0.422025;, + 0.144991; 0.422025;, + 0.144991; 0.450983;, + 0.116034; 0.450983;, + 0.116033; 0.393067;, + 0.144991; 0.393067;, + 0.144991; 0.422025;, + 0.116033; 0.422025;, + 0.116034; 0.280861;, + 0.144991; 0.280861;, + 0.144991; 0.309818;, + 0.116034; 0.309818;, + 0.202897; 0.081778;, + 0.231856; 0.081775;, + 0.231858; 0.110734;, + 0.202900; 0.110736;, + 0.173939; 0.081781;, + 0.202897; 0.081778;, + 0.202900; 0.110736;, + 0.173942; 0.110738;, + 0.173936; 0.052823;, + 0.202894; 0.052820;, + 0.202897; 0.081778;, + 0.173939; 0.081781;, + 0.144982; 0.081784;, + 0.173939; 0.081781;, + 0.173942; 0.110738;, + 0.144984; 0.110741;, + 0.116025; 0.081786;, + 0.144982; 0.081784;, + 0.144984; 0.110741;, + 0.116028; 0.110743;, + 0.116022; 0.052830;, + 0.144979; 0.052827;, + 0.144982; 0.081784;, + 0.116025; 0.081786;, + 0.434578; 0.251905;, + 0.463539; 0.251907;, + 0.463536; 0.280867;, + 0.434576; 0.280865;, + 0.405618; 0.251903;, + 0.434578; 0.251905;, + 0.434576; 0.280865;, + 0.405617; 0.280863;, + 0.405620; 0.222943;, + 0.434580; 0.222944;, + 0.434578; 0.251905;, + 0.405618; 0.251903;, + 0.376659; 0.251902;, + 0.405618; 0.251903;, + 0.405617; 0.280863;, + 0.376657; 0.280861;, + 0.347699; 0.251901;, + 0.376659; 0.251902;, + 0.376657; 0.280861;, + 0.347698; 0.280860;, + 0.347700; 0.222942;, + 0.376659; 0.222942;, + 0.376659; 0.251902;, + 0.347699; 0.251901;, + 0.347697; 0.110726;, + 0.376658; 0.110724;, + 0.376659; 0.139685;, + 0.347698; 0.139686;, + 0.318740; 0.251901;, + 0.347699; 0.251901;, + 0.347698; 0.280860;, + 0.318740; 0.280860;, + 0.289781; 0.251901;, + 0.318740; 0.251901;, + 0.318740; 0.280860;, + 0.289781; 0.280860;, + 0.289781; 0.222942;, + 0.318740; 0.222942;, + 0.318740; 0.251901;, + 0.289781; 0.251901;, + 0.260823; 0.251901;, + 0.289781; 0.251901;, + 0.289781; 0.280860;, + 0.260823; 0.280860;, + 0.231864; 0.251902;, + 0.260823; 0.251901;, + 0.260823; 0.280860;, + 0.231865; 0.280860;, + 0.231864; 0.222943;, + 0.260822; 0.222943;, + 0.260823; 0.251901;, + 0.231864; 0.251902;, + 0.231858; 0.110734;, + 0.260817; 0.110731;, + 0.260819; 0.139691;, + 0.231860; 0.139692;, + 0.318734; 0.081767;, + 0.347695; 0.081765;, + 0.347697; 0.110726;, + 0.318737; 0.110727;, + 0.289774; 0.081770;, + 0.318734; 0.081767;, + 0.318737; 0.110727;, + 0.289777; 0.110729;, + 0.289772; 0.052810;, + 0.318732; 0.052806;, + 0.318734; 0.081767;, + 0.289774; 0.081770;, + 0.260815; 0.081772;, + 0.289774; 0.081770;, + 0.289777; 0.110729;, + 0.260817; 0.110731;, + 0.231856; 0.081775;, + 0.260815; 0.081772;, + 0.260817; 0.110731;, + 0.231858; 0.110734;, + 0.231853; 0.052816;, + 0.260812; 0.052813;, + 0.260815; 0.081772;, + 0.231856; 0.081775;, + 0.347693; 0.450983;, + 0.376650; 0.450984;, + 0.376649; 0.479941;, + 0.347692; 0.479940;, + 0.231864; 0.450982;, + 0.260822; 0.450982;, + 0.260822; 0.479939;, + 0.231864; 0.479940;, + 0.318736; 0.422026;, + 0.347694; 0.422026;, + 0.347693; 0.450983;, + 0.318736; 0.450983;, + 0.289779; 0.422025;, + 0.318736; 0.422026;, + 0.318736; 0.450983;, + 0.289779; 0.450982;, + 0.289780; 0.393068;, + 0.318737; 0.393068;, + 0.318736; 0.422026;, + 0.289779; 0.422025;, + 0.260822; 0.422025;, + 0.289779; 0.422025;, + 0.289779; 0.450982;, + 0.260822; 0.450982;, + 0.231864; 0.422025;, + 0.260822; 0.422025;, + 0.260822; 0.450982;, + 0.231864; 0.450982;, + 0.231864; 0.393067;, + 0.260822; 0.393067;, + 0.260822; 0.422025;, + 0.231864; 0.422025;, + 0.231865; 0.280860;, + 0.260823; 0.280860;, + 0.260823; 0.309818;, + 0.231865; 0.309818;, + 0.116034; 0.450983;, + 0.144991; 0.450983;, + 0.144992; 0.479940;, + 0.116034; 0.479941;, + 0.000202; 0.450983;, + 0.029160; 0.450983;, + 0.029160; 0.479941;, + 0.000202; 0.479941;, + 0.087076; 0.422025;, + 0.116033; 0.422025;, + 0.116034; 0.450983;, + 0.087076; 0.450983;, + 0.058118; 0.422025;, + 0.087076; 0.422025;, + 0.087076; 0.450983;, + 0.058118; 0.450983;, + 0.058118; 0.393067;, + 0.087076; 0.393067;, + 0.087076; 0.422025;, + 0.058118; 0.422025;, + 0.029160; 0.422025;, + 0.058118; 0.422025;, + 0.058118; 0.450983;, + 0.029160; 0.450983;, + 0.000202; 0.422025;, + 0.029160; 0.422025;, + 0.029160; 0.450983;, + 0.000202; 0.450983;, + 0.000202; 0.393067;, + 0.029160; 0.393067;, + 0.029160; 0.422025;, + 0.000202; 0.422025;, + 0.000206; 0.280860;, + 0.029162; 0.280861;, + 0.029162; 0.309818;, + 0.000205; 0.309817;, + 0.202906; 0.251902;, + 0.231864; 0.251902;, + 0.231865; 0.280860;, + 0.202907; 0.280860;, + 0.173948; 0.251903;, + 0.202906; 0.251902;, + 0.202907; 0.280860;, + 0.173949; 0.280860;, + 0.173948; 0.222945;, + 0.202906; 0.222944;, + 0.202906; 0.251902;, + 0.173948; 0.251903;, + 0.144991; 0.251903;, + 0.173948; 0.251903;, + 0.173949; 0.280860;, + 0.144991; 0.280861;, + 0.116033; 0.251904;, + 0.144991; 0.251903;, + 0.144991; 0.280861;, + 0.116034; 0.280861;, + 0.116033; 0.222947;, + 0.144990; 0.222946;, + 0.144991; 0.251903;, + 0.116033; 0.251904;, + 0.116028; 0.110743;, + 0.144984; 0.110741;, + 0.144987; 0.139698;, + 0.116029; 0.139700;, + 0.087076; 0.251904;, + 0.116033; 0.251904;, + 0.116034; 0.280861;, + 0.087076; 0.280861;, + 0.058119; 0.251904;, + 0.087076; 0.251904;, + 0.087076; 0.280861;, + 0.058119; 0.280861;, + 0.058119; 0.222948;, + 0.087076; 0.222947;, + 0.087076; 0.251904;, + 0.058119; 0.251904;, + 0.029163; 0.251904;, + 0.058119; 0.251904;, + 0.058119; 0.280861;, + 0.029162; 0.280861;, + 0.000207; 0.251904;, + 0.029163; 0.251904;, + 0.029162; 0.280861;, + 0.000206; 0.280860;, + 0.000207; 0.222948;, + 0.029163; 0.222948;, + 0.029163; 0.251904;, + 0.000207; 0.251904;, + 0.000204; 0.110751;, + 0.029159; 0.110749;, + 0.029161; 0.139705;, + 0.000205; 0.139706;, + 0.087069; 0.081789;, + 0.116025; 0.081786;, + 0.116028; 0.110743;, + 0.087071; 0.110745;, + 0.058113; 0.081791;, + 0.087069; 0.081789;, + 0.087071; 0.110745;, + 0.058115; 0.110747;, + 0.058110; 0.052835;, + 0.087066; 0.052833;, + 0.087069; 0.081789;, + 0.058113; 0.081791;, + 0.029157; 0.081794;, + 0.058113; 0.081791;, + 0.058115; 0.110747;, + 0.029159; 0.110749;, + 0.000202; 0.081796;, + 0.029157; 0.081794;, + 0.029159; 0.110749;, + 0.000204; 0.110751;, + 0.000199; 0.052841;, + 0.029155; 0.052838;, + 0.029157; 0.081794;, + 0.000202; 0.081796;, + 0.057305; 0.565436;, + 0.057314; 0.594397;, + 0.000217; 0.594416;, + 0.000206; 0.565457;, + 0.057383; 0.941887;, + 0.057387; 0.970842;, + 0.000299; 0.970851;, + 0.000294; 0.941895;, + 0.057361; 0.797107;, + 0.057365; 0.826064;, + 0.000276; 0.826074;, + 0.000270; 0.797118;, + 0.057331; 0.652317;, + 0.057338; 0.681276;, + 0.000244; 0.681291;, + 0.000235; 0.652333;, + 0.057323; 0.623357;, + 0.057331; 0.652317;, + 0.000235; 0.652333;, + 0.000226; 0.623375;, + 0.057370; 0.855020;, + 0.057374; 0.883976;, + 0.000285; 0.883985;, + 0.000281; 0.855029;, + 0.057338; 0.681276;, + 0.057344; 0.710235;, + 0.000251; 0.710248;, + 0.000244; 0.681291;, + 0.057314; 0.594397;, + 0.057323; 0.623357;, + 0.000226; 0.623375;, + 0.000217; 0.594416;, + 0.057365; 0.826064;, + 0.057370; 0.855020;, + 0.000281; 0.855029;, + 0.000276; 0.826074;, + 0.057374; 0.883976;, + 0.057379; 0.912931;, + 0.000290; 0.912940;, + 0.000285; 0.883985;, + 0.057350; 0.739193;, + 0.057355; 0.768150;, + 0.000264; 0.768162;, + 0.000258; 0.739205;, + 0.057379; 0.912931;, + 0.057383; 0.941887;, + 0.000294; 0.941895;, + 0.000290; 0.912940;, + 0.057344; 0.710235;, + 0.057350; 0.739193;, + 0.000258; 0.739205;, + 0.000251; 0.710248;, + 0.057294; 0.536474;, + 0.057305; 0.565436;, + 0.000206; 0.565457;, + 0.000194; 0.536497;, + 0.057387; 0.970842;, + 0.057391; 0.999797;, + 0.000303; 0.999806;, + 0.000299; 0.970851;, + 0.057355; 0.768150;, + 0.057361; 0.797107;, + 0.000270; 0.797118;, + 0.000264; 0.768162;, + 0.977169; 0.923310;, + 0.977169; 0.980403;, + 0.951722; 0.980403;, + 0.951722; 0.923309;, + 0.057344; 0.710235;, + 0.057338; 0.681276;, + 0.082785; 0.681271;, + 0.082791; 0.710230;, + 0.376649; 0.000201;, + 0.405612; 0.000199;, + 0.405614; 0.025649;, + 0.376652; 0.025652;, + 0.057323; 0.623357;, + 0.057314; 0.594397;, + 0.082764; 0.594389;, + 0.082772; 0.623351;, + 0.173929; 0.000232;, + 0.202887; 0.000227;, + 0.202891; 0.025674;, + 0.173933; 0.025678;, + 0.231845; 0.000222;, + 0.260805; 0.000217;, + 0.260808; 0.025666;, + 0.231849; 0.025670;, + 0.057379; 0.912931;, + 0.057374; 0.883976;, + 0.082819; 0.883972;, + 0.082823; 0.912928;, + 0.057370; 0.855020;, + 0.057365; 0.826064;, + 0.082811; 0.826060;, + 0.082815; 0.855016;, + 0.836877; 0.451803;, + 0.836877; 0.508898;, + 0.811430; 0.508898;, + 0.811429; 0.451803;, + 0.116016; 0.000240;, + 0.144972; 0.000236;, + 0.144976; 0.025682;, + 0.116019; 0.025685;, + 0.057355; 0.768150;, + 0.057350; 0.739193;, + 0.082797; 0.739188;, + 0.082802; 0.768146;, + 0.057383; 0.941887;, + 0.057379; 0.912931;, + 0.082823; 0.912928;, + 0.082827; 0.941883;, + 0.347687; 0.000205;, + 0.376649; 0.000201;, + 0.376652; 0.025652;, + 0.347690; 0.025655;, + 0.029149; 0.000250;, + 0.058105; 0.000247;, + 0.058107; 0.025692;, + 0.029152; 0.025694;, + 0.260805; 0.000217;, + 0.289765; 0.000213;, + 0.289768; 0.025662;, + 0.260808; 0.025666;, + 0.087060; 0.000244;, + 0.116016; 0.000240;, + 0.116019; 0.025685;, + 0.087063; 0.025689;, + 0.057350; 0.739193;, + 0.057344; 0.710235;, + 0.082791; 0.710230;, + 0.082797; 0.739188;, + 0.405612; 0.000199;, + 0.434575; 0.000196;, + 0.434577; 0.025647;, + 0.405614; 0.025649;, + 0.713049; 0.193461;, + 0.713050; 0.174059;, + 0.744379; 0.174059;, + 0.744378; 0.193462;, + 0.637681; 0.441873;, + 0.666640; 0.441875;, + 0.666636; 0.508897;, + 0.637678; 0.508895;, + 0.744378; 0.193462;, + 0.744379; 0.174059;, + 0.779683; 0.174059;, + 0.779683; 0.193462;, + 0.538219; 0.174056;, + 0.538218; 0.193459;, + 0.502914; 0.193458;, + 0.502915; 0.174056;, + 0.639530; 0.866817;, + 0.639530; 0.895775;, + 0.604225; 0.895775;, + 0.604225; 0.866817;, + 0.538218; 0.193459;, + 0.538218; 0.250552;, + 0.502913; 0.250552;, + 0.502914; 0.193458;, + 0.680897; 0.536435;, + 0.680897; 0.565393;, + 0.661495; 0.565393;, + 0.661494; 0.536436;, + 0.626819; 0.193460;, + 0.626818; 0.250554;, + 0.569547; 0.250553;, + 0.569547; 0.193459;, + 0.713050; 0.130054;, + 0.744378; 0.130054;, + 0.744379; 0.174059;, + 0.713050; 0.174059;, + 0.569547; 0.174056;, + 0.569547; 0.193459;, + 0.538218; 0.193459;, + 0.538219; 0.174056;, + 0.569547; 0.193459;, + 0.569547; 0.250553;, + 0.538218; 0.250552;, + 0.538218; 0.193459;, + 0.713048; 0.250555;, + 0.713049; 0.193461;, + 0.744378; 0.193462;, + 0.744377; 0.250556;, + 0.538218; 0.105181;, + 0.569546; 0.105181;, + 0.569546; 0.130052;, + 0.538218; 0.130053;, + 0.683535; 0.866817;, + 0.683535; 0.895775;, + 0.639530; 0.895775;, + 0.639530; 0.866817;, + 0.724902; 0.536434;, + 0.724902; 0.565392;, + 0.680897; 0.565393;, + 0.680897; 0.536435;, + 0.538218; 0.130053;, + 0.569546; 0.130052;, + 0.569547; 0.174056;, + 0.538219; 0.174056;, + 0.749775; 0.565392;, + 0.749774; 0.536433;, + 0.781104; 0.536433;, + 0.781104; 0.565392;, + 0.818664; 0.105182;, + 0.818664; 0.130054;, + 0.744378; 0.130054;, + 0.744378; 0.105182;, + 0.749774; 0.536433;, + 0.749775; 0.565392;, + 0.724902; 0.565392;, + 0.724902; 0.536434;, + 0.713050; 0.105182;, + 0.744378; 0.105182;, + 0.744378; 0.130054;, + 0.713050; 0.130054;, + 0.637683; 0.406569;, + 0.666641; 0.406570;, + 0.666640; 0.441875;, + 0.637681; 0.441873;, + 0.637685; 0.375240;, + 0.666643; 0.375241;, + 0.666641; 0.406570;, + 0.637683; 0.406569;, + 0.779681; 0.317579;, + 0.744376; 0.317578;, + 0.744377; 0.250556;, + 0.779682; 0.250557;, + 0.655775; 0.317576;, + 0.655777; 0.250554;, + 0.713048; 0.250555;, + 0.713047; 0.317577;, + 0.744376; 0.317578;, + 0.713047; 0.317577;, + 0.713048; 0.250555;, + 0.744377; 0.250556;, + 0.538217; 0.317574;, + 0.502912; 0.317573;, + 0.502913; 0.250552;, + 0.538218; 0.250552;, + 0.626819; 0.193460;, + 0.655778; 0.193460;, + 0.655777; 0.250554;, + 0.626818; 0.250554;, + 0.655775; 0.317576;, + 0.626817; 0.317575;, + 0.626818; 0.250554;, + 0.655777; 0.250554;, + 0.604227; 0.565396;, + 0.604225; 0.536439;, + 0.661494; 0.536436;, + 0.661495; 0.565393;, + 0.655777; 0.250554;, + 0.655778; 0.193460;, + 0.713049; 0.193461;, + 0.713048; 0.250555;, + 0.626818; 0.250554;, + 0.626817; 0.317575;, + 0.569546; 0.317575;, + 0.569547; 0.250553;, + 0.637688; 0.317967;, + 0.666646; 0.317969;, + 0.666643; 0.375241;, + 0.637685; 0.375240;, + 0.782694; 0.866817;, + 0.782694; 0.895775;, + 0.757821; 0.895775;, + 0.757821; 0.866817;, + 0.757821; 0.866817;, + 0.757821; 0.895775;, + 0.683535; 0.895775;, + 0.683535; 0.866817;, + 0.855393; 0.536433;, + 0.855393; 0.565392;, + 0.781104; 0.565392;, + 0.781104; 0.536433;, + 0.463933; 0.130054;, + 0.463933; 0.105182;, + 0.538218; 0.105181;, + 0.538218; 0.130053;; + } //End of Plane_000 UV Coordinates + } //End of Plane_000 Mesh + } //End of Plane +} //End of Root Frame diff --git a/minetestforfun_game/mods/boats/textures/boat_inventory.png b/minetestforfun_game/mods/boats/textures/boat_inventory.png new file mode 100755 index 00000000..e0756637 Binary files /dev/null and b/minetestforfun_game/mods/boats/textures/boat_inventory.png differ diff --git a/minetestforfun_game/mods/boats/textures/boat_wield.png b/minetestforfun_game/mods/boats/textures/boat_wield.png new file mode 100755 index 00000000..ca62b141 Binary files /dev/null and b/minetestforfun_game/mods/boats/textures/boat_wield.png differ diff --git a/minetestforfun_game/mods/bucket/README.txt b/minetestforfun_game/mods/bucket/README.txt new file mode 100644 index 00000000..7dad6419 --- /dev/null +++ b/minetestforfun_game/mods/bucket/README.txt @@ -0,0 +1,26 @@ +Minetest 0.4 mod: bucket +========================= + +License of source code: +----------------------- +Copyright (C) 2011-2012 Kahrl +Copyright (C) 2011-2012 celeron55, Perttu Ahola + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +http://www.gnu.org/licenses/lgpl-2.1.html + +License of media (textures and sounds) +-------------------------------------- +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + +Authors of media files +----------------------- +Everything not listed in here: +Copyright (C) 2010-2012 celeron55, Perttu Ahola + + diff --git a/minetestforfun_game/mods/bucket/depends.txt b/minetestforfun_game/mods/bucket/depends.txt new file mode 100644 index 00000000..3a7daa1d --- /dev/null +++ b/minetestforfun_game/mods/bucket/depends.txt @@ -0,0 +1,2 @@ +default + diff --git a/minetestforfun_game/mods/bucket/init.lua b/minetestforfun_game/mods/bucket/init.lua new file mode 100644 index 00000000..9c482ea9 --- /dev/null +++ b/minetestforfun_game/mods/bucket/init.lua @@ -0,0 +1,203 @@ +-- Minetest 0.4 mod: bucket +-- See README.txt for licensing and other information. + +local LIQUID_MAX = 8 --The number of water levels when liquid_finite is enabled + +minetest.register_alias("bucket", "bucket:bucket_empty") +minetest.register_alias("bucket_water", "bucket:bucket_water") +minetest.register_alias("bucket_lava", "bucket:bucket_lava") + +minetest.register_craft({ + output = "bucket:bucket_empty 1", + recipe = { + {"default:steel_ingot", "", "default:steel_ingot"}, + {"", "default:steel_ingot", ""}, + } +}) + +bucket = {} +bucket.liquids = {} + +local function check_protection(pos, name, text) + if minetest.is_protected(pos, name) then + minetest.log("action", (name ~= "" and name or "A mod") + .. " tried to " .. text + .. " at protected position " + .. minetest.pos_to_string(pos) + .. " with a bucket.") + minetest.record_protection_violation(pos, name) + return true + end + return false +end + +-- Register a new liquid +-- source = name of the source node +-- flowing = name of the flowing node +-- itemname = name of the new bucket item (or nil if liquid is not takeable) +-- inventory_image = texture of the new bucket item (ignored if itemname == nil) +-- This function can be called from any mod (that depends on bucket). +function bucket.register_liquid(source, flowing, itemname, inventory_image, name) + bucket.liquids[source] = { + source = source, + flowing = flowing, + itemname = itemname, + } + bucket.liquids[flowing] = bucket.liquids[source] + + if itemname ~= nil then + minetest.register_craftitem(itemname, { + description = name, + inventory_image = inventory_image, + stack_max = 1, + liquids_pointable = true, + groups = {not_in_creative_inventory=1}, + on_place = function(itemstack, user, pointed_thing) + -- Must be pointing to node + if pointed_thing.type ~= "node" then + return + end + + local node = minetest.get_node_or_nil(pointed_thing.under) + local ndef + if node then + ndef = minetest.registered_nodes[node.name] + end + -- Call on_rightclick if the pointed node defines it + if ndef and ndef.on_rightclick and + user and not user:get_player_control().sneak then + return ndef.on_rightclick( + pointed_thing.under, + node, user, + itemstack) or itemstack + end + + local place_liquid = function(pos, node, source, flowing, fullness) + if check_protection(pos, + user and user:get_player_name() or "", + "place "..source) then + return + end + if math.floor(fullness/128) == 1 or + not minetest.setting_getbool("liquid_finite") then + minetest.add_node(pos, {name=source, + param2=fullness}) + return + elseif node.name == flowing then + fullness = fullness + node.param2 + elseif node.name == source then + fullness = LIQUID_MAX + end + + if fullness >= LIQUID_MAX then + minetest.add_node(pos, {name=source, + param2=LIQUID_MAX}) + else + minetest.add_node(pos, {name=flowing, + param2=fullness}) + end + end + + -- Check if pointing to a buildable node + local fullness = tonumber(itemstack:get_metadata()) + if not fullness then fullness = LIQUID_MAX end + + if ndef and ndef.buildable_to then + -- buildable; replace the node + place_liquid(pointed_thing.under, node, + source, flowing, fullness) + else + -- not buildable to; place the liquid above + -- check if the node above can be replaced + local node = minetest.get_node_or_nil(pointed_thing.above) + if node and minetest.registered_nodes[node.name].buildable_to then + place_liquid(pointed_thing.above, + node, source, + flowing, fullness) + else + -- do not remove the bucket with the liquid + return + end + end + return {name="bucket:bucket_empty"} + end + }) + end +end + +-- Empty Bucket code by Casimir. + +minetest.register_craftitem(":bucket:bucket_empty", { + description = "Empty Bucket", + inventory_image = "bucket.png", + liquids_pointable = true, + on_use = function(itemstack, user, pointed_thing) + -- Must be pointing to a node. + if pointed_thing.type ~= "node" then + return + end + -- Check if pointing to a liquid source. + node = minetest.get_node(pointed_thing.under) + liquiddef = bucket.liquids[node.name] + if liquiddef ~= nil and liquiddef.itemname ~= nil and + (node.name == liquiddef.source or + (node.name == liquiddef.flowing and + minetest.setting_getbool("liquid_finite"))) then + if check_protection(pointed_thing.under, + user:get_player_name(), + "take ".. node.name) then + return + end + -- Only one bucket: replace. + local count = itemstack:get_count() + if count == 1 then + minetest.add_node(pointed_thing.under, {name="air"}) + return ItemStack({name = liquiddef.itemname, + metadata = tostring(node.param2)}) + end + -- Stacked buckets: add a filled bucket, replace stack. + local inv = user:get_inventory() + if inv:room_for_item("main", liquiddef.itemname) then + minetest.add_node(pointed_thing.under, {name="air"}) + count = count - 1 + itemstack:set_count(count) + if node.name == liquiddef.source then + node.param2 = LIQUID_MAX + end + bucket_liquid = ItemStack({name = liquiddef.itemname, + metadata = tostring(node.param2)}) + inv:add_item("main", bucket_liquid) + return itemstack + else + minetest.chat_send_player(user:get_player_name(), "Your inventory is full.") + end + end + end, +}) + +bucket.register_liquid( + "default:water_source", + "default:water_flowing", + "bucket:bucket_water", + "bucket_water.png", + "Water Bucket" +) + +bucket.register_liquid( + "default:lava_source", + "default:lava_flowing", + "bucket:bucket_lava", + "bucket_lava.png", + "Lava Bucket" +) + +minetest.register_craft({ + type = "fuel", + recipe = "bucket:bucket_lava", + burntime = 60, + replacements = {{"bucket:bucket_lava", "bucket:bucket_empty"}}, +}) + +if minetest.setting_getbool("log_mods") then + minetest.log("action", "Carbone: [bucket] loaded.") +end diff --git a/minetestforfun_game/mods/bucket/textures/bucket.png b/minetestforfun_game/mods/bucket/textures/bucket.png new file mode 100644 index 00000000..0a376e91 Binary files /dev/null and b/minetestforfun_game/mods/bucket/textures/bucket.png differ diff --git a/minetestforfun_game/mods/bucket/textures/bucket_lava.png b/minetestforfun_game/mods/bucket/textures/bucket_lava.png new file mode 100644 index 00000000..69555861 Binary files /dev/null and b/minetestforfun_game/mods/bucket/textures/bucket_lava.png differ diff --git a/minetestforfun_game/mods/bucket/textures/bucket_water.png b/minetestforfun_game/mods/bucket/textures/bucket_water.png new file mode 100644 index 00000000..bec97a68 Binary files /dev/null and b/minetestforfun_game/mods/bucket/textures/bucket_water.png differ diff --git a/minetestforfun_game/mods/creative/README.txt b/minetestforfun_game/mods/creative/README.txt new file mode 100755 index 00000000..7d49b981 --- /dev/null +++ b/minetestforfun_game/mods/creative/README.txt @@ -0,0 +1,22 @@ +Minetest 0.4 mod: creative +========================== + +Implements creative mode. + +Switch on by using the "creative_mode" setting. + +Registered items that +- have a description, and +- do not have the group not_in_creative_inventory +are added to the creative inventory. + +License of source code and media files: +--------------------------------------- +Copyright (C) 2012 Perttu Ahola (celeron55) + +This program is free software. It comes without any warranty, to +the extent permitted by applicable law. You can redistribute it +and/or modify it under the terms of the Do What The Fuck You Want +To Public License, Version 2, as published by Sam Hocevar. See +http://sam.zoy.org/wtfpl/COPYING for more details. + diff --git a/minetestforfun_game/mods/creative/depends.txt b/minetestforfun_game/mods/creative/depends.txt new file mode 100755 index 00000000..4ad96d51 --- /dev/null +++ b/minetestforfun_game/mods/creative/depends.txt @@ -0,0 +1 @@ +default diff --git a/minetestforfun_game/mods/creative/init.lua b/minetestforfun_game/mods/creative/init.lua new file mode 100755 index 00000000..41282b18 --- /dev/null +++ b/minetestforfun_game/mods/creative/init.lua @@ -0,0 +1,172 @@ +-- minetest/creative/init.lua + +creative_inventory = {} +creative_inventory.creative_inventory_size = 0 + +-- Create detached creative inventory after loading all mods +minetest.after(0, function() + local inv = minetest.create_detached_inventory("creative", { + allow_move = function(inv, from_list, from_index, to_list, to_index, count, player) + if minetest.setting_getbool("creative_mode") then + return count + else + return 0 + end + end, + allow_put = function(inv, listname, index, stack, player) + return 0 + end, + allow_take = function(inv, listname, index, stack, player) + if minetest.setting_getbool("creative_mode") then + return -1 + else + return 0 + end + end, + on_move = function(inv, from_list, from_index, to_list, to_index, count, player) + end, + on_put = function(inv, listname, index, stack, player) + end, + on_take = function(inv, listname, index, stack, player) + --print(player:get_player_name().." takes item from creative inventory; listname="..dump(listname)..", index="..dump(index)..", stack="..dump(stack)) + if stack then + minetest.log("action", player:get_player_name().." takes "..dump(stack:get_name()).." from creative inventory") + --print("stack:get_name()="..dump(stack:get_name())..", stack:get_count()="..dump(stack:get_count())) + end + end, + }) + local creative_list = {} + for name,def in pairs(minetest.registered_items) do + if (not def.groups.not_in_creative_inventory or def.groups.not_in_creative_inventory == 0) + and def.description and def.description ~= "" then + table.insert(creative_list, name) + end + end + table.sort(creative_list) + inv:set_size("main", #creative_list) + for _,itemstring in ipairs(creative_list) do + inv:add_item("main", ItemStack(itemstring)) + end + creative_inventory.creative_inventory_size = #creative_list + --print("creative inventory size: "..dump(creative_inventory.creative_inventory_size)) +end) + +-- Create the trash field +local trash = minetest.create_detached_inventory("creative_trash", { + -- Allow the stack to be placed and remove it in on_put() + -- This allows the creative inventory to restore the stack + allow_put = function(inv, listname, index, stack, player) + if minetest.setting_getbool("creative_mode") then + return stack:get_count() + else + return 0 + end + end, + on_put = function(inv, listname, index, stack, player) + inv:set_stack(listname, index, "") + end, +}) +trash:set_size("main", 1) + + +creative_inventory.set_creative_formspec = function(player, start_i, pagenum) + pagenum = math.floor(pagenum) + local pagemax = math.floor((creative_inventory.creative_inventory_size-1) / (6*4) + 1) + player:set_inventory_formspec( + "size[13,7.5]".. + --"image[6,0.6;1,2;player.png]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "list[current_player;main;5,3.5;8,1;]".. + "list[current_player;main;5,4.75;8,3;8]".. + "list[current_player;craft;8,0;3,3;]".. + "list[current_player;craftpreview;12,1;1,1;]".. + "list[detached:creative;main;0.3,0.5;4,6;"..tostring(start_i).."]".. + "label[2.0,6.55;"..tostring(pagenum).."/"..tostring(pagemax).."]".. + "button[0.3,6.5;1.6,1;creative_prev;<<]".. + "button[2.7,6.5;1.6,1;creative_next;>>]".. + "label[5,1.5;Trash:]".. + "list[detached:creative_trash;main;5,2;1,1;]".. + default.get_hotbar_bg(5,3.5) + ) +end +minetest.register_on_joinplayer(function(player) + -- If in creative mode, modify player's inventory forms + if not minetest.setting_getbool("creative_mode") then + return + end + creative_inventory.set_creative_formspec(player, 0, 1) +end) +minetest.register_on_player_receive_fields(function(player, formname, fields) + if not minetest.setting_getbool("creative_mode") then + return + end + -- Figure out current page from formspec + local current_page = 0 + local formspec = player:get_inventory_formspec() + local start_i = string.match(formspec, "list%[detached:creative;main;[%d.]+,[%d.]+;[%d.]+,[%d.]+;(%d+)%]") + start_i = tonumber(start_i) or 0 + + if fields.creative_prev then + start_i = start_i - 4*6 + end + if fields.creative_next then + start_i = start_i + 4*6 + end + + if start_i < 0 then + start_i = start_i + 4*6 + end + if start_i >= creative_inventory.creative_inventory_size then + start_i = start_i - 4*6 + end + + if start_i < 0 or start_i >= creative_inventory.creative_inventory_size then + start_i = 0 + end + + creative_inventory.set_creative_formspec(player, start_i, start_i / (6*4) + 1) +end) + +if minetest.setting_getbool("creative_mode") then + local digtime = 0.5 + minetest.register_item(":", { + type = "none", + wield_image = "wieldhand.png", + wield_scale = {x=1,y=1,z=2.5}, + range = 10, + tool_capabilities = { + full_punch_interval = 0.5, + max_drop_level = 3, + groupcaps = { + crumbly = {times={[1]=digtime, [2]=digtime, [3]=digtime}, uses=0, maxlevel=3}, + cracky = {times={[1]=digtime, [2]=digtime, [3]=digtime}, uses=0, maxlevel=3}, + snappy = {times={[1]=digtime, [2]=digtime, [3]=digtime}, uses=0, maxlevel=3}, + choppy = {times={[1]=digtime, [2]=digtime, [3]=digtime}, uses=0, maxlevel=3}, + oddly_breakable_by_hand = {times={[1]=digtime, [2]=digtime, [3]=digtime}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy = 10}, + } + }) + + minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack) + return true + end) + + function minetest.handle_node_drops(pos, drops, digger) + if not digger or not digger:is_player() then + return + end + local inv = digger:get_inventory() + if inv then + for _,item in ipairs(drops) do + item = ItemStack(item):get_name() + if not inv:contains_item("main", item) then + inv:add_item("main", item) + end + end + end + end + +end diff --git a/minetestforfun_game/mods/default/README.txt b/minetestforfun_game/mods/default/README.txt new file mode 100755 index 00000000..40502509 --- /dev/null +++ b/minetestforfun_game/mods/default/README.txt @@ -0,0 +1,178 @@ +Minetest 0.4 mod: default +========================== + +License of source code: +----------------------- +Copyright (C) 2011-2012 celeron55, Perttu Ahola + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +http://www.gnu.org/licenses/lgpl-2.1.html + +License of media (textures and sounds) +-------------------------------------- +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + +Authors of media files +----------------------- +Everything not listed in here: +Copyright (C) 2010-2012 celeron55, Perttu Ahola + +Cisoun's WTFPL texture pack: + default_chest_front.png + default_chest_lock.png + default_chest_side.png + default_chest_top.png + default_dirt.png + default_grass.png + default_grass_side.png + default_jungletree.png + default_jungletree_top.png + default_lava.png + default_leaves.png + default_sapling.png + default_sign_wall.png + default_stone.png + default_tree.png + default_tree_top.png + default_water.png + +Originating from G4JC's Almost MC Texture Pack: + default_torch.png + default_torch_on_ceiling.png + default_torch_on_floor.png + +VanessaE's animated torches (WTFPL): + default_torch_animated.png + default_torch_on_ceiling_animated.png + default_torch_on_floor_animated.png + default_torch_on_floor.png + +RealBadAngel's animated water (WTFPL): + default_water_source_animated.png + default_water_flowing_animated.png + +VanessaE (WTFPL): + default_nc_back.png + default_nc_front.png + default_nc_rb.png + default_nc_side.png + default_grass_*.png + default_desert_sand.png + default_desert_stone.png + default_desert_stone_brick.png + default_sand.png + default_sandstone_brick.png + +Calinou (CC BY-SA 3.0): + crack_anylength.png + default_brick.png + default_papyrus.png + default_copper_lump.png + default_mineral_copper.png + +MirceaKitsune (WTFPL): + character.x + +Jordach (CC BY-SA 3.0): + character.png + +PilzAdam (WTFPL): + default_jungleleaves.png + default_junglesapling.png + default_junglewood.png + default_obsidian_glass.png + default_obsidian_shard.png + default_mossycobble.png + default_gold_lump.png + default_mineral_gold.png + default_snowball.png + +jojoa1997 (WTFPL): + default_obsidian.png + +InfinityProject (WTFPL): + default_mineral_diamond.png + +Splizard (CC BY-SA 3.0): + default_snow.png + default_snow_side.png + default_ice.png + +Zeg9 (CC BY-SA 3.0): + default_coal_block.png + default_steel_block.png + default_copper_block.png + default_bronze_block.png + default_gold_block.png + +paramat (CC BY-SA 3.0): + wieldhand.png, based on character.png by Jordach (CC BY-SA 3.0) + +brunob.santos (CC BY-SA 4.0): + default_desert_cobble.png + +BlockMen (CC BY-SA 3.0): + default_stone_brick.png + default_wood.png + default_cobble.png + default_clay_brick.png + default_tool_steelsword.png + default_bronze_ingot.png + default_copper_ingot.png + default_gold_ingot.png + default_diamond.png + default_diamond_block.png + default_tool_*.png + default_lava_source_animated.png + default_lava_flowing_animated.png + default_book.png + default_paper.png + default_stick.png + bubble.png + heart.png + gui_*.png + +Glass breaking sounds (CC BY 3.0): + 1: http://www.freesound.org/people/cmusounddesign/sounds/71947/ + 2: http://www.freesound.org/people/Tomlija/sounds/97669/ + 3: http://www.freesound.org/people/lsprice/sounds/88808/ + +Mito551 (sounds) (CC BY-SA): + default_dig_choppy.ogg + default_dig_cracky.ogg + default_dig_crumbly.1.ogg + default_dig_crumbly.2.ogg + default_dig_dig_immediate.ogg + default_dig_oddly_breakable_by_hand.ogg + default_dug_node.1.ogg + default_dug_node.2.ogg + default_grass_footstep.1.ogg + default_grass_footstep.2.ogg + default_grass_footstep.3.ogg + default_gravel_footstep.1.ogg + default_gravel_footstep.2.ogg + default_gravel_footstep.3.ogg + default_gravel_footstep.4.ogg + default_grass_footstep.1.ogg + default_place_node.1.ogg + default_place_node.2.ogg + default_place_node.3.ogg + default_place_node_hard.1.ogg + default_place_node_hard.2.ogg + default_snow_footstep.1.ogg + default_snow_footstep.2.ogg + default_hard_footstep.1.ogg + default_hard_footstep.2.ogg + default_hard_footstep.3.ogg + default_sand_footstep.1.ogg + default_sand_footstep.2.ogg + default_wood_footstep.1.ogg + default_wood_footstep.2.ogg + default_dirt_footstep.1.ogg + default_dirt_footstep.2.ogg + default_glass_footstep.ogg diff --git a/minetestforfun_game/mods/default/aliases.lua b/minetestforfun_game/mods/default/aliases.lua new file mode 100755 index 00000000..d80082e2 --- /dev/null +++ b/minetestforfun_game/mods/default/aliases.lua @@ -0,0 +1,67 @@ +-- aliases (Minetest 0.4 mod) +-- Provides alias for most default items + +minetest.register_alias("stone", "default:stone") +minetest.register_alias("stone_with_coal", "default:stone_with_coal") +minetest.register_alias("stone_with_iron", "default:stone_with_iron") +minetest.register_alias("dirt_with_grass", "default:dirt_with_grass") +minetest.register_alias("dirt_with_grass_footsteps", "default:dirt_with_grass_footsteps") +minetest.register_alias("dirt", "default:dirt") +minetest.register_alias("sand", "default:sand") +minetest.register_alias("gravel", "default:gravel") +minetest.register_alias("sandstone", "default:sandstone") +minetest.register_alias("clay", "default:clay") +minetest.register_alias("brick", "default:brick") +minetest.register_alias("tree", "default:tree") +minetest.register_alias("jungletree", "default:jungletree") +minetest.register_alias("junglegrass", "default:junglegrass") +minetest.register_alias("leaves", "default:leaves") +minetest.register_alias("cactus", "default:cactus") +minetest.register_alias("papyrus", "default:papyrus") +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("wood", "default:wood") +minetest.register_alias("mese", "default:mese") +minetest.register_alias("cloud", "default:cloud") +minetest.register_alias("water_flowing", "default:water_flowing") +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("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") + +minetest.register_alias("WPick", "default:pick_wood") +minetest.register_alias("STPick", "default:pick_stone") +minetest.register_alias("SteelPick", "default:pick_steel") +minetest.register_alias("MesePick", "default:pick_mese") +minetest.register_alias("WShovel", "default:shovel_wood") +minetest.register_alias("STShovel", "default:shovel_stone") +minetest.register_alias("SteelShovel", "default:shovel_steel") +minetest.register_alias("WAxe", "default:axe_wood") +minetest.register_alias("STAxe", "default:axe_stone") +minetest.register_alias("SteelAxe", "default:axe_steel") +minetest.register_alias("WSword", "default:sword_wood") +minetest.register_alias("STSword", "default:sword_stone") +minetest.register_alias("SteelSword", "default:sword_steel") + +minetest.register_alias("Stick", "default:stick") +minetest.register_alias("paper", "default:paper") +minetest.register_alias("book", "default:book") +minetest.register_alias("lump_of_coal", "default:coal_lump") +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") diff --git a/minetestforfun_game/mods/default/commands.lua b/minetestforfun_game/mods/default/commands.lua new file mode 100755 index 00000000..52cd86d1 --- /dev/null +++ b/minetestforfun_game/mods/default/commands.lua @@ -0,0 +1,190 @@ +minetest.register_privilege("physics", { + description = "Allows player to set their gravity, jump height and movement speed"}) + +-- Infotool code by PilzAdam: +minetest.register_craftitem("default:infotool", { + description = "Infotool", + inventory_image = "default_infotool.png", + wield_image = "default_infotool.png^[transformR90", + groups = {not_in_creative_inventory = 1}, + on_use = function(_, user, pt) + if pt.type ~= "node" then return end + local nn = minetest.get_node(pt.under).name + if type(minetest.registered_items[nn].tiles[1]) ~= "string" then return end + local def = minetest.registered_nodes[nn] + if not def then return end + + local textures = def.tiles + local description = def.description + if not textures then + textures = {"(no texture)"} + end + if not description then + description = {"(no description)"} + end + for i = 1,6 do + if not textures[i] then + textures[i] = textures[i-1] + end + end + local dir = vector.subtract(pt.above, pt.under) + local index + -- This doesn't work for facedir or other drawtypes yet. + if dir.y == 1 then + index = 1 + elseif dir.y == -1 then + index = 2 + else + if dir.x == 1 then + index = 3 + elseif dir.x == -1 then + index = 4 + else + if dir.z == 1 then + index = 5 + else + index = 6 + end + end + end + minetest.chat_send_player(user:get_player_name(), description .. ": " .. nn .. " (" .. textures[index] .. ")") + end, +}) + +minetest.register_chatcommand("info", { + description = "Gives an Infotool, click to receive information on the pointed node", + func = function(name) + local receiverref = minetest.get_player_by_name(name) + receiverref:get_inventory():add_item("main", "default:infotool") + minetest.chat_send_player(name, "\"default:infotool\" added to inventory.") + end, +}) + +minetest.register_chatcommand("clearinventory", { + params = "", + description = "Clears an entire inventory, \"main\" if unspecified, \"craft\" is another possible choice", + func = function(name, param) + local player = minetest.get_player_by_name(name) + local player_inv = player:get_inventory() + if not player then + minetest.log("error", "Unable to clear inventory, no player.") + return false, "Unable to clear inventory, no player." + end + if param == "" then + player_inv:set_list("main", {}) + return true, "Inventory \"main\" cleared." + else + player_inv:set_list(param, {}) + return true, "Inventory \"" .. param .. "\" cleared." + end + end, +}) + +-- The following commands /whoami, /suicide, /speed, /gravity and /jump by Wuzzy: +minetest.register_chatcommand("whoami", { + params = "", + description = "Tells your name", + privs = {}, + func = function(name) + minetest.chat_send_player(name, "Your name is: " .. name) + end, +}) + +minetest.register_chatcommand("ip", { + params = "", + description = "Shows your IP address", + privs = {}, + func = function(name) + minetest.chat_send_player(name, "Your IP address is: "..minetest.get_player_ip(name)) + end +}) + +minetest.register_chatcommand("suicide", { + params = "", + description = "Kills yourself", + func = function(name, param) + local player = minetest.get_player_by_name(name) + if not player then return end + player:set_hp(0) + if minetest.setting_getbool("enable_damage") == false then + minetest.chat_send_player(name, "[X] Damage is disabled on this server.") + else + minetest.chat_send_player(name, "[X] You suicided.") + end + end, +}) + +minetest.register_chatcommand("speed", { + params = "[speed]", + description = "Sets your movement speed (defaults to 1).", + privs = {physics = true}, + func = function(name, speed) + local player = minetest.get_player_by_name(name) + if not player then return end + if speed == "" then speed = 1 end + if type(tonumber(speed)) ~= "number" + or tonumber(speed) < 0 + or tonumber(speed) > 10 then + minetest.chat_send_player(name, "[~] Speed must be between 0.0 and 10.0.") + return + end + + player:set_physics_override(tonumber(speed), nil, nil) + minetest.chat_send_player(name, "[~] Speed set to " .. tonumber(speed) * 100 .. " %.") + end, +}) + +minetest.register_chatcommand("gravity", { + params = "[gravity]", + description = "Sets your gravity (defaults to 1).", + privs = {physics = true}, + func = function(name, gravity) + local player = minetest.get_player_by_name(name) + if not player then return end + if gravity == "" then gravity = 1 end + if type(tonumber(gravity)) ~= "number" + or tonumber(gravity) < -10 + or tonumber(gravity) > 10 then + minetest.chat_send_player(name, "[~] Gravity must be between -10.0 and 10.0.") + return + end + + player:set_physics_override(nil, nil, tonumber(gravity)) + minetest.chat_send_player(name, "[~] Gravity set to " .. tonumber(gravity) * 100 .. " %.") + end, +}) + +minetest.register_chatcommand("jump", { + params = "[height]", + description = "Sets your jump height (defaults to 1)", + privs = {physics = true}, + func = function(name, jump) + local player = minetest.get_player_by_name(name) + if not player then return end + if jump == "" then jump = 1 end + if type(tonumber(jump)) ~= "number" + or tonumber(jump) < 0 + or tonumber(jump) > 10 then + minetest.chat_send_player(name, "[~] Jump height must be between 0.0 and 10.0.") + return + end + + player:set_physics_override(nil, tonumber(jump), nil) + minetest.chat_send_player(name, "[~] Jump height set to " .. tonumber(jump) * 100 .. " %.") + end, +}) + +minetest.register_chatcommand("hotbar", { + params = "[size]", + description = "Sets the size of your hotbar", + func = function(name, slots) + if slots == "" then slots = 16 end + if type(tonumber(slots)) ~= "number" or tonumber(slots) < 1 or tonumber(slots) > 23 then + minetest.chat_send_player(name, "[_] Hotbar size must be between 1 and 23.") + return + end + local player = minetest.get_player_by_name(name) + player:hud_set_hotbar_itemcount(tonumber(slots)) + minetest.chat_send_player(name, "[_] Hotbar size set to " .. tonumber(slots) .. ".") + end, +}) diff --git a/minetestforfun_game/mods/default/crafting.lua b/minetestforfun_game/mods/default/crafting.lua new file mode 100644 index 00000000..3e418f4e --- /dev/null +++ b/minetestforfun_game/mods/default/crafting.lua @@ -0,0 +1,914 @@ +-- mods/default/crafting.lua + +minetest.register_craft({ + output = "default:wood 4", + recipe = {{"default:tree"},} +}) + +minetest.register_craft({ + output = "default:junglewood 4", + recipe = {{"default:jungletree"},} +}) + +minetest.register_craft({ + output = "default:stick 9", + recipe = {{"group:wood"},} +}) + +minetest.register_craft({ + output = "default:fence_wood 2", + recipe = { + {"default:stick", "default:stick", "default:stick"}, + {"default:stick", "default:stick", "default:stick"}, + } +}) + +minetest.register_craft({ + output = "default:fence_cobble 16", + recipe = { + {"default:cobble", "default:cobble", "default:cobble"}, + {"default:cobble", "default:cobble", "default:cobble"}, + } +}) + +minetest.register_craft({ + output = "default:fence_desert_cobble 16", + recipe = { + {"default:desert_cobble", "default:desert_cobble", "default:desert_cobble"}, + {"default:desert_cobble", "default:desert_cobble", "default:desert_cobble"}, + } +}) + +minetest.register_craft({ + output = "default:fence_steelblock 16", + recipe = { + {"default:steelblock", "default:steelblock", "default:steelblock"}, + {"default:steelblock", "default:steelblock", "default:steelblock"}, + } +}) + +minetest.register_craft({ + output = "default:fence_brick 16", + recipe = { + {"default:brick", "default:brick", "default:brick"}, + {"default:brick", "default:brick", "default:brick"}, + } +}) + +minetest.register_craft({ + output = "default:sign_wall", + recipe = { + {"group:wood", "group:wood", "group:wood"}, + {"group:wood", "group:wood", "group:wood"}, + {"", "group:stick", ""}, + } +}) + +minetest.register_craft({ + output = "default:torch 5", + recipe = { + {"default:coal_lump"}, + {"group:stick"}, + } +}) + +minetest.register_craft({ + output = "default:pick_wood", + recipe = { + {"group:wood", "group:wood", "group:wood"}, + {"", "group:stick", ""}, + {"", "group:stick", ""}, + } +}) + +minetest.register_craft({ + output = "default:pick_stone", + recipe = { + {"group:stone", "group:stone", "group:stone"}, + {"", "group:stick", ""}, + {"", "group:stick", ""}, + } +}) + +minetest.register_craft({ + output = "default:pick_steel", + recipe = { + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"", "group:stick", ""}, + {"", "group:stick", ""}, + } +}) + +minetest.register_craft({ + output = "default:pick_bronze", + recipe = { + {"default:bronze_ingot", "default:bronze_ingot", "default:bronze_ingot"}, + {"", "group:stick", ""}, + {"", "group:stick", ""}, + } +}) + +minetest.register_craft({ + output = "default:pick_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_diamond", + recipe = { + {"default:diamond", "default:diamond", "default:diamond"}, + {"", "group:stick", ""}, + {"", "group:stick", ""}, + } +}) + +minetest.register_craft({ + output = "default:pick_nyan", + recipe = { + {"default:nyancat", "default:nyancat", "default:nyancat"}, + {"", "group:stick", ""}, + {"", "group:stick", ""}, + } +}) + +minetest.register_craft({ + output = "default:pick_mese", + recipe = { + {"default:mese_crystal", "default:mese_crystal", "default:mese_crystal"}, + {"", "group:stick", ""}, + {"", "group:stick", ""}, + } +}) + + + +minetest.register_craft({ + output = "default:shovel_wood", + recipe = { + {"group:wood"}, + {"group:stick"}, + {"group:stick"}, + } +}) + +minetest.register_craft({ + output = "default:shovel_stone", + recipe = { + {"group:stone"}, + {"group:stick"}, + {"group:stick"}, + } +}) + +minetest.register_craft({ + output = "default:shovel_steel", + recipe = { + {"default:steel_ingot"}, + {"group:stick"}, + {"group:stick"}, + } +}) + +minetest.register_craft({ + output = "default:shovel_bronze", + recipe = { + {"default:bronze_ingot"}, + {"group:stick"}, + {"group:stick"}, + } +}) + +minetest.register_craft({ + output = "default:shovel_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_diamond", + recipe = { + {"default:diamond"}, + {"group:stick"}, + {"group:stick"}, + } +}) + +minetest.register_craft({ + output = "default:shovel_nyan", + recipe = { + {"default:nyancat"}, + {"group:stick"}, + {"group:stick"}, + } +}) + +minetest.register_craft({ + output = "default:shovel_mese", + recipe = { + {"default:mese_crystal"}, + {"group:stick"}, + {"group:stick"}, + } +}) + + + +minetest.register_craft({ + output = "default:axe_wood", + recipe = { + {"group:wood", "group:wood"}, + {"group:wood", "group:stick"}, + {"", "group:stick"}, + } +}) + +minetest.register_craft({ + output = "default:axe_stone", + recipe = { + {"group:stone", "group:stone"}, + {"group:stone", "group:stick"}, + {"", "group:stick"}, + } +}) + +minetest.register_craft({ + output = "default:axe_steel", + recipe = { + {"default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "group:stick"}, + {"", "group:stick"}, + } +}) + +minetest.register_craft({ + output = "default:axe_bronze", + recipe = { + {"default:bronze_ingot", "default:bronze_ingot"}, + {"default:bronze_ingot", "group:stick"}, + {"", "group:stick"}, + } +}) + +minetest.register_craft({ + output = "default:axe_silver", + recipe = { + {"default:silver_ingot", "default:silver_ingot"}, + {"default:silver_ingot", "group:stick"}, + {"", "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"}, + {"default:gold_ingot", "group:stick"}, + {"", "group:stick"}, + } +}) + +minetest.register_craft({ + output = "default:axe_gold", + recipe = { + {"default:gold_ingot", "default:gold_ingot"}, + {"group:stick", "default:gold_ingot"}, + {"group:stick", ""}, + } +}) + +minetest.register_craft({ + output = "default:axe_diamond", + recipe = { + {"default:diamond", "default:diamond"}, + {"default:diamond", "group:stick"}, + {"", "group:stick"}, + } +}) + +minetest.register_craft({ + output = "default:axe_nyan", + recipe = { + {"default:nyancat", "default:nyancat"}, + {"default:nyancat", "group:stick"}, + {"", "group:stick"}, + } +}) + +minetest.register_craft({ + output = "default:axe_nyan", + recipe = { + {"default:nyancat", "default:nyancat"}, + {"group:stick", "default:nyancat"}, + {"group:stick", ""}, + } +}) + +minetest.register_craft({ + output = "default:axe_mese", + recipe = { + {"default:mese_crystal", "default:mese_crystal"}, + {"default:mese_crystal", "group:stick"}, + {"", "group:stick"}, + } +}) + + + +minetest.register_craft({ + output = "default:sword_wood", + recipe = { + {"group:wood"}, + {"group:wood"}, + {"group:stick"}, + } +}) + +minetest.register_craft({ + output = "default:sword_stone", + recipe = { + {"group:stone"}, + {"group:stone"}, + {"group:stick"}, + } +}) + +minetest.register_craft({ + output = "default:sword_steel", + recipe = { + {"default:steel_ingot"}, + {"default:steel_ingot"}, + {"group:stick"}, + } +}) + +minetest.register_craft({ + output = "default:sword_bronze", + recipe = { + {"default:bronze_ingot"}, + {"default:bronze_ingot"}, + {"group:stick"}, + } +}) + +minetest.register_craft({ + output = "default:sword_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_diamond", + recipe = { + {"default:diamond"}, + {"default:diamond"}, + {"group:stick"}, + } +}) + +minetest.register_craft({ + output = "default:sword_nyan", + recipe = { + {"default:nyancat"}, + {"default:nyancat"}, + {"group:stick"}, + } +}) + +minetest.register_craft({ + output = "default:sword_mese", + recipe = { + {"default:mese_crystal"}, + {"default:mese_crystal"}, + {"group:stick"}, + } +}) + + + +minetest.register_craft({ + output = "default:knife_silver", + recipe = { + {"default:silver_ingot"}, + {"group:stick"}, + } +}) + + + +minetest.register_craft({ + output = "default:rail 16", + recipe = { + {"default:steel_ingot", "group:stick", "default:steel_ingot"}, + {"default:steel_ingot", "group:stick", "default:steel_ingot"}, + {"default:steel_ingot", "group:stick", "default:steel_ingot"}, + } +}) + +minetest.register_craft({ + output = "default:chest", + recipe = { + {"group:wood", "group:wood", "group:wood"}, + {"group:wood", " ", "group:wood"}, + {"group:wood", "group:wood", "group:wood"}, + } +}) + +minetest.register_craft({ + output = "default:chest_locked", + recipe = { + {"group:wood", "group:wood", "group:wood"}, + {"group:wood", "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 = { + {"group:stone", "group:stone", "group:stone"}, + {"group:stone", " ", "group:stone"}, + {"group:stone", "group:stone", "group:stone"}, + } +}) + +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:copper_ingot", "default:tin_ingot"}, +}) + +minetest.register_craft({ + output = "default:coalblock", + recipe = { + {"default:coal_lump", "default:coal_lump", "default:coal_lump"}, + {"default:coal_lump", "default:coal_lump", "default:coal_lump"}, + {"default:coal_lump", "default:coal_lump", "default:coal_lump"}, + } +}) + +minetest.register_craft({ + output = "default:coal_lump 9", + recipe = {{"default:coalblock"},} +}) + +minetest.register_craft({ + output = "default:steelblock", + recipe = { + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + } +}) + +minetest.register_craft({ + output = "default:steel_ingot 9", + recipe = {{"default:steelblock"},} +}) + +minetest.register_craft({ + output = "default: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:copperblock", + recipe = { + {"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"}, + {"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"}, + {"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"}, + } +}) + +minetest.register_craft({ + output = "default:copper_ingot 9", + recipe = {{"default:copperblock"},} +}) + +minetest.register_craft({ + output = "default:bronzeblock", + recipe = { + {"default:bronze_ingot", "default:bronze_ingot", "default:bronze_ingot"}, + {"default:bronze_ingot", "default:bronze_ingot", "default:bronze_ingot"}, + {"default:bronze_ingot", "default:bronze_ingot", "default:bronze_ingot"}, + } +}) + +minetest.register_craft({ + output = "default:bronze_ingot 9", + recipe = {{"default:bronzeblock"},} +}) + +minetest.register_craft({ + output = "default: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 = { + {"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"}, + {"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"}, + {"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"}, + } +}) + +minetest.register_craft({ + output = "default:gold_ingot 9", + recipe = {{"default:goldblock"},} +}) + +minetest.register_craft({ + output = "default:diamondblock", + recipe = { + {"default:diamond", "default:diamond", "default:diamond"}, + {"default:diamond", "default:diamond", "default:diamond"}, + {"default:diamond", "default:diamond", "default:diamond"}, + } +}) + +minetest.register_craft({ + output = "default:diamond 9", + recipe = {{"default:diamondblock"},} +}) + +minetest.register_craft({ + output = "default:sandstone 2", + recipe = { + {"default:sand", "default:sand"}, + {"default:sand", "default:sand"}, + } +}) + +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:sandstonebrick 4", + recipe = { + {"default:sandstone", "default:sandstone"}, + {"default:sandstone", "default:sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:clay", + recipe = { + {"default:clay_lump", "default:clay_lump", "default:clay_lump"}, + {"default:clay_lump", "default:clay_lump", "default:clay_lump"}, + {"default:clay_lump", "default:clay_lump", "default:clay_lump"}, + } +}) + +minetest.register_craft({ + output = "default:brick", + recipe = { + {"default:clay_brick", "default:clay_brick", "default:clay_brick"}, + {"default:clay_brick", "default:clay_brick", "default:clay_brick"}, + {"default:clay_brick", "default:clay_brick", "default:clay_brick"}, + } +}) + +minetest.register_craft({ + output = "default:clay_lump 9", + recipe = {{"default:clay"},} +}) + +minetest.register_craft({ + output = "default:clay_brick 9", + recipe = {{"default:brick"},} +}) + +minetest.register_craft({ + type = "shapeless", + output = "default:paper 4", + recipe = {"default:papyrus", "default:papyrus", "default:papyrus"}, +}) + +minetest.register_craft({ + type = "shapeless", + output = "default:book", + recipe = {"default:paper", "default:paper", "default:paper"}, +}) + +minetest.register_craft({ + type = "shapeless", + output = "default:bookshelf", + recipe = {"group:wood", "group:wood", "group:wood", "default:book", "default:book", "default:book", "group:wood", "group:wood", "group:wood"}, +}) + +minetest.register_craft({ + output = "default:ladder 3", + recipe = { + {"group:stick", "", "group:stick"}, + {"group:stick", "group:stick", "group:stick"}, + {"group:stick", "", "group:stick"}, + } +}) + +minetest.register_craft({ + output = "maptools:superapple", + type = "shapeless", + recipe = {"default:apple", "default:mese_crystal_fragment", "default:mese_crystal_fragment"}, +}) + +minetest.register_craft({ + output = "default:mese", + recipe = { + {"default:mese_crystal", "default:mese_crystal", "default:mese_crystal"}, + {"default:mese_crystal", "default:mese_crystal", "default:mese_crystal"}, + {"default:mese_crystal", "default:mese_crystal", "default:mese_crystal"}, + } +}) + +minetest.register_craft({ + output = "default:mese_crystal 9", + recipe = {{"default:mese"}}, +}) + +minetest.register_craft({ + output = "default:mese_crystal_fragment 9", + recipe = {{"default:mese_crystal"}}, +}) + +minetest.register_craft({ + output = "default:obsidian_shard 9", + recipe = {{"default:obsidian"}}, +}) + +minetest.register_craft({ + output = "default:obsidian", + recipe = { + {"default:obsidian_shard", "default:obsidian_shard", "default:obsidian_shard"}, + {"default:obsidian_shard", "default:obsidian_shard", "default:obsidian_shard"}, + {"default:obsidian_shard", "default:obsidian_shard", "default:obsidian_shard"}, + } +}) + +minetest.register_craft({ + output = "default:stonebrick 4", + recipe = { + {"default:stone", "default:stone"}, + {"default:stone", "default:stone"}, + } +}) + +minetest.register_craft({ + output = "default:desert_stonebrick 4", + recipe = { + {"default:desert_stone", "default:desert_stone"}, + {"default:desert_stone", "default:desert_stone"}, + } +}) + +minetest.register_craft({ + output = "default:snowblock", + recipe = { + {"default:snow", "default:snow"}, + {"default:snow", "default:snow"}, + } +}) + +minetest.register_craft({ + output = "default:snow 4", + recipe = {{"default:snowblock"},} +}) + +minetest.register_craft({ + type = "shapeless", + output = "dye:dark_grey 4", + recipe = {"default:coal_lump"}, +}) + +minetest.register_craft({ -- Tool repair (combine 2 tools of the same type in the crafting grid): + type = "toolrepair", additional_wear = -0.15, +}) + +-- Cooking recipes: + +minetest.register_craft({ + type = "cooking", output = "default:glass", recipe = "group:sand", +}) + +minetest.register_craft({ + type = "cooking", output = "default:obsidian_glass", recipe = "default:obsidian_shard", +}) + +minetest.register_craft({ + type = "cooking", output = "default:stone", recipe = "default:cobble", +}) + +minetest.register_craft({ + type = "cooking", output = "default:desert_stone", recipe = "default:desert_cobble", +}) + +minetest.register_craft({ + type = "cooking", output = "default:steel_ingot", recipe = "default:iron_lump", +}) + +minetest.register_craft({ + type = "cooking", output = "default:tin_ingot", recipe = "default:tin_lump", +}) + +minetest.register_craft({ + type = "cooking", output = "default:copper_ingot", recipe = "default:copper_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", +}) + +minetest.register_craft({ + type = "cooking", output = "default:clay_brick", recipe = "default:clay_lump", +}) + +minetest.register_craft({ + type = "cooking", output = "default:clay_burned", recipe = "default:clay", +}) + +-- Fuel: + +minetest.register_craft({ + type = "fuel", recipe = "group:tree", burntime = 40, +}) + +minetest.register_craft({ + type = "fuel", recipe = "group:wood", burntime = 10, +}) + +minetest.register_craft({ + type = "fuel", recipe = "group:stick", burntime = 1, +}) + +minetest.register_craft({ + type = "fuel", recipe = "default:junglegrass", burntime = 5, +}) + +minetest.register_craft({ + type = "fuel", recipe = "group:leaves", burntime = 4, +}) + +minetest.register_craft({ + type = "fuel", 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, +}) + +minetest.register_craft({ + type = "fuel", recipe = "default:fence_wood", burntime = 4, +}) + +minetest.register_craft({ + type = "fuel", recipe = "default:ladder", burntime = 3, +}) + +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", burntime = 15, +}) + +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 = "default:sapling", burntime = 10, +}) + +minetest.register_craft({ + type = "fuel", recipe = "default:apple", burntime = 5, +}) + +minetest.register_craft({ + type = "fuel", recipe = "default:coal_lump", burntime = 40, +}) + +minetest.register_craft({ + type = "fuel", recipe = "default:coalblock", burntime = 370, +}) + +minetest.register_craft({ + type = "fuel", recipe = "default:junglesapling", burntime = 10, +}) + +minetest.register_craft({ + type = "fuel", recipe = "default:grass_1", burntime = 3, +}) diff --git a/minetestforfun_game/mods/default/craftitems.lua b/minetestforfun_game/mods/default/craftitems.lua new file mode 100755 index 00000000..b0482a80 --- /dev/null +++ b/minetestforfun_game/mods/default/craftitems.lua @@ -0,0 +1,141 @@ +-- mods/default/craftitems.lua + +minetest.register_craftitem("default:stick", { + description = "Stick", + stack_max = 1000, + inventory_image = "default_stick.png", + wield_image = "default_stick.png^[transformR90", + groups = {stick = 1}, +}) + +minetest.register_craftitem("default:paper", { + description = "Paper", + wield_scale = {x = 1, y = 1, z = 0.25}, + inventory_image = "default_paper.png", +}) + +minetest.register_craftitem("default:book", { + description = "Book", + inventory_image = "default_book.png", +}) + +minetest.register_craftitem("default:coal_lump", { + description = "Coal Lump", + wield_scale = {x = 1, y = 1, z = 2}, + inventory_image = "default_coal_lump.png", +}) + +minetest.register_craftitem("default:iron_lump", { + description = "Iron Lump", + wield_scale = {x = 1, y = 1, z = 2}, + inventory_image = "default_iron_lump.png", + groups = {ingot_lump = 1}, +}) + +minetest.register_craftitem("default:tin_lump", { + description = "Tin Lump", + wield_scale = {x = 1, y = 1, z = 2}, + inventory_image = "default_tin_lump.png", + groups = {ingot_lump = 1}, +}) + +minetest.register_craftitem("default:copper_lump", { + description = "Copper Lump", + wield_scale = {x = 1, y = 1, z = 2}, + inventory_image = "default_copper_lump.png", + groups = {ingot_lump = 1}, +}) + +minetest.register_craftitem("default:mese_crystal", { + description = "Mese Crystal", + inventory_image = "default_mese_crystal.png", +}) + +minetest.register_craftitem("default:silver_lump", { + description = "Silver Lump", + wield_scale = {x = 1, y = 1, z = 2}, + inventory_image = "default_silver_lump.png", + groups = {ingot_lump = 1}, +}) + +minetest.register_craftitem("default:gold_lump", { + description = "Gold Lump", + wield_scale = {x = 1, y = 1, z = 2}, + inventory_image = "default_gold_lump.png", + groups = {ingot_lump = 1}, +}) + +minetest.register_craftitem("default:diamond", { + description = "Diamond", + inventory_image = "default_diamond.png", +}) + +minetest.register_craftitem("default:clay_lump", { + description = "Clay Lump", + stack_max = 200, + wield_scale = {x = 1, y = 1, z = 2}, + inventory_image = "default_clay_lump.png", +}) + +minetest.register_craftitem("default:steel_ingot", { + description = "Steel Ingot", + wield_scale = {x = 1, y = 1, z = 2}, + inventory_image = "default_steel_ingot.png", + groups = {ingot = 1}, +}) + +minetest.register_craftitem("default:tin_ingot", { + description = "Tin Ingot", + wield_scale = {x = 1, y = 1, z = 2}, + inventory_image = "default_tin_ingot.png", + groups = {ingot = 1}, +}) + +minetest.register_craftitem("default:copper_ingot", { + description = "Copper Ingot", + wield_scale = {x = 1, y = 1, z = 2}, + inventory_image = "default_copper_ingot.png", + groups = {ingot = 1}, +}) + +minetest.register_craftitem("default:bronze_ingot", { + description = "Bronze Ingot", + wield_scale = {x = 1, y = 1, z = 2}, + inventory_image = "default_bronze_ingot.png", + groups = {ingot = 1}, +}) + +minetest.register_craftitem("default:silver_ingot", { + description = "Silver Ingot", + wield_scale = {x = 1, y = 1, z = 2}, + inventory_image = "default_silver_ingot.png", + groups = {ingot = 1}, +}) + +minetest.register_craftitem("default:gold_ingot", { + description = "Gold Ingot", + wield_scale = {x = 1, y = 1, z = 2}, + inventory_image = "default_gold_ingot.png", + groups = {ingot = 1}, +}) + +minetest.register_craftitem("default:mese_crystal_fragment", { + description = "Mese Crystal Fragment", + inventory_image = "default_mese_crystal_fragment.png", +}) + +minetest.register_craftitem("default:clay_brick", { + description = "Clay Brick", + wield_scale = {x = 1, y = 1, z = 2}, + 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", +}) diff --git a/minetestforfun_game/mods/default/functions.lua b/minetestforfun_game/mods/default/functions.lua new file mode 100644 index 00000000..80f3374a --- /dev/null +++ b/minetestforfun_game/mods/default/functions.lua @@ -0,0 +1,422 @@ +-- mods/default/functions.lua + +-- +-- Sounds +-- + +function default.node_sound_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_hard_footstep", gain = 0.6} + table.dig = table.dig or + {name = "default_hard_footstep", gain = 0.7} + table.dug = table.dug or + {name = "default_hard_footstep", gain = 0.8} + table.place = table.place or + {name = "default_hard_footstep", gain = 0.8} + return table +end + +function default.node_sound_stone_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_hard_footstep", gain = 0.6} + table.dig = table.dig or + {name = "default_hard_footstep", gain = 0.7} + table.dug = table.dug or + {name = "default_hard_footstep", gain = 0.8} + table.place = table.place or + {name = "default_hard_footstep", gain = 0.8} + 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.575} + table.dig = table.dig or + {name = "default_metal_footstep", gain = 0.65} + table.dug = table.dug or + {name = "default_metal_footstep", gain = 0.8} + table.place = table.place or + {name = "default_metal_footstep", gain = 0.8} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_dirt_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_dirt_footstep", gain = 0.8} + table.dig = table.dig or + {name = "default_dirt_footstep", gain = 0.9} + table.dug = table.dug or + {name = "default_dirt_footstep", gain = 1.0} + table.place = table.place or + {name = "default_dirt_footstep", 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_dirt_footstep", gain = 0.8} + table.dig = table.dig or + {name = "default_dirt_footstep", gain = 0.9} + table.dug = table.dug or + {name = "default_dirt_footstep", gain = 1.0} + table.place = table.place or + {name = "default_dirt_footstep", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_sand_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_sand_footstep", gain = 0.6} + table.dig = table.dig or + {name = "default_sand_footstep", gain = 0.7} + table.dug = table.dug or + {name = "default_sand_footstep", gain = 0.8} + table.place = table.place or + {name = "default_sand_footstep", gain = 0.8} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_wood_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_wood_footstep", gain = 0.625} + table.dig = table.dig or + {name = "default_wood_footstep", gain = 0.7} + table.dug = table.dug or + {name = "default_wood_footstep", gain = 0.8} + table.place = table.place or + {name = "default_wood_footstep", gain = 0.8} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_leaves_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_grass_footstep", gain = 0.6} + table.dig = table.dig or + {name = "default_grass_footstep", gain = 0.7} + table.dug = table.dug or + {name = "default_snow_footstep", gain = 0.8} + table.place = table.place or + {name = "default_snow_footstep", gain = 0.8} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_glass_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_hard_footstep", gain = 0.55} + table.dig = table.dig or + {name = "default_hard_footstep", gain = 0.65} + table.dug = table.dug or + {name = "default_break_glass", gain = 0.8} + table.place = table.place or + {name = "default_hard_footstep", gain = 0.75} + 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, " .. p .. ", " .. node) +end +minetest.register_globalstep(on_step) + +function on_placenode(p, node) + -- print("on_placenode, " .. p .. ", " .. node) +end +minetest.register_on_placenode(on_placenode) + +function on_dignode(p, node) + -- print("on_dignode, " .. p .. ", " .. node) +end +minetest.register_on_dignode(on_dignode) + +function on_punchnode(p, node) + -- print("on_punchnode, " .. p .. ", " .. node) +end +minetest.register_on_punchnode(on_punchnode) + +-- +-- Lava cooling +-- + +local function cool_wf_vm(pos, node1, node2) + local t1 = os.clock() + local minp = vector.subtract(pos, 10) + local maxp = vector.add(pos, 10) + local manip = minetest.get_voxel_manip() + local emerged_pos1, emerged_pos2 = manip:read_from_map(minp, maxp) + local area = VoxelArea:new({MinEdge=emerged_pos1, MaxEdge=emerged_pos2}) + local nodes = manip:get_data() + + local stone = minetest.get_content_id(node2) + local lava = minetest.get_content_id(node1) + + for i in area:iterp(minp, maxp) do + local p = area:position(i) + if nodes[i] == lava and minetest.find_node_near(p, 1, {"group:water"}) then + nodes[i] = stone + end + end + + manip:set_data(nodes) + manip:write_to_map() + -- minetest.log("action", "Lava cooling happened at (" .. pos.x .. "," .. pos.y .. "," .. pos.z .. ").") + local t1 = os.clock() + manip:update_map() + -- minetest.log("action", string.format("Lava cooling updated the map after ca. %.2fs.", os.clock() - t1)) +end + +local del1 = 0 +local count = 0 + +default.cool_lava_source = function(pos) + local del2 = tonumber(os.clock()) + if del2-del1 < 0.1 + and count > 1 then + cool_wf_vm(pos, "default:lava_source", "default:obsidian_cooled") + count = 0 + else + minetest.set_node(pos, {name = "default:obsidian_cooled"}) + minetest.sound_play("default_cool_lava", {pos = pos, gain = 0.2}) + if del2-del1 < 0.1 then + count = count + 1 + end + end + del1 = del2 +end + +default.cool_lava_flowing = function(pos) + local del2 = tonumber(os.clock()) + if del2-del1 < 0.1 + and count > 1 then + cool_wf_vm(pos, "default:lava_flowing", "default:cobble_cooled") + count = 0 + else + minetest.set_node(pos, {name = "default:cobble_cooled"}) + minetest.sound_play("default_cool_lava", {pos = pos, gain = 0.2}) + if del2-del1 < 0.1 then + count = count + 1 + end + end + del1 = del2 +end + +minetest.register_abm({ + nodenames = {"default:lava_flowing"}, + neighbors = {"group:water"}, + interval = 2, + 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) + end, +}) + +minetest.register_abm({ + nodenames = {"default:lava_source"}, + neighbors = {"group:water"}, + interval = 2, + 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, +}) + +-- +-- Papyrus and cactus growing +-- + +minetest.register_abm({ + nodenames = {"default:cactus"}, + neighbors = {"group:sand"}, + interval = 30, + chance = 50, + 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, +}) + +minetest.register_abm({ + nodenames = {"default:papyrus"}, + neighbors = {"default:dirt", "default:dirt_with_grass", "default:dirt_with_snow", "default:sand", "default:desert_sand"}, + interval = 30, + chance = 30, + 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" + or name == "default:dirt_with_snow" + or name == "default:sand" + or name == "default:desert_sand" 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, +}) + +function default.dig_up(pos, node, digger) + if digger == nil then return end + local np = {x = pos.x, y = pos.y + 1, z = pos.z} + local nn = minetest.get_node(np) + if nn.name == node.name then + minetest.node_dig(np, nn, digger) + end +end + +-- +-- Leafdecay +-- + +-- To enable leaf decay for a node, add it to the "leafdecay" group. +-- +-- The rating of the group determines how far from a node in the group "tree" +-- the node can be without decaying. +-- +-- If param2 of the node is ~= 0, the node will always be preserved. Thus, if +-- the player places a node of that kind, you will want to set param2= 1 or so. +-- +-- If the node is in the leafdecay_drop group then the it will always be dropped +-- as an item + +if minetest.setting_getbool("leaf_decay") ~= false then -- “If not defined or set to true then” + +default.leafdecay_trunk_cache = {} +default.leafdecay_enable_cache = true +-- Spread the load of finding trunks +default.leafdecay_trunk_find_allow_accumulator = 0 + +minetest.register_globalstep(function(dtime) + local finds_per_second = 5000 + default.leafdecay_trunk_find_allow_accumulator = + math.floor(dtime * finds_per_second) +end) + +minetest.register_abm({ + nodenames = {"group:leafdecay"}, + neighbors = {"air", "group:liquid"}, + interval = 1, -- A low interval and a high inverse chance spreads the load. + chance = 2, + + action = function(p0, node, _, _) + -- print("leafdecay ABM at "..p0.x..", "..p0.y..", "..p0.z..")") + local do_preserve = false + local d = minetest.registered_nodes[node.name].groups.leafdecay + if not d or d == 0 then + -- print("not groups.leafdecay") + return + end + local n0 = minetest.get_node(p0) + if n0.param2 ~= 0 then + -- print("param2 ~= 0") + return + end + local p0_hash = nil + if default.leafdecay_enable_cache then + p0_hash = minetest.hash_node_position(p0) + local trunkp = default.leafdecay_trunk_cache[p0_hash] + if trunkp then + local n = minetest.get_node(trunkp) + local reg = minetest.registered_nodes[n.name] + -- Assume ignore is a trunk, to make the thing work at the border of the active area: + if n.name == "ignore" or (reg and reg.groups.tree and reg.groups.tree ~= 0) then + -- print("Cached trunk still exists.") + return + end + -- print("Cached trunk is invalid.") + -- Cache is invalid: + table.remove(default.leafdecay_trunk_cache, p0_hash) + end + end + if default.leafdecay_trunk_find_allow_accumulator <= 0 then + return + end + default.leafdecay_trunk_find_allow_accumulator = + default.leafdecay_trunk_find_allow_accumulator - 1 + -- Assume ignore is a trunk, to make the thing work at the border of the active area: + local p1 = minetest.find_node_near(p0, d, {"ignore", "group:tree"}) + if p1 then + do_preserve = true + if default.leafdecay_enable_cache then + -- print("Caching trunk.") + -- Cache the trunk: + default.leafdecay_trunk_cache[p0_hash] = p1 + end + end + if not do_preserve then + -- Drop stuff other than the node itself: + itemstacks = minetest.get_node_drops(n0.name) + for _, itemname in ipairs(itemstacks) do + if minetest.get_item_group(n0.name, "leafdecay_drop") ~= 0 + or itemname ~= n0.name then + minetest.add_item(p0, itemname) + end + end + minetest.remove_node(p0) + -- minetest.log("action", n0.name .. " decayed at " .. minetest.pos_to_string(p0) .. ".") + nodeupdate(p0) + end + end +}) + +end -- Ends: if minetest.setting_getbool("leaf_decay") ~= false diff --git a/minetestforfun_game/mods/default/init.lua b/minetestforfun_game/mods/default/init.lua new file mode 100644 index 00000000..0bb0a077 --- /dev/null +++ b/minetestforfun_game/mods/default/init.lua @@ -0,0 +1,142 @@ +-- Minetest 0.4 mod: default +-- See README.txt for licensing and other information. + +default = {} -- Definitions made by this mod are usable by all mods. + +-- The API documentation in here was moved into doc/lua_api.txt. + +WATER_ALPHA = 160 +WATER_VISC = 1 +LAVA_VISC = 3 -- Slower movement in lava. +LIGHT_MAX = 14 -- 15 is reserved for sunlight. + +-- GUI related stuff: + +gui_slots = "listcolors[#606060AA;#808080;#101010;#202020;#FFF]" + +function default.get_hotbar_bg(x,y) + local out = "" + for i= 0, 7, 1 do + out = out .."image[" .. x + i .. "," .. y .. ";1,1;gui_hb_bg.png]" + end + return out +end + +gui_suvival_form = "size[8,8.5]".. + gui_slots .. + "list[current_player;main; 0, 4.25; 8, 4; ]" .. + "list[current_player;craft; 1.75, 0.5; 3, 3; ]" .. + "list[current_player;craftpreview; 5.75, 1.5; 1, 1; ]" .. + default.get_hotbar_bg(0, 4.25) .. + default.get_hotbar_bg(0, 5.25) + +-- Load files: +dofile(minetest.get_modpath("default").."/functions.lua") +dofile(minetest.get_modpath("default").."/commands.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") + +-- Code below by Casimir. + +local function count_items() + local i = 0 + local number = 0 + for name, item in pairs(minetest.registered_items) do + if (name and name ~= "") then + number = number + 1 + end + i = i + 1 + end + minetest.log("action", "There are " .. number .. " registered nodes, items and tools.") +end + +local function player_join_sounds() + minetest.register_on_joinplayer(function() + minetest.sound_play("player_join", {gain = 0.75}) + end) +end + +local function player_leave_sounds() + minetest.register_on_leaveplayer(function() + minetest.sound_play("player_leave", {gain = 1}) + end) +end + +minetest.after(1, count_items) +minetest.after(5, player_join_sounds) +minetest.after(5, player_leave_sounds) + +hotbar_size = minetest.setting_get("hotbar_size") or 16 + +minetest.register_on_joinplayer(function(player) + player:set_physics_override({ + sneak_glitch = false, -- Climable blocks are quite fast in Carbone. + }) + player:hud_set_hotbar_itemcount(hotbar_size) +end) + +minetest.register_on_respawnplayer(function(player) + player:set_eye_offset({x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0}) + local pos = player:getpos() + -- minetest.sound_play("player_join", {pos = pos, gain = 0.5}) +end) + +minetest.register_on_item_eat(function(hp_change, replace_with_item, itemstack, user, pointed_thing) + if user:get_hp() >= 20 then return itemstack end + local pos = user:getpos() + minetest.sound_play("health_gain", {pos = pos, gain = 0.4}) +end) + +minetest.log("action", "") -- Empty line. +minetest.log("action", "") -- Empty line. + +if minetest.setting_getbool("creative_mode") then + minetest.log("action", "Creative mode is enabled.") + else + minetest.log("action", "Creative mode is disabled.") +end + +if minetest.setting_getbool("enable_damage") then + minetest.log("action", "Damage is enabled.") + else + minetest.log("action", "Damage is disabled.") +end + +if minetest.setting_getbool("enable_pvp") then + minetest.log("action", "PvP is enabled.") + else + minetest.log("action", "PvP is disabled.") +end + +if not minetest.is_singleplayer() and minetest.setting_getbool("server_announce") then + minetest.log("action", "") -- Empty line. + minetest.log("action", "Server name: " .. minetest.setting_get("server_name") or "(none)") + minetest.log("action", "Server description: " .. minetest.setting_get("server_description") or "(none)") + minetest.log("action", "Server URL: " .. minetest.setting_get("server_address") or "(none)") + minetest.log("action", "MOTD: " .. minetest.setting_get("motd") or "(none)") + minetest.log("action", "Maximum users: " .. minetest.setting_get("max_users") or 15) +end + +minetest.log("action", "") -- Empty line. +minetest.log("action", "") -- Empty line. + +-- Reserved slot handling: + +minetest.register_on_prejoinplayer(function(name, ip) + if #minetest.get_connected_players() >= (minetest.setting_get("max_users") - 2) + and not minetest.check_player_privs(name, {server = true}) then + return "Sorry, 2 slots are reserved for administrators." + end +end) + + +if minetest.setting_getbool("log_mods") then + -- Highlight the default mod in the mod loading logs: + minetest.log("action", "Carbone: * [default] loaded.") +end diff --git a/minetestforfun_game/mods/default/mapgen.lua b/minetestforfun_game/mods/default/mapgen.lua new file mode 100644 index 00000000..87f9d56d --- /dev/null +++ b/minetestforfun_game/mods/default/mapgen.lua @@ -0,0 +1,795 @@ +-- mods/default/mapgen.lua + +-- +-- Aliases for map generator outputs +-- + +minetest.register_alias("mapgen_stone", "default:stone") +minetest.register_alias("mapgen_tree", "default:tree") +minetest.register_alias("mapgen_leaves", "default:leaves") +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_stair_cobble", "stairs:stair_cobble") + +-- +-- Ore generation +-- + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 8, + clust_size = 3, + height_min = -30000, + height_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, + height_min = 0, + height_max = 64, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 24 * 24 * 24, + clust_num_ores = 27, + clust_size = 6, + height_min = -30000, + height_max = 0, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 11 * 11 * 11, + clust_num_ores = 3, + clust_size = 2, + height_min = -15, + height_max = 2, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 10 * 10 * 10, + clust_num_ores = 5, + clust_size = 3, + height_min = -63, + height_max = -16, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 5, + clust_size = 3, + height_min = -30000, + height_max = -64, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 25 * 25 * 25, + clust_num_ores = 27, + clust_size = 6, + height_min = -30000, + height_max = -64, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mese", + wherein = "default:stone", + clust_scarcity = 18 * 18 * 18, + clust_num_ores = 3, + clust_size = 2, + height_min = -255, + height_max = -64, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mese", + wherein = "default:stone", + clust_scarcity = 14 * 14 * 14, + clust_num_ores = 5, + clust_size = 3, + height_min = -1024, + height_max = -256, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:mese", + wherein = "default:stone", + clust_scarcity = 20 * 20 * 20, + clust_num_ores = 3, + clust_size = 2, + height_min = -30000, + height_max = -1024, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:mese", + wherein = "default:stone", + clust_scarcity = 40 * 40 * 40, + clust_num_ores = 3, + clust_size = 2, + height_min = -1024, + height_max = 64, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:meze", + wherein = "default:stone", + clust_scarcity = 40 * 40 * 40, + clust_num_ores = 3, + clust_size = 2, + height_min = 0, + height_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, + height_min = -1024, + height_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, + height_min = 0, + height_max = 64, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "maptools:superapple", + wherein = "default:apple", + clust_scarcity = 6 * 6 * 6, + clust_num_ores = 5, + clust_size = 2, + height_min = 0, + height_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, + height_min = 0, + height_max = 64, +}) + +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, + height_min = -30000, + height_max = 0, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_silver", + wherein = "default:stone", + clust_scarcity = 14 * 14 * 14, + clust_num_ores = 3, + clust_size = 2, + height_min = -127, + height_max = -16, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_silver", + wherein = "default:stone", + clust_scarcity = 12 * 12 * 12, + clust_num_ores = 5, + clust_size = 3, + height_min = -30000, + height_max = -128, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_gold", + wherein = "default:stone", + clust_scarcity = 15 * 15 * 15, + clust_num_ores = 3, + clust_size = 2, + height_min = -255, + height_max = -64, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_gold", + wherein = "default:stone", + clust_scarcity = 13 * 13 * 13, + clust_num_ores = 5, + clust_size = 3, + height_min = -30000, + height_max = -256, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 17 * 17 * 17, + clust_num_ores = 4, + clust_size = 3, + height_min = -255, + height_max = -128, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 15 * 15 * 15, + clust_num_ores = 4, + clust_size = 3, + height_min = -30000, + 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:desert_stone_with_copper", + wherein = "default:desert_stone", + clust_scarcity = 11 * 11 * 11, + clust_num_ores = 6, + clust_size = 3, + height_min = 0, + height_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, + height_min = -30000, + height_max = -64, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_tin", + wherein = "default:stone", + clust_scarcity = 15 * 15 * 15, + clust_num_ores = 5, + clust_size = 3, + height_min = -30000, + height_max = 64, + 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, + height_max = 64, + height_min = -30000, +}) + +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, + height_max = 64, + height_min = -30000, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 60 * 60 * 60, + clust_num_ores = 64, + clust_size = 5, + height_max = -5, + height_min = -30000, +}) + +if minetest.setting_get("mg_name") == "indev" then + -- Floatlands and high mountains springs: + minetest.register_ore({ + ore_type = "scatter", + ore = "default:water_source", + ore_param2 = 128, + wherein = "default:stone", + clust_scarcity = 40 *40 *40, + clust_num_ores = 8, + clust_size = 3, + height_min = 100, + height_max = 30000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:lava_source", + ore_param2 = 128, + wherein = "default:stone", + clust_scarcity = 50 * 50 * 50, + clust_num_ores = 5, + clust_size = 2, + height_min = 10000, + height_max = 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_size = 5, + height_min = 500, + height_max = 30000, + }) +end + +-- Underground springs: + +minetest.register_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, + height_min = -10000, + height_max = -10, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:lava_source", + ore_param2 = 128, + wherein = "default:stone", + clust_scarcity = 32 * 32 * 32, + clust_num_ores = 5, + clust_size = 2, + height_min = -30000, + height_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, + height_max = 64, + height_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, + height_max = 64, + height_min = -30000, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:sand", + wherein = "default:stone", + clust_scarcity = 24 * 24 * 24, + clust_num_ores = 32, + clust_size = 4, + height_max = 64, + height_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, + height_max = 64, + height_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, + height_max = 64, + height_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, + height_max = 64, + height_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_max = 4, + height_min = -8, +}) + +-- Air rooms in dirt: + +minetest.register_ore({ + ore_type = "scatter", + ore = "air", + wherein = "default:dirt", + clust_scarcity = 24 * 24 * 24, + clust_num_ores = 200, + clust_size = 7, + height_min = -30000, + height_max = 64, +}) + +-- Acid lakes in gravel: + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:acid_source", + wherein = "default:gravel", + clust_scarcity = 20 * 20 * 20, + clust_num_ores = 64, + clust_size = 5, + height_min = -30000, + height_max = 64, +}) + +-- Ice pools in stone: + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:ice", + wherein = "default:stone", + clust_scarcity = 32 * 32 * 32, + clust_num_ores = 200, + clust_size = 6, + height_min = -30000, + height_max = 64, +}) + + +function default.generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, chunk_size, ore_per_chunk, height_min, height_max) + minetest.log("action", "WARNING: default.generate_ore is deprecated") + + if maxp.y < height_min or minp.y > height_max then + return + end + local y_min = math.max(minp.y, height_min) + local y_max = math.min(maxp.y, height_max) + if chunk_size >= y_max - y_min + 1 then + return + end + local volume = (maxp.x-minp.x+1)*(y_max-y_min+1)*(maxp.z-minp.z+1) + local 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") +end + +function default.make_papyrus(pos, size) + for y = 0, size - 1 do + local p = {x= pos.x, y = pos.y + y, z= pos.z} + local nn = minetest.get_node(p).name + if minetest.registered_nodes[nn] and + minetest.registered_nodes[nn].buildable_to then + minetest.set_node(p, {name = "default:papyrus"}) + else + return + end + end +end + +function default.make_cactus(pos, size) + for y = 0, size-1 do + local p = {x= pos.x, y = pos.y + y, z= pos.z} + local nn = minetest.get_node(p).name + if minetest.registered_nodes[nn] and + minetest.registered_nodes[nn].buildable_to then + minetest.set_node(p, {name = "default:cactus"}) + else + return + end + end +end + +-- facedir: 0/1/2/3 (head node facedir value) +-- length: length of rainbow tail +function default.make_nyancat(pos, facedir, length) + local tailvec = {x= 0, y = 0, z= 0} + if facedir == 0 then + tailvec.z = 1 + elseif facedir == 1 then + tailvec.x = 1 + elseif facedir == 2 then + tailvec.z = -1 + elseif facedir == 3 then + tailvec.x = -1 + else + --print("default.make_nyancat(): Invalid facedir: "+dump(facedir)) + facedir = 0 + tailvec.z = 1 + end + local p = {x= pos.x, y = pos.y, z= pos.z} + minetest.set_node(p, {name = "default:nyancat", param2 = facedir}) + -- minetest.log("action", "Generated a nyan cat at " .. minetest.pos_to_string(p) .. ".") + for i= 1,length do + p.x = p.x + tailvec.x + p.z = p.z + tailvec.z + minetest.set_node(p, {name = "default:nyancat_rainbow", param2 = facedir}) + end +end + +function generate_nyancats(seed, minp, maxp) + local height_min = -30000 + local height_max = 30000 + 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 / (15 * 15 * 15)) + 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), 10) + end + end +end + +minetest.register_on_generated(function(minp, maxp, seed) + if maxp.y >= 2 and minp.y <= 0 then + -- Generate papyrus + local perlin1 = minetest.get_perlin(354, 3, 0.7, 100) + -- Assume X and Z lengths are equal + local divlen = 8 + local divs = (maxp.x-minp.x)/divlen+1; + for divx= 0, divs-1 do + for divz= 0, divs-1 do + local x0 = minp.x + math.floor((divx+0)*divlen) + local z0 = minp.z + math.floor((divz+0)*divlen) + local x1 = minp.x + math.floor((divx+1)*divlen) + local z1 = minp.z + math.floor((divz+1)*divlen) + -- Determine papyrus amount from perlin noise + local papyrus_amount = math.floor(perlin1:get2d({x=x0, y =z0}) * 45 - 20) + -- Find random positions for papyrus based on this random + local pr = PseudoRandom(seed+1) + for i= 0,papyrus_amount do + local x = 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}, 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}, 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) + diff --git a/minetestforfun_game/mods/default/models/character.blend b/minetestforfun_game/mods/default/models/character.blend new file mode 100755 index 00000000..34c56240 Binary files /dev/null and b/minetestforfun_game/mods/default/models/character.blend differ diff --git a/minetestforfun_game/mods/default/models/character.png b/minetestforfun_game/mods/default/models/character.png new file mode 100755 index 00000000..321f9fb2 Binary files /dev/null and b/minetestforfun_game/mods/default/models/character.png differ diff --git a/minetestforfun_game/mods/default/models/character.x b/minetestforfun_game/mods/default/models/character.x new file mode 100755 index 00000000..8326095b --- /dev/null +++ b/minetestforfun_game/mods/default/models/character.x @@ -0,0 +1,7457 @@ +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/minetestforfun_game/mods/default/nodes.lua b/minetestforfun_game/mods/default/nodes.lua new file mode 100644 index 00000000..f19e6cd8 --- /dev/null +++ b/minetestforfun_game/mods/default/nodes.lua @@ -0,0 +1,2377 @@ +-- mods/default/nodes.lua + +gui_slots = "listcolors[#606060AA;#808080;#101010;#202020;#FFF]" + +minetest.register_node("default:stone", { + description = "Stone", + tiles = {"default_stone.png"}, + is_ground_content = true, + groups = {cracky = 3, stone = 1}, + drop = { + items = { + {items = {"default:cobble"}}, + {items = {"maptools:copper_coin"}, rarity = 30}, + }, + }, + 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 = {crumbly = 1, cracky = 3, stone = 1}, + drop = { + items = { + {items = {"default:desert_cobble"}}, + {items = {"maptools:copper_coin"}, rarity = 20}, + }, + }, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:stone_with_coal", { + description = "Coal Ore", + tiles = {"default_stone.png^default_mineral_coal.png"}, + is_ground_content = true, + groups = {cracky = 3}, + drop = { + 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: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(), +}) + +minetest.register_node("default:stone_with_iron", { + description = "Iron Ore", + tiles = {"default_stone.png^default_mineral_iron.png"}, + is_ground_content = true, + groups = {cracky = 3}, + drop = { + items = { + {items = {"default:cobble"}}, + {items = {"default:iron_lump"}}, + {items = {"maptools:copper_coin 2"}}, + }, + }, + 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 = 3}, + drop = { + items = { + {items = {"default:cobble"}}, + {items = {"default:copper_lump"}}, + {items = {"maptools:copper_coin 2"}}, + }, + }, + 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 2"}}, + }, + }, + sounds = default.node_sound_stone_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 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"}, + is_ground_content = true, + groups = {cracky = 3}, + drop = { + items = { + {items = {"default:cobble"}}, + {items = {"default:mese_crystal"}}, + {items = {"maptools:silver_coin 1"}}, + }, + }, + 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:stone_with_gold", { + description = "Gold Ore", + tiles = {"default_stone.png^default_mineral_gold.png"}, + is_ground_content = true, + groups = {cracky = 3}, + drop = { + items = { + {items = {"default:cobble"}}, + {items = {"default:gold_lump"}}, + {items = {"maptools:copper_coin 5"}}, + }, + }, + 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 = 3}, + drop = { + items = { + {items = {"default:cobble"}}, + {items = {"default:diamond"}}, + {items = {"maptools:silver_coin 1"}}, + }, + }, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:stonebrick", { + description = "Stone Brick", + tiles = {"default_stone_brick.png"}, + groups = {cracky = 2, stone = 1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_stonebrick", { + description = "Desert Stone Brick", + tiles = {"default_desert_stone_brick.png"}, + groups = {cracky = 2, stone = 1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:dirt_with_grass", { + description = "Dirt with Grass", + tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, + is_ground_content = true, + groups = {crumbly = 3, soil = 1}, + drop = { + items = { + {items = {"default:dirt"}}, + {items = {"maptools:copper_coin"}, rarity = 10}, + }, + }, + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_grass_footstep", gain = 0.8}, + }), +}) + +minetest.register_node("default:dirt_with_grass_footsteps", { + description = "Dirt with Grass and Footsteps", + tiles = {"default_grass_footsteps.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, + is_ground_content = true, + groups = {crumbly = 3, soil = 1, not_in_creative_inventory = 1}, + drop = { + items = { + {items = {"default:dirt"}}, + {items = {"maptools:copper_coin"}, rarity = 10}, + }, + }, + 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 = { + items = { + {items = {"default:dirt"}}, + {items = {"default:snow"}}, + {items = {"maptools:copper_coin"}, rarity = 10}, + }, + }, + sounds = default.node_sound_dirt_defaults({footstep = {name = "default_snow_footstep", gain = 0.625}}), +}) + +minetest.register_node("default:dirt", { + description = "Dirt", + tiles = {"default_dirt.png"}, + is_ground_content = true, + drop = { + items = { + {items = {"default:dirt"}}, + {items = {"maptools:copper_coin"}, rarity = 32}, + }, + }, + groups = {crumbly = 3, soil = 1}, + sounds = default.node_sound_dirt_defaults(), +}) + + +minetest.register_abm({ + nodenames = {"default:dirt"}, + interval = 30, + chance = 5, + 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 pos.y >= 0 + and (minetest.get_node_light(above) or 0) >= 12 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 = 30, + chance = 2, + 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, + drop = { + items = { + {items = {"default:sand"}}, + {items = {"maptools:copper_coin"}, rarity = 32}, + }, + }, + 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, + drop = { + items = { + {items = {"default:desert_sand"}}, + {items = {"maptools:copper_coin"}, rarity = 32}, + }, + }, + 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}, + drop = { + items = { + {items = {"default:gravel"}}, + {items = {"maptools:copper_coin"}, rarity = 16}, + }, + }, + sounds = default.node_sound_gravel_defaults(), +}) + +minetest.register_node("default:sandstone", { + description = "Sandstone", + tiles = {"default_sandstone.png"}, + is_ground_content = true, + groups = {crumbly = 1, cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:sandstonebrick", { + description = "Sandstone Brick", + tiles = {"default_sandstone_brick.png"}, + is_ground_content = true, + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:clay", { + description = "Clay", + tiles = {"default_clay.png"}, + is_ground_content = true, + groups = {crumbly = 3}, + drop = { + items = { + {items = {"default:clay_lump 8"}}, + {items = {"maptools:copper_coin"}}, + }, + }, + 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 = { + items = { + {items = {"default:clay_lump 8"}}, + {items = {"maptools:copper_coin"}}, + }, + }, + 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}, + drop = "default:clay_brick 9", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:tree", { + description = "Tree", + tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + drop = { + items = { + {items = {"default:tree"}}, + {items = {"maptools:copper_coin"}, rarity = 8}, + }, + }, + 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"}, + paramtype2 = "facedir", + is_ground_content = false, + drop = { + items = { + {items = {"default:jungletree"}}, + {items = {"maptools:copper_coin"}, rarity = 6}, + }, + }, + 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}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:jungleleaves", { + description = "Jungle Leaves", + drawtype = "glasslike", + tiles = {"default_jungleleaves.png"}, + paramtype = "light", + waving = 1, + is_ground_content = false, + walkable = false, + groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + { + -- Player will get sapling with 1/18 chance: + items = {"default:junglesapling"}, + rarity = 18, + }, + { + -- Player will get leaves only if he gets no saplings, this is because max_items is 1: + items = {"default:jungleleaves"}, + } + } + }, + sounds = default.node_sound_leaves_defaults(), + post_effect_color = {a = 180, r = 30, g = 50, b = 20}, +}) + +minetest.register_node("default:junglesapling", { + description = "Jungle Sapling", + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"default_junglesapling.png"}, + inventory_image = "default_junglesapling.png", + wield_image = "default_junglesapling.png", + paramtype = "light", + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} + }, + groups = {snappy = 3, flammable = 2, attached_node = 1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("default:junglegrass", { + description = "Jungle Grass", + drawtype = "plantlike", + 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, -0.4375, 0.5}, + }, +}) + +minetest.register_node("default:leaves", { + description = "Leaves", + drawtype = "allfaces_optional", + visual_scale = 1.3, + tiles = {"default_leaves.png"}, + paramtype = "light", + waving = 1, + walkable = false, + is_ground_content = false, + groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + { + -- Player will get sapling with 1/18 chance: + items = {"default:sapling"}, + rarity = 18, + }, + { + -- Player will get leaves only if he gets no saplings, this is because max_items is 1: + items = {"default:leaves"}, + } + } + }, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("default:cactus", { + description = "Cactus", + tiles = {"default_cactus_top.png", "default_cactus_top.png", "default_cactus_side.png"}, + paramtype2 = "facedir", + is_ground_content = true, + drop = { + items = { + {items = {"default:cactus"}}, + {items = {"maptools:copper_coin"}, rarity = 12}, + }, + }, + groups = {snappy = 1, choppy = 3, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node +}) + +minetest.register_node("default:papyrus", { + description = "Papyrus", + drawtype = "plantlike", + tiles = {"default_papyrus.png"}, + inventory_image = "default_papyrus.png", + wield_image = "default_papyrus.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.375, -0.5, -0.375, 0.375, 0.5, 0.375} + }, + 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;]" .. + gui_slots .. + "list[context;books;0, 0.3;8,2;]" .. + "list[current_player;main;0,2.85;8,4;]" .. + default.get_hotbar_bg(0, 2.85) .. + default.get_hotbar_bg(0, 3.85) + +minetest.register_node("default:bookshelf", { + description = "Bookshelf", + tiles = {"default_wood.png", "default_wood.png", "default_bookshelf.png"}, + is_ground_content = false, + paramtype2 = "facedir", + 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.bookshelf_formspec) + local inv = meta:get_inventory() + inv:set_size("books", 8 * 2) + end, + can_dig = function(pos,player) + local meta = minetest.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.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.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_framed", + tiles = {"default_glass_frame.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(), +}) + +local fence_wood_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_wood_texture, + wield_image = fence_wood_texture, + paramtype = "light", + sunlight_propagates = true, + 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(), +}) + +local fence_cobble_texture = "default_fence_overlay.png^default_cobble.png^default_fence_overlay.png^[makealpha:255,126,126" +minetest.register_node("default:fence_cobble", { + description = "Cobblestone Fence", + drawtype = "fencelike", + tiles = {"default_cobble.png"}, + inventory_image = fence_cobble_texture, + wield_image = fence_cobble_texture, + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + selection_box = { + type = "fixed", + fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, + }, + groups = {cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + +local fence_desert_cobble_texture = "default_fence_overlay.png^default_desert_cobble.png^default_fence_overlay.png^[makealpha:255,126,126" +minetest.register_node("default:fence_desert_cobble", { + description = "Desert Cobblestone Fence", + drawtype = "fencelike", + tiles = {"default_desert_cobble.png"}, + inventory_image = fence_desert_cobble_texture, + wield_image = fence_desert_cobble_texture, + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + selection_box = { + type = "fixed", + fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, + }, + groups = {cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + +local fence_steelblock_texture = "default_fence_overlay.png^default_steel_block.png^default_fence_overlay.png^[makealpha:255,126,126" +minetest.register_node("default:fence_steelblock", { + description = "Steel Block Fence", + drawtype = "fencelike", + tiles = {"default_steel_block.png"}, + inventory_image = fence_steelblock_texture, + wield_image = fence_steelblock_texture, + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + selection_box = { + type = "fixed", + fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, + }, + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_metal_defaults(), +}) + +local fence_brick_texture = "default_fence_overlay.png^default_brick.png^default_fence_overlay.png^[makealpha:255,126,126" +minetest.register_node("default:fence_brick", { + description = "Brick Fence", + drawtype = "fencelike", + tiles = {"default_brick.png"}, + inventory_image = fence_brick_texture, + wield_image = fence_brick_texture, + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + selection_box = { + type = "fixed", + fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, + }, + groups = {cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:ladder", { + description = "Ladder", + drawtype = "nodebox", + tiles = {"default_ladder_new.png"}, + inventory_image = "default_ladder_new_inv.png", + wield_image = "default_ladder_new_inv.png", + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "wallmounted", + climbable = true, + node_box = { + type = "wallmounted", + wall_top = {-0.375, 0.4375, -0.5, 0.375, 0.5, 0.5}, + wall_bottom = {-0.375, -0.5, -0.5, 0.375, -0.4375, 0.5}, + wall_side = {-0.5, -0.5, -0.375, -0.4375, 0.5, 0.375}, + }, + selection_box = {type = "wallmounted"}, + groups = {choppy = 2,oddly_breakable_by_hand = 3, flammable = 2}, + 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", + sunlight_propagates = true, + 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.6} + }, + { + image = "default_water_flowing_animated.png", + backface_culling=true, + animation={type = "vertical_frames", aspect_w= 16, aspect_h = 16, length = 0.6} + }, + }, + alpha = WATER_ALPHA, + paramtype = "light", + paramtype2 = "flowingliquid", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + drop = "", + drowning = 2, + 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 = 90, r = 20, g = 70, b = 80}, + groups = {water= 3, liquid = 3, puts_out_fire = 1, not_in_creative_inventory = 1, freezes = 1, melt_around = 1}, +}) + +minetest.register_node("default:water_source", { + description = "Water Source", + inventory_image = minetest.inventorycube("default_water.png"), + drawtype = "liquid", + tiles = { + {name = "default_water_source_animated.png", animation={type = "vertical_frames", aspect_w= 16, aspect_h = 16, length = 1.5}} + }, + 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 = 1.5}, + backface_culling = false, + } + }, + alpha = WATER_ALPHA, + paramtype = "light", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + drop = "", + drowning = 2, + 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 = 90, r = 20, g = 70, b = 80}, + groups = {water= 3, liquid = 3, puts_out_fire = 1, freezes = 1}, +}) + +--[[ +function default.get_water_area_p0p1(pos) + local p0 = { + x = math.floor(pos.x / water.D) * water.D, + y = math.floor(pos.y / water.D) * water.D, + z = math.floor(pos.z / water.D) * water.D, + } + local p1 = { + x = p0.x + water.D - 1, + y = p0.y + water.D - 1, + z = p0.z + water.D - 1 + } + return p0, p1 +end + +water = {} +water.D = 4 +water.sounds = {} + +function default.update_water_sounds_around(pos) + local p0, p1 = default.get_water_area_p0p1(pos) + local cp = {x = (p0.x + p1.x) / 2, y = (p0.y + p1.y) / 2, z = (p0.z + p1.z) / 2} + local water_p = minetest.find_nodes_in_area(p0, p1, {"default:water_flowing"}) + -- print("number of flames at "..minetest.pos_to_string(p0).."/" + -- ..minetest.pos_to_string(p1)..": "..#flames_p) + local should_have_sound = (#water_p >= 20) + local wanted_sound = nil + if #water_p >= 20 then + wanted_sound = {name = "waterfall"} + end + local p0_hash = minetest.hash_node_position(p0) + local sound = water.sounds[p0_hash] + if not sound then + if should_have_sound then + water.sounds[p0_hash] = { + handle = minetest.sound_play(wanted_sound, {pos = cp, loop = true, max_hear_distance = 16}), + name = wanted_sound.name, + } + end + else + if not wanted_sound then + minetest.sound_stop(sound.handle) + water.sounds[p0_hash] = nil + elseif sound.name ~= wanted_sound.name then + minetest.sound_stop(sound.handle) + water.sounds[p0_hash] = { + handle = minetest.sound_play(wanted_sound, {pos = cp, loop = true, max_hear_distance = 16}), + name = wanted_sound.name, + } + end + end +end + +minetest.register_abm({ + nodenames = {"default:water_flowing"}, + interval = 2, + chance = 1, + action = function(pos, node) + default.update_water_sounds_around(pos) + end +}) +--]] + +minetest.register_node("default:lava_flowing", { + description = "Flowing Lava", + inventory_image = minetest.inventorycube("default_lava.png"), + drawtype = "flowingliquid", + tiles = {"default_lava.png"}, + special_tiles = { + { + image = "default_lava_flowing_animated.png", + backface_culling = false, + animation={type = "vertical_frames", aspect_w= 16, aspect_h = 16, length = 1.5} + }, + { + image = "default_lava_flowing_animated.png", + backface_culling = true, + animation={type = "vertical_frames", aspect_w= 16, aspect_h = 16, length = 1.5} + }, + }, + paramtype = "light", + paramtype2 = "flowingliquid", + light_source = LIGHT_MAX, + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + drop = "", + drowning = 2, + liquidtype = "flowing", + liquid_alternative_flowing = "default:lava_flowing", + liquid_alternative_source = "default:lava_source", + liquid_viscosity = LAVA_VISC, + liquid_renewable = false, + damage_per_second = 8, + post_effect_color = {a = 220, r = 250, g = 70, b = 20}, + groups = {lava = 3, liquid = 2, hot = 3, igniter = 1, not_in_creative_inventory = 1}, +}) + +minetest.register_node("default:lava_source", { + description = "Lava Source", + inventory_image = minetest.inventorycube("default_lava.png"), + drawtype = "liquid", + tiles = { + {name = "default_lava_source_animated.png", animation={type = "vertical_frames", aspect_w= 16, aspect_h = 16, length = 3.0}} + }, + special_tiles = { + -- New-style lava source material (mostly unused) + { + name = "default_lava_source_animated.png", + animation={type = "vertical_frames", aspect_w= 16, aspect_h = 16, length = 3.0}, + backface_culling = false, + } + }, + paramtype = "light", + light_source = LIGHT_MAX, + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + drop = "", + drowning = 2, + liquidtype = "source", + liquid_alternative_flowing = "default:lava_flowing", + liquid_alternative_source = "default:lava_source", + liquid_viscosity = LAVA_VISC, + liquid_renewable = false, + damage_per_second = 8, + post_effect_color = {a = 220, r = 250, g = 70, b = 20}, + groups = {lava = 3, liquid = 2, hot = 3, igniter = 1}, +}) + +--[[ +function default.get_lava_area_p0p1(pos) + local p0 = { + x = math.floor(pos.x / lava.D) * lava.D, + y = math.floor(pos.y / lava.D) * lava.D, + z = math.floor(pos.z / lava.D) * lava.D, + } + local p1 = { + x = p0.x + lava.D - 1, + y = p0.y + lava.D - 1, + z = p0.z + lava.D - 1 + } + return p0, p1 +end + +lava = {} +lava.D = 4 +lava.sounds = {} + +function default.update_lava_sounds_around(pos) + local p0, p1 = default.get_lava_area_p0p1(pos) + local cp = {x = (p0.x + p1.x) / 2, y = (p0.y + p1.y) / 2, z = (p0.z + p1.z) / 2} + local lava_p = minetest.find_nodes_in_area(p0, p1, {"default:lava_flowing"}) + -- print("number of flames at "..minetest.pos_to_string(p0).."/" + -- ..minetest.pos_to_string(p1)..": "..#flames_p) + local should_have_sound = (#lava_p >= 40) + local wanted_sound = nil + if #lava_p >= 40 then + wanted_sound = {name = "lava"} + end + local p0_hash = minetest.hash_node_position(p0) + local sound = lava.sounds[p0_hash] + if not sound then + if should_have_sound then + lava.sounds[p0_hash] = { + handle = minetest.sound_play(wanted_sound, {pos = cp, loop = true}), + name = wanted_sound.name, + } + end + else + if not wanted_sound then + minetest.sound_stop(sound.handle) + lava.sounds[p0_hash] = nil + elseif sound.name ~= wanted_sound.name then + minetest.sound_stop(sound.handle) + lava.sounds[p0_hash] = { + handle = minetest.sound_play(wanted_sound, {pos = cp, loop = true}), + name = wanted_sound.name, + } + end + end +end + +minetest.register_abm({ + nodenames = {"default:lava_flowing"}, + interval = 2, + chance = 1, + action = function(pos, node) + default.update_lava_sounds_around(pos) + end +}) +--]] + +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 = WATER_ALPHA, + 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 = WATER_VISC, + damage_per_second = 2, + post_effect_color = {a = 120, r = 50, g = 90, b = 30}, + groups = {water = 3, liquid = 3, puts_out_fire = 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 = WATER_ALPHA, + 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 = WATER_VISC, + damage_per_second = 2, + post_effect_color = {a = 120, r = 50, g = 90, b = 30}, + groups = {water = 3, liquid = 3, puts_out_fire = 1}, +}) + +minetest.register_node("default:torch", { + description = "Torch", + drawtype = "nodebox", + tiles = { + {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_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, + 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.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}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:sign_wall", { + description = "Sign", + drawtype = "nodebox", + tiles = {"default_sign_new.png"}, + inventory_image = "default_sign_new_inv.png", + wield_image = "default_sign_new_inv.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}, + }, + selection_box = {type = "wallmounted"}, + groups = {choppy = 2, dig_immediate = 2, attached_node = 1}, + sounds = default.node_sound_wood_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]" .. + gui_slots .. + "list[current_name;main;0,0.3;8,4;]" .. + "list[current_player;main;0,4.85;8,4;]" .. + default.get_hotbar_bg(0, 4.85) .. + default.get_hotbar_bg(0, 5.85) + +function default.get_locked_chest_formspec(pos) + local spos = pos.x .. "," .. pos.y .. "," .. pos.z + local formspec = + "size[8,9]" .. + gui_slots .. + "list[nodemeta:".. spos .. ";main;0,0.3;8,4;]" .. + "list[current_player;main;0,4.85;8,4;]" .. + default.get_hotbar_bg(0, 4.85) .. + default.get_hotbar_bg(0, 5.85) + return formspec +end + + +minetest.register_node("default:chest", { + description = "Chest", + tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png", + "default_chest_side.png", "default_chest_side.png", "default_chest_front.png"}, + paramtype2 = "facedir", + groups = {choppy = 2,oddly_breakable_by_hand = 2}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", default.chest_formspec) + meta:set_string("infotext", "Chest") + local inv = meta:get_inventory() + inv:set_size("main", 8 * 4) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name().. + " moves stuff in chest at "..minetest.pos_to_string(pos) .. ".") + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " moves stuff to chest at "..minetest.pos_to_string(pos) .. ".") + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " takes stuff from chest at "..minetest.pos_to_string(pos) .. ".") + end, +}) + +local function has_locked_chest_privilege(meta, player) + if player:get_player_name() ~= meta:get_string("owner") and player:get_player_name() ~= minetest.setting_get("name") 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}, + 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("formspec", default.get_locked_chest_formspec(pos)) + meta:set_string("owner", placer:get_player_name() or "") + meta:set_string("infotext", "Locked Chest (owned by ".. + meta:get_string("owner")..")") + end, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", default.get_locked_chest_formspec(pos)) + meta:set_string("owner", "") + meta:set_string("infotext", "Locked Chest") + local inv = meta:get_inventory() + inv:set_size("main", 8 * 4) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") and has_locked_chest_privilege(meta, player) + end, + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.get_meta(pos) + if not has_locked_chest_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a locked chest belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos) .. ".") + return 0 + end + return count + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if not has_locked_chest_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a locked chest belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos) .. ".") + return 0 + end + return stack:get_count() + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if not has_locked_chest_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a locked chest belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos) .. ".") + return 0 + end + return stack:get_count() + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name().. + " moves stuff in locked chest at "..minetest.pos_to_string(pos) .. ".") + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " moves stuff to locked chest at "..minetest.pos_to_string(pos) .. ".") + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " takes stuff from locked chest at "..minetest.pos_to_string(pos) .. ".") + end, +}) + +function default.furnace_active(pos, percent, item_percent) + local formspec = + "size[8,8.5]".. + 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,4;]" .. + default.get_hotbar_bg(0, 4.25) .. + default.get_hotbar_bg(0, 5.25) + return formspec + end + +function default.get_furnace_active_formspec(pos, percent) + local meta = minetest.get_meta(pos)local inv = meta:get_inventory() + local srclist = inv:get_list("src") + local cooked = nil + local aftercooked = nil + if srclist then + cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) + end + local item_percent = 0 + if cooked then + item_percent = meta:get_float("src_time")/cooked.time + end + + return default.furnace_active(pos, percent, item_percent) +end + +default.furnace_inactive_formspec = + "size[8,8.5]".. + 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,4;]" .. + default.get_hotbar_bg(0, 4.25) .. + default.get_hotbar_bg(0, 5.25) + +minetest.register_node("default:furnace", { + description = "Furnace", + tiles = {"default_furnace_top.png", "default_furnace_bottom.png", "default_furnace_side.png", + "default_furnace_side.png", "default_furnace_side.png", "default_furnace_front.png"}, + paramtype2 = "facedir", + groups = {cracky = 2}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", default.furnace_inactive_formspec) + meta:set_string("infotext", "Furnace") + local inv = meta:get_inventory() + inv:set_size("fuel", 1) + inv:set_size("src", 1) + inv:set_size("dst", 4) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + if not inv:is_empty("fuel") then + return false + elseif not inv:is_empty("dst") then + return false + elseif not inv:is_empty("src") then + return false + end + return true + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if listname == "fuel" then + if minetest.get_craft_result({method = "fuel",width = 1, items ={stack}}).time ~= 0 then + if inv:is_empty("src") then + meta:set_string("infotext","Furnace is empty") + end + return stack:get_count() + else + return 0 + end + elseif listname == "src" then + return stack:get_count() + elseif listname == "dst" then + return 0 + end + end, + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local stack = inv:get_stack(from_list, from_index) + if to_list == "fuel" then + if minetest.get_craft_result({method = "fuel",width = 1, items ={stack}}).time ~= 0 then + if inv:is_empty("src") then + meta:set_string("infotext","Furnace is empty") + end + return count + else + return 0 + end + elseif to_list == "src" then + return count + elseif to_list == "dst" then + return 0 + end + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + return stack:get_count() + end, +}) + +minetest.register_node("default:furnace_active", { + description = "Furnace (active)", + 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 + }, + } + }, + paramtype2 = "facedir", + light_source = 9, + drop = "default:furnace", + groups = {cracky = 2, not_in_creative_inventory = 1,hot= 1}, + 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, +}) + +-- Locked Furnace thanks to kotolegokot: + +local function has_locked_furnace_privilege(meta, player) + if player:get_player_name() ~= meta:get_string("owner") and player:get_player_name() ~= minetest.setting_get("name") then + return false + end + return true +end + +minetest.register_node("default:furnace_locked", { + description = "Locked Furnace", + tiles = {"default_furnace_top.png", "default_furnace_bottom.png", "default_furnace_side.png", + "default_furnace_side.png", "default_furnace_side.png", "default_furnace_lock.png"}, + paramtype2 = "facedir", + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + meta:set_string("owner", placer:get_player_name()) + meta:set_string("infotext", "Locked Furnace (owned by " .. placer:get_player_name() .. ")") + end, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", default.furnace_inactive_formspec) + meta:set_string("infotext", "Locked 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_move = function(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.get_meta(pos) + if not has_locked_furnace_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a locked furnace belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos) .. ".") + return 0 + end + return count + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if not has_locked_furnace_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a locked furnace belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos) .. ".") + return 0 + end + return stack:get_count() + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if not has_locked_furnace_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a locked furnace belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos) .. ".") + return 0 + end + return stack:get_count() + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name().. + " moves stuff in locked furnace at "..minetest.pos_to_string(pos) ..".") + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " moves stuff to locked furnace 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 furnace at "..minetest.pos_to_string(pos) ..".") + end, +}) + +minetest.register_node("default:furnace_locked_active", { + description = "Locked Furnace (active)", + tiles = { + "default_furnace_top.png", + "default_furnace_bottom.png", + "default_furnace_side.png", + "default_furnace_side.png", + "default_furnace_side.png", + { + image = "default_furnace_lock_active.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1 + }, + } + }, + paramtype2 = "facedir", + light_source = 9, + drop = "default:furnace_locked", + groups = {cracky = 2, not_in_creative_inventory = 1}, + sounds = default.node_sound_stone_defaults(), + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + meta:set_string("owner", placer:get_player_name()) + meta:set_string("owner", "Locked Furnace (owned by " .. player:get_player_name() .. ")") + end, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", default.furnace_inactive_formspec) + meta:set_string("infotext", "Locked 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_move = function(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.get_meta(pos) + if not has_locked_furnace_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a locked furnace belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos) .. ".") + return 0 + end + return count + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if not has_locked_furnace_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a locked furnace belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos) .. ".") + return 0 + end + return stack:get_count() + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if not has_locked_furnace_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a locked furnace belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos) .. ".") + return 0 + end + return stack:get_count() + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name().. + " moves stuff in locked furnace at "..minetest.pos_to_string(pos) .. ".") + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " moves stuff to locked furnace 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 furnace at "..minetest.pos_to_string(pos) .. ".") + end, +}) + +minetest.register_abm({ + nodenames = {"default:furnace_locked","default:furnace_locked_active"}, + interval = 1.0, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local meta = minetest.get_meta(pos) + for i, name in ipairs({ + "fuel_totaltime", + "fuel_time", + "src_totaltime", + "src_time" + }) do + if meta:get_string(name) == "" then + meta:set_float(name, 0.0) + end + end + + local inv = meta:get_inventory() + + local srclist = inv:get_list("src") + local cooked = nil + + if srclist then + cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) + end + + local was_active = false + + if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then + was_active = true + meta:set_float("fuel_time", meta:get_float("fuel_time") + 1) + meta:set_float("src_time", meta:get_float("src_time") + 1) + if cooked and cooked.item and meta:get_float("src_time") >= cooked.time then + -- check if there's room for output in "dst" list + if inv:room_for_item("dst",cooked.item) then + -- Put result in "dst" list + inv:add_item("dst", cooked.item) + -- take stuff from "src" list + srcstack = inv:get_stack("src", 1) + srcstack:take_item() + inv:set_stack("src", 1, srcstack) + else + -- print("Could not insert " .. cooked.item .. ".") + end + meta:set_string("src_time", 0) + end + end + + local item_percent = 0 + if cooked then + item_percent = meta:get_float("src_time")/cooked.time + 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 .. " % (owned by "..meta:get_string("owner") .. ")") + swap_node(pos,"default:furnace_locked_active") + meta:set_string("formspec", + "invsize[8,8.5;]" .. gui_slots .. + "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;src;2.75, 0.5;1,1;]" .. + "list[current_name;fuel;2.75,2.5;1,1;]" .. + "list[current_name;dst;4.75, 0.96;2,2;]" .. + "list[current_player;main;0,4.25;8,4;]" .. + default.get_hotbar_bg(0, 4.25) .. + default.get_hotbar_bg(0, 5.25)) + return + end + + local fuel = nil + local cooked = nil + local fuellist = inv:get_list("fuel") + local srclist = inv:get_list("src") + + if srclist then + cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) + end + if fuellist then + fuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist}) + end + + if fuel.time <= 0 then + meta:set_string("infotext","Locked Furnace is out of fuel (owned by "..meta:get_string("owner")..")") + swap_node(pos,"default:furnace_locked") + meta:set_string("formspec", default.furnace_inactive_formspec) + return + end + + if cooked.item:is_empty() then + if was_active then + meta:set_string("infotext","Locked Furnace is empty (owned by "..meta:get_string("owner")..")") + swap_node(pos,"default:furnace_locked") + meta:set_string("formspec", default.furnace_inactive_formspec) + end + return + end + + meta:set_string("fuel_totaltime", fuel.time) + meta:set_string("fuel_time", 0) + + local stack = inv:get_stack("fuel", 1) + stack:take_item() + inv:set_stack("fuel", 1, stack) + end, +}) + +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 is out of fuel") + swap_node(pos,"default:furnace") + meta:set_string("formspec", default.furnace_inactive_formspec) + return + end + + if cooked.item:is_empty() then + if was_active then + meta:set_string("infotext","Furnace is empty") + swap_node(pos,"default:furnace") + meta:set_string("formspec", default.furnace_inactive_formspec) + end + return + end + + meta:set_string("fuel_totaltime", fuel.time) + meta:set_string("fuel_time", 0) + + inv:set_stack("fuel", 1, afterfuel.items[1]) + end, +}) + +minetest.register_node("default:cobble", { + description = "Cobblestone", + tiles = {"default_cobble.png"}, + is_ground_content = true, + groups = {cracky = 3, stone = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:cobble_cooled", { + description = "Cobblestone (cooled)", + tiles = {"default_cobble.png"}, + is_ground_content = true, + drop = "default:cobble", + groups = {cracky = 3, stone = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_cobble", { + description = "Desert Cobblestone", + tiles = {"default_desert_cobble.png"}, + is_ground_content = true, + groups = {cracky = 3, stone = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:mossycobble", { + description = "Mossy Cobblestone", + tiles = {"default_mossycobble.png"}, + is_ground_content = true, + drop = { + items = { + {items = {"default:mossycobble"}}, + {items = {"maptools:silver_coin"}, rarity = 64}, + }, + }, + groups = {cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:coalblock", { + description = "Coal Block", + tiles = {"default_coal_block.png"}, + is_ground_content = true, + groups = {cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:steelblock", { + description = "Steel Block", + tiles = {"default_steel_block.png"}, + is_ground_content = true, + groups = {cracky = 1, level = 2, ingot_block = 1}, + sounds = default.node_sound_metal_defaults(), +}) + +minetest.register_node("default:tinblock", { + description = "Tin Block", + tiles = {"default_tin_block.png"}, + is_ground_content = true, + groups = {cracky = 1, level = 2, ingot_block = 1}, + sounds = default.node_sound_metal_defaults(), +}) + +minetest.register_node("default:copperblock", { + description = "Copper Block", + tiles = {"default_copper_block.png"}, + is_ground_content = true, + groups = {cracky = 1, level = 2, ingot_block = 1}, + sounds = default.node_sound_metal_defaults(), +}) + +minetest.register_node("default:bronzeblock", { + description = "Bronze Block", + tiles = {"default_bronze_block.png"}, + is_ground_content = true, + groups = {cracky = 1, level = 2, ingot_block = 1}, + sounds = default.node_sound_metal_defaults(), +}) + +minetest.register_node("default:mese", { + description = "Mese Block", + tiles = {"default_mese_block.png"}, + is_ground_content = true, + drop = { + items = { + {items = {"default:mese"}}, + {items = {"maptools:silver_coin"}, rarity = 32}, + }, + }, + groups = {cracky = 1, level = 2, fall_damage_add_percent = -75}, + sounds = default.node_sound_wood_defaults(), -- Intended. +}) +minetest.register_alias("default:mese_block", "default:mese") + +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:silverblock", { + description = "Silver Block", + tiles = {"default_silver_block.png"}, + is_ground_content = true, + groups = {cracky = 1, ingot_block = 1}, + sounds = default.node_sound_metal_defaults(), +}) + +minetest.register_node("default:goldblock", { + description = "Gold Block", + tiles = {"default_gold_block.png"}, + is_ground_content = true, + groups = {cracky = 1, ingot_block = 1}, + sounds = default.node_sound_metal_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_metal_defaults(), +}) + +minetest.register_node("default:obsidian_glass", { + description = "Obsidian Glass", + drawtype = "glasslike_framed", + tiles = {"default_obsidian_glass_frame.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}, +}) + +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: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"}, + paramtype = "light", + paramtype2 = "facedir", + light_source = LIGHT_MAX, + groups = {cracky = 2}, + is_ground_content = false, + post_effect_color = {a = 128, r= 255, g= 128, b= 255}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:nyancat_rainbow", { + description = "Nyan Cat Rainbow", + drawtype = "glasslike", + tiles = {"default_nc_rb.png^[transformR90", "default_nc_rb.png^[transformR90", + "default_nc_rb.png", "default_nc_rb.png"}, + paramtype = "light", + paramtype2 = "facedir", + light_source = LIGHT_MAX, + sunlight_propagates = true, + walkable = false, + use_texture_alpha = true, + climbable = true, + groups = {cracky = 2}, + is_ground_content = false, + post_effect_color = {a = 128, r= 255, g= 128, b= 255}, + sounds = default.node_sound_stone_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 = 3, flammable = 2, attached_node = 1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("default:apple", { + description = "Apple", + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"default_apple.png"}, + inventory_image = "default_apple.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2} + }, + groups = {fleshy = 3, dig_immediate = 3, flammable = 2, leafdecay = 3, leafdecay_drop = 1}, + on_use = minetest.item_eat(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:dry_shrub", { + description = "Dry Shrub", + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"default_dry_shrub.png"}, + inventory_image = "default_dry_shrub.png", + wield_image = "default_dry_shrub.png", + paramtype = "light", + waving = 1, + 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", + tiles = {"default_grass_1.png"}, + inventory_image = "default_grass_3.png", -- Use a bigger inventory image. + 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, -0.4375, 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, +}) + +minetest.register_node("default:grass_2", { + description = "Grass", + drawtype = "plantlike", + tiles = {"default_grass_2.png"}, + inventory_image = "default_grass_2.png", + wield_image = "default_grass_2.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, -0.4375, 0.5}, + }, +}) +minetest.register_node("default:grass_3", { + description = "Grass", + drawtype = "plantlike", + tiles = {"default_grass_3.png"}, + inventory_image = "default_grass_3.png", + wield_image = "default_grass_3.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, -0.4375, 0.5}, + }, +}) + +minetest.register_node("default:grass_4", { + description = "Grass", + drawtype = "plantlike", + tiles = {"default_grass_4.png"}, + inventory_image = "default_grass_4.png", + wield_image = "default_grass_4.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, -0.4375, 0.5}, + }, +}) + +minetest.register_node("default:grass_5", { + description = "Grass", + drawtype = "plantlike", + tiles = {"default_grass_5.png"}, + inventory_image = "default_grass_5.png", + wield_image = "default_grass_5.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, -0.4375, 0.5}, + }, +}) + +minetest.register_node("default:ice", { + description = "Ice", + drawtype = "glasslike", + tiles = {"default_ice.png"}, + paramtype = "light", + is_ground_content = true, + use_texture_alpha = true, + freezemelt = "default:water_source", + groups = {cracky = 3, melts = 1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("default:snow", { + description = "Snow", + tiles = {"default_snow.png"}, + inventory_image = "default_snowball.png", + wield_image = "default_snowball.png", + is_ground_content = true, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + 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.375, 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.7}}), + 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"}) + pos.y = pos.y + 1 + minetest.remove_node(pos) + end + end, +}) +minetest.register_alias("snow", "default:snow") + +minetest.register_node("default:snowblock", { + description = "Snow Block", + tiles = {"default_snow.png"}, + is_ground_content = true, + freezemelt = "default:water_source", + groups = {crumbly = 3, melts = 1}, + sounds = default.node_sound_dirt_defaults({footstep = {name = "default_snow_footstep", gain = 0.625}}), +}) + +if minetest.setting_getbool("xray") then + -- Nodes to make partially see-through: + minetest.override_item("default:stone_with_coal", {tiles = {"default_mineral_coal.png"}}) + minetest.override_item("default:stone_with_iron", {tiles = {"default_mineral_iron.png"}}) + minetest.override_item("default:stone_with_tin", {tiles = {"default_mineral_tin.png"}}) + minetest.override_item("default:stone_with_copper", {tiles = {"default_mineral_copper.png"}}) + minetest.override_item("default:stone_with_silver", {tiles = {"default_mineral_silver.png"}}) + minetest.override_item("default:stone_with_gold", {tiles = {"default_mineral_gold.png"}}) + minetest.override_item("default:stone_with_mese", {tiles = {"default_mineral_mese.png"}}) + minetest.override_item("default:stone_with_diamond", {tiles = {"default_mineral_diamond.png"}}) + minetest.override_item("default:stone_with_coin", {tiles = {"maptools_gold_coin.png"}}) + + -- Nodes to hide: + minetest.override_item("default:stone", {drawtype = "airlike", pointable = false,}) + minetest.override_item("default:dirt", {drawtype = "airlike", pointable = false,}) + minetest.override_item("default:dirt_with_grass", {drawtype = "airlike", pointable = false,}) + minetest.override_item("default:dirt_with_grass_footsteps", {drawtype = "airlike", pointable = false,}) + minetest.override_item("default:dirt_with_snow", {drawtype = "airlike", pointable = false,}) + minetest.override_item("default:water_source", {drawtype = "airlike", pointable = false,}) + minetest.override_item("default:water_flowing", {drawtype = "airlike", pointable = false,}) + minetest.override_item("default:leaves", {drawtype = "airlike", pointable = false,}) + minetest.override_item("default:jungleleaves", {drawtype = "airlike", pointable = false,}) + minetest.override_item("default:gravel", {drawtype = "airlike", pointable = false,}) + minetest.override_item("default:sand", {drawtype = "airlike", pointable = false,}) + minetest.override_item("default:desert_sand", {drawtype = "airlike", pointable = false,}) + minetest.override_item("default:desert_stone", {drawtype = "airlike", pointable = false,}) + minetest.override_item("default:cobble", {drawtype = "airlike", pointable = false,}) + minetest.override_item("default:desert_cobble", {drawtype = "airlike", pointable = false,}) +end diff --git a/minetestforfun_game/mods/default/player.lua b/minetestforfun_game/mods/default/player.lua new file mode 100755 index 00000000..73e4e1e0 --- /dev/null +++ b/minetestforfun_game/mods/default/player.lua @@ -0,0 +1,210 @@ +-- Minetest 0.4 mod: player +-- See README.txt for licensing and other information. + +--[[ + +API +--- + +default.player_register_model(name, def) +^ Register a new model to be used by players. +^ is the model filename such as "character.x", "foo.b3d", etc. +^ See Model Definition below for format of . + +default.registered_player_models[name] +^ See Model Definition below for format. + +default.player_set_model(player, model_name) +^ is a PlayerRef. +^ is a model registered with player_register_model. + +default.player_set_animation(player, anim_name [, speed]) +^ is a PlayerRef. +^ is the name of the animation. +^ is in frames per second. If nil, default from the model is used + +default.player_set_textures(player, textures) +^ is a PlayerRef. +^ is an array of textures +^ If is nil, the default textures from the model def are used + +default.player_get_animation(player) +^ is a PlayerRef. +^ Returns a table containing fields "model", "textures" and "animation". +^ Any of the fields of the returned table may be nil. + +Model Definition +---------------- + +model_def = { + animation_speed = 30, -- Default animation speed, in FPS. + textures = {"character.png", }, -- Default array of textures. + visual_size = {x = 1, y = 1,}, -- Used to scale the model. + animations = { + -- = { x =, y =, }, + foo = { x = 0, y = 19, }, + bar = { x = 20, y =39, }, + -- ... + }, +} + +]] + +-- Player animation blending +-- Note: This is currently broken due to a bug in Irrlicht, leave at 0 +local animation_blend = 0 + +default.registered_player_models = { } + +-- Local for speed. +local models = default.registered_player_models + +function default.player_register_model(name, def) + models[name] = def +end + +-- Default player appearance +default.player_register_model("character.x", { + animation_speed = 35, + textures = {"character.png", }, + animations = { + stand = {x = 0, y = 40}, + lay = {x = 162, y = 166}, + walk = {x = 168, y = 187}, + mine = {x = 189, y = 198}, + walk_mine = {x = 200, y = 219}, + sit = {x = 81, y = 160}, + }, +}) + +-- Player stats and animations +local player_model = {} +local player_textures = {} +local player_anim = {} +local player_sneak = {} +default.player_attached = {} + +function default.player_get_animation(player) + local name = player:get_player_name() + return { + model = player_model[name], + textures = player_textures[name], + animation = player_anim[name], + } +end + +-- Called when a player"s appearance needs to be updated +function default.player_set_model(player, model_name) + local name = player:get_player_name() + local model = models[model_name] + if model then + if player_model[name] == model_name then + return + end + player:set_properties({ + mesh = model_name, + textures = player_textures[name] or model.textures, + visual = "mesh", + visual_size = model.visual_size or {x = 1, y = 1}, + }) + default.player_set_animation(player, "stand") + else + player:set_properties({ + textures = { "player.png", "player_back.png", }, + visual = "upright_sprite", + }) + end + player_model[name] = model_name +end + +function default.player_set_textures(player, textures) + local name = player:get_player_name() + player_textures[name] = textures + player:set_properties({textures = textures,}) +end + +function default.player_set_animation(player, anim_name, speed) + local name = player:get_player_name() + if player_anim[name] == anim_name then + return + end + local model = player_model[name] and models[player_model[name]] + if not (model and model.animations[anim_name]) then + return + end + local anim = model.animations[anim_name] + player_anim[name] = anim_name + player:set_animation(anim, speed or model.animation_speed, animation_blend) +end + +-- 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") + player:set_local_animation({x = 0, y = 40}, {x = 168, y = 187}, {x = 189, y = 198}, {x = 200, y = 219}, 35) + + -- set GUI + if minetest.setting_getbool("creative_mode") then + -- creative.set_creative_formspec(player, 0, 1) + else + player:set_inventory_formspec(gui_suvival_form) + end + minetest.after(0.5,function() + player:hud_set_hotbar_image("gui_hotbar.png") + player:hud_set_hotbar_selected_image("gui_hotbar_selected.png") + end) +end) + +minetest.register_on_leaveplayer(function(player) + local name = player:get_player_name() + player_model[name] = nil + player_anim[name] = nil + player_textures[name] = nil +end) + +-- Localize for better performance. +local player_set_animation = default.player_set_animation + +-- Check each player and apply animations +minetest.register_globalstep(function(dtime) + for _, player in pairs(minetest.get_connected_players()) do + local name = player:get_player_name() + local model_name = player_model[name] + local model = model_name and models[model_name] + if model and not default.player_attached[name] then + local controls = player:get_player_control() + local walking = false + local animation_speed_mod = model.animation_speed or 35 + + -- Determine if the player is walking + if controls.up or controls.down or controls.left or controls.right then + walking = true + end + + -- Determine if the player is sneaking, and reduce animation speed if so + if controls.sneak then + animation_speed_mod = animation_speed_mod * 0.5 + end + + -- Apply animations based on what the player is doing + if player:get_hp() == 0 then + player_set_animation(player, "lay", animation_speed_mod) + player:set_eye_offset({x = 0, y = -10, z = 0}, {x = 0, y = -10, z = 0}) + elseif walking then + if player_sneak[name] ~= controls.sneak then + player_anim[name] = nil + player_sneak[name] = controls.sneak + end + if controls.LMB or controls.RMB then + player_set_animation(player, "walk_mine", animation_speed_mod) + else + player_set_animation(player, "walk", animation_speed_mod) + end + elseif controls.LMB or controls.RMB then + player_set_animation(player, "mine", animation_speed_mod) + else + player_set_animation(player, "stand", animation_speed_mod * 0.4) + end + end + end +end) diff --git a/minetestforfun_game/mods/default/sounds/default_break_glass.1.ogg b/minetestforfun_game/mods/default/sounds/default_break_glass.1.ogg new file mode 100755 index 00000000..b1ccc5fa Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_break_glass.1.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_break_glass.2.ogg b/minetestforfun_game/mods/default/sounds/default_break_glass.2.ogg new file mode 100755 index 00000000..b6cc9e85 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_break_glass.2.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_break_glass.3.ogg b/minetestforfun_game/mods/default/sounds/default_break_glass.3.ogg new file mode 100755 index 00000000..ae6a6bfc Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_break_glass.3.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_cool_lava.1.ogg b/minetestforfun_game/mods/default/sounds/default_cool_lava.1.ogg new file mode 100755 index 00000000..42506ddf Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_cool_lava.1.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_cool_lava.2.ogg b/minetestforfun_game/mods/default/sounds/default_cool_lava.2.ogg new file mode 100755 index 00000000..2747ab81 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_cool_lava.2.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_cool_lava.3.ogg b/minetestforfun_game/mods/default/sounds/default_cool_lava.3.ogg new file mode 100755 index 00000000..8baeac32 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_cool_lava.3.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_dig_choppy.ogg b/minetestforfun_game/mods/default/sounds/default_dig_choppy.ogg new file mode 100755 index 00000000..e2ecd841 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_dig_choppy.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_dig_cracky.ogg b/minetestforfun_game/mods/default/sounds/default_dig_cracky.ogg new file mode 100755 index 00000000..da116791 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_dig_cracky.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_dig_crumbly.ogg b/minetestforfun_game/mods/default/sounds/default_dig_crumbly.ogg new file mode 100755 index 00000000..a0b2a1f9 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_dig_crumbly.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_dig_dig_immediate.ogg b/minetestforfun_game/mods/default/sounds/default_dig_dig_immediate.ogg new file mode 100755 index 00000000..e65d766e Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_dig_dig_immediate.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_dig_oddly_breakable_by_hand.ogg b/minetestforfun_game/mods/default/sounds/default_dig_oddly_breakable_by_hand.ogg new file mode 100755 index 00000000..ef4d7b15 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_dig_oddly_breakable_by_hand.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_dirt_footstep.1.ogg b/minetestforfun_game/mods/default/sounds/default_dirt_footstep.1.ogg new file mode 100755 index 00000000..bf4915b1 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_dirt_footstep.1.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_dirt_footstep.2.ogg b/minetestforfun_game/mods/default/sounds/default_dirt_footstep.2.ogg new file mode 100755 index 00000000..3ecef3e4 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_dirt_footstep.2.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_dirt_footstep.3.ogg b/minetestforfun_game/mods/default/sounds/default_dirt_footstep.3.ogg new file mode 100755 index 00000000..57689e7b Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_dirt_footstep.3.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_dirt_footstep.4.ogg b/minetestforfun_game/mods/default/sounds/default_dirt_footstep.4.ogg new file mode 100755 index 00000000..352109b8 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_dirt_footstep.4.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_dug_node.1.ogg b/minetestforfun_game/mods/default/sounds/default_dug_node.1.ogg new file mode 100755 index 00000000..c04975d4 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_dug_node.1.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_dug_node.2.ogg b/minetestforfun_game/mods/default/sounds/default_dug_node.2.ogg new file mode 100755 index 00000000..9f209268 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_dug_node.2.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_glass_footstep.ogg b/minetestforfun_game/mods/default/sounds/default_glass_footstep.ogg new file mode 100755 index 00000000..191287a3 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_glass_footstep.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_grass_footstep.1.ogg b/minetestforfun_game/mods/default/sounds/default_grass_footstep.1.ogg new file mode 100755 index 00000000..742a53a2 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_grass_footstep.1.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_grass_footstep.2.ogg b/minetestforfun_game/mods/default/sounds/default_grass_footstep.2.ogg new file mode 100755 index 00000000..7676d609 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_grass_footstep.2.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_grass_footstep.3.ogg b/minetestforfun_game/mods/default/sounds/default_grass_footstep.3.ogg new file mode 100755 index 00000000..2008b773 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_grass_footstep.3.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_grass_footstep.4.ogg b/minetestforfun_game/mods/default/sounds/default_grass_footstep.4.ogg new file mode 100755 index 00000000..b7a6114c Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_grass_footstep.4.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_gravel_footstep.1.ogg b/minetestforfun_game/mods/default/sounds/default_gravel_footstep.1.ogg new file mode 100755 index 00000000..68758b20 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_gravel_footstep.1.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_gravel_footstep.2.ogg b/minetestforfun_game/mods/default/sounds/default_gravel_footstep.2.ogg new file mode 100755 index 00000000..128ae573 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_gravel_footstep.2.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_gravel_footstep.3.ogg b/minetestforfun_game/mods/default/sounds/default_gravel_footstep.3.ogg new file mode 100755 index 00000000..7a5863fe Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_gravel_footstep.3.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_gravel_footstep.4.ogg b/minetestforfun_game/mods/default/sounds/default_gravel_footstep.4.ogg new file mode 100755 index 00000000..8cdadb16 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_gravel_footstep.4.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_hard_footstep.1.ogg b/minetestforfun_game/mods/default/sounds/default_hard_footstep.1.ogg new file mode 100755 index 00000000..27a55154 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_hard_footstep.1.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_hard_footstep.2.ogg b/minetestforfun_game/mods/default/sounds/default_hard_footstep.2.ogg new file mode 100755 index 00000000..f108ddbd Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_hard_footstep.2.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_hard_footstep.3.ogg b/minetestforfun_game/mods/default/sounds/default_hard_footstep.3.ogg new file mode 100755 index 00000000..dc2af542 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_hard_footstep.3.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_hard_footstep.4.ogg b/minetestforfun_game/mods/default/sounds/default_hard_footstep.4.ogg new file mode 100755 index 00000000..f2a64054 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_hard_footstep.4.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_metal_footstep.1.ogg b/minetestforfun_game/mods/default/sounds/default_metal_footstep.1.ogg new file mode 100755 index 00000000..afec046c Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_metal_footstep.1.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_metal_footstep.2.ogg b/minetestforfun_game/mods/default/sounds/default_metal_footstep.2.ogg new file mode 100755 index 00000000..d80f3c0e Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_metal_footstep.2.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_metal_footstep.3.ogg b/minetestforfun_game/mods/default/sounds/default_metal_footstep.3.ogg new file mode 100755 index 00000000..a3c92c16 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_metal_footstep.3.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_metal_footstep.4.ogg b/minetestforfun_game/mods/default/sounds/default_metal_footstep.4.ogg new file mode 100755 index 00000000..dd8dd949 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_metal_footstep.4.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_place_node.1.ogg b/minetestforfun_game/mods/default/sounds/default_place_node.1.ogg new file mode 100755 index 00000000..46b9756d Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_place_node.1.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_place_node.2.ogg b/minetestforfun_game/mods/default/sounds/default_place_node.2.ogg new file mode 100755 index 00000000..d34c01a4 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_place_node.2.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_place_node.3.ogg b/minetestforfun_game/mods/default/sounds/default_place_node.3.ogg new file mode 100755 index 00000000..fc293650 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_place_node.3.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_place_node_hard.1.ogg b/minetestforfun_game/mods/default/sounds/default_place_node_hard.1.ogg new file mode 100755 index 00000000..76eecf97 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_place_node_hard.1.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_place_node_hard.2.ogg b/minetestforfun_game/mods/default/sounds/default_place_node_hard.2.ogg new file mode 100755 index 00000000..1d3b3de2 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_place_node_hard.2.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_sand_footstep.1.ogg b/minetestforfun_game/mods/default/sounds/default_sand_footstep.1.ogg new file mode 100755 index 00000000..aa8853f5 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_sand_footstep.1.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_sand_footstep.2.ogg b/minetestforfun_game/mods/default/sounds/default_sand_footstep.2.ogg new file mode 100755 index 00000000..320eb203 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_sand_footstep.2.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_sand_footstep.3.ogg b/minetestforfun_game/mods/default/sounds/default_sand_footstep.3.ogg new file mode 100755 index 00000000..ffce3c4a Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_sand_footstep.3.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_sand_footstep.4.ogg b/minetestforfun_game/mods/default/sounds/default_sand_footstep.4.ogg new file mode 100755 index 00000000..bc224438 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_sand_footstep.4.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_snow_footstep.1.ogg b/minetestforfun_game/mods/default/sounds/default_snow_footstep.1.ogg new file mode 100755 index 00000000..e3a55f4b Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_snow_footstep.1.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_snow_footstep.2.ogg b/minetestforfun_game/mods/default/sounds/default_snow_footstep.2.ogg new file mode 100755 index 00000000..3926a8b8 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_snow_footstep.2.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_snow_footstep.3.ogg b/minetestforfun_game/mods/default/sounds/default_snow_footstep.3.ogg new file mode 100755 index 00000000..2815b52a Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_snow_footstep.3.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_snow_footstep.4.ogg b/minetestforfun_game/mods/default/sounds/default_snow_footstep.4.ogg new file mode 100755 index 00000000..ca06ac6d Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_snow_footstep.4.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_wood_footstep.1.ogg b/minetestforfun_game/mods/default/sounds/default_wood_footstep.1.ogg new file mode 100755 index 00000000..6423a3ba Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_wood_footstep.1.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_wood_footstep.2.ogg b/minetestforfun_game/mods/default/sounds/default_wood_footstep.2.ogg new file mode 100755 index 00000000..8018791c Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_wood_footstep.2.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_wood_footstep.3.ogg b/minetestforfun_game/mods/default/sounds/default_wood_footstep.3.ogg new file mode 100755 index 00000000..304fc66c Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_wood_footstep.3.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/default_wood_footstep.4.ogg b/minetestforfun_game/mods/default/sounds/default_wood_footstep.4.ogg new file mode 100755 index 00000000..5cfc5346 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/default_wood_footstep.4.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/health_gain.ogg b/minetestforfun_game/mods/default/sounds/health_gain.ogg new file mode 100755 index 00000000..9057511d Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/health_gain.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/hit.ogg b/minetestforfun_game/mods/default/sounds/hit.ogg new file mode 100755 index 00000000..d9a6a171 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/hit.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/hit_death.ogg b/minetestforfun_game/mods/default/sounds/hit_death.ogg new file mode 100755 index 00000000..a73e00eb Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/hit_death.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/lava.ogg b/minetestforfun_game/mods/default/sounds/lava.ogg new file mode 100755 index 00000000..c91b561b Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/lava.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/player_damage.1.ogg b/minetestforfun_game/mods/default/sounds/player_damage.1.ogg new file mode 100755 index 00000000..974f575a Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/player_damage.1.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/player_damage.2.ogg b/minetestforfun_game/mods/default/sounds/player_damage.2.ogg new file mode 100755 index 00000000..a713c125 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/player_damage.2.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/player_death.ogg b/minetestforfun_game/mods/default/sounds/player_death.ogg new file mode 100755 index 00000000..260964bd Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/player_death.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/player_falling_damage.ogg b/minetestforfun_game/mods/default/sounds/player_falling_damage.ogg new file mode 100755 index 00000000..c051401f Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/player_falling_damage.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/player_join.ogg b/minetestforfun_game/mods/default/sounds/player_join.ogg new file mode 100755 index 00000000..ce405b60 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/player_join.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/player_leave.ogg b/minetestforfun_game/mods/default/sounds/player_leave.ogg new file mode 100755 index 00000000..8e5268d2 Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/player_leave.ogg differ diff --git a/minetestforfun_game/mods/default/sounds/waterfall.ogg b/minetestforfun_game/mods/default/sounds/waterfall.ogg new file mode 100755 index 00000000..3b29d86c Binary files /dev/null and b/minetestforfun_game/mods/default/sounds/waterfall.ogg differ diff --git a/minetestforfun_game/mods/default/textures/bubble.png b/minetestforfun_game/mods/default/textures/bubble.png new file mode 100644 index 00000000..f48aa35c Binary files /dev/null and b/minetestforfun_game/mods/default/textures/bubble.png differ diff --git a/minetestforfun_game/mods/default/textures/crack_anylength.png b/minetestforfun_game/mods/default/textures/crack_anylength.png new file mode 100644 index 00000000..dd3aac9a Binary files /dev/null and b/minetestforfun_game/mods/default/textures/crack_anylength.png differ diff --git a/minetestforfun_game/mods/default/textures/crosshair.png b/minetestforfun_game/mods/default/textures/crosshair.png new file mode 100644 index 00000000..ac2ab282 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/crosshair.png differ diff --git a/minetestforfun_game/mods/default/textures/default_acid.png b/minetestforfun_game/mods/default/textures/default_acid.png new file mode 100644 index 00000000..a746ecee Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_acid.png differ diff --git a/minetestforfun_game/mods/default/textures/default_acid_flowing_animated.png b/minetestforfun_game/mods/default/textures/default_acid_flowing_animated.png new file mode 100644 index 00000000..67f295a4 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_acid_flowing_animated.png differ diff --git a/minetestforfun_game/mods/default/textures/default_acid_source_animated.png b/minetestforfun_game/mods/default/textures/default_acid_source_animated.png new file mode 100644 index 00000000..c5c95b0b Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_acid_source_animated.png differ diff --git a/minetestforfun_game/mods/default/textures/default_apple.png b/minetestforfun_game/mods/default/textures/default_apple.png new file mode 100644 index 00000000..962cf7f7 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_apple.png differ diff --git a/minetestforfun_game/mods/default/textures/default_book.png b/minetestforfun_game/mods/default/textures/default_book.png new file mode 100644 index 00000000..db966364 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_book.png differ diff --git a/minetestforfun_game/mods/default/textures/default_bookshelf.png b/minetestforfun_game/mods/default/textures/default_bookshelf.png new file mode 100644 index 00000000..7afbcda5 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_bookshelf.png differ diff --git a/minetestforfun_game/mods/default/textures/default_brick.png b/minetestforfun_game/mods/default/textures/default_brick.png new file mode 100644 index 00000000..d5850a0e Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_brick.png differ diff --git a/minetestforfun_game/mods/default/textures/default_bronze_block.png b/minetestforfun_game/mods/default/textures/default_bronze_block.png new file mode 100644 index 00000000..9c789119 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_bronze_block.png differ diff --git a/minetestforfun_game/mods/default/textures/default_bronze_ingot.png b/minetestforfun_game/mods/default/textures/default_bronze_ingot.png new file mode 100644 index 00000000..527641b2 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_bronze_ingot.png differ diff --git a/minetestforfun_game/mods/default/textures/default_cactus_side.png b/minetestforfun_game/mods/default/textures/default_cactus_side.png new file mode 100644 index 00000000..1fc8f275 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_cactus_side.png differ diff --git a/minetestforfun_game/mods/default/textures/default_cactus_top.png b/minetestforfun_game/mods/default/textures/default_cactus_top.png new file mode 100644 index 00000000..df48b730 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_cactus_top.png differ diff --git a/minetestforfun_game/mods/default/textures/default_chest_front.png b/minetestforfun_game/mods/default/textures/default_chest_front.png new file mode 100644 index 00000000..baa8b2af Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_chest_front.png differ diff --git a/minetestforfun_game/mods/default/textures/default_chest_lock.png b/minetestforfun_game/mods/default/textures/default_chest_lock.png new file mode 100644 index 00000000..44819c2c Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_chest_lock.png differ diff --git a/minetestforfun_game/mods/default/textures/default_chest_side.png b/minetestforfun_game/mods/default/textures/default_chest_side.png new file mode 100644 index 00000000..2653b9d2 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_chest_side.png differ diff --git a/minetestforfun_game/mods/default/textures/default_chest_top.png b/minetestforfun_game/mods/default/textures/default_chest_top.png new file mode 100644 index 00000000..46f1f197 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_chest_top.png differ diff --git a/minetestforfun_game/mods/default/textures/default_clay.png b/minetestforfun_game/mods/default/textures/default_clay.png new file mode 100644 index 00000000..070b69e4 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_clay.png differ diff --git a/minetestforfun_game/mods/default/textures/default_clay_brick.png b/minetestforfun_game/mods/default/textures/default_clay_brick.png new file mode 100644 index 00000000..fd14ea1e Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_clay_brick.png differ diff --git a/minetestforfun_game/mods/default/textures/default_clay_burned.png b/minetestforfun_game/mods/default/textures/default_clay_burned.png new file mode 100644 index 00000000..d6a98030 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_clay_burned.png differ diff --git a/minetestforfun_game/mods/default/textures/default_clay_lump.png b/minetestforfun_game/mods/default/textures/default_clay_lump.png new file mode 100644 index 00000000..aef6efd3 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_clay_lump.png differ diff --git a/minetestforfun_game/mods/default/textures/default_cloud.png b/minetestforfun_game/mods/default/textures/default_cloud.png new file mode 100644 index 00000000..faf0ec13 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_cloud.png differ diff --git a/minetestforfun_game/mods/default/textures/default_coal_block.png b/minetestforfun_game/mods/default/textures/default_coal_block.png new file mode 100644 index 00000000..08fcd92b Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_coal_block.png differ diff --git a/minetestforfun_game/mods/default/textures/default_coal_lump.png b/minetestforfun_game/mods/default/textures/default_coal_lump.png new file mode 100644 index 00000000..487f4583 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_coal_lump.png differ diff --git a/minetestforfun_game/mods/default/textures/default_cobble.png b/minetestforfun_game/mods/default/textures/default_cobble.png new file mode 100644 index 00000000..bfb86325 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_cobble.png differ diff --git a/minetestforfun_game/mods/default/textures/default_copper_block.png b/minetestforfun_game/mods/default/textures/default_copper_block.png new file mode 100644 index 00000000..0e28a82b Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_copper_block.png differ diff --git a/minetestforfun_game/mods/default/textures/default_copper_ingot.png b/minetestforfun_game/mods/default/textures/default_copper_ingot.png new file mode 100644 index 00000000..5f2cf033 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_copper_ingot.png differ diff --git a/minetestforfun_game/mods/default/textures/default_copper_lump.png b/minetestforfun_game/mods/default/textures/default_copper_lump.png new file mode 100644 index 00000000..8a706fed Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_copper_lump.png differ diff --git a/minetestforfun_game/mods/default/textures/default_desert_cobble.png b/minetestforfun_game/mods/default/textures/default_desert_cobble.png new file mode 100644 index 00000000..4cbab56b Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_desert_cobble.png differ diff --git a/minetestforfun_game/mods/default/textures/default_desert_sand.png b/minetestforfun_game/mods/default/textures/default_desert_sand.png new file mode 100644 index 00000000..d9049b42 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_desert_sand.png differ diff --git a/minetestforfun_game/mods/default/textures/default_desert_stone.png b/minetestforfun_game/mods/default/textures/default_desert_stone.png new file mode 100644 index 00000000..5d3aded2 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_desert_stone.png differ diff --git a/minetestforfun_game/mods/default/textures/default_desert_stone_brick.png b/minetestforfun_game/mods/default/textures/default_desert_stone_brick.png new file mode 100644 index 00000000..366c88bf Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_desert_stone_brick.png differ diff --git a/minetestforfun_game/mods/default/textures/default_diamond.png b/minetestforfun_game/mods/default/textures/default_diamond.png new file mode 100644 index 00000000..fcfa2ab9 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_diamond.png differ diff --git a/minetestforfun_game/mods/default/textures/default_diamond_block.png b/minetestforfun_game/mods/default/textures/default_diamond_block.png new file mode 100644 index 00000000..7437f4df Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_diamond_block.png differ diff --git a/minetestforfun_game/mods/default/textures/default_dirt.png b/minetestforfun_game/mods/default/textures/default_dirt.png new file mode 100644 index 00000000..4636d9fd Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_dirt.png differ diff --git a/minetestforfun_game/mods/default/textures/default_dry_shrub.png b/minetestforfun_game/mods/default/textures/default_dry_shrub.png new file mode 100644 index 00000000..f8c39a2e Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_dry_shrub.png differ diff --git a/minetestforfun_game/mods/default/textures/default_fence.png b/minetestforfun_game/mods/default/textures/default_fence.png new file mode 100644 index 00000000..d76c9a58 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_fence.png differ diff --git a/minetestforfun_game/mods/default/textures/default_fence_overlay.png b/minetestforfun_game/mods/default/textures/default_fence_overlay.png new file mode 100644 index 00000000..034fbb0c Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_fence_overlay.png differ diff --git a/minetestforfun_game/mods/default/textures/default_furnace_bottom.png b/minetestforfun_game/mods/default/textures/default_furnace_bottom.png new file mode 100644 index 00000000..1e482da6 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_furnace_bottom.png differ diff --git a/minetestforfun_game/mods/default/textures/default_furnace_fire_bg.png b/minetestforfun_game/mods/default/textures/default_furnace_fire_bg.png new file mode 100644 index 00000000..091679ba Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_furnace_fire_bg.png differ diff --git a/minetestforfun_game/mods/default/textures/default_furnace_fire_fg.png b/minetestforfun_game/mods/default/textures/default_furnace_fire_fg.png new file mode 100644 index 00000000..7a126e32 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_furnace_fire_fg.png differ diff --git a/minetestforfun_game/mods/default/textures/default_furnace_front.png b/minetestforfun_game/mods/default/textures/default_furnace_front.png new file mode 100644 index 00000000..ddb1d0e2 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_furnace_front.png differ diff --git a/minetestforfun_game/mods/default/textures/default_furnace_front_active.png b/minetestforfun_game/mods/default/textures/default_furnace_front_active.png new file mode 100644 index 00000000..1720a9be Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_furnace_front_active.png differ diff --git a/minetestforfun_game/mods/default/textures/default_furnace_lock.png b/minetestforfun_game/mods/default/textures/default_furnace_lock.png new file mode 100644 index 00000000..14362b8a Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_furnace_lock.png differ diff --git a/minetestforfun_game/mods/default/textures/default_furnace_lock_active.png b/minetestforfun_game/mods/default/textures/default_furnace_lock_active.png new file mode 100644 index 00000000..fd472238 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_furnace_lock_active.png differ diff --git a/minetestforfun_game/mods/default/textures/default_furnace_side.png b/minetestforfun_game/mods/default/textures/default_furnace_side.png new file mode 100644 index 00000000..75f46eca Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_furnace_side.png differ diff --git a/minetestforfun_game/mods/default/textures/default_furnace_top.png b/minetestforfun_game/mods/default/textures/default_furnace_top.png new file mode 100644 index 00000000..1e482da6 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_furnace_top.png differ diff --git a/minetestforfun_game/mods/default/textures/default_glass.png b/minetestforfun_game/mods/default/textures/default_glass.png new file mode 100644 index 00000000..b4c7fb5f Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_glass.png differ diff --git a/minetestforfun_game/mods/default/textures/default_glass_detail.png b/minetestforfun_game/mods/default/textures/default_glass_detail.png new file mode 100644 index 00000000..b459665a Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_glass_detail.png differ diff --git a/minetestforfun_game/mods/default/textures/default_glass_frame.png b/minetestforfun_game/mods/default/textures/default_glass_frame.png new file mode 100644 index 00000000..119e4338 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_glass_frame.png differ diff --git a/minetestforfun_game/mods/default/textures/default_gold_block.png b/minetestforfun_game/mods/default/textures/default_gold_block.png new file mode 100644 index 00000000..2337f004 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_gold_block.png differ diff --git a/minetestforfun_game/mods/default/textures/default_gold_ingot.png b/minetestforfun_game/mods/default/textures/default_gold_ingot.png new file mode 100644 index 00000000..04117bc0 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_gold_ingot.png differ diff --git a/minetestforfun_game/mods/default/textures/default_gold_lump.png b/minetestforfun_game/mods/default/textures/default_gold_lump.png new file mode 100644 index 00000000..5c5afefb Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_gold_lump.png differ diff --git a/minetestforfun_game/mods/default/textures/default_grass.png b/minetestforfun_game/mods/default/textures/default_grass.png new file mode 100644 index 00000000..8cd9e1fe Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_grass.png differ diff --git a/minetestforfun_game/mods/default/textures/default_grass_1.png b/minetestforfun_game/mods/default/textures/default_grass_1.png new file mode 100644 index 00000000..3f6f1379 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_grass_1.png differ diff --git a/minetestforfun_game/mods/default/textures/default_grass_2.png b/minetestforfun_game/mods/default/textures/default_grass_2.png new file mode 100644 index 00000000..37d9a4f6 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_grass_2.png differ diff --git a/minetestforfun_game/mods/default/textures/default_grass_3.png b/minetestforfun_game/mods/default/textures/default_grass_3.png new file mode 100644 index 00000000..89e6ac89 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_grass_3.png differ diff --git a/minetestforfun_game/mods/default/textures/default_grass_4.png b/minetestforfun_game/mods/default/textures/default_grass_4.png new file mode 100644 index 00000000..4ab0718b Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_grass_4.png differ diff --git a/minetestforfun_game/mods/default/textures/default_grass_5.png b/minetestforfun_game/mods/default/textures/default_grass_5.png new file mode 100644 index 00000000..9f494d15 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_grass_5.png differ diff --git a/minetestforfun_game/mods/default/textures/default_grass_footsteps.png b/minetestforfun_game/mods/default/textures/default_grass_footsteps.png new file mode 100644 index 00000000..4e44c1f9 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_grass_footsteps.png differ diff --git a/minetestforfun_game/mods/default/textures/default_grass_side.png b/minetestforfun_game/mods/default/textures/default_grass_side.png new file mode 100644 index 00000000..a8a2bb3c Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_grass_side.png differ diff --git a/minetestforfun_game/mods/default/textures/default_gravel.png b/minetestforfun_game/mods/default/textures/default_gravel.png new file mode 100644 index 00000000..752c47ca Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_gravel.png differ diff --git a/minetestforfun_game/mods/default/textures/default_ice.png b/minetestforfun_game/mods/default/textures/default_ice.png new file mode 100644 index 00000000..14e4f563 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_ice.png differ diff --git a/minetestforfun_game/mods/default/textures/default_infotool.png b/minetestforfun_game/mods/default/textures/default_infotool.png new file mode 100644 index 00000000..ffe7674b Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_infotool.png differ diff --git a/minetestforfun_game/mods/default/textures/default_iron_lump.png b/minetestforfun_game/mods/default/textures/default_iron_lump.png new file mode 100644 index 00000000..fcc799c4 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_iron_lump.png differ diff --git a/minetestforfun_game/mods/default/textures/default_junglegrass.png b/minetestforfun_game/mods/default/textures/default_junglegrass.png new file mode 100644 index 00000000..25abb714 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_junglegrass.png differ diff --git a/minetestforfun_game/mods/default/textures/default_jungleleaves.png b/minetestforfun_game/mods/default/textures/default_jungleleaves.png new file mode 100644 index 00000000..65ad8484 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_jungleleaves.png differ diff --git a/minetestforfun_game/mods/default/textures/default_junglesapling.png b/minetestforfun_game/mods/default/textures/default_junglesapling.png new file mode 100644 index 00000000..fbb74d5e Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_junglesapling.png differ diff --git a/minetestforfun_game/mods/default/textures/default_jungletree.png b/minetestforfun_game/mods/default/textures/default_jungletree.png new file mode 100644 index 00000000..bf0403e9 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_jungletree.png differ diff --git a/minetestforfun_game/mods/default/textures/default_jungletree_top.png b/minetestforfun_game/mods/default/textures/default_jungletree_top.png new file mode 100644 index 00000000..e3a3ccc5 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_jungletree_top.png differ diff --git a/minetestforfun_game/mods/default/textures/default_junglewood.png b/minetestforfun_game/mods/default/textures/default_junglewood.png new file mode 100644 index 00000000..1f22d9af Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_junglewood.png differ diff --git a/minetestforfun_game/mods/default/textures/default_ladder.png b/minetestforfun_game/mods/default/textures/default_ladder.png new file mode 100644 index 00000000..7abfcc6d Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_ladder.png differ diff --git a/minetestforfun_game/mods/default/textures/default_ladder_new.png b/minetestforfun_game/mods/default/textures/default_ladder_new.png new file mode 100644 index 00000000..d4bb3975 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_ladder_new.png differ diff --git a/minetestforfun_game/mods/default/textures/default_ladder_new_inv.png b/minetestforfun_game/mods/default/textures/default_ladder_new_inv.png new file mode 100644 index 00000000..7d880a64 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_ladder_new_inv.png differ diff --git a/minetestforfun_game/mods/default/textures/default_lava.png b/minetestforfun_game/mods/default/textures/default_lava.png new file mode 100644 index 00000000..b0d429eb Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_lava.png differ diff --git a/minetestforfun_game/mods/default/textures/default_lava_flowing_animated.png b/minetestforfun_game/mods/default/textures/default_lava_flowing_animated.png new file mode 100644 index 00000000..36b081bd Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_lava_flowing_animated.png differ diff --git a/minetestforfun_game/mods/default/textures/default_lava_source_animated.png b/minetestforfun_game/mods/default/textures/default_lava_source_animated.png new file mode 100644 index 00000000..e69369a3 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_lava_source_animated.png differ diff --git a/minetestforfun_game/mods/default/textures/default_leaves.png b/minetestforfun_game/mods/default/textures/default_leaves.png new file mode 100644 index 00000000..9566dab1 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_leaves.png differ diff --git a/minetestforfun_game/mods/default/textures/default_mese_block.png b/minetestforfun_game/mods/default/textures/default_mese_block.png new file mode 100644 index 00000000..4b052144 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_mese_block.png differ diff --git a/minetestforfun_game/mods/default/textures/default_mese_crystal.png b/minetestforfun_game/mods/default/textures/default_mese_crystal.png new file mode 100644 index 00000000..a1777312 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_mese_crystal.png differ diff --git a/minetestforfun_game/mods/default/textures/default_mese_crystal_fragment.png b/minetestforfun_game/mods/default/textures/default_mese_crystal_fragment.png new file mode 100644 index 00000000..d5416ab0 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_mese_crystal_fragment.png differ diff --git a/minetestforfun_game/mods/default/textures/default_meze_block.png b/minetestforfun_game/mods/default/textures/default_meze_block.png new file mode 100644 index 00000000..f0ac3dca Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_meze_block.png differ diff --git a/minetestforfun_game/mods/default/textures/default_mineral_coal.png b/minetestforfun_game/mods/default/textures/default_mineral_coal.png new file mode 100644 index 00000000..6d1386b9 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_mineral_coal.png differ diff --git a/minetestforfun_game/mods/default/textures/default_mineral_copper.png b/minetestforfun_game/mods/default/textures/default_mineral_copper.png new file mode 100644 index 00000000..c4c518eb Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_mineral_copper.png differ diff --git a/minetestforfun_game/mods/default/textures/default_mineral_diamond.png b/minetestforfun_game/mods/default/textures/default_mineral_diamond.png new file mode 100644 index 00000000..fca966b6 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_mineral_diamond.png differ diff --git a/minetestforfun_game/mods/default/textures/default_mineral_gold.png b/minetestforfun_game/mods/default/textures/default_mineral_gold.png new file mode 100644 index 00000000..2220addd Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_mineral_gold.png differ diff --git a/minetestforfun_game/mods/default/textures/default_mineral_iron.png b/minetestforfun_game/mods/default/textures/default_mineral_iron.png new file mode 100644 index 00000000..6c894ce1 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_mineral_iron.png differ diff --git a/minetestforfun_game/mods/default/textures/default_mineral_mese.png b/minetestforfun_game/mods/default/textures/default_mineral_mese.png new file mode 100644 index 00000000..b14488e4 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_mineral_mese.png differ diff --git a/minetestforfun_game/mods/default/textures/default_mineral_silver.png b/minetestforfun_game/mods/default/textures/default_mineral_silver.png new file mode 100644 index 00000000..9f83f5b6 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_mineral_silver.png differ diff --git a/minetestforfun_game/mods/default/textures/default_mineral_tin.png b/minetestforfun_game/mods/default/textures/default_mineral_tin.png new file mode 100644 index 00000000..8ec4d8bf Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_mineral_tin.png differ diff --git a/minetestforfun_game/mods/default/textures/default_mossycobble.png b/minetestforfun_game/mods/default/textures/default_mossycobble.png new file mode 100644 index 00000000..fa5e7af3 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_mossycobble.png differ diff --git a/minetestforfun_game/mods/default/textures/default_nc_back.png b/minetestforfun_game/mods/default/textures/default_nc_back.png new file mode 100644 index 00000000..e479ace8 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_nc_back.png differ diff --git a/minetestforfun_game/mods/default/textures/default_nc_front.png b/minetestforfun_game/mods/default/textures/default_nc_front.png new file mode 100644 index 00000000..c9dd6a33 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_nc_front.png differ diff --git a/minetestforfun_game/mods/default/textures/default_nc_rb.png b/minetestforfun_game/mods/default/textures/default_nc_rb.png new file mode 100644 index 00000000..685a22cc Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_nc_rb.png differ diff --git a/minetestforfun_game/mods/default/textures/default_nc_side.png b/minetestforfun_game/mods/default/textures/default_nc_side.png new file mode 100644 index 00000000..3152c337 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_nc_side.png differ diff --git a/minetestforfun_game/mods/default/textures/default_obsidian.png b/minetestforfun_game/mods/default/textures/default_obsidian.png new file mode 100644 index 00000000..cb170eae Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_obsidian.png differ diff --git a/minetestforfun_game/mods/default/textures/default_obsidian_glass.png b/minetestforfun_game/mods/default/textures/default_obsidian_glass.png new file mode 100644 index 00000000..ef5f8b5a Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_obsidian_glass.png differ diff --git a/minetestforfun_game/mods/default/textures/default_obsidian_glass_detail.png b/minetestforfun_game/mods/default/textures/default_obsidian_glass_detail.png new file mode 100644 index 00000000..3bfa63c2 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_obsidian_glass_detail.png differ diff --git a/minetestforfun_game/mods/default/textures/default_obsidian_glass_frame.png b/minetestforfun_game/mods/default/textures/default_obsidian_glass_frame.png new file mode 100644 index 00000000..3c4dab41 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_obsidian_glass_frame.png differ diff --git a/minetestforfun_game/mods/default/textures/default_obsidian_shard.png b/minetestforfun_game/mods/default/textures/default_obsidian_shard.png new file mode 100644 index 00000000..a988d8ce Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_obsidian_shard.png differ diff --git a/minetestforfun_game/mods/default/textures/default_paper.png b/minetestforfun_game/mods/default/textures/default_paper.png new file mode 100644 index 00000000..db32a23e Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_paper.png differ diff --git a/minetestforfun_game/mods/default/textures/default_papyrus.png b/minetestforfun_game/mods/default/textures/default_papyrus.png new file mode 100644 index 00000000..96b23c43 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_papyrus.png differ diff --git a/minetestforfun_game/mods/default/textures/default_rail.png b/minetestforfun_game/mods/default/textures/default_rail.png new file mode 100644 index 00000000..061949e8 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_rail.png differ diff --git a/minetestforfun_game/mods/default/textures/default_rail_crossing.png b/minetestforfun_game/mods/default/textures/default_rail_crossing.png new file mode 100644 index 00000000..3774beb8 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_rail_crossing.png differ diff --git a/minetestforfun_game/mods/default/textures/default_rail_curved.png b/minetestforfun_game/mods/default/textures/default_rail_curved.png new file mode 100644 index 00000000..b721289a Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_rail_curved.png differ diff --git a/minetestforfun_game/mods/default/textures/default_rail_t_junction.png b/minetestforfun_game/mods/default/textures/default_rail_t_junction.png new file mode 100644 index 00000000..d6922416 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_rail_t_junction.png differ diff --git a/minetestforfun_game/mods/default/textures/default_sand.png b/minetestforfun_game/mods/default/textures/default_sand.png new file mode 100644 index 00000000..ba5eb0e9 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_sand.png differ diff --git a/minetestforfun_game/mods/default/textures/default_sandstone.png b/minetestforfun_game/mods/default/textures/default_sandstone.png new file mode 100644 index 00000000..90f6dc6d Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_sandstone.png differ diff --git a/minetestforfun_game/mods/default/textures/default_sandstone_brick.png b/minetestforfun_game/mods/default/textures/default_sandstone_brick.png new file mode 100644 index 00000000..82a1e6e8 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_sandstone_brick.png differ diff --git a/minetestforfun_game/mods/default/textures/default_sapling.png b/minetestforfun_game/mods/default/textures/default_sapling.png new file mode 100644 index 00000000..b58b51cd Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_sapling.png differ diff --git a/minetestforfun_game/mods/default/textures/default_scorched_stuff.png b/minetestforfun_game/mods/default/textures/default_scorched_stuff.png new file mode 100644 index 00000000..2a667ecb Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_scorched_stuff.png differ diff --git a/minetestforfun_game/mods/default/textures/default_sign_new.png b/minetestforfun_game/mods/default/textures/default_sign_new.png new file mode 100644 index 00000000..c0654e4f Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_sign_new.png differ diff --git a/minetestforfun_game/mods/default/textures/default_sign_new_inv.png b/minetestforfun_game/mods/default/textures/default_sign_new_inv.png new file mode 100644 index 00000000..76b95fd0 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_sign_new_inv.png differ diff --git a/minetestforfun_game/mods/default/textures/default_sign_wall.png b/minetestforfun_game/mods/default/textures/default_sign_wall.png new file mode 100644 index 00000000..e36361e1 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_sign_wall.png differ diff --git a/minetestforfun_game/mods/default/textures/default_silver_block.png b/minetestforfun_game/mods/default/textures/default_silver_block.png new file mode 100644 index 00000000..0f7918ee Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_silver_block.png differ diff --git a/minetestforfun_game/mods/default/textures/default_silver_ingot.png b/minetestforfun_game/mods/default/textures/default_silver_ingot.png new file mode 100644 index 00000000..4babe963 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_silver_ingot.png differ diff --git a/minetestforfun_game/mods/default/textures/default_silver_lump.png b/minetestforfun_game/mods/default/textures/default_silver_lump.png new file mode 100644 index 00000000..4f686cd9 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_silver_lump.png differ diff --git a/minetestforfun_game/mods/default/textures/default_snow.png b/minetestforfun_game/mods/default/textures/default_snow.png new file mode 100644 index 00000000..2a2439fb Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_snow.png differ diff --git a/minetestforfun_game/mods/default/textures/default_snow_side.png b/minetestforfun_game/mods/default/textures/default_snow_side.png new file mode 100644 index 00000000..3e989151 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_snow_side.png differ diff --git a/minetestforfun_game/mods/default/textures/default_snowball.png b/minetestforfun_game/mods/default/textures/default_snowball.png new file mode 100644 index 00000000..c85e2051 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_snowball.png differ diff --git a/minetestforfun_game/mods/default/textures/default_steel_block.png b/minetestforfun_game/mods/default/textures/default_steel_block.png new file mode 100644 index 00000000..789cc5a0 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_steel_block.png differ diff --git a/minetestforfun_game/mods/default/textures/default_steel_ingot.png b/minetestforfun_game/mods/default/textures/default_steel_ingot.png new file mode 100644 index 00000000..1357a714 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_steel_ingot.png differ diff --git a/minetestforfun_game/mods/default/textures/default_stick.png b/minetestforfun_game/mods/default/textures/default_stick.png new file mode 100644 index 00000000..0ba6720f Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_stick.png differ diff --git a/minetestforfun_game/mods/default/textures/default_stone.png b/minetestforfun_game/mods/default/textures/default_stone.png new file mode 100644 index 00000000..23fba6ab Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_stone.png differ diff --git a/minetestforfun_game/mods/default/textures/default_stone_brick.png b/minetestforfun_game/mods/default/textures/default_stone_brick.png new file mode 100644 index 00000000..12ea9531 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_stone_brick.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tin_block.png b/minetestforfun_game/mods/default/textures/default_tin_block.png new file mode 100644 index 00000000..e746a1e3 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tin_block.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tin_ingot.png b/minetestforfun_game/mods/default/textures/default_tin_ingot.png new file mode 100644 index 00000000..4481928d Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tin_ingot.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tin_lump.png b/minetestforfun_game/mods/default/textures/default_tin_lump.png new file mode 100644 index 00000000..aae9988e Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tin_lump.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tnt_bottom.png b/minetestforfun_game/mods/default/textures/default_tnt_bottom.png new file mode 100644 index 00000000..4eda0603 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tnt_bottom.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tnt_side.png b/minetestforfun_game/mods/default/textures/default_tnt_side.png new file mode 100644 index 00000000..947f862d Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tnt_side.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tnt_top.png b/minetestforfun_game/mods/default/textures/default_tnt_top.png new file mode 100644 index 00000000..a031a34a Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tnt_top.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_bronzeaxe.png b/minetestforfun_game/mods/default/textures/default_tool_bronzeaxe.png new file mode 100644 index 00000000..e35a81e2 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_bronzeaxe.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_bronzepick.png b/minetestforfun_game/mods/default/textures/default_tool_bronzepick.png new file mode 100644 index 00000000..18b18c92 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_bronzepick.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_bronzeshovel.png b/minetestforfun_game/mods/default/textures/default_tool_bronzeshovel.png new file mode 100644 index 00000000..e21a47ef Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_bronzeshovel.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_bronzesword.png b/minetestforfun_game/mods/default/textures/default_tool_bronzesword.png new file mode 100644 index 00000000..597bbe66 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_bronzesword.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_diamondaxe.png b/minetestforfun_game/mods/default/textures/default_tool_diamondaxe.png new file mode 100644 index 00000000..48c1c8b7 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_diamondaxe.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_diamondpick.png b/minetestforfun_game/mods/default/textures/default_tool_diamondpick.png new file mode 100644 index 00000000..10cdd90c Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_diamondpick.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_diamondshovel.png b/minetestforfun_game/mods/default/textures/default_tool_diamondshovel.png new file mode 100644 index 00000000..3998022f Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_diamondshovel.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_diamondsword.png b/minetestforfun_game/mods/default/textures/default_tool_diamondsword.png new file mode 100644 index 00000000..a02acb6a Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_diamondsword.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_goldaxe.png b/minetestforfun_game/mods/default/textures/default_tool_goldaxe.png new file mode 100644 index 00000000..4ec9d094 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_goldaxe.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_goldpick.png b/minetestforfun_game/mods/default/textures/default_tool_goldpick.png new file mode 100644 index 00000000..f6080aa5 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_goldpick.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_goldshovel.png b/minetestforfun_game/mods/default/textures/default_tool_goldshovel.png new file mode 100644 index 00000000..1bb93f1a Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_goldshovel.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_goldsword.png b/minetestforfun_game/mods/default/textures/default_tool_goldsword.png new file mode 100644 index 00000000..ebe737cd Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_goldsword.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_meseaxe.png b/minetestforfun_game/mods/default/textures/default_tool_meseaxe.png new file mode 100644 index 00000000..de972242 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_meseaxe.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_mesepick.png b/minetestforfun_game/mods/default/textures/default_tool_mesepick.png new file mode 100644 index 00000000..17451cb2 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_mesepick.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_meseshovel.png b/minetestforfun_game/mods/default/textures/default_tool_meseshovel.png new file mode 100644 index 00000000..dc58644c Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_meseshovel.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_mesesword.png b/minetestforfun_game/mods/default/textures/default_tool_mesesword.png new file mode 100644 index 00000000..0cba3ed9 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_mesesword.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_nyanaxe.png b/minetestforfun_game/mods/default/textures/default_tool_nyanaxe.png new file mode 100644 index 00000000..7333f364 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_nyanaxe.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_nyanpick.png b/minetestforfun_game/mods/default/textures/default_tool_nyanpick.png new file mode 100644 index 00000000..819eef15 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_nyanpick.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_nyanshovel.png b/minetestforfun_game/mods/default/textures/default_tool_nyanshovel.png new file mode 100644 index 00000000..6d24e8e9 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_nyanshovel.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_nyansword.png b/minetestforfun_game/mods/default/textures/default_tool_nyansword.png new file mode 100644 index 00000000..e431d0cf Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_nyansword.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_silveraxe.png b/minetestforfun_game/mods/default/textures/default_tool_silveraxe.png new file mode 100644 index 00000000..890363de Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_silveraxe.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_silverknife.png b/minetestforfun_game/mods/default/textures/default_tool_silverknife.png new file mode 100644 index 00000000..83c42f9c Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_silverknife.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_silverpick.png b/minetestforfun_game/mods/default/textures/default_tool_silverpick.png new file mode 100644 index 00000000..fd817cca Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_silverpick.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_silvershovel.png b/minetestforfun_game/mods/default/textures/default_tool_silvershovel.png new file mode 100644 index 00000000..2b73c24e Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_silvershovel.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_silversword.png b/minetestforfun_game/mods/default/textures/default_tool_silversword.png new file mode 100644 index 00000000..74b7c87b Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_silversword.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_steelaxe.png b/minetestforfun_game/mods/default/textures/default_tool_steelaxe.png new file mode 100644 index 00000000..3964a754 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_steelaxe.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_steelpick.png b/minetestforfun_game/mods/default/textures/default_tool_steelpick.png new file mode 100644 index 00000000..9df944ff Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_steelpick.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_steelshovel.png b/minetestforfun_game/mods/default/textures/default_tool_steelshovel.png new file mode 100644 index 00000000..05bc02bc Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_steelshovel.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_steelsword.png b/minetestforfun_game/mods/default/textures/default_tool_steelsword.png new file mode 100644 index 00000000..bc1e642c Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_steelsword.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_stoneaxe.png b/minetestforfun_game/mods/default/textures/default_tool_stoneaxe.png new file mode 100644 index 00000000..9a18990b Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_stoneaxe.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_stonepick.png b/minetestforfun_game/mods/default/textures/default_tool_stonepick.png new file mode 100644 index 00000000..0518ca7d Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_stonepick.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_stoneshovel.png b/minetestforfun_game/mods/default/textures/default_tool_stoneshovel.png new file mode 100644 index 00000000..fa29e85c Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_stoneshovel.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_stonesword.png b/minetestforfun_game/mods/default/textures/default_tool_stonesword.png new file mode 100644 index 00000000..e8814ab2 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_stonesword.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_woodaxe.png b/minetestforfun_game/mods/default/textures/default_tool_woodaxe.png new file mode 100644 index 00000000..0d683adf Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_woodaxe.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_woodpick.png b/minetestforfun_game/mods/default/textures/default_tool_woodpick.png new file mode 100644 index 00000000..127a76cb Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_woodpick.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_woodshovel.png b/minetestforfun_game/mods/default/textures/default_tool_woodshovel.png new file mode 100644 index 00000000..5652580d Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_woodshovel.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tool_woodsword.png b/minetestforfun_game/mods/default/textures/default_tool_woodsword.png new file mode 100644 index 00000000..792a0464 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tool_woodsword.png differ diff --git a/minetestforfun_game/mods/default/textures/default_torch.png b/minetestforfun_game/mods/default/textures/default_torch.png new file mode 100644 index 00000000..e21aac33 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_torch.png differ diff --git a/minetestforfun_game/mods/default/textures/default_torch_animated.png b/minetestforfun_game/mods/default/textures/default_torch_animated.png new file mode 100644 index 00000000..2629f85b Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_torch_animated.png differ diff --git a/minetestforfun_game/mods/default/textures/default_torch_new_bottom.png b/minetestforfun_game/mods/default/textures/default_torch_new_bottom.png new file mode 100644 index 00000000..8c2b797e Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_torch_new_bottom.png differ diff --git a/minetestforfun_game/mods/default/textures/default_torch_new_inv.png b/minetestforfun_game/mods/default/textures/default_torch_new_inv.png new file mode 100644 index 00000000..61e8c108 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_torch_new_inv.png differ diff --git a/minetestforfun_game/mods/default/textures/default_torch_new_side.png b/minetestforfun_game/mods/default/textures/default_torch_new_side.png new file mode 100644 index 00000000..71b32df5 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_torch_new_side.png differ diff --git a/minetestforfun_game/mods/default/textures/default_torch_new_top.png b/minetestforfun_game/mods/default/textures/default_torch_new_top.png new file mode 100644 index 00000000..af41037f Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_torch_new_top.png differ diff --git a/minetestforfun_game/mods/default/textures/default_torch_on_ceiling.png b/minetestforfun_game/mods/default/textures/default_torch_on_ceiling.png new file mode 100644 index 00000000..89f41f5b Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_torch_on_ceiling.png differ diff --git a/minetestforfun_game/mods/default/textures/default_torch_on_ceiling_animated.png b/minetestforfun_game/mods/default/textures/default_torch_on_ceiling_animated.png new file mode 100644 index 00000000..b15836dc Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_torch_on_ceiling_animated.png differ diff --git a/minetestforfun_game/mods/default/textures/default_torch_on_floor.png b/minetestforfun_game/mods/default/textures/default_torch_on_floor.png new file mode 100644 index 00000000..1567f0b6 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_torch_on_floor.png differ diff --git a/minetestforfun_game/mods/default/textures/default_torch_on_floor_animated.png b/minetestforfun_game/mods/default/textures/default_torch_on_floor_animated.png new file mode 100644 index 00000000..97bbe436 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_torch_on_floor_animated.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tree.png b/minetestforfun_game/mods/default/textures/default_tree.png new file mode 100644 index 00000000..5fa4b65d Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tree.png differ diff --git a/minetestforfun_game/mods/default/textures/default_tree_top.png b/minetestforfun_game/mods/default/textures/default_tree_top.png new file mode 100644 index 00000000..e672d136 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_tree_top.png differ diff --git a/minetestforfun_game/mods/default/textures/default_water.png b/minetestforfun_game/mods/default/textures/default_water.png new file mode 100644 index 00000000..e94615cc Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_water.png differ diff --git a/minetestforfun_game/mods/default/textures/default_water_flowing_animated.png b/minetestforfun_game/mods/default/textures/default_water_flowing_animated.png new file mode 100644 index 00000000..e97b203b Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_water_flowing_animated.png differ diff --git a/minetestforfun_game/mods/default/textures/default_water_source_animated.png b/minetestforfun_game/mods/default/textures/default_water_source_animated.png new file mode 100644 index 00000000..8509ffd7 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_water_source_animated.png differ diff --git a/minetestforfun_game/mods/default/textures/default_wood.png b/minetestforfun_game/mods/default/textures/default_wood.png new file mode 100644 index 00000000..4f31b6d1 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/default_wood.png differ diff --git a/minetestforfun_game/mods/default/textures/gui_formbg.png b/minetestforfun_game/mods/default/textures/gui_formbg.png new file mode 100644 index 00000000..d38040e3 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/gui_formbg.png differ diff --git a/minetestforfun_game/mods/default/textures/gui_furnace_arrow_bg.png b/minetestforfun_game/mods/default/textures/gui_furnace_arrow_bg.png new file mode 100644 index 00000000..7fbb908c Binary files /dev/null and b/minetestforfun_game/mods/default/textures/gui_furnace_arrow_bg.png differ diff --git a/minetestforfun_game/mods/default/textures/gui_furnace_arrow_fg.png b/minetestforfun_game/mods/default/textures/gui_furnace_arrow_fg.png new file mode 100644 index 00000000..8d3c396e Binary files /dev/null and b/minetestforfun_game/mods/default/textures/gui_furnace_arrow_fg.png differ diff --git a/minetestforfun_game/mods/default/textures/gui_hb_bg.png b/minetestforfun_game/mods/default/textures/gui_hb_bg.png new file mode 100644 index 00000000..99248e17 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/gui_hb_bg.png differ diff --git a/minetestforfun_game/mods/default/textures/gui_hotbar.png b/minetestforfun_game/mods/default/textures/gui_hotbar.png new file mode 100644 index 00000000..cec2ae09 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/gui_hotbar.png differ diff --git a/minetestforfun_game/mods/default/textures/gui_hotbar_selected.png b/minetestforfun_game/mods/default/textures/gui_hotbar_selected.png new file mode 100644 index 00000000..d961f1ae Binary files /dev/null and b/minetestforfun_game/mods/default/textures/gui_hotbar_selected.png differ diff --git a/minetestforfun_game/mods/default/textures/heart.png b/minetestforfun_game/mods/default/textures/heart.png new file mode 100644 index 00000000..af8399ae Binary files /dev/null and b/minetestforfun_game/mods/default/textures/heart.png differ diff --git a/minetestforfun_game/mods/default/textures/player.png b/minetestforfun_game/mods/default/textures/player.png new file mode 100644 index 00000000..6d61c434 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/player.png differ diff --git a/minetestforfun_game/mods/default/textures/player_back.png b/minetestforfun_game/mods/default/textures/player_back.png new file mode 100644 index 00000000..9bba9322 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/player_back.png differ diff --git a/minetestforfun_game/mods/default/textures/smoke_puff.png b/minetestforfun_game/mods/default/textures/smoke_puff.png new file mode 100644 index 00000000..03890e34 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/smoke_puff.png differ diff --git a/minetestforfun_game/mods/default/textures/treeprop.png b/minetestforfun_game/mods/default/textures/treeprop.png new file mode 100644 index 00000000..8ff3e6a1 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/treeprop.png differ diff --git a/minetestforfun_game/mods/default/textures/unknown_item.png b/minetestforfun_game/mods/default/textures/unknown_item.png new file mode 100644 index 00000000..059cf13a Binary files /dev/null and b/minetestforfun_game/mods/default/textures/unknown_item.png differ diff --git a/minetestforfun_game/mods/default/textures/unknown_node.png b/minetestforfun_game/mods/default/textures/unknown_node.png new file mode 100644 index 00000000..20b6508a Binary files /dev/null and b/minetestforfun_game/mods/default/textures/unknown_node.png differ diff --git a/minetestforfun_game/mods/default/textures/unknown_object.png b/minetestforfun_game/mods/default/textures/unknown_object.png new file mode 100644 index 00000000..bfeab954 Binary files /dev/null and b/minetestforfun_game/mods/default/textures/unknown_object.png differ diff --git a/minetestforfun_game/mods/default/textures/wieldhand.png b/minetestforfun_game/mods/default/textures/wieldhand.png new file mode 100644 index 00000000..2307ba4e Binary files /dev/null and b/minetestforfun_game/mods/default/textures/wieldhand.png differ diff --git a/minetestforfun_game/mods/default/tools.lua b/minetestforfun_game/mods/default/tools.lua new file mode 100755 index 00000000..af0a7ee6 --- /dev/null +++ b/minetestforfun_game/mods/default/tools.lua @@ -0,0 +1,508 @@ +-- mods/default/tools.lua + +-- The hand +minetest.register_item(":", { + type = "none", + wield_image = "wieldhand.png", + range = 5, + tool_capabilities = { + full_punch_interval = 0.8, + max_drop_level = 0, + groupcaps = { + 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 = 2}, + } +}) + +-- +-- Picks +-- + +minetest.register_tool("default:pick_wood", { + description = "Wooden Pickaxe", + inventory_image = "default_tool_woodpick.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level = 0, + groupcaps = { + cracky = {times = {[1] = 6.5, [2] = 2.0, [3] = 1.2}, uses = 20, maxlevel = 1}, + }, + damage_groups = {fleshy = 3}, + }, +}) +minetest.register_tool("default:pick_stone", { + description = "Stone Pickaxe", + inventory_image = "default_tool_stonepick.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level = 0, + groupcaps = { + cracky = {times = {[1] = 5.5, [2] = 1.6, [3] = 0.9}, uses = 20, maxlevel = 1}, + crumbly = {times = {[1] = 2.6, [2] = 1.4, [3] = 0.44}, uses = 20, maxlevel = 1}, + }, + damage_groups = {fleshy = 3}, + }, +}) +minetest.register_tool("default:pick_steel", { + description = "Steel Pickaxe", + inventory_image = "default_tool_steelpick.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level = 1, + groupcaps = { + cracky = {times = {[1] = 4.0, [2] = 1.3, [3] = 0.85}, uses = 20, maxlevel = 2}, + crumbly = {times = {[1] = 2.4, [2] = 1.2, [3] = 0.39}, uses = 20, maxlevel = 1}, + }, + damage_groups = {fleshy = 4}, + }, +}) +minetest.register_tool("default:pick_bronze", { + description = "Bronze Pickaxe", + inventory_image = "default_tool_bronzepick.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level = 1, + groupcaps = { + cracky = {times = {[1] = 4.0, [2] = 1.3, [3] = 0.85}, uses = 30, maxlevel = 2}, + crumbly = {times = {[1] = 2.4, [2] = 1.2, [3] = 0.39}, uses = 30, maxlevel = 1}, + }, + damage_groups = {fleshy = 4}, + }, +}) +minetest.register_tool("default:pick_silver", { + description = "Silver Pickaxe", + inventory_image = "default_tool_silverpick.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level = 1, + groupcaps = { + cracky = {times = {[1] = 2.4, [2] = 1.0, [3] = 0.65}, uses = 20, maxlevel = 2}, + crumbly = {times = {[1] = 2.0, [2] = 0.9, [3] = 0.36}, uses = 20, maxlevel = 1}, + }, + damage_groups = {fleshy = 4}, + }, +}) +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.4, [2] = 1.0, [3] = 0.65}, uses = 5, maxlevel = 3}, + crumbly = {times = {[1] = 2.0, [2] = 0.9, [3] = 0.36}, uses = 5, maxlevel = 2}, + }, + damage_groups = {fleshy = 5}, + }, +}) +minetest.register_tool("default:pick_diamond", { + description = "Diamond Pickaxe", + inventory_image = "default_tool_diamondpick.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level = 3, + groupcaps = { + cracky = {times = {[1] = 2.4, [2] = 1.0, [3] = 0.65}, uses = 25, maxlevel = 3}, + crumbly = {times = {[1] = 2.0, [2] = 0.9, [3] = 0.36}, uses = 25, maxlevel = 2}, + }, + damage_groups = {fleshy = 5}, + }, +}) +minetest.register_tool("default:pick_nyan", { + description = "Nyan Pickaxe", + inventory_image = "default_tool_nyanpick.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level = 3, + groupcaps = { + cracky = {times = {[1] = 2.4, [2] = 1.0, [3] = 0.65}, uses = 75, maxlevel = 3}, + crumbly = {times = {[1] = 2.0, [2] = 0.9, [3] = 0.36}, uses = 75, maxlevel = 2}, + }, + damage_groups = {fleshy = 5}, + }, +}) +minetest.register_tool("default:pick_mese", { + description = "Mese Pickaxe", + inventory_image = "default_tool_mesepick.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level = 3, + groupcaps = { + cracky = {times = {[1] = 1.8, [2] = 0.75, [3] = 0.45}, uses = 15, maxlevel = 3}, + crumbly = {times = {[1] = 1.65, [2] = 0.6, [3] = 0.32}, uses = 15, maxlevel = 3}, + }, + damage_groups = {fleshy = 5}, + }, +}) + +-- +-- Shovels +-- + +minetest.register_tool("default:shovel_wood", { + description = "Wooden Shovel", + inventory_image = "default_tool_woodshovel.png", + wield_image = "default_tool_woodshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level = 0, + groupcaps = { + crumbly = {times = {[1] = 2.6, [2] = 1.4, [3] = 0.44}, uses = 20, maxlevel = 1}, + }, + damage_groups = {fleshy = 2}, + }, +}) +minetest.register_tool("default:shovel_stone", { + description = "Stone Shovel", + inventory_image = "default_tool_stoneshovel.png", + wield_image = "default_tool_stoneshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level = 0, + groupcaps = { + crumbly = {times = {[1] = 2.4, [2] = 1.2, [3] = 0.39}, uses = 20, maxlevel = 1}, + }, + damage_groups = {fleshy = 3}, + }, +}) +minetest.register_tool("default:shovel_steel", { + description = "Steel Shovel", + inventory_image = "default_tool_steelshovel.png", + wield_image = "default_tool_steelshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level = 1, + groupcaps = { + crumbly = {times = {[1] = 2.0, [2] = 0.9, [3] = 0.36}, uses = 30, maxlevel = 2}, + }, + damage_groups = {fleshy = 3}, + }, +}) +minetest.register_tool("default:shovel_bronze", { + description = "Bronze Shovel", + inventory_image = "default_tool_bronzeshovel.png", + wield_image = "default_tool_bronzeshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level = 1, + groupcaps = { + crumbly = {times = {[1] = 2.0, [2] = 0.9, [3] = 0.36}, uses = 40, maxlevel = 2}, + }, + 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 = 1.2, + max_drop_level = 1, + groupcaps = { + crumbly = {times = {[1] = 1.65, [2] = 0.6, [3] = 0.32}, uses = 30, 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.65, [2] = 0.6, [3] = 0.32}, uses = 5, maxlevel = 3}, + }, + damage_groups = {fleshy = 4}, + }, +}) +minetest.register_tool("default:shovel_diamond", { + description = "Diamond Shovel", + inventory_image = "default_tool_diamondshovel.png", + wield_image = "default_tool_diamondshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level = 1, + groupcaps = { + crumbly = {times = {[1] = 1.65, [2] = 0.6, [3] = 0.32}, uses = 25, maxlevel = 3}, + }, + damage_groups = {fleshy = 4}, + }, +}) +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.65, [2] = 0.6, [3] = 0.32}, uses = 75, maxlevel = 3}, + }, + damage_groups = {fleshy = 4}, + }, +}) +minetest.register_tool("default:shovel_mese", { + description = "Mese Shovel", + inventory_image = "default_tool_meseshovel.png", + wield_image = "default_tool_meseshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level = 3, + groupcaps = { + crumbly = {times = {[1] = 1.25, [2] = 0.45, [3] = 0.26}, uses = 15, maxlevel = 3}, + }, + damage_groups = {fleshy = 4}, + }, +}) + +-- +-- Axes +-- + +minetest.register_tool("default:axe_wood", { + description = "Wooden Axe", + inventory_image = "default_tool_woodaxe.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level = 0, + groupcaps = { + choppy = {times = {[2] = 2.0, [3] = 1.3}, uses = 20, maxlevel = 1}, + snappy = {times = {[3] = 0.2}, uses = 0, maxlevel = 1}, + }, + damage_groups = {fleshy = 3}, + }, +}) +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.0, [2] = 1.6, [3] = 1.1}, uses = 20, maxlevel = 1}, + snappy = {times = {[3] = 0.175}, uses = 0, maxlevel = 1}, + }, + damage_groups = {fleshy = 4}, + }, +}) +minetest.register_tool("default:axe_steel", { + description = "Steel Axe", + inventory_image = "default_tool_steelaxe.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level = 1, + groupcaps = { + choppy = {times = {[1] = 2.5, [2] = 1.3, [3] = 0.9}, uses = 20, maxlevel = 2}, + snappy = {times = {[3] = 0.15}, uses = 0, maxlevel = 1}, + }, + damage_groups = {fleshy = 5}, + }, +}) +minetest.register_tool("default:axe_bronze", { + description = "Bronze Axe", + inventory_image = "default_tool_bronzeaxe.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level = 1, + groupcaps = { + choppy = {times = {[1] = 2.5, [2] = 1.3, [3] = 0.9}, uses = 30, maxlevel = 2}, + snappy = {times = {[3] = 0.15}, uses = 0, maxlevel = 1}, + }, + damage_groups = {fleshy = 5}, + }, +}) +minetest.register_tool("default:axe_silver", { + description = "Silver Axe", + inventory_image = "default_tool_silveraxe.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level = 1, + groupcaps = { + choppy = {times = {[1] = 2.2, [2] = 1.0, [3] = 0.55}, uses = 20, maxlevel = 2}, + snappy = {times = {[3] = 0.125}, uses = 0, maxlevel = 1}, + }, + damage_groups = {fleshy = 5}, + }, +}) +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] = 2.2, [2] = 1.0, [3] = 0.55}, uses = 5, maxlevel = 3}, + snappy = {times = {[3] = 0.125}, uses = 0, maxlevel = 1}, + }, + damage_groups = {fleshy = 6}, + }, +}) +minetest.register_tool("default:axe_diamond", { + description = "Diamond Axe", + inventory_image = "default_tool_diamondaxe.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level = 1, + groupcaps = { + choppy = {times = {[1] = 2.2, [2] = 1.0, [3] = 0.55}, uses = 25, maxlevel = 3}, + snappy = {times = {[3] = 0.125}, uses = 0, maxlevel = 1}, + }, + damage_groups = {fleshy = 6}, + }, +}) +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.2, [2] = 1.0, [3] = 0.55}, uses = 75, maxlevel = 3}, + snappy = {times = {[3] = 0.125}, uses = 0, maxlevel = 1}, + }, + damage_groups = {fleshy = 6}, + }, +}) +minetest.register_tool("default:axe_mese", { + description = "Mese Axe", + inventory_image = "default_tool_meseaxe.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level = 1, + groupcaps = { + choppy = {times = {[1] = 1.5, [2] = 0.75, [3] = 0.4}, uses = 15, maxlevel = 3}, + snappy = {times = {[3] = 0.1}, uses = 0, maxlevel = 1}, + }, + damage_groups = {fleshy = 6}, + }, +}) + +-- +-- Swords +-- + +minetest.register_tool("default:sword_wood", { + description = "Wooden Sword", + inventory_image = "default_tool_woodsword.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level = 0, + groupcaps = { + snappy = {times = {[2] = 1.4, [3] = 0.2}, uses = 20, maxlevel = 1}, + }, + damage_groups = {fleshy = 3}, + } +}) +minetest.register_tool("default:sword_stone", { + description = "Stone Sword", + inventory_image = "default_tool_stonesword.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level = 0, + groupcaps = { + snappy = {times = {[2] = 1.2, [3] = 0.175}, uses = 20, maxlevel = 1}, + }, + damage_groups = {fleshy = 4}, + } +}) +minetest.register_tool("default:sword_steel", { + description = "Steel Sword", + inventory_image = "default_tool_steelsword.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level = 1, + groupcaps = { + snappy = {times = {[1] = 2.2, [2] = 1.2, [3] = 0.15}, uses = 30, maxlevel = 2}, + }, + damage_groups = {fleshy = 5}, + } +}) +minetest.register_tool("default:sword_bronze", { + description = "Bronze Sword", + inventory_image = "default_tool_bronzesword.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level = 1, + groupcaps = { + snappy = {times = {[1] = 2.2, [2] = 1.2, [3] = 0.15}, uses = 40, maxlevel = 2}, + }, + 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.9, + max_drop_level = 1, + groupcaps = { + snappy = {times = {[1] = 1.9, [2] = 0.85, [3] = 0.125}, uses = 30, maxlevel = 2}, + }, + 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.9, + max_drop_level = 1, + groupcaps = { + snappy = {times = {[1] = 1.9, [2] = 0.85, [3] = 0.125}, uses = 5, 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.9, + max_drop_level = 1, + groupcaps = { + snappy = {times = {[1] = 1.9, [2] = 0.85, [3] = 0.125}, uses = 25, maxlevel = 3}, + }, + damage_groups = {fleshy = 6}, + } +}) +minetest.register_tool("default:sword_nyan", { + description = "Nyan Sword", + inventory_image = "default_tool_nyansword.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level = 1, + groupcaps = { + snappy = {times = {[1] = 1.9, [2] = 0.85, [3] = 0.125}, uses = 75, maxlevel = 3}, + }, + damage_groups = {fleshy = 6}, + } +}) +minetest.register_tool("default:sword_mese", { + description = "Mese Sword", + inventory_image = "default_tool_mesesword.png", + tool_capabilities = { + full_punch_interval = 0.675, + max_drop_level = 1, + groupcaps = { + snappy = {times = {[1] = 1.5, [2] = 0.7, [3] = 0.1}, uses = 15, maxlevel = 3}, + }, + damage_groups = {fleshy = 6}, + } +}) + + + +minetest.register_tool("default:knife_silver", { + description = "Knife", + inventory_image = "default_tool_silverknife.png", + wield_image = "default_tool_silverknife.png^[transformR90", + tool_capabilities = { + full_punch_interval = 0.4, + damage_groups = {fleshy = 3}, + } +}) diff --git a/minetestforfun_game/mods/default/trees.lua b/minetestforfun_game/mods/default/trees.lua new file mode 100644 index 00000000..b994cc1f --- /dev/null +++ b/minetestforfun_game/mods/default/trees.lua @@ -0,0 +1,182 @@ +-- +-- Grow trees +-- + +local random = math.random + +local function 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 + return true +end + +minetest.register_abm({ + nodenames = {"default:sapling"}, + interval = 10, + chance = 50, + action = function(pos, node) + if not can_grow(pos) then + return + end + + minetest.log("action", "A sapling grows into a tree at "..minetest.pos_to_string(pos)) + default.grow_tree(pos, random(1, 4) == 1) + end +}) + +minetest.register_abm({ + nodenames = {"default:junglesapling"}, + interval = 10, + chance = 50, + action = function(pos, node) + if not can_grow(pos) then + return + end + + minetest.log("action", "A jungle sapling grows into a tree at ".. + minetest.pos_to_string(pos)) + default.grow_jungletree(pos) + end +}) + + +local c_air = minetest.get_content_id("air") +local c_apple = minetest.get_content_id("default:apple") + +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 + + -- Trunk + for y_dist = 0, height - 1 do + local vi = a:index(x, y + y_dist, z) + if y_dist == 0 or data[vi] == c_air or data[vi] == 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 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 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 + + +local c_tree = minetest.get_content_id("default:tree") +local c_leaves = minetest.get_content_id("default:leaves") + +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 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 + +local c_jungletree = minetest.get_content_id("default:jungletree") +local c_jungleleaves = minetest.get_content_id("default:jungleleaves") + +function default.grow_jungletree(pos, 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_jungletree") + end + + local x, y, z = pos.x, pos.y, pos.z + local height = random(8, 12) + + local vm = minetest.get_voxel_manip() + local minp, maxp = vm:read_from_map( + {x = pos.x - 3, y = pos.y - 1, z = pos.z - 3}, + {x = pos.x + 3, y = pos.y + height + 1, z = pos.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 then + data[vi_1] = c_jungletree + elseif data[vi_2] == c_air 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 diff --git a/minetestforfun_game/mods/doors/README.txt b/minetestforfun_game/mods/doors/README.txt new file mode 100755 index 00000000..146af8ed --- /dev/null +++ b/minetestforfun_game/mods/doors/README.txt @@ -0,0 +1,46 @@ +Minetest 0.4 mod: doors +======================= +version: 1.3 + +License of source code: +----------------------- +Copyright (C) 2012 PilzAdam +modified by BlockMen (added sounds, glassdoors[glass, obsidian glass], trapdoor) + +This program is free software. It comes without any warranty, to +the extent permitted by applicable law. You can redistribute it +and/or modify it under the terms of the Do What The Fuck You Want +To Public License, Version 2, as published by Sam Hocevar. See +http://sam.zoy.org/wtfpl/COPYING for more details. + +License of textures +-------------------------------------- +following Textures created by Fernando Zapata (CC BY-SA 3.0): + door_wood.png + door_wood_a.png + door_wood_a_r.png + door_wood_b.png + door_wood_b_r.png + +following Textures created by BlockMen (WTFPL): + door_trapdoor.png + door_obsidian_glass_side.png + +following textures created by celeron55 (CC BY-SA 3.0): + door_trapdoor_side.png + door_glass_a.png + door_glass_b.png + +following Textures created by PenguinDad (CC BY-SA 4.0): + door_glass.png + door_obsidian_glass.png + +All other textures (created by PilzAdam): WTFPL + + +License of sounds +-------------------------------------- +Opening-Sound created by CGEffex (CC BY 3.0), modified by BlockMen + door_open.ogg +Closing-Sound created by bennstir (CC BY 3.0) + door_close.ogg diff --git a/minetestforfun_game/mods/doors/depends.txt b/minetestforfun_game/mods/doors/depends.txt new file mode 100755 index 00000000..4ad96d51 --- /dev/null +++ b/minetestforfun_game/mods/doors/depends.txt @@ -0,0 +1 @@ +default diff --git a/minetestforfun_game/mods/doors/init.lua b/minetestforfun_game/mods/doors/init.lua new file mode 100644 index 00000000..a52015f1 --- /dev/null +++ b/minetestforfun_game/mods/doors/init.lua @@ -0,0 +1,462 @@ +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 + +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 + end +end + +function doors:register_door(name, def) + def.groups.not_in_creative_inventory = 1 + + local box = {{-0.5, -0.5, -0.5, 0.5, 0.5, -0.5+1.5/16}} + + if not def.node_box_bottom then + def.node_box_bottom = box + end + if not def.node_box_top then + def.node_box_top = box + end + if not def.selection_box_bottom then + def.selection_box_bottom= box + end + if not def.selection_box_top then + def.selection_box_top = box + end + + minetest.register_craftitem(name, { + description = def.description, + inventory_image = def.inventory_image, + + on_place = function(itemstack, placer, pointed_thing) + if not pointed_thing.type == "node" then + return itemstack + end + + local ptu = pointed_thing.under + local nu = minetest.get_node(ptu) + if minetest.registered_nodes[nu.name].on_rightclick then + return minetest.registered_nodes[nu.name].on_rightclick(ptu, nu, placer, itemstack) + end + + local pt = pointed_thing.above + local pt2 = {x = pt.x, y = pt.y, z = pt.z} + pt2.y = pt2.y+1 + if + not minetest.registered_nodes[minetest.get_node(pt).name].buildable_to or + not minetest.registered_nodes[minetest.get_node(pt2).name].buildable_to or + not placer or + not placer:is_player() + then + return itemstack + end + + if minetest.is_protected(pt, placer:get_player_name()) or + minetest.is_protected(pt2, placer:get_player_name()) then + minetest.record_protection_violation(pt, placer:get_player_name()) + return itemstack + end + + local p2 = minetest.dir_to_facedir(placer:get_look_dir()) + local pt3 = {x = pt.x, y = pt.y, z = pt.z} + if p2 == 0 then + pt3.x = pt3.x-1 + elseif p2 == 1 then + pt3.z = pt3.z+1 + elseif p2 == 2 then + pt3.x = pt3.x+1 + elseif p2 == 3 then + pt3.z = pt3.z-1 + end + if 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}) + else + minetest.set_node(pt, {name =name.."_b_2", param2 = p2}) + minetest.set_node(pt2, {name =name.."_t_2", param2 = p2}) + end + + if def.only_placer_can_open then + local pn = placer:get_player_name() + local meta = minetest.get_meta(pt) + meta:set_string("doors_owner", pn) + meta:set_string("infotext", "Owned by "..pn) + meta = minetest.get_meta(pt2) + meta:set_string("doors_owner", pn) + meta:set_string("infotext", "Owned by "..pn) + end + + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack + end, + }) + + local tt = def.tiles_top + local tb = def.tiles_bottom + + local function after_dig_node(pos, name, digger) + local node = minetest.get_node(pos) + if node.name == name then + minetest.node_dig(pos, node, digger) + end + end + + local function on_rightclick(pos, dir, check_name, replace, replace_dir, params) + pos.y = pos.y+dir + if not minetest.get_node(pos).name == check_name then + return + end + local p2 = minetest.get_node(pos).param2 + p2 = params[p2+1] + + minetest.swap_node(pos, {name =replace_dir, param2 = p2}) + + pos.y = pos.y-dir + minetest.swap_node(pos, {name =replace, param2 = p2}) + + local snd_1 = "_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.175, max_hear_distance = 16}) + else + minetest.sound_play("door"..snd_2, {pos = pos, gain = 0.175, max_hear_distance = 16}) + end + end + + local function check_player_priv(pos, player) + if not def.only_placer_can_open then + return true + end + local meta = minetest.get_meta(pos) + local pn = player:get_player_name() + return meta:get_string("doors_owner") == pn + end + + minetest.register_node(name.."_b_1", { + tiles = {tb[2], tb[2], tb[2], tb[2], tb[1], tb[1].."^[transformfx"}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + drop = name, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = def.node_box_bottom + }, + selection_box = { + type = "fixed", + fixed = def.selection_box_bottom + }, + groups = def.groups, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + pos.y = pos.y+1 + after_dig_node(pos, name.."_t_1", digger) + end, + + on_rightclick = function(pos, node, clicker) + if check_player_priv(pos, clicker) then + on_rightclick(pos, 1, name.."_t_1", name.."_b_2", name.."_t_2", {1,2,3,0}) + end + end, + + can_dig = check_player_priv, + sounds = def.sounds, + sunlight_propagates = def.sunlight + }) + + minetest.register_node(name.."_t_1", { + tiles = {tt[2], tt[2], tt[2], tt[2], tt[1], tt[1].."^[transformfx"}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + 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", + sunlight_propagates = true, + 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", + sunlight_propagates = true, + drop = "", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = def.node_box_top + }, + selection_box = { + type = "fixed", + fixed = def.selection_box_top + }, + groups = def.groups, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + pos.y = pos.y-1 + after_dig_node(pos, name.."_b_2", digger) + end, + + on_rightclick = function(pos, node, clicker) + if check_player_priv(pos, clicker) then + on_rightclick(pos, -1, name.."_b_2", name.."_t_1", name.."_b_1", {3,0,1,2}) + end + end, + + can_dig = check_player_priv, + sounds = def.sounds, + sunlight_propagates = def.sunlight + }) + +end + +doors:register_door("doors:door_wood", { + description = "Wooden Door", + inventory_image = "door_wood.png", + groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, door= 1}, + tiles_bottom = {"door_wood_b.png", "door_brown.png"}, + tiles_top = {"door_wood_a.png", "door_brown.png"}, + sounds = default.node_sound_wood_defaults(), + sunlight = false, +}) + +minetest.register_craft({ + output = "doors:door_wood 3", + recipe = { + {"group:wood", "group:wood"}, + {"group:wood", "group:wood"}, + {"group:wood", "group:wood"} + } +}) + +doors:register_door("doors:door_steel", { + description = "Steel Door", + inventory_image = "door_steel.png", + groups = {snappy = 1,bendy = 2, cracky = 1,melty = 2,level= 2, door= 1}, + tiles_bottom = {"door_steel_b.png", "door_grey.png"}, + tiles_top = {"door_steel_a.png", "door_grey.png"}, + only_placer_can_open = true, + sounds = default.node_sound_wood_defaults(), + sunlight = false, +}) + +minetest.register_craft({ + output = "doors:door_steel 3", + recipe = { + {"default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot"} + } +}) + +doors:register_door("doors:door_glass", { + description = "Glass Door", + inventory_image = "door_glass.png", + groups = {snappy = 1, cracky = 1, oddly_breakable_by_hand = 3, door= 1}, + tiles_bottom = {"door_glass_b.png", "door_glass_side.png"}, + tiles_top = {"door_glass_a.png", "door_glass_side.png"}, + sounds = default.node_sound_glass_defaults(), + sunlight = true, +}) + +minetest.register_craft({ + output = "doors:door_glass 3", + recipe = { + {"default:glass", "default:glass"}, + {"default:glass", "default:glass"}, + {"default:glass", "default:glass"} + } +}) + +doors:register_door("doors:door_obsidian_glass", { + description = "Obsidian Glass Door", + inventory_image = "door_obsidian_glass.png", + groups = {snappy = 1, cracky = 1, oddly_breakable_by_hand = 3, door= 1}, + tiles_bottom = {"door_obsidian_glass_b.png", "door_obsidian_glass_side.png"}, + tiles_top = {"door_obsidian_glass_b.png", "door_obsidian_glass_side.png"}, + sounds = default.node_sound_glass_defaults(), + sunlight = true, +}) + +minetest.register_craft({ + output = "doors:door_obsidian_glass 3", + recipe = { + {"default:obsidian_glass", "default:obsidian_glass"}, + {"default:obsidian_glass", "default:obsidian_glass"}, + {"default:obsidian_glass", "default:obsidian_glass"} + } +}) + + +---- Trapdoors ---- + +local function update_door(pos, node) + minetest.set_node(pos, node) +end + +local function punch(pos) + local meta = minetest.get_meta(pos) + local state = meta:get_int("state") + local me = minetest.get_node(pos) + local tmp_node + local tmp_node2 + oben = {x = pos.x, y = pos.y+1, z = pos.z} + if state == 1 then + state = 0 + minetest.sound_play("door_close", {pos = pos, gain = 0.175, max_hear_distance = 16}) + tmp_node = {name = "doors:trapdoor", param1 = me.param1, param2 = me.param2} + else + state = 1 + minetest.sound_play("door_open", {pos = pos, gain = 0.175, max_hear_distance = 16}) + tmp_node = {name = "doors:trapdoor_open", param1 = me.param1, param2 = me.param2} + end + update_door(pos, tmp_node) + meta:set_int("state", state) +end + +minetest.register_node("doors:trapdoor", { + description = "Trapdoor", + inventory_image = "door_trapdoor.png", + drawtype = "nodebox", + tiles = {"door_trapdoor.png", "door_trapdoor.png", "door_trapdoor_side.png", "door_trapdoor_side.png", "door_trapdoor_side.png", "door_trapdoor_side.png"}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, door= 1}, + sounds = default.node_sound_wood_defaults(), + drop = "doors:trapdoor", + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5} + }, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5} + }, + on_creation = function(pos) + state = 0 + end, + on_rightclick = function(pos, node, clicker) + punch(pos) + end, +}) + +minetest.register_node("doors:trapdoor_open", { + drawtype = "nodebox", + tiles = {"door_trapdoor_side.png", "door_trapdoor_side.png", "door_trapdoor_side.png", "door_trapdoor_side.png", "door_trapdoor.png", "door_trapdoor.png"}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + climbable = true, + 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, +}) + +minetest.register_craft({ + output = "doors:trapdoor 6", + recipe = { + {"group:wood", "group:wood", "group:wood"}, + {"group:wood", "group:wood", "group:wood"}, + {"", "", ""}, + } +}) + +if minetest.setting_getbool("log_mods") then + minetest.log("action", "Carbone: [doors] loaded.") +end diff --git a/minetestforfun_game/mods/doors/sounds/door_close.ogg b/minetestforfun_game/mods/doors/sounds/door_close.ogg new file mode 100755 index 00000000..a39452ba Binary files /dev/null and b/minetestforfun_game/mods/doors/sounds/door_close.ogg differ diff --git a/minetestforfun_game/mods/doors/sounds/door_open.ogg b/minetestforfun_game/mods/doors/sounds/door_open.ogg new file mode 100755 index 00000000..7ec7f480 Binary files /dev/null and b/minetestforfun_game/mods/doors/sounds/door_open.ogg differ diff --git a/minetestforfun_game/mods/doors/textures/door_brown.png b/minetestforfun_game/mods/doors/textures/door_brown.png new file mode 100755 index 00000000..74785ec8 Binary files /dev/null and b/minetestforfun_game/mods/doors/textures/door_brown.png differ diff --git a/minetestforfun_game/mods/doors/textures/door_glass.png b/minetestforfun_game/mods/doors/textures/door_glass.png new file mode 100755 index 00000000..49ec245c Binary files /dev/null and b/minetestforfun_game/mods/doors/textures/door_glass.png differ diff --git a/minetestforfun_game/mods/doors/textures/door_glass_a.png b/minetestforfun_game/mods/doors/textures/door_glass_a.png new file mode 100755 index 00000000..b4c7fb5f Binary files /dev/null and b/minetestforfun_game/mods/doors/textures/door_glass_a.png differ diff --git a/minetestforfun_game/mods/doors/textures/door_glass_b.png b/minetestforfun_game/mods/doors/textures/door_glass_b.png new file mode 100755 index 00000000..b4c7fb5f Binary files /dev/null and b/minetestforfun_game/mods/doors/textures/door_glass_b.png differ diff --git a/minetestforfun_game/mods/doors/textures/door_glass_side.png b/minetestforfun_game/mods/doors/textures/door_glass_side.png new file mode 100755 index 00000000..755672bd Binary files /dev/null and b/minetestforfun_game/mods/doors/textures/door_glass_side.png differ diff --git a/minetestforfun_game/mods/doors/textures/door_grey.png b/minetestforfun_game/mods/doors/textures/door_grey.png new file mode 100755 index 00000000..ca16af0c Binary files /dev/null and b/minetestforfun_game/mods/doors/textures/door_grey.png differ diff --git a/minetestforfun_game/mods/doors/textures/door_obsidian_glass.png b/minetestforfun_game/mods/doors/textures/door_obsidian_glass.png new file mode 100755 index 00000000..c3277204 Binary files /dev/null and b/minetestforfun_game/mods/doors/textures/door_obsidian_glass.png differ diff --git a/minetestforfun_game/mods/doors/textures/door_obsidian_glass_a.png b/minetestforfun_game/mods/doors/textures/door_obsidian_glass_a.png new file mode 100755 index 00000000..ef5f8b5a Binary files /dev/null and b/minetestforfun_game/mods/doors/textures/door_obsidian_glass_a.png differ diff --git a/minetestforfun_game/mods/doors/textures/door_obsidian_glass_b.png b/minetestforfun_game/mods/doors/textures/door_obsidian_glass_b.png new file mode 100755 index 00000000..ef5f8b5a Binary files /dev/null and b/minetestforfun_game/mods/doors/textures/door_obsidian_glass_b.png differ diff --git a/minetestforfun_game/mods/doors/textures/door_obsidian_glass_side.png b/minetestforfun_game/mods/doors/textures/door_obsidian_glass_side.png new file mode 100755 index 00000000..0df598b8 Binary files /dev/null and b/minetestforfun_game/mods/doors/textures/door_obsidian_glass_side.png differ diff --git a/minetestforfun_game/mods/doors/textures/door_steel.png b/minetestforfun_game/mods/doors/textures/door_steel.png new file mode 100755 index 00000000..042a1bc0 Binary files /dev/null and b/minetestforfun_game/mods/doors/textures/door_steel.png differ diff --git a/minetestforfun_game/mods/doors/textures/door_steel_a.png b/minetestforfun_game/mods/doors/textures/door_steel_a.png new file mode 100755 index 00000000..59603c17 Binary files /dev/null and b/minetestforfun_game/mods/doors/textures/door_steel_a.png differ diff --git a/minetestforfun_game/mods/doors/textures/door_steel_b.png b/minetestforfun_game/mods/doors/textures/door_steel_b.png new file mode 100755 index 00000000..bafacd86 Binary files /dev/null and b/minetestforfun_game/mods/doors/textures/door_steel_b.png differ diff --git a/minetestforfun_game/mods/doors/textures/door_trapdoor.png b/minetestforfun_game/mods/doors/textures/door_trapdoor.png new file mode 100755 index 00000000..3039dd80 Binary files /dev/null and b/minetestforfun_game/mods/doors/textures/door_trapdoor.png differ diff --git a/minetestforfun_game/mods/doors/textures/door_trapdoor_side.png b/minetestforfun_game/mods/doors/textures/door_trapdoor_side.png new file mode 100755 index 00000000..c8605230 Binary files /dev/null and b/minetestforfun_game/mods/doors/textures/door_trapdoor_side.png differ diff --git a/minetestforfun_game/mods/doors/textures/door_wood.png b/minetestforfun_game/mods/doors/textures/door_wood.png new file mode 100755 index 00000000..d3a62ab1 Binary files /dev/null and b/minetestforfun_game/mods/doors/textures/door_wood.png differ diff --git a/minetestforfun_game/mods/doors/textures/door_wood_a.png b/minetestforfun_game/mods/doors/textures/door_wood_a.png new file mode 100755 index 00000000..a878e515 Binary files /dev/null and b/minetestforfun_game/mods/doors/textures/door_wood_a.png differ diff --git a/minetestforfun_game/mods/doors/textures/door_wood_b.png b/minetestforfun_game/mods/doors/textures/door_wood_b.png new file mode 100755 index 00000000..6842057a Binary files /dev/null and b/minetestforfun_game/mods/doors/textures/door_wood_b.png differ diff --git a/minetestforfun_game/mods/dye/README.txt b/minetestforfun_game/mods/dye/README.txt new file mode 100755 index 00000000..d414c2cc --- /dev/null +++ b/minetestforfun_game/mods/dye/README.txt @@ -0,0 +1,15 @@ +Minetest 0.4 mod: dye +====================== + +See init.lua for documentation. + +License of source code and media files: +--------------------------------------- +Copyright (C) 2012 Perttu Ahola (celeron55) + +This program is free software. It comes without any warranty, to +the extent permitted by applicable law. You can redistribute it +and/or modify it under the terms of the Do What The Fuck You Want +To Public License, Version 2, as published by Sam Hocevar. See +http://sam.zoy.org/wtfpl/COPYING for more details. + diff --git a/minetestforfun_game/mods/dye/depends.txt b/minetestforfun_game/mods/dye/depends.txt new file mode 100755 index 00000000..e69de29b diff --git a/minetestforfun_game/mods/dye/init.lua b/minetestforfun_game/mods/dye/init.lua new file mode 100755 index 00000000..810502d2 --- /dev/null +++ b/minetestforfun_game/mods/dye/init.lua @@ -0,0 +1,145 @@ +-- minetest/dye/init.lua + +-- To make recipes that will work with any dye ever made by anybody, define +-- them based on groups. +-- You can select any group of groups, based on your need for amount of colors. +-- basecolor: 9, excolor: 17, unicolor: 89 +-- +-- Example of one shapeless recipe using a color group: +-- Note: As this uses basecolor_*, you'd need 9 of these. +-- minetest.register_craft({ +-- type = "shapeless", +-- output = ':item_yellow', +-- recipe = {':item_no_color', 'group:basecolor_yellow'}, +-- }) + +-- Other mods can use these for looping through available colors +local dye = {} +dye.basecolors = {"white", "grey", "black", "red", "yellow", "green", "cyan", "blue", "magenta"} +dye.excolors = {"white", "lightgrey", "grey", "darkgrey", "black", "red", "orange", "yellow", "lime", "green", "aqua", "cyan", "sky_blue", "blue", "violet", "magenta", "red_violet"} + +-- Base color groups: +-- - basecolor_white +-- - basecolor_grey +-- - basecolor_black +-- - basecolor_red +-- - basecolor_yellow +-- - basecolor_green +-- - basecolor_cyan +-- - basecolor_blue +-- - basecolor_magenta + +-- Extended color groups (* = equal to a base color): +-- * excolor_white +-- - excolor_lightgrey +-- * excolor_grey +-- - excolor_darkgrey +-- * excolor_black +-- * excolor_red +-- - excolor_orange +-- * excolor_yellow +-- - excolor_lime +-- * excolor_green +-- - excolor_aqua +-- * excolor_cyan +-- - excolor_sky_blue +-- * excolor_blue +-- - excolor_violet +-- * excolor_magenta +-- - excolor_red_violet + +-- The whole unifieddyes palette as groups: +-- - unicolor_ +-- For the following, no white/grey/black is allowed: +-- - unicolor_medium_ +-- - unicolor_dark_ +-- - unicolor_light_ +-- - unicolor__s50 +-- - unicolor_medium__s50 +-- - unicolor_dark__s50 + +-- Local stuff +local dyelocal = {} + +-- This collection of colors is partly a historic thing, partly something else. +dyelocal.dyes = { + {"white", "White dye", {dye=1, basecolor_white=1, excolor_white=1, unicolor_white=1}}, + {"grey", "Grey dye", {dye=1, basecolor_grey=1, excolor_grey=1, unicolor_grey=1}}, + {"dark_grey", "Dark grey dye", {dye=1, basecolor_grey=1, excolor_darkgrey=1, unicolor_darkgrey=1}}, + {"black", "Black dye", {dye=1, basecolor_black=1, excolor_black=1, unicolor_black=1}}, + {"violet", "Violet dye", {dye=1, basecolor_magenta=1, excolor_violet=1, unicolor_violet=1}}, + {"blue", "Blue dye", {dye=1, basecolor_blue=1, excolor_blue=1, unicolor_blue=1}}, + {"cyan", "Cyan dye", {dye=1, basecolor_cyan=1, excolor_cyan=1, unicolor_cyan=1}}, + {"dark_green", "Dark green dye",{dye=1, basecolor_green=1, excolor_green=1, unicolor_dark_green=1}}, + {"green", "Green dye", {dye=1, basecolor_green=1, excolor_green=1, unicolor_green=1}}, + {"yellow", "Yellow dye", {dye=1, basecolor_yellow=1, excolor_yellow=1, unicolor_yellow=1}}, + {"brown", "Brown dye", {dye=1, basecolor_brown=1, excolor_orange=1, unicolor_dark_orange=1}}, + {"orange", "Orange dye", {dye=1, basecolor_orange=1, excolor_orange=1, unicolor_orange=1}}, + {"red", "Red dye", {dye=1, basecolor_red=1, excolor_red=1, unicolor_red=1}}, + {"magenta", "Magenta dye", {dye=1, basecolor_magenta=1, excolor_red_violet=1,unicolor_red_violet=1}}, + {"pink", "Pink dye", {dye=1, basecolor_red=1, excolor_red=1, unicolor_light_red=1}}, +} + +-- Define items +for _, row in ipairs(dyelocal.dyes) do + local name = row[1] + local description = row[2] + local groups = row[3] + local item_name = "dye:"..name + local item_image = "dye_"..name..".png" + minetest.register_craftitem(item_name, { + inventory_image = item_image, + description = description, + groups = groups + }) + minetest.register_craft({ + type = "shapeless", + output = item_name.." 4", + recipe = {"group:flower,color_"..name}, + }) +end +-- manually add coal->black dye +minetest.register_craft({ + type = "shapeless", + output = "dye:black 4", + recipe = {"group:coal"}, +}) + +-- Mix recipes +-- Just mix everything to everything somehow sanely + +dyelocal.mixbases = {"magenta", "red", "orange", "brown", "yellow", "green", "dark_green", "cyan", "blue", "violet", "black", "dark_grey", "grey", "white"} + +dyelocal.mixes = { + -- magenta, red, orange, brown, yellow, green, dark_green, cyan, blue, violet, black, dark_grey, grey, white + white = {"pink", "pink", "orange", "orange", "yellow", "green", "green", "grey", "cyan", "violet", "grey", "grey", "white", "white"}, + grey = {"pink", "pink", "orange", "orange", "yellow", "green", "green", "grey", "cyan", "pink", "dark_grey","grey", "grey"}, + dark_grey={"brown","brown", "brown", "brown", "brown","dark_green","dark_green","blue","blue","violet","black", "black"}, + black = {"black", "black", "black", "black", "black", "black", "black", "black", "black", "black", "black"}, + violet= {"magenta","magenta","red", "brown", "red", "cyan", "brown", "blue", "violet","violet"}, + blue = {"violet", "magenta","brown","brown","dark_green","cyan","cyan", "cyan", "blue"}, + cyan = {"blue","brown","dark_green","dark_grey","green","cyan","dark_green","cyan"}, + dark_green={"brown","brown","brown", "brown", "green", "green", "dark_green"}, + green = {"brown", "yellow","yellow","dark_green","green","green"}, + yellow= {"red", "orange", "yellow","orange", "yellow"}, + brown = {"brown", "brown","orange", "brown"}, + orange= {"red", "orange","orange"}, + red = {"magenta","red"}, + magenta={"magenta"}, +} + +for one,results in pairs(dyelocal.mixes) do + for i,result in ipairs(results) do + local another = dyelocal.mixbases[i] + minetest.register_craft({ + type = "shapeless", + output = 'dye:'..result..' 2', + recipe = {'dye:'..one, 'dye:'..another}, + }) + end +end + +-- Hide dyelocal +dyelocal = nil + +-- EOF diff --git a/minetestforfun_game/mods/dye/textures/dye_black.png b/minetestforfun_game/mods/dye/textures/dye_black.png new file mode 100755 index 00000000..1055b6c2 Binary files /dev/null and b/minetestforfun_game/mods/dye/textures/dye_black.png differ diff --git a/minetestforfun_game/mods/dye/textures/dye_blue.png b/minetestforfun_game/mods/dye/textures/dye_blue.png new file mode 100755 index 00000000..d1377c6b Binary files /dev/null and b/minetestforfun_game/mods/dye/textures/dye_blue.png differ diff --git a/minetestforfun_game/mods/dye/textures/dye_brown.png b/minetestforfun_game/mods/dye/textures/dye_brown.png new file mode 100755 index 00000000..77d475cd Binary files /dev/null and b/minetestforfun_game/mods/dye/textures/dye_brown.png differ diff --git a/minetestforfun_game/mods/dye/textures/dye_cyan.png b/minetestforfun_game/mods/dye/textures/dye_cyan.png new file mode 100755 index 00000000..239d66ce Binary files /dev/null and b/minetestforfun_game/mods/dye/textures/dye_cyan.png differ diff --git a/minetestforfun_game/mods/dye/textures/dye_dark_green.png b/minetestforfun_game/mods/dye/textures/dye_dark_green.png new file mode 100755 index 00000000..9606ccf4 Binary files /dev/null and b/minetestforfun_game/mods/dye/textures/dye_dark_green.png differ diff --git a/minetestforfun_game/mods/dye/textures/dye_dark_grey.png b/minetestforfun_game/mods/dye/textures/dye_dark_grey.png new file mode 100755 index 00000000..060737ba Binary files /dev/null and b/minetestforfun_game/mods/dye/textures/dye_dark_grey.png differ diff --git a/minetestforfun_game/mods/dye/textures/dye_green.png b/minetestforfun_game/mods/dye/textures/dye_green.png new file mode 100755 index 00000000..0d99ee1c Binary files /dev/null and b/minetestforfun_game/mods/dye/textures/dye_green.png differ diff --git a/minetestforfun_game/mods/dye/textures/dye_grey.png b/minetestforfun_game/mods/dye/textures/dye_grey.png new file mode 100755 index 00000000..5efb0280 Binary files /dev/null and b/minetestforfun_game/mods/dye/textures/dye_grey.png differ diff --git a/minetestforfun_game/mods/dye/textures/dye_magenta.png b/minetestforfun_game/mods/dye/textures/dye_magenta.png new file mode 100755 index 00000000..c84df62c Binary files /dev/null and b/minetestforfun_game/mods/dye/textures/dye_magenta.png differ diff --git a/minetestforfun_game/mods/dye/textures/dye_orange.png b/minetestforfun_game/mods/dye/textures/dye_orange.png new file mode 100755 index 00000000..08449073 Binary files /dev/null and b/minetestforfun_game/mods/dye/textures/dye_orange.png differ diff --git a/minetestforfun_game/mods/dye/textures/dye_pink.png b/minetestforfun_game/mods/dye/textures/dye_pink.png new file mode 100755 index 00000000..c3dec22a Binary files /dev/null and b/minetestforfun_game/mods/dye/textures/dye_pink.png differ diff --git a/minetestforfun_game/mods/dye/textures/dye_red.png b/minetestforfun_game/mods/dye/textures/dye_red.png new file mode 100755 index 00000000..14eafbf4 Binary files /dev/null and b/minetestforfun_game/mods/dye/textures/dye_red.png differ diff --git a/minetestforfun_game/mods/dye/textures/dye_violet.png b/minetestforfun_game/mods/dye/textures/dye_violet.png new file mode 100755 index 00000000..600cbb44 Binary files /dev/null and b/minetestforfun_game/mods/dye/textures/dye_violet.png differ diff --git a/minetestforfun_game/mods/dye/textures/dye_white.png b/minetestforfun_game/mods/dye/textures/dye_white.png new file mode 100755 index 00000000..2a840a41 Binary files /dev/null and b/minetestforfun_game/mods/dye/textures/dye_white.png differ diff --git a/minetestforfun_game/mods/dye/textures/dye_yellow.png b/minetestforfun_game/mods/dye/textures/dye_yellow.png new file mode 100755 index 00000000..fe75775e Binary files /dev/null and b/minetestforfun_game/mods/dye/textures/dye_yellow.png differ diff --git a/minetestforfun_game/mods/farming/API.txt b/minetestforfun_game/mods/farming/API.txt new file mode 100644 index 00000000..a2f3d9d6 --- /dev/null +++ b/minetestforfun_game/mods/farming/API.txt @@ -0,0 +1,27 @@ +farming.register_hoe(name, hoe definition) + -> Register a new hoe, see [hoe definition] + +farming.register_plant(name, Plant definition) + -> Register a new growing plant, see [Plant definition] + +Hoe Definition +{ + description = "", -- Description for tooltip + inventory_image = "unknown_item.png", -- Image to be used as wield- and inventory image + max_uses = 30, -- Uses until destroyed + recipe = { -- Craft recipe + {"air", "air", "air"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +} + +Plant definition +{ + description = "", -- Description of seed item + inventory_image = "unknown_item.png", -- Image to be used as seed's wield- and inventory image + steps = 8, -- How many steps the plant has to grow, until it can be harvested + ^ Always provide a plant texture for ech step, format: modname_plantname_i.png (i = stepnumber) + minlight = 13, -- Minimum light to grow + maxlight = LIGHT_MAX -- Maximum light to grow +} \ No newline at end of file diff --git a/minetestforfun_game/mods/farming/README.txt b/minetestforfun_game/mods/farming/README.txt new file mode 100644 index 00000000..4663181a --- /dev/null +++ b/minetestforfun_game/mods/farming/README.txt @@ -0,0 +1,59 @@ +Minetest 0.4 mod: farming +========================= + +License of source code: +----------------------- +Copyright (C) 2014 webdesigner97 + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2004 Sam Hocevar + + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. + +License of media (textures): +---------------------------- +Created by PilzAdam (License: WTFPL): + farming_bread.png + farming_soil.png + farming_soil_wet.png + farming_soil_wet_side.png + farming_string.png + +Created by BlockMen (License: CC BY 3.0): + farming_tool_diamondhoe.png + farming_tool_mesehoe.png + farming_tool_bronzehoe.png + farming_tool_steelhoe.png + farming_tool_stonehoe.png + farming_tool_woodhoe.png + +Created by VanessaE (License: WTFPL): + farming_cotton_seed.png + farming_wheat_seed.png + farming_flour.png + farming_wheat.png + farming_wheat_1.png + farming_wheat_2.png + farming_wheat_3.png + farming_wheat_4.png + farming_wheat_5.png + farming_wheat_5.png + farming_wheat_7.png + farming_wheat_8.png + farming_cotton_1.png + farming_cotton_2.png + farming_cotton_3.png + farming_cotton_4.png + farming_cotton_5.png + farming_cotton_6.png + farming_cotton_7.png + farming_cotton_8.png diff --git a/minetestforfun_game/mods/farming/api.lua b/minetestforfun_game/mods/farming/api.lua new file mode 100644 index 00000000..6ce996d8 --- /dev/null +++ b/minetestforfun_game/mods/farming/api.lua @@ -0,0 +1,284 @@ +-- Wear out hoes, place soil +-- TODO Ignore group:flower +farming.hoe_on_use = function(itemstack, user, pointed_thing, uses) + local pt = pointed_thing + -- check if pointing at a node + if not pt then + return + end + if pt.type ~= "node" then + return + end + + local under = minetest.get_node(pt.under) + local p = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z} + local above = minetest.get_node(p) + + -- return if any of the nodes is not registered + if not minetest.registered_nodes[under.name] then + return + end + if not minetest.registered_nodes[above.name] then + return + end + + -- check if the node above the pointed thing is air + if above.name ~= "air" then + return + end + + -- check if pointing at soil + if minetest.get_item_group(under.name, "soil") ~= 1 then + return + end + + -- check if (wet) soil defined + local regN = minetest.registered_nodes + if regN[under.name].soil == nil or regN[under.name].soil.wet == nil or regN[under.name].soil.dry == nil then + return + end + + -- turn the node into soil, wear out item and play sound + minetest.set_node(pt.under, {name = regN[under.name].soil.dry}) + minetest.sound_play("default_dig_crumbly", { + pos = pt.under, + gain = 0.5, + }) + + if not minetest.setting_getbool("creative_mode") then + itemstack:add_wear(65535/(uses-1)) + end + return itemstack +end + +-- Register new hoes +farming.register_hoe = function(name, def) + -- Check for : prefix (register new hoes in your mod's namespace) + if name:sub(1,1) ~= ":" then + name = ":" .. name + end + -- Check def table + if def.description == nil then + def.description = "Hoe" + end + if def.inventory_image == nil then + def.inventory_image = "unknown_item.png" + end + if def.recipe == nil then + def.recipe = { + {"air","air",""}, + {"","group:stick",""}, + {"","group:stick",""} + } + end + if def.max_uses == nil then + def.max_uses = 30 + end + -- Register the tool + minetest.register_tool(name, { + description = def.description, + inventory_image = def.inventory_image, + on_use = function(itemstack, user, pointed_thing) + return farming.hoe_on_use(itemstack, user, pointed_thing, def.max_uses) + end + }) + -- Register its recipe + minetest.register_craft({ + output = name:gsub(":", "", 1), + recipe = def.recipe + }) +end + +-- Seed placement +farming.place_seed = function(itemstack, placer, pointed_thing, plantname) + local pt = pointed_thing + -- check if pointing at a node + if not pt then + return + end + if pt.type ~= "node" then + return + end + + local under = minetest.get_node(pt.under) + local above = minetest.get_node(pt.above) + + -- return if any of the nodes is not registered + if not minetest.registered_nodes[under.name] then + return + end + if not minetest.registered_nodes[above.name] then + return + end + + -- check if pointing at the top of the node + if pt.above.y ~= pt.under.y+1 then + return + end + + -- check if you can replace the node above the pointed node + if not minetest.registered_nodes[above.name].buildable_to then + return + end + + -- check if pointing at soil + if minetest.get_item_group(under.name, "soil") < 2 then + return + end + + -- add the node and remove 1 item from the itemstack + minetest.add_node(pt.above, {name = plantname, param2 = 1}) + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack +end + +-- Register plants +farming.register_plant = function(name, def) + local mname = name:split(":")[1] + local pname = name:split(":")[2] + + -- Check def table + if not def.description then + def.description = "Seed" + end + if not def.inventory_image then + def.inventory_image = "unknown_item.png" + end + if not def.steps then + return nil + end + if not def.minlight then + def.minlight = 1 + end + if not def.maxlight then + def.maxlight = 14 + end + if not def.fertility then + def.fertility = {} + end + + -- Register seed + local g = {seed = 1, snappy = 3, attached_node = 1} + for k, v in pairs(def.fertility) do + g[v] = 1 + end + minetest.register_node(":" .. mname .. ":seed_" .. pname, { + description = def.description, + tiles = {def.inventory_image}, + inventory_image = def.inventory_image, + wield_image = def.inventory_image, + drawtype = "signlike", + groups = g, + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + sunlight_propagates = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, + }, + fertility = def.fertility, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, mname .. ":seed_" .. pname) + end + }) + + -- Register harvest + minetest.register_craftitem(":" .. mname .. ":" .. pname, { + description = pname:gsub("^%l", string.upper), + inventory_image = mname .. "_" .. pname .. ".png", + }) + + -- Register growing steps + for i=1,def.steps do + local drop = { + items = { + {items = {mname .. ":" .. pname}, rarity = 9 - i}, + {items = {mname .. ":" .. pname}, rarity= 18 - i * 2}, + {items = {mname .. ":seed_" .. pname}, rarity = 9 - i}, + {items = {mname .. ":seed_" .. pname}, rarity = 18 - i * 2}, + } + } + local nodegroups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1} + nodegroups[pname] = i + minetest.register_node(mname .. ":" .. pname .. "_" .. i, { + drawtype = "plantlike", + waving = 1, + tiles = {mname .. "_" .. pname .. "_" .. i .. ".png"}, + paramtype = "light", + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = drop, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, + }, + groups = nodegroups, + sounds = default.node_sound_leaves_defaults(), + }) + end + + -- Growing ABM + minetest.register_abm({ + nodenames = {"group:" .. pname, "group:seed"}, + neighbors = {"group:soil"}, + interval = 90, + chance = 2, + action = function(pos, node) + local plant_height = minetest.get_item_group(node.name, pname) + + -- return if already full grown + if plant_height == def.steps then + return + end + + local node_def = minetest.registered_items[node.name] or nil + + -- grow seed + if minetest.get_item_group(node.name, "seed") and node_def.fertility then + local can_grow = false + local soil_node = minetest.get_node_or_nil({x = pos.x, y = pos.y - 1, z = pos.z}) + if not soil_node then + return + end + for _, v in pairs(node_def.fertility) do + if minetest.get_item_group(soil_node.name, v) ~= 0 then + can_grow = true + end + end + if can_grow then + minetest.set_node(pos, {name = node.name:gsub("seed_", "") .. "_1"}) + end + return + end + + -- check if on wet soil + pos.y = pos.y - 1 + local n = minetest.get_node(pos) + if minetest.get_item_group(n.name, "soil") < 3 then + return + end + pos.y = pos.y + 1 + + -- check light + local ll = minetest.get_node_light(pos) + + if not ll or ll < def.minlight or ll > def.maxlight then + return + end + + -- grow + minetest.set_node(pos, {name = mname .. ":" .. pname .. "_" .. plant_height + 1}) + end + }) + + -- Return + local r = { + seed = mname .. ":seed_" .. pname, + harvest = mname .. ":" .. pname + } + return r +end diff --git a/minetestforfun_game/mods/farming/depends.txt b/minetestforfun_game/mods/farming/depends.txt new file mode 100644 index 00000000..470ec30b --- /dev/null +++ b/minetestforfun_game/mods/farming/depends.txt @@ -0,0 +1,2 @@ +default +wool diff --git a/minetestforfun_game/mods/farming/hoes.lua b/minetestforfun_game/mods/farming/hoes.lua new file mode 100644 index 00000000..084d586f --- /dev/null +++ b/minetestforfun_game/mods/farming/hoes.lua @@ -0,0 +1,65 @@ +farming.register_hoe(":farming:hoe_wood", { + description = "Wooden Hoe", + inventory_image = "farming_tool_woodhoe.png", + max_uses = 30, + recipe = { + {"group:wood", "group:wood"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) + +farming.register_hoe(":farming:hoe_stone", { + description = "Stone Hoe", + inventory_image = "farming_tool_stonehoe.png", + max_uses = 90, + recipe = { + {"group:stone", "group:stone"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) + +farming.register_hoe(":farming:hoe_steel", { + description = "Steel Hoe", + inventory_image = "farming_tool_steelhoe.png", + max_uses = 200, + recipe = { + {"default:steel_ingot", "default:steel_ingot"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) + +farming.register_hoe(":farming:hoe_bronze", { + description = "Bronze Hoe", + inventory_image = "farming_tool_bronzehoe.png", + max_uses = 220, + recipe = { + {"default:bronze_ingot", "default:bronze_ingot"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) + +farming.register_hoe(":farming:hoe_mese", { + description = "Mese Hoe", + inventory_image = "farming_tool_mesehoe.png", + max_uses = 350, + recipe = { + {"default:mese_crystal", "default:mese_crystal"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) + +farming.register_hoe(":farming:hoe_diamond", { + description = "Diamond Hoe", + inventory_image = "farming_tool_diamondhoe.png", + max_uses = 500, + recipe = { + {"default:diamond", "default:diamond"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) diff --git a/minetestforfun_game/mods/farming/init.lua b/minetestforfun_game/mods/farming/init.lua new file mode 100644 index 00000000..9245470f --- /dev/null +++ b/minetestforfun_game/mods/farming/init.lua @@ -0,0 +1,61 @@ +-- Global farming namespace +farming = {} +farming.path = minetest.get_modpath("farming") + +-- Load files +dofile(farming.path .. "/api.lua") +dofile(farming.path .. "/nodes.lua") +dofile(farming.path .. "/hoes.lua") + +-- WHEAT +farming.register_plant("farming:wheat", { + description = "Wheat seed", + inventory_image = "farming_wheat_seed.png", + steps = 8, + minlight = 13, + maxlight = LIGHT_MAX, + fertility = {"grassland"} +}) +minetest.register_craftitem("farming:flour", { + description = "Flour", + inventory_image = "farming_flour.png", +}) + +minetest.register_craftitem("farming:bread", { + description = "Bread", + inventory_image = "farming_bread.png", + on_use = minetest.item_eat(4), +}) + +minetest.register_craft({ + type = "shapeless", + output = "farming:flour", + recipe = {"farming:wheat", "farming:wheat", "farming:wheat", "farming:wheat"} +}) + +minetest.register_craft({ + type = "cooking", + cooktime = 15, + output = "farming:bread", + recipe = "farming:flour" +}) + +-- Cotton +farming.register_plant("farming:cotton", { + description = "Cotton seed", + inventory_image = "farming_cotton_seed.png", + steps = 8, + minlight = 13, + maxlight = LIGHT_MAX, + fertility = {"grassland", "desert"} +}) + +minetest.register_alias("farming:string", "farming:cotton") + +minetest.register_craft({ + output = "wool:white", + recipe = { + {"farming:cotton", "farming:cotton"}, + {"farming:cotton", "farming:cotton"}, + } +}) diff --git a/minetestforfun_game/mods/farming/nodes.lua b/minetestforfun_game/mods/farming/nodes.lua new file mode 100644 index 00000000..ba7aed47 --- /dev/null +++ b/minetestforfun_game/mods/farming/nodes.lua @@ -0,0 +1,148 @@ +minetest.override_item("default:dirt", { + groups = {crumbly=3,soil=1}, + soil = { + base = "default:dirt", + dry = "farming:soil", + wet = "farming:soil_wet" + } +}) + +minetest.override_item("default:dirt_with_grass", { + groups = {crumbly=3,soil=1}, + soil = { + base = "default:dirt_with_grass", + dry = "farming:soil", + wet = "farming:soil_wet" + } +}) + +minetest.register_node("farming:soil", { + description = "Soil", + tiles = {"farming_soil.png", "default_dirt.png"}, + drop = "default:dirt", + is_ground_content = true, + groups = {crumbly=3, not_in_creative_inventory=1, soil=2, grassland = 1, field = 1}, + sounds = default.node_sound_dirt_defaults(), + soil = { + base = "default:dirt", + dry = "farming:soil", + wet = "farming:soil_wet" + } +}) + +minetest.register_node("farming:soil_wet", { + description = "Wet Soil", + tiles = {"farming_soil_wet.png", "farming_soil_wet_side.png"}, + drop = "default:dirt", + is_ground_content = true, + groups = {crumbly=3, not_in_creative_inventory=1, soil=3, wet = 1, grassland = 1, field = 1}, + sounds = default.node_sound_dirt_defaults(), + soil = { + base = "default:dirt", + dry = "farming:soil", + wet = "farming:soil_wet" + } +}) + +minetest.override_item("default:desert_sand", { + groups = {crumbly=3, falling_node=1, sand=1, soil = 1}, + soil = { + base = "default:desert_sand", + dry = "farming:desert_sand_soil", + wet = "farming:desert_sand_soil_wet" + } +}) +minetest.register_node("farming:desert_sand_soil", { + description = "Desert Sand Soil", + drop = "default:desert_sand", + tiles = {"farming_desert_sand_soil.png", "default_desert_sand.png"}, + is_ground_content = true, + groups = {crumbly=3, not_in_creative_inventory = 1, falling_node=1, sand=1, soil = 2, desert = 1, field = 1}, + sounds = default.node_sound_sand_defaults(), + soil = { + base = "default:desert_sand", + dry = "farming:desert_sand_soil", + wet = "farming:desert_sand_soil_wet" + } +}) + +minetest.register_node("farming:desert_sand_soil_wet", { + description = "Wet Desert Sand Soil", + drop = "default:desert_sand", + tiles = {"farming_desert_sand_soil_wet.png", "farming_desert_sand_soil_wet_side.png"}, + is_ground_content = true, + groups = {crumbly=3, falling_node=1, sand=1, not_in_creative_inventory=1, soil=3, wet = 1, desert = 1, field = 1}, + sounds = default.node_sound_sand_defaults(), + soil = { + base = "default:desert_sand", + dry = "farming:desert_sand_soil", + wet = "farming:desert_sand_soil_wet" + } +}) + +minetest.register_abm({ + nodenames = {"group:field"}, + interval = 15, + chance = 4, + action = function(pos, node) + local n_def = minetest.registered_nodes[node.name] or nil + local wet = n_def.soil.wet or nil + local base = n_def.soil.base or nil + local dry = n_def.soil.dry or nil + if not n_def or not n_def.soil or not wet or not base or not dry then + return + end + + pos.y = pos.y + 1 + local nn = minetest.get_node_or_nil(pos) + if not nn or not nn.name then + return + end + local nn_def = minetest.registered_nodes[nn.name] or nil + pos.y = pos.y - 1 + + if nn_def and nn_def.walkable and minetest.get_item_group(nn.name, "plant") == 0 then + minetest.set_node(pos, {name = base}) + return + end + -- check if there is water nearby + if minetest.find_node_near(pos, 3, {"group:water"}) then + local wet_lvl = minetest.get_item_group(node.name, "wet") + -- if it is dry soil and not base node, turn it into wet soil + if wet_lvl == 0 then + minetest.set_node(pos, {name = wet}) + end + else + -- turn it back into base if it is already dry + if wet_lvl == 0 then + -- only turn it back if there is no plant/seed on top of it + if minetest.get_item_group(nn.name, "plant") == 0 and minetest.get_item_group(nn.name, "seed") == 0 then + minetest.set_node(pos, {name = base}) + end + + -- if its wet turn it back into dry soil + elseif wet_lvl == 1 then + minetest.set_node(pos, {name = dry}) + end + end + end, +}) + + +for i = 1, 5 do + minetest.override_item("default:grass_"..i, {drop = { + max_items = 1, + items = { + {items = {'farming:seed_wheat'},rarity = 5}, + {items = {'default:grass_1'}}, + } + }}) +end + +minetest.override_item("default:junglegrass", {drop = { + max_items = 1, + items = { + {items = {'farming:seed_cotton'},rarity = 8}, + {items = {'default:junglegrass'}}, + } +}}) diff --git a/minetestforfun_game/mods/farming/textures/farming_bread.png b/minetestforfun_game/mods/farming/textures/farming_bread.png new file mode 100644 index 00000000..00e53719 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_bread.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_cotton.png b/minetestforfun_game/mods/farming/textures/farming_cotton.png new file mode 100644 index 00000000..e2bbfd7a Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_cotton.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_cotton_1.png b/minetestforfun_game/mods/farming/textures/farming_cotton_1.png new file mode 100644 index 00000000..2581db59 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_cotton_1.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_cotton_2.png b/minetestforfun_game/mods/farming/textures/farming_cotton_2.png new file mode 100644 index 00000000..af9ed340 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_cotton_2.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_cotton_3.png b/minetestforfun_game/mods/farming/textures/farming_cotton_3.png new file mode 100644 index 00000000..ba46f3d6 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_cotton_3.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_cotton_4.png b/minetestforfun_game/mods/farming/textures/farming_cotton_4.png new file mode 100644 index 00000000..e6708b55 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_cotton_4.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_cotton_5.png b/minetestforfun_game/mods/farming/textures/farming_cotton_5.png new file mode 100644 index 00000000..0ad6a8f5 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_cotton_5.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_cotton_6.png b/minetestforfun_game/mods/farming/textures/farming_cotton_6.png new file mode 100644 index 00000000..838fa930 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_cotton_6.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_cotton_7.png b/minetestforfun_game/mods/farming/textures/farming_cotton_7.png new file mode 100644 index 00000000..f2623c25 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_cotton_7.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_cotton_8.png b/minetestforfun_game/mods/farming/textures/farming_cotton_8.png new file mode 100644 index 00000000..d4bf6bd5 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_cotton_8.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_cotton_seed.png b/minetestforfun_game/mods/farming/textures/farming_cotton_seed.png new file mode 100644 index 00000000..cff769b2 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_cotton_seed.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_desert_sand_soil.png b/minetestforfun_game/mods/farming/textures/farming_desert_sand_soil.png new file mode 100644 index 00000000..1450e014 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_desert_sand_soil.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_desert_sand_soil_wet.png b/minetestforfun_game/mods/farming/textures/farming_desert_sand_soil_wet.png new file mode 100644 index 00000000..cffa955d Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_desert_sand_soil_wet.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_desert_sand_soil_wet_side.png b/minetestforfun_game/mods/farming/textures/farming_desert_sand_soil_wet_side.png new file mode 100644 index 00000000..fbb2815e Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_desert_sand_soil_wet_side.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_flour.png b/minetestforfun_game/mods/farming/textures/farming_flour.png new file mode 100644 index 00000000..bd33f937 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_flour.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_soil.png b/minetestforfun_game/mods/farming/textures/farming_soil.png new file mode 100644 index 00000000..0be94e3c Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_soil.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_soil_wet.png b/minetestforfun_game/mods/farming/textures/farming_soil_wet.png new file mode 100644 index 00000000..d5e335ef Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_soil_wet.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_soil_wet_side.png b/minetestforfun_game/mods/farming/textures/farming_soil_wet_side.png new file mode 100644 index 00000000..6bd3a56c Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_soil_wet_side.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_tool_bronzehoe.png b/minetestforfun_game/mods/farming/textures/farming_tool_bronzehoe.png new file mode 100644 index 00000000..ef07a80a Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_tool_bronzehoe.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_tool_diamondhoe.png b/minetestforfun_game/mods/farming/textures/farming_tool_diamondhoe.png new file mode 100644 index 00000000..093acb82 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_tool_diamondhoe.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_tool_mesehoe.png b/minetestforfun_game/mods/farming/textures/farming_tool_mesehoe.png new file mode 100644 index 00000000..ffd597a4 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_tool_mesehoe.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_tool_steelhoe.png b/minetestforfun_game/mods/farming/textures/farming_tool_steelhoe.png new file mode 100644 index 00000000..893a6958 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_tool_steelhoe.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_tool_stonehoe.png b/minetestforfun_game/mods/farming/textures/farming_tool_stonehoe.png new file mode 100644 index 00000000..4f8dade0 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_tool_stonehoe.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_tool_woodhoe.png b/minetestforfun_game/mods/farming/textures/farming_tool_woodhoe.png new file mode 100644 index 00000000..8b20d2dc Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_tool_woodhoe.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_wheat.png b/minetestforfun_game/mods/farming/textures/farming_wheat.png new file mode 100644 index 00000000..cba51374 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_wheat.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_wheat_1.png b/minetestforfun_game/mods/farming/textures/farming_wheat_1.png new file mode 100644 index 00000000..2ca23ee7 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_wheat_1.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_wheat_2.png b/minetestforfun_game/mods/farming/textures/farming_wheat_2.png new file mode 100644 index 00000000..6ae90d60 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_wheat_2.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_wheat_3.png b/minetestforfun_game/mods/farming/textures/farming_wheat_3.png new file mode 100644 index 00000000..29950fe5 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_wheat_3.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_wheat_4.png b/minetestforfun_game/mods/farming/textures/farming_wheat_4.png new file mode 100644 index 00000000..cdc2003d Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_wheat_4.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_wheat_5.png b/minetestforfun_game/mods/farming/textures/farming_wheat_5.png new file mode 100644 index 00000000..2ddff037 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_wheat_5.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_wheat_6.png b/minetestforfun_game/mods/farming/textures/farming_wheat_6.png new file mode 100644 index 00000000..f7d8145e Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_wheat_6.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_wheat_7.png b/minetestforfun_game/mods/farming/textures/farming_wheat_7.png new file mode 100644 index 00000000..89a95912 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_wheat_7.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_wheat_8.png b/minetestforfun_game/mods/farming/textures/farming_wheat_8.png new file mode 100644 index 00000000..78181fff Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_wheat_8.png differ diff --git a/minetestforfun_game/mods/farming/textures/farming_wheat_seed.png b/minetestforfun_game/mods/farming/textures/farming_wheat_seed.png new file mode 100644 index 00000000..81fc3b22 Binary files /dev/null and b/minetestforfun_game/mods/farming/textures/farming_wheat_seed.png differ diff --git a/minetestforfun_game/mods/fire/README.txt b/minetestforfun_game/mods/fire/README.txt new file mode 100755 index 00000000..fdbce15f --- /dev/null +++ b/minetestforfun_game/mods/fire/README.txt @@ -0,0 +1,32 @@ +Minetest 0.4 mod: fire +====================== + +License of source code: +----------------------- +Copyright (C) 2012 Perttu Ahola (celeron55) + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +http://www.gnu.org/licenses/lgpl-2.1.html + +License of media (textures and sounds) +-------------------------------------- +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + +Authors of media files +----------------------- +Everything not listed in here: +Copyright (C) 2012 Perttu Ahola (celeron55) + +fire_small.ogg sampled from: + http://www.freesound.org/people/dobroide/sounds/4211/ + +fire_large.ogg sampled from: + http://www.freesound.org/people/Dynamicell/sounds/17548/ + +fire_basic_flame_animated.png: + Muadtralk diff --git a/minetestforfun_game/mods/fire/init.lua b/minetestforfun_game/mods/fire/init.lua new file mode 100755 index 00000000..4ce9f6a7 --- /dev/null +++ b/minetestforfun_game/mods/fire/init.lua @@ -0,0 +1,192 @@ +-- minetest/fire/init.lua + +minetest.register_node("fire:basic_flame", { + description = "Fire", + 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", + light_source = 14, + groups = {igniter=2,dig_immediate=3,hot=3}, + drop = '', + walkable = false, + buildable_to = true, + damage_per_second = 4, + + after_place_node = function(pos, placer) + fire.on_flame_add_at(pos) + end, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + fire.on_flame_remove_at(pos) + end, +}) + +fire = {} +fire.D = 6 +-- key: position hash of low corner of area +-- value: {handle=sound handle, name=sound name} +fire.sounds = {} + +function fire.get_area_p0p1(pos) + local p0 = { + x=math.floor(pos.x/fire.D)*fire.D, + y=math.floor(pos.y/fire.D)*fire.D, + z=math.floor(pos.z/fire.D)*fire.D, + } + local p1 = { + x=p0.x+fire.D-1, + y=p0.y+fire.D-1, + z=p0.z+fire.D-1 + } + return p0, p1 +end + +function fire.update_sounds_around(pos) + local p0, p1 = fire.get_area_p0p1(pos) + local cp = {x=(p0.x+p1.x)/2, y=(p0.y+p1.y)/2, z=(p0.z+p1.z)/2} + local flames_p = minetest.find_nodes_in_area(p0, p1, {"fire:basic_flame"}) + --print("number of flames at "..minetest.pos_to_string(p0).."/" + -- ..minetest.pos_to_string(p1)..": "..#flames_p) + local should_have_sound = (#flames_p > 0) + local wanted_sound = nil + if #flames_p >= 9 then + wanted_sound = {name="fire_large", gain=1.5} + elseif #flames_p > 0 then + wanted_sound = {name="fire_small", gain=1.5} + end + local p0_hash = minetest.hash_node_position(p0) + local sound = fire.sounds[p0_hash] + if not sound then + if should_have_sound then + fire.sounds[p0_hash] = { + handle = minetest.sound_play(wanted_sound, {pos=cp, loop=true}), + name = wanted_sound.name, + } + end + else + if not wanted_sound then + minetest.sound_stop(sound.handle) + fire.sounds[p0_hash] = nil + elseif sound.name ~= wanted_sound.name then + minetest.sound_stop(sound.handle) + fire.sounds[p0_hash] = { + handle = minetest.sound_play(wanted_sound, {pos=cp, loop=true}), + name = wanted_sound.name, + } + end + end +end + +function fire.on_flame_add_at(pos) + --print("flame added at "..minetest.pos_to_string(pos)) + fire.update_sounds_around(pos) +end + +function fire.on_flame_remove_at(pos) + --print("flame removed at "..minetest.pos_to_string(pos)) + fire.update_sounds_around(pos) +end + +function fire.find_pos_for_flame_around(pos) + return minetest.find_node_near(pos, 1, {"air"}) +end + +function fire.flame_should_extinguish(pos) + if minetest.setting_getbool("disable_fire") then return true end + --return minetest.find_node_near(pos, 1, {"group:puts_out_fire"}) + local p0 = {x=pos.x-2, y=pos.y, z=pos.z-2} + local p1 = {x=pos.x+2, y=pos.y, z=pos.z+2} + local ps = minetest.find_nodes_in_area(p0, p1, {"group:puts_out_fire"}) + return (#ps ~= 0) +end + +-- Ignite neighboring nodes +minetest.register_abm({ + nodenames = {"group:flammable"}, + neighbors = {"group:igniter"}, + interval = 1, + chance = 2, + action = function(p0, node, _, _) + -- If there is water or stuff like that around flame, don't ignite + if fire.flame_should_extinguish(p0) then + return + end + local p = fire.find_pos_for_flame_around(p0) + if p then + minetest.set_node(p, {name="fire:basic_flame"}) + fire.on_flame_add_at(p) + end + end, +}) + +-- Rarely ignite things from far +minetest.register_abm({ + nodenames = {"group:igniter"}, + neighbors = {"air"}, + interval = 2, + chance = 10, + action = function(p0, node, _, _) + local reg = minetest.registered_nodes[node.name] + if not reg or not reg.groups.igniter or reg.groups.igniter < 2 then + return + end + local d = reg.groups.igniter + local p = minetest.find_node_near(p0, d, {"group:flammable"}) + if p then + -- If there is water or stuff like that around flame, don't ignite + if fire.flame_should_extinguish(p) then + return + end + local p2 = fire.find_pos_for_flame_around(p) + if p2 then + minetest.set_node(p2, {name="fire:basic_flame"}) + fire.on_flame_add_at(p2) + end + end + end, +}) + +-- Remove flammable nodes and flame +minetest.register_abm({ + nodenames = {"fire:basic_flame"}, + interval = 1, + chance = 2, + action = function(p0, node, _, _) + -- If there is water or stuff like that around flame, remove flame + if fire.flame_should_extinguish(p0) then + minetest.remove_node(p0) + fire.on_flame_remove_at(p0) + return + end + -- Make the following things rarer + if math.random(1,3) == 1 then + return + end + -- If there are no flammable nodes around flame, remove flame + if not minetest.find_node_near(p0, 1, {"group:flammable"}) then + minetest.remove_node(p0) + fire.on_flame_remove_at(p0) + return + end + if math.random(1,4) == 1 then + -- remove a flammable node around flame + local p = minetest.find_node_near(p0, 1, {"group:flammable"}) + if p then + -- If there is water or stuff like that around flame, don't remove + if fire.flame_should_extinguish(p0) then + return + end + minetest.remove_node(p) + nodeupdate(p) + end + else + -- remove flame + minetest.remove_node(p0) + fire.on_flame_remove_at(p0) + end + end, +}) + diff --git a/minetestforfun_game/mods/fire/sounds/fire_large.ogg b/minetestforfun_game/mods/fire/sounds/fire_large.ogg new file mode 100755 index 00000000..fe78e625 Binary files /dev/null and b/minetestforfun_game/mods/fire/sounds/fire_large.ogg differ diff --git a/minetestforfun_game/mods/fire/sounds/fire_small.ogg b/minetestforfun_game/mods/fire/sounds/fire_small.ogg new file mode 100755 index 00000000..5aac595b Binary files /dev/null and b/minetestforfun_game/mods/fire/sounds/fire_small.ogg differ diff --git a/minetestforfun_game/mods/fire/textures/fire_basic_flame.png b/minetestforfun_game/mods/fire/textures/fire_basic_flame.png new file mode 100755 index 00000000..7a126e32 Binary files /dev/null and b/minetestforfun_game/mods/fire/textures/fire_basic_flame.png differ diff --git a/minetestforfun_game/mods/fire/textures/fire_basic_flame_animated.png b/minetestforfun_game/mods/fire/textures/fire_basic_flame_animated.png new file mode 100755 index 00000000..3b312e53 Binary files /dev/null and b/minetestforfun_game/mods/fire/textures/fire_basic_flame_animated.png differ diff --git a/minetestforfun_game/mods/flowers/README.txt b/minetestforfun_game/mods/flowers/README.txt new file mode 100644 index 00000000..04f96d99 --- /dev/null +++ b/minetestforfun_game/mods/flowers/README.txt @@ -0,0 +1,16 @@ +Minetest 0.4 mod: flowers +========================= + +License of source code: +----------------------- +Copyright (C) 2012-2013 Ironzorg, VanessaE + +This program is free software. It comes without any warranty, to +the extent permitted by applicable law. You can redistribute it +and/or modify it under the terms of the Do What The Fuck You Want +To Public License, Version 2, as published by Sam Hocevar. See +http://sam.zoy.org/wtfpl/COPYING for more details. + +License of media (textures and sounds) +-------------------------------------- +WTFPL diff --git a/minetestforfun_game/mods/flowers/depends.txt b/minetestforfun_game/mods/flowers/depends.txt new file mode 100644 index 00000000..4ad96d51 --- /dev/null +++ b/minetestforfun_game/mods/flowers/depends.txt @@ -0,0 +1 @@ +default diff --git a/minetestforfun_game/mods/flowers/init.lua b/minetestforfun_game/mods/flowers/init.lua new file mode 100644 index 00000000..86d3ade6 --- /dev/null +++ b/minetestforfun_game/mods/flowers/init.lua @@ -0,0 +1,193 @@ +-- Minetest 0.4 mod: default +-- See README.txt for licensing and other information. + +-- Map Generation +dofile(minetest.get_modpath("flowers").."/mapgen.lua") + +-- Aliases for original flowers mod +minetest.register_alias("flowers:flower_dandelion_white", "flowers:dandelion_white") +minetest.register_alias("flowers:flower_dandelion_yellow", "flowers:dandelion_yellow") +minetest.register_alias("flowers:flower_geranium", "flowers:geranium") +minetest.register_alias("flowers:flower_rose", "flowers:rose") +minetest.register_alias("flowers:flower_tulip", "flowers:tulip") +minetest.register_alias("flowers:flower_viola", "flowers:viola") + +minetest.register_node("flowers:dandelion_white", { + description = "White Dandelion", + drawtype = "plantlike", + tiles = { "flowers_dandelion_white.png" }, + inventory_image = "flowers_dandelion_white.png", + wield_image = "flowers_dandelion_white.png", + 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}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15}, + }, +}) + +minetest.register_node("flowers:dandelion_yellow", { + description = "Yellow Dandelion", + drawtype = "plantlike", + tiles = { "flowers_dandelion_yellow.png" }, + inventory_image = "flowers_dandelion_yellow.png", + wield_image = "flowers_dandelion_yellow.png", + 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_yellow = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15}, + }, +}) + +minetest.register_node("flowers:geranium", { + description = "Blue Geranium", + drawtype = "plantlike", + tiles = { "flowers_geranium.png" }, + inventory_image = "flowers_geranium.png", + wield_image = "flowers_geranium.png", + 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_blue = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15}, + }, +}) + +minetest.register_node("flowers:rose", { + description = "Rose", + drawtype = "plantlike", + tiles = { "flowers_rose.png" }, + inventory_image = "flowers_rose.png", + wield_image = "flowers_rose.png", + 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_red = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15}, + }, +}) + +minetest.register_node("flowers:tulip", { + description = "Tulip", + drawtype = "plantlike", + tiles = { "flowers_tulip.png" }, + inventory_image = "flowers_tulip.png", + wield_image = "flowers_tulip.png", + 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_orange = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15}, + }, +}) + +minetest.register_node("flowers:viola", { + description = "Viola", + drawtype = "plantlike", + tiles = { "flowers_viola.png" }, + inventory_image = "flowers_viola.png", + wield_image = "flowers_viola.png", + 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_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_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}, + 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.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, + }, +}) + +minetest.register_abm({ + nodenames = {"group:flora"}, + neighbors = {"default:dirt_with_grass", "default:desert_sand"}, + interval = 2, + chance = 500, + action = function(pos, node) + pos.y = pos.y - 1 + local under = minetest.get_node(pos) + pos.y = pos.y + 1 + if under.name == "default:desert_sand" then + minetest.set_node(pos, {name="default:dry_shrub"}) + elseif under.name ~= "default:dirt_with_grass" then return end + + local light = minetest.get_node_light(pos) + if not light or light < 13 then return end + + local pos0 = {x = pos.x - 4, y = pos.y - 4, z = pos.z - 4} + local pos1 = {x = pos.x + 4, y = pos.y + 4, z = pos.z + 4} + if #minetest.find_nodes_in_area(pos0, pos1, "group:flora_block") > 0 then return end + + local flowers = minetest.find_nodes_in_area(pos0, pos1, "group:flora") + if #flowers > 3 then return end + + local seedling = minetest.find_nodes_in_area(pos0, pos1, "default:dirt_with_grass") + if #seedling > 0 then + seedling = seedling[math.random(#seedling)] + seedling.y = seedling.y + 1 + light = minetest.get_node_light(seedling) + if not light or light < 13 then + return + end + if minetest.get_node(seedling).name == "air" then + minetest.set_node(seedling, {name=node.name}) + end + end + end, +}) + +if minetest.setting_getbool("log_mods") then + minetest.log("action", "Carbone: [flowers] loaded.") +end diff --git a/minetestforfun_game/mods/flowers/mapgen.lua b/minetestforfun_game/mods/flowers/mapgen.lua new file mode 100644 index 00000000..20086993 --- /dev/null +++ b/minetestforfun_game/mods/flowers/mapgen.lua @@ -0,0 +1,68 @@ +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}) + elseif nn == "default:water_source" then + minetest.set_node(p, {name = "flowers:lily_pad"}) + elseif nn == "default:sand" then + minetest.set_node(p, {name = "default:dry_shrub"}) + elseif nn == "default:dirt_with_snow" then + minetest.set_node(p, {name = "default:snow"}) + end + end + end + + end + end + end + end +end) diff --git a/minetestforfun_game/mods/flowers/textures/flowers_dandelion_white.png b/minetestforfun_game/mods/flowers/textures/flowers_dandelion_white.png new file mode 100644 index 00000000..f3b80d36 Binary files /dev/null and b/minetestforfun_game/mods/flowers/textures/flowers_dandelion_white.png differ diff --git a/minetestforfun_game/mods/flowers/textures/flowers_dandelion_yellow.png b/minetestforfun_game/mods/flowers/textures/flowers_dandelion_yellow.png new file mode 100644 index 00000000..7fd7a412 Binary files /dev/null and b/minetestforfun_game/mods/flowers/textures/flowers_dandelion_yellow.png differ diff --git a/minetestforfun_game/mods/flowers/textures/flowers_geranium.png b/minetestforfun_game/mods/flowers/textures/flowers_geranium.png new file mode 100644 index 00000000..eebe3720 Binary files /dev/null and b/minetestforfun_game/mods/flowers/textures/flowers_geranium.png differ diff --git a/minetestforfun_game/mods/flowers/textures/flowers_lily_pad.png b/minetestforfun_game/mods/flowers/textures/flowers_lily_pad.png new file mode 100644 index 00000000..b0879406 Binary files /dev/null and b/minetestforfun_game/mods/flowers/textures/flowers_lily_pad.png differ diff --git a/minetestforfun_game/mods/flowers/textures/flowers_rose.png b/minetestforfun_game/mods/flowers/textures/flowers_rose.png new file mode 100644 index 00000000..733fbe31 Binary files /dev/null and b/minetestforfun_game/mods/flowers/textures/flowers_rose.png differ diff --git a/minetestforfun_game/mods/flowers/textures/flowers_tulip.png b/minetestforfun_game/mods/flowers/textures/flowers_tulip.png new file mode 100644 index 00000000..0b5cd7f8 Binary files /dev/null and b/minetestforfun_game/mods/flowers/textures/flowers_tulip.png differ diff --git a/minetestforfun_game/mods/flowers/textures/flowers_viola.png b/minetestforfun_game/mods/flowers/textures/flowers_viola.png new file mode 100644 index 00000000..143044a4 Binary files /dev/null and b/minetestforfun_game/mods/flowers/textures/flowers_viola.png differ diff --git a/minetestforfun_game/mods/highlandpools/README.txt b/minetestforfun_game/mods/highlandpools/README.txt new file mode 100644 index 00000000..0ac07ded --- /dev/null +++ b/minetestforfun_game/mods/highlandpools/README.txt @@ -0,0 +1,6 @@ +highlandpools 0.1.1 by paramat +For latest stable Minetest back to 0.4.8 +Depends default +Licenses: code WTFPL + +For use with mapgens V6 or indev, adds pools to floatlands. \ No newline at end of file diff --git a/minetestforfun_game/mods/highlandpools/depends.txt b/minetestforfun_game/mods/highlandpools/depends.txt new file mode 100644 index 00000000..4ad96d51 --- /dev/null +++ b/minetestforfun_game/mods/highlandpools/depends.txt @@ -0,0 +1 @@ +default diff --git a/minetestforfun_game/mods/highlandpools/init.lua b/minetestforfun_game/mods/highlandpools/init.lua new file mode 100644 index 00000000..18fd293d --- /dev/null +++ b/minetestforfun_game/mods/highlandpools/init.lua @@ -0,0 +1,246 @@ +-- highlandpools 0.1.1 by paramat +-- For latest stable Minetest back to 0.4.8 +-- Depends default +-- Licenses: code WTFPL + +-- Parameters + +local YMAX = 64 -- Maximum altitude for pools +local FLOW = 256 + +-- Stuff + +highlandpools = {} + +-- Functions + +function highlandpools_remtree(x, y, z, area, data) + local c_tree = minetest.get_content_id("default:tree") + local c_apple = minetest.get_content_id("default:apple") + local c_leaves = minetest.get_content_id("default:leaves") + local c_air = minetest.get_content_id("air") + for j = 1, 7 do + for i = -2, 2 do + for k = -2, 2 do + local vi = area:index(x+i, y+j, z+k) + if data[vi] == c_tree + or data[vi] == c_apple + or data[vi] == c_leaves then + data[vi] = c_air + end + end + end + end + for j = 1, 7 do + for i = -2, 2 do + for k = -2, 2 do + local vi = area:index(x+i, y-j, z+k) + if data[vi] == c_tree + or data[vi] == c_apple + or data[vi] == c_leaves then + data[vi] = c_air + end + end + end + end +end + +-- On generated function + +minetest.register_on_generated(function(minp, maxp, seed) + local y0 = minp.y + if y0 < -32 or y0 > YMAX then + return + end + + local t1 = os.clock() + local x0 = minp.x + local z0 = minp.z + -- print ("[highlandpools] chunk ("..x0.." "..y0.." "..z0..")") + local x1 = maxp.x + local y1 = maxp.y + local z1 = maxp.z + local sidelen = x1 - x0 -- actually sidelen - 1 + + local vm, emin, emax = minetest.get_mapgen_object("voxelmanip") + local area = VoxelArea:new{MinEdge=emin, MaxEdge=emax} + local data = vm:get_data() + + local c_air = minetest.get_content_id("air") + local c_ignore = minetest.get_content_id("ignore") + local c_watsour = minetest.get_content_id("default:water_source") + local c_grass = minetest.get_content_id("default:dirt_with_grass") + local c_tree = minetest.get_content_id("default:tree") + local c_apple = minetest.get_content_id("default:apple") + local c_leaves = minetest.get_content_id("default:leaves") + local c_dirt = minetest.get_content_id("default:dirt") + + for xcen = x0 + 8, x1 - 7, 8 do + for zcen = z0 + 8, z1 - 7, 8 do + local yasurf = false -- y of above surface node + for y = y1, 2, -1 do + local vi = area:index(xcen, y, zcen) + local c_node = data[vi] + if y == y1 and c_node ~= c_air then -- if top node solid + break + elseif c_node == c_watsour then + break + elseif c_node == c_grass then + yasurf = y + 1 + break + end + end + if yasurf then + local abort = false + for ser = 1, 80 do + local vi = area:index(xcen + ser, yasurf, zcen) + local c_node = data[vi] + if xcen + ser == x1 then + abort = true + elseif c_node ~= c_air + and c_node ~= c_tree + and c_node ~= c_leaves + and c_node ~= c_apple then + break + end + end + for ser = 1, 80 do + local vi = area:index(xcen - ser, yasurf, zcen) + local c_node = data[vi] + if xcen - ser == x0 then + abort = true + elseif c_node ~= c_air + and c_node ~= c_tree + and c_node ~= c_leaves + and c_node ~= c_apple then + break + end + end + for ser = 1, 80 do + local vi = area:index(xcen, yasurf, zcen + ser) + local c_node = data[vi] + if zcen + ser == z1 then + abort = true + elseif c_node ~= c_air + and c_node ~= c_tree + and c_node ~= c_leaves + and c_node ~= c_apple then + break + end + end + for ser = 1, 80 do + local vi = area:index(xcen, yasurf, zcen - ser) + local c_node = data[vi] + if zcen - ser == z0 then + abort = true + elseif c_node ~= c_air + and c_node ~= c_tree + and c_node ~= c_leaves + and c_node ~= c_apple then + break + end + end + if abort then + break + end + + local vi = area:index(xcen, yasurf, zcen) + data[vi] = c_watsour + local flab = false -- flow abort + for flow = 1, FLOW do + for z = z0, z1 do + for x = x0, x1 do + local vif = area:index(x, yasurf, z) + if data[vif] == c_watsour then + if x == x0 or x == x1 or z == z0 or z == z1 then + flab = true -- if water at chunk edge abort flow + break + else -- flow water + local vie = area:index(x + 1, yasurf, z) + local viw = area:index(x - 1, yasurf, z) + local vin = area:index(x, yasurf, z + 1) + local vis = area:index(x, yasurf, z - 1) + if data[vie] == c_tree then + highlandpools_remtree(x + 1, yasurf, z, area, data) + data[vie] = c_watsour + elseif data[vie] == c_air + or data[vie] == c_apple + or data[vie] == c_leaves then + data[vie] = c_watsour + end + if data[viw] == c_tree then + highlandpools_remtree(x - 1, yasurf, z, area, data) + data[viw] = c_watsour + elseif data[viw] == c_air + or data[viw] == c_apple + or data[viw] == c_leaves then + data[viw] = c_watsour + end + if data[vin] == c_tree then + highlandpools_remtree(x, yasurf, z + 1, area, data) + data[vin] = c_watsour + elseif data[vin] == c_air + or data[vin] == c_apple + or data[vin] == c_leaves then + data[vin] = c_watsour + end + if data[vis] == c_tree then + highlandpools_remtree(x, yasurf, z - 1, area, data) + data[vis] = c_watsour + elseif data[vis] == c_air + or data[vis] == c_apple + or data[vis] == c_leaves then + data[vis] = c_watsour + end + end + end + end + if flab then + break + end + end + if flab then + break + end + end + if flab then -- erase water from this y level + for z = z0, z1 do + for x = x0, x1 do + local vi = area:index(x, yasurf, z) + if data[vi] == c_watsour then + data[vi] = c_air + end + end + end + else -- flow downwards add dirt + for z = z0, z1 do + for x = x0, x1 do + local vi = area:index(x, yasurf, z) + if data[vi] == c_watsour then + for y = yasurf - 1, y0, -1 do + local viu = area:index(x, y, z) + if data[viu] == c_air then + data[viu] = c_watsour + elseif data[viu] == c_grass then + data[viu] = c_dirt + break + else + break + end + end + end + end + end + end + end + end + end + + vm:set_data(data) + vm:set_lighting({day=0, night=0}) + vm:calc_lighting() + vm:write_to_map(data) + + local chugent = math.ceil((os.clock() - t1) * 1000) + -- print ("[highlandpools] time "..chugent.." ms") +end) diff --git a/minetestforfun_game/mods/highlandpools/license.txt b/minetestforfun_game/mods/highlandpools/license.txt new file mode 100644 index 00000000..c73f8ae7 --- /dev/null +++ b/minetestforfun_game/mods/highlandpools/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. + diff --git a/minetestforfun_game/mods/screwdriver/init.lua b/minetestforfun_game/mods/screwdriver/init.lua new file mode 100755 index 00000000..6e560388 --- /dev/null +++ b/minetestforfun_game/mods/screwdriver/init.lua @@ -0,0 +1,159 @@ + +local mode_text = { + {"Change rotation, Don't change axisdir."}, + {"Keep choosen face in front then rotate it."}, + {"Change axis dir, Reset rotation."}, + {"Bring top in front then rotate it."}, +} + +local opposite_faces = { + [0] = 5, + [1] = 2, + [2] = 1, + [3] = 4, + [4] = 3, + [5] = 0, +} + +local function screwdriver_setmode(user,itemstack) + local player_name = user:get_player_name() + local item = itemstack:to_table() + local mode = tonumber(itemstack:get_metadata()) + if not mode then + minetest.chat_send_player(player_name, "Use while sneaking to change screwdriwer modes.") + mode = 0 + end + mode = mode + 1 + if mode == 5 then + mode = 1 + end + minetest.chat_send_player(player_name, "Screwdriver mode : "..mode.." - "..mode_text[mode][1] ) + itemstack:set_name("screwdriver:screwdriver"..mode) + itemstack:set_metadata(mode) + return itemstack +end + +local function get_node_face(pointed_thing) + local ax, ay, az = pointed_thing.above.x, pointed_thing.above.y, pointed_thing.above.z + local ux, uy, uz = pointed_thing.under.x, pointed_thing.under.y, pointed_thing.under.z + if ay > uy then return 0 -- Top + elseif az > uz then return 1 -- Z+ side + elseif az < uz then return 2 -- Z- side + elseif ax > ux then return 3 -- X+ side + elseif ax < ux then return 4 -- X- side + elseif ay < uy then return 5 -- Bottom + else + error("pointed_thing.above and under are the same!") + end +end + +local function nextrange(x, max) + x = x + 1 + if x > max then + x = 0 + end + return x +end + +local function screwdriver_handler(itemstack, user, pointed_thing) + if pointed_thing.type ~= "node" then + return + end + local pos = pointed_thing.under + local keys = user:get_player_control() + local player_name = user:get_player_name() + local mode = tonumber(itemstack:get_metadata()) + if not mode or keys["sneak"] == true then + return screwdriver_setmode(user, itemstack) + end + if minetest.is_protected(pos, user:get_player_name()) then + minetest.record_protection_violation(pos, user:get_player_name()) + return + end + local node = minetest.get_node(pos) + local ndef = minetest.registered_nodes[node.name] + if not ndef or not ndef.paramtype2 == "facedir" or + (ndef.drawtype == "nodebox" and + not ndef.node_box.type == "fixed") or + node.param2 == nil then + return + end + -- Get ready to set the param2 + local n = node.param2 + local axisdir = math.floor(n / 4) + local rotation = n - axisdir * 4 + if mode == 1 then + n = axisdir * 4 + nextrange(rotation, 3) + elseif mode == 2 then + -- If you are pointing at the axisdir face or the + -- opposite one then you can just rotate the node. + -- Otherwise change the axisdir, avoiding the facing + -- and opposite axes. + local face = get_node_face(pointed_thing) + if axisdir == face or axisdir == opposite_faces[face] then + n = axisdir * 4 + nextrange(rotation, 3) + else + axisdir = nextrange(axisdir, 5) + -- This is repeated because switching from the face + -- can move to to the opposite and vice-versa + if axisdir == face or axisdir == opposite_faces[face] then + axisdir = nextrange(axisdir, 5) + end + if axisdir == face or axisdir == opposite_faces[face] then + axisdir = nextrange(axisdir, 5) + end + n = axisdir * 4 + end + elseif mode == 3 then + n = nextrange(axisdir, 5) * 4 + elseif mode == 4 then + local face = get_node_face(pointed_thing) + if axisdir == face then + n = axisdir * 4 + nextrange(rotation, 3) + else + n = face * 4 + end + end + --print (dump(axisdir..", "..rotation)) + node.param2 = n + minetest.swap_node(pos, node) + local item_wear = tonumber(itemstack:get_wear()) + item_wear = item_wear + 327 + if item_wear > 65535 then + itemstack:clear() + return itemstack + end + itemstack:set_wear(item_wear) + return itemstack +end + +minetest.register_craft({ + output = "screwdriver:screwdriver", + recipe = { + {"default:steel_ingot"}, + {"group:stick"} + } +}) + +minetest.register_tool("screwdriver:screwdriver", { + description = "Screwdriver", + inventory_image = "screwdriver.png", + on_use = function(itemstack, user, pointed_thing) + screwdriver_handler(itemstack, user, pointed_thing) + return itemstack + end, +}) + +for i = 1, 4 do + minetest.register_tool("screwdriver:screwdriver"..i, { + description = "Screwdriver in Mode "..i, + inventory_image = "screwdriver.png^tool_mode"..i..".png", + wield_image = "screwdriver.png", + groups = {not_in_creative_inventory=1}, + on_use = function(itemstack, user, pointed_thing) + screwdriver_handler(itemstack, user, pointed_thing) + return itemstack + end, + }) +end + diff --git a/minetestforfun_game/mods/screwdriver/readme.txt b/minetestforfun_game/mods/screwdriver/readme.txt new file mode 100755 index 00000000..d0b10e05 --- /dev/null +++ b/minetestforfun_game/mods/screwdriver/readme.txt @@ -0,0 +1,18 @@ +Minetest mod: screwdriver +========================= + +License of source code: +----------------------- +Copyright (C) 2013 RealBadAngel, Maciej Kasatkin + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +http://www.gnu.org/licenses/lgpl-2.1.html + +License of media (textures and sounds) +-------------------------------------- +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/minetestforfun_game/mods/screwdriver/textures/screwdriver.png b/minetestforfun_game/mods/screwdriver/textures/screwdriver.png new file mode 100755 index 00000000..672692a1 Binary files /dev/null and b/minetestforfun_game/mods/screwdriver/textures/screwdriver.png differ diff --git a/minetestforfun_game/mods/screwdriver/textures/tool_mode1.png b/minetestforfun_game/mods/screwdriver/textures/tool_mode1.png new file mode 100755 index 00000000..41e12ab4 Binary files /dev/null and b/minetestforfun_game/mods/screwdriver/textures/tool_mode1.png differ diff --git a/minetestforfun_game/mods/screwdriver/textures/tool_mode2.png b/minetestforfun_game/mods/screwdriver/textures/tool_mode2.png new file mode 100755 index 00000000..2043d8f6 Binary files /dev/null and b/minetestforfun_game/mods/screwdriver/textures/tool_mode2.png differ diff --git a/minetestforfun_game/mods/screwdriver/textures/tool_mode3.png b/minetestforfun_game/mods/screwdriver/textures/tool_mode3.png new file mode 100755 index 00000000..fbc729f7 Binary files /dev/null and b/minetestforfun_game/mods/screwdriver/textures/tool_mode3.png differ diff --git a/minetestforfun_game/mods/screwdriver/textures/tool_mode4.png b/minetestforfun_game/mods/screwdriver/textures/tool_mode4.png new file mode 100755 index 00000000..c9253146 Binary files /dev/null and b/minetestforfun_game/mods/screwdriver/textures/tool_mode4.png differ diff --git a/minetestforfun_game/mods/sethome/init.lua b/minetestforfun_game/mods/sethome/init.lua new file mode 100755 index 00000000..20f77c01 --- /dev/null +++ b/minetestforfun_game/mods/sethome/init.lua @@ -0,0 +1,65 @@ +local homes_file = minetest.get_worldpath() .. "/homes" +local homepos = {} + +local function loadhomes() + local input = io.open(homes_file, "r") + if input then + repeat + local x = input:read("*n") + if x == nil then + break + end + local y = input:read("*n") + local z = input:read("*n") + local name = input:read("*l") + homepos[name:sub(2)] = {x = x, y = y, z = z} + until input:read(0) == nil + io.close(input) + else + homepos = {} + end +end + +loadhomes() + +minetest.register_privilege("home", "Can use /sethome and /home") + +local changed = false + +minetest.register_chatcommand("home", { + description = "Teleport you to your home point", + privs = {home=true}, + func = function(name) + local player = minetest.env:get_player_by_name(name) + if player == nil then + -- just a check to prevent the server crashing + return false + end + if homepos[player:get_player_name()] then + player:setpos(homepos[player:get_player_name()]) + minetest.chat_send_player(name, "Teleported to home!") + else + minetest.chat_send_player(name, "Set a home using /sethome") + end + end, +}) + +minetest.register_chatcommand("sethome", { + description = "Set your home point", + privs = {home=true}, + func = function(name) + local player = minetest.env:get_player_by_name(name) + local pos = player:getpos() + homepos[player:get_player_name()] = pos + minetest.chat_send_player(name, "Home set!") + changed = true + if changed then + local output = io.open(homes_file, "w") + for i, v in pairs(homepos) do + output:write(v.x.." "..v.y.." "..v.z.." "..i.."\n") + end + io.close(output) + changed = false + end + end, +}) diff --git a/minetestforfun_game/mods/stairs/README.txt b/minetestforfun_game/mods/stairs/README.txt new file mode 100755 index 00000000..716a677c --- /dev/null +++ b/minetestforfun_game/mods/stairs/README.txt @@ -0,0 +1,26 @@ +Minetest 0.4 mod: stairs +========================= + +License of source code: +----------------------- +Copyright (C) 2011-2012 Kahrl +Copyright (C) 2011-2012 celeron55, Perttu Ahola + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +http://www.gnu.org/licenses/lgpl-2.1.html + +License of media (textures and sounds) +-------------------------------------- +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + +Authors of media files +----------------------- +Everything not listed in here: +Copyright (C) 2010-2012 celeron55, Perttu Ahola + + diff --git a/minetestforfun_game/mods/stairs/depends.txt b/minetestforfun_game/mods/stairs/depends.txt new file mode 100755 index 00000000..4ad96d51 --- /dev/null +++ b/minetestforfun_game/mods/stairs/depends.txt @@ -0,0 +1 @@ +default diff --git a/minetestforfun_game/mods/stairs/init.lua b/minetestforfun_game/mods/stairs/init.lua new file mode 100755 index 00000000..afd89bda --- /dev/null +++ b/minetestforfun_game/mods/stairs/init.lua @@ -0,0 +1,290 @@ +-- Minetest 0.4 mod: stairs +-- See README.txt for licensing and other information. + +stairs = {} + +-- Node will be called stairs:stair_ +function stairs.register_stair(subname, recipeitem, groups, images, description, sounds) + minetest.register_node(":stairs:stair_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = groups, + sounds = sounds, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + {-0.5, 0, 0, 0.5, 0.5, 0.5}, + }, + }, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + local p0 = pointed_thing.under + local p1 = pointed_thing.above + local param2 = 0 + + local placer_pos = placer:getpos() + if placer_pos then + local dir = { + x = p1.x - placer_pos.x, + y = p1.y - placer_pos.y, + z = p1.z - placer_pos.z + } + param2 = minetest.dir_to_facedir(dir) + end + + if p0.y-1 == p1.y then + param2 = param2 + 20 + if param2 == 21 then + param2 = 23 + elseif param2 == 23 then + param2 = 21 + end + end + + return minetest.item_place(itemstack, placer, pointed_thing, param2) + end, + }) + + -- for replace ABM + minetest.register_node(":stairs:stair_" .. subname.."upside_down", { + replace_name = "stairs:stair_" .. subname, + groups = {slabs_replace=1}, + }) + + minetest.register_craft({ + output = 'stairs:stair_' .. subname .. ' 6', + recipe = { + {recipeitem, "", ""}, + {recipeitem, recipeitem, ""}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + + -- Flipped recipe for the silly minecrafters + minetest.register_craft({ + output = 'stairs:stair_' .. subname .. ' 6', + recipe = { + {"", "", recipeitem}, + {"", recipeitem, recipeitem}, + {recipeitem, recipeitem, recipeitem}, + }, + }) +end + +-- Node will be called stairs:slab_ +function stairs.register_slab(subname, recipeitem, groups, images, description, sounds) + minetest.register_node(":stairs:slab_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = groups, + sounds = sounds, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + }, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + -- If it's being placed on an another similar one, replace it with + -- a full block + local slabpos = nil + local slabnode = nil + local p0 = pointed_thing.under + local p1 = pointed_thing.above + local n0 = minetest.get_node(p0) + local n1 = minetest.get_node(p1) + local param2 = 0 + + local n0_is_upside_down = (n0.name == "stairs:slab_" .. subname and + n0.param2 >= 20) + + if n0.name == "stairs:slab_" .. subname and not n0_is_upside_down and p0.y+1 == p1.y then + slabpos = p0 + slabnode = n0 + elseif n1.name == "stairs:slab_" .. subname then + slabpos = p1 + slabnode = n1 + end + if slabpos then + -- Remove the slab at slabpos + minetest.remove_node(slabpos) + -- Make a fake stack of a single item and try to place it + local fakestack = ItemStack(recipeitem) + fakestack:set_count(itemstack:get_count()) + + pointed_thing.above = slabpos + local success + fakestack, success = minetest.item_place(fakestack, placer, pointed_thing) + -- If the item was taken from the fake stack, decrement original + if success then + itemstack:set_count(fakestack:get_count()) + -- Else put old node back + else + minetest.set_node(slabpos, slabnode) + end + return itemstack + end + + -- Upside down slabs + if p0.y-1 == p1.y then + -- Turn into full block if pointing at a existing slab + if n0_is_upside_down then + -- Remove the slab at the position of the slab + minetest.remove_node(p0) + -- Make a fake stack of a single item and try to place it + local fakestack = ItemStack(recipeitem) + fakestack:set_count(itemstack:get_count()) + + pointed_thing.above = p0 + local success + fakestack, success = minetest.item_place(fakestack, placer, pointed_thing) + -- If the item was taken from the fake stack, decrement original + if success then + itemstack:set_count(fakestack:get_count()) + -- Else put old node back + else + minetest.set_node(p0, n0) + end + return itemstack + end + + -- Place upside down slab + param2 = 20 + end + + -- If pointing at the side of a upside down slab + if n0_is_upside_down and p0.y+1 ~= p1.y then + param2 = 20 + end + + return minetest.item_place(itemstack, placer, pointed_thing, param2) + end, + }) + + -- for replace ABM + minetest.register_node(":stairs:slab_" .. subname.."upside_down", { + replace_name = "stairs:slab_"..subname, + groups = {slabs_replace=1}, + }) + + minetest.register_craft({ + output = 'stairs:slab_' .. subname .. ' 6', + recipe = { + {recipeitem, recipeitem, recipeitem}, + }, + }) +end + +-- Replace old "upside_down" nodes with new param2 versions +minetest.register_abm({ + nodenames = {"group:slabs_replace"}, + interval = 1, + chance = 1, + action = function(pos, node) + node.name = minetest.registered_nodes[node.name].replace_name + node.param2 = node.param2 + 20 + if node.param2 == 21 then + node.param2 = 23 + elseif node.param2 == 23 then + node.param2 = 21 + end + minetest.set_node(pos, node) + end, +}) + +-- Nodes will be called stairs:{stair,slab}_ +function stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab, sounds) + stairs.register_stair(subname, recipeitem, groups, images, desc_stair, sounds) + stairs.register_slab(subname, recipeitem, groups, images, desc_slab, sounds) +end + +stairs.register_stair_and_slab("wood", "default:wood", + {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + {"default_wood.png"}, + "Wooden Stair", + "Wooden Slab", + default.node_sound_wood_defaults()) + +stairs.register_stair_and_slab("stone", "default:stone", + {cracky=3}, + {"default_stone.png"}, + "Stone Stair", + "Stone Slab", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("cobble", "default:cobble", + {cracky=3}, + {"default_cobble.png"}, + "Cobblestone Stair", + "Cobblestone Slab", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("desert_stone", "default:desert_stone", + {cracky=3}, + {"default_desert_stone.png"}, + "Desertstone Stair", + "Desertstone Slab", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("desert_cobble", "default:desert_cobble", + {cracky=3}, + {"default_desert_cobble.png"}, + "Desert Cobblestone Stair", + "Desert Cobblestone Slab", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("desert_stonebrick", "default:desert_stonebrick", + {cracky=3}, + {"default_desert_stone_brick.png"}, + "Desert Stone Brick Stair", + "Desert Stone Brick Slab", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("brick", "default:brick", + {cracky=3}, + {"default_brick.png"}, + "Brick Stair", + "Brick Slab", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("sandstone", "default:sandstone", + {crumbly=2,cracky=2}, + {"default_sandstone.png"}, + "Sandstone Stair", + "Sandstone Slab", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("sandstonebrick", "default:sandstonebrick", + {crumbly=2,cracky=2}, + {"default_sandstone_brick.png"}, + "Sandstone Brick Stair", + "Sandstone Brick Slab", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("junglewood", "default:junglewood", + {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + {"default_junglewood.png"}, + "Junglewood Stair", + "Junglewood Slab", + default.node_sound_wood_defaults()) + +stairs.register_stair_and_slab("stonebrick", "default:stonebrick", + {cracky=3}, + {"default_stone_brick.png"}, + "Stone Brick Stair", + "Stone Brick Slab", + default.node_sound_stone_defaults()) diff --git a/minetestforfun_game/mods/vessels/README.txt b/minetestforfun_game/mods/vessels/README.txt new file mode 100755 index 00000000..150b501d --- /dev/null +++ b/minetestforfun_game/mods/vessels/README.txt @@ -0,0 +1,45 @@ +Minetest 0.4 mod: vessels +========================== + +Crafts +------- +Glass bottle (yields 10) + + G - G + G - G + - G - + +Drinking Glass (yields 14) + + G - G + G - G + G G G + +Heavy Steel Bottle (yields 5) + + S - S + S - S + - S - + +License of source code: +----------------------- +Copyright (C) 2012 Vanessa Ezekowitz +Version 2012-09-02 +Modifications by Perttu Ahola + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +http://www.gnu.org/licenses/lgpl-2.1.html + +License of media (textures and sounds) +-------------------------------------- +WTFPL + +Authors of media files +----------------------- +Unless specifically noted, +Copyright (C) 2012 Vanessa Ezekowitz + diff --git a/minetestforfun_game/mods/vessels/depends.txt b/minetestforfun_game/mods/vessels/depends.txt new file mode 100755 index 00000000..4ad96d51 --- /dev/null +++ b/minetestforfun_game/mods/vessels/depends.txt @@ -0,0 +1 @@ +default diff --git a/minetestforfun_game/mods/vessels/init.lua b/minetestforfun_game/mods/vessels/init.lua new file mode 100755 index 00000000..6ca8771b --- /dev/null +++ b/minetestforfun_game/mods/vessels/init.lua @@ -0,0 +1,116 @@ +-- Minetest 0.4 mod: vessels +-- See README.txt for licensing and other information. + +minetest.register_node("vessels:glass_bottle", { + description = "Glass Bottle (empty)", + drawtype = "plantlike", + tiles = {"vessels_glass_bottle.png"}, + inventory_image = "vessels_glass_bottle_inv.png", + wield_image = "vessels_glass_bottle.png", + paramtype = "light", + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} + }, + groups = {vessel=1,dig_immediate=3,attached_node=1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_craft( { + output = "vessels:glass_bottle 10", + recipe = { + { "default:glass", "", "default:glass" }, + { "default:glass", "", "default:glass" }, + { "", "default:glass", "" } + } +}) + +minetest.register_node("vessels:drinking_glass", { + description = "Drinking Glass (empty)", + drawtype = "plantlike", + tiles = {"vessels_drinking_glass.png"}, + inventory_image = "vessels_drinking_glass_inv.png", + wield_image = "vessels_drinking_glass.png", + paramtype = "light", + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} + }, + groups = {vessel=1,dig_immediate=3,attached_node=1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_craft( { + output = "vessels:drinking_glass 14", + recipe = { + { "default:glass", "", "default:glass" }, + { "default:glass", "", "default:glass" }, + { "default:glass", "default:glass", "default:glass" } + } +}) + +minetest.register_node("vessels:steel_bottle", { + description = "Heavy Steel Bottle (empty)", + drawtype = "plantlike", + tiles = {"vessels_steel_bottle.png"}, + inventory_image = "vessels_steel_bottle_inv.png", + wield_image = "vessels_steel_bottle.png", + paramtype = "light", + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} + }, + groups = {vessel=1,dig_immediate=3,attached_node=1}, + sounds = default.node_sound_defaults(), +}) + +minetest.register_craft( { + output = "vessels:steel_bottle 5", + recipe = { + { "default:steel_ingot", "", "default:steel_ingot" }, + { "default:steel_ingot", "", "default:steel_ingot" }, + { "", "default:steel_ingot", "" } + } +}) + + +-- Make sure we can recycle them + +minetest.register_craftitem("vessels:glass_fragments", { + description = "Pile of Glass Fragments", + inventory_image = "vessels_glass_fragments.png", +}) + +minetest.register_craft( { + type = "shapeless", + output = "vessels:glass_fragments", + recipe = { + "vessels:glass_bottle", + "vessels:glass_bottle", + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "vessels:glass_fragments", + recipe = { + "vessels:drinking_glass", + "vessels:drinking_glass", + }, +}) + +minetest.register_craft({ + type = "cooking", + output = "default:glass", + recipe = "vessels:glass_fragments", +}) + +minetest.register_craft( { + type = "cooking", + output = "default:steel_ingot", + recipe = "vessels:steel_bottle", +}) + diff --git a/minetestforfun_game/mods/vessels/textures/alternates/vessels_drinking_glass.png b/minetestforfun_game/mods/vessels/textures/alternates/vessels_drinking_glass.png new file mode 100755 index 00000000..1ddbfd3c Binary files /dev/null and b/minetestforfun_game/mods/vessels/textures/alternates/vessels_drinking_glass.png differ diff --git a/minetestforfun_game/mods/vessels/textures/alternates/vessels_glass_bottle.png b/minetestforfun_game/mods/vessels/textures/alternates/vessels_glass_bottle.png new file mode 100755 index 00000000..336d8b7d Binary files /dev/null and b/minetestforfun_game/mods/vessels/textures/alternates/vessels_glass_bottle.png differ diff --git a/minetestforfun_game/mods/vessels/textures/alternates/vessels_steel_bottle.png b/minetestforfun_game/mods/vessels/textures/alternates/vessels_steel_bottle.png new file mode 100755 index 00000000..f0246c8a Binary files /dev/null and b/minetestforfun_game/mods/vessels/textures/alternates/vessels_steel_bottle.png differ diff --git a/minetestforfun_game/mods/vessels/textures/vessels_drinking_glass.png b/minetestforfun_game/mods/vessels/textures/vessels_drinking_glass.png new file mode 100755 index 00000000..68c12d32 Binary files /dev/null and b/minetestforfun_game/mods/vessels/textures/vessels_drinking_glass.png differ diff --git a/minetestforfun_game/mods/vessels/textures/vessels_drinking_glass_inv.png b/minetestforfun_game/mods/vessels/textures/vessels_drinking_glass_inv.png new file mode 100755 index 00000000..2aeafc7c Binary files /dev/null and b/minetestforfun_game/mods/vessels/textures/vessels_drinking_glass_inv.png differ diff --git a/minetestforfun_game/mods/vessels/textures/vessels_glass_bottle.png b/minetestforfun_game/mods/vessels/textures/vessels_glass_bottle.png new file mode 100755 index 00000000..336d8b7d Binary files /dev/null and b/minetestforfun_game/mods/vessels/textures/vessels_glass_bottle.png differ diff --git a/minetestforfun_game/mods/vessels/textures/vessels_glass_bottle_inv.png b/minetestforfun_game/mods/vessels/textures/vessels_glass_bottle_inv.png new file mode 100755 index 00000000..c10036fb Binary files /dev/null and b/minetestforfun_game/mods/vessels/textures/vessels_glass_bottle_inv.png differ diff --git a/minetestforfun_game/mods/vessels/textures/vessels_glass_fragments.png b/minetestforfun_game/mods/vessels/textures/vessels_glass_fragments.png new file mode 100755 index 00000000..0bdec23a Binary files /dev/null and b/minetestforfun_game/mods/vessels/textures/vessels_glass_fragments.png differ diff --git a/minetestforfun_game/mods/vessels/textures/vessels_steel_bottle.png b/minetestforfun_game/mods/vessels/textures/vessels_steel_bottle.png new file mode 100755 index 00000000..3bad963d Binary files /dev/null and b/minetestforfun_game/mods/vessels/textures/vessels_steel_bottle.png differ diff --git a/minetestforfun_game/mods/vessels/textures/vessels_steel_bottle_inv.png b/minetestforfun_game/mods/vessels/textures/vessels_steel_bottle_inv.png new file mode 100755 index 00000000..8a317b56 Binary files /dev/null and b/minetestforfun_game/mods/vessels/textures/vessels_steel_bottle_inv.png differ diff --git a/minetestforfun_game/mods/wool/README.txt b/minetestforfun_game/mods/wool/README.txt new file mode 100755 index 00000000..9db13327 --- /dev/null +++ b/minetestforfun_game/mods/wool/README.txt @@ -0,0 +1,28 @@ +Minetest 0.4 mod: wool +====================== + +Mostly backward-compatible with jordach's 16-color wool mod. + +License of source code: +----------------------- +Copyright (C) 2012 Perttu Ahola (celeron55) + +This program is free software. It comes without any warranty, to +the extent permitted by applicable law. You can redistribute it +and/or modify it under the terms of the Do What The Fuck You Want +To Public License, Version 2, as published by Sam Hocevar. See +http://sam.zoy.org/wtfpl/COPYING for more details. + +License of media (textures and sounds) +-------------------------------------- +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + +Authors of media files +----------------------- +Cisoun: +- wool_black.png wool_brown.png wool_dark_green.png wool_green.png +- wool_magenta.png wool_pink.png wool_violet.png wool_yellow.png wool_blue.png +- wool_cyan.png wool_dark_grey.png wool_grey.png wool_orange.png wool_red.png +- wool_white.png + diff --git a/minetestforfun_game/mods/wool/depends.txt b/minetestforfun_game/mods/wool/depends.txt new file mode 100755 index 00000000..4ad96d51 --- /dev/null +++ b/minetestforfun_game/mods/wool/depends.txt @@ -0,0 +1 @@ +default diff --git a/minetestforfun_game/mods/wool/init.lua b/minetestforfun_game/mods/wool/init.lua new file mode 100755 index 00000000..14cffa59 --- /dev/null +++ b/minetestforfun_game/mods/wool/init.lua @@ -0,0 +1,49 @@ +-- minetest/wool/init.lua + +-- Backwards compatibility with jordach's 16-color wool mod +minetest.register_alias("wool:dark_blue", "wool:blue") +minetest.register_alias("wool:gold", "wool:yellow") + +local wool = {} +-- This uses a trick: you can first define the recipes using all of the base +-- colors, and then some recipes using more specific colors for a few non-base +-- colors available. When crafting, the last recipes will be checked first. +wool.dyes = { + {"white", "White", nil}, + {"grey", "Grey", "basecolor_grey"}, + {"black", "Black", "basecolor_black"}, + {"red", "Red", "basecolor_red"}, + {"yellow", "Yellow", "basecolor_yellow"}, + {"green", "Green", "basecolor_green"}, + {"cyan", "Cyan", "basecolor_cyan"}, + {"blue", "Blue", "basecolor_blue"}, + {"magenta", "Magenta", "basecolor_magenta"}, + {"orange", "Orange", "excolor_orange"}, + {"violet", "Violet", "excolor_violet"}, + {"brown", "Brown", "unicolor_dark_orange"}, + {"pink", "Pink", "unicolor_light_red"}, + {"dark_grey", "Dark Grey", "unicolor_darkgrey"}, + {"dark_green", "Dark Green", "unicolor_dark_green"}, +} + +for _, row in ipairs(wool.dyes) do + local name = row[1] + local desc = row[2] + local craft_color_group = row[3] + -- Node Definition + minetest.register_node("wool:"..name, { + description = desc.." Wool", + tiles = {"wool_"..name..".png"}, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3,wool=1}, + sounds = default.node_sound_defaults(), + }) + if craft_color_group then + -- Crafting from dye and white wool + minetest.register_craft({ + type = "shapeless", + output = 'wool:'..name, + recipe = {'group:dye,'..craft_color_group, 'group:wool'}, + }) + end +end + diff --git a/minetestforfun_game/mods/wool/textures/wool_black.png b/minetestforfun_game/mods/wool/textures/wool_black.png new file mode 100755 index 00000000..e24e52b7 Binary files /dev/null and b/minetestforfun_game/mods/wool/textures/wool_black.png differ diff --git a/minetestforfun_game/mods/wool/textures/wool_blue.png b/minetestforfun_game/mods/wool/textures/wool_blue.png new file mode 100755 index 00000000..710a9a27 Binary files /dev/null and b/minetestforfun_game/mods/wool/textures/wool_blue.png differ diff --git a/minetestforfun_game/mods/wool/textures/wool_brown.png b/minetestforfun_game/mods/wool/textures/wool_brown.png new file mode 100755 index 00000000..dfc0c7fc Binary files /dev/null and b/minetestforfun_game/mods/wool/textures/wool_brown.png differ diff --git a/minetestforfun_game/mods/wool/textures/wool_cyan.png b/minetestforfun_game/mods/wool/textures/wool_cyan.png new file mode 100755 index 00000000..46f8728e Binary files /dev/null and b/minetestforfun_game/mods/wool/textures/wool_cyan.png differ diff --git a/minetestforfun_game/mods/wool/textures/wool_dark_green.png b/minetestforfun_game/mods/wool/textures/wool_dark_green.png new file mode 100755 index 00000000..d2a02975 Binary files /dev/null and b/minetestforfun_game/mods/wool/textures/wool_dark_green.png differ diff --git a/minetestforfun_game/mods/wool/textures/wool_dark_grey.png b/minetestforfun_game/mods/wool/textures/wool_dark_grey.png new file mode 100755 index 00000000..98f14883 Binary files /dev/null and b/minetestforfun_game/mods/wool/textures/wool_dark_grey.png differ diff --git a/minetestforfun_game/mods/wool/textures/wool_green.png b/minetestforfun_game/mods/wool/textures/wool_green.png new file mode 100755 index 00000000..c211ef52 Binary files /dev/null and b/minetestforfun_game/mods/wool/textures/wool_green.png differ diff --git a/minetestforfun_game/mods/wool/textures/wool_grey.png b/minetestforfun_game/mods/wool/textures/wool_grey.png new file mode 100755 index 00000000..b1b28fac Binary files /dev/null and b/minetestforfun_game/mods/wool/textures/wool_grey.png differ diff --git a/minetestforfun_game/mods/wool/textures/wool_magenta.png b/minetestforfun_game/mods/wool/textures/wool_magenta.png new file mode 100755 index 00000000..79afdb89 Binary files /dev/null and b/minetestforfun_game/mods/wool/textures/wool_magenta.png differ diff --git a/minetestforfun_game/mods/wool/textures/wool_orange.png b/minetestforfun_game/mods/wool/textures/wool_orange.png new file mode 100755 index 00000000..ca14698f Binary files /dev/null and b/minetestforfun_game/mods/wool/textures/wool_orange.png differ diff --git a/minetestforfun_game/mods/wool/textures/wool_pink.png b/minetestforfun_game/mods/wool/textures/wool_pink.png new file mode 100755 index 00000000..c282740a Binary files /dev/null and b/minetestforfun_game/mods/wool/textures/wool_pink.png differ diff --git a/minetestforfun_game/mods/wool/textures/wool_red.png b/minetestforfun_game/mods/wool/textures/wool_red.png new file mode 100755 index 00000000..4a5d43a2 Binary files /dev/null and b/minetestforfun_game/mods/wool/textures/wool_red.png differ diff --git a/minetestforfun_game/mods/wool/textures/wool_violet.png b/minetestforfun_game/mods/wool/textures/wool_violet.png new file mode 100755 index 00000000..59720bd7 Binary files /dev/null and b/minetestforfun_game/mods/wool/textures/wool_violet.png differ diff --git a/minetestforfun_game/mods/wool/textures/wool_white.png b/minetestforfun_game/mods/wool/textures/wool_white.png new file mode 100755 index 00000000..a49f08ef Binary files /dev/null and b/minetestforfun_game/mods/wool/textures/wool_white.png differ diff --git a/minetestforfun_game/mods/wool/textures/wool_yellow.png b/minetestforfun_game/mods/wool/textures/wool_yellow.png new file mode 100755 index 00000000..9bf9f16a Binary files /dev/null and b/minetestforfun_game/mods/wool/textures/wool_yellow.png differ diff --git a/minetestforfun_game/mods/xpanes/README.txt b/minetestforfun_game/mods/xpanes/README.txt new file mode 100755 index 00000000..021f8f80 --- /dev/null +++ b/minetestforfun_game/mods/xpanes/README.txt @@ -0,0 +1,13 @@ +Minetest 0.4.x mod: xpanes +========================== + +License: +-------- +Copyright (C) xyz +modified by BlockMen (iron bars) + +This program is free software. It comes without any warranty, to +the extent permitted by applicable law. You can redistribute it +and/or modify it under the terms of the Do What The Fuck You Want +To Public License, Version 2, as published by Sam Hocevar. See +http://sam.zoy.org/wtfpl/COPYING for more details. diff --git a/minetestforfun_game/mods/xpanes/depends.txt b/minetestforfun_game/mods/xpanes/depends.txt new file mode 100755 index 00000000..331d858c --- /dev/null +++ b/minetestforfun_game/mods/xpanes/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/minetestforfun_game/mods/xpanes/init.lua b/minetestforfun_game/mods/xpanes/init.lua new file mode 100755 index 00000000..b9c578eb --- /dev/null +++ b/minetestforfun_game/mods/xpanes/init.lua @@ -0,0 +1,193 @@ +xpanes = {} + +local function rshift(x, by) + return math.floor(x / 2 ^ by) +end + +local directions = { + {x = 1, y = 0, z = 0}, + {x = 0, y = 0, z = 1}, + {x = -1, y = 0, z = 0}, + {x = 0, y = 0, z = -1}, +} + +local function update_pane(pos, name) + if not minetest.get_node(pos).name:find("^xpanes:"..name) then + return + end + local sum = 0 + for i, dir in pairs(directions) do + local node = minetest.get_node({ + x = pos.x + dir.x, + y = pos.y + dir.y, + z = pos.z + dir.z + }) + local def = minetest.registered_nodes[node.name] + local pane_num = def and def.groups.pane or 0 + if pane_num > 0 or not def or (def.walkable ~= false and + def.drawtype ~= "nodebox") then + sum = sum + 2 ^ (i - 1) + end + end + if sum == 0 then + sum = 15 + end + minetest.set_node(pos, {name = "xpanes:"..name.."_"..sum}) +end + +local function update_nearby(pos, node) + node = node or minetest.get_node(pos) + local name = node.name + if not name or node.name:sub(1, 7) ~= "xpanes:" then + return + end + local underscore_pos = string.find(name, "_[^_]*$") or 0 + local len = name:len() + local num = tonumber(name:sub(underscore_pos+1, len)) + if not num or num < 1 or num > 15 then + name = name:sub(8) + else + name = name:sub(8, underscore_pos - 1) + end + for i, dir in pairs(directions) do + update_pane({ + x = pos.x + dir.x, + y = pos.y + dir.y, + z = pos.z + dir.z + }, name) + end +end + +local half_boxes = { + {0, -0.5, -1/32, 0.5, 0.5, 1/32}, + {-1/32, -0.5, 0, 1/32, 0.5, 0.5}, + {-0.5, -0.5, -1/32, 0, 0.5, 1/32}, + {-1/32, -0.5, -0.5, 1/32, 0.5, 0} +} + +local full_boxes = { + {-0.5, -0.5, -1/32, 0.5, 0.5, 1/32}, + {-1/32, -0.5, -0.5, 1/32, 0.5, 0.5} +} + +local sb_half_boxes = { + {0, -0.5, -0.06, 0.5, 0.5, 0.06}, + {-0.06, -0.5, 0, 0.06, 0.5, 0.5}, + {-0.5, -0.5, -0.06, 0, 0.5, 0.06}, + {-0.06, -0.5, -0.5, 0.06, 0.5, 0} +} + +local sb_full_boxes = { + {-0.5, -0.5, -0.06, 0.5, 0.5, 0.06}, + {-0.06, -0.5, -0.5, 0.06, 0.5, 0.5} +} + +function xpanes.register_pane(name, def) + for i = 1, 15 do + local need = {} + local cnt = 0 + for j = 1, 4 do + if rshift(i, j - 1) % 2 == 1 then + need[j] = true + cnt = cnt + 1 + end + end + local take = {} + local take2 = {} + if need[1] == true and need[3] == true then + need[1] = nil + need[3] = nil + table.insert(take, full_boxes[1]) + table.insert(take2, sb_full_boxes[1]) + end + if need[2] == true and need[4] == true then + need[2] = nil + need[4] = nil + table.insert(take, full_boxes[2]) + table.insert(take2, sb_full_boxes[2]) + end + for k in pairs(need) do + table.insert(take, half_boxes[k]) + table.insert(take2, sb_half_boxes[k]) + end + local texture = def.textures[1] + if cnt == 1 then + texture = def.textures[1].."^"..def.textures[2] + end + minetest.register_node(":xpanes:"..name.."_"..i, { + drawtype = "nodebox", + tiles = {def.textures[3], def.textures[3], texture}, + paramtype = "light", + groups = def.groups, + drop = "xpanes:"..name, + sounds = def.sounds, + node_box = { + type = "fixed", + fixed = take + }, + selection_box = { + type = "fixed", + fixed = take2 + } + }) + end + + def.on_construct = function(pos) + update_pane(pos, name) + 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}, + 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(), + recipe = { + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'} + } +}) + diff --git a/minetestforfun_game/mods/xpanes/textures/xpanes_bar.png b/minetestforfun_game/mods/xpanes/textures/xpanes_bar.png new file mode 100755 index 00000000..5534a5cb Binary files /dev/null and b/minetestforfun_game/mods/xpanes/textures/xpanes_bar.png differ diff --git a/minetestforfun_game/mods/xpanes/textures/xpanes_grey.png b/minetestforfun_game/mods/xpanes/textures/xpanes_grey.png new file mode 100755 index 00000000..e1c6f76f Binary files /dev/null and b/minetestforfun_game/mods/xpanes/textures/xpanes_grey.png differ diff --git a/minetestforfun_game/mods/xpanes/textures/xpanes_pane_half.png b/minetestforfun_game/mods/xpanes/textures/xpanes_pane_half.png new file mode 100755 index 00000000..4e846dfa Binary files /dev/null and b/minetestforfun_game/mods/xpanes/textures/xpanes_pane_half.png differ diff --git a/minetestforfun_game/mods/xpanes/textures/xpanes_space.png b/minetestforfun_game/mods/xpanes/textures/xpanes_space.png new file mode 100755 index 00000000..016cb352 Binary files /dev/null and b/minetestforfun_game/mods/xpanes/textures/xpanes_space.png differ diff --git a/minetestforfun_game/mods/xpanes/textures/xpanes_white.png b/minetestforfun_game/mods/xpanes/textures/xpanes_white.png new file mode 100755 index 00000000..777bd606 Binary files /dev/null and b/minetestforfun_game/mods/xpanes/textures/xpanes_white.png differ diff --git a/mods/3d_armor/.gitignore b/mods/3d_armor/.gitignore new file mode 100644 index 00000000..a57dbc90 --- /dev/null +++ b/mods/3d_armor/.gitignore @@ -0,0 +1,7 @@ +## Generic ignorable patterns and files +*~ +.*.swp +*bak* +tags +*.vim + diff --git a/mods/3d_armor/3d_armor/README.txt b/mods/3d_armor/3d_armor/README.txt new file mode 100644 index 00000000..d64cabd3 --- /dev/null +++ b/mods/3d_armor/3d_armor/README.txt @@ -0,0 +1,21 @@ +[mod] Visible Player Armor [3d_armor] +===================================== + +Depends: default + +Recommends: inventory_plus or unified_inventory (use only one) + +Adds craftable armor that is visible to other players. Each armor item worn contributes to +a player's armor group level making them less vulnerable to weapons. + +Armor takes damage when a player is hurt but also offers a percentage chance of healing. +Overall level is boosted by 10% when wearing a full matching set. + +Configuration +------------- + +Armor can be configured by adding a file called armor.conf in 3d_armor mod and/or world directory. +see armor.conf.example for all available options. + +Note: worldpath config settings override any settings made in the mod's directory. + diff --git a/mods/3d_armor/3d_armor/armor.conf b/mods/3d_armor/3d_armor/armor.conf new file mode 100644 index 00000000..d53841be --- /dev/null +++ b/mods/3d_armor/3d_armor/armor.conf @@ -0,0 +1,37 @@ +-- Armor Configuration (defaults) + +-- Increase this if you get initialization glitches when a player first joins. +ARMOR_INIT_DELAY = 3 + +-- Number of initialization attempts. +-- Use in conjunction with ARMOR_INIT_DELAY if initialization problems persist. +ARMOR_INIT_TIMES = 3 + +-- Increase this if armor is not getting into bones due to server lag. +ARMOR_BONES_DELAY = 3 + +-- How often player armor/wield items are updated. +ARMOR_UPDATE_TIME = 1 + +-- Drop armor when a player dies. +-- Uses bones mod if present, otherwise items are dropped around the player. +ARMOR_DROP = true + +-- Pulverise armor when a player dies, overrides ARMOR_DROP. +ARMOR_DESTROY = false + +-- You can use this to increase or decrease overall armor effectiveness, +-- eg: ARMOR_LEVEL_MULTIPLIER = 0.5 will reduce armor level by half. +ARMOR_LEVEL_MULTIPLIER = 0.35 + +-- You can use this to increase or decrease overall armor healing, +-- eg: ARMOR_HEAL_MULTIPLIER = 0 will disable healing altogether. +ARMOR_HEAL_MULTIPLIER = 0 + +-- You can also use this file to execute arbitary lua code +-- eg: Dumb the armor down if using Simple Mobs +if minetest.get_modpath("mobs") then + ARMOR_LEVEL_MULTIPLIER = 0.35 + ARMOR_HEAL_MULTIPLIER = 0 +end + diff --git a/mods/3d_armor/3d_armor/armor.conf.example b/mods/3d_armor/3d_armor/armor.conf.example new file mode 100644 index 00000000..15a2e333 --- /dev/null +++ b/mods/3d_armor/3d_armor/armor.conf.example @@ -0,0 +1,37 @@ +-- Armor Configuration (defaults) + +-- Increase this if you get initialization glitches when a player first joins. +ARMOR_INIT_DELAY = 1 + +-- Number of initialization attempts. +-- Use in conjunction with ARMOR_INIT_DELAY if initialization problems persist. +ARMOR_INIT_TIMES = 1 + +-- Increase this if armor is not getting into bones due to server lag. +ARMOR_BONES_DELAY = 1 + +-- How often player armor/wield items are updated. +ARMOR_UPDATE_TIME = 1 + +-- Drop armor when a player dies. +-- Uses bones mod if present, otherwise items are dropped around the player. +ARMOR_DROP = true + +-- Pulverise armor when a player dies, overrides ARMOR_DROP. +ARMOR_DESTROY = false + +-- You can use this to increase or decrease overall armor effectiveness, +-- eg: ARMOR_LEVEL_MULTIPLIER = 0.5 will reduce armor level by half. +ARMOR_LEVEL_MULTIPLIER = 1 + +-- You can use this to increase or decrease overall armor healing, +-- eg: ARMOR_HEAL_MULTIPLIER = 0 will disable healing altogether. +ARMOR_HEAL_MULTIPLIER = 0.5 + +-- You can also use this file to execute arbitary lua code +-- eg: Dumb the armor down if using Simple Mobs +if minetest.get_modpath("mobs") then + ARMOR_LEVEL_MULTIPLIER = 0.5 + ARMOR_HEAL_MULTIPLIER = 0 +end + diff --git a/mods/3d_armor/3d_armor/armor.lua b/mods/3d_armor/3d_armor/armor.lua new file mode 100644 index 00000000..19650cf6 --- /dev/null +++ b/mods/3d_armor/3d_armor/armor.lua @@ -0,0 +1,481 @@ +ARMOR_INIT_DELAY = 1 +ARMOR_INIT_TIMES = 1 +ARMOR_BONES_DELAY = 1 +ARMOR_UPDATE_TIME = 1 +ARMOR_DROP = minetest.get_modpath("bones") ~= nil +ARMOR_DESTROY = false +ARMOR_LEVEL_MULTIPLIER = 1 +ARMOR_HEAL_MULTIPLIER = 1 + +local modpath = minetest.get_modpath(ARMOR_MOD_NAME) +local worldpath = minetest.get_worldpath() +local input = io.open(modpath.."/armor.conf", "r") +if input then + dofile(modpath.."/armor.conf") + input:close() + input = nil +end +input = io.open(worldpath.."/armor.conf", "r") +if input then + dofile(worldpath.."/armor.conf") + input:close() + input = nil +end + +local time = 0 + +armor = { + player_hp = {}, + elements = {"head", "torso", "legs", "feet"}, + physics = {"jump","speed","gravity"}, + formspec = "size[8,8.5]list[detached:player_name_armor;armor;0,1;2,3;]" + .."image[2,0.75;2,4;armor_preview]" + .."list[current_player;main;0,4.5;8,4;]" + .."list[current_player;craft;4,1;3,3;]" + .."list[current_player;craftpreview;7,2;1,1;]", + textures = {}, + default_skin = "character", +} + +if inventory_plus then + armor.formspec = "size[8,8.5]button[0,0;2,0.5;main;Back]" + .."list[detached:player_name_armor;armor;0,1;2,3;]" + .."image[2.5,0.75;2,4;armor_preview]" + .."label[5,1;Level: armor_level]" + .."label[5,1.5;Heal: armor_heal]" + .."list[current_player;main;0,4.5;8,4;]" +elseif unified_inventory then + unified_inventory.register_button("armor", { + type = "image", + image = "inventory_plus_armor.png", + }) + unified_inventory.register_page("armor", { + get_formspec = function(player) + local name = player:get_player_name() + local formspec = "background[0.06,0.99;7.92,7.52;3d_armor_ui_form.png]" + .."label[0,0;Armor]" + .."list[detached:"..name.."_armor;armor;0,1;2,3;]" + .."image[2.5,0.75;2,4;"..armor.textures[name].preview.."]" + .."label[5,1;Level: "..armor.def[name].level.."]" + .."label[5,1.5;Heal: "..armor.def[name].heal.."]" + return {formspec=formspec} + end, + }) +end + +armor.def = { + state = 0, + count = 0, +} + +armor.update_player_visuals = function(self, player) + if not player then + return + end + local name = player:get_player_name() + if self.textures[name] then + default.player_set_textures(player, { + self.textures[name].skin, + self.textures[name].armor, + self.textures[name].wielditem, + }) + end +end + +armor.set_player_armor = function(self, player) + if not player then + return + end + local name = player:get_player_name() + local player_inv = player:get_inventory() + if not name then + minetest.log("error", "Failed to read player name") + return + elseif not player_inv then + minetest.log("error", "Failed to read player inventory") + return + end + local armor_texture = "3d_armor_trans.png" + local armor_level = 0 + local armor_heal = 0 + local state = 0 + local items = 0 + local elements = {} + local textures = {} + local physics_o = {speed=1,gravity=1,jump=1} + local material = {type=nil, count=1} + local preview = armor:get_player_skin(name).."_preview.png" + for _,v in ipairs(self.elements) do + elements[v] = false + end + for i=1, 6 do + local stack = player_inv:get_stack("armor", i) + local item = stack:get_name() + if stack:get_count() == 1 then + local def = stack:get_definition() + for k, v in pairs(elements) do + if v == false then + local level = def.groups["armor_"..k] + if level then + local texture = item:gsub("%:", "_") + table.insert(textures, texture..".png") + preview = preview.."^"..texture.."_preview.png" + armor_level = armor_level + level + state = state + stack:get_wear() + items = items + 1 + local heal = def.groups["armor_heal"] or 0 + armor_heal = armor_heal + heal + for kk,vv in ipairs(self.physics) do + local o_value = def.groups["physics_"..vv] + if o_value then + physics_o[vv] = physics_o[vv] + o_value + end + end + local mat = string.match(item, "%:.+_(.+)$") + if material.type then + if material.type == mat then + material.count = material.count + 1 + end + else + material.type = mat + end + elements[k] = true + end + end + end + end + end + if minetest.get_modpath("shields") then + armor_level = armor_level * 0.9 + end + if material.type and material.count == #self.elements then + armor_level = armor_level * 1.1 + end + armor_level = armor_level * ARMOR_LEVEL_MULTIPLIER + armor_heal = armor_heal * ARMOR_HEAL_MULTIPLIER + if #textures > 0 then + armor_texture = table.concat(textures, "^") + end + local armor_groups = {fleshy=100} + if armor_level > 0 then + armor_groups.level = math.floor(armor_level / 20) + armor_groups.fleshy = 100 - armor_level + end + player:set_armor_groups(armor_groups) + player:set_physics_override(physics_o) + self.textures[name].armor = armor_texture + self.textures[name].preview = preview + self.def[name].state = state + self.def[name].count = items + self.def[name].level = armor_level + self.def[name].heal = armor_heal + self.def[name].jump = physics_o.jump + self.def[name].speed = physics_o.speed + self.def[name].gravity = physics_o.gravity + self:update_player_visuals(player) +end + +armor.update_armor = function(self, player) + if not player then + return + end + local name = player:get_player_name() + local hp = player:get_hp() or 0 + if hp == 0 or hp == self.player_hp[name] then + return + end + if self.player_hp[name] > hp then + local player_inv = player:get_inventory() + local armor_inv = minetest.get_inventory({type="detached", name=name.."_armor"}) + if not player_inv then + minetest.log("error", "Failed to read player inventory") + return + elseif not armor_inv then + minetest.log("error", "Failed to read detached inventory") + return + end + local heal_max = 0 + local state = 0 + local items = 0 + for i=1, 6 do + local stack = player_inv:get_stack("armor", i) + if stack:get_count() > 0 then + local use = stack:get_definition().groups["armor_use"] or 0 + local heal = stack:get_definition().groups["armor_heal"] or 0 + local item = stack:get_name() + stack:add_wear(use) + armor_inv:set_stack("armor", i, stack) + player_inv:set_stack("armor", i, stack) + state = state + stack:get_wear() + items = items + 1 + if stack:get_count() == 0 then + local desc = minetest.registered_items[item].description + if desc then + minetest.chat_send_player(name, "Your "..desc.." got destroyed!") + end + self:set_player_armor(player) + armor:update_inventory(player) + end + heal_max = heal_max + heal + end + end + self.def[name].state = state + self.def[name].count = items + heal_max = heal_max * ARMOR_HEAL_MULTIPLIER + if heal_max > math.random(100) then + player:set_hp(self.player_hp[name]) + return + end + end + self.player_hp[name] = hp +end + +armor.get_player_skin = function(self, name) + local skin = nil + if skins then + skin = skins.skins[name] + elseif u_skins then + skin = u_skins.u_skins[name] + end + return skin or armor.default_skin +end + +armor.get_armor_formspec = function(self, name) + local formspec = armor.formspec:gsub("player_name", name) + formspec = formspec:gsub("armor_preview", armor.textures[name].preview) + formspec = formspec:gsub("armor_level", armor.def[name].level) + return formspec:gsub("armor_heal", armor.def[name].heal) +end + +armor.update_inventory = function(self, player) + local name = player:get_player_name() + if unified_inventory then + if unified_inventory.current_page[name] == "armor" then + unified_inventory.set_inventory_formspec(player, "armor") + end + else + local formspec = armor:get_armor_formspec(name) + if inventory_plus then + local page = player:get_inventory_formspec() + if page:find("detached:"..name.."_armor") then + inventory_plus.set_inventory_formspec(player, formspec) + end + else + player:set_inventory_formspec(formspec) + end + end +end + +-- Register Player Model + +default.player_register_model("3d_armor_character.x", { + animation_speed = 30, + textures = { + armor.default_skin..".png", + "3d_armor_trans.png", + "3d_armor_trans.png", + }, + animations = { + stand = {x=0, y=79}, + lay = {x=162, y=166}, + walk = {x=168, y=187}, + mine = {x=189, y=198}, + walk_mine = {x=200, y=219}, + sit = {x=81, y=160}, + }, +}) + +-- Register Callbacks + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if inventory_plus and fields.armor then + local formspec = armor:get_armor_formspec(name) + inventory_plus.set_inventory_formspec(player, formspec) + return + end + for field, _ in pairs(fields) do + if string.find(field, "skins_set_") then + minetest.after(0, function(player) + local skin = armor:get_player_skin(name) + armor.textures[name].skin = skin..".png" + armor:set_player_armor(player) + end, player) + end + end +end) + +minetest.register_on_joinplayer(function(player) + default.player_set_model(player, "3d_armor_character.x") + local name = player:get_player_name() + local player_inv = player:get_inventory() + local armor_inv = minetest.create_detached_inventory(name.."_armor",{ + on_put = function(inv, listname, index, stack, player) + player:get_inventory():set_stack(listname, index, stack) + armor:set_player_armor(player) + armor:update_inventory(player) + end, + on_take = function(inv, listname, index, stack, player) + player:get_inventory():set_stack(listname, index, nil) + armor:set_player_armor(player) + armor:update_inventory(player) + end, + on_move = function(inv, from_list, from_index, to_list, to_index, count, player) + local plaver_inv = player:get_inventory() + local stack = inv:get_stack(to_list, to_index) + player_inv:set_stack(to_list, to_index, stack) + player_inv:set_stack(from_list, from_index, nil) + armor:set_player_armor(player) + armor:update_inventory(player) + end, + allow_put = function(inv, listname, index, stack, player) + return 1 + end, + allow_take = function(inv, listname, index, stack, player) + return stack:get_count() + end, + allow_move = function(inv, from_list, from_index, to_list, to_index, count, player) + return count + end, + }) + if inventory_plus then + inventory_plus.register_button(player,"armor", "Armor") + end + armor_inv:set_size("armor", 6) + player_inv:set_size("armor", 6) + for i=1, 6 do + local stack = player_inv:get_stack("armor", i) + armor_inv:set_stack("armor", i, stack) + end + + -- Legacy support, import player's armor from old inventory format + for _,v in pairs(armor.elements) do + local list = "armor_"..v + armor_inv:add_item("armor", player_inv:get_stack(list, 1)) + player_inv:set_stack(list, 1, nil) + end + + armor.player_hp[name] = 0 + armor.def[name] = { + state = 0, + count = 0, + level = 0, + heal = 0, + jump = 1, + speed = 1, + gravity = 1, + } + armor.textures[name] = { + skin = armor.default_skin..".png", + armor = "3d_armor_trans.png", + wielditem = "3d_armor_trans.png", + preview = armor.default_skin.."_preview.png", + } + if minetest.get_modpath("skins") then + local skin = skins.skins[name] + if skin and skins.get_type(skin) == skins.type.MODEL then + armor.textures[name].skin = skin..".png" + end + elseif minetest.get_modpath("simple_skins") then + local skin = skins.skins[name] + if skin then + armor.textures[name].skin = skin..".png" + end + elseif minetest.get_modpath("u_skins") then + local skin = u_skins.u_skins[name] + if skin and u_skins.get_type(skin) == u_skins.type.MODEL then + armor.textures[name].skin = skin..".png" + end + end + if minetest.get_modpath("player_textures") then + local filename = minetest.get_modpath("player_textures").."/textures/player_"..name + local f = io.open(filename..".png") + if f then + f:close() + armor.textures[name].skin = "player_"..name..".png" + end + end + for i=1, ARMOR_INIT_TIMES do + minetest.after(ARMOR_INIT_DELAY * i, function(player) + armor:set_player_armor(player) + if inventory_plus == nil and unified_inventory == nil then + armor:update_inventory(player) + end + end, player) + end +end) + +if ARMOR_DROP == true or ARMOR_DESTROY == true then + minetest.register_on_dieplayer(function(player) + local name = player:get_player_name() + local pos = player:getpos() + if name and pos then + local drop = {} + local player_inv = player:get_inventory() + local armor_inv = minetest.get_inventory({type="detached", name=name.."_armor"}) + for i=1, player_inv:get_size("armor") do + local stack = armor_inv:get_stack("armor", i) + if stack:get_count() > 0 then + table.insert(drop, stack) + armor_inv:set_stack("armor", i, nil) + player_inv:set_stack("armor", i, nil) + end + end + armor:set_player_armor(player) + if unified_inventory then + unified_inventory.set_inventory_formspec(player, "craft") + elseif inventory_plus then + local formspec = inventory_plus.get_formspec(player,"main") + inventory_plus.set_inventory_formspec(player, formspec) + else + armor:update_inventory(player) + end + if ARMOR_DESTROY == false then + if minetest.get_modpath("bones") then + minetest.after(ARMOR_BONES_DELAY, function() + pos = vector.round(pos) + local node = minetest.get_node(pos) + if node.name == "bones:bones" then + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + local inv = meta:get_inventory() + if name == owner then + for _,stack in ipairs(drop) do + if inv:room_for_item("main", stack) then + inv:add_item("main", stack) + end + end + end + end + end) + else + for _,stack in ipairs(drop) do + local obj = minetest.add_item(pos, stack) + if obj then + local x = math.random(1, 5) + if math.random(1,2) == 1 then + x = -x + end + local z = math.random(1, 5) + if math.random(1,2) == 1 then + z = -z + end + obj:setvelocity({x=1/x, y=obj:getvelocity().y, z=1/z}) + end + end + end + end + end + end) +end + +minetest.register_globalstep(function(dtime) + time = time + dtime + if time > ARMOR_UPDATE_TIME then + for _,player in ipairs(minetest.get_connected_players()) do + armor:update_armor(player) + end + time = 0 + end +end) + diff --git a/mods/3d_armor/3d_armor/crafting_guide.txt b/mods/3d_armor/3d_armor/crafting_guide.txt new file mode 100644 index 00000000..d41be9d6 --- /dev/null +++ b/mods/3d_armor/3d_armor/crafting_guide.txt @@ -0,0 +1,71 @@ +3d_armor -- Crafting Guide +-------------------------- + +Helmets: + ++---+---+---+ +| X | X | X | ++---+---+---+ +| X | | X | ++---+---+---+ +| | | | ++---+---+---+ + +[3d_armor:helmet_wood] X = [default:wood] +[3d_armor:helmet_steel] X = [default:steel_ingot] +[3d_armor:helmet_bronze] X = [default:bronze_ingot] +[3d_armor:helmet_diamond] X = [default:diamond] +[3d_armor:helmet_diamond] X = [default:gold_ingot] +[3d_armor:helmet_mithril] X = [moreores:mithril_ingot] * + +Chestplates: + ++---+---+---+ +| X | | X | ++---+---+---+ +| X | X | X | ++---+---+---+ +| X | X | X | ++---+---+---+ + +[3d_armor:chestplate_wood] X = [default:wood] +[3d_armor:chestplate_steel] X = [default:steel_ingot] +[3d_armor:chestplate_bronze] X = [default:bronze_ingot] +[3d_armor:chestplate_diamond] X = [default:diamond] +[3d_armor:chestplate_diamond] X = [default:gold_ingot] +[3d_armor:chestplate_mithril] X = [moreores:mithril_ingot] * + +Leggings: + ++---+---+---+ +| X | X | X | ++---+---+---+ +| X | | X | ++---+---+---+ +| X | | X | ++---+---+---+ + +[3d_armor:leggings_wood] X = [default:wood] +[3d_armor:leggings_steel] X = [default:steel_ingot] +[3d_armor:leggings_bronze] X = [default:bronze_ingot] +[3d_armor:leggings_diamond] X = [default:diamond] +[3d_armor:leggings_diamond] X = [default:gold_ingot] +[3d_armor:leggings_mithril] X = [moreores:mithril_ingot] * + +Boots: + ++---+---+---+ +| X | | X | ++---+---+---+ +| X | | X | ++---+---+---+ + +[3d_armor:boots_wood] X = [default:wood] +[3d_armor:boots_steel] X = [default:steel_ingot] +[3d_armor:boots_bronze] X = [default:bronze_ingot +[3d_armor:boots_diamond] X = [default:diamond] +[3d_armor:boots_diamond] X = [default:gold_ingot] +[3d_armor:boots_mithril] X = [moreores:mithril_ingot] * + +* Requires moreores mod by Calinou - https://forum.minetest.net/viewtopic.php?id=549 + diff --git a/mods/3d_armor/3d_armor/depends.txt b/mods/3d_armor/3d_armor/depends.txt new file mode 100644 index 00000000..525e69c3 --- /dev/null +++ b/mods/3d_armor/3d_armor/depends.txt @@ -0,0 +1,4 @@ +default +inventory_plus? +unified_inventory? + diff --git a/mods/3d_armor/3d_armor/init.lua b/mods/3d_armor/3d_armor/init.lua new file mode 100644 index 00000000..6e4d36ce --- /dev/null +++ b/mods/3d_armor/3d_armor/init.lua @@ -0,0 +1,236 @@ +ARMOR_MOD_NAME = minetest.get_current_modname() +dofile(minetest.get_modpath(ARMOR_MOD_NAME).."/armor.lua") +local use_moreores = minetest.get_modpath("moreores") + +-- Regisiter Head Armor + +minetest.register_tool("3d_armor:helmet_wood", { + description = "Wood Helmet", + inventory_image = "3d_armor_inv_helmet_wood.png", + groups = {armor_head=5, armor_heal=0, armor_use=2000}, + wear = 0, +}) + +minetest.register_tool("3d_armor:helmet_steel", { + description = "Steel Helmet", + inventory_image = "3d_armor_inv_helmet_steel.png", + groups = {armor_head=8, armor_heal=0, armor_use=500}, + wear = 0, +}) + +minetest.register_tool("3d_armor:helmet_bronze", { + description = "Bronze Helmet", + inventory_image = "3d_armor_inv_helmet_bronze.png", + groups = {armor_head=10, armor_heal=4, armor_use=250}, + wear = 0, +}) + +minetest.register_tool("3d_armor:helmet_diamond", { + description = "Diamond Helmet", + inventory_image = "3d_armor_inv_helmet_diamond.png", + groups = {armor_head=14, armor_heal=12, armor_use=100}, + wear = 0, +}) + +minetest.register_tool("3d_armor:helmet_gold", { + description = "Gold Helmet", + inventory_image = "3d_armor_inv_helmet_gold.png", + groups = {armor_head=12, armor_heal=6, armor_use=200}, + wear = 0, +}) + +if use_moreores then + minetest.register_tool("3d_armor:helmet_mithril", { + description = "Mithril Helmet", + inventory_image = "3d_armor_inv_helmet_mithril.png", + groups = {armor_head=15, armor_heal=12, armor_use=50}, + wear = 0, + }) +end + +-- Regisiter Torso Armor + +minetest.register_tool("3d_armor:chestplate_wood", { + description = "Wood Chestplate", + inventory_image = "3d_armor_inv_chestplate_wood.png", + groups = {armor_torso=8, armor_heal=0, armor_use=2000}, + wear = 0, +}) + +minetest.register_tool("3d_armor:chestplate_steel", { + description = "Steel Chestplate", + inventory_image = "3d_armor_inv_chestplate_steel.png", + groups = {armor_torso=10, armor_heal=0, armor_use=500}, + wear = 0, +}) + +minetest.register_tool("3d_armor:chestplate_bronze", { + description = "Bronze Chestplate", + inventory_image = "3d_armor_inv_chestplate_bronze.png", + groups = {armor_torso=12, armor_heal=4, armor_use=250}, + wear = 0, +}) + +minetest.register_tool("3d_armor:chestplate_diamond", { + description = "Diamond Chestplate", + inventory_image = "3d_armor_inv_chestplate_diamond.png", + groups = {armor_torso=18, armor_heal=12, armor_use=100}, + wear = 0, +}) + +minetest.register_tool("3d_armor:chestplate_gold", { + description = "Gold Chestplate", + inventory_image = "3d_armor_inv_chestplate_gold.png", + groups = {armor_torso=15, armor_heal=6, armor_use=200}, + wear = 0, +}) + +if use_moreores then + minetest.register_tool("3d_armor:chestplate_mithril", { + description = "Mithril Chestplate", + inventory_image = "3d_armor_inv_chestplate_mithril.png", + groups = {armor_torso=20, armor_heal=12, armor_use=50}, + wear = 0, + }) +end + +-- Regisiter Leg Armor + +minetest.register_tool("3d_armor:leggings_wood", { + description = "Wood Leggings", + inventory_image = "3d_armor_inv_leggings_wood.png", + groups = {armor_legs=8, armor_heal=0, armor_use=2000}, + wear = 0, +}) + +minetest.register_tool("3d_armor:leggings_steel", { + description = "Steel Leggings", + inventory_image = "3d_armor_inv_leggings_steel.png", + groups = {armor_legs=10, armor_heal=0, armor_use=500}, + wear = 0, +}) + +minetest.register_tool("3d_armor:leggings_bronze", { + description = "Bronze Leggings", + inventory_image = "3d_armor_inv_leggings_bronze.png", + groups = {armor_legs=12, armor_heal=6, armor_use=250}, + wear = 0, +}) + +minetest.register_tool("3d_armor:leggings_diamond", { + description = "Diamond Leggings", + inventory_image = "3d_armor_inv_leggings_diamond.png", + groups = {armor_legs=18, armor_heal=12, armor_use=100}, + wear = 0, +}) + +minetest.register_tool("3d_armor:leggings_gold", { + description = "Gold Leggings", + inventory_image = "3d_armor_inv_leggings_gold.png", + groups = {armor_legs=15, armor_heal=6, armor_use=200}, + wear = 0, +}) + +if use_moreores then + minetest.register_tool("3d_armor:leggings_mithril", { + description = "Mithril Leggings", + inventory_image = "3d_armor_inv_leggings_mithril.png", + groups = {armor_legs=20, armor_heal=12, armor_use=50}, + wear = 0, + }) +end + +-- Regisiter Boots + +minetest.register_tool("3d_armor:boots_wood", { + description = "Wood Boots", + inventory_image = "3d_armor_inv_boots_wood.png", + groups = {armor_feet=5, armor_heal=0, armor_use=2000}, + wear = 0, +}) + +minetest.register_tool("3d_armor:boots_steel", { + description = "Steel Boots", + inventory_image = "3d_armor_inv_boots_steel.png", + groups = {armor_feet=8, armor_heal=0, armor_use=500}, + wear = 0, +}) + +minetest.register_tool("3d_armor:boots_bronze", { + description = "Bronze Boots", + inventory_image = "3d_armor_inv_boots_bronze.png", + groups = {armor_feet=10, armor_heal=4, armor_use=250}, + wear = 0, +}) + +minetest.register_tool("3d_armor:boots_diamond", { + description = "Diamond Boots", + inventory_image = "3d_armor_inv_boots_diamond.png", + groups = {armor_feet=14, armor_heal=12, armor_use=100}, + wear = 0, +}) + +minetest.register_tool("3d_armor:boots_gold", { + description = "Gold Boots", + inventory_image = "3d_armor_inv_boots_gold.png", + groups = {armor_feet=12, armor_heal=6, armor_use=200}, + wear = 0, +}) + +if use_moreores then + minetest.register_tool("3d_armor:boots_mithril", { + description = "Mithril Boots", + inventory_image = "3d_armor_inv_boots_mithril.png", + groups = {armor_feet=15, armor_heal=12, armor_use=50}, + wear = 0, + }) +end + +-- Register Craft Recipies + +local craft_ingreds = { + wood = "default:wood", + steel = "default:steel_ingot", + bronze = "default:bronze_ingot", + diamond = "default:diamond", + gold = "default:gold_ingot", +} + +if use_moreores then + craft_ingreds.mithril = "moreores:mithril_ingot" +end + +for k, v in pairs(craft_ingreds) do + minetest.register_craft({ + output = "3d_armor:helmet_"..k, + recipe = { + {v, v, v}, + {v, "", v}, + {"", "", ""}, + }, + }) + minetest.register_craft({ + output = "3d_armor:chestplate_"..k, + recipe = { + {v, "", v}, + {v, v, v}, + {v, v, v}, + }, + }) + minetest.register_craft({ + output = "3d_armor:leggings_"..k, + recipe = { + {v, v, v}, + {v, "", v}, + {v, "", v}, + }, + }) + minetest.register_craft({ + output = "3d_armor:boots_"..k, + recipe = { + {v, "", v}, + {v, "", v}, + }, + }) +end + diff --git a/mods/3d_armor/3d_armor/models/3d_armor_character.blend b/mods/3d_armor/3d_armor/models/3d_armor_character.blend new file mode 100644 index 00000000..1a8584bf Binary files /dev/null and b/mods/3d_armor/3d_armor/models/3d_armor_character.blend differ diff --git a/mods/3d_armor/3d_armor/models/3d_armor_character.x b/mods/3d_armor/3d_armor/models/3d_armor_character.x new file mode 100644 index 00000000..3e18ac97 --- /dev/null +++ b/mods/3d_armor/3d_armor/models/3d_armor_character.x @@ -0,0 +1,9521 @@ +xof 0303txt 0032 + +template AnimTicksPerSecond { + <9E415A43-7BA6-4a73-8743-B73D47E88476> + DWORD AnimTicksPerSecond; +} + +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.989209,-0.143884,-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.989209, 0.143884, 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.000000, 0.000000, + -0.000000,-0.000000,-1.000000, 0.000000, + 0.000000, 6.950000, 1.100000, 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.000000, 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.000000, 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 + 640; + -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;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;, + 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; 6.750000;, + 0.000000;-1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -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;13.500000;, + -2.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; 6.750000;, + -2.000000;-1.000000; 0.000000;, + -2.000000; 1.000000; 0.000000;, + -2.000000; 1.000000; 6.750000;, + 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;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;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;, + -0.000000;-1.000000; 0.000000;, + -2.000000;-1.000000; 0.000000;, + -2.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;, + -2.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 6.750000;, + 2.000000; 1.000000; 6.750000;, + 2.000000;-1.000000; 6.750000;, + 4.000000;-1.000000; 6.750000;, + 4.000000; 1.000000; 6.750000;, + 4.000000; 1.000000;13.500000;, + 4.000000;-1.000000;13.500000;, + 2.000000;-1.000000;13.500000;, + 2.000000; 1.000000;13.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;, + 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; 6.750000;, + 2.000000; 1.000000; 6.750000;, + 2.000000; 1.000000; 0.000000;, + 2.000000;-1.000000; 0.000000;, + 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;-2.000000;17.500000;, + 2.000000; 2.000000;17.500000;, + 2.000000; 2.000000;13.500000;, + 2.000000;-2.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;, + -4.000000; 1.000000;13.500000;, + -4.000000; 1.000000; 6.750000;, + -2.000000; 1.000000; 6.750000;, + -2.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;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;, + -2.000000; 1.000000;13.500000;, + -2.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; 6.750000;, + 4.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;, + -4.000000; 1.000000; 6.750000;, + -4.000000;-1.000000; 6.750000;, + -2.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; 6.750000;, + 2.000000;-1.000000; 6.750000;, + 0.000000;-1.000000; 6.750000;, + 0.000000; 1.000000; 6.750000;, + 2.200000;-2.200000;17.700001;, + 2.200000;-2.200000;13.300000;, + -2.200000;-2.200000;13.300000;, + -2.200000;-2.200000;17.700001;, + -2.200000;-2.200000;17.700001;, + -2.200000;-2.200000;13.300000;, + -2.200000; 2.200000;13.300000;, + -2.200000; 2.200000;17.700001;, + -2.200000; 2.200000;17.700001;, + -2.200000; 2.200000;13.300000;, + 2.200000; 2.200000;13.300000;, + 2.200000; 2.200000;17.700001;, + 2.200000; 2.200000;13.300000;, + -2.200000; 2.200000;13.300000;, + -2.200000;-2.200000;13.300000;, + 2.200000;-2.200000;13.300000;, + -2.200000; 2.200000;17.700001;, + 2.200000; 2.200000;17.700001;, + 2.200000;-2.200000;17.700001;, + -2.200000;-2.200000;17.700001;, + 2.200000;-2.200000;17.700001;, + 2.200000; 2.200000;17.700001;, + 2.200000; 2.200000;13.300000;, + 2.200000;-2.200000;13.300000;, + 2.200000;-1.200000;13.700000;, + 2.200000; 1.200000;13.700000;, + 2.200000; 1.200000; 6.600000;, + 2.200000;-1.200000; 6.600000;, + -2.200000; 1.200000;13.700000;, + 2.200000; 1.200000;13.700000;, + 2.200000;-1.200000;13.700000;, + -2.200000;-1.200000;13.700000;, + -2.200000;-1.200000; 6.600000;, + 2.200000;-1.200000; 6.600000;, + 2.200000; 1.200000; 6.600000;, + -2.200000; 1.200000; 6.600000;, + -2.200000; 1.200000;13.700000;, + -2.200000; 1.200000; 6.600000;, + 2.200000; 1.200000; 6.600000;, + 2.200000; 1.200000;13.700000;, + -2.200000; 1.200000; 6.600000;, + -2.200000; 1.200000;13.700000;, + -2.200000;-1.200000;13.700000;, + -2.200000;-1.200000; 6.600000;, + -2.200000;-1.200000; 6.600000;, + -2.200000;-1.200000;13.700000;, + 2.200000;-1.200000;13.700000;, + 2.200000;-1.200000; 6.600000;, + 2.300000;-2.300000;17.799999;, + 2.300000; 2.300000;17.799999;, + 2.300000; 2.300000;13.200000;, + 2.300000;-2.300000;13.200000;, + -2.300000; 2.300000;17.799999;, + 2.300000; 2.300000;17.799999;, + 2.300000;-2.300000;17.799999;, + -2.300000;-2.300000;17.799999;, + 2.300000; 2.300000;13.200000;, + -2.300000; 2.300000;13.200000;, + -2.300000;-2.300000;13.200000;, + 2.300000;-2.300000;13.200000;, + -2.300000; 2.300000;17.799999;, + -2.300000; 2.300000;13.200000;, + 2.300000; 2.300000;13.200000;, + 2.300000; 2.300000;17.799999;, + -2.300000;-2.300000;17.799999;, + -2.300000;-2.300000;13.200000;, + -2.300000; 2.300000;13.200000;, + -2.300000; 2.300000;17.799999;, + 2.300000;-2.300000;17.799999;, + 2.300000;-2.300000;13.200000;, + -2.300000;-2.300000;13.200000;, + -2.300000;-2.300000;17.799999;, + -1.800000; 1.300000; 6.500000;, + -4.200000; 1.300000; 6.500000;, + -4.200000;-1.300000; 6.500000;, + -1.800000;-1.300000; 6.500000;, + -4.200000; 1.300000;13.800000;, + -1.800000; 1.300000;13.800000;, + -1.800000;-1.300000;13.800000;, + -4.200000;-1.300000;13.800000;, + -4.200000;-1.300000;13.800000;, + -4.200000;-1.300000; 6.500000;, + -4.200000; 1.300000; 6.500000;, + -4.200000; 1.300000;13.800000;, + -4.200000; 1.300000;13.800000;, + -4.200000; 1.300000; 6.500000;, + -1.800000; 1.300000; 6.500000;, + -1.800000; 1.300000;13.800000;, + -1.800000; 1.300000;13.800000;, + -1.800000; 1.300000; 6.500000;, + -1.800000;-1.300000; 6.500000;, + -1.800000;-1.300000;13.800000;, + -1.800000;-1.300000;13.800000;, + -1.800000;-1.300000; 6.500000;, + -4.200000;-1.300000; 6.500000;, + -4.200000;-1.300000;13.800000;, + 1.800000;-1.300000;13.800000;, + 4.200000;-1.300000;13.800000;, + 4.200000;-1.300000; 6.500000;, + 1.800000;-1.300000; 6.500000;, + 1.800000; 1.300000;13.800000;, + 1.800000;-1.300000;13.800000;, + 1.800000;-1.300000; 6.500000;, + 1.800000; 1.300000; 6.500000;, + 4.200000; 1.300000;13.800000;, + 1.800000; 1.300000;13.800000;, + 1.800000; 1.300000; 6.500000;, + 4.200000; 1.300000; 6.500000;, + 4.200000;-1.300000;13.800000;, + 4.200000; 1.300000;13.800000;, + 4.200000; 1.300000; 6.500000;, + 4.200000;-1.300000; 6.500000;, + 4.200000; 1.300000;13.800000;, + 4.200000;-1.300000;13.800000;, + 1.800000;-1.300000;13.800000;, + 1.800000; 1.300000;13.800000;, + 1.800000; 1.300000; 6.500000;, + 1.800000;-1.300000; 6.500000;, + 4.200000;-1.300000; 6.500000;, + 4.200000; 1.300000; 6.500000;, + 2.200000; 1.200000; 6.900000;, + 2.200000;-1.200000; 6.900000;, + -0.200000;-1.200000; 6.900000;, + -0.200000; 1.200000; 6.900000;, + -0.200000; 1.200000;-0.100000;, + -0.200000;-1.200000;-0.100000;, + 2.200000;-1.200000;-0.100000;, + 2.200000; 1.200000;-0.100000;, + 2.200000;-1.200000; 6.900000;, + 2.200000; 1.200000; 6.900000;, + 2.200000; 1.200000;-0.100000;, + 2.200000;-1.200000;-0.100000;, + -0.200000;-1.200000; 6.900000;, + 2.200000;-1.200000; 6.900000;, + 2.200000;-1.200000;-0.100000;, + -0.200000;-1.200000;-0.100000;, + 2.200000; 1.200000; 6.900000;, + -0.200000; 1.200000; 6.900000;, + -0.200000; 1.200000;-0.100000;, + 2.200000; 1.200000;-0.100000;, + -0.200000; 1.200000; 6.900000;, + -0.200000;-1.200000; 6.900000;, + -0.200000;-1.200000;-0.100000;, + -0.200000; 1.200000;-0.100000;, + -2.200000; 1.200000; 6.900000;, + 0.200000; 1.200000; 6.900000;, + 0.200000;-1.200000; 6.900000;, + -2.200000;-1.200000; 6.900000;, + 0.200000; 1.200000; 6.900000;, + 0.200000; 1.200000;-0.100000;, + 0.200000;-1.200000;-0.100000;, + 0.200000;-1.200000; 6.900000;, + -2.200000; 1.200000; 6.900000;, + -2.200000; 1.200000;-0.100000;, + 0.200000; 1.200000;-0.100000;, + 0.200000; 1.200000; 6.900000;, + 0.200000;-1.200000; 6.900000;, + 0.200000;-1.200000;-0.100000;, + -2.200000;-1.200000;-0.100000;, + -2.200000;-1.200000; 6.900000;, + -2.200000;-1.200000; 6.900000;, + -2.200000;-1.200000;-0.100000;, + -2.200000; 1.200000;-0.100000;, + -2.200000; 1.200000; 6.900000;, + 0.200000; 1.200000;-0.100000;, + -2.200000; 1.200000;-0.100000;, + -2.200000;-1.200000;-0.100000;, + 0.200000;-1.200000;-0.100000;, + 2.999526;-1.768240; 7.874997;, + 2.999526; 2.363148; 3.741216;, + 2.999526; 6.501951; 7.867590;, + 2.999526; 2.370564;12.001370;, + 3.000474; 2.363147; 3.741217;, + 3.000474;-1.768240; 7.874997;, + 3.000474; 2.370562;12.001370;, + 3.000474; 6.501950; 7.867591;, + 0.400000; 1.400000;-0.200000;, + -2.400000; 1.400000;-0.200000;, + -2.400000;-1.400000;-0.200000;, + 0.400000;-1.400000;-0.200000;, + -2.400000;-1.400000; 3.375000;, + -2.400000;-1.400000;-0.200000;, + -2.400000; 1.400000;-0.200000;, + -2.400000; 1.400000; 3.375000;, + 0.400000;-1.400000; 3.375000;, + 0.400000;-1.400000;-0.200000;, + -2.400000;-1.400000;-0.200000;, + -2.400000;-1.400000; 3.375000;, + -2.400000; 1.400000; 3.375000;, + -2.400000; 1.400000;-0.200000;, + 0.400000; 1.400000;-0.200000;, + 0.400000; 1.400000; 3.375000;, + 0.400000; 1.400000; 3.375000;, + 0.400000; 1.400000;-0.200000;, + 0.400000;-1.400000;-0.200000;, + 0.400000;-1.400000; 3.375000;, + -2.400000; 1.400000; 3.375000;, + 0.400000; 1.400000; 3.375000;, + 0.400000;-1.400000; 3.375000;, + -2.400000;-1.400000; 3.375000;, + -0.400000; 1.400000; 3.375000;, + -0.400000;-1.400000; 3.375000;, + -0.400000;-1.400000;-0.200000;, + -0.400000; 1.400000;-0.200000;, + 2.400000; 1.400000; 3.375000;, + -0.400000; 1.400000; 3.375000;, + -0.400000; 1.400000;-0.200000;, + 2.400000; 1.400000;-0.200000;, + -0.400000;-1.400000; 3.375000;, + 2.400000;-1.400000; 3.375000;, + 2.400000;-1.400000;-0.200000;, + -0.400000;-1.400000;-0.200000;, + 2.400000;-1.400000; 3.375000;, + 2.400000; 1.400000; 3.375000;, + 2.400000; 1.400000;-0.200000;, + 2.400000;-1.400000;-0.200000;, + -0.400000; 1.400000;-0.200000;, + -0.400000;-1.400000;-0.200000;, + 2.400000;-1.400000;-0.200000;, + 2.400000; 1.400000;-0.200000;, + 2.400000; 1.400000; 3.375000;, + 2.400000;-1.400000; 3.375000;, + -0.400000;-1.400000; 3.375000;, + -0.400000; 1.400000; 3.375000;, + 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.516912; 4.126709; 3.974458;, + -4.677510;-1.995376; 3.905863;, + -5.773928;-1.671677;10.296955;, + -3.613330; 4.450407;10.365550;, + -4.689745;-2.062882; 3.837648;, + -2.483645; 4.188131; 3.907688;, + -3.603154; 4.518647;10.433374;, + -5.809254;-1.732366;10.363337;, + 3.095380; 2.363147; 3.741217;, + 3.095380;-1.768240; 7.874997;, + 3.095380; 2.370562;12.001370;, + 3.095380; 6.501950; 7.867591;, + 3.094431;-1.768240; 7.874997;, + 3.094431; 2.363148; 3.741216;, + 3.094431; 6.501951; 7.867590;, + 3.094431; 2.370564;12.001370;, + 3.009016;-1.768240; 7.874997;, + 3.009016; 2.363148; 3.741216;, + 3.009016; 6.501951; 7.867590;, + 3.009016; 2.370564;12.001370;, + 3.009965; 2.363147; 3.741217;, + 3.009965;-1.768240; 7.874997;, + 3.009965; 2.370562;12.001370;, + 3.009965; 6.501950; 7.867591;, + 3.019455; 2.363147; 3.741217;, + 3.019455;-1.768240; 7.874997;, + 3.019455; 2.370562;12.001370;, + 3.019455; 6.501950; 7.867591;, + 3.018507;-1.768240; 7.874997;, + 3.018507; 2.363148; 3.741216;, + 3.018507; 6.501951; 7.867590;, + 3.018507; 2.370564;12.001370;, + 3.027997;-1.768240; 7.874997;, + 3.027997; 2.363148; 3.741216;, + 3.027997; 6.501951; 7.867590;, + 3.027997; 2.370564;12.001370;, + 3.028946; 2.363147; 3.741217;, + 3.028946;-1.768240; 7.874997;, + 3.028946; 2.370562;12.001370;, + 3.028946; 6.501950; 7.867591;, + 3.038437; 2.363147; 3.741217;, + 3.038437;-1.768240; 7.874997;, + 3.038437; 2.370562;12.001370;, + 3.038437; 6.501950; 7.867591;, + 3.037488;-1.768240; 7.874997;, + 3.037488; 2.363148; 3.741216;, + 3.037488; 6.501951; 7.867590;, + 3.037488; 2.370564;12.001370;, + 3.046978;-1.768240; 7.874997;, + 3.046978; 2.363148; 3.741216;, + 3.046978; 6.501951; 7.867590;, + 3.046978; 2.370564;12.001370;, + 3.047928; 2.363147; 3.741217;, + 3.047928;-1.768240; 7.874997;, + 3.047928; 2.370562;12.001370;, + 3.047928; 6.501950; 7.867591;, + 3.057418; 2.363147; 3.741217;, + 3.057418;-1.768240; 7.874997;, + 3.057418; 2.370562;12.001370;, + 3.057418; 6.501950; 7.867591;, + 3.056469;-1.768240; 7.874997;, + 3.056469; 2.363148; 3.741216;, + 3.056469; 6.501951; 7.867590;, + 3.056469; 2.370564;12.001370;, + 3.065959;-1.768240; 7.874997;, + 3.065959; 2.363148; 3.741216;, + 3.065959; 6.501951; 7.867590;, + 3.065959; 2.370564;12.001370;, + 3.066908; 2.363147; 3.741217;, + 3.066908;-1.768240; 7.874997;, + 3.066908; 2.370562;12.001370;, + 3.066908; 6.501950; 7.867591;, + 3.076399; 2.363147; 3.741217;, + 3.076399;-1.768240; 7.874997;, + 3.076399; 2.370562;12.001370;, + 3.076399; 6.501950; 7.867591;, + 3.075450;-1.768240; 7.874997;, + 3.075450; 2.363148; 3.741216;, + 3.075450; 6.501951; 7.867590;, + 3.075450; 2.370564;12.001370;, + 3.084941;-1.768240; 7.874997;, + 3.084941; 2.363148; 3.741216;, + 3.084941; 6.501951; 7.867590;, + 3.084941; 2.370564;12.001370;, + 3.085890; 2.363147; 3.741217;, + 3.085890;-1.768240; 7.874997;, + 3.085890; 2.370562;12.001370;, + 3.085890; 6.501950; 7.867591;, + 2.905569; 2.363147; 3.741217;, + 2.905569;-1.768240; 7.874997;, + 2.905569; 2.370562;12.001370;, + 2.905569; 6.501950; 7.867591;, + 2.904620;-1.768240; 7.874997;, + 2.904620; 2.363148; 3.741216;, + 2.904620; 6.501951; 7.867590;, + 2.904620; 2.370564;12.001370;, + 2.914111;-1.768240; 7.874997;, + 2.914111; 2.363148; 3.741216;, + 2.914111; 6.501951; 7.867590;, + 2.914111; 2.370564;12.001370;, + 2.915060; 2.363147; 3.741217;, + 2.915060;-1.768240; 7.874997;, + 2.915060; 2.370562;12.001370;, + 2.915060; 6.501950; 7.867591;, + 2.924550; 2.363147; 3.741217;, + 2.924550;-1.768240; 7.874997;, + 2.924550; 2.370562;12.001370;, + 2.924550; 6.501950; 7.867591;, + 2.923601;-1.768240; 7.874997;, + 2.923601; 2.363148; 3.741216;, + 2.923601; 6.501951; 7.867590;, + 2.923601; 2.370564;12.001370;, + 2.933092;-1.768240; 7.874997;, + 2.933092; 2.363148; 3.741216;, + 2.933092; 6.501951; 7.867590;, + 2.933092; 2.370564;12.001370;, + 2.934041; 2.363147; 3.741217;, + 2.934041;-1.768240; 7.874997;, + 2.934041; 2.370562;12.001370;, + 2.934041; 6.501950; 7.867591;, + 2.943531; 2.363147; 3.741217;, + 2.943531;-1.768240; 7.874997;, + 2.943531; 2.370562;12.001370;, + 2.943531; 6.501950; 7.867591;, + 2.942582;-1.768240; 7.874997;, + 2.942582; 2.363148; 3.741216;, + 2.942582; 6.501951; 7.867590;, + 2.942582; 2.370564;12.001370;, + 2.952072;-1.768240; 7.874997;, + 2.952072; 2.363148; 3.741216;, + 2.952072; 6.501951; 7.867590;, + 2.952072; 2.370564;12.001370;, + 2.953022; 2.363147; 3.741217;, + 2.953022;-1.768240; 7.874997;, + 2.953022; 2.370562;12.001370;, + 2.953022; 6.501950; 7.867591;, + 2.962512; 2.363147; 3.741217;, + 2.962512;-1.768240; 7.874997;, + 2.962512; 2.370562;12.001370;, + 2.962512; 6.501950; 7.867591;, + 2.961563;-1.768240; 7.874997;, + 2.961563; 2.363148; 3.741216;, + 2.961563; 6.501951; 7.867590;, + 2.961563; 2.370564;12.001370;, + 2.971054;-1.768240; 7.874997;, + 2.971054; 2.363148; 3.741216;, + 2.971054; 6.501951; 7.867590;, + 2.971054; 2.370564;12.001370;, + 2.972003; 2.363147; 3.741217;, + 2.972003;-1.768240; 7.874997;, + 2.972003; 2.370562;12.001370;, + 2.972003; 6.501950; 7.867591;, + 2.981493; 2.363147; 3.741217;, + 2.981493;-1.768240; 7.874997;, + 2.981493; 2.370562;12.001370;, + 2.981493; 6.501950; 7.867591;, + 2.980544;-1.768240; 7.874997;, + 2.980544; 2.363148; 3.741216;, + 2.980544; 6.501951; 7.867590;, + 2.980544; 2.370564;12.001370;, + 2.990035;-1.768240; 7.874997;, + 2.990035; 2.363148; 3.741216;, + 2.990035; 6.501951; 7.867590;, + 2.990035; 2.370564;12.001370;, + 2.990984; 2.363147; 3.741217;, + 2.990984;-1.768240; 7.874997;, + 2.990984; 2.370562;12.001370;, + 2.990984; 6.501950; 7.867591;, + 2.896078; 2.363147; 3.741217;, + 2.896078;-1.768240; 7.874997;, + 2.896078; 2.370562;12.001370;, + 2.896078; 6.501950; 7.867591;, + 2.895129;-1.768240; 7.874997;, + 2.895129; 2.363148; 3.741216;, + 2.895129; 6.501951; 7.867590;, + 2.895129; 2.370564;12.001370;, + 2.885639;-1.768240; 7.874997;, + 2.885639; 2.363148; 3.741216;, + 2.885639; 6.501951; 7.867590;, + 2.885639; 2.370564;12.001370;, + 2.886588; 2.363147; 3.741217;, + 2.886588;-1.768240; 7.874997;, + 2.886588; 2.370562;12.001370;, + 2.886588; 6.501950; 7.867591;, + 2.877097; 2.363147; 3.741217;, + 2.877097;-1.768240; 7.874997;, + 2.877097; 2.370562;12.001370;, + 2.877097; 6.501950; 7.867591;, + 2.876148;-1.768240; 7.874997;, + 2.876148; 2.363148; 3.741216;, + 2.876148; 6.501951; 7.867590;, + 2.876148; 2.370564;12.001370;, + 2.866657;-1.768240; 7.874997;, + 2.866657; 2.363148; 3.741216;, + 2.866657; 6.501951; 7.867590;, + 2.866657; 2.370564;12.001370;, + 2.867607; 2.363147; 3.741217;, + 2.867607;-1.768240; 7.874997;, + 2.867607; 2.370562;12.001370;, + 2.867607; 6.501950; 7.867591;, + 2.858115; 2.363147; 3.741217;, + 2.858115;-1.768240; 7.874997;, + 2.858115; 2.370562;12.001370;, + 2.858115; 6.501950; 7.867591;, + 2.857167;-1.768240; 7.874997;, + 2.857167; 2.363148; 3.741216;, + 2.857167; 6.501951; 7.867590;, + 2.857167; 2.370564;12.001370;, + 3.103921;-1.768240; 7.874997;, + 3.103921; 2.363148; 3.741216;, + 3.103921; 6.501951; 7.867590;, + 3.103921; 2.370564;12.001370;, + 3.104871; 2.363147; 3.741217;, + 3.104871;-1.768240; 7.874997;, + 3.104871; 2.370562;12.001370;, + 3.104871; 6.501950; 7.867591;, + 3.114362; 2.363147; 3.741217;, + 3.114362;-1.768240; 7.874997;, + 3.114362; 2.370562;12.001370;, + 3.114362; 6.501950; 7.867591;, + 3.113413;-1.768240; 7.874997;, + 3.113413; 2.363148; 3.741216;, + 3.113413; 6.501951; 7.867590;, + 3.113413; 2.370564;12.001370;, + 3.122903;-1.768240; 7.874997;, + 3.122903; 2.363148; 3.741216;, + 3.122903; 6.501951; 7.867590;, + 3.122903; 2.370564;12.001370;, + 3.123852; 2.363147; 3.741217;, + 3.123852;-1.768240; 7.874997;, + 3.123852; 2.370562;12.001370;, + 3.123852; 6.501950; 7.867591;, + 3.133343; 2.363147; 3.741217;, + 3.133343;-1.768240; 7.874997;, + 3.133343; 2.370562;12.001370;, + 3.133343; 6.501950; 7.867591;, + 3.132394;-1.768240; 7.874997;, + 3.132394; 2.363148; 3.741216;, + 3.132394; 6.501951; 7.867590;, + 3.132394; 2.370564;12.001370;, + 3.141884;-1.768240; 7.874997;, + 3.141884; 2.363148; 3.741216;, + 3.141884; 6.501951; 7.867590;, + 3.141884; 2.370564;12.001370;, + 3.142833; 2.363147; 3.741217;, + 3.142833;-1.768240; 7.874997;, + 3.142833; 2.370562;12.001370;, + 3.142833; 6.501950; 7.867591;, + -2.120000;-1.550000; 6.600000;, + -2.120000;-1.550000;13.500000;, + 2.120000;-1.550000;13.500000;, + 2.120000;-1.550000; 6.600000;, + -2.120000;-1.150000; 6.600000;, + -2.120000;-1.150000;13.500000;, + -2.120000;-1.550000;13.500000;, + -2.120000;-1.550000; 6.600000;, + -2.120000;-1.150000;13.500000;, + -2.120000;-1.150000; 6.600000;, + 2.120000;-1.150000; 6.600000;, + 2.120000;-1.150000;13.500000;, + -2.120000;-1.550000; 6.600000;, + 2.120000;-1.550000; 6.600000;, + 2.120000;-1.150000; 6.600000;, + -2.120000;-1.150000; 6.600000;, + -2.120000;-1.150000;13.500000;, + 2.120000;-1.150000;13.500000;, + 2.120000;-1.550000;13.500000;, + -2.120000;-1.550000;13.500000;, + 2.120000;-1.550000;13.500000;, + 2.120000;-1.150000;13.500000;, + 2.120000;-1.150000; 6.600000;, + 2.120000;-1.550000; 6.600000;; + 160; + 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;; + MeshNormals { // Player normals + 160; + 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;, + 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;, + -1.000000; 0.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;, + 0.000000; 1.000000; 0.000000;, + -1.000000; 0.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;, + -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; 1.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; 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;, + 0.000000; 1.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;, + -0.000000; 1.000000; 0.000000;, + 1.000000; 0.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;, + 1.000000; 0.000000; 0.000000;, + -0.000000; 1.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;, + 0.000000; 1.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + -0.927686; 0.329368;-0.175830;, + 0.927686;-0.329368; 0.175830;, + -1.000000;-0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + -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;, + 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;; + 160; + 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;, + 4;48,48,48,48;, + 4;49,49,49,49;, + 4;50,50,50,50;, + 4;51,51,51,51;, + 4;52,52,52,52;, + 4;53,53,53,53;, + 4;54,54,54,54;, + 4;55,55,55,55;, + 4;56,56,56,56;, + 4;57,57,57,57;, + 4;58,58,58,58;, + 4;59,59,59,59;, + 4;60,60,60,60;, + 4;61,61,61,61;, + 4;62,62,62,62;, + 4;63,63,63,63;, + 4;64,64,64,64;, + 4;65,65,65,65;, + 4;66,66,66,66;, + 4;67,67,67,67;, + 4;68,68,68,68;, + 4;69,69,69,69;, + 4;70,70,70,70;, + 4;71,71,71,71;, + 4;72,72,72,72;, + 4;73,73,73,73;, + 4;74,74,74,74;, + 4;75,75,75,75;, + 4;76,76,76,76;, + 4;77,77,77,77;, + 4;78,78,78,78;, + 4;79,79,79,79;, + 4;80,80,80,80;, + 4;81,81,81,81;, + 4;82,82,82,82;, + 4;83,83,83,83;, + 4;84,84,84,84;, + 4;85,85,85,85;, + 4;86,86,86,86;, + 4;87,87,87,87;, + 4;88,88,88,88;, + 4;89,89,89,89;, + 4;90,90,90,90;, + 4;91,91,91,91;, + 4;92,92,92,92;, + 4;93,93,93,93;, + 4;94,94,94,94;, + 4;95,95,95,95;, + 4;96,96,96,96;, + 4;97,97,97,97;, + 4;98,98,98,98;, + 4;99,99,99,99;, + 4;100,100,100,100;, + 4;101,101,101,101;, + 4;102,102,102,102;, + 4;103,103,103,103;, + 4;104,104,104,104;, + 4;105,105,105,105;, + 4;106,106,106,106;, + 4;107,107,107,107;, + 4;108,108,108,108;, + 4;109,109,109,109;, + 4;110,110,110,110;, + 4;111,111,111,111;, + 4;112,112,112,112;, + 4;113,113,113,113;, + 4;114,114,114,114;, + 4;115,115,115,115;, + 4;116,116,116,116;, + 4;117,117,117,117;, + 4;118,118,118,118;, + 4;119,119,119,119;, + 4;120,120,120,120;, + 4;121,121,121,121;, + 4;122,122,122,122;, + 4;123,123,123,123;, + 4;124,124,124,124;, + 4;125,125,125,125;, + 4;126,126,126,126;, + 4;127,127,127,127;, + 4;128,128,128,128;, + 4;129,129,129,129;, + 4;130,130,130,130;, + 4;131,131,131,131;, + 4;132,132,132,132;, + 4;133,133,133,133;, + 4;134,134,134,134;, + 4;135,135,135,135;, + 4;136,136,136,136;, + 4;137,137,137,137;, + 4;138,138,138,138;, + 4;139,139,139,139;, + 4;140,140,140,140;, + 4;141,141,141,141;, + 4;142,142,142,142;, + 4;143,143,143,143;, + 4;144,144,144,144;, + 4;145,145,145,145;, + 4;146,146,146,146;, + 4;147,147,147,147;, + 4;148,148,148,148;, + 4;149,149,149,149;, + 4;150,150,150,150;, + 4;151,151,151,151;, + 4;152,152,152,152;, + 4;153,153,153,153;, + 4;154,154,154,154;, + 4;155,155,155,155;, + 4;156,156,156,156;, + 4;157,157,157,157;, + 4;158,158,158,158;, + 4;159,159,159,159;; + } // End of Player normals + MeshTextureCoords { // Player UV coordinates + 640; + 0.500000; 1.000000;, + 0.500000; 0.625000;, + 0.625000; 0.625000;, + 0.625000; 1.000000;, + 0.437500; 1.000000;, + 0.437500; 0.625000;, + 0.500000; 0.625000;, + 0.500000; 1.000000;, + 0.437500; 0.625000;, + 0.437500; 1.000000;, + 0.312500; 1.000000;, + 0.312500; 0.625000;, + 0.437500; 0.500000;, + 0.562500; 0.500000;, + 0.562500; 0.625000;, + 0.437500; 0.625000;, + 0.437500; 0.625000;, + 0.312500; 0.625000;, + 0.312500; 0.500000;, + 0.437500; 0.500000;, + 0.187500; 0.625000;, + 0.125000; 0.625000;, + 0.125000; 1.000000;, + 0.187500; 1.000000;, + 0.812500; 0.625000;, + 0.812500; 1.000000;, + 0.875000; 1.000000;, + 0.875000; 0.625000;, + 0.750000; 0.625000;, + 0.750000; 1.000000;, + 0.812500; 1.000000;, + 0.812500; 0.625000;, + 0.187500; 0.625000;, + 0.125000; 0.625000;, + 0.125000; 0.500000;, + 0.187500; 0.500000;, + 0.000000; 0.625000;, + 0.000000; 1.000000;, + 0.062500; 1.000000;, + 0.062500; 0.625000;, + 0.500000; 0.250000;, + 0.500000; 0.500000;, + 0.375000; 0.500000;, + 0.375000; 0.250000;, + 0.375000; 0.250000;, + 0.375000; 0.500000;, + 0.250000; 0.500000;, + 0.250000; 0.250000;, + 0.250000; 0.250000;, + 0.250000; 0.500000;, + 0.125000; 0.500000;, + 0.125000; 0.250000;, + 0.375000; 0.250000;, + 0.250000; 0.250000;, + 0.250000; 0.000000;, + 0.375000; 0.000000;, + 0.250000; 0.250000;, + 0.125000; 0.250000;, + 0.125000; 0.000000;, + 0.250000; 0.000000;, + 0.250000; 0.625000;, + 0.250000; 1.000000;, + 0.187500; 1.000000;, + 0.187500; 0.625000;, + 0.125000; 0.625000;, + 0.062500; 0.625000;, + 0.062500; 1.000000;, + 0.125000; 1.000000;, + 0.125000; 0.625000;, + 0.125000; 1.000000;, + 0.062500; 1.000000;, + 0.062500; 0.625000;, + 0.750000; 0.625000;, + 0.750000; 0.500000;, + 0.812500; 0.500000;, + 0.812500; 0.625000;, + 0.687500; 0.625000;, + 0.687500; 0.500000;, + 0.750000; 0.500000;, + 0.750000; 0.625000;, + 0.250000; 0.625000;, + 0.187500; 0.625000;, + 0.187500; 1.000000;, + 0.250000; 1.000000;, + 0.187500; 0.625000;, + 0.187500; 1.000000;, + 0.125000; 1.000000;, + 0.125000; 0.625000;, + 0.000000; 0.625000;, + 0.062500; 0.625000;, + 0.062500; 1.000000;, + 0.000000; 1.000000;, + 0.250000; 0.625000;, + 0.312500; 0.625000;, + 0.312500; 1.000000;, + 0.250000; 1.000000;, + 0.000000; 0.250000;, + 0.125000; 0.250000;, + 0.125000; 0.500000;, + 0.000000; 0.500000;, + 0.125000; 0.625000;, + 0.062500; 0.625000;, + 0.062500; 0.500000;, + 0.125000; 0.500000;, + 0.687500; 0.625000;, + 0.687500; 1.000000;, + 0.750000; 1.000000;, + 0.750000; 0.625000;, + 0.687500; 0.625000;, + 0.687500; 1.000000;, + 0.625000; 1.000000;, + 0.625000; 0.625000;, + 0.687500; 0.625000;, + 0.625000; 0.625000;, + 0.625000; 1.000000;, + 0.687500; 1.000000;, + 0.687500; 0.625000;, + 0.750000; 0.625000;, + 0.750000; 0.500000;, + 0.687500; 0.500000;, + 0.687500; 0.625000;, + 0.750000; 0.625000;, + 0.750000; 1.000000;, + 0.687500; 1.000000;, + 0.187500; 0.625000;, + 0.187500; 0.500000;, + 0.125000; 0.500000;, + 0.125000; 0.625000;, + 0.750000; 0.625000;, + 0.812500; 0.625000;, + 0.812500; 0.500000;, + 0.750000; 0.500000;, + 0.812500; 0.625000;, + 0.875000; 0.625000;, + 0.875000; 1.000000;, + 0.812500; 1.000000;, + 0.125000; 0.625000;, + 0.125000; 0.500000;, + 0.062500; 0.500000;, + 0.062500; 0.625000;, + 1.000000; 0.250000;, + 1.000000; 0.500000;, + 0.875000; 0.500000;, + 0.875000; 0.250000;, + 0.875000; 0.250000;, + 0.875000; 0.500000;, + 0.750000; 0.500000;, + 0.750000; 0.250000;, + 0.750000; 0.250000;, + 0.750000; 0.500000;, + 0.625000; 0.500000;, + 0.625000; 0.250000;, + 0.875000; 0.250000;, + 0.750000; 0.250000;, + 0.750000; 0.000000;, + 0.875000; 0.000000;, + 0.750000; 0.250000;, + 0.625000; 0.250000;, + 0.625000; 0.000000;, + 0.750000; 0.000000;, + 0.500000; 0.250000;, + 0.625000; 0.250000;, + 0.625000; 0.500000;, + 0.500000; 0.500000;, + 0.250000; 0.625000;, + 0.312500; 0.625000;, + 0.312500; 1.000000;, + 0.250000; 1.000000;, + 0.437500; 0.625000;, + 0.312500; 0.625000;, + 0.312500; 0.500000;, + 0.437500; 0.500000;, + 0.437500; 0.500000;, + 0.562500; 0.500000;, + 0.562500; 0.625000;, + 0.437500; 0.625000;, + 0.437500; 0.625000;, + 0.437500; 1.000000;, + 0.312500; 1.000000;, + 0.312500; 0.625000;, + 0.437500; 1.000000;, + 0.437500; 0.625000;, + 0.500000; 0.625000;, + 0.500000; 1.000000;, + 0.500000; 1.000000;, + 0.500000; 0.625000;, + 0.625000; 0.625000;, + 0.625000; 1.000000;, + 0.500000; 0.250000;, + 0.625000; 0.250000;, + 0.625000; 0.500000;, + 0.500000; 0.500000;, + 0.750000; 0.250000;, + 0.625000; 0.250000;, + 0.625000; 0.000000;, + 0.750000; 0.000000;, + 0.875000; 0.250000;, + 0.750000; 0.250000;, + 0.750000; 0.000000;, + 0.875000; 0.000000;, + 0.750000; 0.250000;, + 0.750000; 0.500000;, + 0.625000; 0.500000;, + 0.625000; 0.250000;, + 0.875000; 0.250000;, + 0.875000; 0.500000;, + 0.750000; 0.500000;, + 0.750000; 0.250000;, + 1.000000; 0.250000;, + 1.000000; 0.500000;, + 0.875000; 0.500000;, + 0.875000; 0.250000;, + 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.687500; 0.625000;, + 0.687500; 1.000000;, + 0.625000; 1.000000;, + 0.625000; 0.625000;, + 0.687500; 0.625000;, + 0.687500; 1.000000;, + 0.750000; 1.000000;, + 0.750000; 0.625000;, + 0.750000; 0.625000;, + 0.750000; 1.000000;, + 0.812500; 1.000000;, + 0.812500; 0.625000;, + 0.812500; 0.625000;, + 0.812500; 1.000000;, + 0.875000; 1.000000;, + 0.875000; 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.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; 0.500000;, + 0.750000; 0.500000;, + 0.750000; 0.625000;, + 0.750000; 0.625000;, + 0.750000; 0.500000;, + 0.812500; 0.500000;, + 0.812500; 0.625000;, + 0.125000; 0.625000;, + 0.125000; 0.500000;, + 0.062500; 0.500000;, + 0.062500; 0.625000;, + 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.250000; 0.625000;, + 0.187500; 0.625000;, + 0.187500; 1.000000;, + 0.250000; 1.000000;, + 0.125000; 0.625000;, + 0.062500; 0.625000;, + 0.062500; 1.000000;, + 0.125000; 1.000000;, + 0.187500; 0.625000;, + 0.125000; 0.625000;, + 0.125000; 1.000000;, + 0.187500; 1.000000;, + 0.125000; 0.625000;, + 0.062500; 0.625000;, + 0.062500; 0.500000;, + 0.125000; 0.500000;, + 0.187500; 0.625000;, + 0.187500; 1.000000;, + 0.125000; 1.000000;, + 0.125000; 0.625000;, + 0.125000; 0.625000;, + 0.125000; 1.000000;, + 0.062500; 1.000000;, + 0.062500; 0.625000;, + 0.250000; 0.625000;, + 0.250000; 1.000000;, + 0.187500; 1.000000;, + 0.187500; 0.625000;, + 0.000000; 0.625000;, + 0.000000; 1.000000;, + 0.062500; 1.000000;, + 0.062500; 0.625000;, + 0.187500; 0.625000;, + 0.125000; 0.625000;, + 0.125000; 0.500000;, + 0.187500; 0.500000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.437500; 0.125000;, + 0.375000; 0.125000;, + 0.375000; 0.000000;, + 0.437500; 0.000000;, + 0.250000; 0.125000;, + 0.250000; 0.343750;, + 0.312500; 0.343750;, + 0.312500; 0.125000;, + 0.500000; 0.125000;, + 0.500000; 0.343750;, + 0.437500; 0.343750;, + 0.437500; 0.125000;, + 0.375000; 0.125000;, + 0.375000; 0.343750;, + 0.312500; 0.343750;, + 0.312500; 0.125000;, + 0.437500; 0.125000;, + 0.437500; 0.343750;, + 0.375000; 0.343750;, + 0.375000; 0.125000;, + 0.375000; 0.125000;, + 0.312500; 0.125000;, + 0.312500; 0.000000;, + 0.375000; 0.000000;, + 0.437500; 0.125000;, + 0.375000; 0.125000;, + 0.375000; 0.343750;, + 0.437500; 0.343750;, + 0.375000; 0.125000;, + 0.312500; 0.125000;, + 0.312500; 0.343750;, + 0.375000; 0.343750;, + 0.500000; 0.125000;, + 0.437500; 0.125000;, + 0.437500; 0.343750;, + 0.500000; 0.343750;, + 0.250000; 0.125000;, + 0.312500; 0.125000;, + 0.312500; 0.343750;, + 0.250000; 0.343750;, + 0.437500; 0.125000;, + 0.437500; 0.000000;, + 0.375000; 0.000000;, + 0.375000; 0.125000;, + 0.375000; 0.125000;, + 0.375000; 0.000000;, + 0.312500; 0.000000;, + 0.312500; 0.125000;, + 0.750000; 0.625000;, + 0.812500; 0.625000;, + 0.812500; 1.000000;, + 0.750000; 1.000000;, + 0.000000; 0.500000;, + 0.250000; 0.500000;, + 0.250000; 0.000000;, + 0.000000; 0.000000;, + 0.250000; 0.500000;, + 0.000000; 0.500000;, + 0.000000; 0.000000;, + 0.250000; 0.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + -0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + 0.000000; 0.000000;, + -0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.890625; 0.968750;, + 0.890625; 0.656250;, + 0.984375; 0.656250;, + 0.984375; 0.968750;, + 0.875000; 0.968750;, + 0.875000; 0.656250;, + 0.890625; 0.656250;, + 0.890625; 0.968750;, + 0.984375; 0.656250;, + 0.984375; 0.968750;, + 0.890625; 0.968750;, + 0.890625; 0.656250;, + 0.890625; 0.968750;, + 0.984375; 0.968750;, + 0.984375; 1.000000;, + 0.890625; 1.000000;, + 0.890625; 0.625000;, + 0.984375; 0.625000;, + 0.984375; 0.656250;, + 0.890625; 0.656250;, + 0.984375; 0.656250;, + 1.000000; 0.656250;, + 1.000000; 0.968750;, + 0.984375; 0.968750;; + } // End of Player UV coordinates + MeshMaterialList { // Player material list + 3; + 160; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 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";} + } + Material Armor { + 0.640000; 0.640000; 0.640000; 1.000000;; + 96.078431; + 0.500000; 0.500000; 0.500000;; + 0.000000; 0.000000; 0.000000;; + TextureFilename {"armor.png";} + } + Material Wielditem { + 0.640000; 0.640000; 0.640000; 1.000000;; + 96.078431; + 0.500000; 0.500000; 0.500000;; + 0.000000; 0.000000; 0.000000;; + TextureFilename {"sword.png";} + } + } // End of Player material list + XSkinMeshHeader { + 2; + 6; + 7; + } + SkinWeights { + "Armature_Head"; + 72; + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 96, + 97, + 98, + 99, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211; + 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.927318, + 1.000000, + 1.000000, + 0.927318, + 1.000000, + 1.000000, + 1.000000, + 0.927318, + 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.927318, + 1.000000, + 1.000000, + 1.000000, + 0.927318, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.927318, + 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.000000, 1.000000;; + } // End of Armature_Head skin weights + SkinWeights { + "Armature_Body"; + 48; + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 92, + 93, + 94, + 95, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187; + 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,-6.750000, 0.000000, 1.000000;; + } // End of Armature_Body skin weights + SkinWeights { + "Armature_Cape"; + 24; + 616, + 617, + 618, + 619, + 620, + 621, + 622, + 623, + 624, + 625, + 626, + 627, + 628, + 629, + 630, + 631, + 632, + 633, + 634, + 635, + 636, + 637, + 638, + 639; + 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.700000, 1.100000, 1.000000;; + } // End of Armature_Cape skin weights + SkinWeights { + "Armature_Arm_Left"; + 56; + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 116, + 117, + 118, + 119, + 128, + 129, + 130, + 131, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 368, + 369, + 370, + 371, + 372, + 373, + 374, + 375; + 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, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000; + 0.989218,-0.143939,-0.027164, 0.000000, + 0.027450, 0.000000, 0.999623, 0.000000, + -0.143886,-0.989587, 0.003951, 0.000000, + 3.920902,13.071543,-0.107667, 1.000000;; + } // End of Armature_Arm_Left skin weights + SkinWeights { + "Armature_Leg_Left"; + 72; + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 60, + 61, + 62, + 63, + 68, + 69, + 70, + 71, + 84, + 85, + 86, + 87, + 100, + 101, + 102, + 103, + 284, + 285, + 286, + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 316, + 317, + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333, + 334, + 335, + 336, + 337, + 338, + 339; + 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, + 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.750000,-0.000000, 1.000000;; + } // End of Armature_Leg_Left skin weights + SkinWeights { + "Armature_Leg_Right"; + 72; + 20, + 21, + 22, + 23, + 64, + 65, + 66, + 67, + 80, + 81, + 82, + 83, + 88, + 89, + 90, + 91, + 124, + 125, + 126, + 127, + 136, + 137, + 138, + 139, + 260, + 261, + 262, + 263, + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 340, + 341, + 342, + 343, + 344, + 345, + 346, + 347, + 348, + 349, + 350, + 351, + 352, + 353, + 354, + 355, + 356, + 357, + 358, + 359, + 360, + 361, + 362, + 363; + 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, + 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.750000, 0.000000, 1.000000;; + } // End of Armature_Leg_Right skin weights + SkinWeights { + "Armature_Arm_Right"; + 302; + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 112, + 113, + 114, + 115, + 120, + 121, + 122, + 123, + 132, + 133, + 134, + 135, + 146, + 149, + 153, + 197, + 201, + 206, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 364, + 365, + 366, + 367, + 376, + 377, + 378, + 379, + 380, + 381, + 382, + 383, + 384, + 385, + 386, + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 412, + 413, + 414, + 415, + 416, + 417, + 418, + 419, + 420, + 421, + 422, + 423, + 424, + 425, + 426, + 427, + 428, + 429, + 430, + 431, + 432, + 433, + 434, + 435, + 436, + 437, + 438, + 439, + 440, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 456, + 457, + 458, + 459, + 460, + 461, + 462, + 463, + 464, + 465, + 466, + 467, + 468, + 469, + 470, + 471, + 472, + 473, + 474, + 475, + 476, + 477, + 478, + 479, + 480, + 481, + 482, + 483, + 484, + 485, + 486, + 487, + 488, + 489, + 490, + 491, + 492, + 493, + 494, + 495, + 496, + 497, + 498, + 499, + 500, + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520, + 521, + 522, + 523, + 524, + 525, + 526, + 527, + 528, + 529, + 530, + 531, + 532, + 533, + 534, + 535, + 536, + 537, + 538, + 539, + 540, + 541, + 542, + 543, + 544, + 545, + 546, + 547, + 548, + 549, + 550, + 551, + 552, + 553, + 554, + 555, + 556, + 557, + 558, + 559, + 560, + 561, + 562, + 563, + 564, + 565, + 566, + 567, + 568, + 569, + 570, + 571, + 572, + 573, + 574, + 575, + 576, + 577, + 578, + 579, + 580, + 581, + 582, + 583, + 584, + 585, + 586, + 587, + 588, + 589, + 590, + 591, + 592, + 593, + 594, + 595, + 596, + 597, + 598, + 599, + 600, + 601, + 602, + 603, + 604, + 605, + 606, + 607, + 608, + 609, + 610, + 611, + 612, + 613, + 614, + 615; + 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.072682, + 0.072682, + 0.072682, + 0.072682, + 0.072682, + 0.072682, + 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, + 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, + 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, + 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, + 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, + 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.989218, 0.143939, 0.027164, 0.000000, + -0.027450, 0.000000, 0.999623, 0.000000, + 0.143886,-0.989587, 0.003951, 0.000000, + -3.920902,13.071543,-0.107667, 1.000000;; + } // End of Armature_Arm_Right skin weights + } // End of Player mesh + } // End of Player + } // End of Armature +} // End of Root +AnimTicksPerSecond { + 30; +} +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.691348, 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.679948, 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.679948, 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.691348, 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.691348, 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.679948, 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.681779, 0.731352, 0.000000, 0.000000;;, + 68;4;-0.683387, 0.729813, 0.000000, 0.000000;;, + 69;4;-0.685120, 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.685120, 0.728154, 0.000000, 0.000000;;, + 93;4;-0.683387, 0.729813, 0.000000, 0.000000;;, + 94;4;-0.681779, 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.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.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.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.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.675753, 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.701753, 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.696518, 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.000001, 1.000000;;, + 82;3;-0.000000, 0.000001, 1.000000;;, + 83;3;-0.000000, 0.000001, 1.000000;;, + 84;3;-0.000000, 0.000001, 1.000000;;, + 85;3;-0.000000, 0.000001, 1.000000;;, + 86;3;-0.000000, 0.000001, 1.000000;;, + 87;3;-0.000000, 0.000001, 1.000000;;, + 88;3;-0.000000, 0.000001, 1.000000;;, + 89;3;-0.000000, 0.000001, 1.000000;;, + 90;3;-0.000000, 0.000001, 1.000000;;, + 91;3;-0.000000, 0.000001, 1.000000;;, + 92;3;-0.000000, 0.000001, 1.000000;;, + 93;3;-0.000000, 0.000001, 1.000000;;, + 94;3;-0.000000, 0.000001, 1.000000;;, + 95;3;-0.000000, 0.000001, 1.000000;;, + 96;3;-0.000000, 0.000001, 1.000000;;, + 97;3;-0.000000, 0.000001, 1.000000;;, + 98;3;-0.000000, 0.000001, 1.000000;;, + 99;3;-0.000000, 0.000001, 1.000000;;, + 100;3;-0.000000, 0.000001, 1.000000;;, + 101;3;-0.000000, 0.000001, 1.000000;;, + 102;3;-0.000000, 0.000001, 1.000000;;, + 103;3;-0.000000, 0.000001, 1.000000;;, + 104;3;-0.000000, 0.000001, 1.000000;;, + 105;3;-0.000000, 0.000001, 1.000000;;, + 106;3;-0.000000, 0.000001, 1.000000;;, + 107;3;-0.000000, 0.000001, 1.000000;;, + 108;3;-0.000000, 0.000001, 1.000000;;, + 109;3;-0.000000, 0.000001, 1.000000;;, + 110;3;-0.000000, 0.000001, 1.000000;;, + 111;3;-0.000000, 0.000001, 1.000000;;, + 112;3;-0.000000, 0.000001, 1.000000;;, + 113;3;-0.000000, 0.000001, 1.000000;;, + 114;3;-0.000000, 0.000001, 1.000000;;, + 115;3;-0.000000, 0.000001, 1.000000;;, + 116;3;-0.000000, 0.000001, 1.000000;;, + 117;3;-0.000000, 0.000001, 1.000000;;, + 118;3;-0.000000, 0.000001, 1.000000;;, + 119;3;-0.000000, 0.000001, 1.000000;;, + 120;3;-0.000000, 0.000001, 1.000000;;, + 121;3;-0.000000, 0.000001, 1.000000;;, + 122;3;-0.000000, 0.000001, 1.000000;;, + 123;3;-0.000000, 0.000001, 1.000000;;, + 124;3;-0.000000, 0.000001, 1.000000;;, + 125;3;-0.000000, 0.000001, 1.000000;;, + 126;3;-0.000000, 0.000001, 1.000000;;, + 127;3;-0.000000, 0.000001, 1.000000;;, + 128;3;-0.000000, 0.000001, 1.000000;;, + 129;3;-0.000000, 0.000001, 1.000000;;, + 130;3;-0.000000, 0.000001, 1.000000;;, + 131;3;-0.000000, 0.000001, 1.000000;;, + 132;3;-0.000000, 0.000001, 1.000000;;, + 133;3;-0.000000, 0.000001, 1.000000;;, + 134;3;-0.000000, 0.000001, 1.000000;;, + 135;3;-0.000000, 0.000001, 1.000000;;, + 136;3;-0.000000, 0.000001, 1.000000;;, + 137;3;-0.000000, 0.000001, 1.000000;;, + 138;3;-0.000000, 0.000001, 1.000000;;, + 139;3;-0.000000, 0.000001, 1.000000;;, + 140;3;-0.000000, 0.000001, 1.000000;;, + 141;3;-0.000000, 0.000001, 1.000000;;, + 142;3;-0.000000, 0.000001, 1.000000;;, + 143;3;-0.000000, 0.000001, 1.000000;;, + 144;3;-0.000000, 0.000001, 1.000000;;, + 145;3;-0.000000, 0.000001, 1.000000;;, + 146;3;-0.000000, 0.000001, 1.000000;;, + 147;3;-0.000000, 0.000001, 1.000000;;, + 148;3;-0.000000, 0.000001, 1.000000;;, + 149;3;-0.000000, 0.000001, 1.000000;;, + 150;3;-0.000000, 0.000001, 1.000000;;, + 151;3;-0.000000, 0.000001, 1.000000;;, + 152;3;-0.000000, 0.000001, 1.000000;;, + 153;3;-0.000000, 0.000001, 1.000000;;, + 154;3;-0.000000, 0.000001, 1.000000;;, + 155;3;-0.000000, 0.000001, 1.000000;;, + 156;3;-0.000000, 0.000001, 1.000000;;, + 157;3;-0.000000, 0.000001, 1.000000;;, + 158;3;-0.000000, 0.000001, 1.000000;;, + 159;3;-0.000000, 0.000001, 1.000000;;, + 160;3;-0.000000, 0.000001, 1.000000;;, + 161;3;-0.000000, 0.000001, 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.021805;;, + 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.037579;;, + 16;4;-0.019857,-0.000867, 0.998916,-0.039733;;, + 17;4;-0.020704,-0.000904, 0.998870,-0.041428;;, + 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.041428;;, + 24;4;-0.020560,-0.000898, 0.998916,-0.039733;;, + 25;4;-0.019848,-0.000867, 0.998975,-0.037579;;, + 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.037579;;, + 56;4; 0.020560, 0.000898, 0.998916,-0.039733;;, + 57;4; 0.021108, 0.000922, 0.998870,-0.041428;;, + 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.041760;;, + 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.025179;;, + 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.025179;;, + 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.041760;;, + 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.041428;;, + 105;4;-0.020560,-0.000898, 0.998916,-0.039733;;, + 106;4;-0.019848,-0.000867, 0.998975,-0.037579;;, + 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.037579;;, + 137;4; 0.020560, 0.000898, 0.998916,-0.039733;;, + 138;4; 0.021108, 0.000922, 0.998870,-0.041428;;, + 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.041760;;, + 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.025179;;, + 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.750000, 0.000000;;, + 194;3; 0.000000, 6.750001, 0.000000;;, + 195;3; 0.000000, 6.750000, 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.000990, 0.997299,-0.072151,-0.013690;;, + 1;4; 0.000768, 0.997293,-0.072147,-0.013783;;, + 2;4; 0.000098, 0.997275,-0.072137,-0.014061;;, + 3;4;-0.001024, 0.997244,-0.072119,-0.014527;;, + 4;4;-0.002590, 0.997202,-0.072093,-0.015177;;, + 5;4;-0.004579, 0.997148,-0.072061,-0.016004;;, + 6;4;-0.006959, 0.997083,-0.072023,-0.016992;;, + 7;4;-0.009679, 0.997009,-0.071979,-0.018122;;, + 8;4;-0.012673, 0.996927,-0.071931,-0.019366;;, + 9;4;-0.015860, 0.996840,-0.071880,-0.020690;;, + 10;4;-0.019147, 0.996751,-0.071827,-0.022055;;, + 11;4;-0.022434, 0.996661,-0.071774,-0.023420;;, + 12;4;-0.025621, 0.996574,-0.071722,-0.024744;;, + 13;4;-0.028615, 0.996493,-0.071674,-0.025988;;, + 14;4;-0.031335, 0.996419,-0.071630,-0.027118;;, + 15;4;-0.033715, 0.996354,-0.071592,-0.028106;;, + 16;4;-0.035704, 0.996300,-0.071560,-0.028932;;, + 17;4;-0.037270, 0.996257,-0.071535,-0.029583;;, + 18;4;-0.038392, 0.996227,-0.071517,-0.030049;;, + 19;4;-0.039063, 0.996208,-0.071506,-0.030327;;, + 20;4;-0.039284, 0.996202,-0.071502,-0.030419;;, + 21;4;-0.039063, 0.996208,-0.071506,-0.030327;;, + 22;4;-0.038392, 0.996227,-0.071517,-0.030049;;, + 23;4;-0.037270, 0.996257,-0.071535,-0.029583;;, + 24;4;-0.035704, 0.996300,-0.071560,-0.028932;;, + 25;4;-0.033715, 0.996354,-0.071592,-0.028106;;, + 26;4;-0.031335, 0.996419,-0.071630,-0.027118;;, + 27;4;-0.028615, 0.996493,-0.071674,-0.025988;;, + 28;4;-0.025621, 0.996574,-0.071722,-0.024744;;, + 29;4;-0.022434, 0.996661,-0.071774,-0.023420;;, + 30;4;-0.019147, 0.996751,-0.071827,-0.022055;;, + 31;4;-0.015860, 0.996840,-0.071880,-0.020690;;, + 32;4;-0.012673, 0.996927,-0.071931,-0.019366;;, + 33;4;-0.009679, 0.997009,-0.071979,-0.018122;;, + 34;4;-0.006959, 0.997083,-0.072023,-0.016992;;, + 35;4;-0.004579, 0.997148,-0.072061,-0.016004;;, + 36;4;-0.002590, 0.997202,-0.072093,-0.015177;;, + 37;4;-0.001024, 0.997244,-0.072119,-0.014527;;, + 38;4; 0.000098, 0.997275,-0.072137,-0.014061;;, + 39;4; 0.000768, 0.997293,-0.072147,-0.013783;;, + 40;4; 0.000990, 0.997299,-0.072151,-0.013690;;, + 41;4; 0.000768, 0.997293,-0.072147,-0.013783;;, + 42;4; 0.000098, 0.997275,-0.072137,-0.014061;;, + 43;4;-0.001024, 0.997244,-0.072119,-0.014527;;, + 44;4;-0.002590, 0.997202,-0.072093,-0.015177;;, + 45;4;-0.004579, 0.997148,-0.072061,-0.016004;;, + 46;4;-0.006959, 0.997083,-0.072023,-0.016992;;, + 47;4;-0.009679, 0.997009,-0.071979,-0.018122;;, + 48;4;-0.012673, 0.996927,-0.071931,-0.019366;;, + 49;4;-0.015860, 0.996840,-0.071880,-0.020690;;, + 50;4;-0.019147, 0.996751,-0.071827,-0.022055;;, + 51;4;-0.022434, 0.996661,-0.071774,-0.023420;;, + 52;4;-0.025621, 0.996574,-0.071722,-0.024744;;, + 53;4;-0.028615, 0.996493,-0.071674,-0.025988;;, + 54;4;-0.031335, 0.996419,-0.071630,-0.027118;;, + 55;4;-0.033715, 0.996354,-0.071592,-0.028106;;, + 56;4;-0.035704, 0.996300,-0.071560,-0.028932;;, + 57;4;-0.037270, 0.996257,-0.071535,-0.029583;;, + 58;4;-0.038392, 0.996227,-0.071517,-0.030049;;, + 59;4;-0.039063, 0.996208,-0.071506,-0.030327;;, + 60;4;-0.039284, 0.996202,-0.071502,-0.030419;;, + 61;4;-0.039076, 0.996208,-0.071506,-0.030333;;, + 62;4;-0.038489, 0.996224,-0.071515,-0.030089;;, + 63;4;-0.037576, 0.996249,-0.071530,-0.029710;;, + 64;4;-0.036378, 0.996281,-0.071549,-0.029212;;, + 65;4;-0.034926, 0.996321,-0.071572,-0.028609;;, + 66;4;-0.033251, 0.996367,-0.071599,-0.027913;;, + 67;4;-0.031375, 0.996418,-0.071630,-0.027134;;, + 68;4;-0.029321, 0.996474,-0.071663,-0.026281;;, + 69;4;-0.027106, 0.996534,-0.071698,-0.025361;;, + 70;4;-0.024748, 0.996598,-0.071736,-0.024381;;, + 71;4;-0.022263, 0.996666,-0.071776,-0.023349;;, + 72;4;-0.019668, 0.996737,-0.071818,-0.022271;;, + 73;4;-0.016978, 0.996810,-0.071862,-0.021154;;, + 74;4;-0.014212, 0.996885,-0.071906,-0.020005;;, + 75;4;-0.011392, 0.996962,-0.071952,-0.018834;;, + 76;4;-0.008547, 0.997039,-0.071997,-0.017652;;, + 77;4;-0.005720, 0.997117,-0.072043,-0.016478;;, + 78;4;-0.002986, 0.997191,-0.072087,-0.015342;;, + 79;4;-0.000516, 0.997258,-0.072127,-0.014316;;, + 80;4; 0.000990, 0.997299,-0.072151,-0.013690;;, + 81;4; 0.000990, 0.997299,-0.072151,-0.013690;;, + 82;4;-0.000516, 0.997258,-0.072127,-0.014316;;, + 83;4;-0.002986, 0.997191,-0.072087,-0.015342;;, + 84;4;-0.005720, 0.997117,-0.072043,-0.016478;;, + 85;4;-0.008547, 0.997039,-0.071997,-0.017652;;, + 86;4;-0.011392, 0.996962,-0.071952,-0.018834;;, + 87;4;-0.014212, 0.996885,-0.071906,-0.020005;;, + 88;4;-0.016978, 0.996810,-0.071862,-0.021154;;, + 89;4;-0.019668, 0.996737,-0.071818,-0.022271;;, + 90;4;-0.022263, 0.996666,-0.071776,-0.023349;;, + 91;4;-0.024748, 0.996598,-0.071736,-0.024381;;, + 92;4;-0.027106, 0.996534,-0.071698,-0.025361;;, + 93;4;-0.029321, 0.996474,-0.071663,-0.026281;;, + 94;4;-0.031375, 0.996418,-0.071630,-0.027134;;, + 95;4;-0.033251, 0.996367,-0.071599,-0.027913;;, + 96;4;-0.034926, 0.996321,-0.071572,-0.028609;;, + 97;4;-0.036378, 0.996281,-0.071549,-0.029212;;, + 98;4;-0.037576, 0.996249,-0.071530,-0.029710;;, + 99;4;-0.038489, 0.996224,-0.071515,-0.030089;;, + 100;4;-0.039076, 0.996208,-0.071506,-0.030333;;, + 101;4;-0.039284, 0.996202,-0.071502,-0.030419;;, + 102;4;-0.039063, 0.996208,-0.071506,-0.030327;;, + 103;4;-0.038392, 0.996227,-0.071517,-0.030049;;, + 104;4;-0.037270, 0.996257,-0.071535,-0.029583;;, + 105;4;-0.035704, 0.996300,-0.071560,-0.028932;;, + 106;4;-0.033715, 0.996354,-0.071592,-0.028106;;, + 107;4;-0.031335, 0.996419,-0.071630,-0.027118;;, + 108;4;-0.028615, 0.996493,-0.071674,-0.025988;;, + 109;4;-0.025621, 0.996574,-0.071722,-0.024744;;, + 110;4;-0.022434, 0.996661,-0.071774,-0.023420;;, + 111;4;-0.019147, 0.996751,-0.071827,-0.022055;;, + 112;4;-0.015860, 0.996840,-0.071880,-0.020690;;, + 113;4;-0.012673, 0.996927,-0.071931,-0.019366;;, + 114;4;-0.009679, 0.997009,-0.071979,-0.018122;;, + 115;4;-0.006959, 0.997083,-0.072023,-0.016992;;, + 116;4;-0.004579, 0.997148,-0.072061,-0.016004;;, + 117;4;-0.002590, 0.997202,-0.072093,-0.015177;;, + 118;4;-0.001024, 0.997244,-0.072119,-0.014527;;, + 119;4; 0.000098, 0.997275,-0.072137,-0.014061;;, + 120;4; 0.000768, 0.997293,-0.072147,-0.013783;;, + 121;4; 0.000990, 0.997299,-0.072151,-0.013690;;, + 122;4; 0.000768, 0.997293,-0.072147,-0.013783;;, + 123;4; 0.000098, 0.997275,-0.072137,-0.014061;;, + 124;4;-0.001024, 0.997244,-0.072119,-0.014527;;, + 125;4;-0.002590, 0.997202,-0.072093,-0.015177;;, + 126;4;-0.004579, 0.997148,-0.072061,-0.016004;;, + 127;4;-0.006959, 0.997083,-0.072023,-0.016992;;, + 128;4;-0.009679, 0.997009,-0.071979,-0.018122;;, + 129;4;-0.012673, 0.996927,-0.071931,-0.019366;;, + 130;4;-0.015860, 0.996840,-0.071880,-0.020690;;, + 131;4;-0.019147, 0.996751,-0.071827,-0.022055;;, + 132;4;-0.022434, 0.996661,-0.071774,-0.023420;;, + 133;4;-0.025621, 0.996574,-0.071722,-0.024744;;, + 134;4;-0.028615, 0.996493,-0.071674,-0.025988;;, + 135;4;-0.031335, 0.996419,-0.071630,-0.027118;;, + 136;4;-0.033715, 0.996354,-0.071592,-0.028106;;, + 137;4;-0.035704, 0.996300,-0.071560,-0.028932;;, + 138;4;-0.037270, 0.996257,-0.071535,-0.029583;;, + 139;4;-0.038392, 0.996227,-0.071517,-0.030049;;, + 140;4;-0.039063, 0.996208,-0.071506,-0.030327;;, + 141;4;-0.039284, 0.996202,-0.071502,-0.030419;;, + 142;4;-0.039115, 0.996208,-0.071505,-0.030336;;, + 143;4;-0.038639, 0.996224,-0.071513,-0.030100;;, + 144;4;-0.037892, 0.996249,-0.071525,-0.029733;;, + 145;4;-0.036906, 0.996282,-0.071542,-0.029250;;, + 146;4;-0.035703, 0.996322,-0.071562,-0.028665;;, + 147;4;-0.034305, 0.996368,-0.071585,-0.027990;;, + 148;4;-0.032728, 0.996419,-0.071611,-0.027232;;, + 149;4;-0.030984, 0.996475,-0.071640,-0.026401;;, + 150;4;-0.029084, 0.996536,-0.071671,-0.025504;;, + 151;4;-0.027040, 0.996600,-0.071705,-0.024547;;, + 152;4;-0.024856, 0.996668,-0.071741,-0.023537;;, + 153;4;-0.022540, 0.996739,-0.071779,-0.022479;;, + 154;4;-0.020096, 0.996813,-0.071819,-0.021379;;, + 155;4;-0.017525, 0.996888,-0.071861,-0.020245;;, + 156;4;-0.014829, 0.996965,-0.071904,-0.019082;;, + 157;4;-0.012005, 0.997043,-0.071950,-0.017902;;, + 158;4;-0.009047, 0.997120,-0.071997,-0.016718;;, + 159;4;-0.005937, 0.997194,-0.072046,-0.015556;;, + 160;4;-0.002640, 0.997260,-0.072098,-0.014470;;, + 161;4; 0.000990, 0.997299,-0.072151,-0.013690;;, + 162;4; 0.003930, 0.958043,-0.286296,-0.013151;;, + 163;4; 0.003930, 0.958043,-0.286296,-0.013151;;, + 164;4; 0.003930, 0.958043,-0.286296,-0.013151;;, + 165;4; 0.003930, 0.958043,-0.286296,-0.013151;;, + 166;4; 0.003930, 0.958043,-0.286296,-0.013151;;, + 167;4; 0.003930, 0.958043,-0.286296,-0.013151;;, + 168;4; 0.000990, 0.997299,-0.072151,-0.013690;;, + 169;4; 0.027474, 0.993490,-0.067047,-0.017181;;, + 170;4; 0.101898, 0.981967,-0.063625,-0.027024;;, + 171;4; 0.197393, 0.966975,-0.061969,-0.039667;;, + 172;4; 0.271749, 0.955237,-0.061526,-0.049515;;, + 173;4; 0.298147, 0.951060,-0.061513,-0.053012;;, + 174;4; 0.281322, 0.955152,-0.062327,-0.050806;;, + 175;4; 0.229768, 0.966687,-0.064677,-0.044029;;, + 176;4; 0.152321, 0.981519,-0.067849,-0.033813;;, + 177;4; 0.070049, 0.993110,-0.070621,-0.022912;;, + 178;4; 0.000990, 0.997299,-0.072151,-0.013690;;, + 179;4;-0.068084, 0.993365,-0.072516,-0.004357;;, + 180;4;-0.150401, 0.982077,-0.072003, 0.006858;;, + 181;4;-0.227906, 0.967531,-0.070959, 0.017477;;, + 182;4;-0.279505, 0.956187,-0.070026, 0.024569;;, + 183;4;-0.296346, 0.952156,-0.069674, 0.026885;;, + 184;4;-0.269920, 0.956169,-0.069894, 0.023278;;, + 185;4;-0.195492, 0.967472,-0.070514, 0.013118;;, + 186;4;-0.099917, 0.981984,-0.071310, 0.000073;;, + 187;4;-0.025455, 0.993287,-0.071931,-0.010085;;, + 188;4; 0.000990, 0.997299,-0.072151,-0.013690;;, + 189;4; 0.000990, 0.997299,-0.072151,-0.013690;;, + 190;4; 0.008557, 0.996939,-0.072023,-0.015345;;, + 191;4; 0.029870, 0.995925,-0.071661,-0.020005;;, + 192;4; 0.057234, 0.994623,-0.071198,-0.025988;;, + 193;4; 0.078546, 0.993608,-0.070836,-0.030648;;, + 194;4; 0.086112, 0.993248,-0.070708,-0.032302;;, + 195;4; 0.078546, 0.993608,-0.070836,-0.030648;;, + 196;4; 0.057234, 0.994623,-0.071198,-0.025988;;, + 197;4; 0.029870, 0.995925,-0.071661,-0.020005;;, + 198;4; 0.008557, 0.996939,-0.072023,-0.015345;;, + 199;4; 0.000990, 0.997299,-0.072151,-0.013690;;, + 200;4; 0.000990, 0.997299,-0.072151,-0.013690;;, + 201;4; 0.027420, 0.993189,-0.071206,-0.017185;;, + 202;4; 0.101837, 0.981612,-0.068542,-0.027028;;, + 203;4; 0.197354, 0.966747,-0.065122,-0.039670;;, + 204;4; 0.271737, 0.955170,-0.062459,-0.049516;;, + 205;4; 0.298147, 0.951060,-0.061513,-0.053012;;, + 206;4; 0.281322, 0.955152,-0.062327,-0.050806;;, + 207;4; 0.229768, 0.966687,-0.064677,-0.044029;;, + 208;4; 0.152321, 0.981519,-0.067849,-0.033813;;, + 209;4; 0.070049, 0.993110,-0.070621,-0.022912;;, + 210;4; 0.000990, 0.997299,-0.072151,-0.013690;;, + 211;4;-0.068084, 0.993365,-0.072516,-0.004357;;, + 212;4;-0.150401, 0.982077,-0.072003, 0.006858;;, + 213;4;-0.227906, 0.967531,-0.070959, 0.017477;;, + 214;4;-0.279505, 0.956187,-0.070026, 0.024569;;, + 215;4;-0.296346, 0.952156,-0.069674, 0.026885;;, + 216;4;-0.269931, 0.956169,-0.069894, 0.023278;;, + 217;4;-0.195556, 0.967471,-0.070513, 0.013114;;, + 218;4;-0.100016, 0.981984,-0.071309, 0.000067;;, + 219;4;-0.025503, 0.993286,-0.071930,-0.010088;;, + 220;4; 0.000990, 0.997299,-0.072151,-0.013690;;; + } + AnimationKey { // Scale + 1; + 221; + 0;3; 0.999995, 1.000000, 1.000000;;, + 1;3; 0.999995, 1.000000, 1.000000;;, + 2;3; 0.999995, 1.000000, 1.000000;;, + 3;3; 0.999995, 1.000000, 1.000000;;, + 4;3; 0.999995, 1.000000, 1.000000;;, + 5;3; 0.999995, 1.000000, 1.000000;;, + 6;3; 0.999995, 1.000000, 1.000000;;, + 7;3; 0.999995, 1.000000, 1.000000;;, + 8;3; 0.999995, 1.000000, 1.000000;;, + 9;3; 0.999995, 1.000000, 1.000000;;, + 10;3; 0.999995, 1.000000, 1.000000;;, + 11;3; 0.999995, 1.000000, 1.000000;;, + 12;3; 0.999995, 1.000000, 1.000000;;, + 13;3; 0.999995, 1.000000, 1.000000;;, + 14;3; 0.999995, 1.000000, 1.000000;;, + 15;3; 0.999995, 1.000000, 1.000000;;, + 16;3; 0.999995, 1.000000, 1.000000;;, + 17;3; 0.999995, 1.000000, 1.000000;;, + 18;3; 0.999995, 1.000000, 1.000000;;, + 19;3; 0.999995, 1.000000, 1.000000;;, + 20;3; 0.999995, 1.000000, 1.000000;;, + 21;3; 0.999995, 1.000000, 1.000000;;, + 22;3; 0.999995, 1.000000, 1.000000;;, + 23;3; 0.999995, 1.000000, 1.000000;;, + 24;3; 0.999995, 1.000000, 1.000000;;, + 25;3; 0.999995, 1.000000, 1.000000;;, + 26;3; 0.999995, 1.000000, 1.000000;;, + 27;3; 0.999995, 1.000000, 1.000000;;, + 28;3; 0.999995, 1.000000, 1.000000;;, + 29;3; 0.999995, 1.000000, 1.000000;;, + 30;3; 0.999995, 1.000000, 1.000000;;, + 31;3; 0.999995, 1.000000, 1.000000;;, + 32;3; 0.999995, 1.000000, 1.000000;;, + 33;3; 0.999995, 1.000000, 1.000000;;, + 34;3; 0.999995, 1.000000, 1.000000;;, + 35;3; 0.999995, 1.000000, 1.000000;;, + 36;3; 0.999995, 1.000000, 1.000000;;, + 37;3; 0.999995, 1.000000, 1.000000;;, + 38;3; 0.999995, 1.000000, 1.000000;;, + 39;3; 0.999995, 1.000000, 1.000000;;, + 40;3; 0.999995, 1.000000, 1.000000;;, + 41;3; 0.999995, 1.000000, 1.000000;;, + 42;3; 0.999995, 1.000000, 1.000000;;, + 43;3; 0.999995, 1.000000, 1.000000;;, + 44;3; 0.999995, 1.000000, 1.000000;;, + 45;3; 0.999995, 1.000000, 1.000000;;, + 46;3; 0.999995, 1.000000, 1.000000;;, + 47;3; 0.999995, 1.000000, 1.000000;;, + 48;3; 0.999995, 1.000000, 1.000000;;, + 49;3; 0.999995, 1.000000, 1.000000;;, + 50;3; 0.999995, 1.000000, 1.000000;;, + 51;3; 0.999995, 1.000000, 1.000000;;, + 52;3; 0.999995, 1.000000, 1.000000;;, + 53;3; 0.999995, 1.000000, 1.000000;;, + 54;3; 0.999995, 1.000000, 1.000000;;, + 55;3; 0.999995, 1.000000, 1.000000;;, + 56;3; 0.999995, 1.000000, 1.000000;;, + 57;3; 0.999995, 1.000000, 1.000000;;, + 58;3; 0.999995, 1.000000, 1.000000;;, + 59;3; 0.999995, 1.000000, 1.000000;;, + 60;3; 0.999995, 1.000000, 1.000000;;, + 61;3; 0.999995, 1.000000, 1.000000;;, + 62;3; 0.999995, 1.000000, 1.000000;;, + 63;3; 0.999995, 1.000000, 1.000000;;, + 64;3; 0.999995, 1.000000, 1.000000;;, + 65;3; 0.999995, 1.000000, 1.000000;;, + 66;3; 0.999995, 1.000000, 1.000000;;, + 67;3; 0.999995, 1.000000, 1.000000;;, + 68;3; 0.999995, 1.000000, 1.000000;;, + 69;3; 0.999995, 1.000000, 1.000000;;, + 70;3; 0.999995, 1.000000, 1.000000;;, + 71;3; 0.999995, 1.000000, 1.000000;;, + 72;3; 0.999995, 1.000000, 1.000000;;, + 73;3; 0.999995, 1.000000, 1.000000;;, + 74;3; 0.999995, 1.000000, 1.000000;;, + 75;3; 0.999995, 1.000000, 1.000000;;, + 76;3; 0.999995, 1.000000, 1.000000;;, + 77;3; 0.999995, 1.000000, 1.000000;;, + 78;3; 0.999995, 1.000000, 1.000000;;, + 79;3; 0.999995, 1.000000, 1.000000;;, + 80;3; 0.999995, 1.000000, 1.000000;;, + 81;3; 0.999995, 1.000000, 1.000000;;, + 82;3; 0.999995, 1.000000, 1.000000;;, + 83;3; 0.999995, 1.000000, 1.000000;;, + 84;3; 0.999995, 1.000000, 1.000000;;, + 85;3; 0.999995, 1.000000, 1.000000;;, + 86;3; 0.999995, 1.000000, 1.000000;;, + 87;3; 0.999995, 1.000000, 1.000000;;, + 88;3; 0.999995, 1.000000, 1.000000;;, + 89;3; 0.999995, 1.000000, 1.000000;;, + 90;3; 0.999995, 1.000000, 1.000000;;, + 91;3; 0.999995, 1.000000, 1.000000;;, + 92;3; 0.999995, 1.000000, 1.000000;;, + 93;3; 0.999995, 1.000000, 1.000000;;, + 94;3; 0.999995, 1.000000, 1.000000;;, + 95;3; 0.999995, 1.000000, 1.000000;;, + 96;3; 0.999995, 1.000000, 1.000000;;, + 97;3; 0.999995, 1.000000, 1.000000;;, + 98;3; 0.999995, 1.000000, 1.000000;;, + 99;3; 0.999995, 1.000000, 1.000000;;, + 100;3; 0.999995, 1.000000, 1.000000;;, + 101;3; 0.999995, 1.000000, 1.000000;;, + 102;3; 0.999995, 1.000000, 1.000000;;, + 103;3; 0.999995, 1.000000, 1.000000;;, + 104;3; 0.999995, 1.000000, 1.000000;;, + 105;3; 0.999995, 1.000000, 1.000000;;, + 106;3; 0.999995, 1.000000, 1.000000;;, + 107;3; 0.999995, 1.000000, 1.000000;;, + 108;3; 0.999995, 1.000000, 1.000000;;, + 109;3; 0.999995, 1.000000, 1.000000;;, + 110;3; 0.999995, 1.000000, 1.000000;;, + 111;3; 0.999995, 1.000000, 1.000000;;, + 112;3; 0.999995, 1.000000, 1.000000;;, + 113;3; 0.999995, 1.000000, 1.000000;;, + 114;3; 0.999995, 1.000000, 1.000000;;, + 115;3; 0.999995, 1.000000, 1.000000;;, + 116;3; 0.999995, 1.000000, 1.000000;;, + 117;3; 0.999995, 1.000000, 1.000000;;, + 118;3; 0.999995, 1.000000, 1.000000;;, + 119;3; 0.999995, 1.000000, 1.000000;;, + 120;3; 0.999995, 1.000000, 1.000000;;, + 121;3; 0.999995, 1.000000, 1.000000;;, + 122;3; 0.999995, 1.000000, 1.000000;;, + 123;3; 0.999995, 1.000000, 1.000000;;, + 124;3; 0.999995, 1.000000, 1.000000;;, + 125;3; 0.999995, 1.000000, 1.000000;;, + 126;3; 0.999995, 1.000000, 1.000000;;, + 127;3; 0.999995, 1.000000, 1.000000;;, + 128;3; 0.999995, 1.000000, 1.000000;;, + 129;3; 0.999995, 1.000000, 1.000000;;, + 130;3; 0.999995, 1.000000, 1.000000;;, + 131;3; 0.999995, 1.000000, 1.000000;;, + 132;3; 0.999995, 1.000000, 1.000000;;, + 133;3; 0.999995, 1.000000, 1.000000;;, + 134;3; 0.999995, 1.000000, 1.000000;;, + 135;3; 0.999995, 1.000000, 1.000000;;, + 136;3; 0.999995, 1.000000, 1.000000;;, + 137;3; 0.999995, 1.000000, 1.000000;;, + 138;3; 0.999995, 1.000000, 1.000000;;, + 139;3; 0.999995, 1.000000, 1.000000;;, + 140;3; 0.999995, 1.000000, 1.000000;;, + 141;3; 0.999995, 1.000000, 1.000000;;, + 142;3; 0.999995, 1.000000, 1.000000;;, + 143;3; 0.999995, 1.000000, 1.000000;;, + 144;3; 0.999995, 1.000000, 1.000000;;, + 145;3; 0.999995, 1.000000, 1.000000;;, + 146;3; 0.999995, 1.000000, 1.000000;;, + 147;3; 0.999995, 1.000000, 1.000000;;, + 148;3; 0.999995, 1.000000, 1.000000;;, + 149;3; 0.999995, 1.000000, 1.000000;;, + 150;3; 0.999995, 1.000000, 1.000000;;, + 151;3; 0.999995, 1.000000, 1.000000;;, + 152;3; 0.999995, 1.000000, 1.000000;;, + 153;3; 0.999995, 1.000000, 1.000000;;, + 154;3; 0.999995, 1.000000, 1.000000;;, + 155;3; 0.999995, 1.000000, 1.000000;;, + 156;3; 0.999995, 1.000000, 1.000000;;, + 157;3; 0.999995, 1.000000, 1.000000;;, + 158;3; 0.999995, 1.000000, 1.000000;;, + 159;3; 0.999995, 1.000000, 1.000000;;, + 160;3; 0.999995, 1.000000, 1.000000;;, + 161;3; 0.999995, 1.000000, 1.000000;;, + 162;3; 0.999996, 0.999999, 1.000000;;, + 163;3; 0.999996, 0.999999, 1.000000;;, + 164;3; 0.999996, 0.999999, 1.000000;;, + 165;3; 0.999996, 0.999999, 1.000000;;, + 166;3; 0.999996, 0.999999, 1.000000;;, + 167;3; 0.999996, 0.999999, 1.000000;;, + 168;3; 0.999995, 1.000000, 1.000000;;, + 169;3; 0.999995, 1.000000, 1.000000;;, + 170;3; 0.999995, 1.000000, 1.000000;;, + 171;3; 0.999995, 1.000000, 1.000000;;, + 172;3; 0.999995, 1.000000, 1.000000;;, + 173;3; 0.999995, 1.000000, 1.000000;;, + 174;3; 0.999995, 1.000000, 1.000000;;, + 175;3; 0.999995, 1.000000, 1.000000;;, + 176;3; 0.999995, 1.000000, 1.000000;;, + 177;3; 0.999995, 1.000000, 1.000000;;, + 178;3; 0.999995, 1.000000, 1.000000;;, + 179;3; 0.999995, 1.000000, 1.000000;;, + 180;3; 0.999995, 1.000000, 1.000000;;, + 181;3; 0.999995, 1.000000, 1.000000;;, + 182;3; 0.999995, 1.000000, 1.000000;;, + 183;3; 0.999995, 1.000000, 1.000000;;, + 184;3; 0.999995, 1.000000, 1.000000;;, + 185;3; 0.999995, 1.000000, 1.000000;;, + 186;3; 0.999995, 1.000000, 1.000000;;, + 187;3; 0.999995, 1.000000, 1.000000;;, + 188;3; 0.999995, 1.000000, 1.000000;;, + 189;3; 0.999995, 1.000000, 1.000000;;, + 190;3; 0.999995, 1.000000, 1.000000;;, + 191;3; 0.999995, 1.000000, 1.000000;;, + 192;3; 0.999995, 1.000000, 1.000000;;, + 193;3; 0.999995, 1.000000, 1.000000;;, + 194;3; 0.999995, 1.000000, 1.000000;;, + 195;3; 0.999995, 1.000000, 1.000000;;, + 196;3; 0.999995, 1.000000, 1.000000;;, + 197;3; 0.999995, 1.000000, 1.000000;;, + 198;3; 0.999995, 1.000000, 1.000000;;, + 199;3; 0.999995, 1.000000, 1.000000;;, + 200;3; 0.999995, 1.000000, 1.000000;;, + 201;3; 0.999995, 1.000000, 1.000000;;, + 202;3; 0.999995, 1.000000, 1.000000;;, + 203;3; 0.999995, 1.000000, 1.000000;;, + 204;3; 0.999995, 1.000000, 1.000000;;, + 205;3; 0.999995, 1.000000, 1.000000;;, + 206;3; 0.999995, 1.000000, 1.000000;;, + 207;3; 0.999995, 1.000000, 1.000000;;, + 208;3; 0.999995, 1.000000, 1.000000;;, + 209;3; 0.999995, 1.000000, 1.000000;;, + 210;3; 0.999995, 1.000000, 1.000000;;, + 211;3; 0.999995, 1.000000, 1.000000;;, + 212;3; 0.999995, 1.000000, 1.000000;;, + 213;3; 0.999995, 1.000000, 1.000000;;, + 214;3; 0.999995, 1.000000, 1.000000;;, + 215;3; 0.999995, 1.000000, 1.000000;;, + 216;3; 0.999995, 1.000000, 1.000000;;, + 217;3; 0.999995, 1.000000, 1.000000;;, + 218;3; 0.999995, 1.000000, 1.000000;;, + 219;3; 0.999995, 1.000000, 1.000000;;, + 220;3; 0.999995, 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.750000, 0.000000;;, + 194;3;-2.000000, 6.750001, 0.000000;;, + 195;3;-2.000000, 6.750000, 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.000990, 0.997299, 0.072151, 0.013690;;, + 1;4; 0.000768, 0.997293, 0.072147, 0.013783;;, + 2;4; 0.000098, 0.997275, 0.072137, 0.014061;;, + 3;4;-0.001024, 0.997244, 0.072119, 0.014527;;, + 4;4;-0.002590, 0.997202, 0.072093, 0.015177;;, + 5;4;-0.004579, 0.997148, 0.072061, 0.016004;;, + 6;4;-0.006959, 0.997083, 0.072023, 0.016992;;, + 7;4;-0.009679, 0.997009, 0.071979, 0.018122;;, + 8;4;-0.012673, 0.996927, 0.071931, 0.019366;;, + 9;4;-0.015860, 0.996840, 0.071880, 0.020690;;, + 10;4;-0.019147, 0.996751, 0.071827, 0.022055;;, + 11;4;-0.022434, 0.996661, 0.071774, 0.023420;;, + 12;4;-0.025621, 0.996574, 0.071722, 0.024744;;, + 13;4;-0.028615, 0.996493, 0.071674, 0.025988;;, + 14;4;-0.031335, 0.996419, 0.071630, 0.027118;;, + 15;4;-0.033715, 0.996354, 0.071592, 0.028106;;, + 16;4;-0.035704, 0.996300, 0.071560, 0.028932;;, + 17;4;-0.037270, 0.996257, 0.071535, 0.029583;;, + 18;4;-0.038392, 0.996227, 0.071517, 0.030049;;, + 19;4;-0.039063, 0.996208, 0.071506, 0.030327;;, + 20;4;-0.039284, 0.996202, 0.071502, 0.030419;;, + 21;4;-0.039063, 0.996208, 0.071506, 0.030327;;, + 22;4;-0.038392, 0.996227, 0.071517, 0.030049;;, + 23;4;-0.037270, 0.996257, 0.071535, 0.029583;;, + 24;4;-0.035704, 0.996300, 0.071560, 0.028932;;, + 25;4;-0.033715, 0.996354, 0.071592, 0.028106;;, + 26;4;-0.031335, 0.996419, 0.071630, 0.027118;;, + 27;4;-0.028615, 0.996493, 0.071674, 0.025988;;, + 28;4;-0.025621, 0.996574, 0.071722, 0.024744;;, + 29;4;-0.022434, 0.996661, 0.071774, 0.023420;;, + 30;4;-0.019147, 0.996751, 0.071827, 0.022055;;, + 31;4;-0.015860, 0.996840, 0.071880, 0.020690;;, + 32;4;-0.012673, 0.996927, 0.071931, 0.019366;;, + 33;4;-0.009679, 0.997009, 0.071979, 0.018122;;, + 34;4;-0.006959, 0.997083, 0.072023, 0.016992;;, + 35;4;-0.004579, 0.997148, 0.072061, 0.016004;;, + 36;4;-0.002590, 0.997202, 0.072093, 0.015177;;, + 37;4;-0.001024, 0.997244, 0.072119, 0.014527;;, + 38;4; 0.000098, 0.997275, 0.072137, 0.014061;;, + 39;4; 0.000768, 0.997293, 0.072147, 0.013783;;, + 40;4; 0.000990, 0.997299, 0.072151, 0.013690;;, + 41;4; 0.000768, 0.997293, 0.072147, 0.013783;;, + 42;4; 0.000098, 0.997275, 0.072137, 0.014061;;, + 43;4;-0.001024, 0.997244, 0.072119, 0.014527;;, + 44;4;-0.002590, 0.997202, 0.072093, 0.015177;;, + 45;4;-0.004579, 0.997148, 0.072061, 0.016004;;, + 46;4;-0.006959, 0.997083, 0.072023, 0.016992;;, + 47;4;-0.009679, 0.997009, 0.071979, 0.018122;;, + 48;4;-0.012673, 0.996927, 0.071931, 0.019366;;, + 49;4;-0.015860, 0.996840, 0.071880, 0.020690;;, + 50;4;-0.019147, 0.996751, 0.071827, 0.022055;;, + 51;4;-0.022434, 0.996661, 0.071774, 0.023420;;, + 52;4;-0.025621, 0.996574, 0.071722, 0.024744;;, + 53;4;-0.028615, 0.996493, 0.071674, 0.025988;;, + 54;4;-0.031335, 0.996419, 0.071630, 0.027118;;, + 55;4;-0.033715, 0.996354, 0.071592, 0.028106;;, + 56;4;-0.035704, 0.996300, 0.071560, 0.028932;;, + 57;4;-0.037270, 0.996257, 0.071535, 0.029583;;, + 58;4;-0.038392, 0.996227, 0.071517, 0.030049;;, + 59;4;-0.039063, 0.996208, 0.071506, 0.030327;;, + 60;4;-0.039284, 0.996202, 0.071502, 0.030419;;, + 61;4;-0.039076, 0.996208, 0.071506, 0.030333;;, + 62;4;-0.038489, 0.996224, 0.071515, 0.030089;;, + 63;4;-0.037576, 0.996249, 0.071530, 0.029710;;, + 64;4;-0.036378, 0.996281, 0.071549, 0.029212;;, + 65;4;-0.034926, 0.996321, 0.071572, 0.028609;;, + 66;4;-0.033251, 0.996367, 0.071599, 0.027913;;, + 67;4;-0.031375, 0.996418, 0.071630, 0.027134;;, + 68;4;-0.029321, 0.996474, 0.071663, 0.026281;;, + 69;4;-0.027106, 0.996534, 0.071698, 0.025361;;, + 70;4;-0.024748, 0.996598, 0.071736, 0.024381;;, + 71;4;-0.022263, 0.996666, 0.071776, 0.023349;;, + 72;4;-0.019668, 0.996737, 0.071818, 0.022271;;, + 73;4;-0.016978, 0.996810, 0.071862, 0.021154;;, + 74;4;-0.014212, 0.996885, 0.071906, 0.020005;;, + 75;4;-0.011392, 0.996962, 0.071952, 0.018834;;, + 76;4;-0.008547, 0.997039, 0.071997, 0.017652;;, + 77;4;-0.005720, 0.997117, 0.072043, 0.016478;;, + 78;4;-0.002986, 0.997191, 0.072087, 0.015342;;, + 79;4;-0.000516, 0.997258, 0.072127, 0.014316;;, + 80;4; 0.000990, 0.997299, 0.072151, 0.013690;;, + 81;4; 0.000990, 0.997299, 0.072151, 0.013690;;, + 82;4;-0.000516, 0.997258, 0.072127, 0.014316;;, + 83;4;-0.002986, 0.997191, 0.072087, 0.015342;;, + 84;4;-0.005720, 0.997117, 0.072043, 0.016478;;, + 85;4;-0.008547, 0.997039, 0.071997, 0.017652;;, + 86;4;-0.011392, 0.996962, 0.071952, 0.018834;;, + 87;4;-0.014212, 0.996885, 0.071906, 0.020005;;, + 88;4;-0.016978, 0.996810, 0.071862, 0.021154;;, + 89;4;-0.019668, 0.996737, 0.071818, 0.022271;;, + 90;4;-0.022263, 0.996666, 0.071776, 0.023349;;, + 91;4;-0.024748, 0.996598, 0.071736, 0.024381;;, + 92;4;-0.027106, 0.996534, 0.071698, 0.025361;;, + 93;4;-0.029321, 0.996474, 0.071663, 0.026281;;, + 94;4;-0.031375, 0.996418, 0.071630, 0.027134;;, + 95;4;-0.033251, 0.996367, 0.071599, 0.027913;;, + 96;4;-0.034926, 0.996321, 0.071572, 0.028609;;, + 97;4;-0.036378, 0.996281, 0.071549, 0.029212;;, + 98;4;-0.037576, 0.996249, 0.071530, 0.029710;;, + 99;4;-0.038489, 0.996224, 0.071515, 0.030089;;, + 100;4;-0.039076, 0.996208, 0.071506, 0.030333;;, + 101;4;-0.039284, 0.996202, 0.071502, 0.030419;;, + 102;4;-0.039063, 0.996208, 0.071506, 0.030327;;, + 103;4;-0.038392, 0.996227, 0.071517, 0.030049;;, + 104;4;-0.037270, 0.996257, 0.071535, 0.029583;;, + 105;4;-0.035704, 0.996300, 0.071560, 0.028932;;, + 106;4;-0.033715, 0.996354, 0.071592, 0.028106;;, + 107;4;-0.031335, 0.996419, 0.071630, 0.027118;;, + 108;4;-0.028615, 0.996493, 0.071674, 0.025988;;, + 109;4;-0.025621, 0.996574, 0.071722, 0.024744;;, + 110;4;-0.022434, 0.996661, 0.071774, 0.023420;;, + 111;4;-0.019147, 0.996751, 0.071827, 0.022055;;, + 112;4;-0.015860, 0.996840, 0.071880, 0.020690;;, + 113;4;-0.012673, 0.996927, 0.071931, 0.019366;;, + 114;4;-0.009679, 0.997009, 0.071979, 0.018122;;, + 115;4;-0.006959, 0.997083, 0.072023, 0.016992;;, + 116;4;-0.004579, 0.997148, 0.072061, 0.016004;;, + 117;4;-0.002590, 0.997202, 0.072093, 0.015177;;, + 118;4;-0.001024, 0.997244, 0.072119, 0.014527;;, + 119;4; 0.000098, 0.997275, 0.072137, 0.014061;;, + 120;4; 0.000768, 0.997293, 0.072147, 0.013783;;, + 121;4; 0.000990, 0.997299, 0.072151, 0.013690;;, + 122;4; 0.000768, 0.997293, 0.072147, 0.013783;;, + 123;4; 0.000098, 0.997275, 0.072137, 0.014061;;, + 124;4;-0.001024, 0.997244, 0.072119, 0.014527;;, + 125;4;-0.002590, 0.997202, 0.072093, 0.015177;;, + 126;4;-0.004579, 0.997148, 0.072061, 0.016004;;, + 127;4;-0.006959, 0.997083, 0.072023, 0.016992;;, + 128;4;-0.009679, 0.997009, 0.071979, 0.018122;;, + 129;4;-0.012673, 0.996927, 0.071931, 0.019366;;, + 130;4;-0.015860, 0.996840, 0.071880, 0.020690;;, + 131;4;-0.019147, 0.996751, 0.071827, 0.022055;;, + 132;4;-0.022434, 0.996661, 0.071774, 0.023420;;, + 133;4;-0.025621, 0.996574, 0.071722, 0.024744;;, + 134;4;-0.028615, 0.996493, 0.071674, 0.025988;;, + 135;4;-0.031335, 0.996419, 0.071630, 0.027118;;, + 136;4;-0.033715, 0.996354, 0.071592, 0.028106;;, + 137;4;-0.035704, 0.996300, 0.071560, 0.028932;;, + 138;4;-0.037270, 0.996257, 0.071535, 0.029583;;, + 139;4;-0.038392, 0.996227, 0.071517, 0.030049;;, + 140;4;-0.039063, 0.996208, 0.071506, 0.030327;;, + 141;4;-0.039284, 0.996202, 0.071502, 0.030419;;, + 142;4;-0.039115, 0.996208, 0.071505, 0.030336;;, + 143;4;-0.038639, 0.996224, 0.071513, 0.030100;;, + 144;4;-0.037892, 0.996249, 0.071525, 0.029733;;, + 145;4;-0.036906, 0.996282, 0.071542, 0.029250;;, + 146;4;-0.035703, 0.996322, 0.071562, 0.028665;;, + 147;4;-0.034305, 0.996368, 0.071585, 0.027990;;, + 148;4;-0.032728, 0.996419, 0.071611, 0.027232;;, + 149;4;-0.030984, 0.996475, 0.071640, 0.026401;;, + 150;4;-0.029084, 0.996536, 0.071671, 0.025504;;, + 151;4;-0.027040, 0.996600, 0.071705, 0.024547;;, + 152;4;-0.024856, 0.996668, 0.071741, 0.023537;;, + 153;4;-0.022540, 0.996739, 0.071779, 0.022479;;, + 154;4;-0.020096, 0.996813, 0.071819, 0.021379;;, + 155;4;-0.017525, 0.996888, 0.071861, 0.020245;;, + 156;4;-0.014829, 0.996965, 0.071904, 0.019082;;, + 157;4;-0.012005, 0.997043, 0.071950, 0.017902;;, + 158;4;-0.009047, 0.997120, 0.071997, 0.016718;;, + 159;4;-0.005937, 0.997194, 0.072046, 0.015556;;, + 160;4;-0.002640, 0.997260, 0.072098, 0.014470;;, + 161;4; 0.000990, 0.997299, 0.072151, 0.013690;;, + 162;4; 0.003930, 0.958043, 0.286296, 0.013151;;, + 163;4; 0.003930, 0.958043, 0.286296, 0.013151;;, + 164;4; 0.003930, 0.958043, 0.286296, 0.013151;;, + 165;4; 0.003930, 0.958043, 0.286296, 0.013151;;, + 166;4; 0.003930, 0.958043, 0.286296, 0.013151;;, + 167;4; 0.003930, 0.958043, 0.286296, 0.013151;;, + 168;4; 0.000990, 0.997299, 0.072151, 0.013690;;, + 169;4;-0.036334, 0.993297, 0.071785, 0.010872;;, + 170;4;-0.112795, 0.981996, 0.071141, 0.000858;;, + 171;4;-0.203764, 0.967479, 0.070405,-0.012520;;, + 172;4;-0.272368, 0.956171, 0.069861,-0.023101;;, + 173;4;-0.296346, 0.952156, 0.069674,-0.026885;;, + 174;4;-0.279505, 0.956187, 0.070026,-0.024569;;, + 175;4;-0.227906, 0.967531, 0.070959,-0.017477;;, + 176;4;-0.150401, 0.982077, 0.072003,-0.006858;;, + 177;4;-0.068084, 0.993365, 0.072516, 0.004357;;, + 178;4; 0.000990, 0.997299, 0.072151, 0.013690;;, + 179;4; 0.070049, 0.993110, 0.070621, 0.022912;;, + 180;4; 0.152321, 0.981519, 0.067849, 0.033813;;, + 181;4; 0.229768, 0.966687, 0.064677, 0.044029;;, + 182;4; 0.281322, 0.955152, 0.062327, 0.050806;;, + 183;4; 0.298147, 0.951060, 0.061513, 0.053012;;, + 184;4; 0.272271, 0.955137, 0.062463, 0.049483;;, + 185;4; 0.200483, 0.966553, 0.065150, 0.039474;;, + 186;4; 0.106848, 0.981306, 0.068587, 0.026713;;, + 187;4; 0.029980, 0.993038, 0.071229, 0.017022;;, + 188;4; 0.000990, 0.997299, 0.072151, 0.013690;;, + 189;4; 0.835222, 0.536095,-0.025763, 0.119765;;, + 190;4; 0.803188, 0.565880,-0.021823, 0.111185;;, + 191;4; 0.718121, 0.648323,-0.010764, 0.086701;;, + 192;4; 0.614362, 0.752496, 0.003385, 0.054936;;, + 193;4; 0.534781, 0.833221, 0.014391, 0.030125;;, + 194;4; 0.506108, 0.862012, 0.018302, 0.021341;;, + 195;4; 0.535304, 0.833108, 0.014389, 0.030093;;, + 196;4; 0.617421, 0.751829, 0.003376, 0.054751;;, + 197;4; 0.723032, 0.647272,-0.010777, 0.086403;;, + 198;4; 0.805707, 0.565360,-0.021828, 0.111030;;, + 199;4; 0.835222, 0.536095,-0.025763, 0.119765;;, + 200;4; 0.538719, 0.840704, 0.006525, 0.054376;;, + 201;4; 0.565322, 0.813342, 0.003638, 0.060174;;, + 202;4; 0.639820, 0.736775,-0.004464, 0.076530;;, + 203;4; 0.734955, 0.639062,-0.014831, 0.097562;;, + 204;4; 0.808921, 0.563107,-0.022896, 0.113949;;, + 205;4; 0.835222, 0.536095,-0.025763, 0.119765;;, + 206;4; 0.805967, 0.565065,-0.021846, 0.111016;;, + 207;4; 0.723565, 0.646666,-0.010813, 0.086373;;, + 208;4; 0.617763, 0.751441, 0.003353, 0.054733;;, + 209;4; 0.535362, 0.833042, 0.014385, 0.030090;;, + 210;4; 0.506108, 0.862012, 0.018302, 0.021341;;, + 211;4; 0.535362, 0.833042, 0.014385, 0.030090;;, + 212;4; 0.617763, 0.751441, 0.003353, 0.054733;;, + 213;4; 0.723565, 0.646666,-0.010813, 0.086373;;, + 214;4; 0.805967, 0.565065,-0.021846, 0.111016;;, + 215;4; 0.835222, 0.536095,-0.025763, 0.119765;;, + 216;4; 0.808879, 0.563155,-0.022894, 0.113952;;, + 217;4; 0.734711, 0.639342,-0.014814, 0.097576;;, + 218;4; 0.639439, 0.737214,-0.004438, 0.076552;;, + 219;4; 0.565137, 0.813556, 0.003651, 0.060184;;, + 220;4; 0.538719, 0.840704, 0.006525, 0.054376;;; + } + AnimationKey { // Scale + 1; + 221; + 0;3; 0.999995, 1.000000, 1.000000;;, + 1;3; 0.999995, 1.000000, 1.000000;;, + 2;3; 0.999995, 1.000000, 1.000000;;, + 3;3; 0.999995, 1.000000, 1.000000;;, + 4;3; 0.999995, 1.000000, 1.000000;;, + 5;3; 0.999995, 1.000000, 1.000000;;, + 6;3; 0.999995, 1.000000, 1.000000;;, + 7;3; 0.999995, 1.000000, 1.000000;;, + 8;3; 0.999995, 1.000000, 1.000000;;, + 9;3; 0.999995, 1.000000, 1.000000;;, + 10;3; 0.999995, 1.000000, 1.000000;;, + 11;3; 0.999995, 1.000000, 1.000000;;, + 12;3; 0.999995, 1.000000, 1.000000;;, + 13;3; 0.999995, 1.000000, 1.000000;;, + 14;3; 0.999995, 1.000000, 1.000000;;, + 15;3; 0.999995, 1.000000, 1.000000;;, + 16;3; 0.999995, 1.000000, 1.000000;;, + 17;3; 0.999995, 1.000000, 1.000000;;, + 18;3; 0.999995, 1.000000, 1.000000;;, + 19;3; 0.999995, 1.000000, 1.000000;;, + 20;3; 0.999995, 1.000000, 1.000000;;, + 21;3; 0.999995, 1.000000, 1.000000;;, + 22;3; 0.999995, 1.000000, 1.000000;;, + 23;3; 0.999995, 1.000000, 1.000000;;, + 24;3; 0.999995, 1.000000, 1.000000;;, + 25;3; 0.999995, 1.000000, 1.000000;;, + 26;3; 0.999995, 1.000000, 1.000000;;, + 27;3; 0.999995, 1.000000, 1.000000;;, + 28;3; 0.999995, 1.000000, 1.000000;;, + 29;3; 0.999995, 1.000000, 1.000000;;, + 30;3; 0.999995, 1.000000, 1.000000;;, + 31;3; 0.999995, 1.000000, 1.000000;;, + 32;3; 0.999995, 1.000000, 1.000000;;, + 33;3; 0.999995, 1.000000, 1.000000;;, + 34;3; 0.999995, 1.000000, 1.000000;;, + 35;3; 0.999995, 1.000000, 1.000000;;, + 36;3; 0.999995, 1.000000, 1.000000;;, + 37;3; 0.999995, 1.000000, 1.000000;;, + 38;3; 0.999995, 1.000000, 1.000000;;, + 39;3; 0.999995, 1.000000, 1.000000;;, + 40;3; 0.999995, 1.000000, 1.000000;;, + 41;3; 0.999995, 1.000000, 1.000000;;, + 42;3; 0.999995, 1.000000, 1.000000;;, + 43;3; 0.999995, 1.000000, 1.000000;;, + 44;3; 0.999995, 1.000000, 1.000000;;, + 45;3; 0.999995, 1.000000, 1.000000;;, + 46;3; 0.999995, 1.000000, 1.000000;;, + 47;3; 0.999995, 1.000000, 1.000000;;, + 48;3; 0.999995, 1.000000, 1.000000;;, + 49;3; 0.999995, 1.000000, 1.000000;;, + 50;3; 0.999995, 1.000000, 1.000000;;, + 51;3; 0.999995, 1.000000, 1.000000;;, + 52;3; 0.999995, 1.000000, 1.000000;;, + 53;3; 0.999995, 1.000000, 1.000000;;, + 54;3; 0.999995, 1.000000, 1.000000;;, + 55;3; 0.999995, 1.000000, 1.000000;;, + 56;3; 0.999995, 1.000000, 1.000000;;, + 57;3; 0.999995, 1.000000, 1.000000;;, + 58;3; 0.999995, 1.000000, 1.000000;;, + 59;3; 0.999995, 1.000000, 1.000000;;, + 60;3; 0.999995, 1.000000, 1.000000;;, + 61;3; 0.999995, 1.000000, 1.000000;;, + 62;3; 0.999995, 1.000000, 1.000000;;, + 63;3; 0.999995, 1.000000, 1.000000;;, + 64;3; 0.999995, 1.000000, 1.000000;;, + 65;3; 0.999995, 1.000000, 1.000000;;, + 66;3; 0.999995, 1.000000, 1.000000;;, + 67;3; 0.999995, 1.000000, 1.000000;;, + 68;3; 0.999995, 1.000000, 1.000000;;, + 69;3; 0.999995, 1.000000, 1.000000;;, + 70;3; 0.999995, 1.000000, 1.000000;;, + 71;3; 0.999995, 1.000000, 1.000000;;, + 72;3; 0.999995, 1.000000, 1.000000;;, + 73;3; 0.999995, 1.000000, 1.000000;;, + 74;3; 0.999995, 1.000000, 1.000000;;, + 75;3; 0.999995, 1.000000, 1.000000;;, + 76;3; 0.999995, 1.000000, 1.000000;;, + 77;3; 0.999995, 1.000000, 1.000000;;, + 78;3; 0.999995, 1.000000, 1.000000;;, + 79;3; 0.999995, 1.000000, 1.000000;;, + 80;3; 0.999995, 1.000000, 1.000000;;, + 81;3; 0.999995, 1.000000, 1.000000;;, + 82;3; 0.999995, 1.000000, 1.000000;;, + 83;3; 0.999995, 1.000000, 1.000000;;, + 84;3; 0.999995, 1.000000, 1.000000;;, + 85;3; 0.999995, 1.000000, 1.000000;;, + 86;3; 0.999995, 1.000000, 1.000000;;, + 87;3; 0.999995, 1.000000, 1.000000;;, + 88;3; 0.999995, 1.000000, 1.000000;;, + 89;3; 0.999995, 1.000000, 1.000000;;, + 90;3; 0.999995, 1.000000, 1.000000;;, + 91;3; 0.999995, 1.000000, 1.000000;;, + 92;3; 0.999995, 1.000000, 1.000000;;, + 93;3; 0.999995, 1.000000, 1.000000;;, + 94;3; 0.999995, 1.000000, 1.000000;;, + 95;3; 0.999995, 1.000000, 1.000000;;, + 96;3; 0.999995, 1.000000, 1.000000;;, + 97;3; 0.999995, 1.000000, 1.000000;;, + 98;3; 0.999995, 1.000000, 1.000000;;, + 99;3; 0.999995, 1.000000, 1.000000;;, + 100;3; 0.999995, 1.000000, 1.000000;;, + 101;3; 0.999995, 1.000000, 1.000000;;, + 102;3; 0.999995, 1.000000, 1.000000;;, + 103;3; 0.999995, 1.000000, 1.000000;;, + 104;3; 0.999995, 1.000000, 1.000000;;, + 105;3; 0.999995, 1.000000, 1.000000;;, + 106;3; 0.999995, 1.000000, 1.000000;;, + 107;3; 0.999995, 1.000000, 1.000000;;, + 108;3; 0.999995, 1.000000, 1.000000;;, + 109;3; 0.999995, 1.000000, 1.000000;;, + 110;3; 0.999995, 1.000000, 1.000000;;, + 111;3; 0.999995, 1.000000, 1.000000;;, + 112;3; 0.999995, 1.000000, 1.000000;;, + 113;3; 0.999995, 1.000000, 1.000000;;, + 114;3; 0.999995, 1.000000, 1.000000;;, + 115;3; 0.999995, 1.000000, 1.000000;;, + 116;3; 0.999995, 1.000000, 1.000000;;, + 117;3; 0.999995, 1.000000, 1.000000;;, + 118;3; 0.999995, 1.000000, 1.000000;;, + 119;3; 0.999995, 1.000000, 1.000000;;, + 120;3; 0.999995, 1.000000, 1.000000;;, + 121;3; 0.999995, 1.000000, 1.000000;;, + 122;3; 0.999995, 1.000000, 1.000000;;, + 123;3; 0.999995, 1.000000, 1.000000;;, + 124;3; 0.999995, 1.000000, 1.000000;;, + 125;3; 0.999995, 1.000000, 1.000000;;, + 126;3; 0.999995, 1.000000, 1.000000;;, + 127;3; 0.999995, 1.000000, 1.000000;;, + 128;3; 0.999995, 1.000000, 1.000000;;, + 129;3; 0.999995, 1.000000, 1.000000;;, + 130;3; 0.999995, 1.000000, 1.000000;;, + 131;3; 0.999995, 1.000000, 1.000000;;, + 132;3; 0.999995, 1.000000, 1.000000;;, + 133;3; 0.999995, 1.000000, 1.000000;;, + 134;3; 0.999995, 1.000000, 1.000000;;, + 135;3; 0.999995, 1.000000, 1.000000;;, + 136;3; 0.999995, 1.000000, 1.000000;;, + 137;3; 0.999995, 1.000000, 1.000000;;, + 138;3; 0.999995, 1.000000, 1.000000;;, + 139;3; 0.999995, 1.000000, 1.000000;;, + 140;3; 0.999995, 1.000000, 1.000000;;, + 141;3; 0.999995, 1.000000, 1.000000;;, + 142;3; 0.999995, 1.000000, 1.000000;;, + 143;3; 0.999995, 1.000000, 1.000000;;, + 144;3; 0.999995, 1.000000, 1.000000;;, + 145;3; 0.999995, 1.000000, 1.000000;;, + 146;3; 0.999995, 1.000000, 1.000000;;, + 147;3; 0.999995, 1.000000, 1.000000;;, + 148;3; 0.999995, 1.000000, 1.000000;;, + 149;3; 0.999995, 1.000000, 1.000000;;, + 150;3; 0.999995, 1.000000, 1.000000;;, + 151;3; 0.999995, 1.000000, 1.000000;;, + 152;3; 0.999995, 1.000000, 1.000000;;, + 153;3; 0.999995, 1.000000, 1.000000;;, + 154;3; 0.999995, 1.000000, 1.000000;;, + 155;3; 0.999995, 1.000000, 1.000000;;, + 156;3; 0.999995, 1.000000, 1.000000;;, + 157;3; 0.999995, 1.000000, 1.000000;;, + 158;3; 0.999995, 1.000000, 1.000000;;, + 159;3; 0.999995, 1.000000, 1.000000;;, + 160;3; 0.999995, 1.000000, 1.000000;;, + 161;3; 0.999995, 1.000000, 1.000000;;, + 162;3; 0.999996, 0.999999, 1.000000;;, + 163;3; 0.999996, 0.999999, 1.000000;;, + 164;3; 0.999996, 0.999999, 1.000000;;, + 165;3; 0.999996, 0.999999, 1.000000;;, + 166;3; 0.999996, 0.999999, 1.000000;;, + 167;3; 0.999996, 0.999999, 1.000000;;, + 168;3; 0.999995, 1.000000, 1.000000;;, + 169;3; 0.999995, 1.000000, 1.000000;;, + 170;3; 0.999995, 1.000000, 1.000000;;, + 171;3; 0.999995, 1.000000, 1.000000;;, + 172;3; 0.999995, 1.000000, 1.000000;;, + 173;3; 0.999995, 1.000000, 1.000000;;, + 174;3; 0.999995, 1.000000, 1.000000;;, + 175;3; 0.999995, 1.000000, 1.000000;;, + 176;3; 0.999995, 1.000000, 1.000000;;, + 177;3; 0.999995, 1.000000, 1.000000;;, + 178;3; 0.999995, 1.000000, 1.000000;;, + 179;3; 0.999995, 1.000000, 1.000000;;, + 180;3; 0.999995, 1.000000, 1.000000;;, + 181;3; 0.999995, 1.000000, 1.000000;;, + 182;3; 0.999995, 1.000000, 1.000000;;, + 183;3; 0.999995, 1.000000, 1.000000;;, + 184;3; 0.999995, 1.000000, 1.000000;;, + 185;3; 0.999995, 1.000000, 1.000000;;, + 186;3; 0.999995, 1.000000, 1.000000;;, + 187;3; 0.999995, 1.000000, 1.000000;;, + 188;3; 0.999995, 1.000000, 1.000000;;, + 189;3; 0.999996, 1.000000, 0.999999;;, + 190;3; 0.999996, 1.000000, 0.999999;;, + 191;3; 0.999996, 1.000000, 0.999999;;, + 192;3; 0.999995, 1.000000, 0.999999;;, + 193;3; 0.999995, 1.000000, 1.000000;;, + 194;3; 0.999995, 1.000000, 1.000000;;, + 195;3; 0.999995, 1.000000, 1.000000;;, + 196;3; 0.999996, 1.000000, 0.999999;;, + 197;3; 0.999996, 1.000000, 0.999999;;, + 198;3; 0.999996, 1.000000, 0.999999;;, + 199;3; 0.999996, 1.000000, 0.999999;;, + 200;3; 0.999996, 1.000000, 1.000000;;, + 201;3; 0.999996, 1.000000, 1.000000;;, + 202;3; 0.999996, 1.000000, 0.999999;;, + 203;3; 0.999996, 1.000000, 0.999999;;, + 204;3; 0.999996, 1.000000, 0.999999;;, + 205;3; 0.999996, 1.000000, 0.999999;;, + 206;3; 0.999996, 1.000000, 0.999999;;, + 207;3; 0.999996, 1.000000, 0.999999;;, + 208;3; 0.999996, 1.000000, 1.000000;;, + 209;3; 0.999995, 1.000000, 1.000000;;, + 210;3; 0.999995, 1.000000, 1.000000;;, + 211;3; 0.999995, 1.000000, 1.000000;;, + 212;3; 0.999995, 1.000000, 1.000000;;, + 213;3; 0.999996, 1.000000, 0.999999;;, + 214;3; 0.999996, 1.000000, 0.999999;;, + 215;3; 0.999996, 1.000000, 0.999999;;, + 216;3; 0.999996, 1.000000, 1.000000;;, + 217;3; 0.999996, 1.000000, 0.999999;;, + 218;3; 0.999996, 1.000000, 1.000000;;, + 219;3; 0.999996, 1.000000, 1.000000;;, + 220;3; 0.999996, 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.750000, 0.000000;;, + 194;3; 2.000000, 6.750001, 0.000000;;, + 195;3; 2.000000, 6.750000, 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.037587, 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.037587, 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.042626, 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.699534, 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.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.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.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.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.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.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.675754, 0.737121, 0.000000,-0.000000;;, + 143;4; 0.676211, 0.736682, 0.000000,-0.000000;;, + 144;4; 0.676923, 0.735998, 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.699534, 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, 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; 1.000000, 0.000000, 0.000000;;, + 1;3; 1.000000, 0.000000, 0.000000;;, + 2;3; 1.000000,-0.000000, 0.000000;;, + 3;3; 1.000000,-0.000000,-0.000000;;, + 4;3; 1.000000,-0.000000, 0.000000;;, + 5;3; 1.000000,-0.000000, 0.000000;;, + 6;3; 1.000000,-0.000000,-0.000000;;, + 7;3; 1.000000, 0.000000,-0.000000;;, + 8;3; 1.000000,-0.000000, 0.000000;;, + 9;3; 1.000000,-0.000000,-0.000000;;, + 10;3; 1.000000,-0.000000, 0.000000;;, + 11;3; 1.000000,-0.000000,-0.000000;;, + 12;3; 1.000000,-0.000000, 0.000000;;, + 13;3; 1.000000, 0.000000, 0.000000;;, + 14;3; 1.000000, 0.000000, 0.000000;;, + 15;3; 1.000000,-0.000000, 0.000000;;, + 16;3; 1.000000,-0.000000,-0.000000;;, + 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.000000;;, + 22;3; 1.000000, 0.000000,-0.000000;;, + 23;3; 1.000000, 0.000000,-0.000000;;, + 24;3; 1.000000,-0.000000,-0.000000;;, + 25;3; 1.000000,-0.000000, 0.000000;;, + 26;3; 1.000000, 0.000000, 0.000000;;, + 27;3; 1.000000, 0.000000, 0.000000;;, + 28;3; 1.000000,-0.000000,-0.000000;;, + 29;3; 1.000000,-0.000000,-0.000000;;, + 30;3; 1.000000,-0.000000, 0.000000;;, + 31;3; 1.000000,-0.000000, 0.000000;;, + 32;3; 1.000000,-0.000000, 0.000000;;, + 33;3; 1.000000, 0.000000,-0.000000;;, + 34;3; 1.000000,-0.000000, 0.000000;;, + 35;3; 1.000000,-0.000000,-0.000000;;, + 36;3; 1.000000,-0.000000, 0.000000;;, + 37;3; 1.000000,-0.000000,-0.000000;;, + 38;3; 1.000000,-0.000000, 0.000000;;, + 39;3; 1.000000, 0.000000,-0.000000;;, + 40;3; 1.000000, 0.000000, 0.000000;;, + 41;3; 1.000000, 0.000000,-0.000000;;, + 42;3; 1.000000,-0.000000,-0.000000;;, + 43;3; 1.000000,-0.000000,-0.000000;;, + 44;3; 1.000000,-0.000000,-0.000000;;, + 45;3; 1.000000,-0.000000, 0.000000;;, + 46;3; 1.000000,-0.000000, 0.000000;;, + 47;3; 1.000000, 0.000000,-0.000000;;, + 48;3; 1.000000,-0.000000, 0.000000;;, + 49;3; 1.000000,-0.000000, 0.000000;;, + 50;3; 1.000000,-0.000000,-0.000000;;, + 51;3; 1.000000,-0.000000, 0.000000;;, + 52;3; 1.000000,-0.000000, 0.000000;;, + 53;3; 1.000000, 0.000000, 0.000000;;, + 54;3; 1.000000, 0.000000,-0.000000;;, + 55;3; 1.000000,-0.000000, 0.000000;;, + 56;3; 1.000000,-0.000000,-0.000000;;, + 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.000000;;, + 62;3; 1.000000,-0.000000, 0.000000;;, + 63;3; 1.000000,-0.000000, 0.000000;;, + 64;3; 1.000000, 0.000000,-0.000000;;, + 65;3; 1.000000,-0.000000, 0.000000;;, + 66;3; 1.000000, 0.000000, 0.000000;;, + 67;3; 1.000000,-0.000000,-0.000000;;, + 68;3; 1.000000, 0.000000, 0.000000;;, + 69;3; 1.000000,-0.000000, 0.000000;;, + 70;3; 1.000000,-0.000000,-0.000000;;, + 71;3; 1.000000,-0.000000, 0.000000;;, + 72;3; 1.000000,-0.000000, 0.000000;;, + 73;3; 1.000000, 0.000000,-0.000000;;, + 74;3; 1.000000,-0.000000, 0.000000;;, + 75;3; 1.000000, 0.000000,-0.000000;;, + 76;3; 1.000000,-0.000000, 0.000000;;, + 77;3; 1.000000,-0.000000, 0.000000;;, + 78;3; 1.000000, 0.000000,-0.000000;;, + 79;3; 1.000000,-0.000000, 0.000000;;, + 80;3; 1.000000, 0.000000, 0.000000;;, + 81;3; 1.000000, 0.000000, 0.000000;;, + 82;3; 1.000000,-0.000000, 0.000000;;, + 83;3; 1.000000,-0.000000,-0.000000;;, + 84;3; 1.000000,-0.000000,-0.000000;;, + 85;3; 1.000000,-0.000000,-0.000000;;, + 86;3; 1.000000,-0.000000, 0.000000;;, + 87;3; 1.000000,-0.000000, 0.000000;;, + 88;3; 1.000000, 0.000000, 0.000000;;, + 89;3; 1.000000, 0.000000, 0.000000;;, + 90;3; 1.000000, 0.000000, 0.000000;;, + 91;3; 1.000000, 0.000000, 0.000000;;, + 92;3; 1.000000, 0.000000, 0.000000;;, + 93;3; 1.000000, 0.000000,-0.000000;;, + 94;3; 1.000000,-0.000000,-0.000000;;, + 95;3; 1.000000,-0.000000,-0.000000;;, + 96;3; 1.000000,-0.000000,-0.000000;;, + 97;3; 1.000000,-0.000000,-0.000000;;, + 98;3; 1.000000,-0.000000,-0.000000;;, + 99;3; 1.000000,-0.000000,-0.000000;;, + 100;3; 1.000000,-0.000000,-0.000000;;, + 101;3; 1.000000,-0.000000,-0.000000;;, + 102;3; 1.000000,-0.000000,-0.000000;;, + 103;3; 1.000000,-0.000000,-0.000000;;, + 104;3; 1.000000,-0.000000,-0.000000;;, + 105;3; 1.000000,-0.000000,-0.000000;;, + 106;3; 1.000000,-0.000000,-0.000000;;, + 107;3; 1.000000,-0.000000,-0.000000;;, + 108;3; 1.000000, 0.000000,-0.000000;;, + 109;3; 1.000000, 0.000000, 0.000000;;, + 110;3; 1.000000, 0.000000, 0.000000;;, + 111;3; 1.000000, 0.000000, 0.000000;;, + 112;3; 1.000000, 0.000000, 0.000000;;, + 113;3; 1.000000,-0.000000, 0.000000;;, + 114;3; 1.000000,-0.000000,-0.000000;;, + 115;3; 1.000000,-0.000000,-0.000000;;, + 116;3; 1.000000,-0.000000,-0.000000;;, + 117;3; 1.000000,-0.000000,-0.000000;;, + 118;3; 1.000000,-0.000000,-0.000000;;, + 119;3; 1.000000,-0.000000, 0.000000;;, + 120;3; 1.000000,-0.000000,-0.000000;;, + 121;3; 1.000000, 0.000000, 0.000000;;, + 122;3; 1.000000,-0.000000,-0.000000;;, + 123;3; 1.000000,-0.000000, 0.000000;;, + 124;3; 1.000000,-0.000000,-0.000000;;, + 125;3; 1.000000,-0.000000,-0.000000;;, + 126;3; 1.000000,-0.000000,-0.000000;;, + 127;3; 1.000000,-0.000000,-0.000000;;, + 128;3; 1.000000,-0.000000,-0.000000;;, + 129;3; 1.000000,-0.000000, 0.000000;;, + 130;3; 1.000000, 0.000000, 0.000000;;, + 131;3; 1.000000, 0.000000, 0.000000;;, + 132;3; 1.000000, 0.000000, 0.000000;;, + 133;3; 1.000000, 0.000000, 0.000000;;, + 134;3; 1.000000, 0.000000,-0.000000;;, + 135;3; 1.000000,-0.000000,-0.000000;;, + 136;3; 1.000000,-0.000000,-0.000000;;, + 137;3; 1.000000,-0.000000,-0.000000;;, + 138;3; 1.000000,-0.000000,-0.000000;;, + 139;3; 1.000000,-0.000000,-0.000000;;, + 140;3; 1.000000,-0.000000,-0.000000;;, + 141;3; 1.000000,-0.000000,-0.000000;;, + 142;3; 1.000000,-0.000000,-0.000000;;, + 143;3; 1.000000,-0.000000,-0.000000;;, + 144;3; 1.000000,-0.000000,-0.000000;;, + 145;3; 1.000000,-0.000000,-0.000000;;, + 146;3; 1.000000,-0.000000,-0.000000;;, + 147;3; 1.000000,-0.000000,-0.000000;;, + 148;3; 1.000000,-0.000000,-0.000000;;, + 149;3; 1.000000, 0.000000,-0.000000;;, + 150;3; 1.000000, 0.000000, 0.000000;;, + 151;3; 1.000000, 0.000000, 0.000000;;, + 152;3; 1.000000, 0.000000, 0.000000;;, + 153;3; 1.000000, 0.000000, 0.000000;;, + 154;3; 1.000000, 0.000000, 0.000000;;, + 155;3; 1.000000,-0.000000, 0.000000;;, + 156;3; 1.000000,-0.000000, 0.000000;;, + 157;3; 1.000000,-0.000000,-0.000000;;, + 158;3; 1.000000,-0.000000,-0.000000;;, + 159;3; 1.000000,-0.000000,-0.000000;;, + 160;3; 1.000000,-0.000000, 0.000000;;, + 161;3; 1.000000, 0.000000, 0.000000;;, + 162;3; 1.000000,-0.000000,-0.000000;;, + 163;3; 1.000000,-0.000000,-0.000000;;, + 164;3; 1.000000,-0.000000,-0.000000;;, + 165;3; 1.000000,-0.000000,-0.000000;;, + 166;3; 1.000000,-0.000000,-0.000000;;, + 167;3; 1.000000,-0.000000,-0.000000;;, + 168;3; 1.000000, 0.000000, 0.000000;;, + 169;3; 1.000000, 0.000000, 0.000000;;, + 170;3; 1.000000, 0.000000, 0.000000;;, + 171;3; 1.000000, 0.000000, 0.000000;;, + 172;3; 1.000000, 0.000000, 0.000000;;, + 173;3; 1.000000, 0.000000, 0.000000;;, + 174;3; 1.000000, 0.000000, 0.000000;;, + 175;3; 1.000000, 0.000000, 0.000000;;, + 176;3; 1.000000, 0.000000, 0.000000;;, + 177;3; 1.000000, 0.000000, 0.000000;;, + 178;3; 1.000000, 0.000000, 0.000000;;, + 179;3; 1.000000, 0.000000, 0.000000;;, + 180;3; 1.000000, 0.000000, 0.000000;;, + 181;3; 1.000000, 0.000000, 0.000000;;, + 182;3; 1.000000, 0.000000, 0.000000;;, + 183;3; 1.000000, 0.000000, 0.000000;;, + 184;3; 1.000000, 0.000000, 0.000000;;, + 185;3; 1.000000, 0.000000, 0.000000;;, + 186;3; 1.000000, 0.000000, 0.000000;;, + 187;3; 1.000000, 0.000000, 0.000000;;, + 188;3; 1.000000, 0.000000, 0.000000;;, + 189;3; 1.000000, 0.000000, 0.000000;;, + 190;3; 1.000000,-0.000000, 0.000000;;, + 191;3; 1.000000,-0.000000,-0.000000;;, + 192;3; 1.000000,-0.000000, 0.000000;;, + 193;3; 1.000000, 0.000000,-0.000000;;, + 194;3; 1.000000, 0.000000,-0.000000;;, + 195;3; 1.000000, 0.000000,-0.000000;;, + 196;3; 1.000000,-0.000000,-0.000000;;, + 197;3; 1.000000,-0.000000,-0.000000;;, + 198;3; 1.000000,-0.000000,-0.000000;;, + 199;3; 1.000000, 0.000000, 0.000000;;, + 200;3; 1.000000, 0.000000, 0.000000;;, + 201;3; 1.000000,-0.000000,-0.000000;;, + 202;3; 1.000000,-0.000000, 0.000000;;, + 203;3; 1.000000,-0.000000, 0.000000;;, + 204;3; 1.000000,-0.000000,-0.000000;;, + 205;3; 1.000000, 0.000000,-0.000000;;, + 206;3; 1.000000,-0.000000, 0.000000;;, + 207;3; 1.000000,-0.000000, 0.000000;;, + 208;3; 1.000000,-0.000000,-0.000000;;, + 209;3; 1.000000, 0.000000,-0.000000;;, + 210;3; 1.000000, 0.000000,-0.000000;;, + 211;3; 1.000000, 0.000000,-0.000000;;, + 212;3; 1.000000,-0.000000, 0.000000;;, + 213;3; 1.000000,-0.000000, 0.000000;;, + 214;3; 1.000000,-0.000000, 0.000000;;, + 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.000000;;, + 219;3; 1.000000,-0.000000, 0.000000;;, + 220;3; 1.000000, 0.000000, 0.000000;;; + } + } + 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.037587, 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.037587, 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.042626, 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.699534, 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.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.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.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.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.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.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.675754, 0.737121, 0.000000,-0.000000;;, + 143;4; 0.676211, 0.736682, 0.000000,-0.000000;;, + 144;4; 0.676923, 0.735998, 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.699534, 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, 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;-1.000000, 0.000000, 0.000000;;, + 1;3;-1.000000, 0.000000, 0.000000;;, + 2;3;-1.000000,-0.000000, 0.000000;;, + 3;3;-1.000000,-0.000000,-0.000000;;, + 4;3;-1.000000,-0.000000, 0.000000;;, + 5;3;-1.000000,-0.000000, 0.000000;;, + 6;3;-1.000000,-0.000000,-0.000000;;, + 7;3;-1.000000, 0.000000,-0.000000;;, + 8;3;-1.000000,-0.000000, 0.000000;;, + 9;3;-1.000000,-0.000000,-0.000000;;, + 10;3;-1.000000,-0.000000, 0.000000;;, + 11;3;-1.000000,-0.000000,-0.000000;;, + 12;3;-1.000000,-0.000000, 0.000000;;, + 13;3;-1.000000, 0.000000, 0.000000;;, + 14;3;-1.000000, 0.000000, 0.000000;;, + 15;3;-1.000000,-0.000000, 0.000000;;, + 16;3;-1.000000,-0.000000,-0.000000;;, + 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.000000;;, + 22;3;-1.000000, 0.000000,-0.000000;;, + 23;3;-1.000000, 0.000000,-0.000000;;, + 24;3;-1.000000,-0.000000,-0.000000;;, + 25;3;-1.000000,-0.000000, 0.000000;;, + 26;3;-1.000000, 0.000000, 0.000000;;, + 27;3;-1.000000, 0.000000, 0.000000;;, + 28;3;-1.000000,-0.000000,-0.000000;;, + 29;3;-1.000000,-0.000000,-0.000000;;, + 30;3;-1.000000,-0.000000, 0.000000;;, + 31;3;-1.000000,-0.000000, 0.000000;;, + 32;3;-1.000000,-0.000000, 0.000000;;, + 33;3;-1.000000, 0.000000,-0.000000;;, + 34;3;-1.000000,-0.000000, 0.000000;;, + 35;3;-1.000000,-0.000000,-0.000000;;, + 36;3;-1.000000,-0.000000, 0.000000;;, + 37;3;-1.000000,-0.000000,-0.000000;;, + 38;3;-1.000000,-0.000000, 0.000000;;, + 39;3;-1.000000, 0.000000,-0.000000;;, + 40;3;-1.000000, 0.000000, 0.000000;;, + 41;3;-1.000000, 0.000000,-0.000000;;, + 42;3;-1.000000,-0.000000,-0.000000;;, + 43;3;-1.000000,-0.000000,-0.000000;;, + 44;3;-1.000000,-0.000000,-0.000000;;, + 45;3;-1.000000,-0.000000, 0.000000;;, + 46;3;-1.000000,-0.000000, 0.000000;;, + 47;3;-1.000000, 0.000000,-0.000000;;, + 48;3;-1.000000,-0.000000, 0.000000;;, + 49;3;-1.000000,-0.000000, 0.000000;;, + 50;3;-1.000000,-0.000000,-0.000000;;, + 51;3;-1.000000,-0.000000, 0.000000;;, + 52;3;-1.000000,-0.000000, 0.000000;;, + 53;3;-1.000000, 0.000000, 0.000000;;, + 54;3;-1.000000, 0.000000,-0.000000;;, + 55;3;-1.000000,-0.000000, 0.000000;;, + 56;3;-1.000000,-0.000000,-0.000000;;, + 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.000000;;, + 62;3;-1.000000,-0.000000, 0.000000;;, + 63;3;-1.000000,-0.000000, 0.000000;;, + 64;3;-1.000000, 0.000000,-0.000000;;, + 65;3;-1.000000,-0.000000, 0.000000;;, + 66;3;-1.000000, 0.000000, 0.000000;;, + 67;3;-1.000000,-0.000000,-0.000000;;, + 68;3;-1.000000, 0.000000, 0.000000;;, + 69;3;-1.000000,-0.000000, 0.000000;;, + 70;3;-1.000000,-0.000000,-0.000000;;, + 71;3;-1.000000,-0.000000, 0.000000;;, + 72;3;-1.000000,-0.000000, 0.000000;;, + 73;3;-1.000000, 0.000000,-0.000000;;, + 74;3;-1.000000,-0.000000, 0.000000;;, + 75;3;-1.000000, 0.000000,-0.000000;;, + 76;3;-1.000000,-0.000000, 0.000000;;, + 77;3;-1.000000,-0.000000, 0.000000;;, + 78;3;-1.000000, 0.000000,-0.000000;;, + 79;3;-1.000000,-0.000000, 0.000000;;, + 80;3;-1.000000, 0.000000, 0.000000;;, + 81;3;-1.000000, 0.000000, 0.000000;;, + 82;3;-1.000000,-0.000000, 0.000000;;, + 83;3;-1.000000,-0.000000,-0.000000;;, + 84;3;-1.000000,-0.000000,-0.000000;;, + 85;3;-1.000000,-0.000000,-0.000000;;, + 86;3;-1.000000,-0.000000, 0.000000;;, + 87;3;-1.000000,-0.000000, 0.000000;;, + 88;3;-1.000000, 0.000000, 0.000000;;, + 89;3;-1.000000, 0.000000, 0.000000;;, + 90;3;-1.000000, 0.000000, 0.000000;;, + 91;3;-1.000000, 0.000000, 0.000000;;, + 92;3;-1.000000, 0.000000, 0.000000;;, + 93;3;-1.000000, 0.000000,-0.000000;;, + 94;3;-1.000000,-0.000000,-0.000000;;, + 95;3;-1.000000,-0.000000,-0.000000;;, + 96;3;-1.000000,-0.000000,-0.000000;;, + 97;3;-1.000000,-0.000000,-0.000000;;, + 98;3;-1.000000,-0.000000,-0.000000;;, + 99;3;-1.000000,-0.000000,-0.000000;;, + 100;3;-1.000000,-0.000000,-0.000000;;, + 101;3;-1.000000,-0.000000,-0.000000;;, + 102;3;-1.000000,-0.000000,-0.000000;;, + 103;3;-1.000000,-0.000000,-0.000000;;, + 104;3;-1.000000,-0.000000,-0.000000;;, + 105;3;-1.000000,-0.000000,-0.000000;;, + 106;3;-1.000000,-0.000000,-0.000000;;, + 107;3;-1.000000,-0.000000,-0.000000;;, + 108;3;-1.000000, 0.000000,-0.000000;;, + 109;3;-1.000000, 0.000000, 0.000000;;, + 110;3;-1.000000, 0.000000, 0.000000;;, + 111;3;-1.000000, 0.000000, 0.000000;;, + 112;3;-1.000000, 0.000000, 0.000000;;, + 113;3;-1.000000,-0.000000, 0.000000;;, + 114;3;-1.000000,-0.000000,-0.000000;;, + 115;3;-1.000000,-0.000000,-0.000000;;, + 116;3;-1.000000,-0.000000,-0.000000;;, + 117;3;-1.000000,-0.000000,-0.000000;;, + 118;3;-1.000000,-0.000000,-0.000000;;, + 119;3;-1.000000,-0.000000, 0.000000;;, + 120;3;-1.000000,-0.000000,-0.000000;;, + 121;3;-1.000000, 0.000000, 0.000000;;, + 122;3;-1.000000,-0.000000,-0.000000;;, + 123;3;-1.000000,-0.000000, 0.000000;;, + 124;3;-1.000000,-0.000000,-0.000000;;, + 125;3;-1.000000,-0.000000,-0.000000;;, + 126;3;-1.000000,-0.000000,-0.000000;;, + 127;3;-1.000000,-0.000000,-0.000000;;, + 128;3;-1.000000,-0.000000,-0.000000;;, + 129;3;-1.000000,-0.000000, 0.000000;;, + 130;3;-1.000000, 0.000000, 0.000000;;, + 131;3;-1.000000, 0.000000, 0.000000;;, + 132;3;-1.000000, 0.000000, 0.000000;;, + 133;3;-1.000000, 0.000000, 0.000000;;, + 134;3;-1.000000, 0.000000,-0.000000;;, + 135;3;-1.000000,-0.000000,-0.000000;;, + 136;3;-1.000000,-0.000000,-0.000000;;, + 137;3;-1.000000,-0.000000,-0.000000;;, + 138;3;-1.000000,-0.000000,-0.000000;;, + 139;3;-1.000000,-0.000000,-0.000000;;, + 140;3;-1.000000,-0.000000,-0.000000;;, + 141;3;-1.000000,-0.000000,-0.000000;;, + 142;3;-1.000000,-0.000000,-0.000000;;, + 143;3;-1.000000,-0.000000,-0.000000;;, + 144;3;-1.000000,-0.000000,-0.000000;;, + 145;3;-1.000000,-0.000000,-0.000000;;, + 146;3;-1.000000,-0.000000,-0.000000;;, + 147;3;-1.000000,-0.000000,-0.000000;;, + 148;3;-1.000000,-0.000000,-0.000000;;, + 149;3;-1.000000, 0.000000,-0.000000;;, + 150;3;-1.000000, 0.000000, 0.000000;;, + 151;3;-1.000000, 0.000000, 0.000000;;, + 152;3;-1.000000, 0.000000, 0.000000;;, + 153;3;-1.000000, 0.000000, 0.000000;;, + 154;3;-1.000000, 0.000000, 0.000000;;, + 155;3;-1.000000,-0.000000, 0.000000;;, + 156;3;-1.000000,-0.000000, 0.000000;;, + 157;3;-1.000000,-0.000000,-0.000000;;, + 158;3;-1.000000,-0.000000,-0.000000;;, + 159;3;-1.000000,-0.000000,-0.000000;;, + 160;3;-1.000000,-0.000000, 0.000000;;, + 161;3;-1.000000, 0.000000, 0.000000;;, + 162;3;-1.000000,-0.000000,-0.000000;;, + 163;3;-1.000000,-0.000000,-0.000000;;, + 164;3;-1.000000,-0.000000,-0.000000;;, + 165;3;-1.000000,-0.000000,-0.000000;;, + 166;3;-1.000000,-0.000000,-0.000000;;, + 167;3;-1.000000,-0.000000,-0.000000;;, + 168;3;-1.000000, 0.000000, 0.000000;;, + 169;3;-1.000000, 0.000000, 0.000000;;, + 170;3;-1.000000, 0.000000, 0.000000;;, + 171;3;-1.000000, 0.000000, 0.000000;;, + 172;3;-1.000000, 0.000000, 0.000000;;, + 173;3;-1.000000, 0.000000, 0.000000;;, + 174;3;-1.000000, 0.000000, 0.000000;;, + 175;3;-1.000000, 0.000000, 0.000000;;, + 176;3;-1.000000, 0.000000, 0.000000;;, + 177;3;-1.000000, 0.000000, 0.000000;;, + 178;3;-1.000000, 0.000000, 0.000000;;, + 179;3;-1.000000, 0.000000, 0.000000;;, + 180;3;-1.000000, 0.000000, 0.000000;;, + 181;3;-1.000000, 0.000000, 0.000000;;, + 182;3;-1.000000, 0.000000, 0.000000;;, + 183;3;-1.000000, 0.000000, 0.000000;;, + 184;3;-1.000000, 0.000000, 0.000000;;, + 185;3;-1.000000, 0.000000, 0.000000;;, + 186;3;-1.000000, 0.000000, 0.000000;;, + 187;3;-1.000000, 0.000000, 0.000000;;, + 188;3;-1.000000, 0.000000, 0.000000;;, + 189;3;-1.000000, 0.000000, 0.000000;;, + 190;3;-1.000000,-0.000000, 0.000000;;, + 191;3;-1.000000,-0.000000,-0.000000;;, + 192;3;-1.000000,-0.000000, 0.000000;;, + 193;3;-1.000000, 0.000000,-0.000000;;, + 194;3;-1.000000, 0.000000,-0.000000;;, + 195;3;-1.000000, 0.000000,-0.000000;;, + 196;3;-1.000000,-0.000000,-0.000000;;, + 197;3;-1.000000,-0.000000,-0.000000;;, + 198;3;-1.000000,-0.000000,-0.000000;;, + 199;3;-1.000000, 0.000000, 0.000000;;, + 200;3;-1.000000, 0.000000, 0.000000;;, + 201;3;-1.000000,-0.000000,-0.000000;;, + 202;3;-1.000000,-0.000000, 0.000000;;, + 203;3;-1.000000,-0.000000, 0.000000;;, + 204;3;-1.000000,-0.000000,-0.000000;;, + 205;3;-1.000000, 0.000000,-0.000000;;, + 206;3;-1.000000,-0.000000, 0.000000;;, + 207;3;-1.000000,-0.000000, 0.000000;;, + 208;3;-1.000000,-0.000000,-0.000000;;, + 209;3;-1.000000, 0.000000,-0.000000;;, + 210;3;-1.000000, 0.000000,-0.000000;;, + 211;3;-1.000000, 0.000000,-0.000000;;, + 212;3;-1.000000,-0.000000, 0.000000;;, + 213;3;-1.000000,-0.000000, 0.000000;;, + 214;3;-1.000000,-0.000000, 0.000000;;, + 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.000000;;, + 219;3;-1.000000,-0.000000, 0.000000;;, + 220;3;-1.000000, 0.000000, 0.000000;;; + } + } + Animation { + {Armature_Cape} + AnimationKey { // Rotation + 0; + 221; + 0;4;-0.000000, 1.000000, 0.000000,-0.000000;;, + 1;4;-0.000248, 1.000000, 0.000000,-0.000000;;, + 2;4;-0.000998, 1.000000, 0.000000,-0.000000;;, + 3;4;-0.002251, 1.000000, 0.000000,-0.000000;;, + 4;4;-0.004000, 1.000000, 0.000000,-0.000000;;, + 5;4;-0.006223, 1.000000, 0.000000,-0.000000;;, + 6;4;-0.008882, 1.000000, 0.000000,-0.000000;;, + 7;4;-0.011921, 1.000000, 0.000000,-0.000000;;, + 8;4;-0.015267, 1.000000, 0.000000,-0.000000;;, + 9;4;-0.018828, 1.000000, 0.000000,-0.000000;;, + 10;4;-0.022500, 1.000000, 0.000000,-0.000000;;, + 11;4;-0.026172, 1.000000, 0.000000,-0.000000;;, + 12;4;-0.029733, 1.000000, 0.000000,-0.000000;;, + 13;4;-0.033079, 1.000000, 0.000000,-0.000000;;, + 14;4;-0.036118, 1.000000, 0.000000,-0.000000;;, + 15;4;-0.038777, 1.000000, 0.000000,-0.000000;;, + 16;4;-0.041000, 1.000000, 0.000000,-0.000000;;, + 17;4;-0.042749, 1.000000, 0.000000,-0.000000;;, + 18;4;-0.044002, 1.000000, 0.000000,-0.000000;;, + 19;4;-0.044752, 1.000000, 0.000000,-0.000000;;, + 20;4;-0.045000, 1.000000, 0.000000,-0.000000;;, + 21;4;-0.044752, 1.000000, 0.000000,-0.000000;;, + 22;4;-0.044002, 1.000000, 0.000000,-0.000000;;, + 23;4;-0.042749, 1.000000, 0.000000,-0.000000;;, + 24;4;-0.041000, 1.000000, 0.000000,-0.000000;;, + 25;4;-0.038777, 1.000000, 0.000000,-0.000000;;, + 26;4;-0.036118, 1.000000, 0.000000,-0.000000;;, + 27;4;-0.033079, 1.000000, 0.000000,-0.000000;;, + 28;4;-0.029733, 1.000000, 0.000000,-0.000000;;, + 29;4;-0.026172, 1.000000, 0.000000,-0.000000;;, + 30;4;-0.022500, 1.000000, 0.000000,-0.000000;;, + 31;4;-0.018828, 1.000000, 0.000000,-0.000000;;, + 32;4;-0.015267, 1.000000, 0.000000,-0.000000;;, + 33;4;-0.011921, 1.000000, 0.000000,-0.000000;;, + 34;4;-0.008882, 1.000000, 0.000000,-0.000000;;, + 35;4;-0.006223, 1.000000, 0.000000,-0.000000;;, + 36;4;-0.004000, 1.000000, 0.000000,-0.000000;;, + 37;4;-0.002251, 1.000000, 0.000000,-0.000000;;, + 38;4;-0.000998, 1.000000, 0.000000,-0.000000;;, + 39;4;-0.000248, 1.000000, 0.000000,-0.000000;;, + 40;4;-0.000000, 1.000000, 0.000000,-0.000000;;, + 41;4;-0.000248, 1.000000, 0.000000,-0.000000;;, + 42;4;-0.000998, 1.000000, 0.000000,-0.000000;;, + 43;4;-0.002251, 1.000000, 0.000000,-0.000000;;, + 44;4;-0.004000, 1.000000, 0.000000,-0.000000;;, + 45;4;-0.006223, 1.000000, 0.000000,-0.000000;;, + 46;4;-0.008882, 1.000000, 0.000000,-0.000000;;, + 47;4;-0.011921, 1.000000, 0.000000,-0.000000;;, + 48;4;-0.015267, 1.000000, 0.000000,-0.000000;;, + 49;4;-0.018828, 1.000000, 0.000000,-0.000000;;, + 50;4;-0.022500, 1.000000, 0.000000,-0.000000;;, + 51;4;-0.026172, 1.000000, 0.000000,-0.000000;;, + 52;4;-0.029733, 1.000000, 0.000000,-0.000000;;, + 53;4;-0.033079, 1.000000, 0.000000,-0.000000;;, + 54;4;-0.036118, 1.000000, 0.000000,-0.000000;;, + 55;4;-0.038777, 1.000000, 0.000000,-0.000000;;, + 56;4;-0.041000, 1.000000, 0.000000,-0.000000;;, + 57;4;-0.042749, 1.000000, 0.000000,-0.000000;;, + 58;4;-0.044002, 1.000000, 0.000000,-0.000000;;, + 59;4;-0.044752, 1.000000, 0.000000,-0.000000;;, + 60;4;-0.045000, 1.000000, 0.000000,-0.000000;;, + 61;4;-0.044767, 1.000000, 0.000000,-0.000000;;, + 62;4;-0.044112, 1.000000, 0.000000,-0.000000;;, + 63;4;-0.043092, 1.000000, 0.000000,-0.000000;;, + 64;4;-0.041752, 1.000000, 0.000000,-0.000000;;, + 65;4;-0.040131, 1.000000, 0.000000,-0.000000;;, + 66;4;-0.038259, 1.000000, 0.000000,-0.000000;;, + 67;4;-0.036163, 1.000000, 0.000000,-0.000000;;, + 68;4;-0.033867, 1.000000, 0.000000,-0.000000;;, + 69;4;-0.031393, 1.000000, 0.000000,-0.000000;;, + 70;4;-0.028758, 1.000000, 0.000000,-0.000000;;, + 71;4;-0.025982, 1.000000, 0.000000,-0.000000;;, + 72;4;-0.023082, 1.000000, 0.000000,-0.000000;;, + 73;4;-0.020076, 1.000000, 0.000000,-0.000000;;, + 74;4;-0.016986, 1.000000, 0.000000,-0.000000;;, + 75;4;-0.013835, 1.000000, 0.000000,-0.000000;;, + 76;4;-0.010656, 1.000000, 0.000000,-0.000000;;, + 77;4;-0.007497, 1.000000, 0.000000,-0.000000;;, + 78;4;-0.004443, 1.000000, 0.000000,-0.000000;;, + 79;4;-0.001683, 1.000000, 0.000000,-0.000000;;, + 80;4;-0.000000, 1.000000, 0.000000,-0.000000;;, + 81;4;-0.000000, 1.000000, 0.000000,-0.000000;;, + 82;4;-0.001683, 1.000000, 0.000000,-0.000000;;, + 83;4;-0.004443, 1.000000, 0.000000,-0.000000;;, + 84;4;-0.007497, 1.000000, 0.000000,-0.000000;;, + 85;4;-0.010656, 1.000000, 0.000000,-0.000000;;, + 86;4;-0.013835, 1.000000, 0.000000,-0.000000;;, + 87;4;-0.016986, 1.000000, 0.000000,-0.000000;;, + 88;4;-0.020076, 1.000000, 0.000000,-0.000000;;, + 89;4;-0.023082, 1.000000, 0.000000,-0.000000;;, + 90;4;-0.025982, 1.000000, 0.000000,-0.000000;;, + 91;4;-0.028758, 1.000000, 0.000000,-0.000000;;, + 92;4;-0.031393, 1.000000, 0.000000,-0.000000;;, + 93;4;-0.033867, 1.000000, 0.000000,-0.000000;;, + 94;4;-0.036163, 1.000000, 0.000000,-0.000000;;, + 95;4;-0.038259, 1.000000, 0.000000,-0.000000;;, + 96;4;-0.040131, 1.000000, 0.000000,-0.000000;;, + 97;4;-0.041752, 1.000000, 0.000000,-0.000000;;, + 98;4;-0.043092, 1.000000, 0.000000,-0.000000;;, + 99;4;-0.044112, 1.000000, 0.000000,-0.000000;;, + 100;4;-0.044767, 1.000000, 0.000000,-0.000000;;, + 101;4;-0.045000, 1.000000, 0.000000,-0.000000;;, + 102;4;-0.044752, 1.000000, 0.000000,-0.000000;;, + 103;4;-0.044002, 1.000000, 0.000000,-0.000000;;, + 104;4;-0.042749, 1.000000, 0.000000,-0.000000;;, + 105;4;-0.041000, 1.000000, 0.000000,-0.000000;;, + 106;4;-0.038777, 1.000000, 0.000000,-0.000000;;, + 107;4;-0.036118, 1.000000, 0.000000,-0.000000;;, + 108;4;-0.033079, 1.000000, 0.000000,-0.000000;;, + 109;4;-0.029733, 1.000000, 0.000000,-0.000000;;, + 110;4;-0.026172, 1.000000, 0.000000,-0.000000;;, + 111;4;-0.022500, 1.000000, 0.000000,-0.000000;;, + 112;4;-0.018828, 1.000000, 0.000000,-0.000000;;, + 113;4;-0.015267, 1.000000, 0.000000,-0.000000;;, + 114;4;-0.011921, 1.000000, 0.000000,-0.000000;;, + 115;4;-0.008882, 1.000000, 0.000000,-0.000000;;, + 116;4;-0.006223, 1.000000, 0.000000,-0.000000;;, + 117;4;-0.004000, 1.000000, 0.000000,-0.000000;;, + 118;4;-0.002251, 1.000000, 0.000000,-0.000000;;, + 119;4;-0.000998, 1.000000, 0.000000,-0.000000;;, + 120;4;-0.000248, 1.000000, 0.000000,-0.000000;;, + 121;4;-0.000000, 1.000000, 0.000000,-0.000000;;, + 122;4;-0.000248, 1.000000, 0.000000,-0.000000;;, + 123;4;-0.000998, 1.000000, 0.000000,-0.000000;;, + 124;4;-0.002251, 1.000000, 0.000000,-0.000000;;, + 125;4;-0.004000, 1.000000, 0.000000,-0.000000;;, + 126;4;-0.006223, 1.000000, 0.000000,-0.000000;;, + 127;4;-0.008882, 1.000000, 0.000000,-0.000000;;, + 128;4;-0.011921, 1.000000, 0.000000,-0.000000;;, + 129;4;-0.015267, 1.000000, 0.000000,-0.000000;;, + 130;4;-0.018828, 1.000000, 0.000000,-0.000000;;, + 131;4;-0.022500, 1.000000, 0.000000,-0.000000;;, + 132;4;-0.026172, 1.000000, 0.000000,-0.000000;;, + 133;4;-0.029733, 1.000000, 0.000000,-0.000000;;, + 134;4;-0.033079, 1.000000, 0.000000,-0.000000;;, + 135;4;-0.036118, 1.000000, 0.000000,-0.000000;;, + 136;4;-0.038777, 1.000000, 0.000000,-0.000000;;, + 137;4;-0.041000, 1.000000, 0.000000,-0.000000;;, + 138;4;-0.042749, 1.000000, 0.000000,-0.000000;;, + 139;4;-0.044002, 1.000000, 0.000000,-0.000000;;, + 140;4;-0.044752, 1.000000, 0.000000,-0.000000;;, + 141;4;-0.045000, 1.000000, 0.000000,-0.000000;;, + 142;4;-0.044767, 1.000000, 0.000000,-0.000000;;, + 143;4;-0.044112, 1.000000, 0.000000,-0.000000;;, + 144;4;-0.043092, 1.000000, 0.000000,-0.000000;;, + 145;4;-0.041752, 1.000000, 0.000000,-0.000000;;, + 146;4;-0.040131, 1.000000, 0.000000,-0.000000;;, + 147;4;-0.038259, 1.000000, 0.000000,-0.000000;;, + 148;4;-0.036163, 1.000000, 0.000000,-0.000000;;, + 149;4;-0.033867, 1.000000, 0.000000,-0.000000;;, + 150;4;-0.031393, 1.000000, 0.000000,-0.000000;;, + 151;4;-0.028758, 1.000000, 0.000000,-0.000000;;, + 152;4;-0.025982, 1.000000, 0.000000,-0.000000;;, + 153;4;-0.023082, 1.000000, 0.000000,-0.000000;;, + 154;4;-0.020076, 1.000000, 0.000000,-0.000000;;, + 155;4;-0.016986, 1.000000, 0.000000,-0.000000;;, + 156;4;-0.013835, 1.000000, 0.000000,-0.000000;;, + 157;4;-0.010656, 1.000000, 0.000000,-0.000000;;, + 158;4;-0.007497, 1.000000, 0.000000,-0.000000;;, + 159;4;-0.004443, 1.000000, 0.000000,-0.000000;;, + 160;4;-0.001683, 1.000000, 0.000000,-0.000000;;, + 161;4;-0.000000, 1.000000, 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.000000, 1.000000, 0.000000,-0.000000;;, + 169;4;-0.023583, 1.000000, 0.000000,-0.000000;;, + 170;4;-0.071069, 1.000000, 0.000000,-0.000000;;, + 171;4;-0.127005, 1.000000, 0.000000,-0.000000;;, + 172;4;-0.184755, 1.000000, 0.000000,-0.000000;;, + 173;4;-0.240443, 1.000000, 0.000000,-0.000000;;, + 174;4;-0.291290, 1.000000, 0.000000,-0.000000;;, + 175;4;-0.334966, 1.000000, 0.000000,-0.000000;;, + 176;4;-0.369249, 1.000000, 0.000000,-0.000000;;, + 177;4;-0.391810, 1.000000, 0.000000,-0.000000;;, + 178;4;-0.400000, 1.000000, 0.000000,-0.000000;;, + 179;4;-0.391810, 1.000000, 0.000000,-0.000000;;, + 180;4;-0.369249, 1.000000, 0.000000,-0.000000;;, + 181;4;-0.334966, 1.000000, 0.000000,-0.000000;;, + 182;4;-0.291290, 1.000000, 0.000000,-0.000000;;, + 183;4;-0.240443, 1.000000, 0.000000,-0.000000;;, + 184;4;-0.184755, 1.000000, 0.000000,-0.000000;;, + 185;4;-0.127005, 1.000000, 0.000000,-0.000000;;, + 186;4;-0.071069, 1.000000, 0.000000,-0.000000;;, + 187;4;-0.023583, 1.000000, 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.000000, 1.000000, 0.000000,-0.000000;;, + 191;4;-0.000000, 1.000000, 0.000000,-0.000000;;, + 192;4;-0.000000, 1.000000, 0.000000,-0.000000;;, + 193;4;-0.000000, 1.000000, 0.000000,-0.000000;;, + 194;4;-0.000000, 1.000000, 0.000000,-0.000000;;, + 195;4;-0.000000, 1.000000, 0.000000,-0.000000;;, + 196;4;-0.000000, 1.000000, 0.000000,-0.000000;;, + 197;4;-0.000000, 1.000000, 0.000000,-0.000000;;, + 198;4;-0.000000, 1.000000, 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.004000, 1.000000, 0.000000,-0.000000;;, + 202;4;-0.015267, 1.000000, 0.000000,-0.000000;;, + 203;4;-0.029733, 1.000000, 0.000000,-0.000000;;, + 204;4;-0.041000, 1.000000, 0.000000,-0.000000;;, + 205;4;-0.045000, 1.000000, 0.000000,-0.000000;;, + 206;4;-0.041000, 1.000000, 0.000000,-0.000000;;, + 207;4;-0.029733, 1.000000, 0.000000,-0.000000;;, + 208;4;-0.015267, 1.000000, 0.000000,-0.000000;;, + 209;4;-0.004000, 1.000000, 0.000000,-0.000000;;, + 210;4;-0.000000, 1.000000, 0.000000,-0.000000;;, + 211;4;-0.004000, 1.000000, 0.000000,-0.000000;;, + 212;4;-0.015267, 1.000000, 0.000000,-0.000000;;, + 213;4;-0.029733, 1.000000, 0.000000,-0.000000;;, + 214;4;-0.041000, 1.000000, 0.000000,-0.000000;;, + 215;4;-0.045000, 1.000000, 0.000000,-0.000000;;, + 216;4;-0.041000, 1.000000, 0.000000,-0.000000;;, + 217;4;-0.029734, 1.000000, 0.000000,-0.000000;;, + 218;4;-0.015267, 1.000000, 0.000000,-0.000000;;, + 219;4;-0.004000, 1.000000, 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, 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.950000, 1.100000;;, + 1;3; 0.000000, 6.950000, 1.100000;;, + 2;3; 0.000000, 6.950000, 1.100000;;, + 3;3; 0.000000, 6.950000, 1.100000;;, + 4;3; 0.000000, 6.950000, 1.100000;;, + 5;3; 0.000000, 6.950000, 1.100000;;, + 6;3; 0.000000, 6.950000, 1.100000;;, + 7;3; 0.000000, 6.950000, 1.100000;;, + 8;3; 0.000000, 6.949999, 1.100000;;, + 9;3; 0.000000, 6.950000, 1.100000;;, + 10;3; 0.000000, 6.950000, 1.100000;;, + 11;3; 0.000000, 6.950000, 1.100000;;, + 12;3; 0.000000, 6.950000, 1.100000;;, + 13;3; 0.000000, 6.950000, 1.100000;;, + 14;3; 0.000000, 6.950000, 1.100000;;, + 15;3; 0.000000, 6.949999, 1.100000;;, + 16;3; 0.000000, 6.950000, 1.100000;;, + 17;3; 0.000000, 6.950000, 1.100000;;, + 18;3; 0.000000, 6.950000, 1.100000;;, + 19;3; 0.000000, 6.950000, 1.100000;;, + 20;3; 0.000000, 6.950000, 1.100000;;, + 21;3; 0.000000, 6.950000, 1.100000;;, + 22;3; 0.000000, 6.950000, 1.100000;;, + 23;3; 0.000000, 6.950000, 1.100000;;, + 24;3; 0.000000, 6.950000, 1.100000;;, + 25;3; 0.000000, 6.949999, 1.100000;;, + 26;3; 0.000000, 6.950000, 1.100000;;, + 27;3; 0.000000, 6.950000, 1.100000;;, + 28;3; 0.000000, 6.949999, 1.100000;;, + 29;3; 0.000000, 6.950000, 1.100000;;, + 30;3; 0.000000, 6.950000, 1.100000;;, + 31;3; 0.000000, 6.950000, 1.100000;;, + 32;3; 0.000000, 6.949999, 1.100000;;, + 33;3; 0.000000, 6.950000, 1.100000;;, + 34;3; 0.000000, 6.950000, 1.100000;;, + 35;3; 0.000000, 6.950000, 1.100000;;, + 36;3; 0.000000, 6.950000, 1.100000;;, + 37;3; 0.000000, 6.950000, 1.100000;;, + 38;3; 0.000000, 6.950000, 1.100000;;, + 39;3; 0.000000, 6.950000, 1.100000;;, + 40;3; 0.000000, 6.950000, 1.100000;;, + 41;3; 0.000000, 6.950000, 1.100000;;, + 42;3; 0.000000, 6.950000, 1.100000;;, + 43;3; 0.000000, 6.950000, 1.100000;;, + 44;3; 0.000000, 6.950000, 1.100000;;, + 45;3; 0.000000, 6.950000, 1.100000;;, + 46;3; 0.000000, 6.950000, 1.100000;;, + 47;3; 0.000000, 6.950000, 1.100000;;, + 48;3; 0.000000, 6.949999, 1.100000;;, + 49;3; 0.000000, 6.950000, 1.100000;;, + 50;3; 0.000000, 6.950000, 1.100000;;, + 51;3; 0.000000, 6.950000, 1.100000;;, + 52;3; 0.000000, 6.949999, 1.100000;;, + 53;3; 0.000000, 6.950000, 1.100000;;, + 54;3; 0.000000, 6.950000, 1.100000;;, + 55;3; 0.000000, 6.949999, 1.100000;;, + 56;3; 0.000000, 6.950000, 1.100000;;, + 57;3; 0.000000, 6.950000, 1.100000;;, + 58;3; 0.000000, 6.950000, 1.100000;;, + 59;3; 0.000000, 6.950000, 1.100000;;, + 60;3; 0.000000, 6.950000, 1.100000;;, + 61;3; 0.000000, 6.950000, 1.100000;;, + 62;3; 0.000000, 6.949999, 1.100000;;, + 63;3; 0.000000, 6.949999, 1.100000;;, + 64;3; 0.000000, 6.949999, 1.100000;;, + 65;3; 0.000000, 6.950000, 1.100000;;, + 66;3; 0.000000, 6.950000, 1.100000;;, + 67;3; 0.000000, 6.949999, 1.100000;;, + 68;3; 0.000000, 6.950000, 1.100000;;, + 69;3; 0.000000, 6.950000, 1.100000;;, + 70;3; 0.000000, 6.950000, 1.100000;;, + 71;3; 0.000000, 6.950000, 1.100000;;, + 72;3; 0.000000, 6.950000, 1.100000;;, + 73;3; 0.000000, 6.950000, 1.100000;;, + 74;3; 0.000000, 6.950000, 1.100000;;, + 75;3; 0.000000, 6.950000, 1.100000;;, + 76;3; 0.000000, 6.950000, 1.100000;;, + 77;3; 0.000000, 6.950000, 1.100000;;, + 78;3; 0.000000, 6.950000, 1.100000;;, + 79;3; 0.000000, 6.950000, 1.100000;;, + 80;3; 0.000000, 6.950000, 1.100000;;, + 81;3; 0.000000, 6.950000, 1.100000;;, + 82;3; 0.000000, 6.950000, 1.100000;;, + 83;3; 0.000000, 6.950000, 1.100000;;, + 84;3; 0.000000, 6.950000, 1.100000;;, + 85;3; 0.000000, 6.950000, 1.100000;;, + 86;3; 0.000000, 6.950000, 1.100000;;, + 87;3; 0.000000, 6.950000, 1.100000;;, + 88;3; 0.000000, 6.950000, 1.100000;;, + 89;3; 0.000000, 6.950000, 1.100000;;, + 90;3; 0.000000, 6.950000, 1.100000;;, + 91;3; 0.000000, 6.950000, 1.100000;;, + 92;3; 0.000000, 6.950000, 1.100000;;, + 93;3; 0.000000, 6.950000, 1.100000;;, + 94;3; 0.000000, 6.950000, 1.100000;;, + 95;3; 0.000000, 6.949999, 1.100000;;, + 96;3; 0.000000, 6.950000, 1.100000;;, + 97;3; 0.000000, 6.950000, 1.100000;;, + 98;3; 0.000000, 6.950000, 1.100000;;, + 99;3; 0.000000, 6.950000, 1.100000;;, + 100;3; 0.000000, 6.950000, 1.100000;;, + 101;3; 0.000000, 6.950000, 1.100000;;, + 102;3; 0.000000, 6.950000, 1.100000;;, + 103;3; 0.000000, 6.950000, 1.100000;;, + 104;3; 0.000000, 6.950000, 1.100000;;, + 105;3; 0.000000, 6.950000, 1.100000;;, + 106;3; 0.000000, 6.950000, 1.100000;;, + 107;3; 0.000000, 6.950000, 1.100000;;, + 108;3; 0.000000, 6.950000, 1.100000;;, + 109;3; 0.000000, 6.950000, 1.100000;;, + 110;3; 0.000000, 6.950000, 1.100000;;, + 111;3; 0.000000, 6.950000, 1.100000;;, + 112;3; 0.000000, 6.950000, 1.100000;;, + 113;3; 0.000000, 6.950000, 1.100000;;, + 114;3; 0.000000, 6.950000, 1.100000;;, + 115;3; 0.000000, 6.949999, 1.100000;;, + 116;3; 0.000000, 6.950000, 1.100000;;, + 117;3; 0.000000, 6.950000, 1.100000;;, + 118;3; 0.000000, 6.949999, 1.100000;;, + 119;3; 0.000000, 6.950000, 1.100000;;, + 120;3; 0.000000, 6.950000, 1.100000;;, + 121;3; 0.000000, 6.950000, 1.100000;;, + 122;3; 0.000000, 6.950000, 1.100000;;, + 123;3; 0.000000, 6.950000, 1.100000;;, + 124;3; 0.000000, 6.949999, 1.100000;;, + 125;3; 0.000000, 6.950000, 1.100000;;, + 126;3; 0.000000, 6.950000, 1.100000;;, + 127;3; 0.000000, 6.949999, 1.100000;;, + 128;3; 0.000000, 6.950000, 1.100000;;, + 129;3; 0.000000, 6.950000, 1.100000;;, + 130;3; 0.000000, 6.950000, 1.100000;;, + 131;3; 0.000000, 6.950000, 1.100000;;, + 132;3; 0.000000, 6.950000, 1.100000;;, + 133;3; 0.000000, 6.950000, 1.100000;;, + 134;3; 0.000000, 6.950000, 1.100000;;, + 135;3; 0.000000, 6.950000, 1.100000;;, + 136;3; 0.000000, 6.950000, 1.100000;;, + 137;3; 0.000000, 6.950000, 1.100000;;, + 138;3; 0.000000, 6.950000, 1.100000;;, + 139;3; 0.000000, 6.950000, 1.100000;;, + 140;3; 0.000000, 6.950000, 1.100000;;, + 141;3; 0.000000, 6.950000, 1.100000;;, + 142;3; 0.000000, 6.950000, 1.100000;;, + 143;3; 0.000000, 6.949999, 1.100000;;, + 144;3; 0.000000, 6.950000, 1.100000;;, + 145;3; 0.000000, 6.950000, 1.100000;;, + 146;3; 0.000000, 6.950000, 1.100000;;, + 147;3; 0.000000, 6.950000, 1.100000;;, + 148;3; 0.000000, 6.950000, 1.100000;;, + 149;3; 0.000000, 6.950000, 1.100000;;, + 150;3; 0.000000, 6.950000, 1.100000;;, + 151;3; 0.000000, 6.950000, 1.100000;;, + 152;3; 0.000000, 6.950000, 1.100000;;, + 153;3; 0.000000, 6.950000, 1.100000;;, + 154;3; 0.000000, 6.950000, 1.100000;;, + 155;3; 0.000000, 6.950000, 1.100000;;, + 156;3; 0.000000, 6.950000, 1.100000;;, + 157;3; 0.000000, 6.950000, 1.100000;;, + 158;3; 0.000000, 6.950000, 1.100000;;, + 159;3; 0.000000, 6.950000, 1.100000;;, + 160;3; 0.000000, 6.950000, 1.100000;;, + 161;3; 0.000000, 6.950000, 1.100000;;, + 162;3; 0.000000, 6.950000, 1.100000;;, + 163;3; 0.000000, 6.950000, 1.100000;;, + 164;3; 0.000000, 6.950000, 1.100000;;, + 165;3; 0.000000, 6.950000, 1.100000;;, + 166;3; 0.000000, 6.950000, 1.100000;;, + 167;3; 0.000000, 6.950000, 1.100000;;, + 168;3; 0.000000, 6.950000, 1.100000;;, + 169;3; 0.000000, 6.950000, 1.100000;;, + 170;3; 0.000000, 6.950000, 1.100000;;, + 171;3; 0.000000, 6.950000, 1.100000;;, + 172;3; 0.000000, 6.950000, 1.100000;;, + 173;3; 0.000000, 6.950000, 1.100000;;, + 174;3; 0.000000, 6.950000, 1.100000;;, + 175;3; 0.000000, 6.950000, 1.100000;;, + 176;3; 0.000000, 6.950000, 1.100000;;, + 177;3; 0.000000, 6.950000, 1.100000;;, + 178;3; 0.000000, 6.950000, 1.100000;;, + 179;3; 0.000000, 6.950000, 1.100000;;, + 180;3; 0.000000, 6.950000, 1.100000;;, + 181;3; 0.000000, 6.950000, 1.100000;;, + 182;3; 0.000000, 6.950000, 1.100000;;, + 183;3; 0.000000, 6.950000, 1.100000;;, + 184;3; 0.000000, 6.950000, 1.100000;;, + 185;3; 0.000000, 6.950000, 1.100000;;, + 186;3; 0.000000, 6.950000, 1.100000;;, + 187;3; 0.000000, 6.950000, 1.100000;;, + 188;3; 0.000000, 6.950000, 1.100000;;, + 189;3; 0.000000, 6.950000, 1.100000;;, + 190;3; 0.000000, 6.950000, 1.100000;;, + 191;3; 0.000000, 6.950000, 1.100000;;, + 192;3; 0.000000, 6.950000, 1.100000;;, + 193;3; 0.000000, 6.950000, 1.100000;;, + 194;3; 0.000000, 6.950000, 1.100000;;, + 195;3; 0.000000, 6.950000, 1.100000;;, + 196;3; 0.000000, 6.950000, 1.100000;;, + 197;3; 0.000000, 6.950000, 1.100000;;, + 198;3; 0.000000, 6.950000, 1.100000;;, + 199;3; 0.000000, 6.950000, 1.100000;;, + 200;3; 0.000000, 6.950000, 1.100000;;, + 201;3; 0.000000, 6.950000, 1.100000;;, + 202;3; 0.000000, 6.949999, 1.100000;;, + 203;3; 0.000000, 6.949999, 1.100000;;, + 204;3; 0.000000, 6.950000, 1.100000;;, + 205;3; 0.000000, 6.950000, 1.100000;;, + 206;3; 0.000000, 6.949999, 1.100000;;, + 207;3; 0.000000, 6.950000, 1.100000;;, + 208;3; 0.000000, 6.950000, 1.100000;;, + 209;3; 0.000000, 6.950000, 1.100000;;, + 210;3; 0.000000, 6.950000, 1.100000;;, + 211;3; 0.000000, 6.950000, 1.100000;;, + 212;3; 0.000000, 6.950000, 1.100000;;, + 213;3; 0.000000, 6.950000, 1.100000;;, + 214;3; 0.000000, 6.949999, 1.100000;;, + 215;3; 0.000000, 6.950000, 1.100000;;, + 216;3; 0.000000, 6.950000, 1.100000;;, + 217;3; 0.000000, 6.950000, 1.100000;;, + 218;3; 0.000000, 6.950000, 1.100000;;, + 219;3; 0.000000, 6.950000, 1.100000;;, + 220;3; 0.000000, 6.950000, 1.100000;;; + } + } +} // 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/3d_armor/3d_armor/textures/3d_armor_boots_bronze.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_bronze.png new file mode 100644 index 00000000..1b094212 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_bronze.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_bronze_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_bronze_preview.png new file mode 100644 index 00000000..eba88795 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_bronze_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_diamond.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_diamond.png new file mode 100644 index 00000000..ccd696c9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_diamond.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_diamond_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_diamond_preview.png new file mode 100644 index 00000000..bd9fc7ca Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_diamond_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_gold.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_gold.png new file mode 100644 index 00000000..68eef7d9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_gold.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_gold_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_gold_preview.png new file mode 100644 index 00000000..6870fb53 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_gold_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mithril.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mithril.png new file mode 100644 index 00000000..fa0b5044 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mithril.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mithril_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mithril_preview.png new file mode 100644 index 00000000..f7ded16f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mithril_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_steel.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_steel.png new file mode 100644 index 00000000..51752c27 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_steel.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_steel_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_steel_preview.png new file mode 100644 index 00000000..a8a4d6a4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_steel_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_wood.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_wood.png new file mode 100644 index 00000000..1fbe6168 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_wood.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_wood_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_wood_preview.png new file mode 100644 index 00000000..357e72bb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_wood_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_bronze.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_bronze.png new file mode 100644 index 00000000..b4fbf2d0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_bronze.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_bronze_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_bronze_preview.png new file mode 100644 index 00000000..08ed599a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_bronze_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_diamond.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_diamond.png new file mode 100644 index 00000000..ce959c54 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_diamond.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_diamond_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_diamond_preview.png new file mode 100644 index 00000000..6a78608e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_diamond_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_gold.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_gold.png new file mode 100644 index 00000000..bcfe52da Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_gold.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_gold_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_gold_preview.png new file mode 100644 index 00000000..5ddd5d9b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_gold_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mithril.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mithril.png new file mode 100644 index 00000000..cedf0d95 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mithril.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mithril_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mithril_preview.png new file mode 100644 index 00000000..ac83eec1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mithril_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_steel.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_steel.png new file mode 100644 index 00000000..8d7d5aa7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_steel.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_steel_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_steel_preview.png new file mode 100644 index 00000000..a33c2b49 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_steel_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_wood.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_wood.png new file mode 100644 index 00000000..2e383140 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_wood.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_wood_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_wood_preview.png new file mode 100644 index 00000000..218a5aeb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_wood_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_bronze.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_bronze.png new file mode 100644 index 00000000..04a32f74 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_bronze.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_bronze_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_bronze_preview.png new file mode 100644 index 00000000..f79b966d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_bronze_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_diamond.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_diamond.png new file mode 100644 index 00000000..de9ae22b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_diamond.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_diamond_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_diamond_preview.png new file mode 100644 index 00000000..537bac5b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_diamond_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_gold.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_gold.png new file mode 100644 index 00000000..ed00cfe7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_gold.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_gold_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_gold_preview.png new file mode 100644 index 00000000..73a5102c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_gold_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mithril.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mithril.png new file mode 100644 index 00000000..f7c6cae6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mithril.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mithril_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mithril_preview.png new file mode 100644 index 00000000..713a9fea Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mithril_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_steel.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_steel.png new file mode 100644 index 00000000..f092ead7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_steel.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_steel_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_steel_preview.png new file mode 100644 index 00000000..4a91205d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_steel_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_wood.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_wood.png new file mode 100644 index 00000000..9faac93c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_wood.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_wood_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_wood_preview.png new file mode 100644 index 00000000..57303721 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_wood_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_bronze.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_bronze.png new file mode 100644 index 00000000..795903ce Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_bronze.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_diamond.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_diamond.png new file mode 100644 index 00000000..87e3443e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_diamond.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_gold.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_gold.png new file mode 100644 index 00000000..f60ded1f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_gold.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mithril.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mithril.png new file mode 100644 index 00000000..f15bbe65 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mithril.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_steel.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_steel.png new file mode 100644 index 00000000..2d13249c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_steel.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_wood.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_wood.png new file mode 100644 index 00000000..6e185013 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_wood.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_bronze.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_bronze.png new file mode 100644 index 00000000..793f8755 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_bronze.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_diamond.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_diamond.png new file mode 100644 index 00000000..cfb71e18 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_diamond.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_gold.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_gold.png new file mode 100644 index 00000000..adce8a31 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_gold.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mithril.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mithril.png new file mode 100644 index 00000000..367e4424 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mithril.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_steel.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_steel.png new file mode 100644 index 00000000..e5d16ec3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_steel.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_wood.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_wood.png new file mode 100644 index 00000000..ae7defbd Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_wood.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_bronze.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_bronze.png new file mode 100644 index 00000000..20e5b564 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_bronze.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_diamond.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_diamond.png new file mode 100644 index 00000000..d05d1de7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_diamond.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_gold.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_gold.png new file mode 100644 index 00000000..5a225c83 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_gold.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mithril.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mithril.png new file mode 100644 index 00000000..edb8fef8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mithril.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_steel.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_steel.png new file mode 100644 index 00000000..a420b239 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_steel.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_wood.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_wood.png new file mode 100644 index 00000000..73ec833e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_wood.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_bronze.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_bronze.png new file mode 100644 index 00000000..89305382 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_bronze.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_diamond.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_diamond.png new file mode 100644 index 00000000..88d7d332 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_diamond.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_gold.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_gold.png new file mode 100644 index 00000000..29a7da94 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_gold.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mithril.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mithril.png new file mode 100644 index 00000000..6635f8ac Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mithril.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_steel.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_steel.png new file mode 100644 index 00000000..95eb1566 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_steel.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_wood.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_wood.png new file mode 100644 index 00000000..f0082bb1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_wood.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_bronze.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_bronze.png new file mode 100644 index 00000000..1adabde5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_bronze.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_bronze_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_bronze_preview.png new file mode 100644 index 00000000..e755a012 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_bronze_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_diamond.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_diamond.png new file mode 100644 index 00000000..e4069897 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_diamond.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_diamond_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_diamond_preview.png new file mode 100644 index 00000000..d91b31b0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_diamond_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_gold.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_gold.png new file mode 100644 index 00000000..3ef2693c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_gold.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_gold_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_gold_preview.png new file mode 100644 index 00000000..6d2fe4c4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_gold_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mithril.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mithril.png new file mode 100644 index 00000000..96fbf358 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mithril.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mithril_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mithril_preview.png new file mode 100644 index 00000000..6b936f60 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mithril_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_steel.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_steel.png new file mode 100644 index 00000000..717d9c39 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_steel.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_steel_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_steel_preview.png new file mode 100644 index 00000000..d0565d62 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_steel_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_wood.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_wood.png new file mode 100644 index 00000000..2c5b5a6b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_wood.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_wood_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_wood_preview.png new file mode 100644 index 00000000..792ae353 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_wood_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_trans.png b/mods/3d_armor/3d_armor/textures/3d_armor_trans.png new file mode 100644 index 00000000..e215ca26 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_trans.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ui_form.png b/mods/3d_armor/3d_armor/textures/3d_armor_ui_form.png new file mode 100644 index 00000000..fe20f05d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ui_form.png differ diff --git a/mods/3d_armor/3d_armor/textures/character_preview.png b/mods/3d_armor/3d_armor/textures/character_preview.png new file mode 100644 index 00000000..76f6bfd0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/character_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/inventory_plus_armor.png b/mods/3d_armor/3d_armor/textures/inventory_plus_armor.png new file mode 100644 index 00000000..11fb5087 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/inventory_plus_armor.png differ diff --git a/mods/3d_armor/LICENSE.md b/mods/3d_armor/LICENSE.md new file mode 100644 index 00000000..d383270a --- /dev/null +++ b/mods/3d_armor/LICENSE.md @@ -0,0 +1,11 @@ +3D Armor - Visible Player Armor +=============================== + +Default Item Textures (C) Cisoun - WTFPL + +Armor Textures: Copyright (C) 2013 Ryan Jones - CC-BY-SA + +Source Code: Copyright (C) 2013 Stuart Jones - LGPL + +Special credit to Jordach and MirceaKitsune for providing the default 3d character model. + diff --git a/mods/3d_armor/README.md b/mods/3d_armor/README.md new file mode 100644 index 00000000..2041ec63 --- /dev/null +++ b/mods/3d_armor/README.md @@ -0,0 +1,37 @@ +Modpack - 3d Armor [0.4.1] +========================== + +[mod] Visible Player Armor [3d_armor] +------------------------------------- + +depends: default + +recommends: inventory_plus or unified_inventory (use only one) + +Adds craftable armor that is visible to other players. Each armor item worn contributes to +a player's armor group level making them less vulnerable to weapons. + +Armor takes damage when a player is hurt, however, many armor items offer a 'stackable' +percentage chance of restoring the lost health points. Overall armor level is boosted by 10% +when wearing a full matching set (helmet, chestplate, leggings and boots of the same material) + +Compatible with player skins [skins] by Zeg9 and Player Textures [player_textures] by PilzAdam. + +Armor can be configured by adding a file called armor.conf in 3d_armor mod or world directory. +see armor.conf.example for all available options. + +[mod] Visible Wielded Items [wieldview] +--------------------------------------- + +depends: 3d_armor + +Makes hand wielded items visible to other players. + +[mod] Shields [shields] +------------------------------------- + +depends: 3d_armor + +Originally a part of 3d_armor, shields have been re-included as an optional extra. +If you do not want shields then simply remove the shields folder from the modpack. + diff --git a/mods/3d_armor/modpack.txt b/mods/3d_armor/modpack.txt new file mode 100644 index 00000000..e69de29b diff --git a/mods/3d_armor/shields/README.txt b/mods/3d_armor/shields/README.txt new file mode 100644 index 00000000..80988c17 --- /dev/null +++ b/mods/3d_armor/shields/README.txt @@ -0,0 +1,6 @@ +A 3d character model re-texturing api used as the framework for this modpack. + +depends: 3d_armor + +Originally a part of 3d_armor, shields have been re-included as an optional extra. +If you do not what shields then simply remove the shields folder from the modpack. diff --git a/mods/3d_armor/shields/crafting_guide.txt b/mods/3d_armor/shields/crafting_guide.txt new file mode 100644 index 00000000..6426f685 --- /dev/null +++ b/mods/3d_armor/shields/crafting_guide.txt @@ -0,0 +1,16 @@ +Shields -- Crafting Guide +-------------------------- + ++---+---+---+ +| X | X | X | ++---+---+---+ +| X | X | X | ++---+---+---+ +| | X | | ++---+---+---+ + +[shields:shield_wood] X = [default:wood] +[shields:shield_steel] X = [default:steel_ingot] +[shields:shield_bronze] X = [default:bronze_ingot] +[shields:shield_diamond] X = [default:diamond] +[shields:shield_gold] X = [default:gold_ingot] diff --git a/mods/3d_armor/shields/depends.txt b/mods/3d_armor/shields/depends.txt new file mode 100644 index 00000000..585cc7aa --- /dev/null +++ b/mods/3d_armor/shields/depends.txt @@ -0,0 +1,2 @@ +default +3d_armor diff --git a/mods/3d_armor/shields/init.lua b/mods/3d_armor/shields/init.lua new file mode 100644 index 00000000..580f9ee3 --- /dev/null +++ b/mods/3d_armor/shields/init.lua @@ -0,0 +1,76 @@ +local use_moreores = minetest.get_modpath("moreores") + +-- Regisiter Shields + +minetest.register_tool("shields:shield_wood", { + description = "Wooden Shield", + inventory_image = "shields_inv_shield_wood.png", + groups = {armor_shield=5, armor_heal=0, armor_use=2000}, + wear = 0, +}) + +minetest.register_tool("shields:shield_steel", { + description = "Steel Shield", + inventory_image = "shields_inv_shield_steel.png", + groups = {armor_shield=8, armor_heal=0, armor_use=500}, + wear = 0, +}) + +minetest.register_tool("shields:shield_bronze", { + description = "Bronze Shield", + inventory_image = "shields_inv_shield_bronze.png", + groups = {armor_shield=10, armor_heal=6, armor_use=250}, + wear = 0, +}) + +minetest.register_tool("shields:shield_diamond", { + description = "Diamond Shield", + inventory_image = "shields_inv_shield_diamond.png", + groups = {armor_shield=14, armor_heal=12, armor_use=100}, + wear = 0, +}) + +minetest.register_tool("shields:shield_gold", { + description = "Gold Shield", + inventory_image = "shields_inv_shield_gold.png", + groups = {armor_shield=12, armor_heal=6, armor_use=200}, + wear = 0, +}) + +if use_moreores then + minetest.register_tool("shields:shield_mithril", { + description = "Mithril Shield", + inventory_image = "shields_inv_shield_mithril.png", + groups = {armor_shield=15, armor_heal=12, armor_use=50}, + wear = 0, + }) +end + +local craft_ingreds = { + wood = "default:wood", + steel = "default:steel_ingot", + bronze = "default:bronze_ingot", + diamond = "default:diamond", + gold = "default:gold_ingot", +} + +if use_moreores then + craft_ingreds.mithril = "moreores:mithril_ingot" +end + +for k, v in pairs(craft_ingreds) do + minetest.register_craft({ + output = "shields:shield_"..k, + recipe = { + {v, v, v}, + {v, v, v}, + {"", v, ""}, + }, + }) +end + +minetest.after(0, function() + table.insert(armor.elements, "shield") +end) + + diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_bronze.png b/mods/3d_armor/shields/textures/shields_inv_shield_bronze.png new file mode 100644 index 00000000..25f67698 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_bronze.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_diamond.png b/mods/3d_armor/shields/textures/shields_inv_shield_diamond.png new file mode 100644 index 00000000..b1145871 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_diamond.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_gold.png b/mods/3d_armor/shields/textures/shields_inv_shield_gold.png new file mode 100644 index 00000000..56ef3517 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_gold.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_mithril.png b/mods/3d_armor/shields/textures/shields_inv_shield_mithril.png new file mode 100644 index 00000000..7c1d7d32 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_mithril.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_steel.png b/mods/3d_armor/shields/textures/shields_inv_shield_steel.png new file mode 100644 index 00000000..8eaee8f1 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_steel.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_wood.png b/mods/3d_armor/shields/textures/shields_inv_shield_wood.png new file mode 100644 index 00000000..3e3c14a2 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_wood.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_bronze.png b/mods/3d_armor/shields/textures/shields_shield_bronze.png new file mode 100644 index 00000000..62297a0d Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_bronze.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_bronze_preview.png b/mods/3d_armor/shields/textures/shields_shield_bronze_preview.png new file mode 100644 index 00000000..f0d13262 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_bronze_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_diamond.png b/mods/3d_armor/shields/textures/shields_shield_diamond.png new file mode 100644 index 00000000..3f373002 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_diamond.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_diamond_preview.png b/mods/3d_armor/shields/textures/shields_shield_diamond_preview.png new file mode 100644 index 00000000..d67f4844 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_diamond_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_gold.png b/mods/3d_armor/shields/textures/shields_shield_gold.png new file mode 100644 index 00000000..1bea4761 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_gold.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_gold_preview.png b/mods/3d_armor/shields/textures/shields_shield_gold_preview.png new file mode 100644 index 00000000..10e76d9f Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_gold_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mithril.png b/mods/3d_armor/shields/textures/shields_shield_mithril.png new file mode 100644 index 00000000..13666d19 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mithril.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mithril_preview.png b/mods/3d_armor/shields/textures/shields_shield_mithril_preview.png new file mode 100644 index 00000000..d63df6d9 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mithril_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_steel.png b/mods/3d_armor/shields/textures/shields_shield_steel.png new file mode 100644 index 00000000..5d3ef063 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_steel.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_steel_preview.png b/mods/3d_armor/shields/textures/shields_shield_steel_preview.png new file mode 100644 index 00000000..fcd2b648 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_steel_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_wood.png b/mods/3d_armor/shields/textures/shields_shield_wood.png new file mode 100644 index 00000000..69c9e3ab Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_wood.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_wood_preview.png b/mods/3d_armor/shields/textures/shields_shield_wood_preview.png new file mode 100644 index 00000000..d8484d98 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_wood_preview.png differ diff --git a/mods/3d_armor/wieldview/README.txt b/mods/3d_armor/wieldview/README.txt new file mode 100644 index 00000000..cffae468 --- /dev/null +++ b/mods/3d_armor/wieldview/README.txt @@ -0,0 +1,15 @@ +[mod] visible wielded items [wieldview] +======================================= + +depends: default, 3d_armor + +Makes hand wielded items visible to other players. + +default settings: [minetest.conf] + +# Set number of seconds between visible wielded item updates. +wieldview_update_time = 2 + +# Show nodes as tiles, disabled by default +wieldview_node_tiles = false + diff --git a/mods/3d_armor/wieldview/depends.txt b/mods/3d_armor/wieldview/depends.txt new file mode 100644 index 00000000..585cc7aa --- /dev/null +++ b/mods/3d_armor/wieldview/depends.txt @@ -0,0 +1,2 @@ +default +3d_armor diff --git a/mods/3d_armor/wieldview/init.lua b/mods/3d_armor/wieldview/init.lua new file mode 100644 index 00000000..dd86ea95 --- /dev/null +++ b/mods/3d_armor/wieldview/init.lua @@ -0,0 +1,75 @@ +local time = 0 +local update_time = tonumber(minetest.setting_get("wieldview_update_time")) +if not update_time then + update_time = 2 + minetest.setting_set("wieldview_update_time", tostring(update_time)) +end +local node_tiles = minetest.setting_getbool("wieldview_node_tiles") +if not node_tiles then + node_tiles = false + minetest.setting_set("wieldview_node_tiles", "false") +end + +wieldview = { + wielded_item = {}, + transform = {}, +} + +dofile(minetest.get_modpath(minetest.get_current_modname()).."/transform.lua") + +wieldview.get_item_texture = function(self, item) + local texture = "3d_armor_trans.png" + if item ~= "" then + if minetest.registered_items[item] then + local inventory_image = minetest.registered_items[item].inventory_image + if inventory_image and inventory_image ~= "" then + texture = inventory_image + elseif node_tiles == true and minetest.registered_items[item].tiles then + texture = minetest.registered_items[item].tiles[1] + end + end + if wieldview.transform[item] then + texture = texture.."^[transform"..wieldview.transform[item] + end + end + return texture +end + +wieldview.update_wielded_item = function(self, player) + if not player then + return + end + local name = player:get_player_name() + local stack = player:get_wielded_item() + local item = stack:get_name() + if not item then + return + end + if self.wielded_item[name] then + if self.wielded_item[name] == item then + return + end + armor.textures[name].wielditem = self:get_item_texture(item) + armor:update_player_visuals(player) + end + self.wielded_item[name] = item +end + +minetest.register_on_joinplayer(function(player) + local name = player:get_player_name() + wieldview.wielded_item[name] = "" + minetest.after(0, function(player) + wieldview:update_wielded_item(player) + end, player) +end) + +minetest.register_globalstep(function(dtime) + time = time + dtime + if time > update_time then + for _,player in ipairs(minetest.get_connected_players()) do + wieldview:update_wielded_item(player) + end + time = 0 + end +end) + diff --git a/mods/3d_armor/wieldview/transform.lua b/mods/3d_armor/wieldview/transform.lua new file mode 100644 index 00000000..4d5133e8 --- /dev/null +++ b/mods/3d_armor/wieldview/transform.lua @@ -0,0 +1,24 @@ +-- Wielded Item Transformations - http://dev.minetest.net/texture + +wieldview.transform = { + ["default:torch"]="R270", + ["default:sapling"]="R270", + ["flowers:dandelion_white"]="R270", + ["flowers:dandelion_yellow"]="R270", + ["flowers:geranium"]="R270", + ["flowers:rose"]="R270", + ["flowers:tulip"]="R270", + ["flowers:viola"]="R270", + ["bucket:bucket_empty"]="R270", + ["bucket:bucket_water"]="R270", + ["bucket:bucket_lava"]="R270", + ["screwdriver:screwdriver"]="R270", + ["screwdriver:screwdriver1"]="R270", + ["screwdriver:screwdriver2"]="R270", + ["screwdriver:screwdriver3"]="R270", + ["screwdriver:screwdriver4"]="R270", + ["vessels:glass_bottle"]="R270", + ["vessels:drinking_glass"]="R270", + ["vessels:steel_bottle"]="R270", +} + diff --git a/mods/WorldEdit/Chat Commands.md b/mods/WorldEdit/Chat Commands.md new file mode 100755 index 00000000..07bcfd61 --- /dev/null +++ b/mods/WorldEdit/Chat Commands.md @@ -0,0 +1,376 @@ +Chat Commands +------------- +For more information, see the [README](README.md). + +Many commands also have shorter names that can be typed faster. For example, if we wanted to use `//move ? 5`, we could instead type `//m ? 5`. All shortened names are listed below: + +| Short Name | Original Name | +|:-----------|:-------------------| +| `//i` | `//inspect` | +| `//rst` | `//reset` | +| `//mk` | `//mark` | +| `//umk` | `//unmark` | +| `//1` | `//pos1` | +| `//2` | `//pos2` | +| `//fp` | `//fixedpos` | +| `//v` | `//volume` | +| `//s` | `//set` | +| `//r` | `//replace` | +| `//ri` | `//replaceinverse` | +| `//hspr` | `//hollowsphere` | +| `//spr` | `//sphere` | +| `//hdo` | `//hollowdome` | +| `//do` | `//dome` | +| `//hcyl` | `//hollowcylinder` | + +### `//about` + +Get information about the mod. + + //about + +### `//inspect on/off/1/0/true/false/yes/no/enable/disable/` + +Enable or disable node inspection. + + //inspect on + //inspect off + //inspect 1 + //inspect 0 + //inspect true + //inspect false + //inspect yes + //inspect no + //inspect enable + //inspect disable + //inspect + +### `//reset` + +Reset the region so that it is empty. + + //reset + +### `//mark` + +Show markers at the region positions. + + //mark + +### `//unmark` + +Hide markers if currently shown. + + //unmark + +### `//pos1` + +Set WorldEdit region position 1 to the player's location. + + //pos1 + +### `//pos2` + +Set WorldEdit region position 2 to the player's location. + + //pos2 + +### `//p set/set1/set2/get` + +Set WorldEdit region, WorldEdit position 1, or WorldEdit position 2 by punching nodes, or display the current WorldEdit region. + + //p set + //p set1 + //p set2 + //p get + +### `//fixedpos set1 x y z` + +Set a WorldEdit region position to the position at (``, ``, ``). + + //fixedpos set1 0 0 0 + //fixedpos set1 -30 5 28 + //fixedpos set2 1004 -200 432 + +### `//volume` + +Display the volume of the current WorldEdit region. + + //volume + +### `//set ` + +Set the current WorldEdit region to ``. + + //set air + //set cactus + //set Blue Lightstone + //set dirt with grass + +### `//mix ...` + +Fill the current WorldEdit region with a random mix of ``, `...`. + + //mix air + //mix cactus stone glass sandstone + //mix Bronze + //mix default:cobble air + +### `//replace ` + +Replace all instances of `` with `` in the current WorldEdit region. + + //replace Cobblestone air + //replace lightstone_blue glass + //replace dirt Bronze Block + //replace mesecons:wire_00000000_off flowers:flower_tulip + +### `//replaceinverse ` + +Replace all nodes other than `` with `` in the current WorldEdit region. + + //replaceinverse Cobblestone air + //replaceinverse flowers:flower_waterlily glass + //replaceinverse dirt Bronze Block + //replaceinverse mesecons:wire_00000000_off flowers:flower_tulip + +### `//hollowsphere ` + +Add hollow sphere centered at WorldEdit position 1 with radius ``, composed of ``. + + //hollowsphere 5 Diamond Block + //hollowsphere 12 glass + //hollowsphere 17 mesecons:wire_00000000_off + +### `//sphere ` + +Add sphere centered at WorldEdit position 1 with radius ``, composed of ``. + + //sphere 5 Diamond Block + //sphere 12 glass + //sphere 17 mesecons:wire_00000000_off + +### `//hollowdome ` + +Add hollow dome centered at WorldEdit position 1 with radius ``, composed of ``. + + //hollowdome 5 Diamond Block + //hollowdome -12 glass + //hollowdome 17 mesecons:wire_00000000_off + +### `//dome ` + +Add dome centered at WorldEdit position 1 with radius ``, composed of ``. + + //dome 5 Diamond Block + //dome -12 glass + //dome 17 mesecons:wire_00000000_off + +### `//hollowcylinder x/y/z/? ` + +Add hollow cylinder at WorldEdit position 1 along the x/y/z/? axis with length `` and radius ``, composed of ``. + + //hollowcylinder x +5 8 Bronze Block + //hollowcylinder y 28 10 glass + //hollowcylinder z -12 3 mesecons:wire_00000000_off + //hollowcylinder ? 2 4 default:stone + +### `//cylinder x/y/z/? ` + +Add cylinder at WorldEdit position 1 along the x/y/z/? axis with length `` and radius ``, composed of ``. + + //cylinder x +5 8 Bronze Block + //cylinder y 28 10 glass + //cylinder z -12 3 mesecons:wire_00000000_off + //cylinder ? 2 4 default:stone + +### `//pyramid x/y/z? ` + +Add pyramid centered at WorldEdit position 1 along the x/y/z/? axis with height ``, composed of ``. + + //pyramid x 8 Diamond Block + //pyramid y -5 glass + //pyramid z 2 mesecons:wire_00000000_off + //pyramid ? 12 mesecons:wire_00000000_off + +### `//spiral ` + +Add spiral centered at WorldEdit position 1 with side length ``, height ``, space between walls ``, composed of ``. + + //spiral 20 5 3 Diamond Block + //spiral 5 2 1 glass + //spiral 7 1 5 mesecons:wire_00000000_off + +### `//copy x/y/z/? ` + +Copy the current WorldEdit region along the x/y/z/? axis by `` nodes. + + //copy x 15 + //copy y -7 + //copy z +4 + //copy ? 8 + +### `//move x/y/z/? ` + +Move the current WorldEdit positions and region along the x/y/z/? axis by `` nodes. + + //move x 15 + //move y -7 + //move z +4 + //move ? -1 + +### `//stack x/y/z/? ` + +Stack the current WorldEdit region along the x/y/z/? axis `` times. + + //stack x 3 + //stack y -1 + //stack z +5 + //stack ? 12 + +### `//stack2 ` + +Stack the current WorldEdit region `` times by offset ``, ``, ``. + + //stack2 5 3 8 2 + //stack2 1 -1 -1 -1 + +### `//scale ` + +Scale the current WorldEdit positions and region by a factor of positive integer `` with position 1 as the origin. + + //scale 2 + //scale 1 + //scale 10 + +### `//transpose x/y/z/? x/y/z/?` + +Transpose the current WorldEdit positions and region along the x/y/z/? and x/y/z/? axes. + + //transpose x y + //transpose x z + //transpose y z + //transpose ? y + +### `//flip x/y/z/?` + +Flip the current WorldEdit region along the x/y/z/? axis. + + //flip x + //flip y + //flip z + //flip ? + +### `//rotate x/y/z/? ` + +Rotate the current WorldEdit positions and region along the x/y/z/? axis by angle `` (90 degree increment). + + //rotate x 90 + //rotate y 180 + //rotate z 270 + //rotate ? -90 + +### `//orient ` + +Rotate oriented nodes in the current WorldEdit region around the Y axis by angle `` (90 degree increment) + + //orient 90 + //orient 180 + //orient 270 + //orient -90 + +### `//fixlight` + +Fixes the lighting in the current WorldEdit region. + + //fixlight + +### `//hide` + +Hide all nodes in the current WorldEdit region non-destructively. + + //hide + +### `//suppress ` + +Suppress all in the current WorldEdit region non-destructively. + + //suppress Diamond Block + //suppress glass + //suppress mesecons:wire_00000000_off + +### `//highlight ` + +Highlight in the current WorldEdit region by hiding everything else non-destructively. + + //highlight Diamond Block + //highlight glass + //highlight mesecons:wire_00000000_off + +### `//restore` + +Restores nodes hidden with WorldEdit in the current WorldEdit region. + + //restore + +### `//save ` + +Save the current WorldEdit region to "(world folder)/schems/``.we". + + //save some random filename + //save huge_base + +### `//allocate ` + +Set the region defined by nodes from "(world folder)/schems/``.we" as the current WorldEdit region. + + //allocate some random filename + //allocate huge_base + +### `//load ` + +Load nodes from "(world folder)/schems/``.we" with position 1 of the current WorldEdit region as the origin. + + //load some random filename + //load huge_base + +### `//lua ` + +Executes `` as a Lua chunk in the global namespace. + + //lua worldedit.pos1["singleplayer"] = {x=0, y=0, z=0} + //lua worldedit.rotate(worldedit.pos1["singleplayer"], worldedit.pos2["singleplayer"], "y", 90) + +### `//luatransform ` + +Executes `` as a Lua chunk in the global namespace with the variable pos available, for each node in the current WorldEdit region. + + //luatransform minetest.add_node(pos, {name="default:stone"}) + //luatransform if minetest.get_node(pos).name == "air" then minetest.add_node(pos, {name="default:water_source"}) + +### `//mtschemcreate ` + +Save the current WorldEdit region using the Minetest Schematic format to "(world folder)/schems/``.mts". + + //mtschemcreate some random filename + //mtschemcreate huge_base + +### `//mtschemplace ` + +Load nodes from "(world folder)/schems/``.mts" with position 1 of the current WorldEdit region as the origin. + + //mtschemplace some random filename + //mtschemplace huge_base + +### `//mtschemprob start/finish/get` + +After using `//mtschemprob start` all nodes punched will bring up a text field where a probablity can be entered. +This mode can be left with `//mtschemprob finish`. `//mtschemprob get` will display the probabilities saved for the nodes. + + //mtschemprob get + +### `//clearobjects` + +Clears all objects within the WorldEdit region. + + //clearobjects diff --git a/mods/WorldEdit/LICENSE.txt b/mods/WorldEdit/LICENSE.txt new file mode 100755 index 00000000..dba13ed2 --- /dev/null +++ b/mods/WorldEdit/LICENSE.txt @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 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 Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are 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. + + 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. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + 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 Affero 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. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + 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 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 work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero 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 Affero 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 Affero 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 Affero 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. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero 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 Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + 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 AGPL, see +. diff --git a/mods/WorldEdit/README.md b/mods/WorldEdit/README.md new file mode 100755 index 00000000..224059e8 --- /dev/null +++ b/mods/WorldEdit/README.md @@ -0,0 +1,156 @@ +WorldEdit v1.0 for Minetest 0.4.8+ +================================== +The ultimate in-game world editing tool for [Minetest](http://minetest.net/)! Tons of functionality to help with building, fixing, and more. + +For more information, see the [forum topic](https://forum.minetest.net/viewtopic.php?id=572) at the Minetest forums. + +# New users should see the [tutorial](Tutorial.md). + +![Screenshot](http://i.imgur.com/lwhodrv.png) + +Installing +---------- + +If you are using Windows, consider installing this mod using [MODSTER](https://forum.minetest.net/viewtopic.php?id=6497), a super simple mod installer that will take care of everything for you. If you are using MODSTER, skip directly to step 6 in the instructions below. + +There is a nice installation guide over at the [Minetest Wiki](http://wiki.minetest.com/wiki/Installing_mods). Here is a short summary: + +1. Download the mod from the [official releases page](https://github.com/Uberi/Minetest-WorldEdit/releases). The download links are labelled "Source Code". If you are using Windows, you will probably want to download the ZIP version. +2. You should have a file named `SOMETHING.zip` or `SOMETHING.tar.gz`. +3. Extract this file using your archiver of choice. If you are using Windows, open the ZIP file and move the folder inside to a safe place outside of the ZIP file. +4. Make sure that you now have a folder with a file named README.md inside it. If you just have another folder inside this folder, use this nested folder instead. +5. Move this folder into the `MINETEST_FOLDER/mods` folder, where `MINETEST_FOLDER` is the folder Minetest is located in. +6. Open Minetest to a world selection screen. +7. Select a world you want to use WorldEdit in by left clicking on it once, and press the **Configure** button. +8. You should have a mod selection screen. Select the one named something like `Minetest-WorldEdit` by left clicking once and press the **Enable MP** button. +9. Press the **Save** button. You can now use WorldEdit in that world. Repeat steps 7 to 9 to enable WorldEdit for other worlds too. + +If you are having trouble, try asking for help in the [IRC channel](http://webchat.freenode.net/?channels=#minetest) (faster but may not always have helpers online) or ask on the [forum topic](https://forum.minetest.net/viewtopic.php?id=572) (slower but more likely to get help). + +Usage +----- +WorldEdit works primarily through the WorldEdit GUI and chat commands. Depending on your key bindings, you can invoke chat entry with the "t" key, and open the chat console with the "F10" key. + +WorldEdit has a huge potential for abuse by untrusted players. Therefore, users will not be able to use WorldEdit unless they have the `worldedit` privelege. This is available by default in single player, but in multiplayer the permission must be explicitly given by someone with the right credentials, using the follwoing chat command: `/grant worldedit`. This privelege can later be removed using the following chat command: `/revoke worldedit`. + +Certain functions/commands such as WorldEdit GUI's "Run Lua" function (equivalent to the `//lua` and `//luatransform` chat command) additionally require the `server` privilege. This is because it is extremely dangerous to give access to these commands to untrusted players, since they essentially are able to control the computer the server is running on. Give this privilege only to people you trust with your computer. + +For in-game information about these commands, type `/help ` in the chat. For example, to learn more about the `//copy` command, simply type `/help /copy` to display information relevant to copying a region. + +Interface +--------- +WorldEdit is accessed in-game in two main ways. + +The GUI adds a screen to each player's inventory that gives access to various WorldEdit functions. The [tutorial](Tutorial.md) and the [Chat Commands Reference](Chat Commands.md) may be helpful in learning to use it. + +The chat interface adds many chat commands that perform various WorldEdit powered tasks. It is documented in the [Chat Commands Reference](Chat Commands.md). + +Compatibility +------------- +This mod supports Minetest versions 0.4.8 and newer. Older versions of WorldEdit may work with older versions of Minetest, but are not recommended or supported. + +WorldEdit works quite well with other mods, and does not have any known mod conflicts. + +WorldEdit GUI works with [Unified Inventory](https://forum.minetest.net/viewtopic.php?id=3933) and [Inventory++](https://forum.minetest.net/viewtopic.php?id=6204), but these are not required to use the mod. + +If you use any other inventory manager mods, note that they may conflict with the WorldEdit GUI. If this is the case, it may be necessary to disable them. + +WorldEdit API +------------- +WorldEdit exposes all significant functionality in a simple Lua interface. Adding WorldEdit to the file "depends.txt" in your mod gives you access to all of the `worldedit` functions. The API is useful for tasks such as high-performance node manipulation, alternative interfaces, and map creation. + +If you don't add WorldEdit to your "depends.txt" file, each file in the WorldEdit mod is also independent. For example, one may import the WorldEdit primitives API using the following code: + + dofile(minetest.get_modpath("worldedit").."/primitives.lua") + +AGPLv3 compatible mods may further include WorldEdit files in their own mods. This may be useful if a modder wishes to completely avoid any dependencies on WorldEdit. Note that it is required to give credit to the authors. + +This API is documented in the [WorldEdit API Reference](WorldEdit API.md). + +Axes +---- +The coordinate system is the same as that used by Minetest; positive Y is upwards, positive X is rightwards, and positive Z is forwards, if a player is facing North (positive Z axis). + +When an axis is specified in a WorldEdit chat command, it is specified as one of the following values: `x`, `y`, `z`, or `?`. + +In the GUI, there is a dropdown menu for this purpose. The "Look direction" option has the same effect as `?` does in chat commands. + +The value `?` represents the axis the player is currently facing. If the player is facing more than one axis, the axis the player face direction is closest to will be used. + +Nodes +----- +Node names are required for many types of commands that identify or modify specific types of nodes. They can be specified in a number of ways. + +First, by description - the tooltip that appears when hovering over the item in an inventory. This is case insensitive and includes values such as "Cobblestone" and "bronze block". Note that certain commands (namely, `//replace` and `//replaceinverse`) do not support descriptions that contain spaces in the `` field. + +Second, by name - the node name that is defined by code, but without the mod name prefix. This is case sensitive and includes values such as "piston_normal_off" and "cactus". Nodes defined in the `default` mod always take precedence over other nodes when searching for the correct one, and if there are multiple possible nodes (such as "a:celery" and "b:celery"), one is chosen in no particular order. + +Finally, by full name - the unambiguous identifier of the node, prefixes and all. This is case sensitive and includes values such as "default:stone" and "mesecons:wire_00000000_off". + +The node name "air" can be used anywhere a normal node name can, and acts as a blank node. This is useful for clearing or removing nodes. For example, `//set air` would remove all the nodes in the current WorldEdit region. Similarly, `//sphere 10 air`, when WorldEdit position 1 underground, would dig a large sphere out of the ground. + +Regions +------- +Most WorldEdit commands operate on regions. Regions are a set of two positions that define a 3D cuboid. They are local to each player and chat commands affect only the region for the player giving the commands. + +Each positions together define two opposing corners of the cube. With two opposing corners it is possible to determine both the location and dimensions of the region. + +Regions are not saved between server restarts. They start off as empty regions, and cannot be used with most WorldEdit commands until they are set to valid values. + +Markers +------- +Entities are used to mark the location of the WorldEdit regions. They appear as boxes containing the number 1 or 2, and represent position 1 and 2 of the WorldEdit region, respectively. + +To remove the entities, simply punch them. This does not reset the positions themselves. + +Schematics +---------- +WorldEdit supports two different types of schematics. + +The first is the WorldEdit Schematic format, with the file extension ".we", and in some older versions, ".wem". There have been several previous versions of the WorldEdit Schematic format, but WorldEdit is capable of loading any past versions, and will always support them - there is no need to worry about schematics becoming obselete. + +The current version of the WorldEdit Schematic format, internally known as version 4, is essentially an array of node data tables in Lua 5.2 table syntax. Specifically: + + return { + { + ["y"] = , + ["x"] = , + ["name"] = , + ["z"] = , + ["meta"] = , + ["param2"] = , + ["param1"] = , + }, + <...> + } + +The ordering of the values and minor aspects of the syntax, such as trailing commas or newlines, are not guaranteed to stay the same in future versions. + +The WorldEdit Schematic format is accessed via the WorldEdit API, or WorldEdit serialization chat commands such as `//serialize` and `//deserialize`. + +The second is the Minetest Schematic format (MTS). The details of this format may be found in the Minetest documentation and are out of the scope of this document. Access to this format is done via specialized MTS commands such as `//mtschemcreate` and `//mtschemplace`. + +Authors +------- +WorldEdit would not be possible without the contributions of many developers and designers. Below, they are listed alphabetically: + + cheapie + cornernote + cyisfor + electricface + kaeza + khonkhortisan + sfan5 + ShadowNinja + spillz + Uberi/Temperest + +License +------- +Copyright 2013 sfan5, Anthony Zhang (Uberi/Temperest), and Brett O'Donnell (cornernote). + +This mod is licensed under the [GNU Affero General Public License](http://www.gnu.org/licenses/agpl-3.0.html). + +Basically, this means everyone is free to use, modify, and distribute the files, as long as these modifications are also licensed the same way. + +Most importantly, the Affero variant of the GPL requires you to publish your modifications in source form, even if the mod is run only on the server, and not distributed. diff --git a/mods/WorldEdit/Tutorial.md b/mods/WorldEdit/Tutorial.md new file mode 100755 index 00000000..abe554ad --- /dev/null +++ b/mods/WorldEdit/Tutorial.md @@ -0,0 +1,120 @@ +WorldEdit Tutorial +================== +This is a step-by-step tutorial outlining the basic usage of WorldEdit. For more information, see the [README](README.md). + +Let's start with a few assumptions: + +* You have a compatible version of Minetest working. + * See the [README](README.md) for compatibility information. +* You have WorldEdit installed as a mod. + * If using Windows, [MODSTER](https://forum.minetest.net/viewtopic.php?pid=101463) makes installing mods totally painless. + * Simply download the file, extract the archive, and move it to the correct mod folder for Minetest. + * See the installation instructions in [README](README.md) if you need more details. +* You are familiar with the basics of the game. + * How to walk, jump, and climb. + * How to dig, place, and punch blocks. + * One of the following: + * How to type into the chat and read text from it. + * How to open the inventory screen and press buttons on it. + +Overview +-------- +WorldEdit has a "region", which is simply a cuboid area defined by two markers, both of which the player can move around. Every player can have their own region with their own two markers. + +WorldEdit GUI buttons and chat commands generally work inside the region selected, or around the first marker. + +If you are using the chat commands, follow the steps under **Chat Commands**. If you are using the WorldEdit GUI, follow the steps under **WorldEdit GUI**. + +Step 1: Selecting a region +-------------------------- +### Chat Commands + +In the chat prompt, enter `//p set`. In the chat, you are prompted to punch two nodes to set the positions of the two markers. + +Punch a nearby node. Be careful of breakable ones such as torches. A black cube reading "1" will appear around the node. This is the marker for WorldEdit position 1. + +Walk away from the node you just punched. Now, punch another node. A black cube reading "2" will appear around the node. This is the marker for WorldEdit position 2. + +### WorldEdit GUI + +Open the main WorldEdit GUI from your inventory screen. The icon looks like a globe with a red dot in the center. + +Press the "Get/Set Positions" button. On the new screen, press the "Set Position 1" button. The inventory screen should close. + +Punch a nearby node. Be careful of breakable ones such as torches. A black cube reading "1" will appear around the node. This is the marker for WorldEdit position 1. + +Walk away from the node you just punched. Open your inventory again. It should be on the same page as it was before. + +Press the "Set Position 2" button. The inventory screen should close. + +Now, punch another node. A black cube reading "2" will appear around the node. This is the marker for WorldEdit position 2. + +Step 2: Region commands +----------------------- +### Chat Commands + +In the chat prompt, enter `//set mese`. In the chat, you will see a message showing the number of nodes set after a small delay. + +Look at the place between the two markers: it is now filled with MESE blocks! + +The `//set ` command fills the region with whatever node you want. It is a region-oriented command, which means it works inside the WorldEdit region only. + +Now, try a few different variations, such as `//set torch`, `//set cobble`, and `//set water`. + +### WorldEdit GUI + +Open the main WorldEdit GUI from your inventory screen. + +Press the "Set Nodes" button. You should see a new screen with various options for setting nodes. + +Enter "mese" in the "Name" field. Press Search if you would like to see what the node you just entered looks like. + +Press the "Set Nodes" button on this screen. In the chat, you will see a message showing the number of nodes set after a small delay. + +Look at the place between the two markers: it is now filled with MESE blocks! + +The "Set Nodes" function fills the region with whatever node you want. It is a region-oriented command, which means it works inside the WorldEdit region only. + +Now, try a few different variations on the node name, such as "torch", "cobble", and "water". + +Step 3: Position commands +------------------------- +### Chat Commands + +In the chat prompt, enter `//hollowdome 30 glass`. In the chat, you will see a message showing the number of nodes set after a small delay. + +Look around marker 1: it is now surrounded by a hollow glass dome! + +The `//hollowdome ` command creates a hollow dome centered around marker 1, made of any node you want. It is a position-oriented command, which means it works around marker 1 and can go outside the WorldEdit region. + +### WorldEdit GUI + +Open the main WorldEdit GUI from your inventory screen. + +Press the "Sphere/Dome" button. You should see a new screen with various options for making spheres or domes. + +Enter "glass" in the "Name" field. Press Search if you would like to see what the node you just entered looks like. + +Enter "30" in the "Radius" field. + +Press the "Hollow Dome" button on this screen. In the chat, you will see a message showing the number of nodes added after a small delay. + +Look around marker 1: it is now surrounded by a hollow glass dome! + +The "Hollow Dome" function creates a hollow dome centered around marker 1, made of any node you want. It is a position-oriented command, which means it works around marker 1 and can go outside the WorldEdit region. + +Step 4: Other commands +---------------------- +### Chat Commands + +There are many more commands than what is shown here. See the [Chat Commands Reference](Chat Commands.md) for a detailed list of them, along with descriptions and examples for every single one. + +If you're in-game and forgot how a command works, just use the `/help ` command, without the first forward slash. For example, to see some information about the `//set ` command mentioned earlier, simply use `/help /set`. + +A very useful command to check out is the `//save ` command, which can save everything inside the WorldEdit region to a file, stored on the computer hosting the server (the player's computer, in single player mode). You can then later use `//load ` to load the data in a file into a world, even another world on another computer. + +### WorldEdit GUI + +This only scratches the surface of what WorldEdit is capable of. Most of the functions in the WorldEdit GUI correspond to chat commands, and so the [Chat Commands Reference](Chat Commands.md) may be useful if you get stuck. + +It is helpful to explore the various buttons in the interface and check out what they do. Learning the chat command interface is also useful if you use WorldEdit intensively - an experienced chat command user can usually work faster than an experienced WorldEdit GUI user. \ No newline at end of file diff --git a/mods/WorldEdit/WorldEdit API.md b/mods/WorldEdit/WorldEdit API.md new file mode 100755 index 00000000..8f4b7d23 --- /dev/null +++ b/mods/WorldEdit/WorldEdit API.md @@ -0,0 +1,236 @@ +WorldEdit API +============= +The WorldEdit API is composed of multiple modules, each of which is independent and can be used without the other. Each module is contained within a single file. + +If needed, individual modules such as visualization.lua can be removed without affecting the rest of the program. The only file that cannot be removed is init.lua, which is necessary for the mod to run. + +For more information, see the [README](README.md). + +General +------- + +### value = worldedit.version + +Contains the current version of WorldEdit in a table of the form `{major=MAJOR_INTEGER, minor=MINOR_INTEGER}`, where `MAJOR_INTEGER` is the major version (the number before the period) as an integer, and `MINOR_INTEGER` is the minor version (the number after the period) as an integer. This is intended for version checking purposes. + +### value = worldedit.version_string + +Contains the current version of WorldEdit in the form of a string `"MAJOR_INTEGER.MINOR_INTEGER"`, where `MAJOR_INTEGER` is the major version (the number before the period) as an integer, and `MINOR_INTEGER` is the minor version (the number after the period) as an integer. This is intended for display purposes. + +Manipulations +------------- +Contained in manipulations.lua, this module allows several node operations to be applied over a region. + +### count = worldedit.set(pos1, pos2, nodename) + +Sets a region defined by positions `pos1` and `pos2` to `nodename`. To clear a region, use "air" as the value of `nodename`. + +Returns the number of nodes set. + +### count = worldedit.replace(pos1, pos2, searchnode, replacenode) + +Replaces all instances of `searchnode` with `replacenode` in a region defined by positions `pos1` and `pos2`. + +Returns the number of nodes replaced. + +### count = worldedit.replaceinverse(pos1, pos2, searchnode, replacenode) + +Replaces all nodes other than `searchnode` with `replacenode` in a region defined by positions `pos1` and `pos2`. + +Returns the number of nodes replaced. + +### count = worldedit.copy(pos1, pos2, axis, amount) + +Copies the region defined by positions `pos1` and `pos2` along the `axis` axis ("x" or "y" or "z") by `amount` nodes. + +Returns the number of nodes copied. + +### count = worldedit.move(pos1, pos2, axis, amount) + +Moves the region defined by positions `pos1` and `pos2` along the `axis` axis ("x" or "y" or "z") by `amount` nodes. + +Returns the number of nodes moved. + +### count = worldedit.stack(pos1, pos2, axis, count) + +Duplicates the region defined by positions `pos1` and `pos2` along the `axis` axis ("x" or "y" or "z") `count` times. + +Returns the number of nodes stacked. + +### count = worldedit.stack2(pos1, pos2, direction, amount) + +Duplicates the region defined by positions `pos1` and `pos2` `amount` times with offset vector `direction`. + +Returns the number of nodes stacked. + +### count, newpos1, newpos2 = worldedit.stretch(pos1, pos2, stretchx, stretchy, stretchz) + +Stretches the region defined by positions `pos1` and `pos2` by an factor of positive integers `stretchx`, `stretchy`. and `stretchz` along the X, Y, and Z axes, respectively, with `pos1` as the origin. + +Returns the number of nodes stretched, the new scaled position 1, and the new scaled position 2. + +### count, newpos1, newpos2 = worldedit.transpose(pos1, pos2, axis1, axis2) + +Transposes a region defined by the positions `pos1` and `pos2` between the `axis1` and `axis2` axes ("x" or "y" or "z"). + +Returns the number of nodes transposed, the new transposed position 1, and the new transposed position 2. + +### count = worldedit.flip(pos1, pos2, axis) + +Flips a region defined by the positions `pos1` and `pos2` along the `axis` axis ("x" or "y" or "z"). + +Returns the number of nodes flipped. + +### count, newpos2, newpos2 = worldedit.rotate(pos1, pos2, angle) + +Rotates a region defined by the positions `pos1` and `pos2` by `angle` degrees clockwise around the y axis (supporting 90 degree increments only). + +Returns the number of nodes rotated, the new position 1, and the new position 2. + +### count = worldedit.orient(pos1, pos2, angle) + +Rotates all oriented nodes in a region defined by the positions `pos1` and `pos2` by `angle` degrees clockwise (90 degree increment) around the Y axis. + +Returns the number of nodes oriented. + +### count = worldedit.fixlight(pos1, pos2) + +Fixes the lighting in a region defined by positions `pos1` and `pos2`. + +Returns the number of nodes updated. + +### count = worldedit.clearobjects(pos1, pos2) + +Clears all objects in a region defined by the positions `pos1` and `pos2`. + +Returns the number of objects cleared. + +Primitives +---------- +Contained in primitives.lua, this module allows the creation of several geometric primitives. + +### count = worldedit.hollow_sphere(pos, radius, nodename) + +Adds a hollow sphere centered at `pos` with radius `radius`, composed of `nodename`. + +Returns the number of nodes added. + +### count = worldedit.sphere(pos, radius, nodename) + +Adds a sphere centered at `pos` with radius `radius`, composed of `nodename`. + +Returns the number of nodes added. + +### count = worldedit.hollow_dome(pos, radius, nodename) + +Adds a hollow dome centered at `pos` with radius `radius`, composed of `nodename`. + +Returns the number of nodes added. + +### count = worldedit.dome(pos, radius, nodename) + +Adds a dome centered at `pos` with radius `radius`, composed of `nodename`. + +Returns the number of nodes added. + +### count = worldedit.hollow_cylinder(pos, axis, length, radius, nodename) + +Adds a hollow cylinder at `pos` along the `axis` axis ("x" or "y" or "z") with length `length` and radius `radius`, composed of `nodename`. + +Returns the number of nodes added. + +### count = worldedit.cylinder(pos, axis, length, radius, nodename) + +Adds a cylinder at `pos` along the `axis` axis ("x" or "y" or "z") with length `length` and radius `radius`, composed of `nodename`. + +Returns the number of nodes added. + +### count = worldedit.pyramid(pos, axis, height, nodename) + +Adds a pyramid centered at `pos` along the `axis` axis ("x" or "y" or "z") with height `height`. + +Returns the number of nodes added. + +### count = worldedit.spiral(pos, length, height, spacer, nodename) + +Adds a spiral centered at `pos` with side length `length`, height `height`, space between walls `spacer`, composed of `nodename`. + +Returns the number of nodes added. + +Visualization +------------- +Contained in visualization.lua, this module allows nodes to be visualized in different ways. + +### volume = worldedit.volume(pos1, pos2) + +Determines the volume of the region defined by positions `pos1` and `pos2`. + +Returns the volume. + +### count = worldedit.hide(pos1, pos2) + +Hides all nodes in a region defined by positions `pos1` and `pos2` by non-destructively replacing them with invisible nodes. + +Returns the number of nodes hidden. + +### count = worldedit.suppress(pos1, pos2, nodename) + +Suppresses all instances of `nodename` in a region defined by positions `pos1` and `pos2` by non-destructively replacing them with invisible nodes. + +Returns the number of nodes suppressed. + +### count = worldedit.highlight(pos1, pos2, nodename) + +Highlights all instances of `nodename` in a region defined by positions `pos1` and `pos2` by non-destructively hiding all other nodes. + +Returns the number of nodes found. + +### count = worldedit.restore(pos1, pos2) + +Restores all nodes hidden with WorldEdit functions in a region defined by positions `pos1` and `pos2`. + +Returns the number of nodes restored. + +Serialization +------------- +Contained in serialization.lua, this module allows regions of nodes to be serialized and deserialized to formats suitable for use outside MineTest. + +### version = worldedit.valueversion(value) + +Determines the version of serialized data `value`. + +Returns the version as a positive integer or 0 for unknown versions. + +### data, count = worldedit.serialize(pos1, pos2) + +Converts the region defined by positions `pos1` and `pos2` into a single string. + +Returns the serialized data and the number of nodes serialized. + +### pos1, pos2, count = worldedit.allocate(originpos, value) + +Determines the volume the nodes represented by string `value` would occupy if deserialized at `originpos`. + +Returns the two corner positions and the number of nodes. + +### count = worldedit.deserialize(originpos, value) + +Loads the nodes represented by string `value` at position `originpos`. + +Returns the number of nodes deserialized. + +Code +---- +Contained in code.lua, this module allows arbitrary Lua code to be used with WorldEdit. + +### error = worldedit.lua(code) + +Executes `code` as a Lua chunk in the global namespace. + +Returns an error if the code fails or nil otherwise. + +### error = worldedit.luatransform(pos1, pos2, code) + +Executes `code` as a Lua chunk in the global namespace with the variable `pos` available, for each node in a region defined by positions `pos1` and `pos2`. + +Returns an error if the code fails or nil otherwise. \ No newline at end of file diff --git a/mods/WorldEdit/modpack.txt b/mods/WorldEdit/modpack.txt new file mode 100755 index 00000000..e69de29b diff --git a/mods/WorldEdit/worldedit/code.lua b/mods/WorldEdit/worldedit/code.lua new file mode 100755 index 00000000..1aa90b38 --- /dev/null +++ b/mods/WorldEdit/worldedit/code.lua @@ -0,0 +1,70 @@ +worldedit = worldedit or {} +local minetest = minetest -- local copy of global + +-- Copies and modifies positions `pos1` and `pos2` so that each component of +-- `pos1` is less than or equal to the corresponding component of `pos2`. +-- Returns the new positions. +worldedit.sort_pos = function(pos1, pos2) + pos1 = {x=pos1.x, y=pos1.y, z=pos1.z} + pos2 = {x=pos2.x, y=pos2.y, z=pos2.z} + if pos1.x > pos2.x then + pos2.x, pos1.x = pos1.x, pos2.x + end + if pos1.y > pos2.y then + pos2.y, pos1.y = pos1.y, pos2.y + end + if pos1.z > pos2.z then + pos2.z, pos1.z = pos1.z, pos2.z + end + return pos1, pos2 +end + +-- Executes `code` as a Lua chunk in the global namespace, +-- returning an error if the code fails, or nil otherwise. +worldedit.lua = function(code) + local func, err = loadstring(code) + if not func then -- Syntax error + return err + end + local good, err = pcall(operation) + if not good then -- Runtime error + return err + end + return nil +end + +-- Executes `code` as a Lua chunk in the global namespace with the variable +-- pos available, for each node in a region defined by positions `pos1` and +-- `pos2`, returning an error if the code fails, or nil otherwise +worldedit.luatransform = function(pos1, pos2, code) + pos1, pos2 = worldedit.sort_pos(pos1, pos2) + + local factory, err = loadstring("return function(pos) " .. code .. " end") + if not factory then -- Syntax error + return err + end + local func = factory() + + -- Keep area loaded + local manip = minetest.get_voxel_manip() + manip:read_from_map(pos1, pos2) + + local pos = {x=pos1.x, y=0, z=0} + while pos.x <= pos2.x do + pos.y = pos1.y + while pos.y <= pos2.y do + pos.z = pos1.z + while pos.z <= pos2.z do + local good, err = pcall(func, pos) + if not good then -- Runtime error + return err + end + pos.z = pos.z + 1 + end + pos.y = pos.y + 1 + end + pos.x = pos.x + 1 + end + return nil +end + diff --git a/mods/WorldEdit/worldedit/compatibility.lua b/mods/WorldEdit/worldedit/compatibility.lua new file mode 100755 index 00000000..b2a76011 --- /dev/null +++ b/mods/WorldEdit/worldedit/compatibility.lua @@ -0,0 +1,23 @@ +worldedit = worldedit or {} +local minetest = minetest --local copy of global + +worldedit.allocate_old = worldedit.allocate +worldedit.deserialize_old = worldedit.deserialize +worldedit.metasave = function(pos1, pos2, filename) + local file, err = io.open(filename, "wb") + if err then return 0 end + local data, count = worldedit.serialize(pos1, pos2) + file:write(data) + file:close() + return count +end +worldedit.metaload = function(originpos, filename) + filename = minetest.get_worldpath() .. "/schems/" .. file .. ".wem" + local file, err = io.open(filename, "wb") + if err then return 0 end + local data = file:read("*a") + return worldedit.deserialize(originpos, data) +end +worldedit.scale = function(pos1, pos2, factor) + return worldedit.stretch(pos1, pos2, factor, factor, factor) +end \ No newline at end of file diff --git a/mods/WorldEdit/worldedit/init.lua b/mods/WorldEdit/worldedit/init.lua new file mode 100755 index 00000000..c60b50c9 --- /dev/null +++ b/mods/WorldEdit/worldedit/init.lua @@ -0,0 +1,25 @@ +worldedit = worldedit or {} +worldedit.version = {major=1, minor=0} +worldedit.version_string = "1.0" + +assert(minetest.get_voxel_manip, string.rep(">", 300) .. "HEY YOU! YES, YOU OVER THERE. THIS VERSION OF WORLDEDIT REQUIRES MINETEST 0.4.8 OR LATER! YOU HAVE AN OLD VERSION." .. string.rep("<", 300)) + +local path = minetest.get_modpath(minetest.get_current_modname()) + +local loadmodule = function(path) + local file = io.open(path) + if not file then + return + end + file:close() + return dofile(path) +end + +loadmodule(path .. "/manipulations.lua") +loadmodule(path .. "/primitives.lua") +loadmodule(path .. "/visualization.lua") +loadmodule(path .. "/serialization.lua") +loadmodule(path .. "/code.lua") +loadmodule(path .. "/compatibility.lua") + +print("[MOD] WorldEdit loaded!") diff --git a/mods/WorldEdit/worldedit/manipulations.lua b/mods/WorldEdit/worldedit/manipulations.lua new file mode 100755 index 00000000..c2ada12a --- /dev/null +++ b/mods/WorldEdit/worldedit/manipulations.lua @@ -0,0 +1,731 @@ +worldedit = worldedit or {} +local minetest = minetest --local copy of global + +-- Copies and modifies positions `pos1` and `pos2` so that each component of +-- `pos1` is less than or equal to the corresponding component of `pos2`. +-- Returns the new positions. +worldedit.sort_pos = function(pos1, pos2) + pos1 = {x=pos1.x, y=pos1.y, z=pos1.z} + pos2 = {x=pos2.x, y=pos2.y, z=pos2.z} + if pos1.x > pos2.x then + pos2.x, pos1.x = pos1.x, pos2.x + end + if pos1.y > pos2.y then + pos2.y, pos1.y = pos1.y, pos2.y + end + if pos1.z > pos2.z then + pos2.z, pos1.z = pos1.z, pos2.z + end + return pos1, pos2 +end + +--determines the volume of the region defined by positions `pos1` and `pos2`, returning the volume +worldedit.volume = function(pos1, pos2) + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + return (pos2.x - pos1.x + 1) * (pos2.y - pos1.y + 1) * (pos2.z - pos1.z + 1) +end + +--sets a region defined by positions `pos1` and `pos2` to `nodename`, returning the number of nodes filled +worldedit.set = function(pos1, pos2, nodenames) + if type(nodenames) == "string" then + nodenames = {nodenames} + end + + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + + --set up voxel manipulator + local manip = minetest.get_voxel_manip() + local emerged_pos1, emerged_pos2 = manip:read_from_map(pos1, pos2) + local area = VoxelArea:new({MinEdge=emerged_pos1, MaxEdge=emerged_pos2}) + + --fill emerged area with ignore + local nodes = {} + local ignore = minetest.get_content_id("ignore") + for i = 1, worldedit.volume(emerged_pos1, emerged_pos2) do + nodes[i] = ignore + end + + --fill selected area with node + local node_ids = {} + for i,v in ipairs(nodenames) do + node_ids[i] = minetest.get_content_id(nodenames[i]) + end + if #node_ids == 1 then --only one type of node + local id = node_ids[1] + for i in area:iterp(pos1, pos2) do nodes[i] = id end --fill area with node + else --several types of nodes specified + local id_count, rand = #node_ids, math.random + for i in area:iterp(pos1, pos2) do nodes[i] = node_ids[rand(id_count)] end --fill randomly with all types of specified nodes + end + + --update map nodes + manip:set_data(nodes) + manip:write_to_map() + manip:update_map() + + return worldedit.volume(pos1, pos2) +end + +--replaces all instances of `searchnode` with `replacenode` in a region defined by positions `pos1` and `pos2`, returning the number of nodes replaced +worldedit.replace = function(pos1, pos2, searchnode, replacenode) + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + + --set up voxel manipulator + local manip = minetest.get_voxel_manip() + local emerged_pos1, emerged_pos2 = manip:read_from_map(pos1, pos2) + local area = VoxelArea:new({MinEdge=emerged_pos1, MaxEdge=emerged_pos2}) + + local nodes = manip:get_data() + local searchnode_id = minetest.get_content_id(searchnode) + local replacenode_id = minetest.get_content_id(replacenode) + local count = 0 + for i in area:iterp(pos1, pos2) do --replace searchnode with replacenode + if nodes[i] == searchnode_id then + nodes[i] = replacenode_id + count = count + 1 + end + end + + --update map nodes + manip:set_data(nodes) + manip:write_to_map() + manip:update_map() + + return count +end + +--replaces all nodes other than `searchnode` with `replacenode` in a region defined by positions `pos1` and `pos2`, returning the number of nodes replaced +worldedit.replaceinverse = function(pos1, pos2, searchnode, replacenode) + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + + --set up voxel manipulator + local manip = minetest.get_voxel_manip() + local emerged_pos1, emerged_pos2 = manip:read_from_map(pos1, pos2) + local area = VoxelArea:new({MinEdge=emerged_pos1, MaxEdge=emerged_pos2}) + + local nodes = manip:get_data() + local searchnode_id = minetest.get_content_id(searchnode) + local replacenode_id = minetest.get_content_id(replacenode) + local count = 0 + for i in area:iterp(pos1, pos2) do --replace anything that is not searchnode with replacenode + if nodes[i] ~= searchnode_id then + nodes[i] = replacenode_id + count = count + 1 + end + end + + --update map nodes + manip:set_data(nodes) + manip:write_to_map() + manip:update_map() + + return count +end + +--copies the region defined by positions `pos1` and `pos2` along the `axis` axis ("x" or "y" or "z") by `amount` nodes, returning the number of nodes copied +worldedit.copy = function(pos1, pos2, axis, amount) --wip: replace the old version below + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + + if amount == 0 then + return + end + + local other1, other2 + if axis == "x" then + other1, other2 = "y", "z" + elseif axis == "y" then + other1, other2 = "x", "z" + else --axis == "z" + other1, other2 = "x", "y" + end + + --make area stay loaded + local manip = minetest.get_voxel_manip() + manip:read_from_map(pos1, pos2) + + --prepare slice along axis + local extent = { + [axis] = 1, + [other1]=pos2[other1] - pos1[other1] + 1, + [other2]=pos2[other2] - pos1[other2] + 1, + } + local nodes = {} + local schematic = {size=extent, data=nodes} + + local currentpos = {x=pos1.x, y=pos1.y, z=pos1.z} + local stride = {x=1, y=extent.x, z=extent.x * extent.y} + local get_node = minetest.get_node + for index1 = 1, extent[axis] do --go through each slice + --copy slice into schematic + local newindex1 = (index1 + offset[axis]) * stride[axis] + 1 --offset contributed by axis plus 1 to make it 1-indexed + for index2 = 1, extent[other1] do + local newindex2 = newindex1 + (index2 + offset[other1]) * stride[other1] + for index3 = 1, extent[other2] do + local i = newindex2 + (index3 + offset[other2]) * stride[other2] + local node = get_node(pos) + node.param1 = 255 --node will always appear + nodes[i] = node + end + end + + --copy schematic to target + currentpos[axis] = currentpos[axis] + amount + place_schematic(currentpos, schematic) + + --wip: copy meta + + currentpos[axis] = currentpos[axis] + 1 + end + return worldedit.volume(pos1, pos2) +end + +worldedit.copy2 = function(pos1, pos2, direction, volume) + -- the overlap shouldn't matter as long as we + -- 1) start at the furthest separated corner + -- 2) complete an edge before moving inward, either edge works + -- 3) complete a face before moving inward, similarly + -- + -- to do this I + -- 1) find the furthest destination in the direction, of each axis + -- 2) call those the furthest separated corner + -- 3) make sure to iterate inward from there + -- 4) nested loop to make sure complete edge, complete face, then complete cube. + + local get_node, get_meta, add_node = minetest.get_node, minetest.get_meta, minetest.add_node + local somemeta = get_meta(pos1) -- hax lol + local to_table = somemeta.to_table + local from_table = somemeta.from_table + somemeta = nil + + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + local manip = minetest.get_voxel_manip() + manip:read_from_map(pos1, pos2) + + local sx, sy, sz -- direction sign + local ix, iy, iz -- initial destination + local ex, ey, ez -- final destination + local originalx, originaly, originalz -- source + -- vim -> :'<,'>s/\<\([ioes]\?\)x\>/\1y/g + if direction.x > 0 then + originalx = pos2.x + ix = originalx + direction.x + ex = pos1.x + direction.x + sx = -1 + elseif direction.x < 0 then + originalx = pos1.x + ix = originalx + direction.x + ex = pos2.x + direction.x + sx = 1 + else + originalx = pos1.x + ix = originalx -- whatever + ex = pos2.x + sx = 1 + end + + if direction.y > 0 then + originaly = pos2.y + iy = originaly + direction.y + ey = pos1.y + direction.y + sy = -1 + elseif direction.y < 0 then + originaly = pos1.y + iy = originaly + direction.y + ey = pos2.y + direction.y + sy = 1 + else + originaly = pos1.y + iy = originaly -- whatever + ey = pos2.y + sy = 1 + end + + if direction.z > 0 then + originalz = pos2.z + iz = originalz + direction.z + ez = pos1.z + direction.z + sz = -1 + elseif direction.z < 0 then + originalz = pos1.z + iz = originalz + direction.z + ez = pos2.z + direction.z + sz = 1 + else + originalz = pos1.z + iz = originalz -- whatever + ez = pos2.z + sz = 1 + end + -- print('copy',originalx,ix,ex,sx,originaly,iy,ey,sy,originalz,iz,ez,sz) + + local ox,oy,oz + + ox = originalx + for x = ix, ex, sx do + oy = originaly + for y = iy, ey, sy do + oz = originalz + for z = iz, ez, sz do + -- reusing pos1/pos2 as source/dest here + pos1.x, pos1.y, pos1.z = ox, oy, oz + pos2.x, pos2.y, pos2.z = x, y, z + local node = get_node(pos1) + local meta = to_table(get_meta(pos1)) --get meta of current node + add_node(pos2,node) + from_table(get_meta(pos2),meta) + oz = oz + sz + end + oy = oy + sy + end + ox = ox + sx + end +end + +--duplicates the region defined by positions `pos1` and `pos2` `amount` times with offset vector `direction`, returning the number of nodes stacked +worldedit.stack2 = function(pos1, pos2, direction, amount, finished) + local i = 0 + local translated = {x=0,y=0,z=0} + local function nextone() + if i <= amount then + i = i + 1 + translated.x = translated.x + direction.x + translated.y = translated.y + direction.y + translated.z = translated.z + direction.z + worldedit.copy2(pos1, pos2, translated, volume) + minetest.after(0, nextone) + else + if finished then + finished() + end + end + end + nextone() + return worldedit.volume(pos1, pos2) * amount +end + +--copies the region defined by positions `pos1` and `pos2` along the `axis` axis ("x" or "y" or "z") by `amount` nodes, returning the number of nodes copied +worldedit.copy = function(pos1, pos2, axis, amount) + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + + --make area stay loaded + local manip = minetest.get_voxel_manip() + manip:read_from_map(pos1, pos2) + + local get_node, get_meta, add_node = minetest.get_node, minetest.get_meta, minetest.add_node + if amount < 0 then + local pos = {x=pos1.x, y=0, z=0} + while pos.x <= pos2.x do + pos.y = pos1.y + while pos.y <= pos2.y do + pos.z = pos1.z + while pos.z <= pos2.z do + local node = get_node(pos) --obtain current node + local meta = get_meta(pos):to_table() --get meta of current node + local value = pos[axis] --store current position + pos[axis] = value + amount --move along axis + add_node(pos, node) --copy node to new position + get_meta(pos):from_table(meta) --set metadata of new node + pos[axis] = value --restore old position + pos.z = pos.z + 1 + end + pos.y = pos.y + 1 + end + pos.x = pos.x + 1 + end + else + local pos = {x=pos2.x, y=0, z=0} + while pos.x >= pos1.x do + pos.y = pos2.y + while pos.y >= pos1.y do + pos.z = pos2.z + while pos.z >= pos1.z do + local node = get_node(pos) --obtain current node + local meta = get_meta(pos):to_table() --get meta of current node + local value = pos[axis] --store current position + pos[axis] = value + amount --move along axis + add_node(pos, node) --copy node to new position + get_meta(pos):from_table(meta) --set metadata of new node + pos[axis] = value --restore old position + pos.z = pos.z - 1 + end + pos.y = pos.y - 1 + end + pos.x = pos.x - 1 + end + end + return worldedit.volume(pos1, pos2) +end + +--moves the region defined by positions `pos1` and `pos2` along the `axis` axis ("x" or "y" or "z") by `amount` nodes, returning the number of nodes moved +worldedit.move = function(pos1, pos2, axis, amount) + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + + --make area stay loaded + local manip = minetest.get_voxel_manip() + manip:read_from_map(pos1, pos2) + + --wip: move slice by slice using schematic method in the move axis and transfer metadata in separate loop (and if the amount is greater than the length in the axis, copy whole thing at a time and erase original after, using schematic method) + local get_node, get_meta, add_node, remove_node = minetest.get_node, minetest.get_meta, minetest.add_node, minetest.remove_node + if amount < 0 then + local pos = {x=pos1.x, y=0, z=0} + while pos.x <= pos2.x do + pos.y = pos1.y + while pos.y <= pos2.y do + pos.z = pos1.z + while pos.z <= pos2.z do + local node = get_node(pos) --obtain current node + local meta = get_meta(pos):to_table() --get metadata of current node + remove_node(pos) + local value = pos[axis] --store current position + pos[axis] = value + amount --move along axis + add_node(pos, node) --move node to new position + get_meta(pos):from_table(meta) --set metadata of new node + pos[axis] = value --restore old position + pos.z = pos.z + 1 + end + pos.y = pos.y + 1 + end + pos.x = pos.x + 1 + end + else + local pos = {x=pos2.x, y=0, z=0} + while pos.x >= pos1.x do + pos.y = pos2.y + while pos.y >= pos1.y do + pos.z = pos2.z + while pos.z >= pos1.z do + local node = get_node(pos) --obtain current node + local meta = get_meta(pos):to_table() --get metadata of current node + remove_node(pos) + local value = pos[axis] --store current position + pos[axis] = value + amount --move along axis + add_node(pos, node) --move node to new position + get_meta(pos):from_table(meta) --set metadata of new node + pos[axis] = value --restore old position + pos.z = pos.z - 1 + end + pos.y = pos.y - 1 + end + pos.x = pos.x - 1 + end + end + return worldedit.volume(pos1, pos2) +end + +--duplicates the region defined by positions `pos1` and `pos2` along the `axis` axis ("x" or "y" or "z") `count` times, returning the number of nodes stacked +worldedit.stack = function(pos1, pos2, axis, count) + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + local length = pos2[axis] - pos1[axis] + 1 + if count < 0 then + count = -count + length = -length + end + local amount = 0 + local copy = worldedit.copy + local i = 1 + function nextone() + if i <= count then + i = i + 1 + amount = amount + length + copy(pos1, pos2, axis, amount) + minetest.after(0, nextone) + end + end + nextone() + return worldedit.volume(pos1, pos2) * count +end + +--stretches the region defined by positions `pos1` and `pos2` by an factor of positive integers `stretchx`, `stretchy`. and `stretchz` along the X, Y, and Z axes, respectively, with `pos1` as the origin, returning the number of nodes scaled, the new scaled position 1, and the new scaled position 2 +worldedit.stretch = function(pos1, pos2, stretchx, stretchy, stretchz) --wip: test this + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + + --prepare schematic of large node + local get_node, get_meta, place_schematic = minetest.get_node, minetest.get_meta, minetest.place_schematic + local placeholder_node = {name="", param1=255, param2=0} + local nodes = {} + for i = 1, stretchx * stretchy * stretchz do + nodes[i] = placeholder_node + end + local schematic = {size={x=stretchx, y=stretchy, z=stretchz}, data=nodes} + + local sizex, sizey, sizez = stretchx - 1, stretchy - 1, stretchz - 1 + + --make area stay loaded + local manip = minetest.get_voxel_manip() + local new_pos2 = { + x=pos1.x + (pos2.x - pos1.x) * stretchx + sizex, + y=pos1.y + (pos2.y - pos1.y) * stretchy + sizey, + z=pos1.z + (pos2.z - pos1.z) * stretchz + sizez, + } + manip:read_from_map(pos1, new_pos2) + + local pos = {x=pos2.x, y=0, z=0} + local bigpos = {x=0, y=0, z=0} + while pos.x >= pos1.x do + pos.y = pos2.y + while pos.y >= pos1.y do + pos.z = pos2.z + while pos.z >= pos1.z do + local node = get_node(pos) --obtain current node + local meta = get_meta(pos):to_table() --get meta of current node + + --calculate far corner of the big node + local posx = pos1.x + (pos.x - pos1.x) * stretchx + local posy = pos1.y + (pos.y - pos1.y) * stretchy + local posz = pos1.z + (pos.z - pos1.z) * stretchz + + --create large node + placeholder_node.name = node.name + placeholder_node.param2 = node.param2 + bigpos.x, bigpos.y, bigpos.z = posx, posy, posz + place_schematic(bigpos, schematic) + + --fill in large node meta + if next(meta.fields) ~= nil or next(meta.inventory) ~= nil then --node has meta fields + for x = 0, sizex do + for y = 0, sizey do + for z = 0, sizez do + bigpos.x, bigpos.y, bigpos.z = posx + x, posy + y, posz + z + get_meta(bigpos):from_table(meta) --set metadata of new node + end + end + end + end + pos.z = pos.z - 1 + end + pos.y = pos.y - 1 + end + pos.x = pos.x - 1 + end + return worldedit.volume(pos1, pos2) * stretchx * stretchy * stretchz, pos1, new_pos2 +end + +--transposes a region defined by the positions `pos1` and `pos2` between the `axis1` and `axis2` axes, returning the number of nodes transposed, the new transposed position 1, and the new transposed position 2 +worldedit.transpose = function(pos1, pos2, axis1, axis2) + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + + local compare + local extent1, extent2 = pos2[axis1] - pos1[axis1], pos2[axis2] - pos1[axis2] + + if extent1 > extent2 then + compare = function(extent1, extent2) + return extent1 > extent2 + end + else + compare = function(extent1, extent2) + return extent1 < extent2 + end + end + + --calculate the new position 2 after transposition + local new_pos2 = {x=pos2.x, y=pos2.y, z=pos2.z} + new_pos2[axis1] = pos1[axis1] + extent2 + new_pos2[axis2] = pos1[axis2] + extent1 + + --make area stay loaded + local manip = minetest.get_voxel_manip() + local upperbound = {x=pos2.x, y=pos2.y, z=pos2.z} + if upperbound[axis1] < new_pos2[axis1] then upperbound[axis1] = new_pos2[axis1] end + if upperbound[axis2] < new_pos2[axis2] then upperbound[axis2] = new_pos2[axis2] end + manip:read_from_map(pos1, upperbound) + + local pos = {x=pos1.x, y=0, z=0} + local get_node, get_meta, add_node = minetest.get_node, minetest.get_meta, minetest.add_node + while pos.x <= pos2.x do + pos.y = pos1.y + while pos.y <= pos2.y do + pos.z = pos1.z + while pos.z <= pos2.z do + local extent1, extent2 = pos[axis1] - pos1[axis1], pos[axis2] - pos1[axis2] + if compare(extent1, extent2) then --transpose only if below the diagonal + local node1 = get_node(pos) + local meta1 = get_meta(pos):to_table() + local value1, value2 = pos[axis1], pos[axis2] --save position values + pos[axis1], pos[axis2] = pos1[axis1] + extent2, pos1[axis2] + extent1 --swap axis extents + local node2 = get_node(pos) + local meta2 = get_meta(pos):to_table() + add_node(pos, node1) + get_meta(pos):from_table(meta1) + pos[axis1], pos[axis2] = value1, value2 --restore position values + add_node(pos, node2) + get_meta(pos):from_table(meta2) + end + pos.z = pos.z + 1 + end + pos.y = pos.y + 1 + end + pos.x = pos.x + 1 + end + return worldedit.volume(pos1, pos2), pos1, new_pos2 +end + +--flips a region defined by the positions `pos1` and `pos2` along the `axis` axis ("x" or "y" or "z"), returning the number of nodes flipped +worldedit.flip = function(pos1, pos2, axis) + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + + --make area stay loaded + local manip = minetest.get_voxel_manip() + manip:read_from_map(pos1, pos2) + + --wip: flip the region slice by slice along the flip axis using schematic method + local pos = {x=pos1.x, y=0, z=0} + local start = pos1[axis] + pos2[axis] + pos2[axis] = pos1[axis] + math.floor((pos2[axis] - pos1[axis]) / 2) + local get_node, get_meta, add_node = minetest.get_node, minetest.get_meta, minetest.add_node + while pos.x <= pos2.x do + pos.y = pos1.y + while pos.y <= pos2.y do + pos.z = pos1.z + while pos.z <= pos2.z do + local node1 = get_node(pos) + local meta1 = get_meta(pos):to_table() + local value = pos[axis] + pos[axis] = start - value + local node2 = get_node(pos) + local meta2 = get_meta(pos):to_table() + add_node(pos, node1) + get_meta(pos):from_table(meta1) + pos[axis] = value + add_node(pos, node2) + get_meta(pos):from_table(meta2) + pos.z = pos.z + 1 + end + pos.y = pos.y + 1 + end + pos.x = pos.x + 1 + end + return worldedit.volume(pos1, pos2) +end + +--rotates a region defined by the positions `pos1` and `pos2` by `angle` degrees clockwise around axis `axis` (90 degree increment), returning the number of nodes rotated +worldedit.rotate = function(pos1, pos2, axis, angle) + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + + local axis1, axis2 + if axis == "x" then + axis1, axis2 = "z", "y" + elseif axis == "y" then + axis1, axis2 = "x", "z" + else --axis == "z" + axis1, axis2 = "y", "x" + end + angle = angle % 360 + + local count + if angle == 90 then + worldedit.flip(pos1, pos2, axis1) + count, pos1, pos2 = worldedit.transpose(pos1, pos2, axis1, axis2) + elseif angle == 180 then + worldedit.flip(pos1, pos2, axis1) + count = worldedit.flip(pos1, pos2, axis2) + elseif angle == 270 then + worldedit.flip(pos1, pos2, axis2) + count, pos1, pos2 = worldedit.transpose(pos1, pos2, axis1, axis2) + end + return count, pos1, pos2 +end + +--rotates all oriented nodes in a region defined by the positions `pos1` and `pos2` by `angle` degrees clockwise (90 degree increment) around the Y axis, returning the number of nodes oriented +worldedit.orient = function(pos1, pos2, angle) --wip: support 6D facedir rotation along arbitrary axis + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + local registered_nodes = minetest.registered_nodes + + local wallmounted = { + [90]={[0]=0, [1]=1, [2]=5, [3]=4, [4]=2, [5]=3}, + [180]={[0]=0, [1]=1, [2]=3, [3]=2, [4]=5, [5]=4}, + [270]={[0]=0, [1]=1, [2]=4, [3]=5, [4]=3, [5]=2} + } + local facedir = { + [90]={[0]=1, [1]=2, [2]=3, [3]=0}, + [180]={[0]=2, [1]=3, [2]=0, [3]=1}, + [270]={[0]=3, [1]=0, [2]=1, [3]=2} + } + + angle = angle % 360 + if angle == 0 then + return 0 + end + local wallmounted_substitution = wallmounted[angle] + local facedir_substitution = facedir[angle] + + --make area stay loaded + local manip = minetest.get_voxel_manip() + manip:read_from_map(pos1, pos2) + + local count = 0 + local get_node, get_meta, add_node = minetest.get_node, minetest.get_meta, minetest.add_node + local pos = {x=pos1.x, y=0, z=0} + while pos.x <= pos2.x do + pos.y = pos1.y + while pos.y <= pos2.y do + pos.z = pos1.z + while pos.z <= pos2.z do + local node = get_node(pos) + local def = registered_nodes[node.name] + if def then + if def.paramtype2 == "wallmounted" then + node.param2 = wallmounted_substitution[node.param2] + local meta = get_meta(pos):to_table() + add_node(pos, node) + get_meta(pos):from_table(meta) + count = count + 1 + elseif def.paramtype2 == "facedir" then + node.param2 = facedir_substitution[node.param2] + local meta = get_meta(pos):to_table() + add_node(pos, node) + get_meta(pos):from_table(meta) + count = count + 1 + end + end + pos.z = pos.z + 1 + end + pos.y = pos.y + 1 + end + pos.x = pos.x + 1 + end + return count +end + +--fixes the lighting in a region defined by positions `pos1` and `pos2`, returning the number of nodes updated +worldedit.fixlight = function(pos1, pos2) + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + + --make area stay loaded + local manip = minetest.get_voxel_manip() + manip:read_from_map(pos1, pos2) + + local nodes = minetest.find_nodes_in_area(pos1, pos2, "air") + local dig_node = minetest.dig_node + for _, pos in ipairs(nodes) do + dig_node(pos) + end + return #nodes +end + +--clears all objects in a region defined by the positions `pos1` and `pos2`, returning the number of objects cleared +worldedit.clearobjects = function(pos1, pos2) + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + + --make area stay loaded + local manip = minetest.get_voxel_manip() + manip:read_from_map(pos1, pos2) + + local pos1x, pos1y, pos1z = pos1.x, pos1.y, pos1.z + local pos2x, pos2y, pos2z = pos2.x + 1, pos2.y + 1, pos2.z + 1 + local center = {x=(pos1x + pos2x) / 2, y=(pos1y + pos2y) / 2, z=(pos1z + pos2z) / 2} --center of region + local radius = ((center.x - pos1x + 0.5) + (center.y - pos1y + 0.5) + (center.z - pos1z + 0.5)) ^ 0.5 --bounding sphere radius + local count = 0 + for _, obj in pairs(minetest.get_objects_inside_radius(center, radius)) do --all objects in bounding sphere + local entity = obj:get_luaentity() + if not (entity and entity.name:find("^worldedit:")) then --avoid WorldEdit entities + local pos = obj:getpos() + if pos.x >= pos1x and pos.x <= pos2x + and pos.y >= pos1y and pos.y <= pos2y + and pos.z >= pos1z and pos.z <= pos2z then --inside region + obj:remove() + count = count + 1 + end + end + end + return count +end diff --git a/mods/WorldEdit/worldedit/primitives.lua b/mods/WorldEdit/worldedit/primitives.lua new file mode 100755 index 00000000..9655b3f9 --- /dev/null +++ b/mods/WorldEdit/worldedit/primitives.lua @@ -0,0 +1,470 @@ +worldedit = worldedit or {} +local minetest = minetest --local copy of global + +--adds a hollow sphere centered at `pos` with radius `radius`, composed of `nodename`, returning the number of nodes added +worldedit.hollow_sphere = function(pos, radius, nodename) + --set up voxel manipulator + local manip = minetest.get_voxel_manip() + local pos1 = {x=pos.x - radius, y=pos.y - radius, z=pos.z - radius} + local pos2 = {x=pos.x + radius, y=pos.y + radius, z=pos.z + radius} + local emerged_pos1, emerged_pos2 = manip:read_from_map(pos1, pos2) + local area = VoxelArea:new({MinEdge=emerged_pos1, MaxEdge=emerged_pos2}) + + --fill emerged area with ignore + local nodes = {} + local ignore = minetest.get_content_id("ignore") + for i = 1, worldedit.volume(emerged_pos1, emerged_pos2) do + nodes[i] = ignore + end + + --fill selected area with node + local node_id = minetest.get_content_id(nodename) + local min_radius, max_radius = radius * (radius - 1), radius * (radius + 1) + local offsetx, offsety, offsetz = pos.x - emerged_pos1.x, pos.y - emerged_pos1.y, pos.z - emerged_pos1.z + local zstride, ystride = area.zstride, area.ystride + local count = 0 + for z = -radius, radius do + local newz = (z + offsetz) * zstride + 1 --offset contributed by z plus 1 to make it 1-indexed + for y = -radius, radius do + local newy = newz + (y + offsety) * ystride + for x = -radius, radius do + local squared = x * x + y * y + z * z + if squared >= min_radius and squared <= max_radius then --position is on surface of sphere + local i = newy + (x + offsetx) + nodes[i] = node_id + count = count + 1 + end + end + end + end + + --update map nodes + manip:set_data(nodes) + manip:write_to_map() + manip:update_map() + + return count +end + +--adds a sphere centered at `pos` with radius `radius`, composed of `nodename`, returning the number of nodes added +worldedit.sphere = function(pos, radius, nodename) + --set up voxel manipulator + local manip = minetest.get_voxel_manip() + local pos1 = {x=pos.x - radius, y=pos.y - radius, z=pos.z - radius} + local pos2 = {x=pos.x + radius, y=pos.y + radius, z=pos.z + radius} + local emerged_pos1, emerged_pos2 = manip:read_from_map(pos1, pos2) + local area = VoxelArea:new({MinEdge=emerged_pos1, MaxEdge=emerged_pos2}) + + --fill emerged area with ignore + local nodes = {} + local ignore = minetest.get_content_id("ignore") + for i = 1, worldedit.volume(emerged_pos1, emerged_pos2) do + nodes[i] = ignore + end + + --fill selected area with node + local node_id = minetest.get_content_id(nodename) + local max_radius = radius * (radius + 1) + local offsetx, offsety, offsetz = pos.x - emerged_pos1.x, pos.y - emerged_pos1.y, pos.z - emerged_pos1.z + local zstride, ystride = area.zstride, area.ystride + local count = 0 + for z = -radius, radius do + local newz = (z + offsetz) * zstride + 1 --offset contributed by z plus 1 to make it 1-indexed + for y = -radius, radius do + local newy = newz + (y + offsety) * ystride + for x = -radius, radius do + if x * x + y * y + z * z <= max_radius then --position is inside sphere + local i = newy + (x + offsetx) + nodes[i] = node_id + count = count + 1 + end + end + end + end + + --update map nodes + manip:set_data(nodes) + manip:write_to_map() + manip:update_map() + + return count +end + +--adds a hollow dome centered at `pos` with radius `radius`, composed of `nodename`, returning the number of nodes added +worldedit.hollow_dome = function(pos, radius, nodename) + --set up voxel manipulator + local manip = minetest.get_voxel_manip() + local pos1 = {x=pos.x - radius, y=pos.y, z=pos.z - radius} + local pos2 = {x=pos.x + radius, y=pos.y + radius, z=pos.z + radius} + local emerged_pos1, emerged_pos2 = manip:read_from_map(pos1, pos2) + local area = VoxelArea:new({MinEdge=emerged_pos1, MaxEdge=emerged_pos2}) + + --fill emerged area with ignore + local nodes = {} + local ignore = minetest.get_content_id("ignore") + for i = 1, worldedit.volume(emerged_pos1, emerged_pos2) do + nodes[i] = ignore + end + + local miny, maxy = 0, radius + if radius < 0 then + radius = -radius + miny, maxy = -radius, 0 + end + + --fill selected area with node + local node_id = minetest.get_content_id(nodename) + local min_radius, max_radius = radius * (radius - 1), radius * (radius + 1) + local offsetx, offsety, offsetz = pos.x - emerged_pos1.x, pos.y - emerged_pos1.y, pos.z - emerged_pos1.z + local zstride, ystride = area.zstride, area.ystride + local count = 0 + for z = -radius, radius do + local newz = (z + offsetz) * zstride + 1 --offset contributed by z plus 1 to make it 1-indexed + for y = miny, maxy do + local newy = newz + (y + offsety) * ystride + for x = -radius, radius do + local squared = x * x + y * y + z * z + if squared >= min_radius and squared <= max_radius then --position is on surface of sphere + local i = newy + (x + offsetx) + nodes[i] = node_id + count = count + 1 + end + end + end + end + + --update map nodes + manip:set_data(nodes) + manip:write_to_map() + manip:update_map() + + return count +end + +--adds a dome centered at `pos` with radius `radius`, composed of `nodename`, returning the number of nodes added +worldedit.dome = function(pos, radius, nodename) + --set up voxel manipulator + local manip = minetest.get_voxel_manip() + local pos1 = {x=pos.x - radius, y=pos.y, z=pos.z - radius} + local pos2 = {x=pos.x + radius, y=pos.y + radius, z=pos.z + radius} + local emerged_pos1, emerged_pos2 = manip:read_from_map(pos1, pos2) + local area = VoxelArea:new({MinEdge=emerged_pos1, MaxEdge=emerged_pos2}) + + --fill emerged area with ignore + local nodes = {} + local ignore = minetest.get_content_id("ignore") + for i = 1, worldedit.volume(emerged_pos1, emerged_pos2) do + nodes[i] = ignore + end + + local miny, maxy = 0, radius + if radius < 0 then + radius = -radius + miny, maxy = -radius, 0 + end + + --fill selected area with node + local node_id = minetest.get_content_id(nodename) + local max_radius = radius * (radius + 1) + local offsetx, offsety, offsetz = pos.x - emerged_pos1.x, pos.y - emerged_pos1.y, pos.z - emerged_pos1.z + local zstride, ystride = area.zstride, area.ystride + local count = 0 + for z = -radius, radius do + local newz = (z + offsetz) * zstride + 1 --offset contributed by z plus 1 to make it 1-indexed + for y = miny, maxy do + local newy = newz + (y + offsety) * ystride + for x = -radius, radius do + if x * x + y * y + z * z <= max_radius then --position is inside sphere + local i = newy + (x + offsetx) + nodes[i] = node_id + count = count + 1 + end + end + end + end + + --update map nodes + manip:set_data(nodes) + manip:write_to_map() + manip:update_map() + + return count +end + +--adds a hollow cylinder at `pos` along the `axis` axis ("x" or "y" or "z") with length `length` and radius `radius`, composed of `nodename`, returning the number of nodes added +worldedit.hollow_cylinder = function(pos, axis, length, radius, nodename) + local other1, other2 + if axis == "x" then + other1, other2 = "y", "z" + elseif axis == "y" then + other1, other2 = "x", "z" + else --axis == "z" + other1, other2 = "x", "y" + end + + --handle negative lengths + local currentpos = {x=pos.x, y=pos.y, z=pos.z} + if length < 0 then + length = -length + currentpos[axis] = currentpos[axis] - length + end + + --set up voxel manipulator + local manip = minetest.get_voxel_manip() + local pos1 = { + [axis]=currentpos[axis], + [other1]=currentpos[other1] - radius, + [other2]=currentpos[other2] - radius + } + local pos2 = { + [axis]=currentpos[axis] + length - 1, + [other1]=currentpos[other1] + radius, + [other2]=currentpos[other2] + radius + } + local emerged_pos1, emerged_pos2 = manip:read_from_map(pos1, pos2) + local area = VoxelArea:new({MinEdge=emerged_pos1, MaxEdge=emerged_pos2}) + + --fill emerged area with ignore + local nodes = {} + local ignore = minetest.get_content_id("ignore") + for i = 1, worldedit.volume(emerged_pos1, emerged_pos2) do + nodes[i] = ignore + end + + --fill selected area with node + local node_id = minetest.get_content_id(nodename) + local min_radius, max_radius = radius * (radius - 1), radius * (radius + 1) + local stride = {x=1, y=area.ystride, z=area.zstride} + local offset = {x=currentpos.x - emerged_pos1.x, y=currentpos.y - emerged_pos1.y, z=currentpos.z - emerged_pos1.z} + local min_slice, max_slice = offset[axis], offset[axis] + length - 1 + local count = 0 + for index2 = -radius, radius do + local newindex2 = (index2 + offset[other1]) * stride[other1] + 1 --offset contributed by other axis 1 plus 1 to make it 1-indexed + for index3 = -radius, radius do + local newindex3 = newindex2 + (index3 + offset[other2]) * stride[other2] + local squared = index2 * index2 + index3 * index3 + if squared >= min_radius and squared <= max_radius then --position is on surface of cylinder + for index1 = min_slice, max_slice do --add column along axis + local i = newindex3 + index1 * stride[axis] + nodes[i] = node_id + end + count = count + length + end + end + end + + --update map nodes + manip:set_data(nodes) + manip:write_to_map() + manip:update_map() + + return count +end + +--adds a cylinder at `pos` along the `axis` axis ("x" or "y" or "z") with length `length` and radius `radius`, composed of `nodename`, returning the number of nodes added +worldedit.cylinder = function(pos, axis, length, radius, nodename) + local other1, other2 + if axis == "x" then + other1, other2 = "y", "z" + elseif axis == "y" then + other1, other2 = "x", "z" + else --axis == "z" + other1, other2 = "x", "y" + end + + --handle negative lengths + local currentpos = {x=pos.x, y=pos.y, z=pos.z} + if length < 0 then + length = -length + currentpos[axis] = currentpos[axis] - length + end + + --set up voxel manipulator + local manip = minetest.get_voxel_manip() + local pos1 = { + [axis]=currentpos[axis], + [other1]=currentpos[other1] - radius, + [other2]=currentpos[other2] - radius + } + local pos2 = { + [axis]=currentpos[axis] + length - 1, + [other1]=currentpos[other1] + radius, + [other2]=currentpos[other2] + radius + } + local emerged_pos1, emerged_pos2 = manip:read_from_map(pos1, pos2) + local area = VoxelArea:new({MinEdge=emerged_pos1, MaxEdge=emerged_pos2}) + + --fill emerged area with ignore + local nodes = {} + local ignore = minetest.get_content_id("ignore") + for i = 1, worldedit.volume(emerged_pos1, emerged_pos2) do + nodes[i] = ignore + end + + --fill selected area with node + local node_id = minetest.get_content_id(nodename) + local max_radius = radius * (radius + 1) + local stride = {x=1, y=area.ystride, z=area.zstride} + local offset = {x=currentpos.x - emerged_pos1.x, y=currentpos.y - emerged_pos1.y, z=currentpos.z - emerged_pos1.z} + local min_slice, max_slice = offset[axis], offset[axis] + length - 1 + local count = 0 + for index2 = -radius, radius do + local newindex2 = (index2 + offset[other1]) * stride[other1] + 1 --offset contributed by other axis 1 plus 1 to make it 1-indexed + for index3 = -radius, radius do + local newindex3 = newindex2 + (index3 + offset[other2]) * stride[other2] + if index2 * index2 + index3 * index3 <= max_radius then --position is within cylinder + for index1 = min_slice, max_slice do --add column along axis + local i = newindex3 + index1 * stride[axis] + nodes[i] = node_id + end + count = count + length + end + end + end + + --update map nodes + manip:set_data(nodes) + manip:write_to_map() + manip:update_map() + + return count +end + +--adds a pyramid centered at `pos` with height `height`, composed of `nodename`, returning the number of nodes added +worldedit.pyramid = function(pos, axis, height, nodename) + local other1, other2 + if axis == "x" then + other1, other2 = "y", "z" + elseif axis == "y" then + other1, other2 = "x", "z" + else --axis == "z" + other1, other2 = "x", "y" + end + + local pos1 = {x=pos.x - height, y=pos.y - height, z=pos.z - height} + local pos2 = {x=pos.x + height, y=pos.y + height, z=pos.z + height} + + --handle inverted pyramids + local startaxis, endaxis, step + if height > 0 then + height = height - 1 + step = 1 + pos1[axis] = pos[axis] --upper half of box + else + height = height + 1 + step = -1 + pos2[axis] = pos[axis] --lower half of box + end + + --set up voxel manipulator + local manip = minetest.get_voxel_manip() + local emerged_pos1, emerged_pos2 = manip:read_from_map(pos1, pos2) + local area = VoxelArea:new({MinEdge=emerged_pos1, MaxEdge=emerged_pos2}) + + --fill emerged area with ignore + local nodes = {} + local ignore = minetest.get_content_id("ignore") + for i = 1, worldedit.volume(emerged_pos1, emerged_pos2) do + nodes[i] = ignore + end + + --fill selected area with node + local node_id = minetest.get_content_id(nodename) + local stride = {x=1, y=area.ystride, z=area.zstride} + local offset = {x=pos.x - emerged_pos1.x, y=pos.y - emerged_pos1.y, z=pos.z - emerged_pos1.z} + local size = height * step + local count = 0 + for index1 = 0, height, step do --go through each level of the pyramid + local newindex1 = (index1 + offset[axis]) * stride[axis] + 1 --offset contributed by axis plus 1 to make it 1-indexed + for index2 = -size, size do + local newindex2 = newindex1 + (index2 + offset[other1]) * stride[other1] + for index3 = -size, size do + local i = newindex2 + (index3 + offset[other2]) * stride[other2] + nodes[i] = node_id + end + end + count = count + (size * 2 + 1) ^ 2 + size = size - 1 + end + + --update map nodes + manip:set_data(nodes) + manip:write_to_map() + manip:update_map() + + return count +end + +--adds a spiral centered at `pos` with side length `length`, height `height`, space between walls `spacer`, composed of `nodename`, returning the number of nodes added +worldedit.spiral = function(pos, length, height, spacer, nodename) + local extent = math.ceil(length / 2) + local pos1 = {x=pos.x - extent, y=pos.y, z=pos.z - extent} + local pos2 = {x=pos.x + extent, y=pos.y + height, z=pos.z + extent} + + --set up voxel manipulator + local manip = minetest.get_voxel_manip() + local emerged_pos1, emerged_pos2 = manip:read_from_map(pos1, pos2) + local area = VoxelArea:new({MinEdge=emerged_pos1, MaxEdge=emerged_pos2}) + + --fill emerged area with ignore + local nodes = {} + local ignore = minetest.get_content_id("ignore") + for i = 1, worldedit.volume(emerged_pos1, emerged_pos2) do + nodes[i] = ignore + end + + --set up variables + local node_id = minetest.get_content_id(nodename) + local stride = {x=1, y=area.ystride, z=area.zstride} + local offsetx, offsety, offsetz = pos.x - emerged_pos1.x, pos.y - emerged_pos1.y, pos.z - emerged_pos1.z + local i = offsetz * stride.z + offsety * stride.y + offsetx + 1 + + --add first column + local count = height + local column = i + for y = 1, height do + nodes[column] = node_id + column = column + stride.y + end + + --add spiral segments + local strideaxis, strideother = stride.x, stride.z + local sign = -1 + local segment_length = 0 + spacer = spacer + 1 + for segment = 1, math.floor(length / spacer) * 2 do --go through each segment except the last + if segment % 2 == 1 then --change sign and length every other turn starting with the first + sign = -sign + segment_length = segment_length + spacer + end + for index = 1, segment_length do --fill segment + i = i + strideaxis * sign --move along the direction of the segment + local column = i + for y = 1, height do --add column + nodes[column] = node_id + column = column + stride.y + end + end + count = count + segment_length * height + strideaxis, strideother = strideother, strideaxis --swap axes + end + + --add shorter final segment + sign = -sign + for index = 1, segment_length do + i = i + strideaxis * sign + local column = i + for y = 1, height do --add column + nodes[column] = node_id + column = column + stride.y + end + end + count = count + segment_length * height + + --update map nodes + manip:set_data(nodes) + manip:write_to_map() + manip:update_map() + + return count +end \ No newline at end of file diff --git a/mods/WorldEdit/worldedit/serialization.lua b/mods/WorldEdit/worldedit/serialization.lua new file mode 100755 index 00000000..c7be315a --- /dev/null +++ b/mods/WorldEdit/worldedit/serialization.lua @@ -0,0 +1,273 @@ +worldedit = worldedit or {} +local minetest = minetest --local copy of global + +--modifies positions `pos1` and `pos2` so that each component of `pos1` is less than or equal to its corresponding conent of `pos2`, returning two new positions +worldedit.sort_pos = function(pos1, pos2) + pos1 = {x=pos1.x, y=pos1.y, z=pos1.z} + pos2 = {x=pos2.x, y=pos2.y, z=pos2.z} + if pos1.x > pos2.x then + pos2.x, pos1.x = pos1.x, pos2.x + end + if pos1.y > pos2.y then + pos2.y, pos1.y = pos1.y, pos2.y + end + if pos1.z > pos2.z then + pos2.z, pos1.z = pos1.z, pos2.z + end + return pos1, pos2 +end + +--determines the version of serialized data `value`, returning the version as a positive integer or 0 for unknown versions +worldedit.valueversion = function(value) + if value:find("([+-]?%d+)%s+([+-]?%d+)%s+([+-]?%d+)") and not value:find("%{") then --previous list format + return 3 + elseif value:find("^[^\"']+%{%d+%}") then + if value:find("%[\"meta\"%]") then --previous meta flat table format + return 2 + end + return 1 --original flat table format + elseif value:find("%{") then --current nested table format + return 4 + end + return 0 --unknown format +end + +--converts the region defined by positions `pos1` and `pos2` into a single string, returning the serialized data and the number of nodes serialized +worldedit.serialize = function(pos1, pos2) + --make area stay loaded + local manip = minetest.get_voxel_manip() + manip:read_from_map(pos1, pos2) + + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + local pos = {x=pos1.x, y=0, z=0} + local count = 0 + local result = {} + local get_node, get_meta = minetest.get_node, minetest.get_meta + while pos.x <= pos2.x do + pos.y = pos1.y + while pos.y <= pos2.y do + pos.z = pos1.z + while pos.z <= pos2.z do + local node = get_node(pos) + if node.name ~= "air" and node.name ~= "ignore" then + count = count + 1 + local meta = get_meta(pos):to_table() + + --convert metadata itemstacks to itemstrings + for name, inventory in pairs(meta.inventory) do + for index, stack in ipairs(inventory) do + inventory[index] = stack.to_string and stack:to_string() or stack + end + end + + result[count] = { + x = pos.x - pos1.x, + y = pos.y - pos1.y, + z = pos.z - pos1.z, + name = node.name, + param1 = node.param1, + param2 = node.param2, + meta = meta, + } + end + pos.z = pos.z + 1 + end + pos.y = pos.y + 1 + end + pos.x = pos.x + 1 + end + result = minetest.serialize(result) --convert entries to a string + return result, count +end + +--determines the volume the nodes represented by string `value` would occupy if deserialized at `originpos`, returning the two corner positions and the number of nodes +--contains code based on [table.save/table.load](http://lua-users.org/wiki/SaveTableToFile) by ChillCode, available under the MIT license (GPL compatible) +worldedit.allocate = function(originpos, value) + local huge = math.huge + local pos1x, pos1y, pos1z = huge, huge, huge + local pos2x, pos2y, pos2z = -huge, -huge, -huge + local originx, originy, originz = originpos.x, originpos.y, originpos.z + local count = 0 + local version = worldedit.valueversion(value) + if version == 1 or version == 2 then --flat table format + --obtain the node table + local get_tables = loadstring(value) + if get_tables then --error loading value + return originpos, originpos, count + end + local tables = get_tables() + + --transform the node table into an array of nodes + for i = 1, #tables do + for j, v in pairs(tables[i]) do + if type(v) == "table" then + tables[i][j] = tables[v[1]] + end + end + end + local nodes = tables[1] + + --check the node array + count = #nodes + if version == 1 then --original flat table format + for index = 1, count do + local entry = nodes[index] + local pos = entry[1] + local x, y, z = originx - pos.x, originy - pos.y, originz - pos.z + if x < pos1x then pos1x = x end + if y < pos1y then pos1y = y end + if z < pos1z then pos1z = z end + if x > pos2x then pos2x = x end + if y > pos2y then pos2y = y end + if z > pos2z then pos2z = z end + end + else --previous meta flat table format + for index = 1, count do + local entry = nodes[index] + local x, y, z = originx - entry.x, originy - entry.y, originz - entry.z + if x < pos1x then pos1x = x end + if y < pos1y then pos1y = y end + if z < pos1z then pos1z = z end + if x > pos2x then pos2x = x end + if y > pos2y then pos2y = y end + if z > pos2z then pos2z = z end + end + end + elseif version == 3 then --previous list format + for x, y, z, name, param1, param2 in value:gmatch("([+-]?%d+)%s+([+-]?%d+)%s+([+-]?%d+)%s+([^%s]+)%s+(%d+)%s+(%d+)[^\r\n]*[\r\n]*") do --match node entries + x, y, z = originx + tonumber(x), originy + tonumber(y), originz + tonumber(z) + if x < pos1x then pos1x = x end + if y < pos1y then pos1y = y end + if z < pos1z then pos1z = z end + if x > pos2x then pos2x = x end + if y > pos2y then pos2y = y end + if z > pos2z then pos2z = z end + count = count + 1 + end + elseif version == 4 then --current nested table format + --wip: this is a filthy hack that works surprisingly well + value = value:gsub("return%s*{", "", 1):gsub("}%s*$", "", 1) + local escaped = value:gsub("\\\\", "@@"):gsub("\\\"", "@@"):gsub("(\"[^\"]*\")", function(s) return string.rep("@", #s) end) + local startpos, startpos1, endpos = 1, 1 + local nodes = {} + while true do + startpos, endpos = escaped:find("},%s*{", startpos) + if not startpos then + break + end + local current = value:sub(startpos1, startpos) + table.insert(nodes, minetest.deserialize("return " .. current)) + startpos, startpos1 = endpos, endpos + end + table.insert(nodes, minetest.deserialize("return " .. value:sub(startpos1))) + + --local nodes = minetest.deserialize(value) --wip: this is broken for larger tables in the current version of LuaJIT + + count = #nodes + for index = 1, count do + local entry = nodes[index] + x, y, z = originx + entry.x, originy + entry.y, originz + entry.z + if x < pos1x then pos1x = x end + if y < pos1y then pos1y = y end + if z < pos1z then pos1z = z end + if x > pos2x then pos2x = x end + if y > pos2y then pos2y = y end + if z > pos2z then pos2z = z end + end + end + local pos1 = {x=pos1x, y=pos1y, z=pos1z} + local pos2 = {x=pos2x, y=pos2y, z=pos2z} + return pos1, pos2, count +end + +--loads the nodes represented by string `value` at position `originpos`, returning the number of nodes deserialized +--contains code based on [table.save/table.load](http://lua-users.org/wiki/SaveTableToFile) by ChillCode, available under the MIT license (GPL compatible) +worldedit.deserialize = function(originpos, value) + --make area stay loaded + local pos1, pos2 = worldedit.allocate(originpos, value) + local manip = minetest.get_voxel_manip() + manip:read_from_map(pos1, pos2) + + local originx, originy, originz = originpos.x, originpos.y, originpos.z + local count = 0 + local add_node, get_meta = minetest.add_node, minetest.get_meta + local version = worldedit.valueversion(value) + if version == 1 or version == 2 then --original flat table format + --obtain the node table + local get_tables = loadstring(value) + if not get_tables then --error loading value + return count + end + local tables = get_tables() + + --transform the node table into an array of nodes + for i = 1, #tables do + for j, v in pairs(tables[i]) do + if type(v) == "table" then + tables[i][j] = tables[v[1]] + end + end + end + local nodes = tables[1] + + --load the node array + count = #nodes + if version == 1 then --original flat table format + for index = 1, count do + local entry = nodes[index] + local pos = entry[1] + pos.x, pos.y, pos.z = originx - pos.x, originy - pos.y, originz - pos.z + add_node(pos, entry[2]) + end + else --previous meta flat table format + for index = 1, #nodes do + local entry = nodes[index] + entry.x, entry.y, entry.z = originx + entry.x, originy + entry.y, originz + entry.z + add_node(entry, entry) --entry acts both as position and as node + get_meta(entry):from_table(entry.meta) + end + end + elseif version == 3 then --previous list format + local pos = {x=0, y=0, z=0} + local node = {name="", param1=0, param2=0} + for x, y, z, name, param1, param2 in value:gmatch("([+-]?%d+)%s+([+-]?%d+)%s+([+-]?%d+)%s+([^%s]+)%s+(%d+)%s+(%d+)[^\r\n]*[\r\n]*") do --match node entries + pos.x, pos.y, pos.z = originx + tonumber(x), originy + tonumber(y), originz + tonumber(z) + node.name, node.param1, node.param2 = name, param1, param2 + add_node(pos, node) + count = count + 1 + end + elseif version == 4 then --current nested table format + --wip: this is a filthy hack that works surprisingly well + value = value:gsub("return%s*{", "", 1):gsub("}%s*$", "", 1) + local escaped = value:gsub("\\\\", "@@"):gsub("\\\"", "@@"):gsub("(\"[^\"]*\")", function(s) return string.rep("@", #s) end) + local startpos, startpos1, endpos = 1, 1 + local nodes = {} + while true do + startpos, endpos = escaped:find("},%s*{", startpos) + if not startpos then + break + end + local current = value:sub(startpos1, startpos) + table.insert(nodes, minetest.deserialize("return " .. current)) + startpos, startpos1 = endpos, endpos + end + table.insert(nodes, minetest.deserialize("return " .. value:sub(startpos1))) + + --local nodes = minetest.deserialize(value) --wip: this is broken for larger tables in the current version of LuaJIT + + --load the nodes + count = #nodes + for index = 1, count do + local entry = nodes[index] + entry.x, entry.y, entry.z = originx + entry.x, originy + entry.y, originz + entry.z + add_node(entry, entry) --entry acts both as position and as node + end + + --load the metadata + for index = 1, count do + local entry = nodes[index] + get_meta(entry):from_table(entry.meta) + end + end + return count +end diff --git a/mods/WorldEdit/worldedit/visualization.lua b/mods/WorldEdit/worldedit/visualization.lua new file mode 100755 index 00000000..a3a4ca3e --- /dev/null +++ b/mods/WorldEdit/worldedit/visualization.lua @@ -0,0 +1,142 @@ +worldedit = worldedit or {} +local minetest = minetest --local copy of global + +--modifies positions `pos1` and `pos2` so that each component of `pos1` is less than or equal to its corresponding conent of `pos2`, returning two new positions +worldedit.sort_pos = function(pos1, pos2) + pos1 = {x=pos1.x, y=pos1.y, z=pos1.z} + pos2 = {x=pos2.x, y=pos2.y, z=pos2.z} + if pos1.x > pos2.x then + pos2.x, pos1.x = pos1.x, pos2.x + end + if pos1.y > pos2.y then + pos2.y, pos1.y = pos1.y, pos2.y + end + if pos1.z > pos2.z then + pos2.z, pos1.z = pos1.z, pos2.z + end + return pos1, pos2 +end + +--determines the volume of the region defined by positions `pos1` and `pos2`, returning the volume +worldedit.volume = function(pos1, pos2) + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + return (pos2.x - pos1.x + 1) * (pos2.y - pos1.y + 1) * (pos2.z - pos1.z + 1) +end + +minetest.register_node("worldedit:placeholder", { + drawtype = "airlike", + paramtype = "light", + sunlight_propagates = true, + diggable = false, + groups = {not_in_creative_inventory=1}, +}) + +--hides all nodes in a region defined by positions `pos1` and `pos2` by non-destructively replacing them with invisible nodes, returning the number of nodes hidden +worldedit.hide = function(pos1, pos2) + --make area stay loaded + local manip = minetest.get_voxel_manip() + manip:read_from_map(pos1, pos2) + + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + local pos = {x=pos1.x, y=0, z=0} + local get_node, get_meta, add_node = minetest.get_node, minetest.get_meta, minetest.add_node + while pos.x <= pos2.x do + pos.y = pos1.y + while pos.y <= pos2.y do + pos.z = pos1.z + while pos.z <= pos2.z do + local node = get_node(pos) + if node.name ~= "worldedit:placeholder" then + local data = get_meta(pos):to_table() --obtain metadata of original node + data.fields.worldedit_placeholder = node.name --add the node's name + node.name = "worldedit:placeholder" --set node name + add_node(pos, node) --add placeholder node + get_meta(pos):from_table(data) --set placeholder metadata to the original node's metadata + end + pos.z = pos.z + 1 + end + pos.y = pos.y + 1 + end + pos.x = pos.x + 1 + end + return worldedit.volume(pos1, pos2) +end + +--suppresses all instances of `nodename` in a region defined by positions `pos1` and `pos2` by non-destructively replacing them with invisible nodes, returning the number of nodes suppressed +worldedit.suppress = function(pos1, pos2, nodename) + --ignore placeholder supression + if nodename == "worldedit:placeholder" then + return 0 + end + + --make area stay loaded + local manip = minetest.get_voxel_manip() + manip:read_from_map(pos1, pos2) + + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + local nodes = minetest.find_nodes_in_area(pos1, pos2, nodename) + local get_node, get_meta, add_node = minetest.get_node, minetest.get_meta, minetest.add_node + for _, pos in ipairs(nodes) do + local node = get_node(pos) + local data = get_meta(pos):to_table() --obtain metadata of original node + data.fields.worldedit_placeholder = node.name --add the node's name + node.name = "worldedit:placeholder" --set node name + add_node(pos, node) --add placeholder node + get_meta(pos):from_table(data) --set placeholder metadata to the original node's metadata + end + return #nodes +end + +--highlights all instances of `nodename` in a region defined by positions `pos1` and `pos2` by non-destructively hiding all other nodes, returning the number of nodes found +worldedit.highlight = function(pos1, pos2, nodename) + --make area stay loaded + local manip = minetest.get_voxel_manip() + manip:read_from_map(pos1, pos2) + + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + local pos = {x=pos1.x, y=0, z=0} + local get_node, get_meta, add_node = minetest.get_node, minetest.get_meta, minetest.add_node + local count = 0 + while pos.x <= pos2.x do + pos.y = pos1.y + while pos.y <= pos2.y do + pos.z = pos1.z + while pos.z <= pos2.z do + local node = get_node(pos) + if node.name == nodename then --node found + count = count + 1 + elseif node.name ~= "worldedit:placeholder" then --hide other nodes + local data = get_meta(pos):to_table() --obtain metadata of original node + data.fields.worldedit_placeholder = node.name --add the node's name + node.name = "worldedit:placeholder" --set node name + add_node(pos, node) --add placeholder node + get_meta(pos):from_table(data) --set placeholder metadata to the original node's metadata + end + pos.z = pos.z + 1 + end + pos.y = pos.y + 1 + end + pos.x = pos.x + 1 + end + return count +end + +--restores all nodes hidden with WorldEdit functions in a region defined by positions `pos1` and `pos2`, returning the number of nodes restored +worldedit.restore = function(pos1, pos2) + --make area stay loaded + local manip = minetest.get_voxel_manip() + manip:read_from_map(pos1, pos2) + + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + local nodes = minetest.find_nodes_in_area(pos1, pos2, "worldedit:placeholder") + local get_node, get_meta, add_node = minetest.get_node, minetest.get_meta, minetest.add_node + for _, pos in ipairs(nodes) do + local node = get_node(pos) + local data = get_meta(pos):to_table() --obtain node metadata + node.name = data.fields.worldedit_placeholder --set node name + data.fields.worldedit_placeholder = nil --delete old nodename + add_node(pos, node) --add original node + get_meta(pos):from_table(data) --set original node metadata + end + return #nodes +end diff --git a/mods/WorldEdit/worldedit_commands/depends.txt b/mods/WorldEdit/worldedit_commands/depends.txt new file mode 100755 index 00000000..df8caff2 --- /dev/null +++ b/mods/WorldEdit/worldedit_commands/depends.txt @@ -0,0 +1 @@ +worldedit \ No newline at end of file diff --git a/mods/WorldEdit/worldedit_commands/init.lua b/mods/WorldEdit/worldedit_commands/init.lua new file mode 100755 index 00000000..2209a8fb --- /dev/null +++ b/mods/WorldEdit/worldedit_commands/init.lua @@ -0,0 +1,1112 @@ +minetest.register_privilege("worldedit", "Can use WorldEdit commands") + +--wip: fold the hollow stuff into the main functions and add a hollow flag at the end, then add the compatibility stuff + +worldedit.set_pos = {} +worldedit.inspect = {} + +worldedit.pos1 = {} +worldedit.pos2 = {} +if minetest.place_schematic then + worldedit.prob_pos = {} + worldedit.prob_list = {} +end + +dofile(minetest.get_modpath("worldedit_commands") .. "/mark.lua") +dofile(minetest.get_modpath("worldedit_commands") .. "/safe.lua") + +local get_position = function(name) --position 1 retrieval function for when not using `safe_region` + local pos1 = worldedit.pos1[name] + if pos1 == nil then + worldedit.player_notify(name, "no position 1 selected") + end + return pos1 +end + +local get_node = function(name, nodename) + local node = worldedit.normalize_nodename(nodename) + if not node then + worldedit.player_notify(name, "invalid node name: " .. nodename) + return nil + end + return node +end + +worldedit.player_notify = function(name, message) + minetest.chat_send_player(name, "WorldEdit -!- " .. message, false) +end + +--determines whether `nodename` is a valid node name, returning a boolean +worldedit.normalize_nodename = function(nodename) + nodename = nodename:gsub("^%s*(.-)%s*$", "%1") + if nodename == "" then return nil end + local fullname = ItemStack({name=nodename}):get_name() --resolve aliases of node names to full names + if minetest.registered_nodes[fullname] or fullname == "air" then --directly found node name or alias of nodename + return fullname + end + for key, value in pairs(minetest.registered_nodes) do + if key:find(":" .. nodename, 1, true) then --found in mod + return key + end + end + nodename = nodename:lower() --lowercase both for case insensitive comparison + for key, value in pairs(minetest.registered_nodes) do + if value.description:lower() == nodename then --found in description + return key + end + end + return nil +end + +--determines the axis in which a player is facing, returning an axis ("x", "y", or "z") and the sign (1 or -1) +worldedit.player_axis = function(name) + local dir = minetest.get_player_by_name(name):get_look_dir() + local x, y, z = math.abs(dir.x), math.abs(dir.y), math.abs(dir.z) + if x > y then + if x > z then + return "x", dir.x > 0 and 1 or -1 + end + elseif y > z then + return "y", dir.y > 0 and 1 or -1 + end + return "z", dir.z > 0 and 1 or -1 +end + +minetest.register_chatcommand("/about", { + params = "", + description = "Get information about the mod", + func = function(name, param) + worldedit.player_notify(name, "WorldEdit " .. worldedit.version_string .. " is available on this server. Type /help to get a list of commands, or get more information at https://github.com/Uberi/MineTest-WorldEdit/") + end, +}) + +minetest.register_chatcommand("/inspect", { + params = "on/off/1/0/true/false/yes/no/enable/disable/", + description = "Enable or disable node inspection", + privs = {worldedit=true}, + func = function(name, param) + if param == "on" or param == "1" or param == "true" or param == "yes" or param == "enable" or param == "" then + worldedit.inspect[name] = true + local axis, sign = worldedit.player_axis(name) + worldedit.player_notify(name, string.format("inspector: inspection enabled for %s, currently facing the %s axis", + name, axis .. (sign > 0 and "+" or "-"))) + elseif param == "off" or param == "0" or param == "false" or param == "no" or param == "disable" then + worldedit.inspect[name] = nil + worldedit.player_notify(name, "inspector: inspection disabled") + else + worldedit.player_notify(name, "invalid usage: " .. param) + end + end, +}) + +minetest.register_on_punchnode(function(pos, node, puncher) + local name = puncher:get_player_name() + if worldedit.inspect[name] then + if minetest.check_player_privs(name, {worldedit=true}) then + local axis, sign = worldedit.player_axis(name) + message = string.format("inspector: %s at %s (param1=%d, param2=%d) punched by %s facing the %s axis", + node.name, minetest.pos_to_string(pos), node.param1, node.param2, name, axis .. (sign > 0 and "+" or "-")) + else + message = "inspector: worldedit privileges required" + end + worldedit.player_notify(name, message) + end +end) + +minetest.register_chatcommand("/reset", { + params = "", + description = "Reset the region so that it is empty", + privs = {worldedit=true}, + func = function(name, param) + worldedit.pos1[name] = nil + worldedit.pos2[name] = nil + worldedit.mark_pos1(name) + worldedit.mark_pos2(name) + worldedit.set_pos[name] = nil + worldedit.player_notify(name, "region reset") + end, +}) + +minetest.register_chatcommand("/mark", { + params = "", + description = "Show markers at the region positions", + privs = {worldedit=true}, + func = function(name, param) + worldedit.mark_pos1(name) + worldedit.mark_pos2(name) + worldedit.player_notify(name, "region marked") + end, +}) + +minetest.register_chatcommand("/unmark", { + params = "", + description = "Hide markers if currently shown", + privs = {worldedit=true}, + func = function(name, param) + local pos1, pos2 = worldedit.pos1[name], worldedit.pos2[name] + worldedit.pos1[name] = nil + worldedit.pos2[name] = nil + worldedit.mark_pos1(name) + worldedit.mark_pos2(name) + worldedit.pos1[name] = pos1 + worldedit.pos2[name] = pos2 + worldedit.player_notify(name, "region unmarked") + end, +}) + +minetest.register_chatcommand("/pos1", { + params = "", + description = "Set WorldEdit region position 1 to the player's location", + privs = {worldedit=true}, + func = function(name, param) + local pos = minetest.get_player_by_name(name):getpos() + pos.x, pos.y, pos.z = math.floor(pos.x + 0.5), math.floor(pos.y + 0.5), math.floor(pos.z + 0.5) + worldedit.pos1[name] = pos + worldedit.mark_pos1(name) + worldedit.player_notify(name, "position 1 set to " .. minetest.pos_to_string(pos)) + end, +}) + +minetest.register_chatcommand("/pos2", { + params = "", + description = "Set WorldEdit region position 2 to the player's location", + privs = {worldedit=true}, + func = function(name, param) + local pos = minetest.get_player_by_name(name):getpos() + pos.x, pos.y, pos.z = math.floor(pos.x + 0.5), math.floor(pos.y + 0.5), math.floor(pos.z + 0.5) + worldedit.pos2[name] = pos + worldedit.mark_pos2(name) + worldedit.player_notify(name, "position 2 set to " .. minetest.pos_to_string(pos)) + end, +}) + +minetest.register_chatcommand("/p", { + params = "set/set1/set2/get", + description = "Set WorldEdit region, WorldEdit position 1, or WorldEdit position 2 by punching nodes, or display the current WorldEdit region", + privs = {worldedit=true}, + func = function(name, param) + if param == "set" then --set both WorldEdit positions + worldedit.set_pos[name] = "pos1" + worldedit.player_notify(name, "select positions by punching two nodes") + elseif param == "set1" then --set WorldEdit position 1 + worldedit.set_pos[name] = "pos1only" + worldedit.player_notify(name, "select position 1 by punching a node") + elseif param == "set2" then --set WorldEdit position 2 + worldedit.set_pos[name] = "pos2" + worldedit.player_notify(name, "select position 2 by punching a node") + elseif param == "get" then --display current WorldEdit positions + if worldedit.pos1[name] ~= nil then + worldedit.player_notify(name, "position 1: " .. minetest.pos_to_string(worldedit.pos1[name])) + else + worldedit.player_notify(name, "position 1 not set") + end + if worldedit.pos2[name] ~= nil then + worldedit.player_notify(name, "position 2: " .. minetest.pos_to_string(worldedit.pos2[name])) + else + worldedit.player_notify(name, "position 2 not set") + end + else + worldedit.player_notify(name, "unknown subcommand: " .. param) + end + end, +}) + +minetest.register_chatcommand("/fixedpos", { + params = "set1/set2 x y z", + description = "Set a WorldEdit region position to the position at (, , )", + privs = {worldedit=true}, + func = function(name, param) + local found, _, flag, x, y, z = param:find("^(set[12])%s+([+-]?%d+)%s+([+-]?%d+)%s+([+-]?%d+)$") + if found == nil then + worldedit.player_notify(name, "invalid usage: " .. param) + return + end + local pos = {x=tonumber(x), y=tonumber(y), z=tonumber(z)} + if flag == "set1" then + worldedit.pos1[name] = pos + worldedit.mark_pos1(name) + worldedit.player_notify(name, "position 1 set to " .. minetest.pos_to_string(pos)) + else --flag == "set2" + worldedit.pos2[name] = pos + worldedit.mark_pos2(name) + worldedit.player_notify(name, "position 2 set to " .. minetest.pos_to_string(pos)) + end + end, +}) + +minetest.register_on_punchnode(function(pos, node, puncher) + local name = puncher:get_player_name() + if name ~= "" and worldedit.set_pos[name] ~= nil then --currently setting position + if worldedit.set_pos[name] == "pos1" then --setting position 1 + worldedit.pos1[name] = pos + worldedit.mark_pos1(name) + worldedit.set_pos[name] = "pos2" --set position 2 on the next invocation + worldedit.player_notify(name, "position 1 set to " .. minetest.pos_to_string(pos)) + elseif worldedit.set_pos[name] == "pos1only" then --setting position 1 only + worldedit.pos1[name] = pos + worldedit.mark_pos1(name) + worldedit.set_pos[name] = nil --finished setting positions + worldedit.player_notify(name, "position 1 set to " .. minetest.pos_to_string(pos)) + elseif worldedit.set_pos[name] == "pos2" then --setting position 2 + worldedit.pos2[name] = pos + worldedit.mark_pos2(name) + worldedit.set_pos[name] = nil --finished setting positions + worldedit.player_notify(name, "position 2 set to " .. minetest.pos_to_string(pos)) + elseif worldedit.set_pos[name] == "prob" then --setting Minetest schematic node probabilities + worldedit.prob_pos[name] = pos + minetest.show_formspec(puncher:get_player_name(), "prob_val_enter", "field[text;;]") + end + end +end) + +minetest.register_chatcommand("/volume", { + params = "", + description = "Display the volume of the current WorldEdit region", + privs = {worldedit=true}, + func = function(name, param) + local pos1, pos2 = worldedit.pos1[name], worldedit.pos2[name] + if pos1 == nil or pos2 == nil then + worldedit.player_notify(name, "no region selected") + return nil + end + + local volume = worldedit.volume(pos1, pos2) + local abs = math.abs + worldedit.player_notify(name, "current region has a volume of " .. volume .. " nodes (" + .. abs(pos2.x - pos1.x) + 1 .. "*" + .. abs(pos2.y - pos1.y) + 1 .. "*" + .. abs(pos2.z - pos1.z) + 1 .. ")") + end, +}) + +minetest.register_chatcommand("/set", { + params = "", + description = "Set the current WorldEdit region to ", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local node = get_node(name, param) + if not node then + worldedit.player_notify(name, "Could not identify node \"" .. param .. "\"") + return + end + + local count = worldedit.set(worldedit.pos1[name], worldedit.pos2[name], node) + worldedit.player_notify(name, count .. " nodes set") + end, check_region), +}) + +minetest.register_chatcommand("/mix", { + params = " ...", + description = "Fill the current WorldEdit region with a random mix of , ...", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local nodes = {} + for nodename in param:gmatch("[^%s]+") do + local node = get_node(name, nodename) + if not node then + worldedit.player_notify(name, "Could not identify node \"" .. name .. "\"") + return + end + nodes[#nodes + 1] = node + end + + local pos1, pos2 = worldedit.pos1[name], worldedit.pos2[name] + local count = worldedit.set(pos1, pos2, nodes) + worldedit.player_notify(name, count .. " nodes set") + end, check_region), +}) + +local check_replace = function(name, param) + local found, _, searchnode, replacenode = param:find("^([^%s]+)%s+(.+)$") + if found == nil then + worldedit.player_notify(name, "invalid usage: " .. param) + return nil + end + local newsearchnode = worldedit.normalize_nodename(searchnode) + if not newsearchnode then + worldedit.player_notify(name, "invalid search node name: " .. searchnode) + return nil + end + local newreplacenode = worldedit.normalize_nodename(replacenode) + if not newreplacenode then + worldedit.player_notify(name, "invalid replace node name: " .. replacenode) + return nil + end + return check_region(name, param) +end + +minetest.register_chatcommand("/replace", { + params = " ", + description = "Replace all instances of with in the current WorldEdit region", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local found, _, searchnode, replacenode = param:find("^([^%s]+)%s+(.+)$") + local newsearchnode = worldedit.normalize_nodename(searchnode) + local newreplacenode = worldedit.normalize_nodename(replacenode) + local count = worldedit.replace(worldedit.pos1[name], worldedit.pos2[name], newsearchnode, newreplacenode) + worldedit.player_notify(name, count .. " nodes replaced") + end, check_replace), +}) + +minetest.register_chatcommand("/replaceinverse", { + params = " ", + description = "Replace all nodes other than with in the current WorldEdit region", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local found, _, searchnode, replacenode = param:find("^([^%s]+)%s+(.+)$") + local newsearchnode = worldedit.normalize_nodename(searchnode) + local newreplacenode = worldedit.normalize_nodename(replacenode) + local count = worldedit.replaceinverse(worldedit.pos1[name], worldedit.pos2[name], searchnode, replacenode) + worldedit.player_notify(name, count .. " nodes replaced") + end, check_replace), +}) + +local check_sphere = function(name, param) + if worldedit.pos1[name] == nil then + worldedit.player_notify(name, "no position 1 selected") + return nil + end + local found, _, radius, nodename = param:find("^(%d+)%s+(.+)$") + if found == nil then + worldedit.player_notify(name, "invalid usage: " .. param) + return nil + end + local node = get_node(name, nodename) + if not node then return nil end + return math.ceil((4 * math.pi * (tonumber(radius) ^ 3)) / 3) --volume of sphere +end + +minetest.register_chatcommand("/hollowsphere", { + params = " ", + description = "Add hollow sphere centered at WorldEdit position 1 with radius , composed of ", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local found, _, radius, nodename = param:find("^(%d+)%s+(.+)$") + local node = get_node(name, nodename) + local count = worldedit.hollow_sphere(worldedit.pos1[name], tonumber(radius), node) + worldedit.player_notify(name, count .. " nodes added") + end, check_sphere), +}) + +minetest.register_chatcommand("/sphere", { + params = " ", + description = "Add sphere centered at WorldEdit position 1 with radius , composed of ", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local found, _, radius, nodename = param:find("^(%d+)%s+(.+)$") + local node = get_node(name, nodename) + local count = worldedit.sphere(worldedit.pos1[name], tonumber(radius), node) + worldedit.player_notify(name, count .. " nodes added") + end, check_sphere), +}) + +local check_dome = function(name, param) + if worldedit.pos1[name] == nil then + worldedit.player_notify(name, "no position 1 selected") + return nil + end + local found, _, radius, nodename = param:find("^(%d+)%s+(.+)$") + if found == nil then + worldedit.player_notify(name, "invalid usage: " .. param) + return nil + end + local node = get_node(name, nodename) + if not node then return nil end + return math.ceil((2 * math.pi * (tonumber(radius) ^ 3)) / 3) --volume of dome +end + +minetest.register_chatcommand("/hollowdome", { + params = " ", + description = "Add hollow dome centered at WorldEdit position 1 with radius , composed of ", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local found, _, radius, nodename = param:find("^(%d+)%s+(.+)$") + local node = get_node(name, nodename) + local count = worldedit.hollow_dome(worldedit.pos1[name], tonumber(radius), node) + worldedit.player_notify(name, count .. " nodes added") + end, check_dome), +}) + +minetest.register_chatcommand("/dome", { + params = " ", + description = "Add dome centered at WorldEdit position 1 with radius , composed of ", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local found, _, radius, nodename = param:find("^(%d+)%s+(.+)$") + local node = get_node(name, nodename) + local count = worldedit.dome(worldedit.pos1[name], tonumber(radius), node) + worldedit.player_notify(name, count .. " nodes added") + end, check_dome), +}) + +local check_cylinder = function(name, param) + if worldedit.pos1[name] == nil then + worldedit.player_notify(name, "no position 1 selected") + return nil + end + local found, _, axis, length, radius, nodename = param:find("^([xyz%?])%s+([+-]?%d+)%s+(%d+)%s+(.+)$") + if found == nil then + worldedit.player_notify(name, "invalid usage: " .. param) + return nil + end + local node = get_node(name, nodename) + if not node then return nil end + return math.ceil(math.pi * (tonumber(radius) ^ 2) * tonumber(length)) +end + +minetest.register_chatcommand("/hollowcylinder", { + params = "x/y/z/? ", + description = "Add hollow cylinder at WorldEdit position 1 along the x/y/z/? axis with length and radius , composed of ", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local found, _, axis, length, radius, nodename = param:find("^([xyz%?])%s+([+-]?%d+)%s+(%d+)%s+(.+)$") + length = tonumber(length) + if axis == "?" then + axis, sign = worldedit.player_axis(name) + length = length * sign + end + local node = get_node(name, nodename) + local count = worldedit.hollow_cylinder(worldedit.pos1[name], axis, length, tonumber(radius), node) + worldedit.player_notify(name, count .. " nodes added") + end, check_cylinder), +}) + +minetest.register_chatcommand("/cylinder", { + params = "x/y/z/? ", + description = "Add cylinder at WorldEdit position 1 along the x/y/z/? axis with length and radius , composed of ", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local found, _, axis, length, radius, nodename = param:find("^([xyz%?])%s+([+-]?%d+)%s+(%d+)%s+(.+)$") + length = tonumber(length) + if axis == "?" then + axis, sign = worldedit.player_axis(name) + length = length * sign + end + local node = get_node(name, nodename) + local count = worldedit.cylinder(worldedit.pos1[name], axis, length, tonumber(radius), node) + worldedit.player_notify(name, count .. " nodes added") + end, check_cylinder), +}) + +minetest.register_chatcommand("/pyramid", { + params = "x/y/z/? ", + description = "Add pyramid centered at WorldEdit position 1 along the x/y/z/? axis with height , composed of ", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local found, _, axis, height, nodename = param:find("^([xyz%?])%s+([+-]?%d+)%s+(.+)$") + height = tonumber(height) + if axis == "?" then + axis, sign = worldedit.player_axis(name) + height = height * sign + end + local node = get_node(name, nodename) + local count = worldedit.pyramid(worldedit.pos1[name], axis, height, node) + worldedit.player_notify(name, count .. " nodes added") + end, + function(name, param) + if worldedit.pos1[name] == nil then + worldedit.player_notify(name, "no position 1 selected") + return nil + end + local found, _, axis, height, nodename = param:find("^([xyz%?])%s+([+-]?%d+)%s+(.+)$") + if found == nil then + worldedit.player_notify(name, "invalid usage: " .. param) + return nil + end + local node = get_node(name, nodename) + if not node then return nil end + height = tonumber(height) + return math.ceil(((height * 2 + 1) ^ 2) * height / 3) + end), +}) + +minetest.register_chatcommand("/spiral", { + params = " ", + description = "Add spiral centered at WorldEdit position 1 with side length , height , space between walls , composed of ", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local found, _, length, height, space, nodename = param:find("^(%d+)%s+(%d+)%s+(%d+)%s+(.+)$") + local node = get_node(name, nodename) + local count = worldedit.spiral(worldedit.pos1[name], tonumber(length), tonumber(height), tonumber(space), node) + worldedit.player_notify(name, count .. " nodes added") + end, + function(name, param) + if worldedit.pos1[name] == nil then + worldedit.player_notify(name, "no position 1 selected") + return nil + end + local found, _, length, height, space, nodename = param:find("^(%d+)%s+(%d+)%s+(%d+)%s+(.+)$") + if found == nil then + worldedit.player_notify(name, "invalid usage: " .. param) + return nil + end + local node = get_node(name, nodename) + if not node then return nil end + return check_region(name, param) + end), +}) + +minetest.register_chatcommand("/copy", { + params = "x/y/z/? ", + description = "Copy the current WorldEdit region along the x/y/z/? axis by nodes", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local found, _, axis, amount = param:find("^([xyz%?])%s+([+-]?%d+)$") + if found == nil then + worldedit.player_notify(name, "invalid usage: " .. param) + return + end + amount = tonumber(amount) + if axis == "?" then + axis, sign = worldedit.player_axis(name) + amount = amount * sign + end + + local count = worldedit.copy(worldedit.pos1[name], worldedit.pos2[name], axis, amount) + worldedit.player_notify(name, count .. " nodes copied") + end, + function(name, param) + local volume = check_region(name, param) + return volume and volume * 2 or volume + end), +}) + +minetest.register_chatcommand("/move", { + params = "x/y/z/? ", + description = "Move the current WorldEdit region along the x/y/z/? axis by nodes", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local pos1, pos2 = worldedit.pos1[name], worldedit.pos2[name] + local found, _, axis, amount = param:find("^([xyz%?])%s+([+-]?%d+)$") + if found == nil then + worldedit.player_notify(name, "invalid usage: " .. param) + return + end + amount = tonumber(amount) + if axis == "?" then + axis, sign = worldedit.player_axis(name) + amount = amount * sign + end + + local count = worldedit.move(pos1, pos2, axis, amount) + + pos1[axis] = pos1[axis] + amount + pos2[axis] = pos2[axis] + amount + worldedit.mark_pos1(name) + worldedit.mark_pos2(name) + worldedit.player_notify(name, count .. " nodes moved") + end, check_region), +}) + +minetest.register_chatcommand("/stack", { + params = "x/y/z/? ", + description = "Stack the current WorldEdit region along the x/y/z/? axis times", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local found, _, axis, repetitions = param:find("^([xyz%?])%s+([+-]?%d+)$") + repetitions = tonumber(repetitions) + if axis == "?" then + axis, sign = worldedit.player_axis(name) + repetitions = repetitions * sign + end + local count = worldedit.stack(worldedit.pos1[name], worldedit.pos2[name], axis, repetitions) + worldedit.player_notify(name, count .. " nodes stacked") + end, + function(name, param) + local found, _, axis, repetitions = param:find("^([xyz%?])%s+([+-]?%d+)$") + if found == nil then + worldedit.player_notify(name, "invalid usage: " .. param) + end + local count = check_region(name, param) + if count then return (tonumber(repetitions) + 1) * count end + return nil + end), +}) + +minetest.register_chatcommand("/stack2", { + params = " ", + description = "Stack the current WorldEdit region times by offset , , ", + privs = {worldedit=true}, + func = function(name, param) + local pos1, pos2 = worldedit.pos1[name], worldedit.pos2[name] + if pos1 == nil or pos2 == nil then + worldedit.player_notify(name, "Select a position first!") + return + end + local repetitions, incs = param:match("(%d+)%s*(.+)") + if repetitions == nil then + worldedit.player_notify(name, "invalid count: " .. param) + return + end + repetitions = tonumber(repetitions) + + local x, y, z = incs:match("([+-]?%d+) ([+-]%d+) ([+-]%d+)") + if x == nil then + worldedit.player_notify(name, "invalid increments: " .. param) + return + end + x, y, z = tonumber(x), tonumber(y), tonumber(z) + + local count = worldedit.volume(pos1, pos2) * repetitions + + return safe_region(function() + worldedit.stack2(pos1, pos2, {x=x, y=y, z=z}, repetitions, + function() worldedit.player_notify(name, count .. " nodes stacked") end) + end, function() + return count + end)(name,param) -- more hax --wip: clean this up a little bit + end +}) + + +minetest.register_chatcommand("/stretch", { + params = " ", + description = "Scale the current WorldEdit positions and region by a factor of , , along the X, Y, and Z axes, repectively, with position 1 as the origin", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local pos1, pos2 = worldedit.pos1[name], worldedit.pos2[name] + local found, _, stretchx, stretchy, stretchz = param:find("^(%d+)%s+(%d+)%s+(%d+)$") + stretchx, stretchy, stretchz = tonumber(stretchx), tonumber(stretchy), tonumber(stretchz) + local count, pos1, pos2 = worldedit.stretch(pos1, pos2, stretchx, stretchy, stretchz) + + --reset markers to scaled positions + worldedit.pos1[name] = pos1 + worldedit.pos2[name] = pos2 + worldedit.mark_pos1(name) + worldedit.mark_pos2(name) + + worldedit.player_notify(name, count .. " nodes stretched") + end, + function(name, param) + local found, _, stretchx, stretchy, stretchz = param:find("^(%d+)%s+(%d+)%s+(%d+)$") + if found == nil then + worldedit.player_notify(name, "invalid usage: " .. param) + return nil + end + stretchx, stretchy, stretchz = tonumber(stretchx), tonumber(stretchy), tonumber(stretchz) + if stretchx == 0 or stretchy == 0 or stretchz == 0 then + worldedit.player_notify(name, "invalid scaling factors: " .. param) + end + local count = check_region(name, param) + if count then return tonumber(stretchx) * tonumber(stretchy) * tonumber(stretchz) * count end + return nil + end), +}) + +minetest.register_chatcommand("/transpose", { + params = "x/y/z/? x/y/z/?", + description = "Transpose the current WorldEdit region along the x/y/z/? and x/y/z/? axes", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local pos1, pos2 = worldedit.pos1[name], worldedit.pos2[name] + local found, _, axis1, axis2 = param:find("^([xyz%?])%s+([xyz%?])$") + if axis1 == "?" then axis1 = worldedit.player_axis(name) end + if axis2 == "?" then axis2 = worldedit.player_axis(name) end + local count, pos1, pos2 = worldedit.transpose(pos1, pos2, axis1, axis2) + + --reset markers to transposed positions + worldedit.pos1[name] = pos1 + worldedit.pos2[name] = pos2 + worldedit.mark_pos1(name) + worldedit.mark_pos2(name) + + worldedit.player_notify(name, count .. " nodes transposed") + end, + function(name, param) + local found, _, axis1, axis2 = param:find("^([xyz%?])%s+([xyz%?])$") + if found == nil then + worldedit.player_notify(name, "invalid usage: " .. param) + return nil + end + if axis1 == axis2 then + worldedit.player_notify(name, "invalid usage: axes must be different") + return nil + end + return check_region(name, param) + end), +}) + +minetest.register_chatcommand("/flip", { + params = "x/y/z/?", + description = "Flip the current WorldEdit region along the x/y/z/? axis", + privs = {worldedit=true}, + func = safe_region(function(name, param) + if param == "?" then param = worldedit.player_axis(name) end + local count = worldedit.flip(worldedit.pos1[name], worldedit.pos2[name], param) + worldedit.player_notify(name, count .. " nodes flipped") + end, + function(name, param) + if param ~= "x" and param ~= "y" and param ~= "z" and param ~= "?" then + worldedit.player_notify(name, "invalid usage: " .. param) + return nil + end + return check_region(name, param) + end), +}) + +minetest.register_chatcommand("/rotate", { + params = " ", + description = "Rotate the current WorldEdit region around the axis by angle (90 degree increment)", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local pos1, pos2 = worldedit.pos1[name], worldedit.pos2[name] + local found, _, axis, angle = param:find("^([xyz%?])%s+([+-]?%d+)$") + if axis == "?" then axis = worldedit.player_axis(name) end + local count, pos1, pos2 = worldedit.rotate(pos1, pos2, axis, angle) + + --reset markers to rotated positions + worldedit.pos1[name] = pos1 + worldedit.pos2[name] = pos2 + worldedit.mark_pos1(name) + worldedit.mark_pos2(name) + + worldedit.player_notify(name, count .. " nodes rotated") + end, + function(name, param) + local found, _, axis, angle = param:find("^([xyz%?])%s+([+-]?%d+)$") + if found == nil then + worldedit.player_notify(name, "invalid usage: " .. param) + return nil + end + if angle % 90 ~= 0 then + worldedit.player_notify(name, "invalid usage: angle must be multiple of 90") + return nil + end + return check_region(name, param) + end), +}) + +minetest.register_chatcommand("/orient", { + params = "", + description = "Rotate oriented nodes in the current WorldEdit region around the Y axis by angle (90 degree increment)", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local found, _, angle = param:find("^([+-]?%d+)$") + local count = worldedit.orient(worldedit.pos1[name], worldedit.pos2[name], angle) + worldedit.player_notify(name, count .. " nodes oriented") + end, + function(name, param) + local found, _, angle = param:find("^([+-]?%d+)$") + if found == nil then + worldedit.player_notify(name, "invalid usage: " .. param) + return nil + end + if angle % 90 ~= 0 then + worldedit.player_notify(name, "invalid usage: angle must be multiple of 90") + return nil + end + return check_region(name, param) + end), +}) + +minetest.register_chatcommand("/fixlight", { + params = "", + description = "Fix the lighting in the current WorldEdit region", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local count = worldedit.fixlight(worldedit.pos1[name], worldedit.pos2[name]) + worldedit.player_notify(name, count .. " nodes updated") + end), +}) + +minetest.register_chatcommand("/hide", { + params = "", + description = "Hide all nodes in the current WorldEdit region non-destructively", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local count = worldedit.hide(worldedit.pos1[name], worldedit.pos2[name]) + worldedit.player_notify(name, count .. " nodes hidden") + end), +}) + +minetest.register_chatcommand("/suppress", { + params = "", + description = "Suppress all in the current WorldEdit region non-destructively", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local node = get_node(name, param) + local count = worldedit.suppress(worldedit.pos1[name], worldedit.pos2[name], node) + worldedit.player_notify(name, count .. " nodes suppressed") + end, check_set), +}) + +minetest.register_chatcommand("/highlight", { + params = "", + description = "Highlight in the current WorldEdit region by hiding everything else non-destructively", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local node = get_node(name, param) + local count = worldedit.highlight(worldedit.pos1[name], worldedit.pos2[name], node) + worldedit.player_notify(name, count .. " nodes highlighted") + end, check_set), +}) + +minetest.register_chatcommand("/restore", { + params = "", + description = "Restores nodes hidden with WorldEdit in the current WorldEdit region", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local count = worldedit.restore(worldedit.pos1[name], worldedit.pos2[name]) + worldedit.player_notify(name, count .. " nodes restored") + end), +}) + +minetest.register_chatcommand("/save", { + params = "", + description = "Save the current WorldEdit region to \"(world folder)/schems/.we\"", + privs = {worldedit=true}, + func = safe_region(function(name, param) + if param == "" then + worldedit.player_notify(name, "invalid usage: " .. param) + return + end + if not string.find(param, "^[%w \t.,+-_=!@#$%%^&*()%[%]{};'\"]+$") then + worldedit.player_notify(name, "invalid file name: " .. param) + return + end + + local result, count = worldedit.serialize(worldedit.pos1[name], worldedit.pos2[name]) + + local path = minetest.get_worldpath() .. "/schems" + local filename = path .. "/" .. param .. ".we" + filename = filename:gsub("\"", "\\\""):gsub("\\", "\\\\") --escape any nasty characters + os.execute("mkdir \"" .. path .. "\"") --create directory if it does not already exist + local file, err = io.open(filename, "wb") + if err ~= nil then + worldedit.player_notify(name, "could not save file to \"" .. filename .. "\"") + return + end + file:write(result) + file:flush() + file:close() + + worldedit.player_notify(name, count .. " nodes saved") + end), +}) + +minetest.register_chatcommand("/allocate", { + params = "", + description = "Set the region defined by nodes from \"(world folder)/schems/.we\" as the current WorldEdit region", + privs = {worldedit=true}, + func = function(name, param) + local pos = get_position(name) + if pos == nil then return end + + if param == "" then + worldedit.player_notify(name, "invalid usage: " .. param) + return + end + if not string.find(param, "^[%w \t.,+-_=!@#$%%^&*()%[%]{};'\"]+$") then + worldedit.player_notify(name, "invalid file name: " .. param) + return + end + + local filename = minetest.get_worldpath() .. "/schems/" .. param .. ".we" + local file, err = io.open(filename, "rb") + if err ~= nil then + worldedit.player_notify(name, "could not open file \"" .. filename .. "\"") + return + end + local value = file:read("*a") + file:close() + + if worldedit.valueversion(value) == 0 then --unknown version + worldedit.player_notify(name, "invalid file: file is invalid or created with newer version of WorldEdit") + return + end + local nodepos1, nodepos2, count = worldedit.allocate(pos, value) + + worldedit.pos1[name] = nodepos1 + worldedit.mark_pos1(name) + worldedit.pos2[name] = nodepos2 + worldedit.mark_pos2(name) + + worldedit.player_notify(name, count .. " nodes allocated") + end, +}) + +minetest.register_chatcommand("/load", { + params = "", + description = "Load nodes from \"(world folder)/schems/[.we[m]]\" with position 1 of the current WorldEdit region as the origin", + privs = {worldedit=true}, + func = function(name, param) + local pos = get_position(name) + if pos == nil then return end + + if param == "" then + worldedit.player_notify(name, "invalid usage: " .. param) + return + end + if not string.find(param, "^[%w \t.,+-_=!@#$%%^&*()%[%]{};'\"]+$") then + worldedit.player_notify(name, "invalid file name: " .. param) + return + end + + --find the file in the world path + local testpaths = { + minetest.get_worldpath() .. "/schems/" .. param, + minetest.get_worldpath() .. "/schems/" .. param .. ".we", + minetest.get_worldpath() .. "/schems/" .. param .. ".wem", + } + local file, err + for index, path in ipairs(testpaths) do + file, err = io.open(path, "rb") + if not err then + break + end + end + if err then + worldedit.player_notify(name, "could not open file \"" .. param .. "\"") + return + end + local value = file:read("*a") + file:close() + + if worldedit.valueversion(value) == 0 then --unknown version + worldedit.player_notify(name, "invalid file: file is invalid or created with newer version of WorldEdit") + return + end + + local count = worldedit.deserialize(pos, value) + + worldedit.player_notify(name, count .. " nodes loaded") + end, +}) + +minetest.register_chatcommand("/lua", { + params = "", + description = "Executes as a Lua chunk in the global namespace", + privs = {worldedit=true, server=true}, + func = function(name, param) + local admin = minetest.setting_get("name") + if not admin or not name == admin then + worldedit.player_notify(name, "this command can only be run by the server administrator") + return + end + local err = worldedit.lua(param) + if err then + worldedit.player_notify(name, "code error: " .. err) + else + worldedit.player_notify(name, "code successfully executed", false) + end + end, +}) + +minetest.register_chatcommand("/luatransform", { + params = "", + description = "Executes as a Lua chunk in the global namespace with the variable pos available, for each node in the current WorldEdit region", + privs = {worldedit=true, server=true}, + func = safe_region(function(name, param) + local admin = minetest.setting_get("name") + if not admin or not name == admin then + worldedit.player_notify(name, "this command can only be run by the server administrator") + return + end + + local err = worldedit.luatransform(worldedit.pos1[name], worldedit.pos2[name], param) + if err then + worldedit.player_notify(name, "code error: " .. err, false) + else + worldedit.player_notify(name, "code successfully executed", false) + end + end), +}) + +minetest.register_chatcommand("/mtschemcreate", { + params = "", + description = "Save the current WorldEdit region using the Minetest Schematic format to \"(world folder)/schems/.mts\"", + privs = {worldedit=true}, + func = safe_region(function(name, param) + if param == nil then + worldedit.player_notify(name, "No filename specified") + return + end + + local path = minetest.get_worldpath() .. "/schems" + local filename = path .. "/" .. param .. ".mts" + filename = filename:gsub("\"", "\\\""):gsub("\\", "\\\\") --escape any nasty characters + os.execute("mkdir \"" .. path .. "\"") --create directory if it does not already exist + + local ret = minetest.create_schematic(worldedit.pos1[name], worldedit.pos2[name], worldedit.prob_list[name], filename) + if ret == nil then + worldedit.player_notify(name, "failed to create Minetest schematic", false) + else + worldedit.player_notify(name, "saved Minetest schematic to " .. param, false) + end + worldedit.prob_list[name] = {} + end), +}) + +minetest.register_chatcommand("/mtschemplace", { + params = "", + description = "Load nodes from \"(world folder)/schems/.mts\" with position 1 of the current WorldEdit region as the origin", + privs = {worldedit=true}, + func = function(name, param) + if param == nil then + worldedit.player_notify(name, "no filename specified") + return + end + + local pos = get_position(name) + if pos == nil then return end + + local path = minetest.get_worldpath() .. "/schems/" .. param .. ".mts" + if minetest.place_schematic(pos, path) == nil then + worldedit.player_notify(name, "failed to place Minetest schematic", false) + else + worldedit.player_notify(name, "placed Minetest schematic " .. param .. + " at " .. minetest.pos_to_string(pos), false) + end + end, +}) + +minetest.register_chatcommand("/mtschemprob", { + params = "start/finish/get", + description = "Begins node probability entry for Minetest schematics, gets the nodes that have probabilities set, or ends node probability entry", + privs = {worldedit=true}, + func = function(name, param) + if param == "start" then --start probability setting + worldedit.set_pos[name] = "prob" + worldedit.prob_list[name] = {} + worldedit.player_notify(name, "select Minetest schematic probability values by punching nodes") + elseif param == "finish" then --finish probability setting + worldedit.set_pos[name] = nil + worldedit.player_notify(name, "finished Minetest schematic probability selection") + elseif param == "get" then --get all nodes that had probabilities set on them + local text = "" + local problist = worldedit.prob_list[name] + if problist == nil then + return + end + for k,v in pairs(problist) do + local prob = math.floor(((v["prob"] / 256) * 100) * 100 + 0.5) / 100 + text = text .. minetest.pos_to_string(v["pos"]) .. ": " .. prob .. "% | " + end + worldedit.player_notify(name, "currently set node probabilities:") + worldedit.player_notify(name, text) + else + worldedit.player_notify(name, "unknown subcommand: " .. param) + end + end, +}) + +minetest.register_on_player_receive_fields( + function(player, formname, fields) + if (formname == "prob_val_enter") and (fields.text ~= "") then + local name = player:get_player_name() + local prob_entry = {pos=worldedit.prob_pos[name], prob=tonumber(fields.text)} + local index = table.getn(worldedit.prob_list[name]) + 1 + worldedit.prob_list[name][index] = prob_entry + end + end +) + +minetest.register_chatcommand("/clearobjects", { + params = "", + description = "Clears all objects within the WorldEdit region", + privs = {worldedit=true}, + func = safe_region(function(name, param) + local count = worldedit.clearobjects(worldedit.pos1[name], worldedit.pos2[name]) + worldedit.player_notify(name, count .. " objects cleared") + end), +}) diff --git a/mods/WorldEdit/worldedit_commands/mark.lua b/mods/WorldEdit/worldedit_commands/mark.lua new file mode 100755 index 00000000..ffa907bd --- /dev/null +++ b/mods/WorldEdit/worldedit_commands/mark.lua @@ -0,0 +1,161 @@ +worldedit.marker1 = {} +worldedit.marker2 = {} +worldedit.marker_region = {} + +--marks worldedit region position 1 +worldedit.mark_pos1 = function(name) + local pos1, pos2 = worldedit.pos1[name], worldedit.pos2[name] + + if pos1 ~= nil then + --make area stay loaded + local manip = minetest.get_voxel_manip() + manip:read_from_map(pos1, pos1) + end + if worldedit.marker1[name] ~= nil then --marker already exists + worldedit.marker1[name]:remove() --remove marker + worldedit.marker1[name] = nil + end + if pos1 ~= nil then + --add marker + worldedit.marker1[name] = minetest.add_entity(pos1, "worldedit:pos1") + if worldedit.marker1[name] ~= nil then + worldedit.marker1[name]:get_luaentity().name = name + end + end + worldedit.mark_region(name) +end + +--marks worldedit region position 2 +worldedit.mark_pos2 = function(name) + local pos1, pos2 = worldedit.pos1[name], worldedit.pos2[name] + + if pos2 ~= nil then + --make area stay loaded + local manip = minetest.get_voxel_manip() + manip:read_from_map(pos2, pos2) + end + if worldedit.marker2[name] ~= nil then --marker already exists + worldedit.marker2[name]:remove() --remove marker + worldedit.marker2[name] = nil + end + if pos2 ~= nil then + --add marker + worldedit.marker2[name] = minetest.add_entity(pos2, "worldedit:pos2") + if worldedit.marker2[name] ~= nil then + worldedit.marker2[name]:get_luaentity().name = name + end + end + worldedit.mark_region(name) +end + +worldedit.mark_region = function(name) + local pos1, pos2 = worldedit.pos1[name], worldedit.pos2[name] + + if worldedit.marker_region[name] ~= nil then --marker already exists + --wip: make the area stay loaded somehow + for _, entity in ipairs(worldedit.marker_region[name]) do + entity:remove() + end + worldedit.marker_region[name] = nil + end + if pos1 ~= nil and pos2 ~= nil then + local pos1, pos2 = worldedit.sort_pos(pos1, pos2) + local thickness = 0.2 + local sizex, sizey, sizez = (1 + pos2.x - pos1.x) / 2, (1 + pos2.y - pos1.y) / 2, (1 + pos2.z - pos1.z) / 2 + + --make area stay loaded + local manip = minetest.get_voxel_manip() + manip:read_from_map(pos1, pos2) + + local markers = {} + + --XY plane markers + for _, z in ipairs({pos1.z - 0.5, pos2.z + 0.5}) do + local marker = minetest.add_entity({x=pos1.x + sizex - 0.5, y=pos1.y + sizey - 0.5, z=z}, "worldedit:region_cube") + marker:set_properties({ + visual_size={x=sizex * 2, y=sizey * 2}, + collisionbox = {-sizex, -sizey, -thickness, sizex, sizey, thickness}, + }) + marker:get_luaentity().name = name + table.insert(markers, marker) + end + + --YZ plane markers + for _, x in ipairs({pos1.x - 0.5, pos2.x + 0.5}) do + local marker = minetest.add_entity({x=x, y=pos1.y + sizey - 0.5, z=pos1.z + sizez - 0.5}, "worldedit:region_cube") + marker:set_properties({ + visual_size={x=sizez * 2, y=sizey * 2}, + collisionbox = {-thickness, -sizey, -sizez, thickness, sizey, sizez}, + }) + marker:setyaw(math.pi / 2) + marker:get_luaentity().name = name + table.insert(markers, marker) + end + + worldedit.marker_region[name] = markers + end +end + +minetest.register_entity(":worldedit:pos1", { + initial_properties = { + visual = "cube", + visual_size = {x=1.1, y=1.1}, + textures = {"worldedit_pos1.png", "worldedit_pos1.png", + "worldedit_pos1.png", "worldedit_pos1.png", + "worldedit_pos1.png", "worldedit_pos1.png"}, + collisionbox = {-0.55, -0.55, -0.55, 0.55, 0.55, 0.55}, + physical = false, + }, + on_step = function(self, dtime) + if worldedit.marker1[self.name] == nil then + self.object:remove() + end + end, + on_punch = function(self, hitter) + self.object:remove() + worldedit.marker1[self.name] = nil + end, +}) + +minetest.register_entity(":worldedit:pos2", { + initial_properties = { + visual = "cube", + visual_size = {x=1.1, y=1.1}, + textures = {"worldedit_pos2.png", "worldedit_pos2.png", + "worldedit_pos2.png", "worldedit_pos2.png", + "worldedit_pos2.png", "worldedit_pos2.png"}, + collisionbox = {-0.55, -0.55, -0.55, 0.55, 0.55, 0.55}, + physical = false, + }, + on_step = function(self, dtime) + if worldedit.marker2[self.name] == nil then + self.object:remove() + end + end, + on_punch = function(self, hitter) + self.object:remove() + worldedit.marker2[self.name] = nil + end, +}) + +minetest.register_entity(":worldedit:region_cube", { + initial_properties = { + visual = "upright_sprite", + visual_size = {x=1.1, y=1.1}, + textures = {"worldedit_cube.png"}, + visual_size = {x=10, y=10}, + physical = false, + }, + on_step = function(self, dtime) + if worldedit.marker_region[self.name] == nil then + self.object:remove() + return + end + end, + on_punch = function(self, hitter) + for _, entity in ipairs(worldedit.marker_region[self.name]) do + entity:remove() + end + worldedit.marker_region[self.name] = nil + end, +}) \ No newline at end of file diff --git a/mods/WorldEdit/worldedit_commands/safe.lua b/mods/WorldEdit/worldedit_commands/safe.lua new file mode 100755 index 00000000..0da5e333 --- /dev/null +++ b/mods/WorldEdit/worldedit_commands/safe.lua @@ -0,0 +1,65 @@ +local safe_region_callback = {} +local safe_region_param = {} + +check_region = function(name, param) + local pos1, pos2 = worldedit.pos1[name], worldedit.pos2[name] --obtain positions + if pos1 == nil or pos2 == nil then + worldedit.player_notify(name, "no region selected") + return nil + end + return worldedit.volume(pos1, pos2) +end + +--`callback` is a callback to run when the user confirms +--`nodes_needed` is a function accepting `param`, `pos1`, and `pos2` to calculate the number of nodes needed +safe_region = function(callback, nodes_needed) + --default node volume calculation + nodes_needed = nodes_needed or check_region + + return function(name, param) + --check if the operation applies to a safe number of nodes + local count = nodes_needed(name, param) + if count == nil then return end --invalid command + if count < 10000 then + return callback(name, param) + end + + --save callback to call later + safe_region_callback[name], safe_region_param[name] = callback, param + worldedit.player_notify(name, "WARNING: this operation could affect up to " .. count .. " nodes; type //y to continue or //n to cancel") + end +end + +minetest.register_chatcommand("/y", { + params = "", + description = "Confirm a pending operation", + func = function(name) + local callback, param = safe_region_callback[name], safe_region_param[name] + if not callback then + worldedit.player_notify(name, "no operation pending") + return + end + + --obtain positions + local pos1, pos2 = worldedit.pos1[name], worldedit.pos2[name] + if pos1 == nil or pos2 == nil then + worldedit.player_notify(name, "no region selected") + return + end + + safe_region_callback[name], safe_region_param[name] = nil, nil --reset pending operation + callback(name, param, pos1, pos2) + end, +}) + +minetest.register_chatcommand("/n", { + params = "", + description = "Confirm a pending operation", + func = function(name) + if not safe_region_callback[name] then + worldedit.player_notify(name, "no operation pending") + return + end + safe_region_callback[name], safe_region_param[name] = nil, nil + end, +}) diff --git a/mods/WorldEdit/worldedit_commands/textures/worldedit_cube.png b/mods/WorldEdit/worldedit_commands/textures/worldedit_cube.png new file mode 100755 index 00000000..fde36a87 Binary files /dev/null and b/mods/WorldEdit/worldedit_commands/textures/worldedit_cube.png differ diff --git a/mods/WorldEdit/worldedit_commands/textures/worldedit_pos1.png b/mods/WorldEdit/worldedit_commands/textures/worldedit_pos1.png new file mode 100755 index 00000000..4c304aa8 Binary files /dev/null and b/mods/WorldEdit/worldedit_commands/textures/worldedit_pos1.png differ diff --git a/mods/WorldEdit/worldedit_commands/textures/worldedit_pos2.png b/mods/WorldEdit/worldedit_commands/textures/worldedit_pos2.png new file mode 100755 index 00000000..1502f165 Binary files /dev/null and b/mods/WorldEdit/worldedit_commands/textures/worldedit_pos2.png differ diff --git a/mods/WorldEdit/worldedit_gui/depends.txt b/mods/WorldEdit/worldedit_gui/depends.txt new file mode 100755 index 00000000..d603ac9c --- /dev/null +++ b/mods/WorldEdit/worldedit_gui/depends.txt @@ -0,0 +1,5 @@ +worldedit +worldedit_commands +unified_inventory? +inventory_plus? +creative? \ No newline at end of file diff --git a/mods/WorldEdit/worldedit_gui/functionality.lua b/mods/WorldEdit/worldedit_gui/functionality.lua new file mode 100755 index 00000000..b4e6ee66 --- /dev/null +++ b/mods/WorldEdit/worldedit_gui/functionality.lua @@ -0,0 +1,657 @@ +--saved state for each player +local gui_nodename1 = {} --mapping of player names to node names (arbitrary strings may also appear as values) +local gui_nodename2 = {} --mapping of player names to node names (arbitrary strings may also appear as values) +local gui_axis1 = {} --mapping of player names to axes (one of 1, 2, 3, or 4, representing the axes in the `axis_indices` table below) +local gui_axis2 = {} --mapping of player names to axes (one of 1, 2, 3, or 4, representing the axes in the `axis_indices` table below) +local gui_distance1 = {} --mapping of player names to a distance (arbitrary strings may also appear as values) +local gui_distance2 = {} --mapping of player names to a distance (arbitrary strings may also appear as values) +local gui_distance3 = {} --mapping of player names to a distance (arbitrary strings may also appear as values) +local gui_count1 = {} --mapping of player names to a quantity (arbitrary strings may also appear as values) +local gui_count2 = {} --mapping of player names to a quantity (arbitrary strings may also appear as values) +local gui_count3 = {} --mapping of player names to a quantity (arbitrary strings may also appear as values) +local gui_angle = {} --mapping of player names to an angle (one of 90, 180, 270, representing the angle in degrees clockwise) +local gui_filename = {} --mapping of player names to file names (arbitrary strings may also appear as values) +local gui_formspec = {} --mapping of player names to formspecs +local gui_code = {} --mapping of player names to formspecs + +--set default values +setmetatable(gui_nodename1, {__index = function() return "Cobblestone" end}) +setmetatable(gui_nodename2, {__index = function() return "Stone" end}) +setmetatable(gui_axis1, {__index = function() return 4 end}) +setmetatable(gui_axis2, {__index = function() return 1 end}) +setmetatable(gui_distance1, {__index = function() return "10" end}) +setmetatable(gui_distance2, {__index = function() return "5" end}) +setmetatable(gui_distance3, {__index = function() return "2" end}) +setmetatable(gui_count1, {__index = function() return "3" end}) +setmetatable(gui_count2, {__index = function() return "6" end}) +setmetatable(gui_count3, {__index = function() return "4" end}) +setmetatable(gui_angle, {__index = function() return 90 end}) +setmetatable(gui_filename, {__index = function() return "building" end}) +setmetatable(gui_formspec, {__index = function() return "size[5,5]\nlabel[0,0;Hello, world!]" end}) +setmetatable(gui_code, {__index = function() return "minetest.chat_send_player(\"singleplayer\", \"Hello, world!\")" end}) + +local axis_indices = {["X axis"]=1, ["Y axis"]=2, ["Z axis"]=3, ["Look direction"]=4} +local axis_values = {"x", "y", "z", "?"} +setmetatable(axis_indices, {__index = function () return 4 end}) +setmetatable(axis_values, {__index = function () return "?" end}) + +local angle_indices = {["90 degrees"]=1, ["180 degrees"]=2, ["270 degrees"]=3} +local angle_values = {90, 180, 270} +setmetatable(angle_indices, {__index = function () return 1 end}) +setmetatable(angle_values, {__index = function () return 90 end}) + +--given multiple sets of privileges, produces a single set of privs that would have the same effect as requiring all of them at the same time +local combine_privs = function(...) + local result = {} + for i, privs in ipairs({...}) do + for name, value in pairs(privs) do + if result[name] ~= nil and result[name] ~= value then --the priv must be both true and false, which can never happen + return {__fake_priv_that_nobody_has__=true} --priviledge table that can never be satisfied + end + result[name] = value + end + end + return result +end + +worldedit.register_gui_function("worldedit_gui_about", { + name = "About", privs = minetest.chatcommands["/about"].privs, + on_select = function(name) + minetest.chatcommands["/about"].func(name, "") + end, +}) + +worldedit.register_gui_function("worldedit_gui_inspect", { + name = "Toggle Inspect", privs = minetest.chatcommands["/inspect"].privs, + on_select = function(name) + minetest.chatcommands["/inspect"].func(name, worldedit.inspect[name] and "disable" or "enable") + end, +}) + +worldedit.register_gui_function("worldedit_gui_region", { + name = "Get/Set Region", privs = combine_privs(minetest.chatcommands["/p"].privs, minetest.chatcommands["/pos1"].privs, minetest.chatcommands["/pos2"].privs, minetest.chatcommands["/reset"].privs, minetest.chatcommands["/mark"].privs, minetest.chatcommands["/unmark"].privs, minetest.chatcommands["/volume"].privs, minetest.chatcommands["/fixedpos"].privs), + get_formspec = function(name) + local pos1, pos2 = worldedit.pos1[name], worldedit.pos2[name] + return "size[9,7]" .. worldedit.get_formspec_header("worldedit_gui_region") .. + "button_exit[0,1;3,0.8;worldedit_gui_p_get;Get Positions]" .. + "button_exit[3,1;3,0.8;worldedit_gui_p_set1;Choose Position 1]" .. + "button_exit[6,1;3,0.8;worldedit_gui_p_set2;Choose Position 2]" .. + "button_exit[0,2;3,0.8;worldedit_gui_pos1;Position 1 Here]" .. + "button_exit[3,2;3,0.8;worldedit_gui_pos2;Position 2 Here]" .. + "button_exit[6,2;3,0.8;worldedit_gui_reset;Reset Region]" .. + "button_exit[0,3;3,0.8;worldedit_gui_mark;Mark Region]" .. + "button_exit[3,3;3,0.8;worldedit_gui_unmark;Unmark Region]" .. + "button_exit[6,3;3,0.8;worldedit_gui_volume;Region Volume]" .. + "label[0,4.7;Position 1]" .. + string.format("field[2,5;1.5,0.8;worldedit_gui_fixedpos_pos1x;X ;%s]", pos1 and pos1.x or "") .. + string.format("field[3.5,5;1.5,0.8;worldedit_gui_fixedpos_pos1y;Y ;%s]", pos1 and pos1.y or "") .. + string.format("field[5,5;1.5,0.8;worldedit_gui_fixedpos_pos1z;Z ;%s]", pos1 and pos1.z or "") .. + "button_exit[6.5,4.68;2.5,0.8;worldedit_gui_fixedpos_pos1_submit;Set Position 1]" .. + "label[0,6.2;Position 2]" .. + string.format("field[2,6.5;1.5,0.8;worldedit_gui_fixedpos_pos2x;X ;%s]", pos2 and pos2.x or "") .. + string.format("field[3.5,6.5;1.5,0.8;worldedit_gui_fixedpos_pos2y;Y ;%s]", pos2 and pos2.y or "") .. + string.format("field[5,6.5;1.5,0.8;worldedit_gui_fixedpos_pos2z;Z ;%s]", pos2 and pos2.z or "") .. + "button_exit[6.5,6.18;2.5,0.8;worldedit_gui_fixedpos_pos2_submit;Set Position 2]" + end, +}) + +worldedit.register_gui_handler("worldedit_gui_region", function(name, fields) + if fields.worldedit_gui_p_get then + minetest.chatcommands["/p"].func(name, "get") + return true + elseif fields.worldedit_gui_p_set1 then + minetest.chatcommands["/p"].func(name, "set1") + return true + elseif fields.worldedit_gui_p_set2 then + minetest.chatcommands["/p"].func(name, "set2") + return true + elseif fields.worldedit_gui_pos1 then + minetest.chatcommands["/pos1"].func(name, "") + worldedit.show_page(name, "worldedit_gui_region") + return true + elseif fields.worldedit_gui_pos2 then + minetest.chatcommands["/pos2"].func(name, "") + worldedit.show_page(name, "worldedit_gui_region") + return true + elseif fields.worldedit_gui_reset then + minetest.chatcommands["/reset"].func(name, "") + worldedit.show_page(name, "worldedit_gui_region") + return true + elseif fields.worldedit_gui_mark then + minetest.chatcommands["/mark"].func(name, "") + worldedit.show_page(name, "worldedit_gui_region") + return true + elseif fields.worldedit_gui_unmark then + minetest.chatcommands["/unmark"].func(name, "") + worldedit.show_page(name, "worldedit_gui_region") + return true + elseif fields.worldedit_gui_volume then + minetest.chatcommands["/volume"].func(name, "") + worldedit.show_page(name, "worldedit_gui_region") + return true + elseif fields.worldedit_gui_fixedpos_pos1_submit then + minetest.chatcommands["/fixedpos"].func(name, string.format("set1 %s %s %s", + tostring(fields.worldedit_gui_fixedpos_pos1x), + tostring(fields.worldedit_gui_fixedpos_pos1y), + tostring(fields.worldedit_gui_fixedpos_pos1z))) + worldedit.show_page(name, "worldedit_gui_region") + return true + elseif fields.worldedit_gui_fixedpos_pos2_submit then + minetest.chatcommands["/fixedpos"].func(name, string.format("set2 %s %s %s", + tostring(fields.worldedit_gui_fixedpos_pos2x), + tostring(fields.worldedit_gui_fixedpos_pos2y), + tostring(fields.worldedit_gui_fixedpos_pos2z))) + worldedit.show_page(name, "worldedit_gui_region") + return true + end + return false +end) + +worldedit.register_gui_function("worldedit_gui_set", { + name = "Set Nodes", privs = minetest.chatcommands["/set"].privs, + get_formspec = function(name) + local node = gui_nodename1[name] + local nodename = worldedit.normalize_nodename(node) + return "size[6.5,3]" .. worldedit.get_formspec_header("worldedit_gui_set") .. + string.format("field[0.5,1.5;4,0.8;worldedit_gui_set_node;Name;%s]", minetest.formspec_escape(node)) .. + "button[4,1.18;1.5,0.8;worldedit_gui_set_search;Search]" .. + (nodename and string.format("item_image[5.5,1.1;1,1;%s]", nodename) + or "image[5.5,1.1;1,1;unknown_node.png]") .. + "button_exit[0,2.5;3,0.8;worldedit_gui_set_submit;Set Nodes]" + end, +}) + +worldedit.register_gui_handler("worldedit_gui_set", function(name, fields) + if fields.worldedit_gui_set_search or fields.worldedit_gui_set_submit then + gui_nodename1[name] = tostring(fields.worldedit_gui_set_node) + worldedit.show_page(name, "worldedit_gui_set") + if fields.worldedit_gui_set_submit then + minetest.chatcommands["/set"].func(name, gui_nodename1[name]) + end + return true + end + return false +end) + +worldedit.register_gui_function("worldedit_gui_replace", { + name = "Replace Nodes", privs = combine_privs(minetest.chatcommands["/replace"].privs, minetest.chatcommands["/replaceinverse"].privs), + get_formspec = function(name) + local search, replace = gui_nodename1[name], gui_nodename2[name] + local search_nodename, replace_nodename = worldedit.normalize_nodename(search), worldedit.normalize_nodename(replace) + return "size[6.5,4]" .. worldedit.get_formspec_header("worldedit_gui_replace") .. + string.format("field[0.5,1.5;4,0.8;worldedit_gui_replace_search;Name;%s]", minetest.formspec_escape(search)) .. + "button[4,1.18;1.5,0.8;worldedit_gui_replace_search_search;Search]" .. + (search_nodename and string.format("item_image[5.5,1.1;1,1;%s]", search_nodename) + or "image[5.5,1.1;1,1;unknown_node.png]") .. + string.format("field[0.5,2.5;4,0.8;worldedit_gui_replace_replace;Name;%s]", minetest.formspec_escape(replace)) .. + "button[4,2.18;1.5,0.8;worldedit_gui_replace_replace_search;Search]" .. + (replace_nodename and string.format("item_image[5.5,2.1;1,1;%s]", replace_nodename) + or "image[5.5,2.1;1,1;unknown_node.png]") .. + "button_exit[0,3.5;3,0.8;worldedit_gui_replace_submit;Replace Nodes]" .. + "button_exit[3.5,3.5;3,0.8;worldedit_gui_replace_submit_inverse;Replace Inverse]" + end, +}) + +worldedit.register_gui_handler("worldedit_gui_replace", function(name, fields) + if fields.worldedit_gui_replace_search_search or fields.worldedit_gui_replace_replace_search + or fields.worldedit_gui_replace_submit or fields.worldedit_gui_replace_submit_inverse then + gui_nodename1[name] = tostring(fields.worldedit_gui_replace_search) + gui_nodename2[name] = tostring(fields.worldedit_gui_replace_replace) + worldedit.show_page(name, "worldedit_gui_replace") + if fields.worldedit_gui_replace_submit then + minetest.chatcommands["/replace"].func(name, string.format("%s %s", gui_nodename1[name], gui_nodename2[name])) + elseif fields.worldedit_gui_replace_submit_inverse then + minetest.chatcommands["/replaceinverse"].func(name, string.format("%s %s", gui_nodename1[name], gui_nodename2[name])) + end + return true + end + return false +end) + +worldedit.register_gui_function("worldedit_gui_sphere_dome", { + name = "Sphere/Dome", privs = combine_privs(minetest.chatcommands["/hollowsphere"].privs, minetest.chatcommands["/sphere"].privs, minetest.chatcommands["/hollowdome"].privs, minetest.chatcommands["/dome"].privs), + get_formspec = function(name) + local node, radius = gui_nodename1[name], gui_distance2[name] + local nodename = worldedit.normalize_nodename(node) + return "size[6.5,5]" .. worldedit.get_formspec_header("worldedit_gui_sphere_dome") .. + string.format("field[0.5,1.5;4,0.8;worldedit_gui_sphere_dome_node;Name;%s]", minetest.formspec_escape(node)) .. + "button[4,1.18;1.5,0.8;worldedit_gui_sphere_dome_search;Search]" .. + (nodename and string.format("item_image[5.5,1.1;1,1;%s]", nodename) + or "image[5.5,1.1;1,1;unknown_node.png]") .. + string.format("field[0.5,2.5;4,0.8;worldedit_gui_sphere_dome_radius;Radius;%s]", minetest.formspec_escape(radius)) .. + "button_exit[0,3.5;3,0.8;worldedit_gui_sphere_dome_submit_hollow;Hollow Sphere]" .. + "button_exit[3.5,3.5;3,0.8;worldedit_gui_sphere_dome_submit_solid;Solid Sphere]" .. + "button_exit[0,4.5;3,0.8;worldedit_gui_sphere_dome_submit_hollow_dome;Hollow Dome]" .. + "button_exit[3.5,4.5;3,0.8;worldedit_gui_sphere_dome_submit_solid_dome;Solid Dome]" + end, +}) + +worldedit.register_gui_handler("worldedit_gui_sphere_dome", function(name, fields) + if fields.worldedit_gui_sphere_dome_search + or fields.worldedit_gui_sphere_dome_submit_hollow or fields.worldedit_gui_sphere_dome_submit_solid + or fields.worldedit_gui_sphere_dome_submit_hollow_dome or fields.worldedit_gui_sphere_dome_submit_solid_dome then + gui_nodename1[name] = tostring(fields.worldedit_gui_sphere_dome_node) + gui_distance2[name] = tostring(fields.worldedit_gui_sphere_dome_radius) + worldedit.show_page(name, "worldedit_gui_sphere_dome") + if fields.worldedit_gui_sphere_dome_submit_hollow then + minetest.chatcommands["/hollowsphere"].func(name, string.format("%s %s", gui_distance2[name], gui_nodename1[name])) + elseif fields.worldedit_gui_sphere_dome_submit_solid then + minetest.chatcommands["/sphere"].func(name, string.format("%s %s", gui_distance2[name], gui_nodename1[name])) + elseif fields.worldedit_gui_sphere_dome_submit_hollow_dome then + minetest.chatcommands["/hollowdome"].func(name, string.format("%s %s", gui_distance2[name], gui_nodename1[name])) + elseif fields.worldedit_gui_sphere_dome_submit_solid_dome then + minetest.chatcommands["/dome"].func(name, string.format("%s %s", gui_distance2[name], gui_nodename1[name])) + end + return true + end + return false +end) + +worldedit.register_gui_function("worldedit_gui_cylinder", { + name = "Cylinder", privs = combine_privs(minetest.chatcommands["/hollowcylinder"].privs, minetest.chatcommands["/cylinder"].privs), + get_formspec = function(name) + local node, axis, length, radius = gui_nodename1[name], gui_axis1[name], gui_distance1[name], gui_distance2[name] + local nodename = worldedit.normalize_nodename(node) + return "size[6.5,5]" .. worldedit.get_formspec_header("worldedit_gui_cylinder") .. + string.format("field[0.5,1.5;4,0.8;worldedit_gui_cylinder_node;Name;%s]", minetest.formspec_escape(node)) .. + "button[4,1.18;1.5,0.8;worldedit_gui_cylinder_search;Search]" .. + (nodename and string.format("item_image[5.5,1.1;1,1;%s]", nodename) + or "image[5.5,1.1;1,1;unknown_node.png]") .. + string.format("field[0.5,2.5;4,0.8;worldedit_gui_cylinder_length;Length;%s]", minetest.formspec_escape(length)) .. + string.format("dropdown[4,2.18;2.5;worldedit_gui_cylinder_axis;X axis,Y axis,Z axis,Look direction;%d]", axis) .. + string.format("field[0.5,3.5;4,0.8;worldedit_gui_cylinder_radius;Radius;%s]", minetest.formspec_escape(radius)) .. + "button_exit[0,4.5;3,0.8;worldedit_gui_cylinder_submit_hollow;Hollow Cylinder]" .. + "button_exit[3.5,4.5;3,0.8;worldedit_gui_cylinder_submit_solid;Solid Cylinder]" + end, +}) + +worldedit.register_gui_handler("worldedit_gui_cylinder", function(name, fields) + if fields.worldedit_gui_cylinder_search + or fields.worldedit_gui_cylinder_submit_hollow or fields.worldedit_gui_cylinder_submit_solid then + gui_nodename1[name] = tostring(fields.worldedit_gui_cylinder_node) + gui_axis1[name] = axis_indices[fields.worldedit_gui_cylinder_axis] + gui_distance1[name] = tostring(fields.worldedit_gui_cylinder_length) + gui_distance2[name] = tostring(fields.worldedit_gui_cylinder_radius) + worldedit.show_page(name, "worldedit_gui_cylinder") + if fields.worldedit_gui_cylinder_submit_hollow then + minetest.chatcommands["/hollowcylinder"].func(name, string.format("%s %s %s %s", axis_values[gui_axis1[name]], gui_distance1[name], gui_distance2[name], gui_nodename1[name])) + elseif fields.worldedit_gui_cylinder_submit_solid then + minetest.chatcommands["/cylinder"].func(name, string.format("%s %s %s %s", axis_values[gui_axis1[name]], gui_distance1[name], gui_distance2[name], gui_nodename1[name])) + end + return true + end + return false +end) + +worldedit.register_gui_function("worldedit_gui_pyramid", { + name = "Pyramid", privs = minetest.chatcommands["/pyramid"].privs, + get_formspec = function(name) + local node, axis, length = gui_nodename1[name], gui_axis1[name], gui_distance1[name] + local nodename = worldedit.normalize_nodename(node) + return "size[6.5,4]" .. worldedit.get_formspec_header("worldedit_gui_pyramid") .. + string.format("field[0.5,1.5;4,0.8;worldedit_gui_pyramid_node;Name;%s]", minetest.formspec_escape(node)) .. + "button[4,1.18;1.5,0.8;worldedit_gui_pyramid_search;Search]" .. + (nodename and string.format("item_image[5.5,1.1;1,1;%s]", nodename) + or "image[5.5,1.1;1,1;unknown_node.png]") .. + string.format("field[0.5,2.5;4,0.8;worldedit_gui_pyramid_length;Length;%s]", minetest.formspec_escape(length)) .. + string.format("dropdown[4,2.18;2.5;worldedit_gui_pyramid_axis;X axis,Y axis,Z axis,Look direction;%d]", axis) .. + "button_exit[0,3.5;3,0.8;worldedit_gui_pyramid_submit;Pyramid]" + end, +}) + +worldedit.register_gui_handler("worldedit_gui_pyramid", function(name, fields) + if fields.worldedit_gui_pyramid_search or fields.worldedit_gui_pyramid_submit then + gui_nodename1[name] = tostring(fields.worldedit_gui_pyramid_node) + gui_axis1[name] = axis_indices[fields.worldedit_gui_pyramid_axis] + gui_distance1[name] = tostring(fields.worldedit_gui_pyramid_length) + worldedit.show_page(name, "worldedit_gui_pyramid") + if fields.worldedit_gui_pyramid_submit then + minetest.chatcommands["/pyramid"].func(name, string.format("%s %s %s", axis_values[gui_axis1[name]], gui_distance1[name], gui_nodename1[name])) + end + return true + end + return false +end) + +worldedit.register_gui_function("worldedit_gui_spiral", { + name = "Spiral", privs = minetest.chatcommands["/spiral"].privs, + get_formspec = function(name) + local node, length, height, space = gui_nodename1[name], gui_distance1[name], gui_distance2[name], gui_distance3[name] + local nodename = worldedit.normalize_nodename(node) + return "size[6.5,6]" .. worldedit.get_formspec_header("worldedit_gui_spiral") .. + string.format("field[0.5,1.5;4,0.8;worldedit_gui_spiral_node;Name;%s]", minetest.formspec_escape(node)) .. + "button[4,1.18;1.5,0.8;worldedit_gui_spiral_search;Search]" .. + (nodename and string.format("item_image[5.5,1.1;1,1;%s]", nodename) + or "image[5.5,1.1;1,1;unknown_node.png]") .. + string.format("field[0.5,2.5;4,0.8;worldedit_gui_spiral_length;Side Length;%s]", minetest.formspec_escape(length)) .. + string.format("field[0.5,3.5;4,0.8;worldedit_gui_spiral_height;Height;%s]", minetest.formspec_escape(height)) .. + string.format("field[0.5,4.5;4,0.8;worldedit_gui_spiral_space;Wall Spacing;%s]", minetest.formspec_escape(space)) .. + "button_exit[0,5.5;3,0.8;worldedit_gui_spiral_submit;Spiral]" + end, +}) + +worldedit.register_gui_handler("worldedit_gui_spiral", function(name, fields) + if fields.worldedit_gui_spiral_search or fields.worldedit_gui_spiral_submit then + gui_nodename1[name] = fields.worldedit_gui_spiral_node + gui_distance1[name] = tostring(fields.worldedit_gui_spiral_length) + gui_distance2[name] = tostring(fields.worldedit_gui_spiral_height) + gui_distance3[name] = tostring(fields.worldedit_gui_spiral_space) + worldedit.show_page(name, "worldedit_gui_spiral") + if fields.worldedit_gui_spiral_submit then + minetest.chatcommands["/spiral"].func(name, string.format("%s %s %s %s", gui_distance1[name], gui_distance2[name], gui_distance3[name], gui_nodename1[name])) + end + return true + end + return false +end) + +worldedit.register_gui_function("worldedit_gui_copy_move", { + name = "Copy/Move", privs = combine_privs(minetest.chatcommands["/copy"].privs, minetest.chatcommands["/move"].privs), + get_formspec = function(name) + local axis = gui_axis1[name] or 4 + local amount = gui_distance1[name] or "10" + return "size[6.5,3]" .. worldedit.get_formspec_header("worldedit_gui_copy_move") .. + string.format("field[0.5,1.5;4,0.8;worldedit_gui_copy_move_amount;Amount;%s]", minetest.formspec_escape(amount)) .. + string.format("dropdown[4,1.18;2.5;worldedit_gui_copy_move_axis;X axis,Y axis,Z axis,Look direction;%d]", axis) .. + "button_exit[0,2.5;3,0.8;worldedit_gui_copy_move_copy;Copy Region]" .. + "button_exit[3.5,2.5;3,0.8;worldedit_gui_copy_move_move;Move Region]" + end, +}) + +worldedit.register_gui_handler("worldedit_gui_copy_move", function(name, fields) + if fields.worldedit_gui_copy_move_copy or fields.worldedit_gui_copy_move_move then + gui_axis1[name] = axis_indices[fields.worldedit_gui_cylinder_axis] or 4 + gui_distance1[name] = tostring(fields.worldedit_gui_copy_move_amount) + worldedit.show_page(name, "worldedit_gui_copy_move") + if fields.worldedit_gui_copy_move_copy then + minetest.chatcommands["/copy"].func(name, string.format("%s %s", axis_values[gui_axis1[name]], gui_distance1[name])) + else --fields.worldedit_gui_copy_move_move + minetest.chatcommands["/move"].func(name, string.format("%s %s", axis_values[gui_axis1[name]], gui_distance1[name])) + end + return true + end + return false +end) + +worldedit.register_gui_function("worldedit_gui_stack", { + name = "Stack", privs = minetest.chatcommands["/stack"].privs, + get_formspec = function(name) + local axis, count = gui_axis1[name], gui_count1[name] + return "size[6.5,3]" .. worldedit.get_formspec_header("worldedit_gui_stack") .. + string.format("field[0.5,1.5;4,0.8;worldedit_gui_stack_count;Count;%s]", minetest.formspec_escape(count)) .. + string.format("dropdown[4,1.18;2.5;worldedit_gui_stack_axis;X axis,Y axis,Z axis,Look direction;%d]", axis) .. + "button_exit[0,2.5;3,0.8;worldedit_gui_stack_submit;Stack]" + end, +}) + +worldedit.register_gui_handler("worldedit_gui_stack", function(name, fields) + if fields.worldedit_gui_stack_submit then + gui_axis1[name] = axis_indices[fields.worldedit_gui_stack_axis] + gui_count1[name] = tostring(fields.worldedit_gui_stack_count) + worldedit.show_page(name, "worldedit_gui_stack") + minetest.chatcommands["/stack"].func(name, string.format("%s %s", axis_values[gui_axis1[name]], gui_count1[name])) + return true + end + return false +end) + +worldedit.register_gui_function("worldedit_gui_stretch", { + name = "Stretch", privs = minetest.chatcommands["/stretch"].privs, + get_formspec = function(name) + local stretchx, stretchy, stretchz = gui_count1[name], gui_count2[name], gui_count3[name] + return "size[5,5]" .. worldedit.get_formspec_header("worldedit_gui_stretch") .. + string.format("field[0.5,1.5;4,0.8;worldedit_gui_stretch_x;Stretch X;%s]", minetest.formspec_escape(stretchx)) .. + string.format("field[0.5,2.5;4,0.8;worldedit_gui_stretch_y;Stretch Y;%s]", minetest.formspec_escape(stretchy)) .. + string.format("field[0.5,3.5;4,0.8;worldedit_gui_stretch_z;Stretch Z;%s]", minetest.formspec_escape(stretchz)) .. + "button_exit[0,4.5;3,0.8;worldedit_gui_stretch_submit;Stretch]" + end, +}) + +worldedit.register_gui_handler("worldedit_gui_stretch", function(name, fields) + if fields.worldedit_gui_stretch_submit then + gui_count1[name] = tostring(fields.worldedit_gui_stretch_x) + gui_count2[name] = tostring(fields.worldedit_gui_stretch_y) + gui_count3[name] = tostring(fields.worldedit_gui_stretch_z) + worldedit.show_page(name, "worldedit_gui_stretch") + minetest.chatcommands["/stretch"].func(name, string.format("%s %s %s", gui_count1[name], gui_count2[name], gui_count3[name])) + return true + end + return false +end) + +worldedit.register_gui_function("worldedit_gui_transpose", { + name = "Transpose", privs = minetest.chatcommands["/transpose"].privs, + get_formspec = function(name) + local axis1, axis2 = gui_axis1[name], gui_axis2[name] + return "size[5.5,3]" .. worldedit.get_formspec_header("worldedit_gui_transpose") .. + string.format("dropdown[0,1;2.5;worldedit_gui_transpose_axis1;X axis,Y axis,Z axis,Look direction;%d]", axis1) .. + string.format("dropdown[3,1;2.5;worldedit_gui_transpose_axis2;X axis,Y axis,Z axis,Look direction;%d]", axis2) .. + "button_exit[0,2.5;3,0.8;worldedit_gui_transpose_submit;Transpose]" + end, +}) + +worldedit.register_gui_handler("worldedit_gui_transpose", function(name, fields) + if fields.worldedit_gui_transpose_submit then + gui_axis1[name] = axis_indices[fields.worldedit_gui_transpose_axis1] + gui_axis2[name] = axis_indices[fields.worldedit_gui_transpose_axis2] + worldedit.show_page(name, "worldedit_gui_transpose") + minetest.chatcommands["/transpose"].func(name, string.format("%s %s", axis_values[gui_axis1[name]], axis_values[gui_axis2[name]])) + return true + end + return false +end) + +worldedit.register_gui_function("worldedit_gui_flip", { + name = "Flip", privs = minetest.chatcommands["/flip"].privs, + get_formspec = function(name) + local axis = gui_axis2[name] + return "size[5,3]" .. worldedit.get_formspec_header("worldedit_gui_flip") .. + string.format("dropdown[0,1;2.5;worldedit_gui_flip_axis;X axis,Y axis,Z axis,Look direction;%d]", axis) .. + "button_exit[0,2.5;3,0.8;worldedit_gui_flip_submit;Flip]" + end, +}) + +worldedit.register_gui_handler("worldedit_gui_flip", function(name, fields) + if fields.worldedit_gui_flip_submit then + gui_axis2[name] = axis_indices[fields.worldedit_gui_flip_axis] + worldedit.show_page(name, "worldedit_gui_flip") + minetest.chatcommands["/flip"].func(name, axis_values[gui_axis2[name]]) + return true + end + return false +end) + +worldedit.register_gui_function("worldedit_gui_rotate", { + name = "Rotate", privs = minetest.chatcommands["/rotate"].privs, + get_formspec = function(name) + local axis, angle = gui_axis1[name], gui_angle[name] + return "size[5.5,3]" .. worldedit.get_formspec_header("worldedit_gui_rotate") .. + string.format("dropdown[0,1;2.5;worldedit_gui_rotate_angle;90 degrees,180 degrees,270 degrees;%s]", angle) .. + string.format("dropdown[3,1;2.5;worldedit_gui_rotate_axis;X axis,Y axis,Z axis,Look direction;%d]", axis) .. + "button_exit[0,2.5;3,0.8;worldedit_gui_rotate_submit;Rotate]" + end, +}) + +worldedit.register_gui_handler("worldedit_gui_rotate", function(name, fields) + if fields.worldedit_gui_rotate_submit then + gui_axis1[name] = axis_indices[fields.worldedit_gui_rotate_axis] + gui_angle[name] = angle_indices[fields.worldedit_gui_rotate_angle] + worldedit.show_page(name, "worldedit_gui_rotate") + minetest.chatcommands["/rotate"].func(name, string.format("%s %s", axis_values[gui_axis1[name]], angle_values[gui_angle[name]])) + return true + end + return false +end) + +worldedit.register_gui_function("worldedit_gui_orient", { + name = "Orient", privs = minetest.chatcommands["/orient"].privs, + get_formspec = function(name) + local angle = gui_angle[name] + return "size[5,3]" .. worldedit.get_formspec_header("worldedit_gui_orient") .. + string.format("dropdown[0,1;2.5;worldedit_gui_rotate_angle;90 degrees,180 degrees,270 degrees;%s]", angle) .. + "button_exit[0,2.5;3,0.8;worldedit_gui_orient_submit;Orient]" + end, +}) + +worldedit.register_gui_handler("worldedit_gui_orient", function(name, fields) + if fields.worldedit_gui_orient_submit then + gui_angle[name] = angle_indices[fields.worldedit_gui_orient_angle] + worldedit.show_page(name, "worldedit_gui_orient") + minetest.chatcommands["/orient"].func(name, angle_values[gui_angle[name]]) + return true + end + return false +end) + +worldedit.register_gui_function("worldedit_gui_fixlight", { + name = "Fix Lighting", privs = minetest.chatcommands["/fixlight"].privs, + on_select = function(name) + minetest.chatcommands["/fixlight"].func(name, "") + end, +}) + +worldedit.register_gui_function("worldedit_gui_hide", { + name = "Hide Region", privs = minetest.chatcommands["/hide"].privs, + on_select = function(name) + minetest.chatcommands["/hide"].func(name, "") + end, +}) + +worldedit.register_gui_function("worldedit_gui_suppress", { + name = "Suppress Nodes", privs = minetest.chatcommands["/suppress"].privs, + get_formspec = function(name) + local node = gui_nodename1[name] + local nodename = worldedit.normalize_nodename(node) + return "size[6.5,3]" .. worldedit.get_formspec_header("worldedit_gui_suppress") .. + string.format("field[0.5,1.5;4,0.8;worldedit_gui_suppress_node;Name;%s]", minetest.formspec_escape(node)) .. + "button[4,1.18;1.5,0.8;worldedit_gui_suppress_search;Search]" .. + (nodename and string.format("item_image[5.5,1.1;1,1;%s]", nodename) + or "image[5.5,1.1;1,1;unknown_node.png]") .. + "button_exit[0,2.5;3,0.8;worldedit_gui_suppress_submit;Suppress Nodes]" + end, +}) + +worldedit.register_gui_handler("worldedit_gui_suppress", function(name, fields) + if fields.worldedit_gui_suppress_search or fields.worldedit_gui_suppress_submit then + gui_nodename1[name] = tostring(fields.worldedit_gui_suppress_node) + worldedit.show_page(name, "worldedit_gui_suppress") + if fields.worldedit_gui_suppress_submit then + minetest.chatcommands["/suppress"].func(name, gui_nodename1[name]) + end + return true + end + return false +end) + +worldedit.register_gui_function("worldedit_gui_highlight", { + name = "Highlight Nodes", privs = minetest.chatcommands["/highlight"].privs, + get_formspec = function(name) + local node = gui_nodename1[name] + local nodename = worldedit.normalize_nodename(node) + return "size[6.5,3]" .. worldedit.get_formspec_header("worldedit_gui_highlight") .. + string.format("field[0.5,1.5;4,0.8;worldedit_gui_highlight_node;Name;%s]", minetest.formspec_escape(node)) .. + "button[4,1.18;1.5,0.8;worldedit_gui_highlight_search;Search]" .. + (nodename and string.format("item_image[5.5,1.1;1,1;%s]", nodename) + or "image[5.5,1.1;1,1;unknown_node.png]") .. + "button_exit[0,2.5;3,0.8;worldedit_gui_highlight_submit;Highlight Nodes]" + end, +}) + +worldedit.register_gui_handler("worldedit_gui_highlight", function(name, fields) + if fields.worldedit_gui_highlight_search or fields.worldedit_gui_highlight_submit then + gui_nodename1[name] = tostring(fields.worldedit_gui_highlight_node) + worldedit.show_page(name, "worldedit_gui_highlight") + if fields.worldedit_gui_highlight_submit then + minetest.chatcommands["/highlight"].func(name, gui_nodename1[name]) + end + return true + end + return false +end) + +worldedit.register_gui_function("worldedit_gui_restore", { + name = "Restore Region", privs = minetest.chatcommands["/restore"].privs, + on_select = function(name) + minetest.chatcommands["/restore"].func(name, "") + end, +}) + +worldedit.register_gui_function("worldedit_gui_save_load", { + name = "Save/Load", privs = combine_privs(minetest.chatcommands["/save"].privs, minetest.chatcommands["/allocate"].privs, minetest.chatcommands["/load"].privs), + get_formspec = function(name) + local filename = gui_filename[name] + return "size[6,4]" .. worldedit.get_formspec_header("worldedit_gui_save_load") .. + string.format("field[0.5,1.5;4,0.8;worldedit_gui_save_filename;Filename;%s]", minetest.formspec_escape(filename)) .. + "button_exit[0,2.5;3,0.8;worldedit_gui_save_load_submit_save;Save]" .. + "button_exit[3,2.5;3,0.8;worldedit_gui_save_load_submit_allocate;Allocate]" .. + "button_exit[0,3.5;3,0.8;worldedit_gui_save_load_submit_load;Load]" + end, +}) + +worldedit.register_gui_handler("worldedit_gui_save", function(name, fields) + if fields.worldedit_gui_save_load_submit_save or worldedit_gui_save_load_submit_allocate or worldedit_gui_save_load_submit_load then + gui_filename[name] = tostring(fields.worldedit_gui_save_axis) + worldedit.show_page(name, "worldedit_gui_save_load") + if fields.worldedit_gui_save_load_submit_save then + minetest.chatcommands["/save"].func(name, gui_filename[name]) + elseif fields.worldedit_gui_save_load_submit_allocate then + minetest.chatcommands["/allocate"].func(name, gui_filename[name]) + else --fields.worldedit_gui_save_load_submit_load + minetest.chatcommands["/load"].func(name, gui_filename[name]) + end + return true + end + return false +end) + +worldedit.register_gui_function("worldedit_gui_lua", { + name = "Run Lua", + get_formspec = function(name) + local code = gui_code[name] + return "size[8,6.5]" .. worldedit.get_formspec_header("worldedit_gui_lua") .. + string.format("textarea[0.5,1;7.5,5.5;worldedit_gui_lua_code;Lua Code;%s]", minetest.formspec_escape(code)) .. + "button_exit[0,6;3,0.8;worldedit_gui_lua_run;Run Lua]" .. + "button_exit[5,6;3,0.8;worldedit_gui_lua_transform;Lua Transform]" + end, +}) + +worldedit.register_gui_handler("worldedit_gui_lua", function(name, fields) + if fields.worldedit_gui_lua_run or fields.worldedit_gui_lua_transform then + gui_code[name] = fields.worldedit_gui_lua_value + worldedit.show_page(name, "worldedit_gui_lua") + if fields.worldedit_gui_lua_run then + minetest.chatcommands["/lua"].func(name, gui_code[name]) + else --fields.worldedit_gui_lua_transform + minetest.chatcommands["/luatransform"].func(name, gui_code[name]) + end + return true + end + return false +end) + +worldedit.register_gui_function("worldedit_gui_clearobjects", { + name = "Clear Objects", privs = minetest.chatcommands["/clearobjects"].privs, + on_select = function(name) + minetest.chatcommands["/clearobjects"].func(name, "") + end, +}) + +worldedit.register_gui_function("worldedit_gui_formspec_tester", { + name = "Formspec Tester", + get_formspec = function(name) + local value = gui_formspec[name] + return "size[8,6.5]" .. worldedit.get_formspec_header("worldedit_gui_formspec_tester") .. + string.format("textarea[0.5,1;7.5,5.5;worldedit_gui_formspec_tester_value;Formspec Code;%s]", minetest.formspec_escape(value)) .. + "button_exit[0,6;3,0.8;worldedit_gui_formspec_tester_show;Show Formspec]" + end, +}) + +worldedit.register_gui_handler("worldedit_gui_formspec_tester", function(name, fields) + if fields.worldedit_gui_formspec_tester_show then + gui_formspec[name] = fields.worldedit_gui_formspec_tester_value or "" + worldedit.show_page(name, "worldedit_gui_formspec_tester") + minetest.show_formspec(name, "worldedit:formspec_tester", gui_formspec[name]) + return true + end + return false +end) diff --git a/mods/WorldEdit/worldedit_gui/init.lua b/mods/WorldEdit/worldedit_gui/init.lua new file mode 100755 index 00000000..3088f724 --- /dev/null +++ b/mods/WorldEdit/worldedit_gui/init.lua @@ -0,0 +1,246 @@ +worldedit = worldedit or {} + +--[[ +Example: + + worldedit.register_gui_function("worldedit_gui_hollow_cylinder", { + name = "Make Hollow Cylinder", + privs = {worldedit=true}, + get_formspec = function(name) return "some formspec here" end, + on_select = function(name) print(name .. " clicked the button!") end, + }) + +Use `nil` for the `options` parameter to unregister the function associated with the given identifier. + +Use `nil` for the `get_formspec` field to denote that the function does not have its own screen. + +Use `nil` for the `privs` field to denote that no special privileges are required to use the function. + +If the identifier is already registered to another function, it will be replaced by the new one. + +The `on_select` function must not call `worldedit.show_page` +]] + +worldedit.pages = {} --mapping of identifiers to options +local identifiers = {} --ordered list of identifiers +worldedit.register_gui_function = function(identifier, options) + worldedit.pages[identifier] = options + table.insert(identifiers, identifier) +end + +--[[ +Example: + + worldedit.register_gui_handler("worldedit_gui_hollow_cylinder", function(name, fields) + print(minetest.serialize(fields)) + end) +]] + +worldedit.register_gui_handler = function(identifier, handler) + local enabled = true + minetest.register_on_player_receive_fields(function(player, formname, fields) + if not enabled then return false end + enabled = false + minetest.after(0.2, function() enabled = true end) + local name = player:get_player_name() + + --ensure the player has permission to perform the action + local entry = worldedit.pages[identifier] + if entry and minetest.check_player_privs(name, entry.privs or {}) then + return handler(name, fields) + end + return false + end) +end + +worldedit.get_formspec_header = function(identifier) + local entry = worldedit.pages[identifier] or {} + return "button[0,0;2,0.5;worldedit_gui;Back]" .. + string.format("label[2,0;WorldEdit GUI > %s]", entry.name or "") +end + +local get_formspec = function(name, identifier) + if worldedit.pages[identifier] then + return worldedit.pages[identifier].get_formspec(name) + end + return worldedit.pages["worldedit_gui"].get_formspec(name) --default to showing main page if an unknown page is given +end + +--implement worldedit.show_page(name, page) in different ways depending on the available APIs +if unified_inventory then --unified inventory installed + local old_func = worldedit.register_gui_function + worldedit.register_gui_function = function(identifier, options) + old_func(identifier, options) + unified_inventory.register_page(identifier, {get_formspec=function(player) return {formspec=options.get_formspec(player:get_player_name())} end}) + end + + unified_inventory.register_button("worldedit_gui", { + type = "image", + image = "inventory_plus_worldedit_gui.png", + }) + + minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.worldedit_gui then --main page + worldedit.show_page(name, "worldedit_gui") + return true + elseif fields.worldedit_gui_exit then --return to original page + local player = minetest.get_player_by_name(name) + if player then + unified_inventory.set_inventory_formspec(player, "craft") + end + return true + end + return false + end) + + worldedit.show_page = function(name, page) + local player = minetest.get_player_by_name(name) + if player then + player:set_inventory_formspec(get_formspec(name, page)) + end + end +elseif inventory_plus then --inventory++ installed + minetest.register_on_joinplayer(function(player) + inventory_plus.register_button(player, "worldedit_gui", "WorldEdit") + end) + + --show the form when the button is pressed and hide it when done + local gui_player_formspecs = {} + minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.worldedit_gui then --main page + gui_player_formspecs[name] = player:get_inventory_formspec() + worldedit.show_page(name, "worldedit_gui") + return true + elseif fields.worldedit_gui_exit then --return to original page + if gui_player_formspecs[name] then + inventory_plus.set_inventory_formspec(player, gui_player_formspecs[name]) + end + return true + end + return false + end) + + worldedit.show_page = function(name, page) + local player = minetest.get_player_by_name(name) + if player then + inventory_plus.set_inventory_formspec(player, get_formspec(name, page)) + end + end +else --fallback button + local player_formspecs = {} + + local update_main_formspec = function(name) + local formspec = player_formspecs[name] + if not formspec then + return + end + local player = minetest.get_player_by_name(name) + if not player then --this is in case the player signs off while the media is loading + return + end + if (minetest.check_player_privs(name, {creative=true}) or minetest.setting_getbool("creative_mode")) and creative_inventory then --creative_inventory is active, add button to modified formspec + formspec = player:get_inventory_formspec() .. "image_button[6,0;1,1;inventory_plus_worldedit_gui.png;worldedit_gui;]" + else + formspec = formspec .. "image_button[0,0;1,1;inventory_plus_worldedit_gui.png;worldedit_gui;]" + end + player:set_inventory_formspec(formspec) + end + + minetest.register_on_joinplayer(function(player) + local name = player:get_player_name() + minetest.after(1, function() + if minetest.get_player_by_name(name) then --ensure the player is still signed in + player_formspecs[name] = player:get_inventory_formspec() + minetest.after(0.01, function() + update_main_formspec(name) + end) + end + end) + end) + + minetest.register_on_leaveplayer(function(player) + player_formspecs[player:get_player_name()] = nil + end) + + local gui_player_formspecs = {} + minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.worldedit_gui then --main page + gui_player_formspecs[name] = player:get_inventory_formspec() + worldedit.show_page(name, "worldedit_gui") + return true + elseif fields.worldedit_gui_exit then --return to original page + if gui_player_formspecs[name] then + player:set_inventory_formspec(gui_player_formspecs[name]) + end + return true + else --deal with creative_inventory setting the formspec on every single message + minetest.after(0.01,function() + update_main_formspec(name) + end) + return false --continue processing in creative inventory + end + end) + + worldedit.show_page = function(name, page) + local player = minetest.get_player_by_name(name) + if player then + player:set_inventory_formspec(get_formspec(name, page)) + end + end +end + +worldedit.register_gui_function("worldedit_gui", { + name = "WorldEdit GUI", + get_formspec = function(name) + --create a form with all the buttons arranged in a grid + local buttons, x, y, index = {}, 0, 1, 0 + local width, height = 3, 0.8 + local columns = 5 + for i, identifier in pairs(identifiers) do + if identifier ~= "worldedit_gui" then + local entry = worldedit.pages[identifier] + table.insert(buttons, string.format((entry.get_formspec and "button" or "button_exit") .. + "[%g,%g;%g,%g;%s;%s]", x, y, width, height, identifier, minetest.formspec_escape(entry.name))) + + index, x = index + 1, x + width + if index == columns then --row is full + x, y = 0, y + height + index = 0 + end + end + end + if index == 0 then --empty row + y = y - height + end + return string.format("size[%g,%g]", math.max(columns * width, 5), math.max(y + 0.5, 3)) .. + "button[0,0;2,0.5;worldedit_gui_exit;Back]" .. + "label[2,0;WorldEdit GUI]" .. + table.concat(buttons) + end, +}) + +worldedit.register_gui_handler("worldedit_gui", function(name, fields) + for identifier, entry in pairs(worldedit.pages) do --check for WorldEdit GUI main formspec button selection + if fields[identifier] and identifier ~= "worldedit_gui" then + --ensure player has permission to perform action + local has_privs, missing_privs = minetest.check_player_privs(name, entry.privs or {}) + if not has_privs then + worldedit.player_notify(name, "you are not allowed to use this function (missing privileges: " .. table.concat(missing_privs, ", ") .. ")") + return false + end + if entry.on_select then + entry.on_select(name) + end + if entry.get_formspec then + worldedit.show_page(name, identifier) + end + return true + end + end + return false +end) + +dofile(minetest.get_modpath(minetest.get_current_modname()) .. "/functionality.lua") diff --git a/mods/WorldEdit/worldedit_gui/textures/inventory_plus_worldedit_gui.png b/mods/WorldEdit/worldedit_gui/textures/inventory_plus_worldedit_gui.png new file mode 100755 index 00000000..fbc1abc6 Binary files /dev/null and b/mods/WorldEdit/worldedit_gui/textures/inventory_plus_worldedit_gui.png differ diff --git a/mods/WorldEdit/worldedit_infinity/init.lua b/mods/WorldEdit/worldedit_infinity/init.lua new file mode 100755 index 00000000..fa1c5f6d --- /dev/null +++ b/mods/WorldEdit/worldedit_infinity/init.lua @@ -0,0 +1,103 @@ +worldedit = worldedit or {} +local minetest = minetest --local copy of global + +local get_pointed = function(pos, nearest, distance) + if distance > 100 then + return false + end + + --check for collision with node + local nodename = minetest.get_node(pos).name + if nodename ~= "air" + and nodename ~= "default:water_source" + and nodename ~= "default:water_flowing" then + if nodename ~= "ignore" then + return nearest + end + return false + end +end + +local use = function(itemstack, user, pointed_thing) + if pointed_thing.type == "nothing" then --pointing at nothing + local placepos = worldedit.raytrace(user:getpos(), user:get_look_dir(), get_pointed) + if placepos then --extended reach + pointed_thing.type = "node" + pointed_thing.under = nil --wip + pointed_thing.above = nil --wip + end + end + return minetest.item_place_node(itemstack, user, pointed_thing) +end +-- + +worldedit.raytrace = function(pos, dir, callback) + local base = {x=math.floor(pos.x), y=math.floor(pos.y), z=math.floor(pos.z)} + local stepx, stepy, stepz = 0, 0, 0 + local componentx, componenty, componentz = 0, 0, 0 + local intersectx, intersecty, intersectz = 0, 0, 0 + + if dir.x == 0 then + intersectx = math.huge + elseif dir.x > 0 then + stepx = 1 + componentx = 1 / dir.x + intersectx = ((base.x - pos.x) + 1) * componentx + else + stepx = -1 + componentx = 1 / -dir.x + intersectx = (pos.x - base.x) * componentx + end + if dir.y == 0 then + intersecty = math.huge + elseif dir.y > 0 then + stepy = 1 + componenty = 1 / dir.y + intersecty = ((base.y - pos.y) + 1) * componenty + else + stepy = -1 + componenty = 1 / -dir.y + intersecty = (pos.y - base.y) * componenty + end + if dir.z == 0 then + intersectz = math.huge + elseif dir.z > 0 then + stepz = 1 + componentz = 1 / dir.z + intersectz = ((base.z - pos.z) + 1) * componentz + else + stepz = -1 + componentz = 1 / -dir.z + intersectz = (pos.z - base.z) * componentz + end + + local distance = 0 + local nearest = {x=base.x, y=base.y, z=base.z} + while true do + local values = {callback(base, nearest, distance)} + if #values > 0 then + return unpack(values) + end + + nearest.x, nearest.y, nearest.z = base.x, base.y, base.z + if intersectx < intersecty then + if intersectx < intersectz then + base.x = base.x + stepx + distance = intersectx + intersectx = intersectx + componentx + else + base.z = base.z + stepz + distance = intersectz + intersectz = intersectz + componentz + end + elseif intersecty < intersectz then + base.y = base.y + stepy + distance = intersecty + intersecty = intersecty + componenty + else + base.z = base.z + stepz + distance = intersectz + intersectz = intersectz + componentz + end + end +end \ No newline at end of file diff --git a/mods/WorldEdit/worldedit_limited/depends.txt b/mods/WorldEdit/worldedit_limited/depends.txt new file mode 100755 index 00000000..74054c67 --- /dev/null +++ b/mods/WorldEdit/worldedit_limited/depends.txt @@ -0,0 +1 @@ +worldedit diff --git a/mods/WorldEdit/worldedit_limited/init.lua b/mods/WorldEdit/worldedit_limited/init.lua new file mode 100755 index 00000000..801e19ca --- /dev/null +++ b/mods/WorldEdit/worldedit_limited/init.lua @@ -0,0 +1,120 @@ +do return end +do + local MAX_VOLUME = 30 * 30 * 30 + + local we = worldedit + local volume = we.volume + local safewrap = function(func) + return function(pos1, pos2, ...) + if validbox(pos1, pos2) then + return func(pos1, pos2, ...) + end + return 0, pos1, pos2 + end + end + + local validbox = function(pos1, pos2) + tpos1, tpos2 = we.sort_pos(pos1, pos2) + + if volume(tpos1, tpos2) > MAX_VOLUME then + return false + end + + --check for ownership of area if ownership mod is installed + if owner_defs then + local inside = false + for _, def in pairs(owner_defs) do + --sort positions + local tdef = {x1=def.x1, x2 = def.x2, y1=def.y1, y2=def.y2, z1=def.z1, z2=def.z2} + if tdef.x1 > tdef.x2 then + tdef.x1, tdef.x2 = tdef.x2, tdef.x1 + end + if tdef.y1 > tdef.y2 then + tdef.y1, tdef.y2 = tdef.y2, tdef.y1 + end + if tdef.z1 > tdef.z2 then + tdef.z1, tdef.z2 = tdef.z2, tdef.z1 + end + + --check ownership + if tpos1.x >= tdef.x1 and tpos1.x <= tdef.x2 + and tpos2.x >= tdef.x1 and tpos2.x <= tdef.x2 + and tpos1.y >= tdef.y1 and tpos1.y <= tdef.y2 + and tpos2.y >= tdef.y1 and tpos2.y <= tdef.y2 + and tpos1.z >= tdef.z1 and tpos1.z <= tdef.z2 + and tpos2.z >= tdef.z1 and tpos2.z <= tdef.z2 + and name == def.owner then --wip: name isn't available here + inside = true + break + end + end + if not inside then + return false + end + end + + return true + end + + worldedit = { + sort_pos = we.sort_pos, + + set = safewrap(we.set), + replace = safewrap(we.replace), + replaceinverse = safewrap(we.replaceinverse), + copy = function(pos1, pos2, axis, amount) + tpos1, tpos2 = we.sort_pos(pos1, pos2) + tpos1[axis] = tpos1[axis] + amount + tpos2[axis] = tpos2[axis] + amount + if validbox(pos1, pos2) and validbox(tpos1, tpos2) then + we.copy(pos1, pos2, axis, amount) + else + return 0 + end + end, + move = function(pos1, pos2, axis, amount) + tpos1, tpos2 = we.sort_pos(pos1, pos2) + tpos1[axis] = tpos1[axis] + amount + tpos2[axis] = tpos2[axis] + amount + if validbox(pos1, pos2) and validbox(tpos1, tpos2) then + we.move(pos1, pos2, axis, amount) + else + return 0 + end + end, + stack = function(pos1, pos2, axis, count) + tpos1, tpos2 = we.sort_pos(pos1, pos2) + local length = (tpos2[axis] - tpos1[axis] + 1) * count + if count < 0 then + tpos1[axis] = tpos1[axis] + length + else + tpos2[axis] = tpos2[axis] + length + end + if validbox(tpos1, tpos2) then + we.stack(pos1, pos2, axis, amount) + else + return 0 + end + end, + --wip: add transpose, rotate safely + flip = safewrap(we.flip), + orient = safewrap(we.orient), + fixlight = safewrap(we.fixlight), + --wip: add primitives here + volume = we.volume, + hide = safewrap(we.hide), + suppress = safewrap(we.suppress), + highlight = safewrap(we.highlight), + restore = safewrap(we.restore), + serialize = safewrap(we.serialize), + allocate = we.allocate, + deserialize = function(originpos, value) + local tpos1, tpos2 = we.allocate(originpos, value) + if validbox(tpos1, tpos2) then + we.deserialize(originpos, value) + else + return 0 + end + end, + } +end \ No newline at end of file diff --git a/mods/WorldEdit/worldedit_shortcommands/depends.txt b/mods/WorldEdit/worldedit_shortcommands/depends.txt new file mode 100755 index 00000000..a741c93c --- /dev/null +++ b/mods/WorldEdit/worldedit_shortcommands/depends.txt @@ -0,0 +1 @@ +worldedit_commands diff --git a/mods/WorldEdit/worldedit_shortcommands/init.lua b/mods/WorldEdit/worldedit_shortcommands/init.lua new file mode 100755 index 00000000..8ef8d586 --- /dev/null +++ b/mods/WorldEdit/worldedit_shortcommands/init.lua @@ -0,0 +1,50 @@ +--provides shorter names for the commands in `worldedit_commands` + +--returns true if command could not be aliased, false otherwise +worldedit.alias_chatcommand = function(alias, original_command) + if not minetest.chatcommands[original_command] then + minetest.log("error", "worldedit_shortcommands: original command " .. original_command .. " does not exist") + return true + end + if minetest.chatcommands[alias] then + minetest.log("error", "worldedit_shortcommands: alias " .. alias .. " already exists") + return true + end + minetest.register_chatcommand(alias, minetest.chatcommands[original_command]) + return false +end + +worldedit.alias_chatcommand("/i", "/inspect") +worldedit.alias_chatcommand("/rst", "/reset") +worldedit.alias_chatcommand("/mk", "/mark") +worldedit.alias_chatcommand("/umk", "/unmark") +worldedit.alias_chatcommand("/1", "/pos1") +worldedit.alias_chatcommand("/2", "/pos2") +worldedit.alias_chatcommand("/fp", "/fixedpos") +worldedit.alias_chatcommand("/v", "/volume") +worldedit.alias_chatcommand("/s", "/set") +worldedit.alias_chatcommand("/r", "/replace") +worldedit.alias_chatcommand("/ri", "/replaceinverse") +worldedit.alias_chatcommand("/hspr", "/hollowsphere") +worldedit.alias_chatcommand("/spr", "/sphere") +worldedit.alias_chatcommand("/hdo", "/hollowdome") +worldedit.alias_chatcommand("/do", "/dome") +worldedit.alias_chatcommand("/hcyl", "/hollowcylinder") +worldedit.alias_chatcommand("/cyl", "/cylinder") +worldedit.alias_chatcommand("/pyr", "/pyramid") +worldedit.alias_chatcommand("/spl", "/spiral") +worldedit.alias_chatcommand("/m", "/move") +worldedit.alias_chatcommand("/c", "/copy") +worldedit.alias_chatcommand("/stk", "/stack") +worldedit.alias_chatcommand("/sch", "/stretch") +worldedit.alias_chatcommand("/tps", "/transpose") +worldedit.alias_chatcommand("/fl", "/flip") +worldedit.alias_chatcommand("/rot", "/rotate") +worldedit.alias_chatcommand("/ort", "/orient") +worldedit.alias_chatcommand("/hi", "/hide") +worldedit.alias_chatcommand("/sup", "/suppress") +worldedit.alias_chatcommand("/hlt", "/highlight") +worldedit.alias_chatcommand("/rsr", "/restore") +worldedit.alias_chatcommand("/l", "/lua") +worldedit.alias_chatcommand("/lt", "/luatransform") +worldedit.alias_chatcommand("/clro", "/clearobjects") \ No newline at end of file diff --git a/mods/_misc/aliases.lua b/mods/_misc/aliases.lua new file mode 100644 index 00000000..332ef7b9 --- /dev/null +++ b/mods/_misc/aliases.lua @@ -0,0 +1,19 @@ +-- Remove stone_with_tin from default carbone subgame => virer doublon minerais brutes +minetest.register_alias("default:stone_with_tin", "default:stone") +minetest.register_alias("default:stone_with_silver", "default:stone") + +-- Remove lump from default carbone subgame => virer doublon minerais +minetest.register_alias("default:tin_lump", "default:stone") +minetest.register_alias("default:silver_lump", "default:stone") + +-- Remove ingot from default carbone subgame => virer doublon lingots +minetest.register_alias("default:tin_ingot", "default:stone") +minetest.register_alias("default:silver_ingot", "default:stone") + +-- Remove torch from torches => remise des torches par défaut +minetest.register_alias("torches:floor", "default:torch") +minetest.register_alias("torches:wand", "default:torch") + +-- Remove copper_rail from moreores => utilisation des rail_copper du mod carts +minetest.register_alias("moreores:copper_rail", "carts:rail_copper") + diff --git a/mods/_misc/ban.lua b/mods/_misc/ban.lua new file mode 100755 index 00000000..a810b5f2 --- /dev/null +++ b/mods/_misc/ban.lua @@ -0,0 +1,63 @@ +future_ban_list = {} + +local file = io.open(minetest.get_worldpath().."/future_banlist.txt", "r") +if file then + future_ban_list = minetest.deserialize(file:read("*all")) + file:close() + if not future_ban_list then + future_ban_list = {} + end +end + +local function save_file() + local file = io.open(minetest.get_worldpath().."/future_banlist.txt", "w") + if file then + file:write(minetest.serialize(future_ban_list)) + file:close() + end +end + +minetest.register_chatcommand("future_ban", { + params = " | leave playername out to see the future ban list", + description = "The player will be banned when trying to join", + privs = {ban=true}, + func = function(name, param) + if param == "" then + minetest.chat_send_player(name, "Future ban list: " .. dump(future_ban_list)) + return + end + if not minetest.env:get_player_by_name(param) then + table.insert(future_ban_list, param) + minetest.chat_send_player(name, param .. " to future ban list added.") + minetest.log("action", name .. " added " .. param .. " to future ban list.") + save_file() + return + end + if not minetest.ban_player(param) then + table.insert(future_ban_list, param) + minetest.chat_send_player(name, desc .. " to future ban list added.") + minetest.log("action", name .. " added " .. desc .. " to future ban list.") + save_file() + else + local desc = minetest.get_ban_description(param) + minetest.chat_send_player(name, "Banned " .. desc .. ".") + minetest.log("action", name .. " bans " .. desc .. ".") + end + end +}) + +minetest.register_on_joinplayer(function(player) + local name = player:get_player_name() + for i,n in ipairs(future_ban_list) do + if n == name then + if not minetest.ban_player(name) then + minetest.chat_send_player(name, "Failed to ban player " .. name .. " (from future ban list).") + else + local desc = minetest.get_ban_description(name) + minetest.log("action", desc .. " banned (from future ban list).") + table.remove(future_ban_list, i) + save_file() + end + end + end +end) diff --git a/mods/_misc/chat_offline.lua b/mods/_misc/chat_offline.lua new file mode 100755 index 00000000..bd36fb8d --- /dev/null +++ b/mods/_misc/chat_offline.lua @@ -0,0 +1,25 @@ +-- This allows me to chat and use basic commands without being in-game +-- Based on the External Command mod by Menche + +minetest.register_globalstep( + function(dtime) + f = (io.open(minetest.get_worldpath("external_cmd").."/message", "r")) + if f ~= nil then + local message = f:read("*line") + f:close() + os.remove(minetest.get_worldpath("external_cmd").."/message") + if message ~= nil then + local cmd, param = string.match(message, "^/([^ ]+) *(.*)") + if not param then + param = "" + end + local cmd_def = minetest.chatcommands[cmd] + if cmd_def then + cmd_def.func("CraigyDavi", param) + else + minetest.chat_send_all(" "..message) + end + end + end + end +) diff --git a/mods/_misc/chatcommands.lua b/mods/_misc/chatcommands.lua new file mode 100644 index 00000000..e0437838 --- /dev/null +++ b/mods/_misc/chatcommands.lua @@ -0,0 +1,136 @@ +-- +-- Edited chat commands from core +-- + +-- /me +-- /help +-- /privs +-- /grant +-- /revoke +-- /setpassword +-- /clearpassword +-- /auth_reload +-- /teleport +-- /set +-- /mods +-- /give +-- /giveme +-- /spawnentity +-- /pulverize +-- /rollback_check +-- /rollback +-- /status + +minetest.register_chatcommand("time", { + params = "<0...24000>", + description = "set time of day", + privs = {settime=true}, + func = function(name, param) + if param == "" then + return false, "Missing time." + end + local newtime = tonumber(param) + if newtime == nil then + return false, "Invalid time." + end + minetest.set_timeofday((newtime % 24000) / 24000) + minetest.log("action", name .. " sets time " .. newtime) + minetest.chat_send_all(name .. " changed the time of day.") + end, +}) + +minetest.register_chatcommand("shutdown", { + description = "shutdown server", + privs = {server=true}, + func = function(name, param) + minetest.log("action", name .. " shuts down server") + minetest.request_shutdown() + minetest.chat_send_all(name .. " just shut down the server.") + end, +}) + +minetest.register_chatcommand("ban", { + params = "", + description = "Ban IP of player", + privs = {ban=true}, + func = function(name, param) + if param == "" then + return true, "Ban list: " .. minetest.get_ban_list() + end + if not minetest.get_player_by_name(param) then + return false, "This player is not online at the moment. Use a /future_ban instead." + end + if not minetest.ban_player(param) then + return false, "Failed to ban player." + end + local desc = minetest.get_ban_description(param) + minetest.log("action", name .. " bans " .. desc .. ".") + return true, "Banned " .. desc .. "." + end, +}) + +-- /unban +-- /kick +-- /clearobjects +-- /msg + +-- +-- Other chat commands +-- + +-- Spawn command +--minetest.register_chatcommand("spawn", { +-- params = "", +-- description = "Teleport to the spawn location.", +-- privs = {shout=true}, +-- func = function(name, param) +-- local player = minetest.env:get_player_by_name(name) +-- minetest.chat_send_player(name, "Teleported to spawn!") +-- player:setpos({x=0.0, y=5.0, z=0.0}) +-- return true +-- end, +--}) +--[[ +-- Sethome command +minetest.register_chatcommand("sethome", { + params = "", + description = "Set your home location.", + privs = {shout=true}, + func = function(name, param) + player = minetest.env:get_player_by_name(name) + test = player:getpos() + local file = io.open(minetest.get_worldpath().."/home/"..player:get_player_name().."_home", "w") + if not file then + minetest.chat_send_player(name, "Il y a eut une erreur, s'il vous plait contactez le detenteur du serveur.") + return + end + file:write(minetest.pos_to_string(test)) + file:close() + minetest.chat_send_player(name, "Votre emplacement 'home' est definit ! Tapez /home pour vous y teleporter.") + end +}) + +-- Home command +minetest.register_chatcommand("home", { + params = "", + description = "Vous teleporte a l'emplacement de votre 'home'.", + privs = {shout=true}, + func = function(name, param) + player = minetest.env:get_player_by_name(name) + local file = io.open(minetest.get_worldpath().."/home/"..player:get_player_name().."_home", "r") + if not file then + minetest.chat_send_player(name, "Vous devez definir votre emplacement 'home' ! Pour ce faire, utilisez la commande /sethome.") + return + end + local line = file:read("*line") + file:close() + local pos = minetest.string_to_pos(string.sub(line, 1, string.find(line, ")"))) + if not pos or type(pos) ~= "table" then + minetest.chat_send_player(name, "Il y a eut une erreur, s'il vous plait contactez le detenteur du serveur.") + return + end + minetest.env:get_player_by_name(name):setpos(pos) + minetest.chat_send_player(name, "Vous voil chez vous.") + end +}) +--]] diff --git a/mods/_misc/chatlog.lua b/mods/_misc/chatlog.lua new file mode 100755 index 00000000..ac5082aa --- /dev/null +++ b/mods/_misc/chatlog.lua @@ -0,0 +1,15 @@ +local chatlog = minetest.get_worldpath().."/chatlog.txt" +monthfirst = true -- Wheter the 1st of Feb should be 1/2/13(monthfirst = true) or 2/1/13(monthfirst = false) + + +function playerspeak(name,msg) + f = io.open(chatlog, "a") + if monthfirst then + f:write(os.date("(%m/%d/%y %X) ["..name.."]: "..msg.."\n")) + else + f:write(os.date("(%d/%m/%y %X) ["..name.."]: "..msg.."\n")) + end + f:close() +end + +minetest.register_on_chat_message(playerspeak) \ No newline at end of file diff --git a/mods/_misc/craft_obsidian.lua b/mods/_misc/craft_obsidian.lua new file mode 100755 index 00000000..7afda0e8 --- /dev/null +++ b/mods/_misc/craft_obsidian.lua @@ -0,0 +1,10 @@ +-- Craft obsidian +minetest.register_craft({ + output = "default:obsidian", + recipe = { + {"bucket:bucket_lava"}, + }, + replacements = { + {"bucket:bucket_lava", "bucket:bucket_empty"} + }, +}) diff --git a/mods/_misc/give_initial_stuff.lua b/mods/_misc/give_initial_stuff.lua new file mode 100644 index 00000000..85b851eb --- /dev/null +++ b/mods/_misc/give_initial_stuff.lua @@ -0,0 +1,10 @@ +minetest.register_on_newplayer(function(player) + print("Un nouveau joueur vient de nous rejoindre !") + if minetest.setting_getbool("give_initial_stuff") then + print("Equipement de depart transmis") + player:get_inventory():add_item("main", "default:axe_wood") + player:get_inventory():add_item("main", "default:torch 10") + player:get_inventory():add_item("main", "default:sapling 2") + player:get_inventory():add_item("main", "default:apple 5") + end +end) diff --git a/mods/_misc/init.lua b/mods/_misc/init.lua new file mode 100644 index 00000000..96ab414b --- /dev/null +++ b/mods/_misc/init.lua @@ -0,0 +1,45 @@ +--------------------- +-- Server Misc Mod -- +--------------------- + +-- Seen +--dofile(minetest.get_modpath("_misc").."/seen.lua") + +-- Nodename HUD +--dofile(minetest.get_modpath("_misc").."/nodename_hud.lua") + +-- Give initial stuff +dofile(minetest.get_modpath("_misc").."/give_initial_stuff.lua") + +-- Chat Commands +dofile(minetest.get_modpath("_misc").."/chatcommands.lua") + +-- News +--dofile(minetest.get_modpath("_misc").."/news.lua") + +-- Rules +dofile(minetest.get_modpath("_misc").."/rules.lua") + +-- Aliases +dofile(minetest.get_modpath("_misc").."/aliases.lua") + +-- Chatlog +--dofile(minetest.get_modpath("_misc").."/chatlog.lua") + +-- Username filter +-- dofile(minetest.get_modpath("_misc").."/username_filter.lua") + +-- Ban +--dofile(minetest.get_modpath("_misc").."/ban.lua") + +-- Chat Offline +--dofile(minetest.get_modpath("_misc").."/chat_offline.lua") + +-- No Interact Messages +dofile(minetest.get_modpath("_misc").."/nointeract_messages.lua") + +-- Craft Obsidian +dofile(minetest.get_modpath("_misc").."/craft_obsidian.lua") + +-- UnCraft Woll +dofile(minetest.get_modpath("_misc").."/uncraft_woll.lua") diff --git a/mods/_misc/news.lua b/mods/_misc/news.lua new file mode 100755 index 00000000..fced28d6 --- /dev/null +++ b/mods/_misc/news.lua @@ -0,0 +1,48 @@ +local news = {} + +news.path = minetest.get_worldpath() + +function news.formspec(player,article) + + if ( article == "" or article == nil ) then + article = "news.txt" + else + article = "news_"..article..".txt" + end + + local newsfile = io.open(news.path.."/"..article,"r") + + local formspec = "size[12,10]" + + if newsfile ~= nil then + local newscontent = newsfile:read("*a") + formspec = formspec.."textarea[.25,.25;12,10;news;;"..newscontent.."]" + else + formspec = formspec.."label[.25,.25;Article does not exist]" + end + formspec = formspec.."button_exit[.25,9;2,1;exit;Fermer" + if ( newsfile ~= nil ) then + newsfile:close() + end + return formspec +end + +function news.show_formspec(player) + local name = player:get_player_name() + minetest.show_formspec(name,"news",news.formspec(player)) + minetest.log('action','Showing formspec to '..name) +end + + +minetest.register_chatcommand("news",{ + params = "
", + description="Montre les news du serveur", + func = function (name,params) + local player = minetest.get_player_by_name(name) + minetest.show_formspec(name,"news",news.formspec(player,params)) + end, +}) + +minetest.register_on_joinplayer(function (player) + minetest.after(5,news.show_formspec,player) +end) diff --git a/mods/_misc/nodename_hud.lua b/mods/_misc/nodename_hud.lua new file mode 100755 index 00000000..7d6ef3ec --- /dev/null +++ b/mods/_misc/nodename_hud.lua @@ -0,0 +1,53 @@ +local wield={} +local huds={} +local dtimes={} +local dlimit=60 +local airhudmod = minetest.get_modpath("4air") + +local function get_desc(item) + if minetest.registered_nodes[item] then return minetest.registered_nodes[item]["description"] end + if minetest.registered_items[item] then return minetest.registered_items[item]["description"] end + if minetest.registered_craftitems[item] then return minetest.registered_craftitems[item]["description"] end + if minetest.registered_tools[item] then return minetest.registered_tools[item]["description"] end + return "" +end + +minetest.register_globalstep(function(dtime) +local players = minetest.get_connected_players() +for i,player in ipairs(players) do + local pll = player:get_player_name() + local wstack = player:get_wielded_item():get_name() + local shift = player:get_player_control()['sneak'] + local meta = player:get_wielded_item():get_metadata() + local desc + if not shift then + desc = wstack + else + desc = wstack + end + if dtimes[pll] then dtimes[pll]=dtimes[pll]+dtime else dtimes[pll]=0 end + if dtimes[pll]>dlimit then + if huds[pll] then player:hud_remove(huds[pll]) end + dtimes[pll]=dlimit+1 + end + if wstack ~= wield[pll] then + wield[pll]=wstack + dtimes[pll]=0 + if huds[pll] + then + player:hud_remove(huds[pll]) + end + local off = {x=0, y=-70} + if airhudmod then off.y=off.y-20 end + huds[pll] = player:hud_add({ + hud_elem_type = "text", + position = {x=0.5, y=1}, + offset = off, + alignment = {x=0, y=0}, + number = 0xFFFFFF , + text = desc, + }) + end + +end +end) \ No newline at end of file diff --git a/mods/_misc/nointeract_messages.lua b/mods/_misc/nointeract_messages.lua new file mode 100755 index 00000000..cd5168a8 --- /dev/null +++ b/mods/_misc/nointeract_messages.lua @@ -0,0 +1,12 @@ +local TIMER = 0 +minetest.register_globalstep(function(dtime) + TIMER = TIMER + dtime + if TIMER < 20 then return end + TIMER = 0 + for _,player in ipairs(minetest.get_connected_players()) do + local name = player:get_player_name() + if not minetest.check_player_privs(name, {interact=true}) then + minetest.chat_send_player(name, "Hey " .. name .. " ! Pour pouvoir construire et intéragir sur ce serveur, tu dois lire les règles du serveur et les accepter. Tapez /rules.") + end + end +end) diff --git a/mods/_misc/rules.lua b/mods/_misc/rules.lua new file mode 100755 index 00000000..2aac57c8 --- /dev/null +++ b/mods/_misc/rules.lua @@ -0,0 +1,55 @@ +# Based on https://github.com/ChaosWormz/mt_terms_of_use + +local RULES = [[ +Voici les règles : + +1) Aucune atteinte intentionnelle au bon fonctionnement du serveur ne sera admise. (lag, crash, exploit de bug, etc...) +2) La triche (hack, client modifié, etc...) n'est pas tolérée sur le serveur. Soyez fair-play et apprenez à jouer selon les règles. +3) Sur le serveur, le PVP est autorisé, le vole/grief est aussi autorisé. (pensez au mod areas pour protéger vos biens) +4) Merci de ne pas spammer ou flooder. +5) Chaque joueur à l'entière responsabilité de son compte, nous ne sommes en aucun cas responsable d'une utilisation frauduleuse de votre compte dans le jeu. +6) Si possible, évitez les constructions de tours en 1x1 et, poser des blocs gâchant le décor n'importe ou. Ceci pour que le serveur reste le plus beau, sauvage et naturel possibe. +7) Ne demandez pas à être membre de l'equipe du serveur. +8) Aucune forme d'insulte ou de racisme n'est admise. + +Cliquez sur le bouton "Accepter" pour pouvoir construire et intéragir sur le serveur. +]] + +local function make_formspec() + local size = { "size[10,8]" } + table.insert(size, "textarea[0.5,0.5;9.5,8;TOS;Voici les regles, cliquez sur Accepter si vous etes d'accord avec;"..RULES.."]") + table.insert(size, "button_exit[6,7.4;1.5,0.5;accept;J'accepte]") + table.insert(size, "button[7.5,7.4;1.5,0.5;decline;Je refuse]") + return table.concat(size) +end + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "rules" then return end + local name = player:get_player_name() + if fields.accept then + if minetest.check_player_privs(name, {shout=true}) then + minetest.chat_send_player(name, "Merci d'avoir accepte les regles, vous etes maintenant capable de construire et d'interagir avec le serveur.") + minetest.chat_send_player(name, "Amusez vous bien a survivre et construire !") + minetest.chat_send_player(name, "Pour plus d'informations tapez /news") + local privs = minetest.get_player_privs(name) + privs.interact = true + minetest.set_player_privs(name, privs) + end + return + elseif fields.decline then + minetest.kick_player(name, "Aurevoir ! Vous devez accepter les règles pour jouer sur le serveur (revennez si vous changez d'avoir).") + return + end +end) + +minetest.register_chatcommand("rules",{ + params = "", + description = "Montre les regles du serveur", + privs = {shout=true}, + func = function (name,params) + local player = minetest.get_player_by_name(name) + minetest.after(1, function() + minetest.show_formspec(name, "rules", make_formspec()) + end) + end +}) diff --git a/mods/_misc/seen.lua b/mods/_misc/seen.lua new file mode 100755 index 00000000..47615b2f --- /dev/null +++ b/mods/_misc/seen.lua @@ -0,0 +1,211 @@ +seendebug = true +local last_time = os.time() +local save_interval = 60 + +if minetest.setting_get("seen.save_interval") ~= nil then + local save_int = minetest.setting_get("seen.save_interval") + if tonumber(save_int) > 20 then + save_interval = save_int + end +end + +local function save_data(sett, data) + if sett ~= nil then + data_ser = minetest.serialize(data) + sett:set("data", data_ser) + sett:write() + else + minetest.chat_send_all("Seen Mod: Saving data failed. Please shout at the server admin!") + end +end + +local function load_data(sett, field) + local loaded = sett:get("data") + local def = sett:get("default") + if loaded ~= nil then + local data = minetest.deserialize(loaded) + else + local data = {} + end +end + +local function relative_time (time) + local diff = os.time() - time + if diff == 0 then + return "now" + elseif diff > 0 then + local day_diff = math.floor(diff/86400) + if day_diff == 0 then + if diff < 60 then + return "a few seconds ago" + end + if diff < 120 then + return "1 minute ago." + end + if diff < 3600 then + return tostring(math.floor(diff/60)).." minutes ago" + end + if diff < 7200 then + return "1 hour ago" + end + if diff < 86400 then + return tostring(math.floor(diff/3600)).." hours ago" + end + end + if day_diff == 1 then + return "yesterday" + end + if day_diff < 7 then + return tostring(day_diff).." days ago" + end + if day_diff < 31 then + return tostring(math.ceil(day_diff/7)).." weeks ago" + end + if day_diff < 60 then + return "last month" + end + return os.date("%B %Y", time) + else + local diff = math.abs(diff) + local day_diff = math.floor(diff/86400) + if day_diff == 0 then + if diff < 120 then + return "in a minute" + end + if diff < 3600 then + return "in "..tostring(math.floor(diff/60)).." minutes" + end + if diff < 7200 then + return "in an hour" + end + if diff < 86400 then + return "in "..tostring(math.floor(diff/3600)).." hours" + end + end + if day_diff == 1 then + return "tomorrow" + end + if day_diff < 4 then + return os.date("%A", time) + end + if day_diff < 7 + (7 - tonumber(os.date("%w"))) then + return "next week" + end + if math.ceil (day_diff / 7) < 4 then + return "in "..tostring(math.ceil(day_diff/7)).." weeks" + end + if tonumber(os.date("%m", time)) == tonumber(os.date("%m")) + 1 then + return "next month" + end + return os.date("%B %Y", time); + end +end + +local function print_r(tab,com) + if seendebug == true then + print("DEBUG: "..com) + table.foreach(tab, print) + print("-----") + return true + else + return false + end +end + +local function debug(var, com) + if seendebug == true then + print("DEBUG: "..com) + print(var) + minetest.chat_send_all("DEBUG: "..var.."// "..com) + print("-----") + return true + else + return false + end +end + +local config_file = minetest.get_worldpath().."/seen.txt" +--in case of not existant config file, it +--will create it +local file_desc = io.open(config_file, "a") +file_desc:close() + +--create config instance +local config = Settings(config_file) +local data +local seens = {} + +data = config:get("data") +if data ~= nil then + seens = minetest.deserialize(data) + for _, player in pairs( minetest.get_connected_players() ) do + name = player:get_player_name() + seens[name] = os.time() + end +else + seens = {} + for _, player in pairs( minetest.get_connected_players() ) do + name = player:get_player_name() + seens[name] = os.time() + end +end +save_data(config, seens) + +minetest.register_on_newplayer(function(player) + name = player:get_player_name() + seens[name] = os.time() + save_data(config, seens) + return true +end) + +minetest.register_on_joinplayer(function(player) + name = player:get_player_name() + seens[name] = os.time() + save_data(config, seens) + return true +end) + +minetest.register_on_leaveplayer(function(player) + name = player:get_player_name() + seens[name] = os.time() + save_data(config, seens) + return true +end) + +minetest.register_on_shutdown(function() + for _, player in pairs( minetest.get_connected_players() ) do + name = player:get_player_name() + seens[name] = os.time() + end + save_data(config, seens) + return true +end) + +minetest.register_globalstep(function ( dtime ) + if os.time() >= last_time then + last_time = os.time() + save_interval + for _, player in pairs( minetest.get_connected_players() ) do + name = player:get_player_name() + seens[name] = os.time() + end + save_data(config, seens) + end +end); + +minetest.register_chatcommand("seen", { + params = "", + description = "Recherche quand un joueur etait en ligne pour la derniere fois.", + func = function(name, param) + local player = minetest.get_player_by_name(name) + if not player then + return + end + if param ~= nil and param ~= "" then + if seens[param] ~= nil then + minetest.chat_send_player(name, param.." etait en ligne pour la derniere fois "..relative_time(seens[param])) + else + minetest.chat_send_player(name, "Il n'y a aucune donnees sur "..param..". Peut-etre que l'identifiant n'est pas correcte ?") + end + end + end, +}) diff --git a/mods/_misc/uncraft_woll.lua b/mods/_misc/uncraft_woll.lua new file mode 100644 index 00000000..5020ae1a --- /dev/null +++ b/mods/_misc/uncraft_woll.lua @@ -0,0 +1,119 @@ +-- récupéré les "cotton" des "wool" faite (récupère 3 aulieu de 4 et perte du colorant) +minetest.register_craft({ + output = "farming:cotton 3", + recipe = { + {"wool:black"}, + }, +}) + +minetest.register_craft({ + output = "farming:cotton 3", + recipe = { + {"wool:white"}, + }, +}) + +minetest.register_craft({ + output = "farming:cotton 3", + recipe = { + {"wool:grey"}, + }, +}) + +minetest.register_craft({ + output = "farming:cotton 3", + recipe = { + {"wool:dark_grey"}, + }, +}) + +minetest.register_craft({ + output = "farming:cotton 3", + recipe = { + {"wool:blue"}, + }, +}) + +minetest.register_craft({ + output = "farming:cotton 3", + recipe = { + {"wool:brown"}, + }, +}) + +minetest.register_craft({ + output = "farming:cotton 3", + recipe = { + {"wool:cyan"}, + }, +}) + +minetest.register_craft({ + output = "farming:cotton 3", + recipe = { + {"wool:green"}, + }, +}) + +minetest.register_craft({ + output = "farming:cotton 3", + recipe = { + {"wool:dark_green"}, + }, +}) + +minetest.register_craft({ + output = "farming:cotton 3", + recipe = { + {"wool:dark_grey"}, + }, +}) + +minetest.register_craft({ + output = "farming:cotton 3", + recipe = { + {"wool:dark_grey"}, + }, +}) + +minetest.register_craft({ + output = "farming:cotton 3", + recipe = { + {"wool:magenta"}, + }, +}) + +minetest.register_craft({ + output = "farming:cotton 3", + recipe = { + {"wool:orange"}, + }, +}) + +minetest.register_craft({ + output = "farming:cotton 3", + recipe = { + {"wool:pink"}, + }, +}) + +minetest.register_craft({ + output = "farming:cotton 3", + recipe = { + {"wool:red"}, + }, +}) + +minetest.register_craft({ + output = "farming:cotton 3", + recipe = { + {"wool:violet"}, + }, +}) + +minetest.register_craft({ + output = "farming:cotton 3", + recipe = { + {"wool:yellow"}, + }, +}) diff --git a/mods/_misc/username_filter.lua b/mods/_misc/username_filter.lua new file mode 100755 index 00000000..56c24eec --- /dev/null +++ b/mods/_misc/username_filter.lua @@ -0,0 +1,34 @@ +-- By VanessaE, sfan5, and kaeza. + +local disallowed = { + ["guest"] = "Les comptes Guest/invits sont dsactivs sur ce serveur. ".. + "S'il vous plat, choisissez un nom d'utilisateur correcte et ressayez.", + ["^[0-9]+$"] = "Les identifiants contenant uniquement des chiffres sont dsactivs sur ce serveur. ".. + "S'il vous plat, choisissez un nom d'utilisateur correcte et ressayez.", + ["[0-9].-[0-9].-[0-9].-[0-9].-[0-9]"] = "Trop de chiffres dans votre identifiant. ".. + "S'il vous plat, ressayez avec moins de 5 chiffres dans votre identifiant.", + ["[4a]dm[1il]n"] = "Ce nom d'utilisateur est dsactiv pour des raisons videntes. ".. + "Merci de choisir un autre nom d'utilisateur." +} + + + +minetest.register_on_prejoinplayer(function(name, ip) + local lname = name:lower() + for re, reason in pairs(disallowed) do + if lname:find(re) then + return reason + end + end + + if #name < 2 then + return "Identifiant trop court. ".. + "S'il vous plat, choisissez un identifiant avec au moins 2 lettres et ressayez." + end + + if #name > 18 then + return "Identifiant trop long. ".. + "S'il vous plat, choisissez un identifiant avec moins de 18 caractres." + end + +end) diff --git a/mods/_misc_kaeza/README.txt b/mods/_misc_kaeza/README.txt new file mode 100755 index 00000000..ce632d7d --- /dev/null +++ b/mods/_misc_kaeza/README.txt @@ -0,0 +1,34 @@ +Well, I've developed a few mods for testing new features in the engine (back +when they were new anyway). + +Since these mods have nothing in common, and are rather smallish, I don't +want to clutter up the forums with lots of topics. I'll be posting more here +as I push them to my repo (and I find where I left them :P). + +Dependencies +------------ +default + +License +------- +WTFPL for code and media files. + +Download +-------- +ZIP Archive: https://github.com/kaeza/minetest-kaeza_misc/archive/master.zip +Browse Code: https://github.com/kaeza/minetest-kaeza_misc + +Mods +---- + +Currently, these are the things added: + +bookex + This overrides the default book. When used, you can write something in it. + Useful for taking notes and such. + +testclock + This was to test the new Lua HUD system. It adds a clock that shows the + time of the day (in-game). + +To uninstall a mod, just remove it from the pack :) diff --git a/mods/_misc_kaeza/modpack.txt b/mods/_misc_kaeza/modpack.txt new file mode 100755 index 00000000..e69de29b diff --git a/mods/_misc_kaeza/notice/init.lua b/mods/_misc_kaeza/notice/init.lua new file mode 100755 index 00000000..cdd01c19 --- /dev/null +++ b/mods/_misc_kaeza/notice/init.lua @@ -0,0 +1,33 @@ + +minetest.register_privilege("notice", "Able to show notices to players.") + +minetest.register_chatcommand("notice", { + params = " ", + privs = { notice=true, }, + description = "Show a notice to a player.", + func = function(name, params) + local target, text = params:match("(%S+)%s+(.+)") + if not (target and text) then + minetest.chat_send_player(name, "Usage: /notice ") + return + end + local player = minetest.get_player_by_name(target) + if not player then + minetest.chat_send_player(name, ("There's no player named '%s'."):format(target)) + return + end + local fs = { } + local y = 0 + for _, line in ipairs(text:split("|")) do + table.insert(fs, ("label[1,%f;%s]"):format(y+1, minetest.formspec_escape(line))) + y = y + 0.5 + end + table.insert(fs, 1, ("size[8,%d]"):format(y+3)) + table.insert(fs, ("button_exit[3,%f;2,0.5;ok;OK]"):format(y+2)) + fs = table.concat(fs) + minetest.chat_send_player(name, "Notice sent.") + minetest.after(0.5, function() + minetest.show_formspec(target, "notice:notice", fs) + end) + end, +}) diff --git a/mods/ambience_modpack/.gitattributes b/mods/ambience_modpack/.gitattributes new file mode 100755 index 00000000..412eeda7 --- /dev/null +++ b/mods/ambience_modpack/.gitattributes @@ -0,0 +1,22 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp +*.sln merge=union +*.csproj merge=union +*.vbproj merge=union +*.fsproj merge=union +*.dbproj merge=union + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain diff --git a/mods/ambience_modpack/.gitignore b/mods/ambience_modpack/.gitignore new file mode 100755 index 00000000..5ebd21a1 --- /dev/null +++ b/mods/ambience_modpack/.gitignore @@ -0,0 +1,163 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results +[Dd]ebug/ +[Rr]elease/ +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.vspscc +.builds +*.dotCover + +## TODO: If you have NuGet Package Restore enabled, uncomment this +#packages/ + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf + +# Visual Studio profiler +*.psess +*.vsp + +# ReSharper is a .NET coding add-in +_ReSharper* + +# Installshield output folder +[Ee]xpress + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish + +# Others +[Bb]in +[Oo]bj +sql +TestResults +*.Cache +ClientBin +stylecop.* +~$* +*.dbmdl +Generated_Code #added for RIA/Silverlight projects + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML + + + +############ +## Windows +############ + +# Windows image file caches +Thumbs.db + +# Folder config file +Desktop.ini + + +############# +## Python +############# + +*.py[co] + +# Packages +*.egg +*.egg-info +dist +build +eggs +parts +bin +var +sdist +develop-eggs +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg + +# Mac crap +.DS_Store diff --git a/mods/ambience_modpack/ambience/14init.lua b/mods/ambience_modpack/ambience/14init.lua new file mode 100755 index 00000000..1f4acd6d --- /dev/null +++ b/mods/ambience_modpack/ambience/14init.lua @@ -0,0 +1,390 @@ +-------------------------------------------------------------------------------------------------------- +--Ambiance Configuration for version .14 + +local max_frequency_all = 1000 --the larger you make this number the lest frequent ALL sounds will happen recommended values between 100-2000. + +--for frequencies below use a number between 0 and max_frequency_all +--for volumes below, use a number between 0.0 and 1, the larger the number the louder the sounds +local night_frequency = 20 --owls, wolves +local night_volume = 0.9 +local night_frequent_frequency = 150 --crickets +local night_frequent_volume = 0.9 +local day_frequency = 100 --crow, bluejay, cardinal +local day_volume = 0.9 +local day_frequent_frequency = 1000 --crow, bluejay, cardinal +local day_frequent_volume = 0.18 +local cave_frequency = 10 --bats +local cave_volume = 1.0 +local cave_frequent_frequency = 70 --drops of water dripping +local cave_frequent_volume = 1.0 +local water_frequent_frequency = 1000 --water sounds +local water_frequent_volume = 1.0 +local music_frequency = 7 --music (suggestion: keep this one low like around 6) +local music_volume = 0.3 +--End of Config +---------------------------------------------------------------------------------------------------- +local played_on_start = false +local night = { + handler = {}, + frequency = night_frequency, + {name="horned_owl", length=3, gain=night_volume}, + {name="Wolves_Howling", length=11, gain=night_volume}, + {name="ComboWind", length=17, gain=night_volume} +} + +local night_frequent = { + handler = {}, + frequency = night_frequent_frequency, + {name="Crickets_At_NightCombo", length=69, gain=night_frequent_volume} +} + +local day = { + handler = {}, + frequency = day_frequency, + {name="Best Cardinal Bird", length=4, gain=day_volume}, + {name="craw", length=3, gain=day_volume}, + {name="bluejay", length=18, gain=day_volume}, + {name="ComboWind", length=17, gain=day_volume} +} + +local day_frequent = { + handler = {}, + frequency = day_frequent_frequency, + {name="robin2", length=16, gain=day_frequent_volume}, + {name="birdsongnl", length=13, gain=day_frequent_volume}, + {name="bird", length=30, gain=day_frequent_volume}, + {name="Best Cardinal Bird", length=4, gain=day_frequent_volume}, + {name="craw", length=3, gain=day_frequent_volume}, + {name="bluejay", length=18, gain=day_frequent_volume}, + {name="ComboWind", length=17, gain=day_frequent_volume*3} +} + + +local cave = { + handler = {}, + frequency = cave_frequency, + {name="Bats_in_Cave", length=5, gain=cave_volume} +} + +local cave_frequent = { + handler = {}, + frequency = cave_frequent_frequency, + {name="drippingwater_drip_a", length=2, gain=cave_frequent_volume}, + {name="drippingwater_drip_b", length=2, gain=cave_frequent_volume}, + {name="drippingwater_drip_c", length=2, gain=cave_frequent_volume}, + {name="Single_Water_Droplet", length=3, gain=cave_frequent_volume}, + {name="Spooky_Water_Drops", length=7, gain=cave_frequent_volume} +} + +local water = { + handler = {}, + frequency = 0,--dolphins dont fit into small lakes + {name="dolphins", length=6}, + {name="dolphins_screaming", length=16.5} +} + +local water_frequent = { + handler = {}, + frequency = water_frequent_frequency, + on_stop = "drowning_gasp", + on_start = "Splash", + {name="scuba1bubbles", length=11, gain=water_frequent_volume}, + {name="scuba1calm", length=10}, --not sure why but sometimes I get errors when setting gain=water_frequent_volume here. + {name="scuba1calm2", length=8.5, gain=water_frequent_volume}, + {name="scuba1interestingbubbles", length=11, gain=water_frequent_volume}, + {name="scuba1tubulentbubbles", length=10.5, gain=water_frequent_volume} +} + +local flowing_water = { + handler = {}, + frequency = 1000, + {name="small_waterfall", length=14, gain=.4} +} +local flowing_water2 = { + handler = {}, + frequency = 1000, + {name="small_waterfall", length=11, gain=.3} +} + +local lava = { + handler = {}, + frequency = 1000, + {name="earth01a", length=20} +} +local lava2 = { + handler = {}, + frequency = 1000, + {name="earth01a", length=15} +} + +local play_music = minetest.setting_getbool("music") or false +local music = { + handler = {}, + frequency = music_frequency, + {name="mtest", length=4*60+33, gain=music_volume}, + {name="echos", length=2*60+26, gain=music_volume}, + {name="FoamOfTheSea", length=1*60+50, gain=music_volume}, + {name="eastern_feeling", length=3*60+51, gain=music_volume}, + {name="Mass_Effect_Uncharted_Worlds", length=2*60+29, gain=music_volume}, + {name="dark_ambiance", length=44, gain=music_volume} +} + +local is_daytime = function() + return (minetest.env:get_timeofday() > 0.2 and minetest.env:get_timeofday() < 0.8) +end + +--[[old +local nodes_in_range = function(pos, search_distance, node_name) + local search_p = {x=0, y=0, z=0} + local nodes_found = 0 + for p_x=(pos.x-search_distance), (pos.x+search_distance) do + for p_y=(pos.y-search_distance), (pos.y+search_distance) do + for p_z=(pos.z-search_distance), (pos.z+search_distance) do + local search_n = minetest.env:get_node({x=p_x, y=p_y, z=p_z}) + if search_n.name == node_name then + nodes_found = nodes_found + 1 + end + end + end + end + return nodes_found + --minetest.chat_send_all("Range: " .. tostring(search_distance) .. " | Found (" .. node_name .. ": " .. nodes_found .. ")") +end --]] + +local nodes_in_range = function(pos, search_distance, node_name) + minp = {x=pos.x-search_distance,y=pos.y-search_distance, z=pos.z-search_distance} + maxp = {x=pos.x+search_distance,y=pos.y+search_distance, z=pos.z+search_distance} + nodes = minetest.env:find_nodes_in_area(minp, maxp, node_name) +-- minetest.chat_send_all("Found (" .. node_name .. ": " .. #nodes .. ")") + return #nodes +end + + +local get_ambience = function(player) + local pos = player:getpos() + pos.y = pos.y+1.0 + local nodename = minetest.env:get_node(pos).name + if string.find(nodename, "default:water") then + if music then + return {water=water, water_frequent=water_frequent, music=music} + else + return {water=water, water_frequent=water_frequent} + end + end + if nodes_in_range(pos, 7, "default:lava_flowing")>5 or nodes_in_range(pos, 7, "default:lava_source")>5 then + if music then + return {lava=lava, lava2=lava2, music=music} + else + return {lava=lava} + end + end + if nodes_in_range(pos, 7, "default:water_flowing")>5 then + if music then + return {flowing_water=flowing_water, flowing_water2=flowing_water2, music=music} + else + return {flowing_water=flowing_water, flowing_water2=flowing_water2} + end + end + if player:getpos().y < 0 then + if music then + return {cave=cave, cave_frequent=cave_frequent, music=music} + else + return {cave=cave, cave_frequent=cave_frequent} + end + end + if is_daytime() then + if music then + return {day=day, day_frequent=day_frequent, music=music} + else + return {day=day, day_frequent=day_frequent} + end + else + if music then + return {night=night, night_frequent=night_frequent, music=music} + else + return {night=night, night_frequent=night_frequent} + end + end +end + +-- start playing the sound, set the handler and delete the handler after sound is played +local play_sound = function(player, list, number) + local player_name = player:get_player_name() + if list.handler[player_name] == nil then + local gain = 1.0 + if list[number].gain ~= nil then + gain = list[number].gain + end + local handler = minetest.sound_play(list[number].name, {to_player=player_name, gain=gain}) + if handler ~= nil then + list.handler[player_name] = handler + minetest.after(list[number].length, function(args) + local list = args[1] + local player_name = args[2] + if list.handler[player_name] ~= nil then + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end, {list, player_name}) + end + end +end + +-- stops all sounds that are not in still_playing +local stop_sound = function(still_playing, player) + local player_name = player:get_player_name() + if still_playing.cave == nil then + local list = cave + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.cave_frequent == nil then + local list = cave_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.night == nil then + local list = night + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.night_frequent == nil then + local list = night_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.day == nil then + local list = day + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.day_frequent == nil then + local list = day_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.music == nil then + local list = music + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.flowing_water == nil then + local list = flowing_water + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.flowing_water2 == nil then + local list = flowing_water2 + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.lava == nil then + local list = lava + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.lava2 == nil then + local list = lava2 + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.water == nil then + local list = water + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.water_frequent == nil then + local list = water_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + played_on_start = false + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end +end + +local timer = 0 +minetest.register_globalstep(function(dtime) + timer = timer+dtime + if timer < 1 then + return + end + timer = 0 + + for _,player in ipairs(minetest.get_connected_players()) do + local ambiences = get_ambience(player) + stop_sound(ambiences, player) + for _,ambience in pairs(ambiences) do + if math.random(1, 1000) <= ambience.frequency then + if ambience.on_start ~= nil and played_on_start == false then + played_on_start = true + minetest.sound_play(ambience.on_start, {to_player=player:get_player_name()}) + end + play_sound(player, ambience, math.random(1, #ambience)) + end + end + end +end) \ No newline at end of file diff --git a/mods/ambience_modpack/ambience/Badinit.lua b/mods/ambience_modpack/ambience/Badinit.lua new file mode 100755 index 00000000..ba85193e --- /dev/null +++ b/mods/ambience_modpack/ambience/Badinit.lua @@ -0,0 +1,439 @@ +-------------------------------------------------------------------------------------------------------- +--Ambiance Configuration for version .16 + +local max_frequency_all = 1000 --the larger you make this number the lest frequent ALL sounds will happen recommended values between 100-2000. + +--for frequencies below use a number between 0 and max_frequency_all +--for volumes below, use a number between 0.0 and 1, the larger the number the louder the sounds +local night_frequency = 20 --owls, wolves +local night_volume = 0.9 +local night_frequent_frequency = 150 --crickets +local night_frequent_volume = 0.9 +local day_frequency = 100 --crow, bluejay, cardinal +local day_volume = 0.9 +local day_frequent_frequency = 1000 --crow, bluejay, cardinal +local day_frequent_volume = 0.18 +local cave_frequency = 10 --bats +local cave_volume = 1.0 +local cave_frequent_frequency = 70 --drops of water dripping +local cave_frequent_volume = 1.0 +local beach_frequency = 20 --seagulls +local beach_volume = 1.0 +local beach_frequent_frequency = 1000 --waves +local beach_frequent_volume = 1.0 +local water_frequent_frequency = 1000 --water sounds +local water_frequent_volume = 1.0 +local music_frequency = 7 --music (suggestion: keep this one low like around 6) +local music_volume = 0.3 +--End of Config +---------------------------------------------------------------------------------------------------- +local played_on_start = false +local night = { + handler = {}, + frequency = night_frequency, + {name="horned_owl", length=3, gain=night_volume}, + {name="Wolves_Howling", length=11, gain=night_volume}, + {name="ComboWind", length=17, gain=night_volume} +} + +local night_frequent = { + handler = {}, + frequency = night_frequent_frequency, + {name="Crickets_At_NightCombo", length=69, gain=night_frequent_volume} +} + +local day = { + handler = {}, + frequency = day_frequency, + {name="Best Cardinal Bird", length=4, gain=day_volume}, + {name="craw", length=3, gain=day_volume}, + {name="bluejay", length=18, gain=day_volume}, + {name="ComboWind", length=17, gain=day_volume} +} + +local day_frequent = { + handler = {}, + frequency = day_frequent_frequency, + {name="robin2", length=16, gain=day_frequent_volume}, + {name="birdsongnl", length=13, gain=day_frequent_volume}, + {name="bird", length=30, gain=day_frequent_volume}, + {name="Best Cardinal Bird", length=4, gain=day_frequent_volume}, + {name="craw", length=3, gain=day_frequent_volume}, + {name="bluejay", length=18, gain=day_frequent_volume}, + {name="ComboWind", length=17, gain=day_frequent_volume*3} +} + + +local cave = { + handler = {}, + frequency = cave_frequency, + {name="Bats_in_Cave", length=5, gain=cave_volume} +} + +local cave_frequent = { + handler = {}, + frequency = cave_frequent_frequency, + {name="drippingwater_drip_a", length=2, gain=cave_frequent_volume}, + {name="drippingwater_drip_b", length=2, gain=cave_frequent_volume}, + {name="drippingwater_drip_c", length=2, gain=cave_frequent_volume}, + {name="Single_Water_Droplet", length=3, gain=cave_frequent_volume}, + {name="Spooky_Water_Drops", length=7, gain=cave_frequent_volume} +} + +local beach = { + handler = {}, + frequency = beach_frequency, + {name="seagull", length=4.5, gain=beach_volume} +} + +local beach_frequent = { + handler = {}, + frequency = beach_frequent_frequency, + {name="fiji_beach", length=43.5, gain=beach_frequent_volume} +} + + +local water = { + handler = {}, + frequency = 0,--dolphins dont fit into small lakes + {name="dolphins", length=6}, + {name="dolphins_screaming", length=16.5} +} + +local water_frequent = { + handler = {}, + frequency = water_frequent_frequency, + on_stop = "drowning_gasp", + on_start = "Splash", + {name="scuba1bubbles", length=11, gain=water_frequent_volume}, + {name="scuba1calm", length=10}, --not sure why but sometimes I get errors when setting gain=water_frequent_volume here. + {name="scuba1calm2", length=8.5, gain=water_frequent_volume}, + {name="scuba1interestingbubbles", length=11, gain=water_frequent_volume}, + {name="scuba1tubulentbubbles", length=10.5, gain=water_frequent_volume} +} + +local flowing_water = { + handler = {}, + frequency = 1000, + {name="small_waterfall", length=14, gain=.4} +} +local flowing_water2 = { + handler = {}, + frequency = 1000, + {name="small_waterfall", length=11, gain=.3} +} + +local lava = { + handler = {}, + frequency = 1000, + {name="earth01a", length=20} +} +local lava2 = { + handler = {}, + frequency = 1000, + {name="earth01a", length=15} +} + + +local play_music = minetest.setting_getbool("music") or false +local music = { + handler = {}, + frequency = music_frequency, + {name="mtest", length=4*60+33, gain=music_volume}, + {name="echos", length=2*60+26, gain=music_volume}, + {name="FoamOfTheSea", length=1*60+50, gain=music_volume}, + {name="eastern_feeling", length=3*60+51, gain=music_volume}, + {name="Mass_Effect_Uncharted_Worlds", length=2*60+29, gain=music_volume}, + {name="dark_ambiance", length=44, gain=music_volume} +} + +local is_daytime = function() + return (minetest.env:get_timeofday() > 0.2 and minetest.env:get_timeofday() < 0.8) +end + +--[[old +local nodes_in_range = function(pos, search_distance, node_name) + local search_p = {x=0, y=0, z=0} + local nodes_found = 0 + for p_x=(pos.x-search_distance), (pos.x+search_distance) do + for p_y=(pos.y-search_distance), (pos.y+search_distance) do + for p_z=(pos.z-search_distance), (pos.z+search_distance) do + local search_n = minetest.env:get_node({x=p_x, y=p_y, z=p_z}) + if search_n.name == node_name then + nodes_found = nodes_found + 1 + end + end + end + end + return nodes_found + --minetest.chat_send_all("Range: " .. tostring(search_distance) .. " | Found (" .. node_name .. ": " .. nodes_found .. ")") +end --]] + +local nodes_in_range = function(pos, search_distance, node_name) + minp = {x=pos.x-search_distance,y=pos.y-search_distance, z=pos.z-search_distance} + maxp = {x=pos.x+search_distance,y=pos.y+search_distance, z=pos.z+search_distance} + nodes = minetest.env:find_nodes_in_area(minp, maxp, node_name) +-- minetest.chat_send_all("Found (" .. node_name .. ": " .. #nodes .. ")") + return #nodes +end + + +local get_ambience = function(player) + local pos = player:getpos() + pos.y = pos.y+1.0 + local nodename = minetest.env:get_node(pos).name + if string.find(nodename, "default:water") then + if music then + return {water=water, water_frequent=water_frequent, music=music} + else + return {water=water, water_frequent=water_frequent} + end + end + if nodes_in_range(pos, 7, "default:lava_flowing")>5 or nodes_in_range(pos, 7, "default:lava_source")>5 then + if music then + return {lava=lava, lava2=lava2, music=music} + else + return {lava=lava} + end + end + if nodes_in_range(pos, 7, "default:water_flowing")>5 then + if music then + return {flowing_water=flowing_water, flowing_water2=flowing_water2, music=music} + else + return {flowing_water=flowing_water, flowing_water2=flowing_water2} + end + end + pos.y = pos.y-2 + nodename = minetest.env:get_node(pos).name + --minetest.chat_send_all("Found " .. nodename .. pos.y ) + if string.find(nodename, "default:sand") and pos.y < 5 then + if music then + return {beach=beach, beach_frequent=beach_frequent, music=music} + else + return {beach=beach, beach_frequent=beach_frequent} + end + end + if player:getpos().y < 0 then + if music then + return {cave=cave, cave_frequent=cave_frequent, music=music} + else + return {cave=cave, cave_frequent=cave_frequent} + end + end + if is_daytime() then + if music then + return {day=day, day_frequent=day_frequent, music=music} + else + return {day=day, day_frequent=day_frequent} + end + else + if music then + return {night=night, night_frequent=night_frequent, music=music} + else + return {night=night, night_frequent=night_frequent} + end + end +end + +-- start playing the sound, set the handler and delete the handler after sound is played +local play_sound = function(player, list, number) + local player_name = player:get_player_name() + if list.handler[player_name] == nil then + local gain = 1.0 + if list[number].gain ~= nil then + gain = list[number].gain + end + local handler = minetest.sound_play(list[number].name, {to_player=player_name, gain=gain}) + if handler ~= nil then + list.handler[player_name] = handler + minetest.after(list[number].length, function(args) + local list = args[1] + local player_name = args[2] + if list.handler[player_name] ~= nil then + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end, {list, player_name}) + end + end +end + +-- stops all sounds that are not in still_playing +local stop_sound = function(still_playing, player) + local player_name = player:get_player_name() + if still_playing.cave == nil then + local list = cave + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.cave_frequent == nil then + local list = cave_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.beach == nil then + local list = beach + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.beach_frequent == nil then + local list = beach_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + + if still_playing.night == nil then + local list = night + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.night_frequent == nil then + local list = night_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.day == nil then + local list = day + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.day_frequent == nil then + local list = day_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.music == nil then + local list = music + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.flowing_water == nil then + local list = flowing_water + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.flowing_water2 == nil then + local list = flowing_water2 + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.lava == nil then + local list = lava + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.lava2 == nil then + local list = lava2 + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.water == nil then + local list = water + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.water_frequent == nil then + local list = water_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + played_on_start = false + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end +end + +local timer = 0 +minetest.register_globalstep(function(dtime) + timer = timer+dtime + if timer < 1 then + return + end + timer = 0 + + for _,player in ipairs(minetest.get_connected_players()) do + local ambiences = get_ambience(player) + stop_sound(ambiences, player) + for _,ambience in pairs(ambiences) do + if math.random(1, 1000) <= ambience.frequency then + if ambience.on_start ~= nil and played_on_start == false then + played_on_start = true + minetest.sound_play(ambience.on_start, {to_player=player:get_player_name()}) + end + play_sound(player, ambience, math.random(1, #ambience)) + end + end + end +end) \ No newline at end of file diff --git a/mods/ambience_modpack/ambience/depends.txt b/mods/ambience_modpack/ambience/depends.txt new file mode 100755 index 00000000..4ad96d51 --- /dev/null +++ b/mods/ambience_modpack/ambience/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/ambience_modpack/ambience/init.lua b/mods/ambience_modpack/ambience/init.lua new file mode 100755 index 00000000..4066a02c --- /dev/null +++ b/mods/ambience_modpack/ambience/init.lua @@ -0,0 +1,799 @@ +-------------------------------------------------------------------------------------------------------- +--Ambience Configuration for version .34 +--Added Faraway & Ethereal by Amethystium + +--Working on: +--removing magic leap when not enough air under feet. + + +--find out why wind stops while flying +--add an extra node near feet to handle treading water as a special case, and don't have to use node under feet. which gets + --invoked when staning on a ledge near water. +--reduce redundant code (stopplay and add ambience to list) + +local max_frequency_all = 1000 --the larger you make this number the lest frequent ALL sounds will happen recommended values between 100-2000. + +--for frequencies below use a number between 0 and max_frequency_all +--for volumes below, use a number between 0.0 and 1, the larger the number the louder the sounds +local night_frequency = 20 --owls, wolves +local night_volume = 0.9 +local night_frequent_frequency = 150 --crickets +local night_frequent_volume = 0.9 +local day_frequency = 80 --crow, bluejay, cardinal +local day_volume = 0.6 +local day_frequent_frequency = 250 --crow, bluejay, cardinal +local day_frequent_volume = 0.18 +local cave_frequency = 10 --bats +local cave_volume = 1.0 +local cave_frequent_frequency = 70 --drops of water dripping +local cave_frequent_volume = 1.0 +local beach_frequency = 20 --seagulls +local beach_volume = 1.0 +local beach_frequent_frequency = 1000 --waves +local beach_frequent_volume = 1.0 +local water_frequent_frequency = 1000 --water sounds +local water_frequent_volume = 1.0 +local desert_frequency = 20 --coyote +local desert_volume = 1.0 +local desert_frequent_frequency = 700 --desertwind +local desert_frequent_volume = 1.0 +local swimming_frequent_frequency = 1000 --swimming splashes +local swimming_frequent_volume = 1.0 +local water_surface_volume = 1.0 -- sloshing water +local lava_volume = 1.0 --lava +local flowing_water_volume = .4 --waterfall +local splashing_water_volume = 1 +local music_frequency = 7 --music (suggestion: keep this one low like around 6) +local music_volume = 0.3 + +--End of Config +---------------------------------------------------------------------------------------------------- +local ambiences +local counter=0--***************** +local SOUNDVOLUME = 1 +local MUSICVOLUME = 1 +local sound_vol = 1 +local last_x_pos = 0 +local last_y_pos = 0 +local last_z_pos = 0 +local node_under_feet +local node_at_upper_body +local node_at_lower_body +local node_3_under_feet +local played_on_start = false + + + + +local night = { + handler = {}, + frequency = night_frequency, + {name="horned_owl", length=3, gain=night_volume}, + {name="Wolves_Howling", length=11, gain=night_volume}, + {name="ComboWind", length=17, gain=night_volume} +} + +local night_frequent = { + handler = {}, + frequency = night_frequent_frequency, + {name="Crickets_At_NightCombo", length=69, gain=night_frequent_volume} +} + +local day = { + handler = {}, + frequency = day_frequency, + {name="Best Cardinal Bird", length=4, gain=day_volume}, + {name="craw", length=3, gain=day_volume}, + {name="bluejay", length=18, gain=day_volume}, + {name="ComboWind", length=17, gain=day_volume} +} + +local day_frequent = { + handler = {}, + frequency = day_frequent_frequency, + {name="robin2", length=16, gain=day_frequent_volume}, + {name="birdsongnl", length=13, gain=day_frequent_volume}, + {name="bird", length=30, gain=day_frequent_volume}, + {name="Best Cardinal Bird", length=4, gain=day_frequent_volume}, + {name="craw", length=3, gain=day_frequent_volume}, + {name="bluejay", length=18, gain=day_frequent_volume}, + {name="ComboWind", length=17, gain=day_frequent_volume*3} +} +local swimming_frequent = { + handler = {}, + frequency = day_frequent_frequency, + {name="water_swimming_splashing_breath", length=11.5, gain=swimming_frequent_volume}, + {name="water_swimming_splashing", length=9, gain=swimming_frequent_volume} +} + +local cave = { + handler = {}, + frequency = cave_frequency, + {name="Bats_in_Cave", length=5, gain=cave_volume}, +} + +local cave_frequent = { + handler = {}, + frequency = cave_frequent_frequency, + {name="drippingwater_drip_a", length=2, gain=cave_frequent_volume}, + {name="drippingwater_drip_b", length=2, gain=cave_frequent_volume}, + {name="drippingwater_drip_c", length=2, gain=cave_frequent_volume}, + {name="Single_Water_Droplet", length=3, gain=cave_frequent_volume}, + {name="Spooky_Water_Drops", length=7, gain=cave_frequent_volume} +} + +local beach = { + handler = {}, + frequency = beach_frequency, + {name="seagull", length=4.5, gain=beach_volume} +} + +local beach_frequent = { + handler = {}, + frequency = beach_frequent_frequency, + {name="fiji_beach", length=43.5, gain=beach_frequent_volume} +} + +local desert = { + handler = {}, + frequency = desert_frequency, + {name="coyote2", length=2.5, gain=desert_volume}, + {name="RattleSnake", length=8, gain=desert_volume} +} + +local desert_frequent = { + handler = {}, + frequency = desert_frequent_frequency, + {name="DesertMonolithMed", length=34.5, gain=desert_frequent_volume} +} + +local flying = { + handler = {}, + frequency = 1000, + on_start = "nothing_yet", + on_stop = "nothing_yet", + {name="ComboWind", length=17, gain=1} +} + +local water = { + handler = {}, + frequency = 0,--dolphins dont fit into small lakes + {name="dolphins", length=6, gain=1}, + {name="dolphins_screaming", length=16.5, gain=1} +} + +local water_frequent = { + handler = {}, + frequency = water_frequent_frequency, + on_stop = "drowning_gasp", + --on_start = "Splash", + {name="scuba1bubbles", length=11, gain=water_frequent_volume}, + {name="scuba1calm", length=10, gain=water_frequent_volume}, --not sure why but sometimes I get errors when setting gain=water_frequent_volume here. + {name="scuba1calm2", length=8.5, gain=water_frequent_volume}, + {name="scuba1interestingbubbles", length=11, gain=water_frequent_volume}, + {name="scuba1tubulentbubbles", length=10.5, gain=water_frequent_volume} +} + +local water_surface = { + handler = {}, + frequency = 1000, + on_stop = "Splash", + on_start = "Splash", + {name="lake_waves_2_calm", length=9.5, gain=water_surface_volume}, + {name="lake_waves_2_variety", length=13.1, gain=water_surface_volume} +} +local splashing_water = { + handler = {}, + frequency = 1000, + {name="Splash", length=1.22, gain=splashing_water_volume} +} + +local flowing_water = { + handler = {}, + frequency = 1000, + {name="small_waterfall", length=14, gain=flowing_water_volume} +} +local flowing_water2 = { + handler = {}, + frequency = 1000, + {name="small_waterfall", length=11, gain=flowing_water_volume} +} + +local lava = { + handler = {}, + frequency = 1000, + {name="earth01a", length=20, gain=lava_volume} +} +local lava2 = { + handler = {}, + frequency = 1000, + {name="earth01a", length=15, gain=lava_volume} +} + + +local play_music = minetest.setting_getbool("music") or false +local music = { + handler = {}, + frequency = music_frequency, + is_music=true, + {name="StrangelyBeautifulShort", length=3*60+.5, gain=music_volume*.7}, + {name="Loneliness", length=3*60+51, gain=music_volume*.9}, + {name="AvalonShort", length=2*60+58, gain=music_volume*1.4}, + --{name="mtest", length=4*60+33, gain=music_volume}, + --{name="echos", length=2*60+26, gain=music_volume}, + --{name="FoamOfTheSea", length=1*60+50, gain=music_volume}, + {name="Ambivalent", length=2*60+31, gain=music_volume*.9}, + {name="eastern_feeling", length=3*60+51, gain=music_volume}, + --{name="Mass_Effect_Uncharted_Worlds", length=2*60+29, gain=music_volume}, + {name="EtherealShort", length=3*60+4, gain=music_volume*.7}, + {name="Mute", length=3*60+43, gain=music_volume*.9}, + {name="FarawayShort", length=3*60+5, gain=music_volume*.7}, + {name="dark_ambiance", length=44, gain=music_volume} +} + +local is_daytime = function() + return (minetest.env:get_timeofday() > 0.2 and minetest.env:get_timeofday() < 0.8) +end + +local nodes_in_range = function(pos, search_distance, node_name) + minp = {x=pos.x-search_distance,y=pos.y-search_distance, z=pos.z-search_distance} + maxp = {x=pos.x+search_distance,y=pos.y+search_distance, z=pos.z+search_distance} + nodes = minetest.env:find_nodes_in_area(minp, maxp, node_name) + --minetest.chat_send_all("Found (" .. node_name .. ": " .. #nodes .. ")") + return #nodes +end + +local nodes_in_coords = function(minp, maxp, node_name) + nodes = minetest.env:find_nodes_in_area(minp, maxp, node_name) + --minetest.chat_send_all("Found (" .. node_name .. ": " .. #nodes .. ")") + return #nodes +end + +local atleast_nodes_in_grid = function(pos, search_distance, height, node_name, threshold) + counter = counter +1 +-- minetest.chat_send_all("counter: (" .. counter .. ")") + minp = {x=pos.x-search_distance,y=height, z=pos.z+20} + maxp = {x=pos.x+search_distance,y=height, z=pos.z+20} + nodes = minetest.env:find_nodes_in_area(minp, maxp, node_name) +-- minetest.chat_send_all("z+Found (" .. node_name .. ": " .. #nodes .. ")") + if #nodes >= threshold then + return true + end + totalnodes = #nodes + minp = {x=pos.x-search_distance,y=height, z=pos.z-20} + maxp = {x=pos.x+search_distance,y=height, z=pos.z-20} + nodes = minetest.env:find_nodes_in_area(minp, maxp, node_name) +-- minetest.chat_send_all("z-Found (" .. node_name .. ": " .. #nodes .. ")") + if #nodes >= threshold then + return true + end + totalnodes = totalnodes + #nodes + maxp = {x=pos.x+20,y=height, z=pos.z+search_distance} + minp = {x=pos.x+20,y=height, z=pos.z-search_distance} + nodes = minetest.env:find_nodes_in_area(minp, maxp, node_name) +-- minetest.chat_send_all("x+Found (" .. node_name .. ": " .. #nodes .. ")") + if #nodes >= threshold then + return true + end + totalnodes = totalnodes + #nodes + maxp = {x=pos.x-20,y=height, z=pos.z+search_distance} + minp = {x=pos.x-20,y=height, z=pos.z-search_distance} + nodes = minetest.env:find_nodes_in_area(minp, maxp, node_name) +-- minetest.chat_send_all("x+Found (" .. node_name .. ": " .. #nodes .. ")") + if #nodes >= threshold then + return true + end + totalnodes = totalnodes + #nodes +-- minetest.chat_send_all("Found total(" .. totalnodes .. ")") + if totalnodes >= threshold*2 then + return true + end + return false +end + +local get_immediate_nodes = function(pos) + pos.y = pos.y-1 + node_under_feet = minetest.env:get_node(pos).name + pos.y = pos.y-3 + node_3_under_feet = minetest.env:get_node(pos).name + pos.y = pos.y+3 + pos.y = pos.y+2.2 + node_at_upper_body = minetest.env:get_node(pos).name + pos.y = pos.y-1.19 + node_at_lower_body = minetest.env:get_node(pos).name + pos.y = pos.y+0.99 + --minetest.chat_send_all("node_under_feet(" .. nodename .. ")") +end + + +local get_ambience = function(player) + local player_is_climbing = false + local player_is_descending = false + local player_is_moving_horiz = false + local standing_in_water = false + local pos = player:getpos() + get_immediate_nodes(pos) + + if last_x_pos ~=pos.x or last_z_pos ~=pos.z then + player_is_moving_horiz = true + end + if pos.y > last_y_pos+.5 then + player_is_climbing = true + end + if pos.y < last_y_pos-.5 then + player_is_descending = true + end + + last_x_pos =pos.x + last_z_pos =pos.z + last_y_pos =pos.y + + if string.find(node_at_upper_body, "default:water") then + if music then + return {water=water, water_frequent=water_frequent, music=music} + else + return {water=water, water_frequent=water_frequent} + end + elseif node_at_upper_body == "air" then + if string.find(node_at_lower_body, "default:water") or string.find(node_under_feet, "default:water") then + --minetest.chat_send_all("bottom counted as water") + --we found air at upperbody, and water at lower body. Now there are 4 possibilities: + --Key: under feet, moving or not + --swimming w, m swimming + --walking in water nw, m splashing + --treading water w, nm sloshing + --standing in water nw, nm beach trumps, then sloshing + if player_is_moving_horiz then + if string.find(node_under_feet, "default:water") then + if music then + return {swimming_frequent=swimming_frequent, music=music} + else + return {swimming_frequent} + end + else --didn't find water under feet: walking in water + if music then + return {splashing_water=splashing_water, music=music} + else + return {splashing_water} + end + end + else--player is not moving: treading water + if string.find(node_under_feet, "default:water") then + if music then + return {water_surface=water_surface, music=music} + else + return {water_surface} + end + else --didn't find water under feet + standing_in_water = true + end + end + end + end +-- minetest.chat_send_all("----------") +-- if not player_is_moving_horiz then +-- minetest.chat_send_all("not moving horiz") +-- else +-- minetest.chat_send_all("moving horiz") +-- end +-- minetest.chat_send_all("nub:" ..node_at_upper_body) +-- minetest.chat_send_all("nlb:" ..node_at_lower_body) +-- minetest.chat_send_all("nuf:" ..node_under_feet) +-- minetest.chat_send_all("----------") + + +-- if player_is_moving_horiz then +-- minetest.chat_send_all("playermoving") +-- end +-- if player_is_climbing then +-- minetest.chat_send_all("player Climbing") +-- end +-- minetest.chat_send_all("nub:" ..node_at_upper_body) +-- minetest.chat_send_all("nlb:" ..node_at_lower_body) +-- minetest.chat_send_all("nuf:" ..node_under_feet) +-- minetest.chat_send_all("n3uf:" ..node_3_under_feet) +-- + local air_or_ignore = {air=true,ignore=true} + minp = {x=pos.x-3,y=pos.y-4, z=pos.z-3} + maxp = {x=pos.x+3,y=pos.y-1, z=pos.z+3} + local air_under_player = nodes_in_coords(minp, maxp, "air") + local ignore_under_player = nodes_in_coords(minp, maxp, "ignore") + air_plus_ignore_under = air_under_player + ignore_under_player +-- minetest.chat_send_all("airUnder:" ..air_under_player) +-- minetest.chat_send_all("ignoreUnder:" ..ignore_under_player) +-- minetest.chat_send_all("a+i:" ..air_plus_ignore_under) +-- minetest.chat_send_all("counter: (" .. counter .. "-----------------)") + --minetest.chat_send_all(air_or_ignore[node_under_feet]) +-- if (player_is_moving_horiz or player_is_climbing) and air_or_ignore[node_at_upper_body] and air_or_ignore[node_at_lower_body] +-- and air_or_ignore[node_under_feet] and air_plus_ignore_under == 196 and not player_is_descending then + --minetest.chat_send_all("flying!!!!") + -- if music then + -- return {flying=flying, music=music} + -- else + --- return {flying} +-- end +-- end + --minetest.chat_send_all("not flying!!!!") + + if nodes_in_range(pos, 7, "default:lava_flowing")>5 or nodes_in_range(pos, 7, "default:lava_source")>5 then + if music then + return {lava=lava, lava2=lava2, music=music} + else + return {lava=lava} + end + end + if nodes_in_range(pos, 6, "default:water_flowing")>45 then + if music then + return {flowing_water=flowing_water, flowing_water2=flowing_water2, music=music} + else + return {flowing_water=flowing_water, flowing_water2=flowing_water2} + end + end + + +--if we are near sea level and there is lots of water around the area + if pos.y < 7 and pos.y >0 and atleast_nodes_in_grid(pos, 60, 1, "default:water_source", 51 ) then + if music then + return {beach=beach, beach_frequent=beach_frequent, music=music} + else + return {beach=beach, beach_frequent=beach_frequent} + end + end + if standing_in_water then + if music then + return {water_surface=water_surface, music=music} + else + return {water_surface} + end + end + + + desert_in_range = (nodes_in_range(pos, 6, "default:desert_sand")+nodes_in_range(pos, 6, "default:desert_stone")) + --minetest.chat_send_all("desertcount: " .. desert_in_range .. ",".. pos.y ) + if desert_in_range >250 then + if music then + return {desert=desert, desert_frequent=desert_frequent, music=music} + else + return {desert=desert, desert_frequent=desert_frequent} + end + end + +-- pos.y = pos.y-2 +-- nodename = minetest.env:get_node(pos).name +-- minetest.chat_send_all("Found " .. nodename .. pos.y ) + + + if player:getpos().y < 0 then + if music then + return {cave=cave, cave_frequent=cave_frequent, music=music} + else + return {cave=cave, cave_frequent=cave_frequent} + end + end + if is_daytime() then + if music then + return {day=day, day_frequent=day_frequent, music=music} + else + return {day=day, day_frequent=day_frequent} + end + else + if music then + return {night=night, night_frequent=night_frequent, music=music} + else + return {night=night, night_frequent=night_frequent} + end + end +end + +-- start playing the sound, set the handler and delete the handler after sound is played +local play_sound = function(player, list, number, is_music) + local player_name = player:get_player_name() + if list.handler[player_name] == nil then + local gain = 1.0 + if list[number].gain ~= nil then + if is_music then + gain = list[number].gain*MUSICVOLUME + --minetest.chat_send_all("gain music: " .. gain ) + else + gain = list[number].gain*SOUNDVOLUME + --minetest.chat_send_all("gain sound: " .. gain ) + end + end + local handler = minetest.sound_play(list[number].name, {to_player=player_name, gain=gain}) + if handler ~= nil then + list.handler[player_name] = handler + minetest.after(list[number].length, function(args) + local list = args[1] + local player_name = args[2] + if list.handler[player_name] ~= nil then + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end, {list, player_name}) + end + end +end + +-- stops all sounds that are not in still_playing +local stop_sound = function(still_playing, player) + local player_name = player:get_player_name() + if still_playing.cave == nil then + local list = cave + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=SOUNDVOLUME}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.cave_frequent == nil then + local list = cave_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=SOUNDVOLUME}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.swimming_frequent == nil then + local list = swimming_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=SOUNDVOLUME}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.beach == nil then + local list = beach + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=SOUNDVOLUME}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.beach_frequent == nil then + local list = beach_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=SOUNDVOLUME}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.desert == nil then + local list = desert + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=SOUNDVOLUME}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.desert_frequent == nil then + local list = desert_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=SOUNDVOLUME}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.night == nil then + local list = night + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=SOUNDVOLUME}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.night_frequent == nil then + local list = night_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=SOUNDVOLUME}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.day == nil then + local list = day + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=SOUNDVOLUME}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.day_frequent == nil then + local list = day_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=SOUNDVOLUME}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.music == nil then + local list = music + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=SOUNDVOLUME}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.flowing_water == nil then + local list = flowing_water + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=SOUNDVOLUME}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.flowing_water2 == nil then + local list = flowing_water2 + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=SOUNDVOLUME}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.lava == nil then + local list = lava + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=SOUNDVOLUME}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.lava2 == nil then + local list = lava2 + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=SOUNDVOLUME}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.water == nil then + local list = water + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=SOUNDVOLUME}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.water_surface == nil then + local list = water_surface + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=SOUNDVOLUME}) + played_on_start = false + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.water_frequent == nil then + local list = water_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=SOUNDVOLUME}) + -- minetest.chat_send_all("list.on_stop " .. list.on_stop ) + played_on_start = false + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.flying == nil then + --minetest.chat_send_all("begin stop flying " ) + local list = flying + if list.handler[player_name] ~= nil then + -- minetest.chat_send_all("handler flying " ) + if list.on_stop ~= nil then + -- minetest.chat_send_all("onstop flying" ) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=SOUNDVOLUME}) + played_on_start = false + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.splashing_water == nil then + local list = splashing_water + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name(),gain=SOUNDVOLUME}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + +end + +local timer = 0 +minetest.register_globalstep(function(dtime) + timer = timer+dtime + if timer < 1 then + return + end + timer = 0 + + for _,player in ipairs(minetest.get_connected_players()) do + ambiences = get_ambience(player) + stop_sound(ambiences, player) + for _,ambience in pairs(ambiences) do + if math.random(1, 1000) <= ambience.frequency then +-- if(played_on_start) then +-- -- minetest.chat_send_all("playedOnStart " ) +-- else +-- -- minetest.chat_send_all("FALSEplayedOnStart " ) +-- end + if ambience.on_start ~= nil and played_on_start == false then + played_on_start = true + minetest.sound_play(ambience.on_start, {to_player=player:get_player_name(),gain=SOUNDVOLUME}) + end + -- minetest.chat_send_all("ambience: " ..ambience ) + -- if ambience.on_start ~= nil and played_on_start_flying == false then + -- played_on_start_flying = true + -- minetest.sound_play(ambience.on_start, {to_player=player:get_player_name()}) + -- end + local is_music =false + if ambience.is_music ~= nil then + is_music = true + end + play_sound(player, ambience, math.random(1, #ambience),is_music) + end + end + end +end) + +minetest.register_chatcommand("svol", { + params = "", + description = "set volume of sounds, default 1 normal volume.", + privs = {server=true}, + func = function(name, param) + SOUNDVOLUME = param + -- local player = minetest.env:get_player_by_name(name) + -- ambiences = get_ambience(player) + -- stop_sound({}, player) + minetest.chat_send_player(name, "Sound volume set.") + end, }) +minetest.register_chatcommand("mvol", { + params = "", + description = "set volume of music, default 1 normal volume.", + privs = {server=true}, + func = function(name, param) + MUSICVOLUME = param + -- local player = minetest.env:get_player_by_name(name) + -- stop_sound({}, player) + -- ambiences = get_ambience(player) + minetest.chat_send_player(name, "Music volume set.") + end, }) + diff --git a/mods/ambience_modpack/ambience/init.lua.pilz.lua b/mods/ambience_modpack/ambience/init.lua.pilz.lua new file mode 100755 index 00000000..b1d17962 --- /dev/null +++ b/mods/ambience_modpack/ambience/init.lua.pilz.lua @@ -0,0 +1,287 @@ +local night = { + handler = {}, + frequency = 10, + {name="horned_owl", length=3}, + {name="Wolves_Howling", length=11}, + {name="ComboWind", length=17}, +} + +local night_frequent = { + handler = {}, + frequency = 25, + {name="Crickets_At_NightCombo", length=69}, +} + +local day = { + handler = {}, + frequency = 5, + {name="Best Cardinal Bird", length=4}, + {name="craw", length=3}, + {name="bluejay", length=18}, + {name="ComboWind", length=17}, +} + +local day_frequent = { + handler = {}, + frequency = 25, + {name="robin2", length=16}, + {name="birdsongnl", length=12.5}, + {name="bird", length=30}, +} + +local cave = { + handler = {}, + frequency = 5, + {name="Bats_in_Cave", length=5}, +} + +local cave_frequent = { + handler = {}, + frequency = 100, + {name="drippingwater_drip_a", length=2}, + {name="drippingwater_drip_b", length=2}, + {name="drippingwater_drip_c", length=2}, + {name="Single_Water_Droplet", length=3}, + {name="Spooky_Water_Drops", length=7}, +} + +local water = { + handler = {}, + frequency = 0,--dolphins dont fit into small lakes + {name="dolphins", length=6}, + {name="dolphins_screaming", length=16.5}, +} + +local water_frequent = { + handler = {}, + frequency = 100, + on_stop = "drowning_gasp", + {name="scuba1bubbles", length=11}, + {name="scuba1calm", length=10}, + {name="scuba1calm2", length=8.5}, + {name="scuba1interestingbubbles", length=11}, + {name="scuba1tubulentbubbles", length=10.5}, +} + +local splash = { + handler = {}, + frequency = 100, + {name="Splash", length=1.5}, +} + +local play_music = minetest.setting_getbool("music") or false +local music = { + handler = {}, + frequency = 1, + {name="mtest", length=4*60+33, gain=0.3}, + {name="music_1", length=1*60+52, gain=0.3}, + {name="ambiance", length=19, gain=0.3}, + {name="dark_ambiance", length=46, gain=0.3}, + {name="eastern_feeling", length=3*60+51, gain=0.3}, + {name="echos", length=2*60+26, gain=0.3}, + {name="FoamOfTheSea", length=1*60+50, gain=0.3}, +} + +local is_daytime = function() + return (minetest.env:get_timeofday() > 0.2 and minetest.env:get_timeofday() < 0.8) +end + +local get_ambience = function(player) + local table = {} + + local play_water = false + local play_splash = false + local play_day = false + local play_cave = false + local play_night = false + + local pos = player:getpos() + pos.y = pos.y+1.5 + local nodename = minetest.env:get_node(pos).name + if string.find(nodename, "default:water") then + play_water = true + elseif nodename == "air" then + pos.y = pos.y-1.5 + local nodename = minetest.env:get_node(pos).name + if string.find(nodename, "default:water") then + play_splash = true + end + end + if player:getpos().y < 0 then + play_cave = true + elseif is_daytime() then + play_day = true + else + play_night = true + end + + if play_music then + table.music = music + end + if play_water then + table.water = water + table.water_frequent = water_frequent + return table + end + if play_splash then + table.splash = splash + end + if play_day then + table.day = day + table.day_frequent = day_frequent + elseif play_night then + table.night = night + table.night_frequent = night_frequent + elseif play_cave then + table.cave = cave + table.cave_frequent = cave_frequent + end + return table +end + +-- start playing the sound, set the handler and delete the handler after sound is played +local play_sound = function(player, list, number) + local player_name = player:get_player_name() + if list.handler[player_name] == nil then + local gain = 1.0 + if list[number].gain ~= nil then + gain = list[number].gain + end + local handler = minetest.sound_play(list[number].name, {to_player=player_name, gain=gain}) + if handler ~= nil then + list.handler[player_name] = handler + minetest.after(list[number].length, function(args) + local list = args[1] + local player_name = args[2] + if list.handler[player_name] ~= nil then + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end, {list, player_name}) + end + end +end + +-- stops all sounds that are not in still_playing +local stop_sound = function(still_playing, player) + local player_name = player:get_player_name() + if still_playing.cave == nil then + local list = cave + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.cave_frequent == nil then + local list = cave_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.night == nil then + local list = night + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.night_frequent == nil then + local list = night_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.day == nil then + local list = day + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.day_frequent == nil then + local list = day_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.music == nil then + local list = music + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.water == nil then + local list = water + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.water_frequent == nil then + local list = water_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.splash == nil then + local list = splash + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end +end + +local timer = 0 +minetest.register_globalstep(function(dtime) + timer = timer+dtime + if timer < 1 then + return + end + timer = 0 + + for _,player in ipairs(minetest.get_connected_players()) do + local ambiences = get_ambience(player) + stop_sound(ambiences, player) + for _,ambience in pairs(ambiences) do + if math.random(1, 100) <= ambience.frequency then + play_sound(player, ambience, math.random(1, #ambience)) + end + end + end +end) \ No newline at end of file diff --git a/mods/ambience_modpack/ambience/init16.lua b/mods/ambience_modpack/ambience/init16.lua new file mode 100755 index 00000000..ba85193e --- /dev/null +++ b/mods/ambience_modpack/ambience/init16.lua @@ -0,0 +1,439 @@ +-------------------------------------------------------------------------------------------------------- +--Ambiance Configuration for version .16 + +local max_frequency_all = 1000 --the larger you make this number the lest frequent ALL sounds will happen recommended values between 100-2000. + +--for frequencies below use a number between 0 and max_frequency_all +--for volumes below, use a number between 0.0 and 1, the larger the number the louder the sounds +local night_frequency = 20 --owls, wolves +local night_volume = 0.9 +local night_frequent_frequency = 150 --crickets +local night_frequent_volume = 0.9 +local day_frequency = 100 --crow, bluejay, cardinal +local day_volume = 0.9 +local day_frequent_frequency = 1000 --crow, bluejay, cardinal +local day_frequent_volume = 0.18 +local cave_frequency = 10 --bats +local cave_volume = 1.0 +local cave_frequent_frequency = 70 --drops of water dripping +local cave_frequent_volume = 1.0 +local beach_frequency = 20 --seagulls +local beach_volume = 1.0 +local beach_frequent_frequency = 1000 --waves +local beach_frequent_volume = 1.0 +local water_frequent_frequency = 1000 --water sounds +local water_frequent_volume = 1.0 +local music_frequency = 7 --music (suggestion: keep this one low like around 6) +local music_volume = 0.3 +--End of Config +---------------------------------------------------------------------------------------------------- +local played_on_start = false +local night = { + handler = {}, + frequency = night_frequency, + {name="horned_owl", length=3, gain=night_volume}, + {name="Wolves_Howling", length=11, gain=night_volume}, + {name="ComboWind", length=17, gain=night_volume} +} + +local night_frequent = { + handler = {}, + frequency = night_frequent_frequency, + {name="Crickets_At_NightCombo", length=69, gain=night_frequent_volume} +} + +local day = { + handler = {}, + frequency = day_frequency, + {name="Best Cardinal Bird", length=4, gain=day_volume}, + {name="craw", length=3, gain=day_volume}, + {name="bluejay", length=18, gain=day_volume}, + {name="ComboWind", length=17, gain=day_volume} +} + +local day_frequent = { + handler = {}, + frequency = day_frequent_frequency, + {name="robin2", length=16, gain=day_frequent_volume}, + {name="birdsongnl", length=13, gain=day_frequent_volume}, + {name="bird", length=30, gain=day_frequent_volume}, + {name="Best Cardinal Bird", length=4, gain=day_frequent_volume}, + {name="craw", length=3, gain=day_frequent_volume}, + {name="bluejay", length=18, gain=day_frequent_volume}, + {name="ComboWind", length=17, gain=day_frequent_volume*3} +} + + +local cave = { + handler = {}, + frequency = cave_frequency, + {name="Bats_in_Cave", length=5, gain=cave_volume} +} + +local cave_frequent = { + handler = {}, + frequency = cave_frequent_frequency, + {name="drippingwater_drip_a", length=2, gain=cave_frequent_volume}, + {name="drippingwater_drip_b", length=2, gain=cave_frequent_volume}, + {name="drippingwater_drip_c", length=2, gain=cave_frequent_volume}, + {name="Single_Water_Droplet", length=3, gain=cave_frequent_volume}, + {name="Spooky_Water_Drops", length=7, gain=cave_frequent_volume} +} + +local beach = { + handler = {}, + frequency = beach_frequency, + {name="seagull", length=4.5, gain=beach_volume} +} + +local beach_frequent = { + handler = {}, + frequency = beach_frequent_frequency, + {name="fiji_beach", length=43.5, gain=beach_frequent_volume} +} + + +local water = { + handler = {}, + frequency = 0,--dolphins dont fit into small lakes + {name="dolphins", length=6}, + {name="dolphins_screaming", length=16.5} +} + +local water_frequent = { + handler = {}, + frequency = water_frequent_frequency, + on_stop = "drowning_gasp", + on_start = "Splash", + {name="scuba1bubbles", length=11, gain=water_frequent_volume}, + {name="scuba1calm", length=10}, --not sure why but sometimes I get errors when setting gain=water_frequent_volume here. + {name="scuba1calm2", length=8.5, gain=water_frequent_volume}, + {name="scuba1interestingbubbles", length=11, gain=water_frequent_volume}, + {name="scuba1tubulentbubbles", length=10.5, gain=water_frequent_volume} +} + +local flowing_water = { + handler = {}, + frequency = 1000, + {name="small_waterfall", length=14, gain=.4} +} +local flowing_water2 = { + handler = {}, + frequency = 1000, + {name="small_waterfall", length=11, gain=.3} +} + +local lava = { + handler = {}, + frequency = 1000, + {name="earth01a", length=20} +} +local lava2 = { + handler = {}, + frequency = 1000, + {name="earth01a", length=15} +} + + +local play_music = minetest.setting_getbool("music") or false +local music = { + handler = {}, + frequency = music_frequency, + {name="mtest", length=4*60+33, gain=music_volume}, + {name="echos", length=2*60+26, gain=music_volume}, + {name="FoamOfTheSea", length=1*60+50, gain=music_volume}, + {name="eastern_feeling", length=3*60+51, gain=music_volume}, + {name="Mass_Effect_Uncharted_Worlds", length=2*60+29, gain=music_volume}, + {name="dark_ambiance", length=44, gain=music_volume} +} + +local is_daytime = function() + return (minetest.env:get_timeofday() > 0.2 and minetest.env:get_timeofday() < 0.8) +end + +--[[old +local nodes_in_range = function(pos, search_distance, node_name) + local search_p = {x=0, y=0, z=0} + local nodes_found = 0 + for p_x=(pos.x-search_distance), (pos.x+search_distance) do + for p_y=(pos.y-search_distance), (pos.y+search_distance) do + for p_z=(pos.z-search_distance), (pos.z+search_distance) do + local search_n = minetest.env:get_node({x=p_x, y=p_y, z=p_z}) + if search_n.name == node_name then + nodes_found = nodes_found + 1 + end + end + end + end + return nodes_found + --minetest.chat_send_all("Range: " .. tostring(search_distance) .. " | Found (" .. node_name .. ": " .. nodes_found .. ")") +end --]] + +local nodes_in_range = function(pos, search_distance, node_name) + minp = {x=pos.x-search_distance,y=pos.y-search_distance, z=pos.z-search_distance} + maxp = {x=pos.x+search_distance,y=pos.y+search_distance, z=pos.z+search_distance} + nodes = minetest.env:find_nodes_in_area(minp, maxp, node_name) +-- minetest.chat_send_all("Found (" .. node_name .. ": " .. #nodes .. ")") + return #nodes +end + + +local get_ambience = function(player) + local pos = player:getpos() + pos.y = pos.y+1.0 + local nodename = minetest.env:get_node(pos).name + if string.find(nodename, "default:water") then + if music then + return {water=water, water_frequent=water_frequent, music=music} + else + return {water=water, water_frequent=water_frequent} + end + end + if nodes_in_range(pos, 7, "default:lava_flowing")>5 or nodes_in_range(pos, 7, "default:lava_source")>5 then + if music then + return {lava=lava, lava2=lava2, music=music} + else + return {lava=lava} + end + end + if nodes_in_range(pos, 7, "default:water_flowing")>5 then + if music then + return {flowing_water=flowing_water, flowing_water2=flowing_water2, music=music} + else + return {flowing_water=flowing_water, flowing_water2=flowing_water2} + end + end + pos.y = pos.y-2 + nodename = minetest.env:get_node(pos).name + --minetest.chat_send_all("Found " .. nodename .. pos.y ) + if string.find(nodename, "default:sand") and pos.y < 5 then + if music then + return {beach=beach, beach_frequent=beach_frequent, music=music} + else + return {beach=beach, beach_frequent=beach_frequent} + end + end + if player:getpos().y < 0 then + if music then + return {cave=cave, cave_frequent=cave_frequent, music=music} + else + return {cave=cave, cave_frequent=cave_frequent} + end + end + if is_daytime() then + if music then + return {day=day, day_frequent=day_frequent, music=music} + else + return {day=day, day_frequent=day_frequent} + end + else + if music then + return {night=night, night_frequent=night_frequent, music=music} + else + return {night=night, night_frequent=night_frequent} + end + end +end + +-- start playing the sound, set the handler and delete the handler after sound is played +local play_sound = function(player, list, number) + local player_name = player:get_player_name() + if list.handler[player_name] == nil then + local gain = 1.0 + if list[number].gain ~= nil then + gain = list[number].gain + end + local handler = minetest.sound_play(list[number].name, {to_player=player_name, gain=gain}) + if handler ~= nil then + list.handler[player_name] = handler + minetest.after(list[number].length, function(args) + local list = args[1] + local player_name = args[2] + if list.handler[player_name] ~= nil then + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end, {list, player_name}) + end + end +end + +-- stops all sounds that are not in still_playing +local stop_sound = function(still_playing, player) + local player_name = player:get_player_name() + if still_playing.cave == nil then + local list = cave + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.cave_frequent == nil then + local list = cave_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.beach == nil then + local list = beach + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.beach_frequent == nil then + local list = beach_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + + if still_playing.night == nil then + local list = night + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.night_frequent == nil then + local list = night_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.day == nil then + local list = day + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.day_frequent == nil then + local list = day_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.music == nil then + local list = music + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.flowing_water == nil then + local list = flowing_water + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.flowing_water2 == nil then + local list = flowing_water2 + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.lava == nil then + local list = lava + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.lava2 == nil then + local list = lava2 + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.water == nil then + local list = water + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.water_frequent == nil then + local list = water_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + played_on_start = false + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end +end + +local timer = 0 +minetest.register_globalstep(function(dtime) + timer = timer+dtime + if timer < 1 then + return + end + timer = 0 + + for _,player in ipairs(minetest.get_connected_players()) do + local ambiences = get_ambience(player) + stop_sound(ambiences, player) + for _,ambience in pairs(ambiences) do + if math.random(1, 1000) <= ambience.frequency then + if ambience.on_start ~= nil and played_on_start == false then + played_on_start = true + minetest.sound_play(ambience.on_start, {to_player=player:get_player_name()}) + end + play_sound(player, ambience, math.random(1, #ambience)) + end + end + end +end) \ No newline at end of file diff --git a/mods/ambience_modpack/ambience/init17.lua b/mods/ambience_modpack/ambience/init17.lua new file mode 100755 index 00000000..610bb3bb --- /dev/null +++ b/mods/ambience_modpack/ambience/init17.lua @@ -0,0 +1,474 @@ +-------------------------------------------------------------------------------------------------------- +--Ambiance Configuration for version .17 + +local max_frequency_all = 1000 --the larger you make this number the lest frequent ALL sounds will happen recommended values between 100-2000. + +--for frequencies below use a number between 0 and max_frequency_all +--for volumes below, use a number between 0.0 and 1, the larger the number the louder the sounds +local night_frequency = 20 --owls, wolves +local night_volume = 0.9 +local night_frequent_frequency = 150 --crickets +local night_frequent_volume = 0.9 +local day_frequency = 100 --crow, bluejay, cardinal +local day_volume = 0.9 +local day_frequent_frequency = 1000 --crow, bluejay, cardinal +local day_frequent_volume = 0.18 +local cave_frequency = 10 --bats +local cave_volume = 1.0 +local cave_frequent_frequency = 70 --drops of water dripping +local cave_frequent_volume = 1.0 +local beach_frequency = 20 --seagulls +local beach_volume = 1.0 +local beach_frequent_frequency = 1000 --waves +local beach_frequent_volume = 1.0 +local water_frequent_frequency = 1000 --water sounds +local water_frequent_volume = 1.0 +local music_frequency = 0 --music (suggestion: keep this one low like around 6) +local music_volume = 0.3 +--End of Config +---------------------------------------------------------------------------------------------------- +local played_on_start = false +local night = { + handler = {}, + frequency = night_frequency, + {name="horned_owl", length=3, gain=night_volume}, + {name="Wolves_Howling", length=11, gain=night_volume}, + {name="ComboWind", length=17, gain=night_volume} +} + +local night_frequent = { + handler = {}, + frequency = night_frequent_frequency, + {name="Crickets_At_NightCombo", length=69, gain=night_frequent_volume} +} + +local day = { + handler = {}, + frequency = day_frequency, + {name="Best Cardinal Bird", length=4, gain=day_volume}, + {name="craw", length=3, gain=day_volume}, + {name="bluejay", length=18, gain=day_volume}, + {name="ComboWind", length=17, gain=day_volume} +} + +local day_frequent = { + handler = {}, + frequency = day_frequent_frequency, + {name="robin2", length=16, gain=day_frequent_volume}, + {name="birdsongnl", length=13, gain=day_frequent_volume}, + {name="bird", length=30, gain=day_frequent_volume}, + {name="Best Cardinal Bird", length=4, gain=day_frequent_volume}, + {name="craw", length=3, gain=day_frequent_volume}, + {name="bluejay", length=18, gain=day_frequent_volume}, + {name="ComboWind", length=17, gain=day_frequent_volume*3} +} + + +local cave = { + handler = {}, + frequency = cave_frequency, + {name="Bats_in_Cave", length=5, gain=cave_volume} +} + +local cave_frequent = { + handler = {}, + frequency = cave_frequent_frequency, + {name="drippingwater_drip_a", length=2, gain=cave_frequent_volume}, + {name="drippingwater_drip_b", length=2, gain=cave_frequent_volume}, + {name="drippingwater_drip_c", length=2, gain=cave_frequent_volume}, + {name="Single_Water_Droplet", length=3, gain=cave_frequent_volume}, + {name="Spooky_Water_Drops", length=7, gain=cave_frequent_volume} +} + +local beach = { + handler = {}, + frequency = beach_frequency, + {name="seagull", length=4.5, gain=beach_volume} +} + +local beach_frequent = { + handler = {}, + frequency = beach_frequent_frequency, + {name="fiji_beach", length=43.5, gain=beach_frequent_volume} +} + + +local water = { + handler = {}, + frequency = 0,--dolphins dont fit into small lakes + {name="dolphins", length=6}, + {name="dolphins_screaming", length=16.5} +} + +local water_frequent = { + handler = {}, + frequency = water_frequent_frequency, + on_stop = "drowning_gasp", + on_start = "Splash", + {name="scuba1bubbles", length=11, gain=water_frequent_volume}, + {name="scuba1calm", length=10}, --not sure why but sometimes I get errors when setting gain=water_frequent_volume here. + {name="scuba1calm2", length=8.5, gain=water_frequent_volume}, + {name="scuba1interestingbubbles", length=11, gain=water_frequent_volume}, + {name="scuba1tubulentbubbles", length=10.5, gain=water_frequent_volume} +} + +local water_surface = { + handler = {}, + frequency = 10, + on_start = "Splash", + {name="lake_waves_2_calm", length=9.5}, + {name="lake_waves_2_variety", length=13.1} +} + +local flowing_water = { + handler = {}, + frequency = 1000, + {name="small_waterfall", length=14, gain=.4} +} +local flowing_water2 = { + handler = {}, + frequency = 1000, + {name="small_waterfall", length=11, gain=.3} +} + +local lava = { + handler = {}, + frequency = 1000, + {name="earth01a", length=20} +} +local lava2 = { + handler = {}, + frequency = 1000, + {name="earth01a", length=15} +} + + +local play_music = minetest.setting_getbool("music") or false +local music = { + handler = {}, + frequency = music_frequency, + {name="mtest", length=4*60+33, gain=music_volume}, + {name="echos", length=2*60+26, gain=music_volume}, + {name="FoamOfTheSea", length=1*60+50, gain=music_volume}, + {name="eastern_feeling", length=3*60+51, gain=music_volume}, + {name="Mass_Effect_Uncharted_Worlds", length=2*60+29, gain=music_volume}, + {name="dark_ambiance", length=44, gain=music_volume} +} + +local is_daytime = function() + return (minetest.env:get_timeofday() > 0.2 and minetest.env:get_timeofday() < 0.8) +end + +--[[old +local nodes_in_range = function(pos, search_distance, node_name) + local search_p = {x=0, y=0, z=0} + local nodes_found = 0 + for p_x=(pos.x-search_distance), (pos.x+search_distance) do + for p_y=(pos.y-search_distance), (pos.y+search_distance) do + for p_z=(pos.z-search_distance), (pos.z+search_distance) do + local search_n = minetest.env:get_node({x=p_x, y=p_y, z=p_z}) + if search_n.name == node_name then + nodes_found = nodes_found + 1 + end + end + end + end + return nodes_found + --minetest.chat_send_all("Range: " .. tostring(search_distance) .. " | Found (" .. node_name .. ": " .. nodes_found .. ")") +end --]] + +local nodes_in_range = function(pos, search_distance, node_name) + minp = {x=pos.x-search_distance,y=pos.y-search_distance, z=pos.z-search_distance} + maxp = {x=pos.x+search_distance,y=pos.y+search_distance, z=pos.z+search_distance} + nodes = minetest.env:find_nodes_in_area(minp, maxp, node_name) +-- minetest.chat_send_all("Found (" .. node_name .. ": " .. #nodes .. ")") + return #nodes +end + + +local get_ambience = function(player) + local pos = player:getpos() + pos.y = pos.y+1.0 + local nodename = minetest.env:get_node(pos).name + if string.find(nodename, "default:water") then + if music then + return {water=water, water_frequent=water_frequent, music=music} + else + return {water=water, water_frequent=water_frequent} + end + elseif nodename == "air" then + pos.y = pos.y-1.5 + local nodename = minetest.env:get_node(pos).name + pos.y = pos.y+1.5 + if string.find(nodename, "default:water") then + if music then + return {water_surface=water_surface, music=music} + else + return {water_surface} + end + end + end + + if nodes_in_range(pos, 7, "default:lava_flowing")>5 or nodes_in_range(pos, 7, "default:lava_source")>5 then + if music then + return {lava=lava, lava2=lava2, music=music} + else + return {lava=lava} + end + end + if nodes_in_range(pos, 7, "default:water_flowing")>5 then + if music then + return {flowing_water=flowing_water, flowing_water2=flowing_water2, music=music} + else + return {flowing_water=flowing_water, flowing_water2=flowing_water2} + end + end + pos.y = pos.y-2 + nodename = minetest.env:get_node(pos).name + --minetest.chat_send_all("Found " .. nodename .. pos.y ) + if string.find(nodename, "default:sand") and pos.y < 5 then + if music then + return {beach=beach, beach_frequent=beach_frequent, music=music} + else + return {beach=beach, beach_frequent=beach_frequent} + end + end + if player:getpos().y < 0 then + if music then + return {cave=cave, cave_frequent=cave_frequent, music=music} + else + return {cave=cave, cave_frequent=cave_frequent} + end + end + if is_daytime() then + if music then + return {day=day, day_frequent=day_frequent, music=music} + else + return {day=day, day_frequent=day_frequent} + end + else + if music then + return {night=night, night_frequent=night_frequent, music=music} + else + return {night=night, night_frequent=night_frequent} + end + end +end + +-- start playing the sound, set the handler and delete the handler after sound is played +local play_sound = function(player, list, number) + local player_name = player:get_player_name() + if list.handler[player_name] == nil then + local gain = 1.0 + if list[number].gain ~= nil then + gain = list[number].gain + end + local handler = minetest.sound_play(list[number].name, {to_player=player_name, gain=gain}) + if handler ~= nil then + list.handler[player_name] = handler + minetest.after(list[number].length, function(args) + local list = args[1] + local player_name = args[2] + if list.handler[player_name] ~= nil then + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end, {list, player_name}) + end + end +end + +-- stops all sounds that are not in still_playing +local stop_sound = function(still_playing, player) + local player_name = player:get_player_name() + if still_playing.cave == nil then + local list = cave + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.cave_frequent == nil then + local list = cave_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.beach == nil then + local list = beach + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.beach_frequent == nil then + local list = beach_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + + if still_playing.night == nil then + local list = night + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.night_frequent == nil then + local list = night_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.day == nil then + local list = day + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.day_frequent == nil then + local list = day_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.music == nil then + local list = music + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.flowing_water == nil then + local list = flowing_water + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.flowing_water2 == nil then + local list = flowing_water2 + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.lava == nil then + local list = lava + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.lava2 == nil then + local list = lava2 + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.water == nil then + local list = water + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.water_surface == nil then + local list = water_surface + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + played_on_start = false + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.water_frequent == nil then + local list = water_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + minetest.chat_send_all("list.on_stop " .. list.on_stop ) + -- played_on_start = false + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + + + +end + +local timer = 0 +minetest.register_globalstep(function(dtime) + timer = timer+dtime + if timer < 1 then + return + end + timer = 0 + + for _,player in ipairs(minetest.get_connected_players()) do + local ambiences = get_ambience(player) + stop_sound(ambiences, player) + for _,ambience in pairs(ambiences) do + if math.random(1, 1000) <= ambience.frequency then + if ambience.on_start ~= nil and played_on_start == false then + played_on_start = true + minetest.sound_play(ambience.on_start, {to_player=player:get_player_name()}) + end + play_sound(player, ambience, math.random(1, #ambience)) + end + end + end +end) \ No newline at end of file diff --git a/mods/ambience_modpack/ambience/init29debug.lua b/mods/ambience_modpack/ambience/init29debug.lua new file mode 100755 index 00000000..60bf38f5 --- /dev/null +++ b/mods/ambience_modpack/ambience/init29debug.lua @@ -0,0 +1,722 @@ +-------------------------------------------------------------------------------------------------------- +--Ambiance Configuration for version .29 +--working on Flying +--PROB: wind stops short even though it says we are still flying and don't hear the start sound. +--really BIG prob, it ruins water meaning you hear beach while treading water. (find out if still hear it in .28) because +--it is fairly rare in .29 +--need a separate onstart variable for flying + + +local max_frequency_all = 1000 --the larger you make this number the lest frequent ALL sounds will happen recommended values between 100-2000. + +--for frequencies below use a number between 0 and max_frequency_all +--for volumes below, use a number between 0.0 and 1, the larger the number the louder the sounds +local night_frequency = 20 --owls, wolves +local night_volume = 0.9 +local night_frequent_frequency = 150 --crickets +local night_frequent_volume = 0.9 +local day_frequency = 100 --crow, bluejay, cardinal +local day_volume = 0.9 +local day_frequent_frequency = 1000 --crow, bluejay, cardinal +local day_frequent_volume = 0.18 +local cave_frequency = 10 --bats +local cave_volume = 1.0 +local cave_frequent_frequency = 70 --drops of water dripping +local cave_frequent_volume = 1.0 +local beach_frequency = 20 --seagulls +local beach_volume = 1.0 +local beach_frequent_frequency = 1000 --waves +local beach_frequent_volume = 1.0 +local water_frequent_frequency = 1000 --water sounds +local water_frequent_volume = 1.0 +local desert_frequency = 20 --coyote +local desert_volume = 1.0 +local desert_frequent_frequency = 700 --desertwind +local desert_frequent_volume = 1.0 +local swimming_frequent_frequency = 1000 --swimming splashes +local swimming_frequent_volume = 1.0 +local music_frequency = 0 --music (suggestion: keep this one low like around 6) +local music_volume = 0.3 +--End of Config +---------------------------------------------------------------------------------------------------- +local counter=0--***************** +local last_x_pos = 0 +local last_y_pos = 0 +local last_z_pos = 0 +local node_under_feet +local node_at_upper_body +local node_at_lower_body +local node_3_under_feet + +local played_on_start = false +local played_on_start_flying = false + +local night = { + handler = {}, + frequency = night_frequency, + {name="horned_owl", length=3, gain=night_volume}, + {name="Wolves_Howling", length=11, gain=night_volume}, + {name="ComboWind", length=17, gain=night_volume} +} + +local night_frequent = { + handler = {}, + frequency = night_frequent_frequency, + {name="Crickets_At_NightCombo", length=69, gain=night_frequent_volume} +} + +local day = { + handler = {}, + frequency = day_frequency, + {name="Best Cardinal Bird", length=4, gain=day_volume}, + {name="craw", length=3, gain=day_volume}, + {name="bluejay", length=18, gain=day_volume}, + {name="ComboWind", length=17, gain=day_volume} +} + +local day_frequent = { + handler = {}, + frequency = day_frequent_frequency, + {name="robin2", length=16, gain=day_frequent_volume}, + {name="birdsongnl", length=13, gain=day_frequent_volume}, + {name="bird", length=30, gain=day_frequent_volume}, + {name="Best Cardinal Bird", length=4, gain=day_frequent_volume}, + {name="craw", length=3, gain=day_frequent_volume}, + {name="bluejay", length=18, gain=day_frequent_volume}, + {name="ComboWind", length=17, gain=day_frequent_volume*3} +} +local swimming_frequent = { + handler = {}, + frequency = day_frequent_frequency, + {name="water_swimming_splashing_breath", length=11.5, gain=swimming_frequent_volume}, + {name="water_swimming_splashing", length=9, gain=swimming_frequent_volume} +} + +local cave = { + handler = {}, + frequency = cave_frequency, + {name="Bats_in_Cave", length=5, gain=cave_volume} +} + +local cave_frequent = { + handler = {}, + frequency = cave_frequent_frequency, + {name="drippingwater_drip_a", length=2, gain=cave_frequent_volume}, + {name="drippingwater_drip_b", length=2, gain=cave_frequent_volume}, + {name="drippingwater_drip_c", length=2, gain=cave_frequent_volume}, + {name="Single_Water_Droplet", length=3, gain=cave_frequent_volume}, + {name="Spooky_Water_Drops", length=7, gain=cave_frequent_volume} +} + +local beach = { + handler = {}, + frequency = beach_frequency, + {name="seagull", length=4.5, gain=beach_volume} +} + +local beach_frequent = { + handler = {}, + frequency = beach_frequent_frequency, + {name="fiji_beach", length=43.5, gain=beach_frequent_volume} +} + +local desert = { + handler = {}, + frequency = desert_frequency, + {name="coyote2", length=2.5, gain=desert_volume}, + {name="RattleSnake", length=8, gain=desert_volume} +} + +local desert_frequent = { + handler = {}, + frequency = desert_frequent_frequency, + {name="DesertMonolithMed", length=34.5, gain=desert_frequent_volume} +} + +local flying = { + handler = {}, + frequency = 1000, + on_start = "crystal_airlines", + on_stop = "nothing_yet", + {name="ComboWind", length=17, gain=1} +} + +local water = { + handler = {}, + frequency = 0,--dolphins dont fit into small lakes + {name="dolphins", length=6}, + {name="dolphins_screaming", length=16.5} +} + +local water_frequent = { + handler = {}, + frequency = water_frequent_frequency, + on_stop = "drowning_gasp", + --on_start = "Splash", + {name="scuba1bubbles", length=11, gain=water_frequent_volume}, + {name="scuba1calm", length=10}, --not sure why but sometimes I get errors when setting gain=water_frequent_volume here. + {name="scuba1calm2", length=8.5, gain=water_frequent_volume}, + {name="scuba1interestingbubbles", length=11, gain=water_frequent_volume}, + {name="scuba1tubulentbubbles", length=10.5, gain=water_frequent_volume} +} + +local water_surface = { + handler = {}, + frequency = 1000, + on_stop = "Splash", + on_start = "Splash", + {name="lake_waves_2_calm", length=9.5}, + {name="lake_waves_2_variety", length=13.1} +} +local splashing_water = { + handler = {}, + frequency = 1000, + {name="Splash", length=1.22, gain=1} +} + +local flowing_water = { + handler = {}, + frequency = 1000, + {name="small_waterfall", length=14, gain=.4} +} +local flowing_water2 = { + handler = {}, + frequency = 1000, + {name="small_waterfall", length=11, gain=.3} +} + +local lava = { + handler = {}, + frequency = 1000, + {name="earth01a", length=20} +} +local lava2 = { + handler = {}, + frequency = 1000, + {name="earth01a", length=15} +} + + +local play_music = minetest.setting_getbool("music") or false +local music = { + handler = {}, + frequency = music_frequency, + {name="mtest", length=4*60+33, gain=music_volume}, + {name="echos", length=2*60+26, gain=music_volume}, + {name="FoamOfTheSea", length=1*60+50, gain=music_volume}, + {name="eastern_feeling", length=3*60+51, gain=music_volume}, + {name="Mass_Effect_Uncharted_Worlds", length=2*60+29, gain=music_volume}, + {name="dark_ambiance", length=44, gain=music_volume} +} + +local is_daytime = function() + return (minetest.env:get_timeofday() > 0.2 and minetest.env:get_timeofday() < 0.8) +end + +local nodes_in_range = function(pos, search_distance, node_name) + minp = {x=pos.x-search_distance,y=pos.y-search_distance, z=pos.z-search_distance} + maxp = {x=pos.x+search_distance,y=pos.y+search_distance, z=pos.z+search_distance} + nodes = minetest.env:find_nodes_in_area(minp, maxp, node_name) + --minetest.chat_send_all("Found (" .. node_name .. ": " .. #nodes .. ")") + return #nodes +end + +local nodes_in_coords = function(minp, maxp, node_name) + nodes = minetest.env:find_nodes_in_area(minp, maxp, node_name) + --minetest.chat_send_all("Found (" .. node_name .. ": " .. #nodes .. ")") + return #nodes +end + +local atleast_nodes_in_grid = function(pos, search_distance, height, node_name, threshold) +-- counter = counter +1 +-- minetest.chat_send_all("counter: (" .. counter .. ")") + minp = {x=pos.x-search_distance,y=height, z=pos.z+20} + maxp = {x=pos.x+search_distance,y=height, z=pos.z+20} + nodes = minetest.env:find_nodes_in_area(minp, maxp, node_name) +-- minetest.chat_send_all("z+Found (" .. node_name .. ": " .. #nodes .. ")") + if #nodes >= threshold then + return true + end + totalnodes = #nodes + minp = {x=pos.x-search_distance,y=height, z=pos.z-20} + maxp = {x=pos.x+search_distance,y=height, z=pos.z-20} + nodes = minetest.env:find_nodes_in_area(minp, maxp, node_name) +-- minetest.chat_send_all("z-Found (" .. node_name .. ": " .. #nodes .. ")") + if #nodes >= threshold then + return true + end + totalnodes = totalnodes + #nodes + maxp = {x=pos.x+20,y=height, z=pos.z+search_distance} + minp = {x=pos.x+20,y=height, z=pos.z-search_distance} + nodes = minetest.env:find_nodes_in_area(minp, maxp, node_name) +-- minetest.chat_send_all("x+Found (" .. node_name .. ": " .. #nodes .. ")") + if #nodes >= threshold then + return true + end + totalnodes = totalnodes + #nodes + maxp = {x=pos.x-20,y=height, z=pos.z+search_distance} + minp = {x=pos.x-20,y=height, z=pos.z-search_distance} + nodes = minetest.env:find_nodes_in_area(minp, maxp, node_name) +-- minetest.chat_send_all("x+Found (" .. node_name .. ": " .. #nodes .. ")") + if #nodes >= threshold then + return true + end + totalnodes = totalnodes + #nodes +-- minetest.chat_send_all("Found total(" .. totalnodes .. ")") + if totalnodes >= threshold*2 then + return true + end + return false +end + +local get_immediate_nodes = function(pos) + pos.y = pos.y-1 + node_under_feet = minetest.env:get_node(pos).name + pos.y = pos.y-3 + node_3_under_feet = minetest.env:get_node(pos).name + pos.y = pos.y+3 + pos.y = pos.y+2.2 + node_at_upper_body = minetest.env:get_node(pos).name + pos.y = pos.y-1.19 + node_at_lower_body = minetest.env:get_node(pos).name + pos.y = pos.y+0.99 --1.6 + --minetest.chat_send_all("node_under_feet(" .. nodename .. ")") +end + + +local get_ambience = function(player) + local player_is_climbing = false + local player_is_descending = false + local player_is_moving_horiz = false + local standing_in_water = false + local pos = player:getpos() + get_immediate_nodes(pos) + + if last_x_pos ~=pos.x or last_z_pos ~=pos.z then + player_is_moving_horiz = true + end + if pos.y > last_y_pos+.5 then + player_is_climbing = true + end + if pos.y < last_y_pos-.5 then + player_is_descending = true + end + + last_x_pos =pos.x + last_z_pos =pos.z + last_y_pos =pos.y + + if string.find(node_at_upper_body, "default:water") then + if music then + return {water=water, water_frequent=water_frequent, music=music} + else + return {water=water, water_frequent=water_frequent} + end + elseif node_at_upper_body == "air" then + if string.find(node_at_lower_body, "default:water") then + --minetest.chat_send_all("bottom counted as water") + --we found air at upperbody, and water at lower body. Now there are 4 possibilities: + --Key: under feet, moving or not + --swimming w, m swimming + --walking in water nw, m splashing + --treading water w, nm sloshing + --standing in water nw, nm beach trumps, then sloshing + if player_is_moving_horiz then + if string.find(node_under_feet, "default:water") then + if music then + return {swimming_frequent=swimming_frequent, music=music} + else + return {swimming_frequent} + end + else --didn't find water under feet: walking in water + if music then + return {splashing_water=splashing_water, music=music} + else + return {splashing_water} + end + end + else--player is not moving + if string.find(node_under_feet, "default:water") then + if music then + return {water_surface=water_surface, music=music} + else + return {water_surface} + end + else --didn't find water under feet + standing_in_water = true + end + end + end + end + if player_is_moving_horiz then + minetest.chat_send_all("playermoving") + end + if player_is_climbing then + minetest.chat_send_all("player Climbing") + end + minetest.chat_send_all("nub:" ..node_at_upper_body) + minetest.chat_send_all("nlb:" ..node_at_lower_body) + minetest.chat_send_all("nuf:" ..node_under_feet) + minetest.chat_send_all("n3uf:" ..node_3_under_feet) + + local air_or_ignore = {air=true,ignore=true} + --minetest.chat_send_all(air_or_ignore[node_under_feet]) + if (player_is_moving_horiz or player_is_climbing) and air_or_ignore[node_at_upper_body] and air_or_ignore[node_at_lower_body] + and air_or_ignore[node_under_feet] and air_or_ignore[node_3_under_feet] and not player_is_descending then + minetest.chat_send_all("flying!!!!") + if music then + return {flying=flying, music=music} + else + return {flying} + end + end + minetest.chat_send_all("not flying!!!!") + + if nodes_in_range(pos, 7, "default:lava_flowing")>5 or nodes_in_range(pos, 7, "default:lava_source")>5 then + if music then + return {lava=lava, lava2=lava2, music=music} + else + return {lava=lava} + end + end + if nodes_in_range(pos, 6, "default:water_flowing")>45 then + if music then + return {flowing_water=flowing_water, flowing_water2=flowing_water2, music=music} + else + return {flowing_water=flowing_water, flowing_water2=flowing_water2} + end + end + + +--if we are near sea level and there is lots of water around the area + if pos.y < 7 and pos.y >0 and atleast_nodes_in_grid(pos, 60, 1, "default:water_source", 51 ) then + if music then + return {beach=beach, beach_frequent=beach_frequent, music=music} + else + return {beach=beach, beach_frequent=beach_frequent} + end + end + if standing_in_water then + if music then + return {water_surface=water_surface, music=music} + else + return {water_surface} + end + end + + + desert_in_range = (nodes_in_range(pos, 6, "default:desert_sand")+nodes_in_range(pos, 6, "default:desert_stone")) + --minetest.chat_send_all("desertcount: " .. desert_in_range .. ",".. pos.y ) + if desert_in_range >250 then + if music then + return {desert=desert, desert_frequent=desert_frequent, music=music} + else + return {desert=desert, desert_frequent=desert_frequent} + end + end + + pos.y = pos.y-2 + nodename = minetest.env:get_node(pos).name +-- minetest.chat_send_all("Found " .. nodename .. pos.y ) + + + if player:getpos().y < 0 then + if music then + return {cave=cave, cave_frequent=cave_frequent, music=music} + else + return {cave=cave, cave_frequent=cave_frequent} + end + end + if is_daytime() then + if music then + return {day=day, day_frequent=day_frequent, music=music} + else + return {day=day, day_frequent=day_frequent} + end + else + if music then + return {night=night, night_frequent=night_frequent, music=music} + else + return {night=night, night_frequent=night_frequent} + end + end +end + +-- start playing the sound, set the handler and delete the handler after sound is played +local play_sound = function(player, list, number) + local player_name = player:get_player_name() + if list.handler[player_name] == nil then + local gain = 1.0 + if list[number].gain ~= nil then + gain = list[number].gain + end + local handler = minetest.sound_play(list[number].name, {to_player=player_name, gain=gain}) + if handler ~= nil then + list.handler[player_name] = handler + minetest.after(list[number].length, function(args) + local list = args[1] + local player_name = args[2] + if list.handler[player_name] ~= nil then + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end, {list, player_name}) + end + end +end + +-- stops all sounds that are not in still_playing +local stop_sound = function(still_playing, player) + local player_name = player:get_player_name() + if still_playing.cave == nil then + local list = cave + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.cave_frequent == nil then + local list = cave_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.swimming_frequent == nil then + local list = swimming_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.beach == nil then + local list = beach + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.beach_frequent == nil then + local list = beach_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.desert == nil then + local list = desert + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.desert_frequent == nil then + local list = desert_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.night == nil then + local list = night + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.night_frequent == nil then + local list = night_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.day == nil then + local list = day + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.day_frequent == nil then + local list = day_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.music == nil then + local list = music + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.flowing_water == nil then + local list = flowing_water + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.flowing_water2 == nil then + local list = flowing_water2 + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.lava == nil then + local list = lava + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.lava2 == nil then + local list = lava2 + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.water == nil then + local list = water + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.water_surface == nil then + local list = water_surface + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + played_on_start = false + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.water_frequent == nil then + local list = water_frequent + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + -- minetest.chat_send_all("list.on_stop " .. list.on_stop ) + played_on_start = false + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.flying == nil then + --minetest.chat_send_all("begin stop flying " ) + local list = flying + if list.handler[player_name] ~= nil then + -- minetest.chat_send_all("handler flying " ) + if list.on_stop ~= nil then + -- minetest.chat_send_all("onstop flying" ) + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + played_on_start = false + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + if still_playing.splashing_water == nil then + local list = splashing_water + if list.handler[player_name] ~= nil then + if list.on_stop ~= nil then + minetest.sound_play(list.on_stop, {to_player=player:get_player_name()}) + end + minetest.sound_stop(list.handler[player_name]) + list.handler[player_name] = nil + end + end + +end + +local timer = 0 +minetest.register_globalstep(function(dtime) + timer = timer+dtime + if timer < 1 then + return + end + timer = 0 + + for _,player in ipairs(minetest.get_connected_players()) do + local ambiences = get_ambience(player) + stop_sound(ambiences, player) + for _,ambience in pairs(ambiences) do + if math.random(1, 1000) <= ambience.frequency then + if(played_on_start) then + -- minetest.chat_send_all("playedOnStart " ) + else + -- minetest.chat_send_all("FALSEplayedOnStart " ) + end + if ambience.on_start ~= nil and played_on_start == false then + played_on_start = true + minetest.sound_play(ambience.on_start, {to_player=player:get_player_name()}) + end + minetest.chat_send_all("ambience: " ..ambience ) + -- if ambience.on_start ~= nil and played_on_start_flying == false then + -- played_on_start_flying = true + -- minetest.sound_play(ambience.on_start, {to_player=player:get_player_name()}) + -- end + play_sound(player, ambience, math.random(1, #ambience)) + end + end + end +end) \ No newline at end of file diff --git a/mods/ambience_modpack/ambience/sounds/Ambivalent.ogg b/mods/ambience_modpack/ambience/sounds/Ambivalent.ogg new file mode 100644 index 00000000..a1298d49 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/Ambivalent.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/AvalonShort.ogg b/mods/ambience_modpack/ambience/sounds/AvalonShort.ogg new file mode 100755 index 00000000..fcb1277b Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/AvalonShort.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/Bats_in_Cave.ogg b/mods/ambience_modpack/ambience/sounds/Bats_in_Cave.ogg new file mode 100755 index 00000000..97662d0e Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/Bats_in_Cave.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/Best Cardinal Bird.ogg b/mods/ambience_modpack/ambience/sounds/Best Cardinal Bird.ogg new file mode 100755 index 00000000..4a933954 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/Best Cardinal Bird.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/ComboWind.ogg b/mods/ambience_modpack/ambience/sounds/ComboWind.ogg new file mode 100755 index 00000000..dfee1baf Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/ComboWind.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/Crickets_At_NightCombo.ogg b/mods/ambience_modpack/ambience/sounds/Crickets_At_NightCombo.ogg new file mode 100755 index 00000000..d0df3276 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/Crickets_At_NightCombo.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/DesertMonolithMed.ogg b/mods/ambience_modpack/ambience/sounds/DesertMonolithMed.ogg new file mode 100755 index 00000000..93757b15 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/DesertMonolithMed.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/EtherealShort.ogg b/mods/ambience_modpack/ambience/sounds/EtherealShort.ogg new file mode 100755 index 00000000..fadc9229 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/EtherealShort.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/FarawayShort.ogg b/mods/ambience_modpack/ambience/sounds/FarawayShort.ogg new file mode 100755 index 00000000..31237b7d Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/FarawayShort.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/Loneliness.ogg b/mods/ambience_modpack/ambience/sounds/Loneliness.ogg new file mode 100644 index 00000000..94fd6e02 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/Loneliness.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/Mute.ogg b/mods/ambience_modpack/ambience/sounds/Mute.ogg new file mode 100644 index 00000000..4ea74fe1 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/Mute.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/RattleSnake.ogg b/mods/ambience_modpack/ambience/sounds/RattleSnake.ogg new file mode 100755 index 00000000..6cebf02e Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/RattleSnake.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/Single_Water_Droplet.ogg b/mods/ambience_modpack/ambience/sounds/Single_Water_Droplet.ogg new file mode 100755 index 00000000..b7324534 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/Single_Water_Droplet.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/SoundLicenses.txt b/mods/ambience_modpack/ambience/sounds/SoundLicenses.txt new file mode 100755 index 00000000..f37a799e --- /dev/null +++ b/mods/ambience_modpack/ambience/sounds/SoundLicenses.txt @@ -0,0 +1,115 @@ +--------------Music Lic: +Amethystium: +--Avalon +--Ethereal +--Faraway +--Strangely Beautiful +Used with kind permission from ystein Ramfjord / AM.mu Records + +Jordach: +--dark_ambiance +--eastern_feeling +These sounds are used for the Mod for Minetest; Ambiance. +The included sounds are http://creativecommons.org/licenses/by-nc-sa/3.0/ +Not Used:--mtest + +-----------Sound Lic: +--Nightime Sound, Recorded by Mike Koenig, License: Attribution 3.0 http://soundbible.com/951-Nightime.html +--Crickets At Night Sound, License: Attribution 3.0 | Recorded by Mike Koenig |http://soundbible.com/365-Crickets-At-Night.html + +--Medium Pack Of Wolves Howling, License: Public Domain | Recorded by fws.gov, http://soundbible.com/277-Medium-Pack-Of-Wolves-Howling.html + +--Horned Owl Sound, License: Attribution 3.0 | Recorded by Mike Koenig , http://soundbible.com/1851-Horned-Owl.html +--Bats In Cave Sound, License: Attr-Noncommercial 3.0 | Recorded by Mike Koenig , http://soundbible.com/1939-Bats-In-Cave.html + +--Spooky Water Drops Sound, License: Attribution 3.0 | Recorded by Mike Koenig, http://soundbible.com/380-Spooky-Water-Drops.html + + +-- Single Water Droplet Sound, License: Attribution 3.0 | Recorded by Mike Koenig, http://soundbible.com/384-Single-Water-Droplet.html + +--HollowWind, Black Boe, Creative Commons 0 License, http://www.freesound.org/people/Black%20Boe/sounds/22331/ + +--drippingwater*.ogg sounds: CC0, Dripping Water Mod, by kddekadenz, http://minetest.net/forum/viewtopic.php?id=1688 + +--best cardinal bird: License: Attribution 3.0 | Recorded by PsychoBird, http://soundbible.com/1515-Best-Cardinal-Bird.html + +--birdsongnl: the Attribution License, HerbertBoland, http://www.freesound.org/people/HerbertBoland/sounds/28312/ (end) + +--robin2: Attribution License, reinsamba, http://www.freesound.org/people/reinsamba/sounds/32479/ (end) + +--Craw.WAV, Attribution License, inchadney, http://www.freesound.org/people/inchadney/sounds/52450/ + +--bluejay.wav, Creative Commons 0 License, UncleSigmund, http://www.freesound.org/people/UncleSigmund/sounds/42382/ + +--scuba1*.ogg- digifishmusic, Attribution License, http://www.freesound.org/people/digifishmusic/sounds/45521/ + +--Underwater Pool - Attribution 3.0 | Recorded by Mike Koenig, http://soundbible.com/1660-Underwater-Pool.html + +--dolphin_screaming - Creative Commons 0 License, felix.blume, http://www.freesound.org/people/felix.blume/sounds/161691/ + +--dolphins - Attribution Noncommercial License, acclivity, http://www.freesound.org/people/acclivity/sounds/13691/ + +ComboWind uses: +--wind-in-the-trees -Attribution License, laurent, http://www.freesound.org/people/laurent/sounds/16995/ +--drygrassInWind- Creative Commons 0 License, felix.blume, http://www.freesound.org/people/felix.blume/sounds/146436/ + +--Splash: Attribution 3.0 | Recorded by BlastwaveFx.com, http://soundbible.com/546-Fish-Splashing.html + +--small_waterfall Attribution License, volivieri, http://www.freesound.org/people/volivieri/sounds/38390/ + +--Lake_Waves_2*, Attribution License, Benboncan, http://www.freesound.org/people/Benboncan/sounds/67884/ + +--water_swimming_splashing*, Attribution Noncommercial License, Robinhood76, http://www.freesound.org/people/Robinhood76/sounds/79657/ + +--earth01a, Creative Commons 0 License., Halion , http://www.freesound.org/people/Halion/sounds/17785 + +--fiji_beach, Creative Commons 0 License, c97059890, http://www.freesound.org/people/c97059890/sounds/21754/ + +--seagull, Attribution Noncommercial License., hazure, http://www.freesound.org/people/hazure/sounds/23707/, + +desert: +coyote2, Attribution License, rogerforeman, http://www.freesound.org/people/rogerforeman/sounds/68068/ +http://www.freesound.org/people/Proxima4/sounds/104319/ +Desert Monolith.wav, Creative Commons 0 License, Proxima4, http://www.freesound.org/people/Proxima4/sounds/104319/ +Rattlesnake Rattle, Public Domain, fws.gov, http://soundbible.com/237-Rattlesnake-Rattle.html + +flying: +crystal_airlines: Attribution License, suonho, http://www.freesound.org/people/suonho/sounds/56364/ + +----------------Not used yet: +desert: +Desert Simple.wav, Creative Commons 0 License, Proxima4, http://www.freesound.org/people/Proxima4/sounds/104320/ + + 313hummer (Jordan Craige) +--echos http://soundcloud.com/jordan-craige/echos-1 +Creative Commons Attribution license (reuse allowed) Attribution 3.0 Unported (CC BY 3.0) +Not Used:--FoamOfTheSea http://soundcloud.com/jordan-craige/foam-of-the-sea + +xi-intersection: +http://soundcloud.com/xi-intersection/mass-effect-uncharted-worlds Creative Commons License +--not used: +http://soundcloud.com/xi-intersection/donkey-kong-country-2-flight +http://soundcloud.com/kogyo/kogyo-skalar-m1 + +lava: +http://www.freesound.org/people/Halion/sounds/17785/ (almost as good cc) (combine with rocks falling?) +http://www.freesound.org/people/pushtobreak/sounds/17823/ (attrib non cc really good) +http://www.freesound.org/people/klankbeeld/sounds/123970/ (horror rhythm) +Rockfall in mine.wav http://www.freesound.org/people/Benboncan/sounds/60085/ + + +http://www.freesound.org/people/snotch/sounds/96175/ (mud volcano) + +--natural night sounds in Boquete.wav, Attribution License, laurent, http://www.freesound.org/people/laurent/sounds/15851/ +http://www.freesound.org/people/Dynamicell/sounds/17553/ +http://www.freesound.org/people/juskiddink/sounds/78955/ aspen tree in wind +http://www.freesound.org/people/Benboncan/sounds/69761/ wind in hedge birds animals + + +ButterflyTea: +Creative Commons : Attribution-Noncommercial-Share Alike 3.0 +http://www.jamendo.com/en/track/904012/dance-of-magical-flowers +http://www.jamendo.com/en/track/904013/magic-of-the-seventh-world +http://www.jamendo.com/en/track/904016/in-search-of-the-soul + +zero-project diff --git a/mods/ambience_modpack/ambience/sounds/Splash.ogg b/mods/ambience_modpack/ambience/sounds/Splash.ogg new file mode 100755 index 00000000..8a433a71 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/Splash.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/Spooky_Water_Drops.ogg b/mods/ambience_modpack/ambience/sounds/Spooky_Water_Drops.ogg new file mode 100755 index 00000000..c2a3be98 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/Spooky_Water_Drops.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/StrangelyBeautifulShort.ogg b/mods/ambience_modpack/ambience/sounds/StrangelyBeautifulShort.ogg new file mode 100755 index 00000000..1623f092 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/StrangelyBeautifulShort.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/Wolves_Howling.ogg b/mods/ambience_modpack/ambience/sounds/Wolves_Howling.ogg new file mode 100755 index 00000000..537d0579 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/Wolves_Howling.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/bird.ogg b/mods/ambience_modpack/ambience/sounds/bird.ogg new file mode 100755 index 00000000..1ee96ad2 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/bird.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/birdsongnl.ogg b/mods/ambience_modpack/ambience/sounds/birdsongnl.ogg new file mode 100755 index 00000000..89d262b7 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/birdsongnl.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/bluejay.ogg b/mods/ambience_modpack/ambience/sounds/bluejay.ogg new file mode 100755 index 00000000..e618b6b2 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/bluejay.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/coyote2.ogg b/mods/ambience_modpack/ambience/sounds/coyote2.ogg new file mode 100755 index 00000000..dc29674e Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/coyote2.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/craw.ogg b/mods/ambience_modpack/ambience/sounds/craw.ogg new file mode 100755 index 00000000..eb3f7f3e Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/craw.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/dark_ambiance.ogg b/mods/ambience_modpack/ambience/sounds/dark_ambiance.ogg new file mode 100755 index 00000000..e3099d1b Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/dark_ambiance.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/drippingwater_drip_a.ogg b/mods/ambience_modpack/ambience/sounds/drippingwater_drip_a.ogg new file mode 100755 index 00000000..84c3e013 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/drippingwater_drip_a.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/drippingwater_drip_b.ogg b/mods/ambience_modpack/ambience/sounds/drippingwater_drip_b.ogg new file mode 100755 index 00000000..18790fc1 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/drippingwater_drip_b.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/drippingwater_drip_c.ogg b/mods/ambience_modpack/ambience/sounds/drippingwater_drip_c.ogg new file mode 100755 index 00000000..ad2424a3 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/drippingwater_drip_c.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/drowning_gasp.ogg b/mods/ambience_modpack/ambience/sounds/drowning_gasp.ogg new file mode 100755 index 00000000..5d62a8ec Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/drowning_gasp.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/earth01a.ogg b/mods/ambience_modpack/ambience/sounds/earth01a.ogg new file mode 100755 index 00000000..d08740f0 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/earth01a.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/eastern_feeling.ogg b/mods/ambience_modpack/ambience/sounds/eastern_feeling.ogg new file mode 100755 index 00000000..d691313d Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/eastern_feeling.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/fiji_beach.ogg b/mods/ambience_modpack/ambience/sounds/fiji_beach.ogg new file mode 100755 index 00000000..f6831d66 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/fiji_beach.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/horned_owl.ogg b/mods/ambience_modpack/ambience/sounds/horned_owl.ogg new file mode 100755 index 00000000..f30d0b3c Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/horned_owl.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/lake_waves_2_calm.ogg b/mods/ambience_modpack/ambience/sounds/lake_waves_2_calm.ogg new file mode 100755 index 00000000..2616958f Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/lake_waves_2_calm.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/lake_waves_2_variety.ogg b/mods/ambience_modpack/ambience/sounds/lake_waves_2_variety.ogg new file mode 100755 index 00000000..bd1dc6ce Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/lake_waves_2_variety.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/robin2.ogg b/mods/ambience_modpack/ambience/sounds/robin2.ogg new file mode 100755 index 00000000..8bbb161d Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/robin2.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/scuba1bubbles.ogg b/mods/ambience_modpack/ambience/sounds/scuba1bubbles.ogg new file mode 100755 index 00000000..ffc1431e Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/scuba1bubbles.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/scuba1calm.ogg b/mods/ambience_modpack/ambience/sounds/scuba1calm.ogg new file mode 100755 index 00000000..e1e76cff Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/scuba1calm.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/scuba1calm2.ogg b/mods/ambience_modpack/ambience/sounds/scuba1calm2.ogg new file mode 100755 index 00000000..c1a348a2 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/scuba1calm2.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/scuba1interestingbubbles.ogg b/mods/ambience_modpack/ambience/sounds/scuba1interestingbubbles.ogg new file mode 100755 index 00000000..b17d33c0 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/scuba1interestingbubbles.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/scuba1tubulentbubbles.ogg b/mods/ambience_modpack/ambience/sounds/scuba1tubulentbubbles.ogg new file mode 100755 index 00000000..555edff9 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/scuba1tubulentbubbles.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/seagull.ogg b/mods/ambience_modpack/ambience/sounds/seagull.ogg new file mode 100755 index 00000000..9dab9632 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/seagull.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/small_waterfall.ogg b/mods/ambience_modpack/ambience/sounds/small_waterfall.ogg new file mode 100755 index 00000000..40208303 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/small_waterfall.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/water_swimming_splashing.ogg b/mods/ambience_modpack/ambience/sounds/water_swimming_splashing.ogg new file mode 100755 index 00000000..7a9bbf31 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/water_swimming_splashing.ogg differ diff --git a/mods/ambience_modpack/ambience/sounds/water_swimming_splashing_breath.ogg b/mods/ambience_modpack/ambience/sounds/water_swimming_splashing_breath.ogg new file mode 100755 index 00000000..06bed351 Binary files /dev/null and b/mods/ambience_modpack/ambience/sounds/water_swimming_splashing_breath.ogg differ diff --git a/mods/ambience_modpack/ambience/todo.txt b/mods/ambience_modpack/ambience/todo.txt new file mode 100755 index 00000000..4f95977a --- /dev/null +++ b/mods/ambience_modpack/ambience/todo.txt @@ -0,0 +1,11 @@ +To Do: + +-add random_volume parameter to night normal, day normal, & cave normal sounds to create feeling of distance. + +m-get constant birds more quiet during the day +m-bats seem way too frequent now? +m-when playing multiplayer seems to increase frequency of music & normal sounds to the point where they are obnoxious +m-which songs should go with which environments? Dark songs in caves or night, light sounds during day. +m-may be drowning out some of the normal sound effects like walking on stone. +l-what about other weird bubble +l-put in wind/ wind in trees during day and night diff --git a/mods/ambience_modpack/modpack.txt b/mods/ambience_modpack/modpack.txt new file mode 100755 index 00000000..e69de29b diff --git a/mods/ambience_modpack/us.stackdump b/mods/ambience_modpack/us.stackdump new file mode 100755 index 00000000..84ab36ed --- /dev/null +++ b/mods/ambience_modpack/us.stackdump @@ -0,0 +1,18 @@ +MSYS-1.0.12 Build:2011-07-20 17:52 +Exception: STATUS_ACCESS_VIOLATION at eip=68085E34 +eax=68560000 ebx=000057BC ecx=000015EF edx=00000000 esi=00000000 edi=68560000 +ebp=0022FE48 esp=0022FE3C program=us +cs=001B ds=0023 es=0023 fs=003B gs=0000 ss=0023 +Stack trace: +Frame Function Args +0022FE48 68085E34 (68560000, 00000000, 000057BC, 00000004) +0022FE98 68001CB0 (00552C68, 00000001, 0022FEE8, 680044EA) +0022FEE8 680045C7 (00000000, 00000000, 0022FF28, 00401EF0) +0022FF08 68004C5F (00401068, 00000000, 00000000, 00000000) +0022FF28 68004C98 (00000000, 00000000, 00000000, 00000000) +0022FF58 00401DB8 (00401068, 00000000, 00000000, 00000000) +0022FF88 0040103D (7FFD9000, 0022FFD4, 7725E1C6, 7FFD9000) +0022FF94 75914B29 (7FFD9000, 4DBD3901, 00000000, 00000000) +0022FFD4 7725E1C6 (00401000, 7FFD9000, 00000000, 00000000) +0022FFEC 7725E199 (00401000, 7FFD9000, 00000000, 78746341) +End of stack trace \ No newline at end of file diff --git a/mods/areas/.gitignore b/mods/areas/.gitignore new file mode 100755 index 00000000..5236e1e4 --- /dev/null +++ b/mods/areas/.gitignore @@ -0,0 +1,2 @@ +*~ + diff --git a/mods/areas/LICENSE.txt b/mods/areas/LICENSE.txt new file mode 100755 index 00000000..4362b491 --- /dev/null +++ b/mods/areas/LICENSE.txt @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +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 this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +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 +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser 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 Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "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 +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY 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 +LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library 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 library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/mods/areas/README.md b/mods/areas/README.md new file mode 100755 index 00000000..86792d2c --- /dev/null +++ b/mods/areas/README.md @@ -0,0 +1,99 @@ +Areas mod for Minetest 0.4.8+ +============================= + +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +Configuration +------------- +If you wish to specify configuration options, such as whether players are +allowed to protect their own areas with /protect (Disabled by default), you +should check config.lua and set the appropriate settings in your minetest.conf. + + +Tutorial +-------- +To protect an area you must first set the corner positions of the area. +In order to set the corner positions you run: +1. "/area\_pos set" punch the two border nodes. +2. "/area\_pos set1/2" punch only the first or second border node. +3. "/area\_pos1/2" set position one or two to your current position. +4. "/area\_pos1/2 X Y Z" set position one or two to the specified coordinates. + +Once you have set the border positions you can protect the area by running: +1. "/set\_owner <OwnerName> <AreaName>" + -- If you are a administrator or moderator with the "areas" privilege. +2. "/protect <AreaName>" + -- If the server administraor has enabled area self-protection. + +The area name is used so that you can easily find the area that you want when +using a command like /list\_areas. It is not used for any other purpose. +For example: /set\_owner SomePlayer Diamond city + +Now that you own an area you may want to add sub-owners to it. You can do this +with the /add\_owner command. Anyone with an area can use the add\_owner +command on their areas. Before using the add\_owner command you have to select +the corners of the sub-area as you did for set\_owner. If your markers are +still around your original area and you want to grant access to your entire +area you will not have to re-set them. You can also use select\_area to place +the markers at the corners of an existing area. +The add\_owner command expects three arguments: +1. The id of the parent area. (The area that you want it to be a sub-area of) +2. The name of the player that will own the sub-area. +3. The name of the sub-area. + +For example: /add\_owner 123 BobTheBuilder Diamond lighthouse + +Chat commands +------------- + * /protect <AreaName> + Protects an area for yourself. (If self-protection is enabled) + + * /set\_owner <OwnerName> <AreaName> + Protects an area. (Requires the "areas" privilege) + + * /add\_owner <ParentID> <OwnerName> <ChildName> + Grants another player control over part (or all) of an area. + + * /rename\_area <ID> <NewName> + Renames an existing area, useful after converting from node_ownership + when all areas are unnamed. + + * /list\_areas + Lists all of the areas that you own. + (Or all of them if you have the "areas" privilege) + + * /find\_areas <Regex> + Finds areas using a Lua regular expresion. + For example: + /find_areas [Cc]astle To find castles. + + * /remove\_area <ID> + Removes an area that you own. Any sub-areas of that area are made sub-areas + of the removed area's parent, if it exists. Otherwise they will have no + parent. + + * /recursive\_remove\_areas <ID> + Removes an area and all sub-areas of it. + + * /change\_owner <ID> <NewOwner> + Change the owner of an area. + + * /select\_area <ID> + Sets the area positions to those of an existing area. + + * /area\_pos {set,set1,set2,get} + Sets the area positions by punching nodes or shows the current area positions. + + * /area\_pos1 \[X,Y,Z|X Y Z\] + Sets area position one to your position or the one supplied. + + * /area\_pos2 \[X,Y,Z|X Y Z\] + Sets area position two to your position or the one supplied. + +License +------- +Copyright (C) 2013 ShadowNinja + +Licensed under the GNU LGPL version 2.1 or higher. +See LICENSE.txt and http://www.gnu.org/licenses/lgpl-2.1.txt + diff --git a/mods/areas/api.lua b/mods/areas/api.lua new file mode 100755 index 00000000..7b10a878 --- /dev/null +++ b/mods/areas/api.lua @@ -0,0 +1,79 @@ + +-- Returns a list of areas that include the provided position +function areas:getAreasAtPos(pos) + local a = {} + local px, py, pz = pos.x, pos.y, pos.z + for id, area in pairs(self.areas) do + local ap1, ap2 = area.pos1, area.pos2 + if px >= ap1.x and px <= ap2.x and + py >= ap1.y and py <= ap2.y and + pz >= ap1.z and pz <= ap2.z then + a[id] = area + end + end + return a +end + +-- Checks if the area is unprotected or owned by you +function areas:canInteract(pos, name) + if minetest.check_player_privs(name, self.adminPrivs) then + return true + end + local owned = false + for _, area in pairs(self:getAreasAtPos(pos)) do + if area.owner == name or area.open then + return true + else + owned = true + end + end + return not owned +end + +-- Returns a table (list) of all players that own an area +function areas:getNodeOwners(pos) + local owners = {} + for _, area in pairs(self:getAreasAtPos(pos)) do + table.insert(owners, area.owner) + end + return owners +end + +--- Checks if the area intersects with an area that the player can't interact in. +-- Note that this fails and returns false when the specified area is fully +-- owned by the player, but with miltiple protection zones, none of which +-- cover the entire checked area. +-- @param name (optional) player name. If not specified checks for any intersecting areas. +-- @return Boolean indicating whether the player can interact in that area. +-- @return Un-owned intersecting area id, if found. +function areas:canInteractInArea(pos1, pos2, name) + if name and minetest.check_player_privs(name, self.adminPrivs) then + return true + end + areas:sortPos(pos1, pos2) + -- First check for a fully enclosing owned area + if name then + for id, area in pairs(self.areas) do + -- A little optimization: isAreaOwner isn't necessary + -- here since we're iterating through all areas. + if area.owner == name and + self:isSubarea(pos1, pos2, id) then + return true + end + end + end + -- Then check for intersecting (non-owned) areas + for id, area in pairs(self.areas) do + local p1, p2 = area.pos1, area.pos2 + if (p1.x <= pos2.x and p2.x >= pos1.x) and + (p1.y <= pos2.y and p2.y >= pos1.y) and + (p1.z <= pos2.z and p2.z >= pos1.z) then + -- Found an intersecting area + if not name or not areas:isAreaOwner(id, name) then + return false, id + end + end + end + return true +end + diff --git a/mods/areas/chatcommands.lua b/mods/areas/chatcommands.lua new file mode 100755 index 00000000..b4673314 --- /dev/null +++ b/mods/areas/chatcommands.lua @@ -0,0 +1,288 @@ + +minetest.register_chatcommand("protect", { + params = "", + description = "Protect your own area", + privs = {[areas.self_protection_privilege]=true}, + func = function(name, param) + if param == "" then + return false, "Invalid usage, see /help protect." + end + local pos1, pos2 = areas:getPos(name) + if not (pos1 and pos2) then + return false, "You need to select an area first." + end + + minetest.log("action", "/protect invoked, owner="..name.. + " AreaName="..param.. + " StartPos="..minetest.pos_to_string(pos1).. + " EndPos=" ..minetest.pos_to_string(pos2)) + + local canAdd, errMsg = areas:canPlayerAddArea(pos1, pos2, name) + if not canAdd then + return false, "You can't protect that area: "..errMsg + end + + local id = areas:add(name, param, pos1, pos2, nil) + areas:save() + + return true, "Area protected. ID: "..id + end +}) + + +minetest.register_chatcommand("set_owner", { + params = " ", + description = "Protect an area beetween two positions and give" + .." a player access to it without setting the parent of the" + .." area to any existing area", + privs = areas.adminPrivs, + func = function(name, param) + local ownerName, areaName = param:match('^(%S+)%s(.+)$') + + if not ownerName then + return false, "Incorrect usage, see /help set_owner." + end + + local pos1, pos2 = areas:getPos(name) + if not (pos1 and pos2) then + return false, "You need to select an area first." + end + + if not areas:player_exists(ownerName) then + return false, "The player \"" + ..ownerName.."\" does not exist." + end + + minetest.log("action", name.." runs /set_owner. Owner = "..ownerName.. + " AreaName = "..areaName.. + " StartPos = "..minetest.pos_to_string(pos1).. + " EndPos = " ..minetest.pos_to_string(pos2)) + + local id = areas:add(ownerName, areaName, pos1, pos2, nil) + areas:save() + + minetest.chat_send_player(ownerName, + "You have been granted control over area #".. + id..". Type /list_areas to show your areas.") + return true, "Area protected. ID: "..id + end +}) + + +minetest.register_chatcommand("add_owner", { + params = " ", + description = "Give a player access to a sub-area beetween two" + .." positions that have already been protected," + .." Use set_owner if you don't want the parent to be set.", + func = function(name, param) + local pid, ownerName, areaName + = param:match('^(%d+) ([^ ]+) (.+)$') + + if not pid then + minetest.chat_send_player(name, "Incorrect usage, see /help add_owner") + return + end + + local pos1, pos2 = areas:getPos(name) + if not (pos1 and pos2) then + return false, "You need to select an area first." + end + + if not areas:player_exists(ownerName) then + return false, "The player \""..ownerName.."\" does not exist." + end + + minetest.log("action", name.." runs /add_owner. Owner = "..ownerName.. + " AreaName = "..areaName.." ParentID = "..pid.. + " StartPos = "..pos1.x..","..pos1.y..","..pos1.z.. + " EndPos = " ..pos2.x..","..pos2.y..","..pos2.z) + + -- Check if this new area is inside an area owned by the player + pid = tonumber(pid) + if (not areas:isAreaOwner(pid, name)) or + (not areas:isSubarea(pos1, pos2, pid)) then + return false, "You can't protect that area." + end + + local id = areas:add(ownerName, areaName, pos1, pos2, pid) + areas:save() + + minetest.chat_send_player(ownerName, + "You have been granted control over area #".. + id..". Type /list_areas to show your areas.") + return true, "Area protected. ID: "..id + end +}) + + +minetest.register_chatcommand("rename_area", { + params = " ", + description = "Rename a area that you own", + func = function(name, param) + local id, newName = param:match("^(%d+)%s(.+)$") + if not id then + return false, "Invalid usage, see /help rename_area." + end + + id = tonumber(id) + if not id then + return false, "That area doesn't exist." + end + + if not areas:isAreaOwner(id, name) then + return true, "You don't own that area." + end + + areas.areas[id].name = newName + areas:save() + return true, "Area renamed." + end +}) + + +minetest.register_chatcommand("find_areas", { + params = "", + description = "Find areas using a Lua regular expression", + func = function(name, param) + if param == "" then + return false, "A regular expression is required." + end + + -- Check expression for validity + local function testRegExp() + ("Test [1]: Player (0,0,0) (0,0,0)"):find(param) + end + if not pcall(testRegExp) then + return false, "Invalid regular expression." + end + + local matches = {} + for id, area in pairs(areas.areas) do + if areas:isAreaOwner(id, name) and + areas:toString(id):find(param) then + table.insert(matches, areas:toString(id)) + end + end + if #matches > 1 then + return true, table.concat(matches, "\n") + else + return true, "No matches found." + end + end +}) + + +minetest.register_chatcommand("list_areas", { + description = "List your areas, or all areas if you are an admin.", + func = function(name, param) + local admin = minetest.check_player_privs(name, areas.adminPrivs) + local areaStrings = {} + for id, area in pairs(areas.areas) do + if admin or areas:isAreaOwner(id, name) then + table.insert(areaStrings, areas:toString(id)) + end + end + if #areaStrings == 0 then + return true, "No visible areas." + end + return true, table.concat(areaStrings, "\n") + end +}) + + +minetest.register_chatcommand("recursive_remove_areas", { + params = "", + description = "Recursively remove areas using an id", + func = function(name, param) + local id = tonumber(param) + if not id then + return false, "Invalid usage, see" + .." /help recursive_remove_areas" + end + + if not areas:isAreaOwner(id, name) then + return false, "Area "..id.." does not exist or is" + .." not owned by you." + end + + areas:remove(id, true) + areas:save() + return true, "Removed area "..id.." and it's sub areas." + end +}) + + +minetest.register_chatcommand("remove_area", { + params = "", + description = "Remove an area using an id", + func = function(name, param) + local id = tonumber(param) + if not id then + return false, "Invalid usage, see /help remove_area" + end + + if not areas:isAreaOwner(id, name) then + return false, "Area "..id.." does not exist or" + .." is not owned by you." + end + + areas:remove(id) + areas:save() + return true, "Removed area "..id + end +}) + + +minetest.register_chatcommand("change_owner", { + params = " ", + description = "Change the owner of an area using it's ID", + func = function(name, param) + local id, newOwner = param:match("^(%d+)%s(%S+)$") + + if not id then + return false, "Invalid usage, see" + .." /help change_owner." + end + + if not areas:player_exists(newOwner) then + return false, "The player \""..newOwner + .."\" does not exist." + end + + id = tonumber(id) + if not areas:isAreaOwner(id, name) then + return false, "Area "..id.." does not exist" + .." or is not owned by you." + end + areas.areas[id].owner = newOwner + areas:save() + minetest.chat_send_player(newOwner, + ("%s has given you control over the area %q (ID %d).") + :format(name, areas.areas[id].name, id)) + return true, "Owner changed." + end +}) + + +minetest.register_chatcommand("area_open", { + params = "", + description = "Toggle an area open (anyone can interact) or closed", + func = function(name, param) + local id = tonumber(param) + + if not id then + return false, "Invalid usage, see /help area_open." + end + + if not areas:isAreaOwner(id, name) then + return false, "Area "..id.." does not exist" + .." or is not owned by you." + end + local open = not areas.areas[id].open + -- Save false as nil to avoid inflating the DB. + areas.areas[id].open = open or nil + areas:save() + return true, ("Area %s."):format(open and "opened" or "closed") + end +}) + diff --git a/mods/areas/hud.lua b/mods/areas/hud.lua new file mode 100755 index 00000000..75244b04 --- /dev/null +++ b/mods/areas/hud.lua @@ -0,0 +1,47 @@ +-- This is inspired by the landrush mod by Bremaweb + +areas.hud = {} + +minetest.register_globalstep(function(dtime) + for _, player in pairs(minetest.get_connected_players()) do + local name = player:get_player_name() + local pos = vector.round(player:getpos()) + local areaString = "" + local first = true + for id, area in pairs(areas:getAreasAtPos(pos)) do + if not first then + areaString = areaString..", " + else + first = false + end + areaString = areaString .. ("%s [%u] (%s%s)") + :format(area.name, id, area.owner, + area.open and ":open" or "") + end + if not areas.hud[name] then + areas.hud[name] = {} + areas.hud[name].areasId = player:hud_add({ + hud_elem_type = "text", + name = "Areas", + number = 0xFFFFFF, + position = {x=0, y=1}, + offset = {x=5, y=-85}, + direction = 0, + text = "Areas: "..areaString, + scale = {x=200, y=60}, + alignment = {x=1, y=1}, + }) + areas.hud[name].oldAreas = areaString + return + elseif areas.hud[name].oldAreas ~= areaString then + player:hud_change(areas.hud[name].areasId, "text", + "Areas: "..areaString) + areas.hud[name].oldAreas = areaString + end + end +end) + +minetest.register_on_leaveplayer(function(player) + areas.hud[player:get_player_name()] = nil +end) + diff --git a/mods/areas/init.lua b/mods/areas/init.lua new file mode 100755 index 00000000..1e85a5ac --- /dev/null +++ b/mods/areas/init.lua @@ -0,0 +1,34 @@ +-- Areas mod by ShadowNinja +-- Based on node_ownership +-- License: LGPLv2+ + +areas = {} + +areas.adminPrivs = {areas=true} +areas.startTime = os.clock() + +areas.modpath = minetest.get_modpath("areas") +dofile(areas.modpath.."/settings.lua") +dofile(areas.modpath.."/api.lua") +dofile(areas.modpath.."/internal.lua") +dofile(areas.modpath.."/chatcommands.lua") +dofile(areas.modpath.."/pos.lua") +dofile(areas.modpath.."/interact.lua") +dofile(areas.modpath.."/legacy.lua") +dofile(areas.modpath.."/hud.lua") + +areas:load() + +minetest.register_privilege("areas", {description = "Can administer areas"}) + +if not minetest.registered_privileges[areas.self_protection_privilege] then + minetest.register_privilege(areas.self_protection_privilege, { + description = "Can protect areas", + }) +end + +if minetest.setting_getbool("log_mod") then + local diffTime = os.clock() - areas.startTime + minetest.log("action", "areas loaded in "..diffTime.."s.") +end + diff --git a/mods/areas/interact.lua b/mods/areas/interact.lua new file mode 100755 index 00000000..2e548001 --- /dev/null +++ b/mods/areas/interact.lua @@ -0,0 +1,19 @@ + +local old_is_protected = minetest.is_protected +function minetest.is_protected(pos, name) + if not areas:canInteract(pos, name) then + return true + end + return old_is_protected(pos, name) +end + +minetest.register_on_protection_violation(function(pos, name) + if not areas:canInteract(pos, name) then + local owners = areas:getNodeOwners(pos) + minetest.chat_send_player(name, + ("%s is protected by %s."):format( + minetest.pos_to_string(pos), + table.concat(owners, ", "))) + end +end) + diff --git a/mods/areas/internal.lua b/mods/areas/internal.lua new file mode 100755 index 00000000..e06b99da --- /dev/null +++ b/mods/areas/internal.lua @@ -0,0 +1,205 @@ + +function areas:player_exists(name) + return minetest.auth_table[name] ~= nil +end + +-- Save the areas table to a file +function areas:save() + local datastr = minetest.serialize(self.areas) + if not datastr then + minetest.log("error", "[areas] Failed to serialize area data!") + return + end + local file, err = io.open(self.filename, "w") + if err then + return err + end + file:write(datastr) + file:close() +end + +-- Load the areas table from the save file +function areas:load() + local file, err = io.open(self.filename, "r") + if err then + self.areas = self.areas or {} + return err + end + self.areas = minetest.deserialize(file:read("*a")) + if type(self.areas) ~= "table" then + self.areas = {} + end + file:close() +end + +-- Finds the first usable index in a table +-- Eg: {[1]=false,[4]=true} -> 2 +local function findFirstUnusedIndex(t) + local i = 0 + repeat i = i + 1 + until t[i] == nil + return i +end + +-- Add a area, returning the new area's id. +function areas:add(owner, name, pos1, pos2, parent) + local id = findFirstUnusedIndex(self.areas) + self.areas[id] = {name=name, pos1=pos1, pos2=pos2, owner=owner, + parent=parent} + return id +end + +-- Remove a area, and optionally it's children recursively. +-- If a area is deleted non-recursively the children will +-- have the removed area's parent as their new parent. +function areas:remove(id, recurse, secondrun) + if recurse then + -- Recursively find child entries and remove them + local cids = self:getChildren(id) + for _, cid in pairs(cids) do + self:remove(cid, true, true) + end + else + -- Update parents + local parent = self.areas[id].parent + local children = self:getChildren(id) + for _, cid in pairs(children) do + -- The subarea parent will be niled out if the + -- removed area does not have a parent + self.areas[cid].parent = parent + + end + end + + -- Remove main entry + self.areas[id] = nil +end + +-- Checks if a area between two points is entirely contained by another area +function areas:isSubarea(pos1, pos2, id) + local area = self.areas[id] + if not area then + return false + end + local p1, p2 = area.pos1, area.pos2 + if (pos1.x >= p1.x and pos1.x <= p2.x) and + (pos2.x >= p1.x and pos2.x <= p2.x) and + (pos1.y >= p1.y and pos1.y <= p2.y) and + (pos2.y >= p1.y and pos2.y <= p2.y) and + (pos1.z >= p1.z and pos1.z <= p2.z) and + (pos2.z >= p1.z and pos2.z <= p2.z) then + return true + end +end + +-- Returns a table (list) of children of an area given it's identifier +function areas:getChildren(id) + local children = {} + for cid, area in pairs(self.areas) do + if area.parent and area.parent == id then + table.insert(children, cid) + end + end + return children +end + +-- Checks if the user has sufficient privileges. +-- If the player is not a administrator it also checks +-- if the area intersects other areas that they do not own. +-- Also checks the size of the area and if the user already +-- has more than max_areas. +function areas:canPlayerAddArea(pos1, pos2, name) + if minetest.check_player_privs(name, self.adminPrivs) then + return true + end + + -- Check self protection privilege, if it is enabled, + -- and if the area is too big. + if (not self.self_protection) or + (not minetest.check_player_privs(name, + {[areas.self_protection_privilege]=true})) then + return false, "Self protection is disabled or you do not have" + .." the necessary privilege." + end + + if (pos2.x - pos1.x) > self.self_protection_max_size.x or + (pos2.y - pos1.y) > self.self_protection_max_size.y or + (pos2.z - pos1.z) > self.self_protection_max_size.z then + return false, "Area is too big." + end + + -- Check number of areas the user has and make sure it not above the max + local count = 0 + for _, area in pairs(self.areas) do + if area.owner == name then + count = count + 1 + end + end + if count >= self.self_protection_max_areas then + return false, "You have reached the maximum amount of" + .." areas that you are allowed to protect." + end + + -- Check intersecting areas + local can, id = self:canInteractInArea(pos1, pos2, name) + if not can then + local area = self.areas[id] + return false, ("The area intersects with %s [%u] owned by %s.") + :format(area.name, id, area.owner) + end + + return true +end + +-- Given a id returns a string in the format: +-- "name [id]: owner (x1, y1, z1) (x2, y2, z2) -> children" +function areas:toString(id) + local area = self.areas[id] + local message = ("%s [%d]: %s %s %s"):format( + area.name, id, area.owner, + minetest.pos_to_string(area.pos1), + minetest.pos_to_string(area.pos2)) + + local children = areas:getChildren(id) + if #children > 0 then + message = message.." -> "..table.concat(children, ", ") + end + return message +end + +-- Re-order areas in table by their identifiers +function areas:sort() + local sa = {} + for k, area in pairs(self.areas) do + if not area.parent then + table.insert(sa, area) + local newid = #sa + for _, subarea in pairs(self.areas) do + if subarea.parent == k then + subarea.parent = newid + table.insert(sa, subarea) + end + end + end + end + self.areas = sa +end + +-- Checks if a player owns an area or a parent of it +function areas:isAreaOwner(id, name) + local cur = self.areas[id] + if cur and minetest.check_player_privs(name, self.adminPrivs) then + return true + end + while cur do + if cur.owner == name then + return true + elseif cur.parent then + cur = self.areas[cur.parent] + else + return false + end + end + return false +end + diff --git a/mods/areas/legacy.lua b/mods/areas/legacy.lua new file mode 100755 index 00000000..a67fbd44 --- /dev/null +++ b/mods/areas/legacy.lua @@ -0,0 +1,138 @@ +-- This file contains functions to convert from +-- the old areas format and other compatability code. + +minetest.register_chatcommand("legacy_load_areas", { + params = "", + description = "Loads, converts, and saves the areas from" + .." a legacy save file.", + privs = {areas=true, server=true}, + func = function(name, param) + minetest.chat_send_player(name, "Converting areas...") + local version = tonumber(param) + if version == 0 then + err = areas:node_ownership_load() + if err then + minetest.chat_send_player(name, "Error loading legacy file: "..err) + return + end + else + minetest.chat_send_player(name, "Invalid version number. (0 allowed)") + return + end + minetest.chat_send_player(name, "Legacy file loaded.") + + for k, area in pairs(areas.areas) do + -- New position format + area.pos1 = {x=area.x1, y=area.y1, z=area.z1} + area.pos2 = {x=area.x2, y=area.y2, z=area.z2} + + area.x1, area.y1, area.z1, + area.x2, area.y2, area.z2 = + nil, nil, nil, nil, nil, nil + + -- Area positions sorting + areas:sortPos(area.pos1, area.pos2) + + -- Add name + area.name = "unnamed" + + -- Remove ID + area.id = nil + end + minetest.chat_send_player(name, "Table format updated.") + + areas:save() + minetest.chat_send_player(name, "Converted areas saved. Done.") + end +}) + +function areas:node_ownership_load() + local filename = minetest.get_worldpath().."/owners.tbl" + tables, err = loadfile(filename) + if err then + return err + end + + tables = tables() + for idx = 1, #tables do + local tolinkv, tolinki = {}, {} + for i, v in pairs(tables[idx]) do + if type(v) == "table" and tables[v[1]] then + table.insert(tolinkv, {i, tables[v[1]]}) + end + if type(i) == "table" and tables[i[1]] then + table.insert(tolinki, {i, tables[i[1]]}) + end + end + -- link values, first due to possible changes of indices + for _, v in ipairs(tolinkv) do + tables[idx][v[1]] = v[2] + end + -- link indices + for _, v in ipairs(tolinki) do + tables[idx][v[2]], tables[idx][v[1]] = tables[idx][v[1]], nil + end + end + self.areas = tables[1] +end + +-- Returns the name of the first player that owns an area +function areas.getNodeOwnerName(pos) + for id, area in pairs(areas:getAreasAtPos(pos)) do + return area.owner + end + return false +end + +-- Checks if a node is owned by you +function areas.isNodeOwner(pos, name) + if minetest.check_player_privs(name, areas.adminPrivs) then + return true + end + for id, area in pairs(areas:getAreasAtPos(pos)) do + if name == area.owner then + return true + end + end + return false +end + +-- Checks if an area has an owner +function areas.hasOwner(pos) + for id, area in pairs(areas:getAreasAtPos(pos)) do + return true + end + return false +end + +IsPlayerNodeOwner = areas.isNodeOwner +GetNodeOwnerName = areas.getNodeOwnerName +HasOwner = areas.hasOwner + +-- This is entirely untested and may break in strange and new ways. +if areas.legacy_table then + owner_defs = setmetatable({}, { + __index = function(table, key) + local a = rawget(areas.areas, key) + if not a then return a end + local b = {} + for k, v in pairs(a) do b[k] = v end + b.x1, b.y1, b.z1 = b.pos1.x, b.pos1.y, b.pos1.z + b.x2, b.y1, b.z2 = b.pos2.x, b.pos2.y, b.pos2.z + b.pos1, b.pos2 = nil, nil + b.id = key + return b + end, + __newindex = function(table, key, value) + local a = value + a.pos1, a.pos2 = {x=a.x1, y=a.y1, z=a.z1}, + {x=a.x2, y=a.y2, z=a.z2} + a.x1, a.y1, a.z1, a.x2, a.y2, a.z2 = + nil, nil, nil, nil, nil, nil + a.name = a.name or "unnamed" + a.id = nil + return rawset(areas.areas, key, a) + end + }) +end + diff --git a/mods/areas/pos.lua b/mods/areas/pos.lua new file mode 100755 index 00000000..8d3e6fe0 --- /dev/null +++ b/mods/areas/pos.lua @@ -0,0 +1,255 @@ + +-- I could depend on WorldEdit for this, but you need to have the 'worldedit' +-- permission to use those commands and you don't have +-- /area_pos{1,2} [X Y Z|X,Y,Z]. +-- Since this is mostly copied from WorldEdit it is mostly +-- licensed under the AGPL. (select_area is a exception) + +areas.marker1 = {} +areas.marker2 = {} +areas.set_pos = {} +areas.pos1 = {} +areas.pos2 = {} + +minetest.register_chatcommand("select_area", { + params = "", + description = "Select a area by id.", + func = function(name, param) + local id = tonumber(param) + if not id then + return false, "Invalid usage, see /help select_area." + end + if not areas.areas[id] then + return false, "The area "..id.." does not exist." + end + + areas:setPos1(name, areas.areas[id].pos1) + areas:setPos2(name, areas.areas[id].pos2) + return true, "Area "..id.." selected." + end, +}) + +minetest.register_chatcommand("area_pos1", { + params = "[X Y Z|X,Y,Z]", + description = "Set area protection region position 1 to your" + .." location or the one specified", + privs = {}, + func = function(name, param) + local pos = nil + local found, _, x, y, z = param:find( + "^(-?%d+)[, ](-?%d+)[, ](-?%d+)$") + if found then + pos = {x=tonumber(x), y=tonumber(y), z=tonumber(z)} + elseif param == "" then + local player = minetest.get_player_by_name(name) + if player then + pos = player:getpos() + else + return false, "Unable to get position." + end + else + return false, "Invalid usage, see /help area_pos1." + end + pos = vector.round(pos) + areas:setPos1(name, pos) + return true, "Area position 1 set to " + ..minetest.pos_to_string(pos) + end, +}) + +minetest.register_chatcommand("area_pos2", { + params = "[X Y Z|X,Y,Z]", + description = "Set area protection region position 2 to your" + .." location or the one specified", + func = function(name, param) + local pos = nil + local found, _, x, y, z = param:find( + "^(-?%d+)[, ](-?%d+)[, ](-?%d+)$") + if found then + pos = {x=tonumber(x), y=tonumber(y), z=tonumber(z)} + elseif param == "" then + local player = minetest.get_player_by_name(name) + if player then + pos = player:getpos() + else + return false, "Unable to get position." + end + else + return false, "Invalid usage, see /help area_pos2." + end + pos = vector.round(pos) + areas:setPos2(name, pos) + return true, "Area position 2 set to " + ..minetest.pos_to_string(pos) + end, +}) + + +minetest.register_chatcommand("area_pos", { + params = "set/set1/set2/get", + description = "Set area protection region, position 1, or position 2" + .." by punching nodes, or display the region", + func = function(name, param) + if param == "set" then -- Set both area positions + areas.set_pos[name] = "pos1" + return true, "Select positions by punching two nodes." + elseif param == "set1" then -- Set area position 1 + areas.set_pos[name] = "pos1only" + return true, "Select position 1 by punching a node." + elseif param == "set2" then -- Set area position 2 + areas.set_pos[name] = "pos2" + return true, "Select position 2 by punching a node." + elseif param == "get" then -- Display current area positions + local pos1str, pos2str = "Position 1: ", "Position 2: " + if areas.pos1[name] then + pos1str = pos1str..minetest.pos_to_string(areas.pos1[name]) + else + pos1str = pos1str.."" + end + if areas.pos2[name] then + pos2str = pos2str..minetest.pos_to_string(areas.pos2[name]) + else + pos2str = pos2str.."" + end + return true, pos1str.."\n"..pos2str + else + return false, "Unknown subcommand: "..param + end + end, +}) + +function areas:getPos(playerName) + local pos1, pos2 = areas.pos1[playerName], areas.pos2[playerName] + if not (pos1 and pos2) then + return nil + end + -- Copy positions so that the area table doesn't contain multiple + -- references to the same position. + pos1, pos2 = vector.new(pos1), vector.new(pos2) + return areas:sortPos(pos1, pos2) +end + +function areas:setPos1(playerName, pos) + areas.pos1[playerName] = pos + areas.markPos1(playerName) +end + +function areas:setPos2(playerName, pos) + areas.pos2[playerName] = pos + areas.markPos2(playerName) +end + + +minetest.register_on_punchnode(function(pos, node, puncher) + local name = puncher:get_player_name() + -- Currently setting position + if name ~= "" and areas.set_pos[name] then + if areas.set_pos[name] == "pos1" then + areas.pos1[name] = pos + areas.markPos1(name) + areas.set_pos[name] = "pos2" + minetest.chat_send_player(name, + "Position 1 set to " + ..minetest.pos_to_string(pos)) + elseif areas.set_pos[name] == "pos1only" then + areas.pos1[name] = pos + areas.markPos1(name) + areas.set_pos[name] = nil + minetest.chat_send_player(name, + "Position 1 set to " + ..minetest.pos_to_string(pos)) + elseif areas.set_pos[name] == "pos2" then + areas.pos2[name] = pos + areas.markPos2(name) + areas.set_pos[name] = nil + minetest.chat_send_player(name, + "Position 2 set to " + ..minetest.pos_to_string(pos)) + end + end +end) + +-- Modifies positions `pos1` and `pos2` so that each component of `pos1` +-- is less than or equal to its corresponding component of `pos2`, +-- returning the two positions. +function areas:sortPos(pos1, pos2) + if pos1.x > pos2.x then + pos2.x, pos1.x = pos1.x, pos2.x + end + if pos1.y > pos2.y then + pos2.y, pos1.y = pos1.y, pos2.y + end + if pos1.z > pos2.z then + pos2.z, pos1.z = pos1.z, pos2.z + end + return pos1, pos2 +end + +-- Marks area position 1 +areas.markPos1 = function(name) + local pos = areas.pos1[name] + if areas.marker1[name] ~= nil then -- Marker already exists + areas.marker1[name]:remove() -- Remove marker + areas.marker1[name] = nil + end + if pos ~= nil then -- Add marker + areas.marker1[name] = minetest.add_entity(pos, "areas:pos1") + areas.marker1[name]:get_luaentity().active = true + end +end + +-- Marks area position 2 +areas.markPos2 = function(name) + local pos = areas.pos2[name] + if areas.marker2[name] ~= nil then -- Marker already exists + areas.marker2[name]:remove() -- Remove marker + areas.marker2[name] = nil + end + if pos ~= nil then -- Add marker + areas.marker2[name] = minetest.add_entity(pos, "areas:pos2") + areas.marker2[name]:get_luaentity().active = true + end +end + +minetest.register_entity("areas:pos1", { + initial_properties = { + visual = "cube", + visual_size = {x=1.1, y=1.1}, + textures = {"areas_pos1.png", "areas_pos1.png", + "areas_pos1.png", "areas_pos1.png", + "areas_pos1.png", "areas_pos1.png"}, + collisionbox = {-0.55, -0.55, -0.55, 0.55, 0.55, 0.55}, + }, + on_step = function(self, dtime) + if self.active == nil then + self.object:remove() + end + end, + on_punch = function(self, hitter) + self.object:remove() + local name = hitter:get_player_name() + areas.marker1[name] = nil + end, +}) + +minetest.register_entity("areas:pos2", { + initial_properties = { + visual = "cube", + visual_size = {x=1.1, y=1.1}, + textures = {"areas_pos2.png", "areas_pos2.png", + "areas_pos2.png", "areas_pos2.png", + "areas_pos2.png", "areas_pos2.png"}, + collisionbox = {-0.55, -0.55, -0.55, 0.55, 0.55, 0.55}, + }, + on_step = function(self, dtime) + if self.active == nil then + self.object:remove() + end + end, + on_punch = function(self, hitter) + self.object:remove() + local name = hitter:get_player_name() + areas.marker2[name] = nil + end, +}) + diff --git a/mods/areas/settings.lua b/mods/areas/settings.lua new file mode 100755 index 00000000..d126c834 --- /dev/null +++ b/mods/areas/settings.lua @@ -0,0 +1,37 @@ +local worldpath = minetest.get_worldpath() + +local function setting_getbool_default(setting, default) + local value = minetest.setting_getbool(setting) + if value == nil then + value = default + end + return value +end + +areas.filename = + minetest.setting_get("areas.filename") or worldpath.."/areas.dat" + +-- Allow players with a privilege create their own areas +-- within the max_size and number +areas.self_protection = + setting_getbool_default("areas.self_protection", false) +areas.self_protection_privilege = + minetest.setting_get("areas.self_protection_privilege") or "interact" +areas.self_protection_max_size = + minetest.setting_get_pos("areas.self_protection_max_size") or + {x=50, y=100, z=50} +areas.self_protection_max_areas = + tonumber(minetest.setting_get("areas.self_protection_max_areas")) or 3 + +-- Register compatability functions for node_ownership. +-- legacy_table (owner_defs) compatibility is untested +-- and can not be used if security_safe_mod_api is on. +areas.legacy_table = + setting_getbool_default("areas.legacy_table", false) + +-- Prevent players from punching nodes in a protected area. +-- Usefull for things like delayers, usualy annoying and +-- prevents usage of things like buttons. +areas.protect_punches = + setting_getbool_default("areas.protect_punches", false) + diff --git a/mods/areas/textures/areas_pos1.png b/mods/areas/textures/areas_pos1.png new file mode 100755 index 00000000..4c304aa8 Binary files /dev/null and b/mods/areas/textures/areas_pos1.png differ diff --git a/mods/areas/textures/areas_pos2.png b/mods/areas/textures/areas_pos2.png new file mode 100755 index 00000000..1502f165 Binary files /dev/null and b/mods/areas/textures/areas_pos2.png differ diff --git a/mods/arrow_signs/depends.txt b/mods/arrow_signs/depends.txt new file mode 100755 index 00000000..24a785d1 --- /dev/null +++ b/mods/arrow_signs/depends.txt @@ -0,0 +1,2 @@ +default +locks? \ No newline at end of file diff --git a/mods/arrow_signs/init.lua b/mods/arrow_signs/init.lua new file mode 100755 index 00000000..d14ded5d --- /dev/null +++ b/mods/arrow_signs/init.lua @@ -0,0 +1,215 @@ +--more_signs by addi +--Code and Textures are under the CC by-sa 3.0 licence +--see: http://creativecommons.org/licenses/by-sa/3.0/ + + + +arrow_signs={} + +arrow_signs.formspec = "field[text;Sign text:;${text}]"; + +arrow_signs_on_place = function(itemstack, placer, pointed_thing) + + local posabove = pointed_thing.above + local posunder = pointed_thing.under + local vector = placer:get_look_dir() + local place = true + + if posabove.y>posunder.y then + if(vector.z>0.5 and vector.z<=1) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 10}) + elseif (vector.x>0.5 and vector.x<=1) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 19}) + elseif(-0.5>vector.z and -1<=vector.z) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 4}) + elseif (-0.5>vector.x and -1<=vector.x) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 13}) + else + place = false + end + elseif posabove.y0.5 and vector.z<=1) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 8}) + elseif (vector.x>0.5 and vector.x<=1) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 17}) + elseif(-0.5>vector.z and -1<=vector.z) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 6}) + elseif (-0.5>vector.x and -1<=vector.x) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 15}) + else + place = false + end + elseif posabove.z>posunder.z then + if(vector.y>0.75 and vector.y<=1) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 22}) + elseif (vector.y>=-1 and vector.y<-0.75) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 2}) + elseif (vector.x>=0 and vector.x<=1) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 18}) + elseif (vector.x<0 and vector.x>=-1) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 14}) + else + place = false + end + elseif posabove.z0.75 and vector.y<=1) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 20}) + elseif (vector.y>=-1 and vector.y<-0.75) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 0}) + elseif (vector.x>=0 and vector.x<=1) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 16}) + elseif (vector.x<0 and vector.x>=-1) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 12}) + else + place = false + end + elseif posabove.x>posunder.x then + if(vector.y>0.75 and vector.y<=1) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 21}) + elseif (vector.y>=-1 and vector.y<-0.75) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 3}) + elseif (vector.z>=0 and vector.z<=1) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 11}) + elseif (vector.z<0 and vector.z>=-1) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 7}) + else + place = false + end + elseif posabove.x0.75 and vector.y<=1) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 23}) + elseif (vector.y>=-1 and vector.y<-0.75) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 1}) + elseif (vector.z>=0 and vector.z<=1) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 9}) + elseif (vector.z<0 and vector.z>=-1) then + minetest.add_node(posabove,{name = itemstack:get_name(), param2 = 5}) + else + place = false + end + else + place = false + end + + if not(place) then + minetest.rotate_node(itemstack, placer, pointed_thing) + else + itemstack:take_item() + end + + if not minetest.setting_getbool("creative_mode") then + return itemstack + end + +end + + function arrow_signs:savetext(pos, formname, fields, sender) + + if not minetest.get_player_privs(sender:get_player_name())["interact"] then + minetest.chat_send_player(sender:get_player_name(), "error: you don't have permission to edit the sign. you need the interact priv") + return + end + local meta = minetest.get_meta(pos) + fields.text = fields.text or "" + print((sender:get_player_name() or "").." wrote \""..fields.text.. + "\" to sign at "..minetest.pos_to_string(pos)) + meta:set_string("text", fields.text) + text = arrow_signs:create_lines(fields.text) + meta:set_string("infotext", '"'..text..'"') + i=0 + for wort in text:gfind("\n") do + i=i+1 + end + if i > 4 then + minetest.chat_send_player(sender:get_player_name(),"\tInformation: \nYou've written more than 5 lines. \n it may be that not all lines are displayed. \n Please remove the last entry") + end + return true + end + +function arrow_signs:create_lines(text) + text = text:gsub("/", "\"\n\"") + text = text:gsub("|", "\"\n\"") + return text +end + +minetest.override_item("default:sign_wall", { + groups = {choppy=2,dig_immediate=2,attached_node=1,sign=1}, +}) + +--Sign arrow +minetest.register_node("arrow_signs:wall", { + description = "Arrow signs", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + { 0.25, -0.25, 0.5, -0.25, 0.5, 0.47}, + { 0.1875, -0.3125, 0.5, -0.1875, -0.25, 0.47}, + { 0.125, -0.3125, 0.5, -0.125, -0.375, 0.47}, + { 0.0625, -0.375, 0.5, -0.0625, -0.437, 0.47} + } + }, + selection_box = { + type = "fixed", + fixed = { + { 0.25, -0.25, 0.5, -0.25, 0.5, 0.47}, + { 0.1875, -0.3125, 0.5, -0.1875, -0.25, 0.47}, + { 0.125, -0.3125, 0.5, -0.125, -0.375, 0.47}, + { 0.0625, -0.375, 0.5, -0.0625, -0.437, 0.47} + } + }, + tiles = {"arrow_sign_border_left.png","arrow_sign_border_right.png","arrow_sign_border_up.png","arrow_sign_border_down.png","arrow_sign.png","arrow_sign.png"}, + inventory_image = "arrow_sign.png", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + walkable = false, + groups = {choppy=2,dig_immediate=2,sign=1}, + sounds = default.node_sound_defaults(), + on_place = arrow_signs_on_place, + on_construct = function(pos) + --local n = minetest.get_node(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", arrow_signs.formspec) + meta:set_string("infotext", "\"\"") + end, + on_receive_fields = function(pos, formname, fields, sender) + arrow_signs:savetext(pos, formname, fields, sender) + end, +}) + +--Recipes +minetest.register_craft({ + type = 'shapeless', + output = 'arrow_signs:wall', + recipe = {'group:sign', 'default:stick'}, +}) +minetest.register_craft({ + output = 'default:sign_wall', + recipe = { + {'group:sign'}, + } +}) + +--Redefinition +minetest.register_abm({ + nodenames = {"arrow_signs:wall_right", "arrow_signs:wall_left", "arrow_signs:wall_up", "arrow_signs:wall_down", + "more_signs:wall_right","more_signs:wall_left","more_signs:wall_up" ,"more_signs:wall_down" + }, + interval = 1, + chance = 1, + action = function(pos, node) + local convert_facedir={ + ["arrow_signs:wall_right"] = {6,4,5,11,16,14}, + ["arrow_signs:wall_left"] = {8,10,9,7,12,18}, + ["arrow_signs:wall_up"] = {15,19,23,21,20,22}, + ["arrow_signs:wall_down"] = {17,13,1,3,0,2}, + -- For old mod + ["more_signs:wall_right"] = {6,4,5,11,16,14}, + ["more_signs:wall_left"] = {8,10,9,7,12,18}, + ["more_signs:wall_up"] = {15,19,23,21,20,22}, + ["more_signs:wall_down"] = {17,13,1,3,0,2}, + } + minetest.swap_node(pos, {name="arrow_signs:wall",param2=convert_facedir[node.name][node.param2+1]}) + end, +}) diff --git a/mods/arrow_signs/textures/arrow_sign.png b/mods/arrow_signs/textures/arrow_sign.png new file mode 100755 index 00000000..8d42d10a Binary files /dev/null and b/mods/arrow_signs/textures/arrow_sign.png differ diff --git a/mods/arrow_signs/textures/arrow_sign_border_down.png b/mods/arrow_signs/textures/arrow_sign_border_down.png new file mode 100755 index 00000000..1e457a8e Binary files /dev/null and b/mods/arrow_signs/textures/arrow_sign_border_down.png differ diff --git a/mods/arrow_signs/textures/arrow_sign_border_left.png b/mods/arrow_signs/textures/arrow_sign_border_left.png new file mode 100755 index 00000000..e6568e8f Binary files /dev/null and b/mods/arrow_signs/textures/arrow_sign_border_left.png differ diff --git a/mods/arrow_signs/textures/arrow_sign_border_right.png b/mods/arrow_signs/textures/arrow_sign_border_right.png new file mode 100755 index 00000000..87b64d02 Binary files /dev/null and b/mods/arrow_signs/textures/arrow_sign_border_right.png differ diff --git a/mods/arrow_signs/textures/arrow_sign_border_up.png b/mods/arrow_signs/textures/arrow_sign_border_up.png new file mode 100755 index 00000000..564efffd Binary files /dev/null and b/mods/arrow_signs/textures/arrow_sign_border_up.png differ diff --git a/mods/awards/.gitattributes b/mods/awards/.gitattributes new file mode 100644 index 00000000..412eeda7 --- /dev/null +++ b/mods/awards/.gitattributes @@ -0,0 +1,22 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp +*.sln merge=union +*.csproj merge=union +*.vbproj merge=union +*.fsproj merge=union +*.dbproj merge=union + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain diff --git a/mods/awards/.gitignore b/mods/awards/.gitignore new file mode 100644 index 00000000..b9d6bd92 --- /dev/null +++ b/mods/awards/.gitignore @@ -0,0 +1,215 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml +*.pubxml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + +############# +## Windows detritus +############# + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac crap +.DS_Store + + +############# +## Python +############# + +*.py[co] + +# Packages +*.egg +*.egg-info +dist/ +build/ +eggs/ +parts/ +var/ +sdist/ +develop-eggs/ +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg diff --git a/mods/awards/api.lua b/mods/awards/api.lua new file mode 100644 index 00000000..e201cb5d --- /dev/null +++ b/mods/awards/api.lua @@ -0,0 +1,492 @@ +-- AWARDS +-- by Rubenwardy +------------------------------------------------------- +-- this is api function file +------------------------------------------------------- + +-- The global award namespace +awards = { + show_mode = "hud" +} + +-- Table Save Load Functions +function awards.save() + local file = io.open(minetest.get_worldpath().."/awards.txt", "w") + if file then + file:write(minetest.serialize(awards.players)) + file:close() + end +end + +function awards.load() + local file = io.open(minetest.get_worldpath().."/awards.txt", "r") + if file then + local table = minetest.deserialize(file:read("*all")) + if type(table) == "table" then + return table + end + end + return {} +end + +awards.players = awards.load() +function awards.player(name) + return awards.players[name] +end + +-- A table of award definitions +awards.def = {} + +function awards.tbv(tb,value,default) + if not default then + default = {} + end + if not tb or type(tb) ~= "table" then + if not value then + value = "[NULL]" + end + minetest.log("error", "awards.tbv - table "..dump(value).." is null, or not a table! Dump: "..dump(tb)) + return + end + if not value then + error("[ERROR] awards.tbv was not used correctly!\n".. + "Value: '"..dump(value).."'\n".. + "Dump:"..dump(tb)) + return + end + if not tb[value] then + tb[value] = default + end +end + +function awards.assertPlayer(playern) + awards.tbv(awards.players, playern) + awards.tbv(awards.players[playern], "name", playern) + awards.tbv(awards.players[playern], "unlocked") + awards.tbv(awards.players[playern], "place") + awards.tbv(awards.players[playern], "count") + awards.tbv(awards.players[playern], "deaths", 0) + awards.tbv(awards.players[playern], "joins", 0) + awards.tbv(awards.players[playern], "chats", 0) +end + +-- Load files +dofile(minetest.get_modpath("awards").."/triggers.lua") + +-- API Functions +function awards._additional_triggers(name, data_table) + -- To add triggers in another mod, you should override this function + -- If the code can't handle the trigger passed, then call the last value of _additional_triggers + --[[ + local add_trig = awards._additional_triggers + awards._additional_triggers = function(name, data_table) + if data_table.trigger.type == "trigger" then + local tmp = { + award = name, + node = data_table.trigger.node, + target = data_table.trigger.target, + } + table.insert(awards.onTrigger,tmp) + elseif data_table.trigger.type == "trigger2" then + local tmp = { + award = name, + node = data_table.trigger.node, + target = data_table.trigger.target, + } + table.insert(awards.onTrigger2,tmp) + else + add_trig(name, data_table) + end + end + ]]-- +end +function awards.register_achievement(name,data_table) + -- see if a trigger is defined in the achievement definition + if data_table.trigger and data_table.trigger.type then + if data_table.trigger.type == "dig" then + local tmp = { + award = name, + node = data_table.trigger.node, + target = data_table.trigger.target, + } + table.insert(awards.onDig,tmp) + elseif data_table.trigger.type == "place" then + local tmp = { + award = name, + node = data_table.trigger.node, + target = data_table.trigger.target, + } + table.insert(awards.onPlace,tmp) + elseif data_table.trigger.type == "death" then + local tmp = { + award = name, + target = data_table.trigger.target, + } + table.insert(awards.onDeath,tmp) + elseif data_table.trigger.type == "chat" then + local tmp = { + award = name, + target = data_table.trigger.target, + } + table.insert(awards.onChat,tmp) + elseif data_table.trigger.type == "join" then + local tmp = { + award = name, + target = data_table.trigger.target, + } + table.insert(awards.onJoin,tmp) + else + awards._additional_triggers(name, data_table) + end + end + + -- check icon, background and custom_announce data + if data_table.icon == nil or data_table.icon == "" then + data_table.icon = "unknown.png" + end + if data_table.background == nil or data_table.background == "" then + data_table.background = "bg_default.png" + end + if data_table.custom_announce == nil or data_table.custom_announce == "" then + data_table.custom_announce = "Achievement Unlocked:" + end + + -- add the achievement to the definition table + data_table.name = name + awards.def[name] = data_table +end + +-- run a function when a node is dug +function awards.register_onDig(func) + table.insert(awards.onDig,func) +end + +-- run a function when a node is placed +function awards.register_onPlace(func) + table.insert(awards.onPlace,func) +end + +-- run a function when a player dies +function awards.register_onDeath(func) + table.insert(awards.onDeath,func) +end + +-- run a function when a player chats +function awards.register_onChat(func) + table.insert(awards.onChat,func) +end + +-- run a function when a player joins +function awards.register_onJoin(func) + table.insert(awards.onJoin,func) +end + +-- This function is called whenever a target condition is met. +-- It checks if a player already has that achievement, and if they do not, +-- it gives it to them +---------------------------------------------- +--awards.give_achievement(name,award) +-- name - the name of the player +-- award - the name of the award to give +function awards.give_achievement(name, award) + -- Access Player Data + local data = awards.players[name] + + -- Perform checks + if not data then + return + end + if not awards.def[award] then + return + end + awards.tbv(data,"unlocked") + + -- check to see if the player does not already have that achievement + if not data.unlocked[award] or data.unlocked[award]~=award then + -- Set award flag + data.unlocked[award]=award + + -- Give Prizes + if awards.def[award] and awards.def[award].prizes then + for i = 1, #awards.def[award].prizes do + local itemstack = ItemStack(awards.def[award].prizes[i]) + if itemstack:is_empty() or not itemstack:is_known() then + return + end + local receiverref = core.get_player_by_name(name) + if receiverref == nil then + return + end + receiverref:get_inventory():add_item("main", itemstack) + end + end + + -- Get data from definition tables + local title = award + local desc = "" + local background = "" + local icon = "" + local custom_announce = "" + if awards.def[award].title then + title = awards.def[award].title + end + if awards.def[award].custom_announce then + custom_announce = awards.def[award].custom_announce + end + if awards.def[award].background then + background = awards.def[award].background + end + if awards.def[award].icon then + icon = awards.def[award].icon + end + if awards.def[award] and awards.def[award].description then + desc = awards.def[award].description + end + + -- send the won award message to the player + if awards.show_mode == "formspec" then + -- use a formspec to send it + minetest.show_formspec(name, "achievements:unlocked", "size[4,2]".. + "image_button_exit[0,0;4,2;"..background..";close1; ]".. + "image_button_exit[0.2,0.8;1,1;"..icon..";close2; ]".. + "label[1.1,1;"..title.."]".. + "label[0.3,0.1;"..custom_announce.."]") + elseif awards.show_mode == "chat" then + -- use the chat console to send it + minetest.chat_send_player(name, "Achievement Unlocked: "..title) + if desc~="" then + minetest.chat_send_player(name, desc) + end + else + local player = minetest.get_player_by_name(name) + local one = player:hud_add({ + hud_elem_type = "image", + name = "award_bg", + scale = {x = 1, y = 1}, + text = background, + position = {x = 0.5, y = 0}, + offset = {x = 0, y = 138}, + alignment = {x = 0, y = -1} + }) + local two = player:hud_add({ + hud_elem_type = "text", + name = "award_au", + number = 0xFFFFFF, + scale = {x = 100, y = 20}, + text = "Achievement Unlocked!", + position = {x = 0.5, y = 0}, + offset = {x = 0, y = 40}, + alignment = {x = 0, y = -1} + }) + local three = player:hud_add({ + hud_elem_type = "text", + name = "award_title", + number = 0xFFFFFF, + scale = {x = 100, y = 20}, + text = title, + position = {x = 0.5, y = 0}, + offset = {x = 30, y = 100}, + alignment = {x = 0, y = -1} + }) + local four = player:hud_add({ + hud_elem_type = "image", + name = "award_icon", + scale = {x = 4, y = 4}, + text = icon, + position = {x = 0.5, y = 0}, + offset = {x = -81.5, y = 126}, + alignment = {x = 0, y = -1} + }) + minetest.after(3, function() + player:hud_remove(one) + player:hud_remove(two) + player:hud_remove(three) + player:hud_remove(four) + end) + end + + -- record this in the log + minetest.log("action", name.." has unlocked award "..title) + + -- save playertable + awards.save() + end +end + +-- List a player's achievements +minetest.register_chatcommand("list_awards", { + params = "obsolete", + description = "list_awards: obsolete. Use /awards", + func = function(name, param) + minetest.chat_send_player(name, "This command has been made obsolete. Use /awards instead.") + awards.showto(name, name, nil, false) + end +}) +minetest.register_chatcommand("awards", { + params = "", + description = "awards: list awards", + func = function(name, param) + awards.showto(name, name, nil, false) + end +}) +minetest.register_chatcommand("cawards", { + params = "", + description = "awards: list awards in chat", + func = function(name, param) + awards.showto(name, name, nil, true) + end +}) +minetest.register_chatcommand("awd", { + params = "award name", + description = "awd: Details of awd gotten", + func = function(name, param) + local def = awards.def[param] + if def then + minetest.chat_send_player(name,def.title..": "..def.description) + else + minetest.chat_send_player(name,"Award not found.") + end + end +}) +--[[minetest.register_chatcommand("gawd", { + params = "award name", + description = "gawd: give award to self", + func = function(name, param) + awards.give_achievement(name,param) + end +})]]-- + +function awards._order_awards(name) + local done = {} + local retval = {} + local player = awards.player(name) + if player and player.unlocked then + for _,got in pairs(player.unlocked) do + if awards.def[got] then + done[got] = true + table.insert(retval,{name=got,got=true}) + end + end + end + for _,def in pairs(awards.def) do + if not done[def.name] then + table.insert(retval,{name=def.name,got=false}) + end + end + return retval +end + +function awards.showto(name, to, sid, text) + if name == "" or name == nil then + name = to + end + if text then + if not awards.players[name] or not awards.players[name].unlocked then + minetest.chat_send_player(to, "You have not unlocked any awards") + return + end + minetest.chat_send_player(to, name.."'s awards:") + + for _, str in pairs(awards.players[name].unlocked) do + local def = awards.def[str] + if def then + if def.title then + if def.description then + minetest.chat_send_player(to, def.title..": "..def.description) + else + minetest.chat_send_player(to, def.title) + end + else + minetest.chat_send_player(to, str) + end + end + end + else + if sid == nil or sid < 1 then + sid = 1 + end + local formspec = "size[11,5]" + local listofawards = awards._order_awards(name) + + -- Sidebar + if sid then + local item = listofawards[sid+0] + local def = awards.def[item.name] + if def and def.secret and not item.got then + formspec = formspec .. "label[1,2.75;Secret Award]".. + "image[1,0;3,3;unknown.png]" + if def and def.description then + formspec = formspec .. "label[0,3.25;Unlock this award to find out what it is]" + end + else + local title = item.name + if def and def.title then + title = def.title + end + local status = "" + if item.got then + status = " (got)" + end + local icon = "" + if def and def.icon then + icon = def.icon + end + formspec = formspec .. "label[1,2.75;"..title..status.."]".. + "image[1,0;3,3;"..icon.."]" + if def and def.description then + formspec = formspec .. "label[0,3.25;"..def.description.."]" + end + end + end + + -- Create list box + formspec = formspec .. "textlist[4.75,0;6,5;awards;" + local first = true + for _,award in pairs(listofawards) do + local def = awards.def[award.name] + if def then + if not first then + formspec = formspec .. "," + end + first = false + + if def.secret and not award.got then + formspec = formspec .. "#ACACACSecret Award" + else + local title = award.name + if def and def.title then + title = def.title + end + if award.got then + formspec = formspec .. minetest.formspec_escape(title) + else + formspec = formspec .. "#ACACAC".. minetest.formspec_escape(title) + end + end + end + end + formspec = formspec .. ";"..sid.."]" + + -- Show formspec to user + minetest.show_formspec(to,"awards:awards",formspec) + end +end + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname~="awards:awards" then + return false + end + if fields.quit then + return true + end + local name = player:get_player_name() + if fields.awards then + local event = minetest.explode_textlist_event(fields.awards) + if event.type == "CHG" then + awards.showto(name,name,event.index,false) + end + end + + return true +end) + diff --git a/mods/awards/init.lua b/mods/awards/init.lua new file mode 100644 index 00000000..7b0a5bd8 --- /dev/null +++ b/mods/awards/init.lua @@ -0,0 +1,398 @@ +-- AWARDS +-- by Rubenwardy +------------------------------------------------------- +-- this is the init file for the award mod +------------------------------------------------------- + +local S +if (intllib) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) +else + S = function ( s ) return s end +end + +dofile(minetest.get_modpath("awards").."/api.lua") + +-- Light it up +awards.register_achievement("award_lightitup",{ + title = S("Light It Up"), + description = S("Place 100 torches."), + prizes = {"moreblocks:super_glow_glass 5"}, + icon = "novicebuilder.png", + trigger = { + type = "place", + node = "default:torch", + target = 100 + } +}) + +-- Light ALL the things! +awards.register_achievement("award_light_all_the_things",{ + title = S("Light ALL The Things!"), + description = S("Place 1,000 torches."), + prizes = {"moreblocks:super_glow_glass 25"}, + icon = "novicebuilder.png", + trigger = { + type = "place", + node = "default:torch", + target = 1000 + } +}) + + +-- Saint-Maclou +if minetest.get_modpath("moreblocks") then + awards.register_achievement("award_saint_maclou",{ + title = S("Saint-Maclou"), + description = S("Place 20 coal checkers."), + prizes = {"default:mese 2"}, + icon = "novicebuilder.png", + trigger = { + type = "place", + node = "moreblocks:coal_checker", + target = 20 + } + }) + + -- Castorama + awards.register_achievement("award_castorama",{ + title = S("Castorama"), + description = S("Place 20 iron checkers."), + prizes = {"default:mese 2"}, + icon = "novicebuilder.png", + trigger = { + type = "place", + node = "moreblocks:iron_checker", + target = 20 + } + }) + + -- Sam the Trapper + awards.register_achievement("award_sam_the_trapper",{ + title = S("Sam the Trapper"), + description = S("Place 2 trap stones."), + prizes = {"default:stonebrick 10"}, + icon = "novicebuilder.png", + trigger = { + type = "place", + node = "moreblocks:trap_stone", + target = 2 + } + }) +end + +-- Obsessed with Obsidian +awards.register_achievement("award_obsessed_with_obsidian",{ + title = S("Obsessed with Obsidian"), + description = S("Mine 50 obsidian."), + prizes = {"default:obsidian 10"}, + icon = "miniminer.png", + background = "bg_mining.png", + trigger = { + type = "dig", + node = "default:obsidian", + target = 50 + } +}) + +-- On the way +awards.register_achievement("award_on_the_way",{ + title = S("On The Way"), + description = S("Place 100 rails."), + prizes = {"default:rail 10"}, + icon = "novicebuilder.png", + trigger = { + type = "place", + node = "default:rail", + target = 100 + } +}) + +-- Lumberjack +awards.register_achievement("award_lumberjack",{ + title = S("Lumberjack"), + description = S("Dig 100 tree blocks."), + prizes = {"default:axe_bronze"}, + icon = "default_tree.png", + trigger = { + type = "dig", + node = "default:tree", + target = 100 + } +}) + +-- Semi-pro Lumberjack +awards.register_achievement("award_lumberjack_semipro",{ + title = S("Semi-pro Lumberjack"), + description = S("Dig 1,000 tree blocks."), + prizes = {"default:wood 99", "default:axe_mese"}, + icon = "default_tree.png", + trigger = { + type = "dig", + node = "default:tree", + target = 1000 + } +}) + +-- Professional Lumberjack +awards.register_achievement("award_lumberjack_professional",{ + title = S("Professional Lumberjack"), + description = S("Dig 10,000 tree blocks."), + prizes = {"default:stick 999"}, + icon = "default_tree.png", + trigger = { + type = "dig", + node = "default:tree", + target = 10000 + } +}) + +-- L33T Lumberjack +awards.register_achievement("award_lumberjack_leet",{ + title = S("L33T Lumberjack"), + description = S("Dig 100,000 tree blocks."), + prizes = {"default:axe_diamond"}, + icon = "default_tree.png", + trigger = { + type = "dig", + node = "default:tree", + target = 100000 + } +}) + +-- Junglebaby +awards.register_achievement("award_junglebaby",{ + title = S("Junglebaby"), + description = S("Dig 100 jungle tree blocks."), + prizes = {"default:wood 10"}, + icon = "default_jungletree.png", + trigger = { + type = "dig", + node = "default:jungletree", + target = 100 + } +}) + +-- Jungleman +awards.register_achievement("award_jungleman",{ + title = S("Jungleman"), + description = S("Dig 1,000 jungle tree blocks."), + prizes = {"default:wood 99"}, + icon = "default_jungletree.png", + trigger = { + type = "dig", + node = "default:jungletree", + target = 1000 + } +}) + +-- Found some Mese! +awards.register_achievement("award_mesefind",{ + title = S("First Mese Find"), + description = S("Find some Mese."), + icon = "default_mese_block.png", + background = "bg_mining.png", + trigger = { + type = "dig", + node = "default:stone_with_mese", + target = 1 + } +}) + +-- You're a copper +awards.register_achievement("award_youre_a_copper",{ + title = S("You're a copper"), + description = S("Dig 1,000 copper ores."), + prizes = {"default:copper_ingot 20"}, + icon = "miniminer.png", + background = "bg_mining.png", + trigger = { + type = "dig", + node = "default:stone_with_copper", + target = 1000 + } +}) + +-- You're winner +awards.register_achievement("award_youre_winner",{ + title = S("YOU'RE A WINNER!"), + description = S("Dig 1 mossy cobblestone."), + icon = "miniminer.png", + background = "bg_mining.png", + trigger = { + type = "dig", + node = "default:mossycobble", + target = 1 + }, + secret = true, +}) + +-- Found a Nyan cat! +awards.register_achievement("award_nyanfind",{ + title = S("OMG, Nyan Cat!"), + description = S("Find a nyan cat."), + icon = "default_nc_rb.png", + trigger = { + type = "dig", + node = "default:nyancat", + target = 1 + } +}) + +-- Mini Miner +awards.register_achievement("award_mine2",{ + title = S("Mini Miner"), + description = S("Dig 100 stone blocks."), + prizes = {"default:steel_ingot"}, + icon = "miniminer.png", + background = "bg_mining.png", + trigger = { + type = "dig", + node = "default:stone", + target = 100 + } +}) + +-- Hardened Miner +awards.register_achievement("award_mine3",{ + title = S("Hardened Miner"), + description = S("Dig 1,000 stone blocks"), + prizes = {"default:pick_mese"}, + icon = "miniminer.png", + background = "bg_mining.png", + trigger = { + type = "dig", + node = "default:stone", + target = 1000 + } +}) + +-- Master Miner +awards.register_achievement("award_mine4",{ + title = S("Master Miner"), + description = S("Dig 10,000 stone blocks."), + prizes = {"default:pick_diamond"}, + icon = "miniminer.png", + background = "bg_mining.png", + trigger = { + type = "dig", + node = "default:stone", + target = 10000 + } +}) + +-- Marchand de sable +awards.register_achievement("award_marchand_de_sable",{ + title = S("Marchand De Sable"), + description = S("Dig 1,000 sand."), + prizes = {"default:shovel_mese"}, + background = "bg_mining.png", + trigger = { + type = "dig", + node = "default:sand", + target = 1000 + } +}) + +-- Join +awards.register_achievement("award_join2",{ + title = S("Frequent Visitor"), + description = S("Connect to the server 50 times."), + prizes = {"default:sword_mese"}, + trigger = { + type = "join", + target = 50 + }, + secret = true +}) + +-- Dying Spree +awards.register_achievement("award_dying_spree",{ + title = S("Dying Spree"), + description = S("Die 5 times."), + prizes = {"maptools:superapple 2"}, + trigger = { + type = "death", + target = 5 + } +}) + +-- Bot-like +awards.register_achievement("award_bot_like",{ + title = S("Bot-like"), + description = S("Die 10 times."), + prizes = {"maptools:superapple 4"}, + trigger = { + type = "death", + target = 10 + } +}) + +-- You Suck! +awards.register_achievement("award_you_suck",{ + title = S("You Suck!"), + description = S("Die 100 times."), + prizes = {"3d_armor:boots_diamond"}, + trigger = { + type = "death", + target = 100 + }, + secret = true +}) + +-- Burned to death +awards.register_achievement("award_burn",{ + title = S("You're a witch!"), + description = S("Burn to death in a fire.") + --prizes = {"default:water_source"}, NE MARCHE PAS +}) +awards.register_onDeath(function(player,data) + local pos = player:getpos() + if pos and minetest.find_node_near(pos, 2, "fire:basic_flame") ~= nil then + return "award_burn" + end + return nil +end) + +-- Died in flowing lava +awards.register_achievement("award_in_the_flow",{ + title = S("In the Flow"), + description = S("Die in flowing lava.") + --prizes = {"default:obsidian"}, NE MARCHE PAS ICI +}) +awards.register_onDeath(function(player,data) + local pos = player:getpos() + if pos and minetest.find_node_near(pos, 2, "default:lava_flowing") ~= nil then + return "award_in_the_flow" + end + return nil +end) + +-- Die near diamond ore +awards.register_achievement("award_this_is_sad",{ + title = S("This is Sad"), + description = S("Die near diamond ore.") + --prizes = {"default:diamond 2"}, NE MARCHE PAS +}) +awards.register_onDeath(function(player,data) + local pos = player:getpos() + if pos and minetest.find_node_near(pos, 5, "default:stone_with_diamond") ~= nil then + return "award_this_is_sad" + end + return nil +end) + +-- Die near diamond ore +awards.register_achievement("award_the_stack",{ + title = S("The Stack"), + description = S("Die near bones.") +}) +awards.register_onDeath(function(player,data) + local pos = player:getpos() + if pos and minetest.find_node_near(pos, 5, "bones:bones") ~= nil then + return "award_the_stack" + end + return nil +end) + diff --git a/mods/awards/readme.md b/mods/awards/readme.md new file mode 100644 index 00000000..b77dac99 --- /dev/null +++ b/mods/awards/readme.md @@ -0,0 +1,55 @@ +Awards +------ + +by Andrew "Rubenwardy" Ward, GPL 3.0 or later. + +This mod adds achievements to Minetest. + +Majority of awards are back ported from Calinou's +old fork in Carbone, under same license. + + +Code Reference +-------------- + +The API +======= +* awards.register_achievement(name,data_table) + * name + * desciption + * sound [optional] + * image [optional] + * trigger [optional] [table] + * type - "dig", "place", "death", "chat" or "join" + * (for dig/place type) node - the nodes name + * (for all types) target - how many to dig / place + * secret [optional] - if true, then player needs to unlock to find out what it is. +* awards.give_achievement(name,award) + * -- gives an award to a player +* awards.register_onDig(func(player,data)) + * -- return award name or null +* awards.register_onPlace(func(player,data)) + * -- return award name or null +* awards.register_onDeath(func(player,data)) + * -- return award name or null +* awards.register_onChat(func(player,data)) + * -- return award name or null +* awards.register_onJoin(func(player,data)) + * -- return award name or null + + +Player Data +=========== + +A list of data referenced/hashed by the player's name. +* player name + * name [string] + * count [table] - dig counter + * modname [table] + * itemname [int] + * place [table] - place counter + * modname [table] + * itemname [int] + * deaths + * chats + * joins diff --git a/mods/awards/textures/bg_default.png b/mods/awards/textures/bg_default.png new file mode 100644 index 00000000..a6f57d32 Binary files /dev/null and b/mods/awards/textures/bg_default.png differ diff --git a/mods/awards/textures/bg_mining.png b/mods/awards/textures/bg_mining.png new file mode 100644 index 00000000..a6987794 Binary files /dev/null and b/mods/awards/textures/bg_mining.png differ diff --git a/mods/awards/textures/mese.png b/mods/awards/textures/mese.png new file mode 100644 index 00000000..3fc800ec Binary files /dev/null and b/mods/awards/textures/mese.png differ diff --git a/mods/awards/textures/miniminer.png b/mods/awards/textures/miniminer.png new file mode 100644 index 00000000..45c72384 Binary files /dev/null and b/mods/awards/textures/miniminer.png differ diff --git a/mods/awards/textures/novicebuilder.png b/mods/awards/textures/novicebuilder.png new file mode 100644 index 00000000..f24d843c Binary files /dev/null and b/mods/awards/textures/novicebuilder.png differ diff --git a/mods/awards/textures/template.png b/mods/awards/textures/template.png new file mode 100644 index 00000000..b2904548 Binary files /dev/null and b/mods/awards/textures/template.png differ diff --git a/mods/awards/textures/unknown.png b/mods/awards/textures/unknown.png new file mode 100644 index 00000000..b2904548 Binary files /dev/null and b/mods/awards/textures/unknown.png differ diff --git a/mods/awards/triggers.lua b/mods/awards/triggers.lua new file mode 100644 index 00000000..213d5c1d --- /dev/null +++ b/mods/awards/triggers.lua @@ -0,0 +1,229 @@ +-- AWARDS +-- by Rubenwardy +------------------------------------------------------- +-- this is the trigger handler file for the awards mod +------------------------------------------------------- + +-- Function and table holders for Triggers +awards.onDig = {} +awards.onPlace = {} +awards.onChat = {} +awards.onDeath = {} +awards.onJoin = {} + +-- Trigger Handles +minetest.register_on_dignode(function(pos, oldnode, digger) + if not digger or not pos or not oldnode then + return + end + local nodedug = string.split(oldnode.name, ":") + if #nodedug ~= 2 then + --minetest.log("error","Awards mod: "..oldnode.name.." is in wrong format!") + return + end + local mod = nodedug[1] + local item = nodedug[2] + local playern = digger:get_player_name() + + if (not playern or not nodedug or not mod or not item) then + return + end + awards.assertPlayer(playern) + awards.tbv(awards.players[playern].count, mod) + awards.tbv(awards.players[playern].count[mod], item, 0) + + -- Increment counter + awards.players[playern].count[mod][item]=awards.players[playern].count[mod][item] + 1 + + -- Run callbacks and triggers + local player=digger + local data=awards.players[playern] + for i=1,# awards.onDig do + local res = nil + if type(awards.onDig[i]) == "function" then + -- Run trigger callback + res = awards.onDig[i](player,data) + elseif type(awards.onDig[i]) == "table" then + -- Handle table trigger + if not awards.onDig[i].node or not awards.onDig[i].target or not awards.onDig[i].award then + -- table running failed! + print("[ERROR] awards - onDig trigger "..i.." is invalid!") + else + -- run the table + local tnodedug = string.split(awards.onDig[i].node, ":") + local tmod=tnodedug[1] + local titem=tnodedug[2] + if tmod==nil or titem==nil or not data.count[tmod] or not data.count[tmod][titem] then + -- table running failed! + elseif data.count[tmod][titem] > awards.onDig[i].target-1 then + res=awards.onDig[i].award + end + end + end + + if res then + awards.give_achievement(playern,res) + end + end +end) + +minetest.register_on_placenode(function(pos,node,digger) + if not digger or not pos or not node or not digger:get_player_name() or digger:get_player_name()=="" then + return + end + local nodedug = string.split(node.name, ":") + if #nodedug ~= 2 then + --minetest.log("error","Awards mod: "..node.name.." is in wrong format!") + return + end + local mod=nodedug[1] + local item=nodedug[2] + local playern = digger:get_player_name() + + -- Run checks + if (not playern or not nodedug or not mod or not item) then + return + end + awards.assertPlayer(playern) + awards.tbv(awards.players[playern].place, mod) + awards.tbv(awards.players[playern].place[mod], item, 0) + + -- Increment counter + awards.players[playern].place[mod][item] = awards.players[playern].place[mod][item] + 1 + + -- Run callbacks and triggers + local player = digger + local data = awards.players[playern] + for i=1,# awards.onPlace do + local res = nil + if type(awards.onPlace[i]) == "function" then + -- Run trigger callback + res = awards.onPlace[i](player,data) + elseif type(awards.onPlace[i]) == "table" then + -- Handle table trigger + if not awards.onPlace[i].node or not awards.onPlace[i].target or not awards.onPlace[i].award then + print("[ERROR] awards - onPlace trigger "..i.." is invalid!") + else + -- run the table + local tnodedug = string.split(awards.onPlace[i].node, ":") + local tmod = tnodedug[1] + local titem = tnodedug[2] + if tmod==nil or titem==nil or not data.place[tmod] or not data.place[tmod][titem] then + -- table running failed! + elseif data.place[tmod][titem] > awards.onPlace[i].target-1 then + res = awards.onPlace[i].award + end + end + end + + if res then + awards.give_achievement(playern,res) + end + end +end) + +minetest.register_on_dieplayer(function(player) + -- Run checks + local name = player:get_player_name() + if not player or not name or name=="" then + return + end + + -- Get player + awards.assertPlayer(name) + local data = awards.players[name] + + -- Increment counter + data.deaths = data.deaths + 1 + + -- Run callbacks and triggers + for _,trigger in pairs(awards.onDeath) do + local res = nil + if type(trigger) == "function" then + res = trigger(player,data) + elseif type(trigger) == "table" then + if trigger.target and trigger.award then + if data.deaths and data.deaths >= trigger.target then + res = trigger.award + end + end + end + if res ~= nil then + awards.give_achievement(name,res) + end + end +end) + +minetest.register_on_joinplayer(function(player) + -- Run checks + local name = player:get_player_name() + if not player or not name or name=="" then + return + end + + -- Get player + awards.assertPlayer(name) + local data = awards.players[name] + + -- Increment counter + data.joins = data.joins + 1 + + -- Run callbacks and triggers + for _,trigger in pairs(awards.onJoin) do + local res = nil + if type(trigger) == "function" then + res = trigger(player,data) + elseif type(trigger) == "table" then + if trigger.target and trigger.award then + if data.joins and data.joins >= trigger.target then + res = trigger.award + end + end + end + if res ~= nil then + awards.give_achievement(name,res) + end + end +end) + +minetest.register_on_chat_message(function(name, message) + -- Run checks + local idx = string.find(message,"/") + if not name or (idx ~= nil and idx <= 1) then + return + end + + -- Get player + awards.assertPlayer(name) + local data = awards.players[name] + local player = minetest.get_player_by_name(name) + + -- Increment counter + data.chats = data.chats + 1 + + -- Run callbacks and triggers + for _,trigger in pairs(awards.onChat) do + local res = nil + if type(trigger) == "function" then + res = trigger(player,data) + elseif type(trigger) == "table" then + if trigger.target and trigger.award then + if data.chats and data.chats >= trigger.target then + res = trigger.award + end + end + end + if res ~= nil then + awards.give_achievement(name,res) + end + end +end) + +minetest.register_on_newplayer(function(player) + local playern = player:get_player_name() + awards.assertPlayer(playern) +end) + +minetest.register_on_shutdown(function() + awards.save() +end) diff --git a/mods/bedrock/LICENSE.txt b/mods/bedrock/LICENSE.txt new file mode 100755 index 00000000..726257de --- /dev/null +++ b/mods/bedrock/LICENSE.txt @@ -0,0 +1,13 @@ ++---- zlib/libpng license ----+ + +Copyright (c) 2013-2014 Calinou and contributors + +This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source distribution. diff --git a/mods/bedrock/depends.txt b/mods/bedrock/depends.txt new file mode 100755 index 00000000..4ad96d51 --- /dev/null +++ b/mods/bedrock/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/bedrock/init.lua b/mods/bedrock/init.lua new file mode 100755 index 00000000..e4a5a189 --- /dev/null +++ b/mods/bedrock/init.lua @@ -0,0 +1,41 @@ +minetest.register_ore({ + ore_type = "scatter", + ore = "bedrock:bedrock", + wherein = "default:stone", + clust_scarcity = 1 * 1 * 1, + clust_num_ores = 5, + clust_size = 2, + height_min = -30912, -- Engine changes can modify this value. + height_max = -30656, -- This ensures the bottom of the world is not even loaded. +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "bedrock:deepstone", + wherein = "default:stone", + clust_scarcity = 1 * 1 * 1, + clust_num_ores = 5, + clust_size = 2, + height_min = -30656, + height_max = -30000, +}) + +minetest.register_node("bedrock:bedrock", { + description = "Bedrock", + tile_images = {"bedrock_bedrock.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = 1}, -- For Map Tools' admin pickaxe. + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("bedrock:deepstone", { + description = "Deepstone", + tile_images = {"bedrock_deepstone.png"}, + drop = "default:stone", -- Intended. + groups = {cracky = 1}, + sounds = default.node_sound_stone_defaults(), +}) + +if minetest.setting_getbool("log_mods") then + minetest.log("action", "Carbone: [bedrock] loaded.") +end diff --git a/mods/bedrock/textures/bedrock_bedrock.png b/mods/bedrock/textures/bedrock_bedrock.png new file mode 100755 index 00000000..09495f02 Binary files /dev/null and b/mods/bedrock/textures/bedrock_bedrock.png differ diff --git a/mods/bedrock/textures/bedrock_deepstone.png b/mods/bedrock/textures/bedrock_deepstone.png new file mode 100755 index 00000000..f2e1e3b2 Binary files /dev/null and b/mods/bedrock/textures/bedrock_deepstone.png differ diff --git a/mods/beds/Changelog.txt b/mods/beds/Changelog.txt new file mode 100755 index 00000000..be97d522 --- /dev/null +++ b/mods/beds/Changelog.txt @@ -0,0 +1,14 @@ +1.0.1 beta +---------- +- Add backwards compatibility with PilzAdam's beds mod +- Fix placement +- Fix small bugs +- Prevent possible crash + +1.1 +--- +- Add fancy bed model (based on jp's model) +- Add API to register beds +- Allow players always to detach from bed (by donat-b) +- If more than 50% of players want sleep they can skip the night +- Don't show sleep dialog in singleplayer diff --git a/mods/beds/README.txt b/mods/beds/README.txt new file mode 100755 index 00000000..eac46f0a --- /dev/null +++ b/mods/beds/README.txt @@ -0,0 +1,45 @@ +Minetest mod "Beds" +=================== +by BlockMen (c) 2014 + +Version: 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. If dying you will respawn there. + + + +You can craft two types of beds: + + +Simple shaped bed: + +wool wool wool +wood wood wood + +Fancy shaped bed: + +wool wool stick +wood wood wood + +Notice: You can use any color of wood or wool, mixing different is also possible. + + +License of source code, textures: WTFPL +--------------------------------------- +(c) Copyright BlockMen (2014) + + + +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/depends.txt b/mods/beds/depends.txt new file mode 100755 index 00000000..be420a35 --- /dev/null +++ b/mods/beds/depends.txt @@ -0,0 +1,2 @@ +default +wool \ No newline at end of file diff --git a/mods/beds/init.lua b/mods/beds/init.lua new file mode 100755 index 00000000..ef3f7655 --- /dev/null +++ b/mods/beds/init.lua @@ -0,0 +1,215 @@ +beds = {} +beds.player = {} +beds.pos = {} +beds.spawn = {} + +local is_sp = minetest.is_singleplayer() or false +local player_in_bed = 0 +local form = "size[8,15;true]".. + "bgcolor[#080808BB; true]".. + "button_exit[2,12;4,0.75;leave;Leave Bed]" + + +-- help functions + +local function get_look_yaw(pos) + local n = minetest.get_node(pos) + if n.param2 == 1 then + return 7.9, n.param2 + elseif n.param2 == 3 then + return 4.75, n.param2 + elseif n.param2 == 0 then + return 3.15, n.param2 + else + return 6.28, n.param2 + end +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 true +end + +local function lay_down(player, pos, bed_pos, state) + 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 + 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 = form .. + "label[2.7,11; Good morning.]" + else + form_n = form .. + "label[2.2,11;"..tostring(player_in_bed).." of "..tostring(ges).." players are in bed]" + if is_majority 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 stand up + if check_in_beds() then + minetest.after(2, function() + beds.skip_night() + if not is_sp then + update_formspecs(true) + end + beds.kick_players() + end) + end +end + + +-- callbacks + +minetest.register_on_joinplayer(function(player) + beds.read_spawns() +end) + +minetest.register_on_respawnplayer(function(player) + local name = player:get_player_name() + local pos = beds.spawn[name] or nil + if pos then + player:setpos(pos) + return true + end +end) + +minetest.register_on_leaveplayer(function(player) + local name = player:get_player_name() + lay_down(player, nil, nil, false) + beds.player[name] = nil + if check_in_beds() then + minetest.after(2, function() + beds.skip_night() + update_formspecs(true) + beds.kick_players() + 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 + beds.skip_night() + update_formspecs(true) + beds.kick_players() + end +end) + + +-- nodes and respawn function +dofile(minetest.get_modpath("beds").."/nodes.lua") +dofile(minetest.get_modpath("beds").."/spawns.lua") diff --git a/mods/beds/nodes.lua b/mods/beds/nodes.lua new file mode 100755 index 00000000..98a7d94d --- /dev/null +++ b/mods/beds/nodes.lua @@ -0,0 +1,195 @@ +-- help functions + +local function remove_top(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 = {x=pos.x+dir.x,y=pos.y,z=pos.z+dir.z} + 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 + +local function add_top(pos) + 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 = {x=pos.x+dir.x,y=pos.y,z=pos.z+dir.z} + local n2 = minetest.get_node_or_nil(p) + local def = minetest.registered_items[n2.name] or nil + if not n2 or 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 + + +-- register nodes +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", + 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) + return add_top(pos) + end, + on_destruct = function(pos) + remove_top(pos) + end, + on_rightclick = function(pos, node, clicker) + beds.on_rightclick(pos, clicker) + end, + }) + + minetest.register_node(name .. "_top", { + drawtype = "nodebox", + tiles = def.tiles.top, + paramtype = "light", + paramtype2 = "facedir", + 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, + }, + selection_box = { + type = "fixed", + fixed = {0, 0, 0, 0, 0, 0}, + }, + }) + + minetest.register_alias(name, name .. "_bottom") + + -- register recipe + minetest.register_craft({ + output = name, + recipe = def.recipe + }) +end + +-- fancy shaped +beds.register_bed("beds:fancy_bed", { + description = "Fancy Bed", + inventory_image = "beds_bed_fancy.png", + wield_image = "beds_bed_fancy.png", + tiles = { + bottom = { + "beds_bed_top1.png", + "default_wood.png", + "beds_bed_side1.png", + "beds_bed_side1.png^[transformFX", + "default_wood.png", + "beds_bed_foot.png", + }, + top = { + "beds_bed_top2.png", + "default_wood.png", + "beds_bed_side2.png", + "beds_bed_side2.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:wool", "group:wool", "group:stick"}, + {"group:wood", "group:wood", "group:wood"}, + }, +}) + +-- simple (default) +beds.register_bed("beds:bed", { + description = "Simple Bed", + inventory_image = "beds_bed.png", + wield_image = "beds_bed.png", + tiles = { + bottom = { + "beds_bed_top_bottom.png^[transformR90", + "default_wood.png", + "beds_bed_side_bottom_r.png", + "beds_bed_side_bottom_r.png^[transformfx", + "beds_transparent.png", + "beds_bed_side_bottom.png" + }, + top = { + "beds_bed_top_top.png^[transformR90", + "default_wood.png", + "beds_bed_side_top_r.png", + "beds_bed_side_top_r.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 = { + {"group:wool", "group:wool", "group:wool"}, + {"group:wood", "group:wood", "group:wood"} + }, + +}) + +-- aliases for PA's beds mod +minetest.register_alias("beds:bed_bottom_red", "beds:bed_bottom") +minetest.register_alias("beds:bed_bottom_orange", "beds:bed_bottom") +minetest.register_alias("beds:bed_bottom_yellow", "beds:bed_bottom") +minetest.register_alias("beds:bed_bottom_green", "beds:bed_bottom") +minetest.register_alias("beds:bed_bottom_blue", "beds:bed_bottom") +minetest.register_alias("beds:bed_bottom_violet", "beds:bed_bottom") +minetest.register_alias("beds:bed_bottom_black", "beds:bed_bottom") +minetest.register_alias("beds:bed_bottom_grey", "beds:bed_bottom") +minetest.register_alias("beds:bed_bottom_white", "beds:bed_bottom") + +minetest.register_alias("beds:bed_top_red", "beds:bed_top") +minetest.register_alias("beds:bed_top_orange", "beds:bed_top") +minetest.register_alias("beds:bed_top_yellow", "beds:bed_top") +minetest.register_alias("beds:bed_top_green", "beds:bed_top") +minetest.register_alias("beds:bed_top_blue", "beds:bed_top") +minetest.register_alias("beds:bed_top_violet", "beds:bed_top") +minetest.register_alias("beds:bed_top_black", "beds:bed_top") +minetest.register_alias("beds:bed_top_grey", "beds:bed_top") +minetest.register_alias("beds:bed_top_white", "beds:bed_top") diff --git a/mods/beds/spawns.lua b/mods/beds/spawns.lua new file mode 100755 index 00000000..63f55faf --- /dev/null +++ b/mods/beds/spawns.lua @@ -0,0 +1,66 @@ +local world_path = minetest.get_worldpath() +local org_file = world_path .. "/beds_spawns" +local file = world_path .. "/beds_spawns" +local bkwd = false +local writing = true + +-- 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 +writing = false + + +function beds.read_spawns() + while writing do + -- wait until spawns are safed + end + 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 + writing = true + 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) + writing = false +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 \ No newline at end of file diff --git a/mods/beds/textures/beds_bed.png b/mods/beds/textures/beds_bed.png new file mode 100755 index 00000000..5c0054c6 Binary files /dev/null and b/mods/beds/textures/beds_bed.png differ diff --git a/mods/beds/textures/beds_bed_fancy.png b/mods/beds/textures/beds_bed_fancy.png new file mode 100755 index 00000000..4f9e8a74 Binary files /dev/null and b/mods/beds/textures/beds_bed_fancy.png differ diff --git a/mods/beds/textures/beds_bed_foot.png b/mods/beds/textures/beds_bed_foot.png new file mode 100755 index 00000000..74d84c86 Binary files /dev/null and b/mods/beds/textures/beds_bed_foot.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..763f5e14 Binary files /dev/null and b/mods/beds/textures/beds_bed_head.png differ diff --git a/mods/beds/textures/beds_bed_side1.png b/mods/beds/textures/beds_bed_side1.png new file mode 100755 index 00000000..1ed8158e Binary files /dev/null and b/mods/beds/textures/beds_bed_side1.png differ diff --git a/mods/beds/textures/beds_bed_side2.png b/mods/beds/textures/beds_bed_side2.png new file mode 100755 index 00000000..9d1384d4 Binary files /dev/null and b/mods/beds/textures/beds_bed_side2.png differ diff --git a/mods/beds/textures/beds_bed_side_bottom.png b/mods/beds/textures/beds_bed_side_bottom.png new file mode 100755 index 00000000..99ff309f Binary files /dev/null and b/mods/beds/textures/beds_bed_side_bottom.png differ diff --git a/mods/beds/textures/beds_bed_side_bottom_r.png b/mods/beds/textures/beds_bed_side_bottom_r.png new file mode 100755 index 00000000..6f870e80 Binary files /dev/null and b/mods/beds/textures/beds_bed_side_bottom_r.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..b2807c5f 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.png b/mods/beds/textures/beds_bed_side_top_r.png new file mode 100755 index 00000000..429ad7db Binary files /dev/null and b/mods/beds/textures/beds_bed_side_top_r.png differ diff --git a/mods/beds/textures/beds_bed_top1.png b/mods/beds/textures/beds_bed_top1.png new file mode 100755 index 00000000..b6fcc2c5 Binary files /dev/null and b/mods/beds/textures/beds_bed_top1.png differ diff --git a/mods/beds/textures/beds_bed_top2.png b/mods/beds/textures/beds_bed_top2.png new file mode 100755 index 00000000..2fe5bf2b Binary files /dev/null and b/mods/beds/textures/beds_bed_top2.png differ diff --git a/mods/beds/textures/beds_bed_top_bottom.png b/mods/beds/textures/beds_bed_top_bottom.png new file mode 100755 index 00000000..9b78be63 Binary files /dev/null and b/mods/beds/textures/beds_bed_top_bottom.png differ diff --git a/mods/beds/textures/beds_bed_top_top.png b/mods/beds/textures/beds_bed_top_top.png new file mode 100755 index 00000000..e877c808 Binary files /dev/null and b/mods/beds/textures/beds_bed_top_top.png differ diff --git a/mods/beds/textures/beds_transparent.png b/mods/beds/textures/beds_transparent.png new file mode 100755 index 00000000..2dc0e3dc Binary files /dev/null and b/mods/beds/textures/beds_transparent.png differ diff --git a/mods/bone/README.txt b/mods/bone/README.txt new file mode 100755 index 00000000..85df5204 --- /dev/null +++ b/mods/bone/README.txt @@ -0,0 +1,30 @@ +Minetest mod "Bone" +======================= +version: 0.3 + +License of source code and textures: +------------------------------------ +Written 2013 by BlockMen + +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. + + +tree_generation based on PilzAdam's farming mod + + + + + +--USING the mod-- + +This mod "forces" dirt to drop Bones randomly with rarity = 50 (2%) + +The bones can be crafted to bonemeal, which lets grow grass and flowers (remind that flowers are only +in survival and build games are useable). + +Furthermore it lets trees grow instantly and supports PilzAdam's farming mod. The wheat, cotton and pumpkin need +a random number of bonemeal to get full grown. \ No newline at end of file diff --git a/mods/bone/depends.txt b/mods/bone/depends.txt new file mode 100755 index 00000000..4ad96d51 --- /dev/null +++ b/mods/bone/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/bone/init.lua b/mods/bone/init.lua new file mode 100755 index 00000000..f32da7a0 --- /dev/null +++ b/mods/bone/init.lua @@ -0,0 +1,250 @@ +minetest.register_node(":default:dirt", { + description = "Dirt", + tiles = {"default_dirt.png"}, + is_ground_content = true, + groups = {crumbly=3, soil=1}, + drop = { + max_items = 1, + items = { + { + items = {'bone:bone', 'default:dirt'}, + rarity = 50, + }, + { + items = {'default:dirt'}, + } + } + }, + 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}, + drop = { + max_items = 1, + items = { + { + items = {'bone:bone', 'default:dirt'}, + rarity = 50, + }, + { + items = {'default:dirt'}, + } + } + }, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.4}, + }), +}) + + +minetest.register_craftitem("bone:bone", { + description = "Bone", + inventory_image = "bone_bone.png", +}) + + +minetest.register_craft({ + output = 'bone:bonemeal 5', + recipe = {{'bone:bone'}} +}) + +local n +local n2 +local pos + +function apple_leave() + if math.random(0, 10) == 3 then + return {name = "default:apple"} + else + return {name = "default:leaves"} + end +end + +function air_leave() + if math.random(0, 50) == 3 then + return {name = "air"} + else + return {name = "default:leaves"} + end +end + +function generate_tree(pos, trunk, leaves) + pos.y = pos.y-1 + local nodename = minetest.env:get_node(pos).name + + pos.y = pos.y+1 + if not minetest.env:get_node_light(pos) then + return + end + + node = {name = ""} + for dy=1,4 do + pos.y = pos.y+dy + if minetest.env:get_node(pos).name ~= "air" then + return + end + pos.y = pos.y-dy + end + node = {name = "default:tree"} + for dy=0,4 do + pos.y = pos.y+dy + minetest.env:set_node(pos, node) + pos.y = pos.y-dy + end + + node = {name = "default:leaves"} + pos.y = pos.y+3 + local rarity = 0 + if math.random(0, 10) == 3 then + rarity = 1 + end + for dx=-2,2 do + for dz=-2,2 do + for dy=0,3 do + pos.x = pos.x+dx + pos.y = pos.y+dy + pos.z = pos.z+dz + + if dx == 0 and dz == 0 and dy==3 then + if minetest.env:get_node(pos).name == "air" and math.random(1, 5) <= 4 then + minetest.env:set_node(pos, node) + if rarity == 1 then + minetest.env:set_node(pos, apple_leave()) + else + minetest.env:set_node(pos, air_leave()) + end + end + elseif dx == 0 and dz == 0 and dy==4 then + if minetest.env:get_node(pos).name == "air" and math.random(1, 5) <= 4 then + minetest.env:set_node(pos, node) + if rarity == 1 then + minetest.env:set_node(pos, apple_leave()) + else + minetest.env:set_node(pos, air_leave()) + end + end + elseif math.abs(dx) ~= 2 and math.abs(dz) ~= 2 then + if minetest.env:get_node(pos).name == "air" then + minetest.env:set_node(pos, node) + if rarity == 1 then + minetest.env:set_node(pos, apple_leave()) + else + minetest.env:set_node(pos, air_leave()) + end + end + else + if math.abs(dx) ~= 2 or math.abs(dz) ~= 2 then + if minetest.env:get_node(pos).name == "air" and math.random(1, 5) <= 4 then + minetest.env:set_node(pos, node) + if rarity == 1 then + minetest.env:set_node(pos, apple_leave()) + else + minetest.env:set_node(pos, air_leave()) + end + end + end + end + pos.x = pos.x-dx + pos.y = pos.y-dy + pos.z = pos.z-dz + end + end + end +end + +local plant_tab = {} +local rnd_max = 5 +minetest.after(0.5, function() + plant_tab[0] = "air" + plant_tab[1] = "default:grass_1" + plant_tab[2] = "default:grass_2" + plant_tab[3] = "default:grass_3" + plant_tab[4] = "default:grass_4" + plant_tab[5] = "default:grass_5" + +if minetest.get_modpath("flowers") ~= nil then + rnd_max = 11 + plant_tab[6] = "flowers:dandelion_white" + plant_tab[7] = "flowers:dandelion_yellow" + plant_tab[8] = "flowers:geranium" + plant_tab[9] = "flowers:rose" + plant_tab[10] = "flowers:tulip" + plant_tab[11] = "flowers:viola" +end + +end) + +local function duengen(pointed_thing) +pos = pointed_thing.under +n = minetest.env:get_node(pos) +if n.name == "" then return end +local stage = "" +if n.name == "default:sapling" then + minetest.env:set_node(pos, {name="air"}) + generate_tree(pos, "default:tree", "default:leaves") +elseif string.find(n.name, "farming:wheat_") ~= nil then + stage = string.sub(n.name, 15) + if stage == "3" then + minetest.env:set_node(pos, {name="farming:wheat"}) + elseif math.random(1,5) < 3 then + minetest.env:set_node(pos, {name="farming:wheat"}) + else + minetest.env:set_node(pos, {name="farming:wheat_"..math.random(2,3)}) + end +elseif string.find(n.name, "farming:cotton_") ~= nil then + stage = tonumber(string.sub(n.name, 16)) + if stage == 1 then + minetest.env:set_node(pos, {name="farming:cotton_"..math.random(stage,2)}) + else + minetest.env:set_node(pos, {name="farming:cotton"}) + end +elseif string.find(n.name, "farming:pumpkin_") ~= nil then + stage = tonumber(string.sub(n.name, 17)) + if stage == 1 then + minetest.env:set_node(pos, {name="farming:pumpkin_"..math.random(stage,2)}) + else + minetest.env:set_node(pos, {name="farming:pumpkin"}) + end + +elseif n.name == "default:dirt_with_grass" then + for i = -2, 3, 1 do + for j = -3, 2, 1 do + pos = pointed_thing.above + pos = {x=pos.x+i, y=pos.y, z=pos.z+j} + n = minetest.env:get_node(pos) + n2 = minetest.env:get_node({x=pos.x, y=pos.y-1, z=pos.z}) + + if n.name ~= "" and n.name == "air" and n2.name == "default:dirt_with_grass" then + if math.random(0,5) > 3 then + minetest.env:set_node(pos, {name=plant_tab[math.random(0, rnd_max)]}) + else + minetest.env:set_node(pos, {name=plant_tab[math.random(0, 5)]}) + end + + + end + end + end +end +end + + +minetest.register_craftitem("bone:bonemeal", { + description = "Bone Meal", + inventory_image = "bone_bonemeal.png", + liquids_pointable = false, + stack_max = 99, + on_use = function(itemstack, user, pointed_thing) + if pointed_thing.type == "node" then + duengen(pointed_thing) + itemstack:take_item() + return itemstack + end + end, + +}) diff --git a/mods/bone/textures/bone_bone.png b/mods/bone/textures/bone_bone.png new file mode 100755 index 00000000..651ee214 Binary files /dev/null and b/mods/bone/textures/bone_bone.png differ diff --git a/mods/bone/textures/bone_bonemeal.png b/mods/bone/textures/bone_bonemeal.png new file mode 100755 index 00000000..508e32fb Binary files /dev/null and b/mods/bone/textures/bone_bonemeal.png differ diff --git a/mods/builtin_item/README.txt b/mods/builtin_item/README.txt new file mode 100755 index 00000000..564376db --- /dev/null +++ b/mods/builtin_item/README.txt @@ -0,0 +1,38 @@ +=== BUILTIN_ITEM MOD for MINETEST-C55 === +by PilzAdam + +Features: +This mod adds some new features to the builtin items: +- The items are pushed by flowing water +- The items are destroyed by lava +- The items are removed after 300 seconds or the time that is specified by + remove_items in minetest.conf (0 disables it) + +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 + +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/builtin_item/init.lua b/mods/builtin_item/init.lua new file mode 100755 index 00000000..cd58665f --- /dev/null +++ b/mods/builtin_item/init.lua @@ -0,0 +1,200 @@ +minetest.register_entity(":__builtin:item", { + initial_properties = { + hp_max = 1, + physical = true, + collisionbox = {-0.175, -0.175, -0.175, 0.175, 0.175, 0.175}, + collide_with_objects = false, + visual = "sprite", + visual_size = {x=0.5, y=0.5}, + textures = {""}, + spritediv = {x=1, y=1}, + initial_sprite_basepos = {x=0, y=0}, + is_visible = false, + timer = 0, + }, + + itemstring = "", + physical_state = true, + + set_item = function(self, itemstring) + self.itemstring = itemstring + local stack = ItemStack(itemstring) + local itemtable = stack:to_table() + local itemname = nil + if itemtable then + itemname = stack:to_table().name + end + local item_texture = nil + local item_type = "" + if minetest.registered_items[itemname] then + item_texture = minetest.registered_items[itemname].inventory_image + item_type = minetest.registered_items[itemname].type + end + prop = { + is_visible = true, + visual = "sprite", + textures = {"unknown_item.png"} + } + if item_texture and item_texture ~= "" then + prop.visual = "wielditem" + prop.textures = {itemname} + prop.visual_size = {x=0.25, y=0.25} + else + prop.visual = "wielditem" + prop.textures = {itemname} + prop.visual_size = {x=0.25, y=0.25} + prop.automatic_rotate = math.pi * 0.5 + end + self.object:set_properties(prop) + end, + + get_staticdata = function(self) + --return self.itemstring + return minetest.serialize({ + itemstring = self.itemstring, + always_collect = self.always_collect, + timer = self.timer, + }) + end, + + on_activate = function(self, staticdata, dtime_s) + if string.sub(staticdata, 1, string.len("return")) == "return" then + local data = minetest.deserialize(staticdata) + if data and type(data) == "table" then + self.itemstring = data.itemstring + self.always_collect = data.always_collect + self.timer = data.timer + if not self.timer then + self.timer = 0 + end + self.timer = self.timer+dtime_s + end + else + self.itemstring = staticdata + end + self.object:set_armor_groups({immortal=1}) + self.object:setvelocity({x=0, y=2, z=0}) + self.object:setacceleration({x=0, y=-10, z=0}) + self:set_item(self.itemstring) + end, + + on_step = function(self, dtime) + local time = tonumber(minetest.setting_get("remove_items")) + if not time then + time = 600 + end + if not self.timer then + self.timer = 0 + end + self.timer = self.timer + dtime + if time ~= 0 and (self.timer > time) then + self.object:remove() + end + + local p = self.object:getpos() + + local name = minetest.get_node(p).name + if minetest.registered_nodes[name].damage_per_second > 0 or name == "maptools:igniter" then + minetest.sound_play("builtin_item_lava", {pos = self.object:getpos(), gain = 0.5}) + self.object:remove() + return + end + + --[[ if name == "default:water_source" then + self.object:setacceleration({x = 0, y = 4, z = 0}) + else + self.object:setacceleration({x = 0, y = -10, z = 0}) + end + --]] + + if minetest.registered_nodes[name].liquidtype == "flowing" then + get_flowing_dir = function(self) + local pos = self.object:getpos() + local param2 = minetest.get_node(pos).param2 + for i,d in ipairs({-1, 1, -1, 1}) do + if i<3 then + pos.x = pos.x+d + else + pos.z = pos.z+d + end + + local name = minetest.get_node(pos).name + local par2 = minetest.get_node(pos).param2 + if name == "default:water_flowing" and par2 < param2 then + return pos + end + + if i<3 then + pos.x = pos.x-d + else + pos.z = pos.z-d + end + end + end + + local vec = get_flowing_dir(self) + if vec then + local v = self.object:getvelocity() + if vec and vec.x-p.x > 0 then + self.object:setacceleration({x = 0, y = 0, z = 0}) + self.object:setvelocity({x = 1, y = -0.22, z = 0}) + elseif vec and vec.x-p.x < 0 then + self.object:setacceleration({x = 0, y = 0, z = 0}) + self.object:setvelocity({x = -1, y = -0.22, z = 0}) + elseif vec and vec.z-p.z > 0 then + self.object:setacceleration({x = 0, y = 0, z = 0}) + self.object:setvelocity({x = 0, y = -0.22, z = 1}) + elseif vec and vec.z-p.z < 0 then + self.object:setacceleration({x = 0, y = 0, z = 0}) + self.object:setvelocity({x = 0, y = -0.22, z = -1}) + end + + self.object:setacceleration({x = 0, y = -10, z = 0}) + self.physical_state = true + self.object:set_properties({ + physical = true + }) + return + end + end + + p.y = p.y - 0.3 + local nn = minetest.get_node(p).name + -- If node is not registered or node is walkably solid. + if not minetest.registered_nodes[nn] or minetest.registered_nodes[nn].walkable then + if self.physical_state then + self.object:setvelocity({x=0,y=0,z=0}) + self.object:setacceleration({x=0, y=0, z=0}) + self.physical_state = false + self.object:set_properties({ + physical = false + }) + end + else + if not self.physical_state then + self.object:setvelocity({x=0,y=0,z=0}) + self.object:setacceleration({x=0, y=-10, z=0}) + self.physical_state = true + self.object:set_properties({ + physical = true + }) + end + end + end, + --[[ This causes a duplication glitch if a player walks upon an item and clicks on it at the same time. + on_punch = function(self, hitter) + if self.itemstring ~= "" then + local left = hitter:get_inventory():add_item("main", self.itemstring) + if not left:is_empty() then + self.itemstring = left:to_string() + return + end + end + self.object:remove() + end, + --]] +}) + +if minetest.setting_get("log_mods") then + minetest.log("action", "[builtin_item] loaded.") +end diff --git a/mods/builtin_item/sounds/builtin_item_lava.ogg b/mods/builtin_item/sounds/builtin_item_lava.ogg new file mode 100755 index 00000000..5c293fe9 Binary files /dev/null and b/mods/builtin_item/sounds/builtin_item_lava.ogg differ diff --git a/mods/carts/README.txt b/mods/carts/README.txt new file mode 100644 index 00000000..61efae61 --- /dev/null +++ b/mods/carts/README.txt @@ -0,0 +1,36 @@ +Minetest 0.4 mod: carts +======================= +by PilzAdam +This version is modified by Kilarin (Donald Hines), all changes CC-0 +modifications include: + New Controls:LEFT or RIGHT to switch track at junction + DOWN for hand break + JUMP lock the users view to the view of the cart + SNEAK unlock the users view from the cart + Touring Rails: Try to maintain a speed of 4.5 + Chat notification of controls when cart is placed + Track rail count in debug.txt + punch by driver patch from spillz + get_voxel when hit ignore patch by minermoder27 + +License of source code: +----------------------- +WTFPL + +License of media (textures, sounds and models): +----------------------------------------------- +CC-0 + +Authors of media files: +----------------------- +kddekadenz: + cart_bottom.png + cart_side.png + cart_top.png + +Zeg9: + cart.x + cart.png + +rarkenin: + cart_rail_*.png diff --git a/mods/carts/depends.txt b/mods/carts/depends.txt new file mode 100644 index 00000000..4ad96d51 --- /dev/null +++ b/mods/carts/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/carts/functions.lua b/mods/carts/functions.lua new file mode 100644 index 00000000..f45ace01 --- /dev/null +++ b/mods/carts/functions.lua @@ -0,0 +1,89 @@ + +-- +-- Helper functions +-- + +cart_func = {} + +function cart_func:get_sign(z) + if z == 0 then + return 0 + else + return z/math.abs(z) + end +end + +-- Returns the velocity as a unit vector +-- The smaller part of the vector will be turned to 0 +function cart_func:velocity_to_dir(v) + if math.abs(v.x) > math.abs(v.z) then + return {x=cart_func:get_sign(v.x), y=cart_func:get_sign(v.y), z=0} + else + return {x=0, y=cart_func:get_sign(v.y), z=cart_func:get_sign(v.z)} + end +end + +function cart_func:is_rail(p) + local nn = minetest.get_node(p).name + --print("*!* is_rail p x=",p.x," y=",p.y," z=",p.z," nn=",nn," group rail=", minetest.get_item_group(nn, "rail")) + if nn == "ignore" then + nn=cart_func:get_content_voxel(p) + print("carts: is_rail hit ignore, trying again with get_content: now nn=",nn," group rail=", minetest.get_item_group(nn, "rail"),"p x=",p.x," y=",p.y," z=",p.z) + end + return minetest.get_item_group(nn, "rail") ~= 0 +end + +function cart_func:check_rail_in_direction(pos, dir) + local p = cart_func.v3:add(pos, dir) + if cart_func:is_rail(p) then + return true + else + return false + end +end -- cart:check_rail_in_direction + + +function cart_func:is_int(z) + z = math.abs(z) + return math.abs(math.floor(z+0.5)-z) <= 0.1 +end + +cart_func.v3 = {} + +function cart_func.v3:add(v1, v2) + return {x=v1.x+v2.x, y=v1.y+v2.y, z=v1.z+v2.z} +end + +function cart_func.v3:copy(v) + return {x=v.x, y=v.y, z=v.z} +end + +function cart_func.v3:round(v) + return { + x = math.floor(v.x+0.5), + y = math.floor(v.y+0.5), + z = math.floor(v.z+0.5), + } +end + +function cart_func.v3:equal(v1, v2) + return v1.x == v2.x and v1.y == v2.y and v1.z == v2.z +end + + +function cart_func:get_content_voxel(pos) + local t1 = os.clock() + local vm = minetest.get_voxel_manip() + local pos1, pos2 = vm:read_from_map(vector.add(pos, {x=-1,y=-1,z=-1}),vector.add(pos, {x=1,y=1,z=1})) + local a = VoxelArea:new{ + MinEdge=pos1, + MaxEdge=pos2, + } + + local data = vm:get_data() + local vi = a:indexp(pos) + local railid = data[vi] + local real_name = minetest.get_name_from_content_id(railid) + print(string.format("voxel-ing rail: elapsed time: %.2fms", (os.clock() - t1) * 1000)) + return real_name +end diff --git a/mods/carts/init.lua b/mods/carts/init.lua new file mode 100644 index 00000000..15b44b80 --- /dev/null +++ b/mods/carts/init.lua @@ -0,0 +1,862 @@ +dofile(minetest.get_modpath("carts").."/functions.lua") + +local cart = { + physical = true, -- Set to false to not make carts collide with other entities such as carts or the player. + collisionbox = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + visual = "mesh", + mesh = "cart.x", + visual_size = {x=1, y=1}, + textures = {"cart.png"}, -- Set to "invisible.png" to make the cart invisible, which is sometimes useful for videos and custom maps. + driver = nil, + velocity = {x=0, y=0, z=0}, + old_pos = nil, + old_velocity = nil, + pre_stop_dir = nil, + MAX_V = 9.6, -- Limit of the velocity (speed). + TARGET_TOUR_V = 6, -- Target touring velocity, currently unused. + railcount = 0, + ignorekeypos = nil, + lockyaw = false, -- Set to true to lock camera by default. If set to false, player has to press the "jump" key to lock camera. + yawtarget = nil, + YAW_STEP = math.pi/64 -- Larger YAW_STEP makes for slower camera turning. +} + +function cart:on_rightclick(clicker) + if not clicker or not clicker:is_player() then + return + end + if self.driver and clicker == self.driver then + self.driver = nil + clicker:set_detach() + elseif not self.driver then + self.driver = clicker + clicker:set_attach(self.object, "", {x=0,y=5,z=0}, {x=0,y=0,z=0}) + end +end + +function cart:on_activate(staticdata, dtime_s) + self.object:set_armor_groups({immortal=1}) + if staticdata then + local tmp = minetest.deserialize(staticdata) + if tmp then + self.velocity = tmp.velocity + end + if tmp and tmp.pre_stop_dir then + self.pre_stop_dir = tmp.pre_stop_dir + end + end + self.old_pos = self.object:getpos() + self.old_velocity = self.velocity +end + +function cart:get_staticdata() + return minetest.serialize({ + velocity = self.velocity, + pre_stop_dir = self.pre_stop_dir, + }) +end + +-- Remove the cart if holding a tool or accelerate it +function cart:on_punch(puncher, time_from_last_punch, tool_capabilities, direction) + if not puncher or not puncher:is_player() then + return + end + + if puncher:get_player_control().sneak then + minetest.log("action", "carts:cart removed at " .. pos_to_string(vector.round(self.object:getpos())) .. ", " .. self.railcount .. " rails travelled.") + self.object:remove() + local inv = puncher:get_inventory() + if minetest.setting_getbool("creative_mode") then + if not inv:contains_item("main", "carts:cart") then + inv:add_item("main", "carts:cart") + end + else + inv:add_item("main", "carts:cart") + end + return + end + + if puncher == self.driver and (math.abs(self.velocity.x)>1 or math.abs(self.velocity.z)>1) then + return + end + + local d = cart_func:velocity_to_dir(direction) + if d.x==0 and d.z==0 then + local fd = minetest.dir_to_facedir(puncher:get_look_dir()) + if fd == 0 then + d.x = 1 + elseif fd == 1 then + d.z = -1 + elseif fd == 2 then + d.x = -1 + elseif fd == 3 then + d.z = 1 + end + end + + local s = self.velocity + if time_from_last_punch > tool_capabilities.full_punch_interval then + time_from_last_punch = tool_capabilities.full_punch_interval + end + local f = 4*(time_from_last_punch/tool_capabilities.full_punch_interval) + local v = {x=s.x+d.x*f, y=s.y, z=s.z+d.z*f} + if math.abs(v.x) < 6 and math.abs(v.z) < 6 then + self.velocity = v + else + if math.abs(self.velocity.x) < 6 and math.abs(v.x) >= 6 then + self.velocity.x = 6*cart_func:get_sign(self.velocity.x) + end + if math.abs(self.velocity.z) < 6 and math.abs(v.z) >= 6 then + self.velocity.z = 6*cart_func:get_sign(self.velocity.z) + end + end +end + +-- Returns the direction as a unit vector +function cart:get_rail_direction(pos, dir) + --minetest.log("action", "get_rail_direction top pos="..pos_to_string(pos).." dir="..pos_to_string(dir)) + local fwd=cart_func.v3:copy(dir) + fwd.y=0 + local up=cart_func.v3:copy(dir) + up.y=1 + local down=cart_func.v3:copy(dir) + down.y=-1 + -- figure out left and right + local left={x=0,y=0,z=0} + local right={x=0,y=0,z=0} + if dir.z ~= 0 and dir.x == 0 then + left.x=-dir.z --left is opposite sign from z + right.x=dir.z --right is same sign as z + elseif dir.x ~= 0 and dir.z == 0 then + left.z=dir.x --left is same sign as x + right.z=-dir.x --right is opposite sign from x + end --left and right + local leftdown=cart_func.v3:copy(left) + leftdown.y=-1 + local rightdown=cart_func.v3:copy(right) + rightdown.y=-1 + --minetest.log("action", " fwd="..pos_to_string(fwd)) + --minetest.log("action", " down="..pos_to_string(down)) + --minetest.log("action", " up="..pos_to_string(up)) + --minetest.log("action", " left="..pos_to_string(left)) + --minetest.log("action", " leftdown="..pos_to_string(leftdown)) + --minetest.log("action", " right="..pos_to_string(right)) + --minetest.log("action", " rightdown="..pos_to_string(rightdown)) + + local ignorekeys=false + --ignorekeypos stores a position where we changed direction because the + --player was pressing left or right keys. once we have changed direction, + --we want to ignore those keys until you have changed to a different rail + --(otherwise you end up reversing) + --I use the ignorekeys boolean to make the key logic more readable + if self.ignorekeypos then --ignorekeypos was set + if cart_func.v3:equal(self.ignorekeypos,pos) then + ignorekeys=true --if still at same position, ignore left and right keys + else + self.ignorekeypos=nil --if ignorekeypos was set but pos does not match anymore, clear it + end + end + + local ctrl=nil + if self.driver and not ignorekeys then + ctrl = self.driver:get_player_control() + end + + if ctrl and ctrl.left then --left key pressed, check left first + if cart_func:check_rail_in_direction(pos,left) then + self.ignorekeypos=cart_func.v3:copy(pos) --ignore keys until pos changes + return left + elseif cart_func:check_rail_in_direction(pos,leftdown) then + self.ignorekeypos=cart_func.v3:copy(pos) + return leftdown + end + elseif ctrl and ctrl.right then --right key pressed, check right first + if cart_func:check_rail_in_direction(pos,right) then + self.ignorekeypos=cart_func.v3:copy(pos) + return right + elseif cart_func:check_rail_in_direction(pos,rightdown) then + self.ignorekeypos=cart_func.v3:copy(pos) + return rightdown + end + end --ctrl.left ctrl.right + + --now for normal checks + if cart_func:check_rail_in_direction(pos,fwd) then + return fwd + elseif cart_func:check_rail_in_direction(pos,down) then + return down + elseif cart_func:check_rail_in_direction(pos,up) then + return up + elseif (not ctrl or not ctrl.left) --only check left if we didnt above + and cart_func:check_rail_in_direction(pos,left) then + return left + elseif (not ctrl or not ctrl.left) + and cart_func:check_rail_in_direction(pos,leftdown) then + return leftdown + elseif (not ctrl or not ctrl.right) --only check right if we didnt above + and cart_func:check_rail_in_direction(pos,right) then + return right + elseif (not ctrl or not ctrl.right) + and cart_func:check_rail_in_direction(pos,rightdown) then + return rightdown + else + return {x=0, y=0, z=0} + end --normal rail checks +end --get_rail_direction + +function cart:calc_rail_direction(pos, vel) + local velocity = cart_func.v3:copy(vel) + local p = cart_func.v3:copy(pos) + if cart_func:is_int(p.x) and cart_func:is_int(p.z) then + + local dir = cart_func:velocity_to_dir(velocity) + local dir_old = cart_func.v3:copy(dir) + + dir = self:get_rail_direction(cart_func.v3:round(p), dir) + + local v = math.max(math.abs(velocity.x), math.abs(velocity.z)) + velocity = { + x = v * dir.x, + y = v * dir.y, + z = v * dir.z, + } + + if cart_func.v3:equal(velocity, {x=0, y=0, z=0}) and not cart_func:is_rail(p) then + + -- First try this HACK + -- Move the cart on the rail if above or under it + if cart_func:is_rail(cart_func.v3:add(p, {x=0, y=1, z=0})) and vel.y >= 0 then + p = cart_func.v3:add(p, {x=0, y=1, z=0}) + return self:calc_rail_direction(p, vel) + end + if cart_func:is_rail(cart_func.v3:add(p, {x=0, y=-1, z=0})) and vel.y <= 0 then + p = cart_func.v3:add(p, {x=0, y=-1, z=0}) + return self:calc_rail_direction(p, vel) + end + -- Now the HACK gets really dirty + if cart_func:is_rail(cart_func.v3:add(p, {x=0, y=2, z=0})) and vel.y >= 0 then + p = cart_func.v3:add(p, {x=0, y=1, z=0}) + return self:calc_rail_direction(p, vel) + end + if cart_func:is_rail(cart_func.v3:add(p, {x=0, y=-2, z=0})) and vel.y <= 0 then + p = cart_func.v3:add(p, {x=0, y=-1, z=0}) + return self:calc_rail_direction(p, vel) + end + + return {x=0, y=0, z=0}, p + end + + if not cart_func.v3:equal(dir, dir_old) then + return velocity, cart_func.v3:round(p) + end + + end + return velocity, p +end + +-- built in pos_to_string doesn't handle nil. +function pos_to_string(pos) + if pos==nil then return "(nil)" + else return minetest.pos_to_string(pos) + end --poss==nil +end --pos_to_string + +function cart:on_step(dtime) + + local pos = self.object:getpos() + local dir = cart_func:velocity_to_dir(self.velocity) + + -- *!* Debug. + if self.old_pos then + local cmp_old=vector.round(self.old_pos) + local cmp_new=vector.round(pos) + if cmp_old.x~=cmp_new.x or cmp_old.y~=cmp_new.y or cmp_old.z~=cmp_new.z then + self.railcount=self.railcount+1 + -- local a = tonumber(minetest.get_meta(pos):get_string("cart_acceleration")) + -- local railtype="" + -- if a and a>0 then railtype="power" end + -- minetest.chat_send_all("-- cart pos="..pos_to_string(vector.round(pos)).." railcount="..self.railcount.." vel="..pos_to_string(self.velocity).." "..railtype) --*!*debug + end + end + -- *!* Debug. + + local ctrl=nil + if self.driver then + ctrl = self.driver:get_player_control() + if ctrl and ctrl.jump and not self.lockyaw then + self.lockyaw=true + self.yawtarget=self.object:getyaw() +-- minetest.chat_send_player(self.driver:get_player_name(),"Player view locked to cart, sneak to unlock.") + elseif ctrl and ctrl.sneak and self.lockyaw then + self.lockyaw=false +-- minetest.chat_send_player(self.driver:get_player_name(),"Player view unlocked from cart, jump to lock.") + end + end -- Check lockyaw if self.driver. + + if not cart_func.v3:equal(self.velocity, {x=0,y=0,z=0}) then + self.pre_stop_dir = cart_func:velocity_to_dir(self.velocity) + end + + -- Stop the cart if the velocity is nearly 0, only if on a flat railway. + if dir.y == 0 then + if math.abs(self.velocity.x) < 0.1 and math.abs(self.velocity.z) < 0.1 then + -- Start the cart if powered from mesecons. + local a = tonumber(minetest.get_meta(pos):get_string("cart_acceleration")) + if a and a ~= 0 then + if self.pre_stop_dir and cart_func.v3:equal(self:get_rail_direction(self.object:getpos(), self.pre_stop_dir), self.pre_stop_dir) then + self.velocity = { + x = self.pre_stop_dir.x * 0.2, + y = self.pre_stop_dir.y * 0.2, + z = self.pre_stop_dir.z * 0.2, + } + self.old_velocity = self.velocity + return + end + for _,y in ipairs({0,-1,1}) do + for _,z in ipairs({1,-1}) do + if cart_func.v3:equal(self:get_rail_direction(self.object:getpos(), {x=0, y=y, z=z}), {x=0, y=y, z=z}) then + self.velocity = { + x = 0, + y = 0.2*y, + z = 0.2*z, + } + self.old_velocity = self.velocity + return + end + end + for _,x in ipairs({1,-1}) do + if cart_func.v3:equal(self:get_rail_direction(self.object:getpos(), {x=x, y=y, z=0}), {x=x, y=y, z=0}) then + self.velocity = { + x = 0.2*x, + y = 0.2*y, + z = 0, + } + self.old_velocity = self.velocity + return + end + end + end + end + + self.velocity = {x=0, y=0, z=0} + self.object:setvelocity(self.velocity) + self.old_velocity = self.velocity + self.old_pos = self.object:getpos() + return + end + end + + -- + -- Set the new moving direction + -- + + -- Recalcualte the rails that are passed since the last server step + local old_dir = cart_func:velocity_to_dir(self.old_velocity) + if old_dir.x ~= 0 then + local sign = cart_func:get_sign(pos.x-self.old_pos.x) + while true do + if sign ~= cart_func:get_sign(pos.x-self.old_pos.x) or pos.x == self.old_pos.x then + break + end + self.old_pos.x = self.old_pos.x + cart_func:get_sign(pos.x-self.old_pos.x)*0.1 + self.old_pos.y = self.old_pos.y + cart_func:get_sign(pos.x-self.old_pos.x)*0.1*old_dir.y + self.old_velocity, self.old_pos = self:calc_rail_direction(self.old_pos, self.old_velocity) + old_dir = cart_func:velocity_to_dir(self.old_velocity) + if not cart_func.v3:equal(cart_func:velocity_to_dir(self.old_velocity), dir) then + self.velocity = self.old_velocity + pos = self.old_pos + self.object:setpos(self.old_pos) + break + end + end + elseif old_dir.z ~= 0 then + local sign = cart_func:get_sign(pos.z-self.old_pos.z) + while true do + if sign ~= cart_func:get_sign(pos.z-self.old_pos.z) or pos.z == self.old_pos.z then + break + end + self.old_pos.z = self.old_pos.z + cart_func:get_sign(pos.z-self.old_pos.z)*0.1 + self.old_pos.y = self.old_pos.y + cart_func:get_sign(pos.z-self.old_pos.z)*0.1*old_dir.y + self.old_velocity, self.old_pos = self:calc_rail_direction(self.old_pos, self.old_velocity) + old_dir = cart_func:velocity_to_dir(self.old_velocity) + if not cart_func.v3:equal(cart_func:velocity_to_dir(self.old_velocity), dir) then + self.velocity = self.old_velocity + pos = self.old_pos + self.object:setpos(self.old_pos) + break + end + end + end + + -- Calculate the new step + self.velocity, pos = self:calc_rail_direction(pos, self.velocity) + self.object:setpos(pos) + dir = cart_func:velocity_to_dir(self.velocity) + + -- Accelerate or decelerate the cart according to the pitch and acceleration of the rail node + local a = tonumber(minetest.get_meta(pos):get_string("cart_acceleration")) + if not a then + a = 0 + end + local t = tonumber(minetest.get_meta(pos):get_string("cart_touring_velocity")) + if not t then t=0 end + if t>0 then + local vx=math.abs(self.velocity.x) + local vy=math.abs(self.velocity.y) + local vz=math.abs(self.velocity.z) + -- make v the largest of the 3 velocities + local v=vx + if vy>v then v=vy end + if vz>v then v=vz end + -- + local diff=0 + local acelordecl=0 + if v>t then + diff=v-t + acelordecl=-1 + elseif vt + --minetest.log("action", " on_step t1 v="..v.." t="..t.." diff="..diff.." a="..a.." acelordecl="..acelordecl) + --adjust for grav + if self.velocity.y<0 then --going downhill so grav will acel by extra 0.13 + --if we are decel then add an extra 0.13 to how much we need to decel + --if we are accel then subtract an extra 0.13 from how much we need to acel + diff=diff-(0.13*acelordecl) + elseif self.velocity.y>0 then --going uphill grav will decl by extra 0.10 + --if we are decel then subtract 0.1 from how much we need to decel + --if we are acel then add 0.1 to how much we need to acel + diff=diff+(0.1*acelordecl) + end -- self.velocity.y<0 + --so now diff is the difference between cart velocity (after this turns grav) + --and our target touring velocity + --minetest.log("action", "*!* on_step t2 grav v="..v.." diff="..diff.." a="..a) + if diffa*4 then + a=a*2 --if big difference, play catchup fast! + elseif diff>a*3 then + a=a*1.5 --if big difference, play catchup fast! + end --diff0 + + -- Check if down arrow is being pressed (handbrake). + if self.driver then + local ctrl = self.driver:get_player_control() + if ctrl and ctrl.down then + a=a-0.1 -- Same as uphill. + + end -- If handbrake. + end -- If self.driver. + + if self.velocity.y < 0 then + self.velocity = { + x = self.velocity.x + (a+0.13)*cart_func:get_sign(self.velocity.x), + y = self.velocity.y + (a+0.13)*cart_func:get_sign(self.velocity.y), + z = self.velocity.z + (a+0.13)*cart_func:get_sign(self.velocity.z), + } + elseif self.velocity.y > 0 then + self.velocity = { + x = self.velocity.x + (a-0.1)*cart_func:get_sign(self.velocity.x), + y = self.velocity.y + (a-0.1)*cart_func:get_sign(self.velocity.y), + z = self.velocity.z + (a-0.1)*cart_func:get_sign(self.velocity.z), + } + else + self.velocity = { + x = self.velocity.x + (a-0.03)*cart_func:get_sign(self.velocity.x), + y = self.velocity.y + (a-0.03)*cart_func:get_sign(self.velocity.y), + z = self.velocity.z + (a-0.03)*cart_func:get_sign(self.velocity.z), + } + + -- Place the cart exactly on top of the rail + if cart_func:is_rail(cart_func.v3:round(pos)) then + self.object:setpos({x=pos.x, y=math.floor(pos.y+0.5), z=pos.z}) + pos = self.object:getpos() + end + end + + -- Dont switch moving direction + -- Only if on flat railway + if dir.y == 0 then + if cart_func:get_sign(dir.x) ~= cart_func:get_sign(self.velocity.x) then + self.velocity.x = 0 + end + if cart_func:get_sign(dir.y) ~= cart_func:get_sign(self.velocity.y) then + self.velocity.y = 0 + end + if cart_func:get_sign(dir.z) ~= cart_func:get_sign(self.velocity.z) then + self.velocity.z = 0 + end + end + + -- Allow only one moving direction (multiply the other one with 0) + dir = cart_func:velocity_to_dir(self.velocity) + self.velocity = { + x = math.abs(self.velocity.x) * dir.x, + y = self.velocity.y, + z = math.abs(self.velocity.z) * dir.z, + } + + + -- Move cart exactly on the rail + if dir.x ~= 0 and not cart_func:is_int(pos.z) then + pos.z = math.floor(0.5+pos.z) + self.object:setpos(pos) + elseif dir.z ~= 0 and not cart_func:is_int(pos.x) then + pos.x = math.floor(0.5+pos.x) + self.object:setpos(pos) + end + + -- Limit the velocity. + if math.abs(self.velocity.x) > self.MAX_V then + self.velocity.x = self.MAX_V*cart_func:get_sign(self.velocity.x) + end + if math.abs(self.velocity.y) > self.MAX_V then + self.velocity.y = self.MAX_V*cart_func:get_sign(self.velocity.y) + end + if math.abs(self.velocity.z) > self.MAX_V then + self.velocity.z = self.MAX_V*cart_func:get_sign(self.velocity.z) + end + + self.object:setvelocity(self.velocity) + + self.old_pos = self.object:getpos() + self.old_velocity = cart_func.v3:copy(self.velocity) + + local oldyaw=self.object:getyaw() + if dir.x < 0 then + self.object:setyaw(math.pi/2) + elseif dir.x > 0 then + self.object:setyaw(3*math.pi/2) + elseif dir.z < 0 then + self.object:setyaw(math.pi) + elseif dir.z > 0 then + self.object:setyaw(0) + end + + local newyaw=self.object:getyaw() + -- Now if driver and lockyaw, change drivers direction. + if self.driver and self.lockyaw then + if oldyaw~=newyaw then + self.yawtarget=newyaw -- Set new target. + -- minetest.log("action", "--Cart yawtarget set "..self.yawtarget) + end + local playeryaw=self.driver:get_look_yaw()-1.57 + if playeryaw<0 then playeryaw=playeryaw+(math.pi*2) end + if self.yawtarget and playeryaw ~= self.yawtarget then + local diff = self.yawtarget - playeryaw + if diff>math.pi then + diff=diff-(2*math.pi) + elseif diff<(-math.pi) then + diff=diff+(2*math.pi) + end + yawdir=cart_func:get_sign(diff) + local step=self.YAW_STEP + if math.abs(diff)<=self.YAW_STEP then + step=diff + self.yawtarget=nil + end + local setyaw=playeryaw+(step*yawdir) + self.driver:set_look_yaw(setyaw) + end -- Move yaw. + end -- lockyaw set. + + if dir.y == -1 then + self.object:set_animation({x=1, y=1}, 1, 0) + elseif dir.y == 1 then + self.object:set_animation({x=2, y=2}, 1, 0) + else + self.object:set_animation({x=0, y=0}, 1, 0) + end + +end + +minetest.register_entity("carts:cart", cart) + +minetest.register_craftitem("carts:cart", { + description = "Cart", + inventory_image = minetest.inventorycube("cart_top.png", "cart_side.png", "cart_side.png"), + wield_image = "cart_side.png", + on_place = function(itemstack, placer, pointed_thing) + if not pointed_thing.type == "node" then + return + end + if cart_func:is_rail(pointed_thing.under) then + local obj=minetest.add_entity(pointed_thing.under, "carts:cart") + minetest.log("action", "carts:cart placed at " .. pos_to_string(vector.round(obj:getpos())) .. ".") +-- minetest.chat_send_player(placer:get_player_name(),"Right click to ride, left click to push, sneak + left click to put back in inventory, jump to lock view to cart, sneak to unlock view from cart, move left and right to switch tracks, move backwards to apply handbrake.") + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack + elseif cart_func:is_rail(pointed_thing.above) then + minetest.add_entity(pointed_thing.above, "carts:cart") + minetest.log("action", "carts:cart placed at " .. pos_to_string(self.object:getpos()) .. ".") + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack + end + end, +}) + +minetest.register_craft({ + output = "carts:cart", + recipe = { + {"default:steel_ingot", "", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + }, +}) + +-- +-- Mesecon support +-- + +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, + is_ground_content = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, + }, + groups = {bendy = 2, snappy = 1, dig_immediate = 2, rail = 1, connect_to_raillike = 1}, +}) + +minetest.register_node("carts:rail_copper", { + description = "Copper Rail", + drawtype = "raillike", + tiles = {"carts_rail_copper.png", "carts_rail_copper_curved.png", "carts_rail_copper_t_junction.png", "carts_rail_copper_crossing.png"}, + inventory_image = "carts_rail_copper.png", + wield_image = "carts_rail_copper.png", + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, + }, + groups = {bendy = 2, snappy = 1, dig_immediate = 2, rail = 1, connect_to_raillike = 1}, +}) + +minetest.register_node("carts:rail_invisible", { + description = "Invisible Rail", + stack_max = 10000, + range = 12, + drawtype = "raillike", + tiles = {"invisible.png", "invisible.png", "invisible.png", "invisible.png"}, + inventory_image = "default_rail.png^default_steel_ingot.png", + wield_image = "default_rail.png^default_steel_ingot.png", + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, + }, + drop = "", + groups = {unbreakable = 1, rail = 1, connect_to_raillike = 1, not_in_creative_inventory = 1}, +}) + +minetest.register_node("carts:rail_power", { + description = "Powered Rail", + drawtype = "raillike", + tiles = {"carts_rail_pwr.png", "carts_rail_curved_pwr.png", "carts_rail_t_junction_pwr.png", "carts_rail_crossing_pwr.png"}, + inventory_image = "carts_rail_pwr.png", + wield_image = "carts_rail_pwr.png", + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, + }, + groups = {bendy = 2, snappy = 1, dig_immediate = 2, rail = 1, connect_to_raillike = 1}, + + after_place_node = function(pos, placer, itemstack) + if not mesecon then + minetest.get_meta(pos):set_string("cart_acceleration", "0.5") + end + end, + + mesecons = { + effector = { + action_off = function(pos, node) + minetest.get_meta(pos):set_string("cart_acceleration", "0.5") + end, + + action_on = function(pos, node) + minetest.get_meta(pos):set_string("cart_acceleration", "0") + end, + }, + }, +}) + +minetest.register_node("carts:rail_power_invisible", { + description = "Invisible Powered Rail", + stack_max = 10000, + range = 12, + drawtype = "raillike", + tiles = {"invisible.png", "invisible.png", "invisible.png", "invisible.png"}, + inventory_image = "default_rail.png^default_mese_crystal_fragment.png", + wield_image = "default_rail.png^default_mese_crystal_fragment.png", + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, + }, + drop = "", + groups = {unbreakable = 1, rail = 1, connect_to_raillike = 1, not_in_creative_inventory = 1}, + + after_place_node = function(pos, placer, itemstack) + minetest.get_meta(pos):set_string("cart_acceleration", "10") + end, +}) + +minetest.register_node("carts:rail_brake", { + description = "Brake Rail", + drawtype = "raillike", + tiles = {"carts_rail_brk.png", "carts_rail_curved_brk.png", "carts_rail_t_junction_brk.png", "carts_rail_crossing_brk.png"}, + inventory_image = "carts_rail_brk.png", + wield_image = "carts_rail_brk.png", + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, + }, + groups = {bendy = 2, snappy = 1, dig_immediate = 2, rail = 1, connect_to_raillike = 1}, + + after_place_node = function(pos, placer, itemstack) + if not mesecon then + minetest.get_meta(pos):set_string("cart_acceleration", "-0.2") + end + end, + + mesecons = { + effector = { + action_off = function(pos, node) + minetest.get_meta(pos):set_string("cart_acceleration", "-0.2") + end, + + action_on = function(pos, node) + minetest.get_meta(pos):set_string("cart_acceleration", "0") + end, + }, + }, +}) + +minetest.register_node("carts:rail_brake_invisible", { + description = "Invisible Brake Rail", + stack_max = 10000, + range = 12, + drawtype = "raillike", + tiles = {"invisible.png", "invisible.png", "invisible.png", "invisible.png"}, + inventory_image = "default_rail.png^default_coal_lump.png", + wield_image = "default_rail.png^default_coal_lump.png", + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, + }, + drop = "", + groups = {bendy = 2, snappy = 1, dig_immediate = 2, rail = 1, connect_to_raillike = 1, not_in_creative_inventory = 1}, + + after_place_node = function(pos, placer, itemstack) + minetest.get_meta(pos):set_string("cart_acceleration", "-10") + end, +}) + +--[[ +minetest.register_node("carts:rail_tour", { + description = "Touring Rail", + drawtype = "raillike", + tiles = {"carts_rail_tour.png", "carts_rail_curved_tour.png", "carts_rail_t_junction_tour.png", "carts_rail_crossing_tour.png"}, + inventory_image = "carts_rail_tour.png", + wield_image = "carts_rail_tour.png", + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, + }, + groups = {bendy = 2, snappy = 1, dig_immediate = 2, rail = 1, connect_to_raillike = 1}, + + after_place_node = function(pos, placer, itemstack) + if not mesecon then + minetest.get_meta(pos):set_string("cart_acceleration", "0.5") + minetest.get_meta(pos):set_string("cart_touring_velocity", cart.TARGET_TOUR_V) + end + end, + + mesecons = { + effector = { + action_on = function(pos, node) + minetest.get_meta(pos):set_string("cart_acceleration", "0.5") + end, + + action_off = function(pos, node) + minetest.get_meta(pos):set_string("cart_acceleration", "0") + end, + }, + }, +}) +--]] + +minetest.register_craft({ + output = "carts:rail_copper 16", + recipe = { + {"default:copper_ingot", "group:stick", "default:copper_ingot"}, + {"default:copper_ingot", "group:stick", "default:copper_ingot"}, + {"default:copper_ingot", "group:stick", "default:copper_ingot"}, + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "carts:rail_power", + recipe = {"group:rail", "default:mese_crystal_fragment"}, +}) + +minetest.register_craft({ + type = "shapeless", + output = "carts:rail_brake", + recipe = {"group:rail", "default:coal_lump"}, +}) + +minetest.register_craft({ + type = "shapeless", + output = "carts:rail_tour", + recipe = {"group:rail", "default:clay_lump"}, +}) + +minetest.register_alias("carts:powerrail", "carts:rail_power") +minetest.register_alias("carts:power_rail", "carts:rail_power") +minetest.register_alias("carts:brakerail", "carts:rail_brake") +minetest.register_alias("carts:brake_rail", "carts:rail_power") +minetest.register_alias("carts:tourrail", "carts:rail_tour") + +if minetest.setting_getbool("log_mods") then + minetest.log("action", "Carbone: [carts] loaded.") +end diff --git a/mods/carts/models/cart.png b/mods/carts/models/cart.png new file mode 100644 index 00000000..d4b12d63 Binary files /dev/null and b/mods/carts/models/cart.png differ diff --git a/mods/carts/models/cart.x b/mods/carts/models/cart.x new file mode 100644 index 00000000..3325aafb --- /dev/null +++ b/mods/carts/models/cart.x @@ -0,0 +1,339 @@ +xof 0303txt 0032 + +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 Cube { + FrameTransformMatrix { + 5.000000, 0.000000,-0.000000, 0.000000, + -0.000000, 3.535534, 3.535534, 0.000000, + 0.000000,-3.535534, 3.535534, 0.000000, + 0.000000,-3.000000, 3.000000, 1.000000;; + } + Mesh { //Cube_001 Mesh + 72; + -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.833334;-1.000000; 1.000000;, + -1.000000;-1.000000; 1.000000;, + -1.000000;-0.833333; 1.000000;, + -0.833334;-0.833333; 1.000000;, + -1.000000;-1.000000;-1.000000;, + -1.000000;-1.000000; 1.000000;, + 0.999999;-1.000001; 1.000000;, + 1.000000;-1.000000;-1.000000;, + 0.999999;-1.000001; 1.000000;, + 0.833332;-1.000000; 1.000000;, + 0.833333;-0.833334; 1.000000;, + 1.000000;-0.833334; 1.000000;, + 0.833332;-1.000000; 1.000000;, + -0.833334;-1.000000; 1.000000;, + -0.833334;-0.833333; 1.000000;, + 0.833333;-0.833334; 1.000000;, + 1.000000; 0.833333; 1.000000;, + 0.833334; 0.833333; 1.000000;, + 0.833334; 1.000000; 1.000000;, + 1.000000; 0.999999; 1.000000;, + 1.000000;-0.833334; 1.000000;, + 0.833333;-0.833334; 1.000000;, + 0.833334; 0.833333; 1.000000;, + 1.000000; 0.833333; 1.000000;, + 0.833334; 0.833333; 1.000000;, + -0.833333; 0.833333; 1.000000;, + -0.833333; 1.000000; 1.000000;, + 0.833334; 1.000000; 1.000000;, + 0.833334; 0.833333;-0.800000;, + -0.833333; 0.833333;-0.800000;, + -0.833333; 0.833333; 1.000000;, + 0.833334; 0.833333; 1.000000;, + -0.833333; 0.833333; 1.000000;, + -1.000000; 0.833333; 1.000000;, + -1.000000; 1.000000; 1.000000;, + -0.833333; 1.000000; 1.000000;, + -0.833334;-0.833333; 1.000000;, + -1.000000;-0.833333; 1.000000;, + -1.000000; 0.833333; 1.000000;, + -0.833333; 0.833333; 1.000000;, + 0.833333;-0.833334;-0.800000;, + -0.833334;-0.833333;-0.800000;, + -0.833333; 0.833333;-0.800000;, + 0.833334; 0.833333;-0.800000;, + -0.833333; 0.833333;-0.800000;, + -0.833334;-0.833333;-0.800000;, + -0.833334;-0.833333; 1.000000;, + -0.833333; 0.833333; 1.000000;, + -0.833334;-0.833333;-0.800000;, + 0.833333;-0.833334;-0.800000;, + 0.833333;-0.833334; 1.000000;, + -0.833334;-0.833333; 1.000000;, + 0.833333;-0.833334;-0.800000;, + 0.833334; 0.833333;-0.800000;, + 0.833334; 0.833333; 1.000000;, + 0.833333;-0.833334; 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.999999; 1.000000;, + 1.000000;-1.000000;-1.000000;, + 0.999999;-1.000001; 1.000000;, + 1.000000; 0.999999; 1.000000;, + 1.000000; 1.000000;-1.000000;; + 18; + 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;; + MeshNormals { //Cube_001 Normals + 72; + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000;-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;-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;, + 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; 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;; + 18; + 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;; + } //End of Cube_001 Normals + MeshMaterialList { //Cube_001 Material List + 1; + 18; + 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 {"cart.png";} + } + } //End of Cube_001 Material List + MeshTextureCoords { //Cube_001 UV Coordinates + 72; + 0.000000; 0.500000;, + 0.500000; 0.500000;, + 0.500000; 1.000000;, + 0.000000; 1.000000;, + 0.031250; 0.500000;, + -0.000000; 0.500000;, + -0.000000; 0.468750;, + 0.031250; 0.468750;, + 0.500000; 0.500000;, + 0.500000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 0.500000;, + 0.468750; 0.468750;, + 0.500000; 0.468750;, + 0.500000; 0.500000;, + 0.468750; 0.500000;, + 0.031250; 0.468750;, + 0.468750; 0.468750;, + 0.468750; 0.500000;, + 0.031250; 0.500000;, + 0.468750; 0.000000;, + 0.500000; 0.000000;, + 0.500000; 0.031250;, + 0.468750; 0.031250;, + 0.468750; 0.031250;, + 0.500000; 0.031250;, + 0.500000; 0.468750;, + 0.468750; 0.468750;, + 0.468750; 0.031250;, + 0.031250; 0.031250;, + 0.031250; 0.000000;, + 0.468750; 0.000000;, + 1.000000; 0.500000;, + 0.500000; 0.500000;, + 0.500000; 0.000000;, + 1.000000; 0.000000;, + 0.031250; 0.031250;, + 0.000000; 0.031250;, + 0.000000; 0.000000;, + 0.031250; 0.000000;, + 0.031250; 0.468750;, + -0.000000; 0.468750;, + 0.000000; 0.031250;, + 0.031250; 0.031250;, + 0.000000; 0.500000;, + 0.500000; 0.500000;, + 0.500000; 1.000000;, + 0.000000; 1.000000;, + 1.000000; 0.500000;, + 0.500000; 0.500000;, + 0.500000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 0.500000;, + 0.500000; 0.500000;, + 0.500000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 0.500000;, + 0.500000; 0.500000;, + 0.500000; 0.000000;, + 1.000000; 0.000000;, + 0.500000; 0.500000;, + 0.500000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 0.500000;, + 1.000000; 0.000000;, + 1.000000; 0.500000;, + 0.500000; 0.500000;, + 0.500000; 0.000000;, + 0.500000; 0.500000;, + 0.500000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 0.500000;; + } //End of Cube_001 UV Coordinates + } //End of Cube_001 Mesh + } //End of Cube +} //End of Root Frame +AnimationSet { + Animation { + {Cube} + AnimationKey { //Position + 2; + 4; + 0;3; 0.000000, 0.000000, 0.000000;;, + 1;3; 0.000000, 3.000000, 3.000000;;, + 2;3; 0.000000,-3.000000, 3.000000;;, + 3;3; 0.000000,-3.000000, 3.000000;;; + } + AnimationKey { //Rotation + 0; + 4; + 0;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 1;4; -0.923880,-0.382683,-0.000000, 0.000000;;, + 2;4; -0.923880, 0.382683, 0.000000, 0.000000;;, + 3;4; -0.923880, 0.382683, 0.000000, 0.000000;;; + } + AnimationKey { //Scale + 1; + 4; + 0;3; 5.000000, 5.000000, 5.000000;;, + 1;3; 5.000000, 5.000000, 5.000000;;, + 2;3; 5.000000, 5.000000, 5.000000;;, + 3;3; 5.000000, 5.000000, 5.000000;;; + } + } +} //End of AnimationSet diff --git a/mods/carts/textures/cart_bottom.png b/mods/carts/textures/cart_bottom.png new file mode 100644 index 00000000..e74ef2b9 Binary files /dev/null and b/mods/carts/textures/cart_bottom.png differ diff --git a/mods/carts/textures/cart_side.png b/mods/carts/textures/cart_side.png new file mode 100644 index 00000000..1bd55e7b Binary files /dev/null and b/mods/carts/textures/cart_side.png differ diff --git a/mods/carts/textures/cart_top.png b/mods/carts/textures/cart_top.png new file mode 100644 index 00000000..b763025e Binary files /dev/null and b/mods/carts/textures/cart_top.png differ diff --git a/mods/carts/textures/carts_rail_brk.png b/mods/carts/textures/carts_rail_brk.png new file mode 100644 index 00000000..9e82db18 Binary files /dev/null and b/mods/carts/textures/carts_rail_brk.png differ diff --git a/mods/carts/textures/carts_rail_copper.png b/mods/carts/textures/carts_rail_copper.png new file mode 100644 index 00000000..73963f62 Binary files /dev/null and b/mods/carts/textures/carts_rail_copper.png differ diff --git a/mods/carts/textures/carts_rail_copper_crossing.png b/mods/carts/textures/carts_rail_copper_crossing.png new file mode 100644 index 00000000..6ff11530 Binary files /dev/null and b/mods/carts/textures/carts_rail_copper_crossing.png differ diff --git a/mods/carts/textures/carts_rail_copper_curved.png b/mods/carts/textures/carts_rail_copper_curved.png new file mode 100644 index 00000000..6cfc8c2d Binary files /dev/null and b/mods/carts/textures/carts_rail_copper_curved.png differ diff --git a/mods/carts/textures/carts_rail_copper_t_junction.png b/mods/carts/textures/carts_rail_copper_t_junction.png new file mode 100644 index 00000000..57759193 Binary files /dev/null and b/mods/carts/textures/carts_rail_copper_t_junction.png differ diff --git a/mods/carts/textures/carts_rail_crossing_brk.png b/mods/carts/textures/carts_rail_crossing_brk.png new file mode 100644 index 00000000..6fc3ef86 Binary files /dev/null and b/mods/carts/textures/carts_rail_crossing_brk.png differ diff --git a/mods/carts/textures/carts_rail_crossing_pwr.png b/mods/carts/textures/carts_rail_crossing_pwr.png new file mode 100644 index 00000000..392766fd Binary files /dev/null and b/mods/carts/textures/carts_rail_crossing_pwr.png differ diff --git a/mods/carts/textures/carts_rail_crossing_tour.png b/mods/carts/textures/carts_rail_crossing_tour.png new file mode 100644 index 00000000..0e6cf959 Binary files /dev/null and b/mods/carts/textures/carts_rail_crossing_tour.png differ diff --git a/mods/carts/textures/carts_rail_curved_brk.png b/mods/carts/textures/carts_rail_curved_brk.png new file mode 100644 index 00000000..f8756e0e Binary files /dev/null and b/mods/carts/textures/carts_rail_curved_brk.png differ diff --git a/mods/carts/textures/carts_rail_curved_pwr.png b/mods/carts/textures/carts_rail_curved_pwr.png new file mode 100644 index 00000000..8816131a Binary files /dev/null and b/mods/carts/textures/carts_rail_curved_pwr.png differ diff --git a/mods/carts/textures/carts_rail_curved_tour.png b/mods/carts/textures/carts_rail_curved_tour.png new file mode 100644 index 00000000..ef059677 Binary files /dev/null and b/mods/carts/textures/carts_rail_curved_tour.png differ diff --git a/mods/carts/textures/carts_rail_pwr.png b/mods/carts/textures/carts_rail_pwr.png new file mode 100644 index 00000000..7d44a800 Binary files /dev/null and b/mods/carts/textures/carts_rail_pwr.png differ diff --git a/mods/carts/textures/carts_rail_t_junction_brk.png b/mods/carts/textures/carts_rail_t_junction_brk.png new file mode 100644 index 00000000..e1cf5595 Binary files /dev/null and b/mods/carts/textures/carts_rail_t_junction_brk.png differ diff --git a/mods/carts/textures/carts_rail_t_junction_pwr.png b/mods/carts/textures/carts_rail_t_junction_pwr.png new file mode 100644 index 00000000..30fea2be Binary files /dev/null and b/mods/carts/textures/carts_rail_t_junction_pwr.png differ diff --git a/mods/carts/textures/carts_rail_t_junction_tour.png b/mods/carts/textures/carts_rail_t_junction_tour.png new file mode 100644 index 00000000..c650f29e Binary files /dev/null and b/mods/carts/textures/carts_rail_t_junction_tour.png differ diff --git a/mods/carts/textures/carts_rail_tour.png b/mods/carts/textures/carts_rail_tour.png new file mode 100644 index 00000000..32e51144 Binary files /dev/null and b/mods/carts/textures/carts_rail_tour.png differ diff --git a/mods/chatplus/.gitattributes b/mods/chatplus/.gitattributes new file mode 100755 index 00000000..412eeda7 --- /dev/null +++ b/mods/chatplus/.gitattributes @@ -0,0 +1,22 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp +*.sln merge=union +*.csproj merge=union +*.vbproj merge=union +*.fsproj merge=union +*.dbproj merge=union + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain diff --git a/mods/chatplus/.gitignore b/mods/chatplus/.gitignore new file mode 100755 index 00000000..b9d6bd92 --- /dev/null +++ b/mods/chatplus/.gitignore @@ -0,0 +1,215 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml +*.pubxml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + +############# +## Windows detritus +############# + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac crap +.DS_Store + + +############# +## Python +############# + +*.py[co] + +# Packages +*.egg +*.egg-info +dist/ +build/ +eggs/ +parts/ +var/ +sdist/ +develop-eggs/ +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg diff --git a/mods/chatplus/README.md b/mods/chatplus/README.md new file mode 100755 index 00000000..2f34342a --- /dev/null +++ b/mods/chatplus/README.md @@ -0,0 +1,21 @@ +Chatplus +-------- + +License: CC-BY-SA to Rubenwardy + +Commands +======== + +* /ignore [name] - ignore a player +* /unignore [name] - unignore a player +* /mail [name] [msg] - message a player (online or offline!) +* /inbox - open your inbox +* /inbox clear - clear your inbox +* /inbox text - see the text version of the inbox. +* /inbox txt - alias of /inbox text +* /inbox t - alias of /inbox text + +HUD +=== + +This mod adds a new message icon to the HUD. If HUDs are not supported, no icon is added. \ No newline at end of file diff --git a/mods/chatplus/init.lua b/mods/chatplus/init.lua new file mode 100755 index 00000000..674cd6ca --- /dev/null +++ b/mods/chatplus/init.lua @@ -0,0 +1,405 @@ +-- Chat Plus +-- ========= +-- Advanced chat functionality +-- ========= + +chatplus = { + log_file = minetest.get_worldpath().."/chat_log.txt", + _defsettings = { + log = false, -- Set to true to log chat in a file found in the world directory. + use_gui = true, + distance = 0, + badwords = "" -- Words not allowed to be said in chat, separated by commas. Uncomment the code near the end to make this work. + } +} + +function chatplus.init() + chatplus.load() + chatplus.clean_players() + + if not chatplus.players then + chatplus.players = {} + end + chatplus.count = 0 + chatplus.loggedin = {} + chatplus._handlers = {} +end + +function chatplus.setting(name) + local get = minetest.setting_get("chatplus_"..name) + if get then + return get + elseif chatplus._defsettings[name]~= nil then + return chatplus._defsettings[name] + else + minetest.log("[chatplus] Setting chatplus_"..name.." not found.") + return nil + end +end + +function chatplus.load() + -- Initialize the log + if chatplus.setting("log") then + chatplus.log_handle = io.open(chatplus.log_file,"a+") + if not chatplus.log_handle then + minetest.log("error","Unable to open chatplus log file: "..chatplus.log_file) + else + minetest.log("action","Logging chatplus to: "..chatplus.log_file) + end + end + + -- Load player data + minetest.log("[chatplus] Loading data.") + local file = io.open(minetest.get_worldpath().."/chatplus.txt", "r") + if file then + local table = minetest.deserialize(file:read("*all")) + file:close() + if type(table) == "table" then + chatplus.players = table + return + end + end +end + +function chatplus.save() + minetest.log("[chatplus] Saving data.") + + local file = io.open(minetest.get_worldpath().."/chatplus.txt", "w") + if file then + file:write(minetest.serialize(chatplus.players)) + file:close() + end +end + +function chatplus.clean_players() + if not chatplus.players then + chatplus.players = {} + return + end + + minetest.log("[chatplus] Cleaning player lists.") + for key,value in pairs(chatplus.players) do + if value.messages then + value.inbox = value.messages + value.messages = nil + end + + if ( + (not value.inbox or #value.inbox==0) and + (not value.ignore or #value.ignore==0) + ) then + minetest.log("Deleting blank player "..key..".") + value[key] = nil + end + end + chatplus.save() + minetest.log("[chatplus] Cleaning complete.") +end + +function chatplus.poke(name,player) + local function check(name,value) + if not chatplus.players[name][value] then + chatplus.players[name][value] = {} + end + end + if not chatplus.players[name] then + chatplus.players[name] = {} + end + check(name,"ignore") + check(name,"inbox") + + chatplus.players[name].enabled = true + + if player then + if player=="end" then + chatplus.players[name].enabled = false + chatplus.loggedin[name] = nil + else + if not chatplus.loggedin[name] then + chatplus.loggedin[name] = {} + end + chatplus.loggedin[name].player = player + end + end + + chatplus.save() + + return chatplus.players[name] +end + +function chatplus.register_handler(func,place) + if not place then + table.insert(chatplus._handlers,func) + else + table.insert(chatplus._handlers,place,func) + end +end + +function chatplus.send(from,msg) + -- Log chat message + if chatplus.log_handle ~= nil then + chatplus.log_handle:write( + os.date("%Y-%m-%d, %I:%M%p").. + " | <"..from.."> ".. + msg.. + "\r\n" + ) + chatplus.log_handle:flush() + end + + minetest.log("action", "<"..from.."> "..msg) + + -- Loop through senders + for key,value in pairs(chatplus.loggedin) do + local res = nil + for i=1,#chatplus._handlers do + if chatplus._handlers[i] then + res = chatplus._handlers[i](from,key,msg) + + if res ~= nil then + break + end + end + end + if (res == nil or res == true) and key~=from then + minetest.chat_send_player(key,"<"..from.."> "..msg,false) + end + end + + return true +end + +-- Minetest callbacks +minetest.register_on_chat_message(chatplus.send) +minetest.register_on_joinplayer(function(player) + local _player = chatplus.poke(player:get_player_name(),player) + + if chatplus.log_handle ~= nil then + chatplus.log_handle:write(os.date("%Y-%m-%d, %I:%M%p").." O "..player:get_player_name().." joined the game.\r\n") + chatplus.log_handle:flush() + end + + -- Inbox stuff. + if _player.inbox and #_player.inbox>0 then + minetest.after(10,minetest.chat_send_player,player:get_player_name(),"("..#_player.inbox..") You have mail! Type /inbox to view them.") + end +end) +minetest.register_on_leaveplayer(function(player) + chatplus.poke(player:get_player_name(),"end") + if chatplus.log_handle ~= nil then + chatplus.log_handle:write(os.date("%Y-%m-%d, %I:%M%p").." X "..player:get_player_name().." left the game.\r\n") + chatplus.log_handle:flush() + end +end) + +-- Init +chatplus.init() + +-- Ignoring +chatplus.register_handler(function(from,to,msg) + if chatplus.players[to] and chatplus.players[to].ignore and chatplus.players[to].ignore[from]==true then + return false + end + return nil +end) + +minetest.register_chatcommand("ignore", { + params = "", + description = "Ignore a player", + func = function(name, param) + chatplus.poke(name) + if not chatplus.players[name].ignore[param]==true then + chatplus.players[name].ignore[param]=true + minetest.chat_send_player(name,param.." has been ignored.") + chatplus.save() + else + minetest.chat_send_player(name,param.." is already ignored.") + end + end +}) + +minetest.register_chatcommand("unignore", { + params = "", + description = "Stop ignoring a player", + func = function(name, param) + chatplus.poke(name) + if chatplus.players[name].ignore[param]==true then + chatplus.players[name].ignore[param]=false + minetest.chat_send_player(name,param.." has been unignored") + chatplus.save() + else + minetest.chat_send_player(name,param.." is already unignored.") + end + end +}) + +-- inbox +function chatplus.showInbox(name,forcetest) + if not chatplus.players[name] then + return false + end + + local player = chatplus.players[name] + + if not player.inbox or #player.inbox==0 then + minetest.chat_send_player(name,"Your inbox is empty.") + return false + end + local setting = chatplus.setting("use_gui") + if (setting == true or setting == "true" or setting == "1") and not forcetest then + local fs = "size[10,5]textlist[0,0;9.75,5;inbox;" + for i=1,#player.inbox do + if i > 1 then + fs = fs .. "," + end + fs = fs .. minetest.formspec_escape(player.inbox[i]) + end + fs = fs .. "]" + print(fs) + minetest.show_formspec(name, "chatplus:inbox", fs) + else + minetest.chat_send_player(name,"("..#player.inbox..") You have mail:") + for i=1,#player.inbox do + minetest.chat_send_player(name,player.inbox[i],false) + end + minetest.chat_send_player(name,"("..#player.inbox..")",false) + end + + return true +end + +minetest.register_chatcommand("inbox", { + params = "[clear]", + description = "Shows your inbox", + func = function(name, param) + if param == "clear" then + local player = chatplus.poke(name) + player.inbox = {} + chatplus.save() + minetest.chat_send_player(name,"Inbox cleared.") + elseif param == "text" or param == "txt" or param == "t" then + chatplus.showInbox(name,true) + else + chatplus.showInbox(name,false) + end + end, +}) + +minetest.register_chatcommand("mail", { + params = " ", + description = "Add a message to a player's inbox", + func = function(name, param) + chatplus.poke(name) + local to, msg = string.match(param, "([%a%d_]+) (.+)") + + if not to or not msg then + minetest.chat_send_player(name,"Usage: /mail ",false) + return + end + + --[[ + minetest.log("To: "..to..", From: "..name..", Message: "..msg) + if chatplus.log_handle ~= nil then + chatplus.log_handle:write(os.date("%Y-%m-%d, %I:%M%p").." @ To: "..to..", From: "..name..", Message: "..msg) + chatplus.log_handle:flush() + end + --]] + if chatplus.players[to] then + table.insert(chatplus.players[to].inbox,os.date("%Y-%m-%d, %I:%M%p").." | <"..name.."> "..msg) + minetest.chat_send_player(name,"Message sent.") + chatplus.save() + else + minetest.chat_send_player(name,to.." does not exist.") + end + end, +}) + + +minetest.register_globalstep(function(dtime) + chatplus.count = chatplus.count + dtime + if chatplus.count > 5 then + chatplus.count = 0 + -- loop through player list + for key,value in pairs(chatplus.players) do + if ( + chatplus.loggedin and + chatplus.loggedin[key] and + chatplus.loggedin[key].player and + value and + value.inbox and + chatplus.loggedin[key].player.hud_add and + chatplus.loggedin[key].lastcount ~= #value.inbox + ) then + if chatplus.loggedin[key].msgicon then + chatplus.loggedin[key].player:hud_remove(chatplus.loggedin[key].msgicon) + end + + if chatplus.loggedin[key].msgicon2 then + chatplus.loggedin[key].player:hud_remove(chatplus.loggedin[key].msgicon2) + end + + if #value.inbox>0 then + chatplus.loggedin[key].msgicon = chatplus.loggedin[key].player:hud_add({ + hud_elem_type = "image", + name = "MailIcon", + position = {x=0.52, y=0.52}, + text="chatplus_mail.png", + scale = {x=1,y=1}, + alignment = {x=0.5, y=0.5}, + }) + chatplus.loggedin[key].msgicon2 = chatplus.loggedin[key].player:hud_add({ + hud_elem_type = "text", + name = "MailText", + position = {x=0.55, y=0.52}, + text=#value.inbox.." /inbox", + scale = {x=1,y=1}, + alignment = {x=0.5, y=0.5}, + }) + end + chatplus.loggedin[key].lastcount = #value.inbox + end + end + end +end) + + +--[[ +chatplus.register_handler(function(from,to,msg) + if chatplus.setting("distance") <= 0 then + return nil + end + + local from_o = minetest.get_player_by_name(from) + local to_o = minetest.get_player_by_name(to) + + if not from_o or not to_o then + return nil + end + + if ( + chatplus.setting("distance") ~= 0 and + chatplus.setting("distance") ~= nil and + (vector.distance(from_o:getpos(),to_o:getpos()) > tonumber(chatplus.setting("distance"))) + )then + return false + end + return nil +end) +--]] + +--[[ +chatplus.register_handler(function(from,to,msg) + local words = chatplus.setting("badwords"):split(",") + for _,v in pairs(words) do + if (v:trim()~="") and ( msg:find(v:trim(), 1, true) ~= nil ) then + minetest.chat_send_player(from, "Swearing is not allowed.") + return false + end + end + return nil +end) +--]] + +if minetest.setting_getbool("log_mods") then + minetest.log("action", "Carbone: [chatplus] loaded.") +end diff --git a/mods/chatplus/textures/chatplus_mail.png b/mods/chatplus/textures/chatplus_mail.png new file mode 100755 index 00000000..c20d9892 Binary files /dev/null and b/mods/chatplus/textures/chatplus_mail.png differ diff --git a/mods/chest/depends.txt b/mods/chest/depends.txt new file mode 100755 index 00000000..331d858c --- /dev/null +++ b/mods/chest/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/mods/chest/init.lua b/mods/chest/init.lua new file mode 100755 index 00000000..011f32b5 --- /dev/null +++ b/mods/chest/init.lua @@ -0,0 +1,6 @@ +-- 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 + +dofile(minetest.get_modpath("chest").."/nodes.lua") diff --git a/mods/chest/nodes.lua b/mods/chest/nodes.lua new file mode 100755 index 00000000..86cd380b --- /dev/null +++ b/mods/chest/nodes.lua @@ -0,0 +1,238 @@ +-- mods/default/nodes.lua + + +local function get_chest_neighborpos(pos, param2, side) + if side == "right" then + if param2 == 0 then + return {x=pos.x-1, y=pos.y, z=pos.z} + elseif param2 == 1 then + return {x=pos.x, y=pos.y, z=pos.z+1} + elseif param2 == 2 then + return {x=pos.x+1, y=pos.y, z=pos.z} + elseif param2 == 3 then + return {x=pos.x, y=pos.y, z=pos.z-1} + end + else + if param2 == 0 then + return {x=pos.x+1, y=pos.y, z=pos.z} + elseif param2 == 1 then + return {x=pos.x, y=pos.y, z=pos.z-1} + elseif param2 == 2 then + return {x=pos.x-1, y=pos.y, z=pos.z} + elseif param2 == 3 then + return {x=pos.x, y=pos.y, z=pos.z+1} + end + end +end + +local function hacky_swap_node(pos,name, param2) + local node = minetest.env:get_node(pos) + local meta = minetest.env:get_meta(pos) + if node.name == name then + return + end + node.name = name + node.param2 = param2 or node.param2 + local meta0 = meta:to_table() + minetest.env:set_node(pos,node) + meta = minetest.env:get_meta(pos) + meta:from_table(meta0) +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", + stack_max = 64, + groups = {choppy=2,oddly_breakable_by_hand=2}, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local param2 = minetest.env:get_node(pos).param2 + local meta = minetest.env:get_meta(pos) + if minetest.env:get_node(get_chest_neighborpos(pos, param2, "right")).name == "default:chest" then + minetest.env:set_node(pos, {name="chest:chest_right",param2=param2}) + local p = get_chest_neighborpos(pos, param2, "right") + meta:set_string("formspec", + "size[9,11.5]".. + "list[nodemeta:"..p.x..","..p.y..","..p.z..";main;0,0;9,3;]".. + "list[current_name;main;0,3;9,3;]".. + "list[current_player;main;0,7;9,3;9]".. + "list[current_player;main;0,10.5;9,1;]") + meta:set_string("infotext", "Large Chest") + hacky_swap_node(p, "chest:chest_left", param2) + local m = minetest.env:get_meta(p) + m:set_string("formspec", + "size[9,11.5]".. + "list[current_name;main;0,0;9,3;]".. + "list[nodemeta:"..pos.x..","..pos.y..","..pos.z..";main;0,3;9,3;]".. + "list[current_player;main;0,7;9,3;9]".. + "list[current_player;main;0,10.5;9,1;]") + m:set_string("infotext", "Large Chest") + elseif minetest.env:get_node(get_chest_neighborpos(pos, param2, "left")).name == "default:chest" then + minetest.env:set_node(pos, {name="chest:chest_left",param2=param2}) + local p = get_chest_neighborpos(pos, param2, "left") + meta:set_string("formspec", + "size[9,11.5]".. + "list[current_name;main;0,0;9,3;]".. + "list[nodemeta:"..p.x..","..p.y..","..p.z..";main;0,3;9,3;]".. + "list[current_player;main;0,7;9,3;9]".. + "list[current_player;main;0,10.5;9,1;]") + meta:set_string("infotext", "Large Chest") + hacky_swap_node(p, "chest:chest_right", param2) + local m = minetest.env:get_meta(p) + m:set_string("formspec", + "size[9,11.5]".. + "list[nodemeta:"..pos.x..","..pos.y..","..pos.z..";main;0,0;9,3;]".. + "list[current_name;main;0,3;9,3;]".. + "list[current_player;main;0,7;9,3;9]".. + "list[current_player;main;0,10.5;9,1;]") + m:set_string("infotext", "Large Chest") + else + meta:set_string("formspec", + "size[9,8.5]".. + "list[current_name;main;0,0;9,3;]".. + "list[current_player;main;0,4;9,3;9]".. + "list[current_player;main;0,7.5.5;9,1;]") + meta:set_string("infotext", "Chest") + end + local inv = meta:get_inventory() + inv:set_size("main", 9*3) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local meta = minetest.env:get_meta(pos) + local meta2 = meta + meta:from_table(oldmetadata) + local inv = meta:get_inventory() + for i=1,inv:get_size("main") do + local stack = inv:get_stack("main", i) + if not stack:is_empty() then + local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5} + minetest.env:add_item(p, stack) + end + end + meta:from_table(meta2:to_table()) + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name().. + " moves stuff in chest at "..minetest.pos_to_string(pos)) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " moves stuff to chest at "..minetest.pos_to_string(pos)) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " takes stuff from chest at "..minetest.pos_to_string(pos)) + end, +}) + +minetest.register_node("chest:chest_left", { + tiles = {"default_chest_top_big.png", "default_chest_top_big.png", "default_chest_side.png", + "default_chest_side.png", "default_chest_side_big.png^[transformFX", "default_chest_front_big.png"}, + paramtype2 = "facedir", + groups = {choppy=2,oddly_breakable_by_hand=2}, + drop = "default:chest", + sounds = default.node_sound_wood_defaults(), + on_destruct = function(pos) + local m = minetest.env:get_meta(pos) + if m:get_string("infotext") == "Chest" then + return + end + local param2 = minetest.env:get_node(pos).param2 + local p = get_chest_neighborpos(pos, param2, "left") + if not p or minetest.env:get_node(p).name ~= "chest:chest_right" then + return + end + local meta = minetest.env:get_meta(p) + meta:set_string("formspec", + "size[9,8.5]".. + "list[current_name;main;0,0;9,3;]".. + "list[current_player;main;0,4;9,3;9]".. + "list[current_player;main;0,7.5.5;9,1;]") + meta:set_string("infotext", "Chest") + hacky_swap_node(p, "default:chest") + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local meta = minetest.env:get_meta(pos) + local meta2 = meta + meta:from_table(oldmetadata) + local inv = meta:get_inventory() + for i=1,inv:get_size("main") do + local stack = inv:get_stack("main", i) + if not stack:is_empty() then + local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5} + minetest.env:add_item(p, stack) + end + end + meta:from_table(meta2:to_table()) + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name().. + " moves stuff in chest at "..minetest.pos_to_string(pos)) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " moves stuff to chest at "..minetest.pos_to_string(pos)) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " takes stuff from chest at "..minetest.pos_to_string(pos)) + end, +}) + +minetest.register_node("chest:chest_right", { + tiles = {"default_chest_top_big.png^[transformFX", "default_chest_top_big.png^[transformFX", "default_chest_side.png", + "default_chest_side.png", "default_chest_side_big.png", "default_chest_front_big.png^[transformFX"}, + paramtype2 = "facedir", + groups = {choppy=2,oddly_breakable_by_hand=2}, + drop = "default:chest", + sounds = default.node_sound_wood_defaults(), + on_destruct = function(pos) + local m = minetest.env:get_meta(pos) + if m:get_string("infotext") == "Chest" then + return + end + local param2 = minetest.env:get_node(pos).param2 + local p = get_chest_neighborpos(pos, param2, "right") + if not p or minetest.env:get_node(p).name ~= "chest:chest_left" then + return + end + local meta = minetest.env:get_meta(p) + meta:set_string("formspec", + "size[9,8.5]".. + "list[current_name;main;0,0;9,3;]".. + "list[current_player;main;0,4;9,3;9]".. + "list[current_player;main;0,7.5.5;9,1;]") + meta:set_string("infotext", "Chest") + hacky_swap_node(p, "default:chest") + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local meta = minetest.env:get_meta(pos) + local meta2 = meta + meta:from_table(oldmetadata) + local inv = meta:get_inventory() + for i=1,inv:get_size("main") do + local stack = inv:get_stack("main", i) + if not stack:is_empty() then + local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5} + minetest.env:add_item(p, stack) + end + end + meta:from_table(meta2:to_table()) + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name().. + " moves stuff in chest at "..minetest.pos_to_string(pos)) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " moves stuff to chest at "..minetest.pos_to_string(pos)) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " takes stuff from chest at "..minetest.pos_to_string(pos)) + end, +}) + diff --git a/mods/chest/textures/default_chest_front.png b/mods/chest/textures/default_chest_front.png new file mode 100755 index 00000000..47b7771b Binary files /dev/null and b/mods/chest/textures/default_chest_front.png differ diff --git a/mods/chest/textures/default_chest_front_big.png b/mods/chest/textures/default_chest_front_big.png new file mode 100755 index 00000000..b7489049 Binary files /dev/null and b/mods/chest/textures/default_chest_front_big.png differ diff --git a/mods/chest/textures/default_chest_side.png b/mods/chest/textures/default_chest_side.png new file mode 100755 index 00000000..5665168c Binary files /dev/null and b/mods/chest/textures/default_chest_side.png differ diff --git a/mods/chest/textures/default_chest_side_big.png b/mods/chest/textures/default_chest_side_big.png new file mode 100755 index 00000000..3f46688b Binary files /dev/null and b/mods/chest/textures/default_chest_side_big.png differ diff --git a/mods/chest/textures/default_chest_top.png b/mods/chest/textures/default_chest_top.png new file mode 100755 index 00000000..b4e8a125 Binary files /dev/null and b/mods/chest/textures/default_chest_top.png differ diff --git a/mods/chest/textures/default_chest_top_big.png b/mods/chest/textures/default_chest_top_big.png new file mode 100755 index 00000000..6da266d4 Binary files /dev/null and b/mods/chest/textures/default_chest_top_big.png differ diff --git a/mods/chesttools/README.md b/mods/chesttools/README.md new file mode 100644 index 00000000..9db2f84b --- /dev/null +++ b/mods/chesttools/README.md @@ -0,0 +1 @@ +This is work in progress. diff --git a/mods/chesttools/depends.txt b/mods/chesttools/depends.txt new file mode 100644 index 00000000..4ad96d51 --- /dev/null +++ b/mods/chesttools/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/chesttools/init.lua b/mods/chesttools/init.lua new file mode 100644 index 00000000..943d84e4 --- /dev/null +++ b/mods/chesttools/init.lua @@ -0,0 +1,477 @@ + +chesttools = {} + +chesttools.chest_add = {}; +chesttools.chest_add.tiles = { + "chesttools_blue_chest_top.png", "chesttools_blue_chest_top.png", "chesttools_blue_chest_side.png", + "chesttools_blue_chest_side.png", "chesttools_blue_chest_side.png", "chesttools_blue_chest_lock.png"}; +chesttools.chest_add.groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}; +chesttools.chest_add.tube = {}; + +-- additional/changed definitions for pipeworks; +-- taken from pipeworks/compat.lua +if( minetest.get_modpath( 'pipeworks' )) then + chesttools.chest_add.tiles = { + "chesttools_blue_chest_top.png^pipeworks_tube_connection_wooden.png", + "chesttools_blue_chest_top.png^pipeworks_tube_connection_wooden.png", + "chesttools_blue_chest_side.png^pipeworks_tube_connection_wooden.png", + "chesttools_blue_chest_side.png^pipeworks_tube_connection_wooden.png", + "chesttools_blue_chest_side.png^pipeworks_tube_connection_wooden.png"}; + chesttools.chest_add.groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2, + tubedevice = 1, tubedevice_receiver = 1 }; + chesttools.chest_add.tube = { + insert_object = function(pos, node, stack, direction) + local meta = minetest.env:get_meta(pos) + local inv = meta:get_inventory() + return inv:add_item("main", stack) + end, + can_insert = function(pos, node, stack, direction) + local meta = minetest.env:get_meta(pos) + local inv = meta:get_inventory() + return inv:room_for_item("main", stack) + end, + input_inventory = "main", + connect_sides = {left=1, right=1, back=1, front=1, bottom=1, top=1} + }; +end + +chesttools.formspec = "size[9,10]".. + "list[current_name;main;0.5,0.3;8,4;]".. + "label[0.0,4.4;Main]".. + "button[1.0,4.5;1,0.5;craft;Craft]".. + "button[7.0,4.5;0.5,0.5;drop_all;DA]".. + "button[7.5,4.5;0.5,0.5;take_all;TA]".. + "button[8.0,4.5;0.5,0.5;swap_all;SA]".. + "button[8.5,4.5;0.5,0.5;filter_all;FA]"; + +if( minetest.get_modpath( 'unified_inventory')) then + chesttools.formspec = chesttools.formspec.. + "button[2.0,4.5;1,0.5;bag1;Bag 1]".. + "button[3.0,4.5;1,0.5;bag2;Bag 2]".. + "button[4.0,4.5;1,0.5;bag3;Bag 3]".. + "button[5.0,4.5;1,0.5;bag4;Bag 4]"; +end + + +chesttools.may_use = function( pos, player ) + local name = player:get_player_name(); + local meta = minetest.get_meta( pos ); + local owner = meta:get_string( 'owner' ) + -- the owner can access the chest + if( onwer == name or owner == "" ) then + return true; + end + -- the shared function only kicks in if the area is protected + if( not( minetest.is_protected(pos, player:get_player_name())) + and minetest.is_protected(pos, ' _DUMMY_PLAYER_ ')) then + return true; + end + return true; +end + + +chesttools.on_receive_fields = function(pos, formname, fields, player) + if( fields.quit ) then + return; + end + local formspec = "size[9,10]".. + "list[current_name;main;0.5,0.3;8,4;]".. + "button[7.0,4.5;0.5,0.5;drop_all;DA]".. + "button[7.5,4.5;0.5,0.5;take_all;TA]".. + "button[8.0,4.5;0.5,0.5;swap_all;SA]".. + "button[8.5,4.5;0.5,0.5;filter_all;FA]"; + local bm = "button[0.0,4.5;1,0.5;main;Main]"; + local bc = "button[1.0,4.5;1,0.5;craft;Craft]"; + local b1 = "button[2.0,4.5;1,0.5;bag1;Bag 1]"; + local b2 = "button[3.0,4.5;1,0.5;bag2;Bag 2]"; + local b3 = "button[4.0,4.5;1,0.5;bag3;Bag 3]"; + local b4 = "button[5.0,4.5;1,0.5;bag4;Bag 4]"; + + local selected = ''; + if( fields.drop_all or fields.take_all or fields.swap_all or fields.filter_all ) then + -- check if the player has sufficient access to the chest + local node = minetest.get_node( pos ); + local meta = minetest.get_meta( pos ); + -- deny access for unsupported chests + if( not( node ) + or (node.name == 'chesttools:shared_chest' and not( chesttools.may_use( pos, player ))) + or (node.name == 'default:chest_locked'and player:get_player_name() ~= meta:get_string('owner' ))) then + if( node.name ~= 'default:chest' ) then + minetest.chat_send_player( player:get_player_name(), 'Sorry, you do not have access to the content of this chest.'); + return; + end + end + selected = fields.selected; + if( not( selected ) or selected == '' ) then + selected = 'main'; + end + local inv_list = 'main'; + if( selected == 'main' ) then + inv_list = 'main'; + elseif( selected == 'craft' ) then + inv_list = 'craft'; + elseif( selected == 'bag1' or selected == 'bag2' or selected == 'bag3' or selected=='bag4') then + inv_list = selected.."contents"; + end + + local player_inv = player:get_inventory(); + local chest_inv = meta:get_inventory(); + + if( fields.drop_all ) then + for i,v in ipairs( player_inv:get_list( inv_list ) or {}) do + if( chest_inv and chest_inv:room_for_item('main', v)) then + local leftover = chest_inv:add_item( 'main', v ); + player_inv:remove_item( inv_list, v ); + if( leftover and not( leftover:is_empty() )) then + player_inv:add_item( inv_list, v ); + end + end + end + elseif( fields.take_all ) then + for i,v in ipairs( chest_inv:get_list( 'main' ) or {}) do + if( player_inv:room_for_item( inv_list, v)) then + local leftover = player_inv:add_item( inv_list, v ); + chest_inv:remove_item( 'main', v ); + if( leftover and not( leftover:is_empty() )) then + chest_inv:add_item( 'main', v ); + end + end + end + + elseif( fields.swap_all ) then + for i,v in ipairs( player_inv:get_list( inv_list ) or {}) do + if( chest_inv ) then + local tmp = player_inv:get_stack( inv_list, i ); + player_inv:set_stack( inv_list, i, chest_inv:get_stack( 'main', i )); + chest_inv:set_stack( 'main', i, v ); + end + end + + elseif( fields.filter_all ) then + for i,v in ipairs( player_inv:get_list( inv_list ) or {}) do + if( chest_inv and chest_inv:room_for_item('main', v) and chest_inv:contains_item( 'main', v:get_name())) then + local leftover = chest_inv:add_item( 'main', v ); + player_inv:remove_item( inv_list, v ); + if( leftover and not( leftover:is_empty() )) then + player_inv:add_item( inv_list, v ); + end + end + end + end + end + + local meta = minetest.get_meta( pos ); + local bag_nr = 0; + if( fields[ 'main'] or selected=='main') then + bag_nr = 0; + formspec = formspec.. + "list[current_player;main;0.5,5.5;8,4;]"; + bm = "label[0.0,4.4;Main]"; + selected = 'main'; + + elseif( fields[ 'craft'] or selected=='craft') then + bag_nr = 0; + formspec = formspec.. + "label[0,5.5;Crafting]".. + "list[current_player;craftpreview;6.5,6.5;1,1;]".. + "list[current_player;craft;2.5,6.5;3,3;]"; + bc = "label[1.0,4.4;Craft]"; + selected = 'craft'; + + elseif( fields[ 'bag1' ] or selected=='bag1') then + bag_nr = 1; + b1 = "label[2.0,4.4;Bag 1]"; + selected = 'bag1'; + elseif( fields[ 'bag2' ] or selected=='bag2') then + bag_nr = 2; + b2 = "label[3.0,4.4;Bag 2]"; + selected = 'bag2'; + elseif( fields[ 'bag3' ] or selected=='bag3') then + bag_nr = 3; + b3 = "label[4.0,4.4;Bag 3]"; + selected = 'bag3'; + elseif( fields[ 'bag4' ] or selected=='bag4') then + bag_nr = 4; + b4 = "label[5.0,4.4;Bag 4]"; + selected = 'bag4'; + end + + if( bag_nr >= 1 and bag_nr <= 4 ) then + formspec = formspec.. + "label[0.5,5.5;Bag "..bag_nr.."]"; + local stack = player:get_inventory():get_stack( "bag"..bag_nr, 1) + if( stack and not( stack:is_empty())) then + local image = stack:get_definition().inventory_image + if( image ) then + formspec = formspec.. + "image[7.5,5.5;1,1;"..image.."]"; + end + local slots = stack:get_definition().groups.bagslots + if( slots and slots>0 ) then -- no bag present? + formspec = formspec.. + "list[current_player;bag"..bag_nr.."contents;0.5,6.5;8,"..tostring(slots/8)..";]"; + end + end + end + + + formspec = formspec..bm..bc..b1..b2..b3..b4.. + -- provide the position of the chest + "field[20,20;0.1,0.1;pos2str;Pos;"..minetest.pos_to_string( pos ).."]".. + -- which inventory was selected? + "field[20,20;0.1,0.1;selected;selected;"..selected.."]"; + + -- instead of updating the formspec of the chest - which would be slow - we display + -- the new formspec directly to the player who asked for it; + -- this is also necessary because players may have bags with diffrent sizes + minetest.show_formspec( player:get_player_name(), "chesttools:shared_chest", formspec ); +end + + +chesttools.update_chest = function(pos, formname, fields, player) + local pname = player:get_player_name(); + if( not( pos ) or not( pos.x ) or not( pos.y ) or not( pos.z )) then + return; + end + local node = minetest.get_node( pos ); + + local price = 1; + if( node.name=='default:chest' ) then + if( fields.normal) then + return; + end + if( fields.locked ) then + price = 1; + elseif( fields.shared ) then + price = 2; + end + elseif( node.name=='default:chest_locked' ) then + if( fields.locked) then + return; + end + if( fields.normal ) then + price = -1; + elseif( fields.shared ) then + price = 1; + end + + elseif( node.name=='chesttools:shared_chest') then + if( fields.shared) then + return; + end + if( fields.normal ) then + price = -2; + elseif( fields.locked ) then + price = -1; + end + + else + return; + end + + local player_inv = player:get_inventory(); + if( price>0 and not( player_inv:contains_item( 'main', 'default:steel_ingot '..tostring( price )))) then + minetest.chat_send_player( pname, 'Sorry. You do not have '..tostring( price )..' steel ingots for the update.'); + return; + end + + -- only work on chests owned by the player (or unlocked ones) + local meta = minetest.get_meta( pos ); + if( node.name ~= 'default:chest' and meta:get_string( 'owner' ) ~= pname ) then + minetest.chat_send_player( pname, 'You can only upgrade your own chests.'); + return; + end + + -- check if steel ingot is present + if( minetest.is_protected(pos, pname )) then + minetest.chat_send_player( pname, 'This chest is protected from digging.'); + return; + end + + if( price > 0 ) then + player_inv:remove_item( 'main', 'default:steel_ingot '..tostring( price )); + elseif( price < 0 ) then + price = price * -1; + player_inv:add_item( 'main', 'default:steel_ingot '..tostring( price )); + end + + -- set the owner field + meta:set_string( 'owner', pname ); + + target = node.name; + if( fields.locked ) then + target = 'default:chest_locked'; + meta:set_string("infotext", "Locked Chest (owned by "..meta:get_string("owner")..")") + elseif( fields.shared ) then + target = 'chesttools:shared_chest'; + meta:set_string("infotext", "Shared Chest (owned by "..meta:get_string("owner")..")") + else + target = 'default:chest'; + meta:set_string("infotext", "Chest") + end + + if( not( fields.shared )) then + meta:set_string("formspec", "size[9,10]".. + "list[current_name;main;0.5,0.3;8,4;]".. + "list[current_player;main;0.5,5.5;8,4;]"); + else + meta:set_string("formspec", chesttools.formspec.. + "list[current_player;main;0.5,5.5;8,4;]"); + end + minetest.swap_node( pos, { name = target, param2 = node.param2 }); + + minetest.chat_send_player( pname, 'Chest changed to '..tostring( minetest.registered_nodes[ target].description ).. + ' for '..tostring( price )..' steel ingots.'); +end + + +-- translate general formspec calls back to specific chests/locations +chesttools.form_input_handler = function( player, formname, fields) + if( (formname == "chesttools:shared_chest" or formname == "chesttools:update") and fields.pos2str ) then + local pos = minetest.string_to_pos( fields.pos2str ); + if( formname == "chesttools:shared_chest") then + chesttools.on_receive_fields(pos, formname, fields, player); + elseif( formname == "chesttools:update") then + chesttools.update_chest( pos, formname, fields, player); + end + + return; + end +end + + +-- establish a callback so that input from the player-specific formspec gets handled +minetest.register_on_player_receive_fields( chesttools.form_input_handler ); + + +minetest.register_node( 'chesttools:shared_chest', { + description = 'Shared chest which can be used by all who can build at that spot', + name = 'shared chest', + tiles = chesttools.chest_add.tiles, + groups = chesttools.chest_add.groups, + tube = chesttools.chest_add.tube, + paramtype2 = "facedir", + 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", "Shared Chest (owned by "..meta:get_string("owner")..")") + end, + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", "Shared Chest") + meta:set_string("owner", "") + local inv = meta:get_inventory() + inv:set_size("main", 8*4) + meta:set_string("formspec", chesttools.formspec.. + "list[current_player;main;0.5,5.5;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 player:get_player_name() == meta:get_string('owner'); + end, + + allow_metadata_inventory_move = function(pos, from_list, from_index, + to_list, to_index, count, player) + + -- the shared function only kicks in if the area is protected + if( not( chesttools.may_use( pos, player ))) then + return 0; + end + return count; + end, + + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + + if( not( chesttools.may_use( pos, player ))) then + return 0; + end + return stack:get_count(); + end, + + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + + if( not( chesttools.may_use( pos, player ))) then + return 0; + end + return stack:get_count(); + end, + + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " puts "..tostring( stack:to_string() ).." to shared 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 "..tostring( stack:to_string() ).." from shared chest at "..minetest.pos_to_string(pos)) + end, + + + on_receive_fields = function(pos, formname, fields, sender) + + if( not( chesttools.may_use( pos, sender ))) then + return; + end + chesttools.on_receive_fields( pos, formname, fields, sender); + end, + + on_use = function(itemstack, user, pointed_thing) + if( user == nil or pointed_thing == nil or pointed_thing.type ~= 'node') then + return nil; + end + local name = user:get_player_name(); + + local pos = minetest.get_pointed_thing_position( pointed_thing, mode ); + local node = minetest.env:get_node_or_nil( pos ); + + if( node == nil or not( node.name )) then + return nil; + end + + if( node.name=='default:chest' + or node.name=='default:chest_locked' + or node.name=='chesttools:shared_chest') then + + local formspec = "size[8,4]".. + "label[2,0.4;Change chest type:]".. + "field[20,20;0.1,0.1;pos2str;Pos;"..minetest.pos_to_string( pos ).."]".. + "button_exit[2,3.5;1.5,0.5;abort;Abort]"; + if( node.name ~= 'default:chest' ) then + formspec = formspec..'item_image_button[1,1;1.5,1.5;default:chest;normal;]'.. + 'button_exit[1,2.5;1.5,0.5;normal;normal]'; + else + formspec = formspec..'item_image[1,1;1.5,1.5;default:chest]'.. + 'label[1,2.5;normal]'; + end + if( node.name ~= 'default:chest_locked' ) then + formspec = formspec..'item_image_button[3,1;1.5,1.5;default:chest_locked;locked;]'.. + 'button_exit[3,2.5;1.5,0.5;locked;locked]'; + else + formspec = formspec..'item_image[3,1;1.5,1.5;default:chest_locked]'.. + 'label[3,2.5;locked]'; + end + if( node.name ~= 'chesttools:shared_chest' ) then + formspec = formspec..'item_image_button[5,1;1.5,1.5;chesttools:shared_chest;shared;]'.. + 'button_exit[5,2.5;1.5,0.5;shared;shared]'; + else + formspec = formspec..'item_image[5,1;1.5,1.5;chesttools:shared_chest]'.. + 'label[5,2.5;shared]'; + end + minetest.show_formspec( name, "chesttools:update", formspec ); + end + return nil; + end, +}) + +minetest.register_craft({ + output = 'chesttools:shared_chest', + type = 'shapeless', + recipe = { 'default:steel_ingot', 'default:chest_locked' }, +}) diff --git a/mods/chesttools/textures/chesttools_blue_chest_lock.png b/mods/chesttools/textures/chesttools_blue_chest_lock.png new file mode 100644 index 00000000..96f50809 Binary files /dev/null and b/mods/chesttools/textures/chesttools_blue_chest_lock.png differ diff --git a/mods/chesttools/textures/chesttools_blue_chest_side.png b/mods/chesttools/textures/chesttools_blue_chest_side.png new file mode 100644 index 00000000..d23afd75 Binary files /dev/null and b/mods/chesttools/textures/chesttools_blue_chest_side.png differ diff --git a/mods/chesttools/textures/chesttools_blue_chest_top.png b/mods/chesttools/textures/chesttools_blue_chest_top.png new file mode 100644 index 00000000..5596ffb0 Binary files /dev/null and b/mods/chesttools/textures/chesttools_blue_chest_top.png differ diff --git a/mods/colormachine/README.md b/mods/colormachine/README.md new file mode 100755 index 00000000..3a58ac73 --- /dev/null +++ b/mods/colormachine/README.md @@ -0,0 +1,15 @@ +If any menu shows something unexpected, please go to another menu page +and come back from there. This ought to update the first menu page. + +depends on: dye + +supports: +unifieddyes +coloredwood +unifiedbricks +stained_glass +cotton +wool +flags +blox + diff --git a/mods/colormachine/depends.txt b/mods/colormachine/depends.txt new file mode 100755 index 00000000..d7789155 --- /dev/null +++ b/mods/colormachine/depends.txt @@ -0,0 +1,17 @@ +dye +default? +unifieddyes? +coloredwood? +unifiedbricks? +stained_glass? +cotton? +wool? +flags? +blox? +homedecor? +plasticbox? +kerova? +hardenedclay? +clstone? +colorcubes? +colouredstonebricks? diff --git a/mods/colormachine/init.lua b/mods/colormachine/init.lua new file mode 100755 index 00000000..c75a1b7a --- /dev/null +++ b/mods/colormachine/init.lua @@ -0,0 +1,1915 @@ + +--[[ + color chooser for unifieddyes + + Copyright (C) 2013 Sokomine + + 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 . +--]] + + + +-- Version 0.6 + +-- Changelog: +-- 17.09.14 Added a modified version of Krocks paintroller from his paint_roller mod. +-- Added additional storage area for dyes (works like a chest for now) +-- 03.09.14 Added a second block type menu. +-- Updated dependency list. +-- Added support for homedecor kitchen chairs, beds and bathroom tiles. Changed sorting order of blocks. +-- 11.06.14 Added support for clstone; see https://forum.minetest.net/viewtopic.php?f=9&t=9257 +-- Changed dye source for white dye from stone to clay as stone can now be colored. +-- Added support for colorcubes; see https://forum.minetest.net/viewtopic.php?f=9&t=9486 +-- Updated support for new sea modpack; see https://forum.minetest.net/viewtopic.php?f=11&t=4627 +-- Adjusted support for hardenedclay; see https://forum.minetest.net/viewtopic.php?f=9&t=8232 +-- Added support for new blox blocks; see https://forum.minetest.net/viewtopic.php?id=1960#p24748 +-- Made the formspec a bit wider in order to account for all the new blocks. +-- 12.03.14 Added support for colouredstonebricks. See https://forum.minetest.net/viewtopic.php?f=9&t=8784 +-- Modified support for hardenedclay due to progress in that mod. +-- 13.02.14 Added support for chests and locked chests from the kerova mod. +-- Added support for hardenedclay mod (to a degree; that mod needs to be fixed first) +-- Added optional obj_postfix support where blocknames are like MODNAME:PREFIX_COLOR_POSTFIX +-- 01.01.14 Added support for plasticbox mod +-- 25.08.13 Added support for framedglass from technic. +-- Added support for shells_dye (lightglass) from the sea mod. +-- 24.08.13 Changed mainmenu so that it hopefully gets more intuitive. +-- Added support for coloredblocks (two-colored blocks). +-- Changed name of superglowglass to super_glow_glass for current moreblocks. +-- Added config option for new stained_glass version. +-- 02.08.13 In creative mode, no dyes are consumed, and an entire stack can be painted at once. +-- Added some more labels in the main menu to make it easier to understand. +-- 22.07.13 Added textures provided by Vanessae +-- fixed a bug concerning normal dyes (when unifieddyes is not installed) + +-- adds a function to check ownership of a node; taken from VanessaEs homedecor mod +colormachine = {}; + +colormachine.colors = { + "red", + "orange", + "yellow", + "lime", + "green", + "aqua", + "cyan", + "skyblue", + "blue", + "violet", + "magenta", + "redviolet" +} + + +-- set this to 0 if you're using that branch of stained_glass where the node names correspond to those of unified_dyes +local stained_glass_exception = 0; + +-- the names of suitable sources of that color (note: this does not work by group!); +-- you can add your own color sources here if you want +colormachine.basic_dye_sources = { "flowers:rose", "flowers:tulip", "flowers:dandelion_yellow", + "", "default:cactus", "", "", "", -- no lime, no aqua, no cyan, no skyblue + "flowers:geranium", "flowers:viola", "", "", -- no magenta, no redviolet + "default:clay_lump", "", "", "", "default:coal_lump" }; + +-- if flowers is not installed +colormachine.alternate_basic_dye_sources = { + "default:apple", "default:desert_stone", "default:sand", + "", "default:cactus", "", "", "", + "default:leaves", "", "", "" , + "default:clay_lump", "", "", "", "default:coal_lump" }; + + + +colormachine.dye_mixes = { red = {}, -- base color + orange = {1,3}, -- red + yellow + yellow = {}, -- base color + lime = {3,5}, -- yellow + green + green = {3,9}, -- yellow + blue + aqua = {5,7}, -- green + cyan + cyan = {5,9}, -- green + blue + skyblue = {7,9}, -- cyan + blue + blue = {}, -- base color + violet = {9,11}, -- blue + magenta + magenta = {9,1}, -- blue + red + redviolet = {11,1}, -- magenta + red + + white = {}, -- base color + lightgrey = {13,15}, -- white + grey + grey = {13,17}, -- black + white + darkgrey = {15,17}, -- grey + black + black = {}, -- base color + } + + + +-- construct the formspec for the color selector +colormachine.prefixes = { 'light_', '', 'medium_', 'dark_' }; + +-- grey colors are named slightly different +colormachine.grey_names = { 'white', 'lightgrey', 'grey', 'darkgrey', 'black' }; + + +-- practical for handling of the dyes +colormachine.colors_and_greys = {}; +for i,v in ipairs( colormachine.colors ) do + colormachine.colors_and_greys[ i ] = v; +end +for i,v in ipairs( colormachine.grey_names ) do + colormachine.colors_and_greys[ #colormachine.colors + i ] = v; +end + +-- defines the order in which blocks are shown +-- nr: the diffrent block types need to be ordered by some system; the number defines that order +-- modname: some mods define more than one type of colored blocks; the modname is needed +-- for checking if the mod is installed and for creating colored blocks +-- shades: some mods (or parts thereof) do not support all possible shades +-- grey_shades: some mods support only some shades of grey (or none at all) +-- u: if set to 1, use full unifieddyes-colors; if set to 0, use only normal dye/wool colors +-- descr: short description of nodes of that type for the main menu +-- block: unpainted basic block +-- add: item names are formed by : (with colorname beeing variable) +-- names for the textures are formed by mostly (see colormachine.translate_color_name(..)) + +colormachine.data = { +-- the dyes as such + unifieddyes_ = { nr=1, modname='unifieddyes', shades={1,0,1,1,1,1,1,1}, grey_shades={1,1,1,1,1}, u=1, descr="ufdye", block="dye:white", add="", p=1 }, + +-- coloredwood: sticks not supported (they are only craftitems) + coloredwood_wood_ = { nr=2, modname='coloredwood', shades={1,0,1,1,1,1,1,1}, grey_shades={1,1,1,1,1}, u=1, descr="planks", block="default:wood", add="wood_", p=2 }, + coloredwood_fence_ = { nr=3, modname='coloredwood', shades={1,0,1,1,1,1,1,1}, grey_shades={1,1,1,1,1}, u=1, descr="fence", block="default:fence_wood", add="fence_", p=2}, + +-- unifiedbricks: clay lumps and bricks not supported (they are only craftitems) + unifiedbricks_clayblock_ = { nr=4, modname='unifiedbricks', shades={1,0,1,1,1,1,1,1}, grey_shades={1,1,1,1,1}, u=1, descr="clay", block="default:clay", add="clayblock_",p=1 }, + unifiedbricks_brickblock_ = { nr=5, modname='unifiedbricks', shades={1,0,1,1,1,1,1,1}, grey_shades={1,1,1,1,1}, u=1, descr="brick", block="default:brick", add="brickblock_",p=1}, + -- the multicolored bricks come in fewer intensities (only 3 shades) and support only 3 insted of 5 shades of grey + unifiedbricks_multicolor_ = { nr=6, modname='unifiedbricks', shades={1,0,0,0,1,0,1,0}, grey_shades={0,1,1,1,0}, u=1, descr="mbrick", block="default:brick", add="multicolor_",p=1}, + + hardenedclay_ = { nr=3.5, modname='hardenedclay', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,1,1,1}, u=0, descr="hclay", block="hardenedclay:hardened_clay_white", add="hardened_clay_", obj_postfix='',p=16}, + colouredstonebricks_ = { nr=3.6, modname='colouredstonebricks', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,1,1,1}, u=0, descr="cbrick", block="default:stonebrick", add="", obj_postfix='',p=1}, + + clstone_stone_ = { nr=3.7, modname='clstone', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,1,1,1}, u=0, descr="clstone",block="default:stone", add="", p=1, obj_postfix='_stone' }, + + colorcubes_1_ = { nr=3.8, modname='colorcubes', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,1,1,1}, u=0, descr="ccubes",block="default:stone", add="", p=1, obj_postfix='_single' }, + colorcubes_4_ = { nr=3.9, modname='colorcubes', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,1,1,1}, u=0, descr="ccube4",block="default:stone", add="", p=1, obj_postfix='_tiled' }, + colorcubes_inward_ = { nr=3.91,modname='colorcubes', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,1,1,1}, u=0, descr="ccubei",block="default:stone", add="", p=1, obj_postfix='_inward' }, + colorcubes_window_ = { nr=3.93,modname='colorcubes', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,1,1,1}, u=0, descr="ccubew",block="default:stone", add="", p=1, obj_postfix='_window' }, + + +-- stained_glass: has a "faint" and "pastel" version as well (which are kind of additional shades used only by this mod) + + -- no shades of grey for the glass + stained_glass_ = { nr=7, modname='stained_glass', shades={1,0,1,1,1,1,1,1}, grey_shades={0,0,0,0,0}, u=1, descr="glass", block="moreblocks:super_glow_glass", add="",p=2}, + stained_glass_faint_ = { nr=8, modname='stained_glass', shades={0,0,1,0,0,0,0,0}, grey_shades={0,0,0,0,0}, u=1, descr="fglass", block="moreblocks:super_glow_glass", add="",p=2}, + stained_glass_pastel_ = { nr=9, modname='stained_glass', shades={0,0,1,0,0,0,0,0}, grey_shades={0,0,0,0,0}, u=1, descr="pglass", block="moreblocks:super_glow_glass", add="",p=2}, + + -- use 9.5 to insert it between stained glass and cotton + framedglass_ = { nr=9.5, modname='framedglass', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,1,1,1}, u=0, descr="fglass", block="framedglass:steel_framed_obsidian_glass", add="steel_framed_obsidian_glass",p=1}, + +-- sea-modpack + shells_dye_ = { nr=9.6, modname='shells_dye', shades={0,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="lglass", block="shells_dye:whitelightglass", add="",p=1 }, +-- TODO shells_dye:whitelightglass + seaglass_seaglass_ = {nr=9.61, modname='seaglass', shades={0,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="seagls", block="seaglass:seaglass", add="seaglass_", p=1}, + seacobble_seacobble_ = {nr=9.62, modname='seacobble', shades={0,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=1, descr="seacob", block="seacobble:seacobble", add="seacobble_", p=1}, + seastone_seastone_ = {nr=9.63, modname='seastone', shades={0,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=1, descr="seasto", block="seastone:seastone", add="seastone_", p=1}, + seastonebrick_seastonebrick_={nr=9.64,modname='seastonebrick',shades={0,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=1, descr="seastb", block="seastonebrick:seastonebrick", add="seastonebrick_", p=1}, + seagravel_seagravel_ = {nr=9.65, modname='seagravel', shades={0,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=1, descr="seagrv", block="seagravel:seagravel", add="seagravel_", p=1}, + +-- cotton: + cotton_ = { nr=10, modname='cotton', shades={1,0,1,1,1,1,1,1}, grey_shades={1,1,1,1,1}, u=1, descr="cotton", block="cotton:white", add="", p=8 }, + +-- normal wool (from minetest_gmae) - does not support all colors from unifieddyes + wool_ = { nr=11, modname='wool', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,1,1,1}, u=0, descr="wool", block="wool:white", add="", p=16 }, + +-- normal dye mod (from minetest_game) - supports as many colors as the wool mod + dye_ = { nr=12, modname='dye', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,1,1,1}, u=0, descr="dye", block="dye:white", add="", p=1 }, + + beds_bed_top_top_ = { nr=13, modname='beds', shades={0,0,1,0,0,0,0,0}, grey_shades={1,0,1,0,1}, u=0, descr="beds", block="beds:bed_white", add="bed_bottom_",p=1}, + + lrfurn_armchair_front_ = { nr=14, modname='lrfurn', shades={0,0,1,0,0,0,0,0}, grey_shades={1,0,1,0,1}, u=0, descr="armchair",block="lrfurn:armchair_white", add="armchair_",p=1 }, + lrfurn_sofa_right_front_ = { nr=15, modname='lrfurn', shades={0,0,1,0,0,0,0,0}, grey_shades={1,0,1,0,1}, u=0, descr="sofa", block="lrfurn:longsofa_white", add="sofa_right_",p=1 }, + lrfurn_longsofa_middle_front_= { nr=16, modname='lrfurn', shades={0,0,1,0,0,0,0,0}, grey_shades={1,0,1,0,1}, u=0, descr="longsofa",block="lrfurn:sofa_white", add="longsofa_right_",p=1 }, + + + -- grey variants do not seem to exist, even though the textures arethere (perhaps nobody wants a grey flag!) + flags_ = { nr=17, modname='flags', shades={0,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=1, descr="flags", block="flags:white", add="", p=3 }, + + blox_stone_ = { nr=18, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="SnBlox", block="default:stone", add="stone", p=2 }, + blox_quarter_ = { nr=19, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="S4Blox", block="default:stone", add="quarter", p=4 }, + blox_checker_ = { nr=20, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="S8Blox", block="default:stone", add="checker", p=4 }, + blox_diamond_ = { nr=21, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="SDBlox", block="default:stone", add="diamond", p=3}, + blox_cross_ = { nr=22, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="SXBlox", block="default:stone", add="cross", p=6 }, + blox_square_ = { nr=23, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="SQBlox", block="default:stone", add="square", p=4 }, + blox_loop_ = { nr=24, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="SLBlox", block="default:stone", add="loop", p=4 }, + blox_corner_ = { nr=25, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="SCBlox", block="default:stone", add="corner", p=6 }, + + blox_wood_ = { nr=26, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="WnBlox", block="default:wood", add="wood", p=2 }, + blox_quarter_wood_ = { nr=27, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="W4Blox", block="default:wood", add="quarter_wood",p=4 }, + blox_checker_wood_ = { nr=28, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="W8Blox", block="default:wood", add="checker_wood",p=4}, + blox_diamond_wood_ = { nr=29, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="WDBlox", block="default:wood", add="diamond_wood",p=4}, + blox_cross_wood_ = { nr=29.1, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="WXBlox", block="default:wood", add="cross_wood",p=4}, + blox_loop_wood_ = { nr=29.3, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="WLBlox", block="default:wood", add="loop_wood",p=4}, + blox_corner_wood_ = { nr=29.4, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="WCBlox", block="default:wood", add="corner_wood",p=4}, + + blox_cobble_ = { nr=30, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="CnBlox", block="default:cobble", add="cobble",p=2 }, + blox_quarter_cobble_ = { nr=30.1, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="C4Blox", block="default:cobble", add="quarter_cobble",p=4 }, + blox_checker_cobble_ = { nr=30.2, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="C8Blox", block="default:cobble", add="checker_cobble",p=4}, + blox_diamond_cobble_ = { nr=30.3, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="CDBlox", block="default:cobble", add="diamond_cobble",p=4}, + blox_cross_cobble_ = { nr=30.4, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="CXBlox", block="default:cobble", add="cross_cobble",p=4}, + blox_loop_cobble_ = { nr=30.6, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="CLBlox", block="default:cobble", add="loop_cobble",p=4}, + blox_corner_cobble_ = { nr=30.7, modname='blox', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,1}, u=0, descr="CCBlox", block="default:cobble", add="corner_cobble",p=4}, + + homedecor_window_shutter_ = { nr=16.1, modname='homedecor', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,1,1,1}, u=0, descr="homedec", block="homedecor:shutter_oak", add="shutter_",p=16}, + forniture_armchair_top_ = { nr=16.2, modname='homedecor', shades={1,0,1,0,0,0,1,0}, grey_shades={0,0,0,0,1}, u=0, descr="armchair", block="homedecor:armchair_black", add="armchair_",p=1}, + forniture_kitchen_chair_sides_ = {nr=16.3, modname='homedecor',shades={1,0,1,0,0,0,1,0}, grey_shades={0,0,0,0,1}, u=0, descr="kchair", block="homedecor:chair", add="chair_",p=1}, + homedecor_bed_ = {nr=16.4, modname='homedecor', shades={1,0,1,0,0,0,1,0}, grey_shades={0,0,0,0,1}, u=0, descr="hbed", block="homedecor:bed_darkgrey_foot", add="bed_",p=1, obj_postfix='_foot'}, + homedecor_bathroom_tiles_ = {nr=16.5, modname='homedecor', shades={1,0,1,0,0,0,1,0}, grey_shades={0,0,0,0,1}, u=0, descr="htiles", block="homedecor:tiles_1", add="tiles_",p=1}, + homedecor_curtain_ = { nr=16.6, modname='homedecor', shades={1,0,1,0,0,0,0,0}, grey_shades={1,0,0,0,0}, u=0, descr="curtain", block="homedecor:curtain_white", add="curtain_"}, + + + plasticbox_ = { nr=16.7, modname='plasticbox', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,1,1,1}, u=0, descr="plastic", block="plasticbox:plasticbox", add="plasticbox_",p=16}, + + + kerova_chest_front_ = { nr=16.8, modname='kerova', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,1,1,1}, u=0, descr="kerova", block="default:chest", add="chest_",p=16}, + kerova_chest_lock_ = { nr=16.9, modname='kerova', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,1,1,1}, u=0, descr="kerolo", block="default:chest_locked", add="chest_", obj_postfix='_locked',p=16}, + + coloredblocks_red_ = { nr=34, modname='coloredblocks', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,0,0,1}, u=0, descr="cb_red", block="coloredblocks:white_white", add="red_",p=1}, + coloredblocks_yellow_ = { nr=35, modname='coloredblocks', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,0,0,1}, u=0, descr="cb_yel", block="coloredblocks:white_white", add="yellow_",p=1}, + coloredblocks_green_ = { nr=36, modname='coloredblocks', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,0,0,1}, u=0, descr="cb_gre", block="coloredblocks:white_white", add="green_",p=1}, + coloredblocks_cyan_ = { nr=37, modname='coloredblocks', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,0,0,1}, u=0, descr="cb_cya", block="coloredblocks:white_white", add="cyan_",p=1}, + coloredblocks_blue_ = { nr=38, modname='coloredblocks', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,0,0,1}, u=0, descr="cb_blu", block="coloredblocks:white_white", add="blue_",p=1}, + coloredblocks_magenta_ = { nr=39, modname='coloredblocks', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,0,0,1}, u=0, descr="cb_mag", block="coloredblocks:white_white", add="magenta_",p=1}, + coloredblocks_brown_ = { nr=40, modname='coloredblocks', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,0,0,1}, u=0, descr="cb_bro", block="coloredblocks:white_white", add="brown_",p=1}, + coloredblocks_white_ = { nr=41, modname='coloredblocks', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,0,0,1}, u=0, descr="cb_whi", block="coloredblocks:white_white", add="white_",p=1}, + coloredblocks_black_ = { nr=42, modname='coloredblocks', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,0,0,1}, u=0, descr="cb_bla", block="coloredblocks:white_white", add="black_",p=1}, + + +--[[ + coloredblocks_red_ = { nr=34, modname='coloredblocks', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,0,0,1}, u=0, descr="cb_red", block="coloredblocks:red", add="red_",p=1}, + coloredblocks_yellow_ = { nr=35, modname='coloredblocks', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,0,0,1}, u=0, descr="cb_yel", block="coloredblocks:yellow", add="yellow_",p=1}, + coloredblocks_green_ = { nr=36, modname='coloredblocks', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,0,0,1}, u=0, descr="cb_gre", block="coloredblocks:green", add="green_",p=1}, + coloredblocks_cyan_ = { nr=37, modname='coloredblocks', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,0,0,1}, u=0, descr="cb_cya", block="coloredblocks:cyan", add="cyan_",p=1}, + coloredblocks_blue_ = { nr=38, modname='coloredblocks', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,0,0,1}, u=0, descr="cb_blu", block="coloredblocks:blue", add="blue_",p=1}, + coloredblocks_magenta_ = { nr=39, modname='coloredblocks', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,0,0,1}, u=0, descr="cb_mag", block="coloredblocks:magenta", add="magenta_",p=1}, + coloredblocks_brown_ = { nr=40, modname='coloredblocks', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,0,0,1}, u=0, descr="cb_bro", block="coloredblocks:brown", add="brown_",p=1}, + coloredblocks_white_ = { nr=41, modname='coloredblocks', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,0,0,1}, u=0, descr="cb_whi", block="coloredblocks:white", add="",p=1}, + coloredblocks_black_ = { nr=42, modname='coloredblocks', shades={1,0,1,0,0,0,1,0}, grey_shades={1,0,0,0,1}, u=0, descr="cb_bla", block="coloredblocks:black", add="black_",p=1}, +--]] +} + + +colormachine.ordered = {} + + +-- the function that creates the color chooser based on the textures of the nodes offered (texture names have to start with m_prefix) +colormachine.generate_form = function( m_prefix ) + + local form = "size["..tostring( #colormachine.colors+2 )..",10]".."label[5,0;Select a color:]".. + "label[5,8.2;Select a color or]".. + "button[7,8.2;2,1;abort;abort selection]".. + "label[0.3,1;light]"; + + -- not all mods offer all shades (and some offer even more) + local supported = colormachine.data[ m_prefix ].shades; + + if( supported[2]==0 ) then + form = form.. + "label[0.3,2;normal]".. + "label[0.3,4;medium]".. + "label[0.3,6;dark]"; + else + form = form.. + "label[0.3,3;normal]".. + "label[0.3,5;medium]".. + "label[0.3,7;dark]"; + end + + for x,basecolor in ipairs( colormachine.colors ) do + local p_offset = 1; + + form = form.."label["..tostring(x)..",0.5;"..tostring( basecolor ).."]"; + + + for y,pre in ipairs( colormachine.prefixes ) do + + if( supported[ y * 2-1 ]==1 ) then + form = form..colormachine.print_color_image( nil, m_prefix, tostring( pre )..tostring( basecolor ), x, y*2-1, -1, x, p_offset, 0 ); + end + + p_offset = p_offset + 1; + + -- these only exist in unifieddyes and need no translation + if( supported[ y * 2 ]==1 ) then + form = form..colormachine.print_color_image( nil, m_prefix, tostring( pre )..tostring( basecolor )..'_s50', x, y*2, -1, x, p_offset, 0 ); + end + + -- the first row does not always hold all colors + if( y >1 or supported[ y * 2 ]==1) then + p_offset = p_offset + 1; + end + end + end + + -- shades of grey + form = form.. "label[" ..tostring( #colormachine.colors+1 )..",0.5;grey]"; + for i,gname in ipairs( colormachine.grey_names ) do + if( colormachine.data[ m_prefix ].grey_shades[ i ]==1 ) then + + form = form..colormachine.print_color_image( nil, m_prefix, gname, -1, -1, i, tostring( #colormachine.colors+1 ), tostring( i+1 ), 0 ); + end + end + return form; +end + + + +colormachine.decode_color_name = function( meta, new_color ) + + -- decode the color codes + local liste = new_color:split( "_" ); + if( #liste < 1 or #liste > 3 ) then + liste = {'white'}; + end + -- perhaps it's one of the grey colors? + for i,v in ipairs( colormachine.grey_names ) do + if( v == liste[1] ) then + if( meta ) then + meta:set_string('selected_shade', -1 ); -- grey-shade + meta:set_string('selected_grey_shade', i ); + meta:set_string('selected_color', -1 ); -- we selected grey + meta:set_string('selected_name', new_color ); + return new_color; + else + return { s=-1, g=i, c=-1 }; + end + end + end + + if( #liste < 1 ) then + if( meta ) then + return meta:get_string('selected_name'); + else + return nil; + end + end + + local selected_shade = 2; -- if no other shade is selected, use plain color + local vgl = liste[1]..'_'; + for i,v in ipairs( colormachine.prefixes ) do + if( v == vgl or v== liste[1]) then + selected_shade = i; + table.remove( liste, 1 ); -- this one has been done + end + end + + if( #liste < 1 ) then + if( meta ) then + return meta:get_string('selected_name'); + else + return nil; + end + end + + local selected_color = -1; + for i,v in ipairs( colormachine.colors ) do + if( v == liste[1] ) then + selected_color = i; + table.remove( liste, 1 ); -- the color has been selected + end + end + + -- the color was not found! error! keep the old color + if( selected_color == -1 ) then + if( meta ) then + return meta:get_string('selected_name'); + else + return nil; + end + end + + if( #liste > 0 and liste[1]=='s50') then + selected_shade = selected_shade * 2; + else + selected_shade = selected_shade * 2 - 1; + end + + if( meta ) then + meta:set_string('selected_shade', selected_shade ); -- grey-shade + meta:set_string('selected_grey_shade', -1 ); + meta:set_string('selected_color', selected_color ); -- we selected grey + meta:set_string('selected_name', new_color ); + return new_color; + else + return { s=selected_shade, g=-1, c= selected_color }; + end +end + + + +-- returns "" if the item does not exist; +-- wrapper for colormachine.translate_color_name(..) + +colormachine.print_color_image = function( meta, k, new_color, c, s, g, pos_x, pos_y, change_link ) + + local translated_color = colormachine.translate_color_name( meta, k, new_color, c, s, g, 0 ); + if( not( translated_color )) then + return ""; + end + + local translated_node_name = colormachine.translate_color_name( meta, k, new_color, c, s, g, 1 ); + if( not( translated_node_name )) then + return ""; + end + + -- a node or craftitem of that name does not exist + if( not( minetest.registered_nodes[ translated_node_name ]) + and not( minetest.registered_craftitems[ translated_node_name ])) then + +--print("NOT FOUND: "..tostring( translated_node_name ).." image_button["..tostring(pos_x)..","..tostring(pos_y)..";1,1;"..translated_color..";"..tostring(link).."; ]"); + return ""; + end + -- switch to the color selector for that blocktype + local link = new_color; + if( change_link==1 ) then + link = k; + end + + return "image_button["..tostring(pos_x)..","..tostring(pos_y)..";1,1;"..translated_color..";"..tostring(link).."; ]"; +end + + +-- returns the translated name of the color if necessary (wool/normal dye is named differently than unifieddyes); +-- either meta or c, s and g together need to be given +-- mode==0: return texture name +-- mode==1: return object name for itemstacks etc +colormachine.translate_color_name = function( meta, k, new_color, c, s, g, as_obj_name ) + + if( meta ~= nil ) then + c = tonumber(meta:get_string('selected_color')); + s = tonumber(meta:get_string('selected_shade')); + g = tonumber(meta:get_string('selected_grey_shade')); + end + + + -- is this special shade supported at all? + if( ( g > 0 and colormachine.data[k].grey_shades[ g ] ~= 1 ) + or ( g == -1 and colormachine.data[k].shades[ s ] ~= 1 )) then + return nil; + end + + local k_orig = k; + -- unifieddyes_ does not supply all colors + if( k == 'unifieddyes_' + and ( (g==-1 and s==3 and (as_obj_name==1 or not(c==4 or c==6 or c==8 or c==12 or c==13 ))) + or (g==-1 and s==1 and c==1 ) -- pink + or (g==-1 and s==7 and c==5 ) -- dark brown + or g==1 or g==3 or g==4 or g==5 )) then + k = 'dye_'; + end + + -- this does break the namescheme... + if( k=='unifieddyes_' and g==2 and as_obj_name==1 ) then + return 'dye:light_grey'; + end + + -- beds and sofas are available in less colors + if( g==-1 + and (c==7 or c==11) + and (k=='beds_bed_top_top_' or k=='lrfurn_sofa_right_front_' or k=='lrfurn_armchair_front_' or k=='lrfurn_longsofa_middle_front_' )) then + + return nil; + end + + -- blox has its own naming scheme - but at least the colors supported are of a simple kind (no shades, no lower saturation) + if( colormachine.data[k].modname == 'blox' ) then + + local color_used = ""; + if( s==1 and c==1 ) then + color_used = 'pink'; -- in blox, this is called "pink"; normally "light_red" + elseif( g>-1 ) then + color_used = colormachine.grey_names[ g ]; + elseif( s ~= 3 ) then + return nil; -- only normal saturation supported + elseif( c==10 ) then + color_used = 'purple'; -- purple and violet are not the same, but what shall we do? + elseif( c==4 or c==6 or c==8 or c>10 ) then + return nil; -- these colors are not supported + elseif( c > 0 ) then + color_used = colormachine.colors[ c ]; + end + + if( as_obj_name == 1 ) then + return 'blox:'..( color_used )..( colormachine.data[k].add ); + else + return 'blox_'..( color_used )..( colormachine.data[k].add )..'.png'; + end + end + + + local postfix = '.png'; + local prefix = k; + -- we want the object name, i.e. default:brick, and not default_brick.png (all with colors inserted...): + if( as_obj_name == 1 ) then + postfix = ''; + + prefix = colormachine.data[ k ].modname..":"..colormachine.data[ k ].add; + + -- stained_glass needs an exception here because it uses a slightly different naming scheme + if( colormachine.data[ k ].modname == 'stained_glass' and stained_glass_exception==1) then + + if( g>0 ) then + return nil; -- no grey values for them + end + local h_trans = {yellow=1, lime=2, green=3, aqua=4, cyan=5, skyblue=6, blue=7, violet=8, magenta=9, redviolet=10, red=11,orange=12}; + + local h = h_trans[ colormachine.colors[c] ]; + + local b = ""; + local sat = ""; + + if( k == 'stained_glass_' ) then + prefix = "stained_glass:"..(colormachine.colors[c]).."_"; + if( s==1 or s==2) then b = "8"; -- light + elseif( s==3 or s==4) then b = "5"; -- normal + elseif( s==5 or s==6) then b = "4"; -- medium + elseif( s==7 or s==8) then b = "3"; -- dark + end + prefix = prefix.."_"; + + sat = "7"; + if( s==2 or s==4 or s==6 or s==8 ) then -- saturation + sat = "6"; + end + if( s==1 ) then + sat = ""; + end + return "stained_glass:" .. (h) .. "_" .. (b) .. "_" .. (sat); + + elseif( k == 'stained_glass_faint_' ) then + return "stained_glass:"..(h).."_91"; + + elseif( k == 'stained_glass_pastel_' ) then + return "stained_glass:"..(h).."_9"; + end + end + end + + -- homedecors names are slightly different.... + if( k == 'homedecor_window_shutter_' ) then + + if( s==1 and new_color=='light_blue' ) then -- only light blue is supported + return prefix..'light_blue'..postfix; + + elseif( new_color=='dark_green' ) then + return prefix..'forest_green'..postfix; + + -- no more light colors, no more cyan or mangenta available; no normal green or blue + elseif( s==1 or c==7 or c==11 or c==5 or c==9 ) then + return nil; + + elseif( new_color=='dark_orange' ) then + return prefix..'mahogany'..postfix; + + elseif( new_color=='orange' ) then + return prefix..'oak'..postfix; + + end + end + + if( k=='cotton_' and new_color=='grey') then + new_color = 'mediumgrey'; + end + + + if( k=='framedglass_' and as_obj_name ~= 1) then + postfix = 'glass.png'; + end + + if( k=='shells_dye_' ) then + if( as_obj_name == 1 ) then + postfix = 'lightglass'; + else + postfix = 'lightglass.png'; + end + end + + + if( k=='homedecor_bed_' ) then + if( as_obj_name == 1 ) then + --postfix = '_foot'; + else + postfix = '_inv.png'; + end + end + + -- those have split textures... + if( colormachine.data[k].modname == 'coloredblocks') then + + + + -- we are looking for the image name + if( prefix==k ) then + + if( new_color == 'dark_orange') then + new_color = 'brown'; + end + + -- show the top of the blocks in the individual formspec + if( not(meta) ) then + return 'coloredblocks_'..new_color..postfix; + end + -- show the side view in the main menu + return string.sub(k, 1, string.len( k )-1)..'half'..postfix; +-- TODO + +--[[ + + if( new_color == 'dark_orange') then + new_color = 'brown'; + end + + return 'coloredblocks_'..new_color..postfix; + + elseif( new_color..'_' == colormachine.data[k].add ) then + + prefix = 'coloredblocks:'; +--]] + end + + end + + if( colormachine.data[k].modname == 'plasticbox' + and new_color == 'dark_green') then + return prefix..'darkgreen'..postfix; + end + + -- some mods need additional data be added after the color name + if( as_obj_name == 1 and colormachine.data[k].obj_postfix ) then + postfix = (colormachine.data[k].obj_postfix) ..postfix; + end + + -- normal dyes (also used for wool) use a diffrent naming scheme + if( colormachine.data[k].u == 0) then + if( new_color == 'darkgrey' and k ~= 'framedglass_') then + return prefix..'dark_grey'..postfix; + elseif( new_color == 'dark_orange' ) then + return prefix..'brown'..postfix; + elseif( new_color == 'dark_green' ) then + return prefix..new_color..postfix; + elseif( new_color == 'light_red' ) then + return prefix..'pink'..postfix; + -- lime, aqua, skyblue and redviolet do not exist as standard wool/dye colors + elseif( g == -1 and (c==4 or c==6 or c==8 or c==12) and k_orig ~= 'unifieddyes_') then + return nil; + -- all other colors of normal dye/wool exist only in normal shade + elseif( g == -1 and s~= 3 and k_orig ~= 'unifieddyes_') then + return nil; + -- colors that are the same in both systems and need no special treatment + else + return prefix..new_color..postfix; + end + end + + return prefix..new_color..postfix; +end + + +-- if a block is inserted, the name of its color is very intresting (for removing color or for setting that color) +-- (kind of the inverse of translate_color_name) +colormachine.get_color_from_blockname = function( mod_name, block_name ) + + local bname = mod_name..":"..block_name; + local found = {}; + for k,v in pairs( colormachine.data ) do + if( mod_name == v.modname ) then + table.insert( found, k ); + end + end + + if( #found < 1 ) then + return { error_code ="Sorry, this block is not supported by the spray booth.", + found_name = "", + blocktype = ""}; + end + + -- another case of special treatment needed; at least the color is given in the tiles + if( mod_name =='stained_glass' and stained_glass_exception==1) then + + local original_node = minetest.registered_nodes[ bname ]; + if( original_node ~= nil ) then + local tile = original_node.tiles[1]; + local liste2 = string.split( tile, "%."); + block_name = liste2[1]; + end + end + + -- this mod does not seperate modname and objectname well enough :-( Naming scheme:- steel_framed_obsidian_glassCOLOR + if( mod_name =='framedglass' ) then + block_name = string.sub( block_name, 28 ); + end + + if( mod_name =='shells_dye' ) then + block_name = string.sub( block_name, 1, string.len( block_name )-string.len( 'lightglass') ); + end + + -- blox uses its own naming scheme + if( mod_name =='blox' ) then + -- the color can be found in the description + local original_node = minetest.registered_nodes[ bname ]; + if( original_node ~= nil ) then + + local bloxdescr = original_node.description; + -- bloxparts[1] will be filled with the name of the color: + local bloxparts = string.split( bloxdescr, " "); + -- now extract the blocktype information + if( bloxparts ~= nil and #bloxparts > 0 ) then + + -- we split with the color name + local found_name = bloxparts[1]; + local blocktype = 'blox_'..string.sub( block_name, string.len( found_name )+1 )..'_'; + + -- handle pink and purple + if( found_name == 'pink' ) then + found_name = 'light_red'; + elseif( found_name == 'purple' ) then + found_name = 'violet'; + end + + return { error_code = nil, + found_name = found_name, -- the name of the color + blocktype = blocktype }; -- the blocktype + end + end + -- if this point is reached, the decoding of the blox-block-name has failed + return { error_code = "Error: Failed to decode color of this blox-block.", + found_name = "", + blocktype = "" }; + + end + + -- homedecors names are slightly different.... + if( mod_name == 'homedecor' ) then + + -- change the blockname to the expected color + if( block_name == 'shutter_forest_green' ) then + block_name = 'shutter_dark_green'; + + elseif( block_name == 'shutter_mahogany' ) then + block_name = 'shutter_dark_orange'; + + -- this is the default, unpainted one..which can also be considered as "orange" in the menu +-- elseif( blockname == 'shutter_oak' ) then +-- block_name = 'shutter_orange'; + end + end + + if( mod_name == 'plasticbox' and block_name == 'plasticbox_darkgreen' ) then + block_name = 'plasticbox_dark_green'; + end + + -- even cotton needs an exception... + if( mod_name == 'cotton' and block_name=='mediumgrey' ) then + block_name = 'grey'; + end + + + + local blocktype = ''; + -- some mods may have a postfix to their modname (which is pretty annoying) + for _,k in ipairs( found ) do + if( colormachine.data[k].obj_postfix ) then + + local l = string.len( colormachine.data[k].obj_postfix); + if( string.len( block_name ) > l + and string.sub( block_name, -1*l ) == colormachine.data[k].obj_postfix ) then + + block_name = string.sub( block_name, 1, (-1*l)-1 ); + blocktype = k; + end + end + end + + -- try to analyze the name of this color; this works only if the block follows the color scheme + local liste = string.split( block_name, "_" ); + local curr_index = #liste; + + -- handle some special wool- and dye color names + -- dark_grey <-> darkgrey + if( #liste > 1 and liste[ curr_index ]=='grey' and liste[ curr_index - 1 ] == 'dark' ) then + curr_index = curr_index - 1; + liste[ curr_index ] = 'darkgrey'; + + -- brown <=> dark_orange + elseif( #liste > 0 and liste[ curr_index ]=='brown' ) then + liste[ curr_index ] = 'dark'; + table.insert( liste, 'orange' ); + curr_index = curr_index + 1; + + -- pink <=> light_red + elseif( #liste > 0 and liste[ curr_index ]=='pink' ) then + liste[ curr_index ] = 'light'; + table.insert( liste, 'red' ); + curr_index = curr_index + 1; + end + + -- find out the saturation - either "s50" or omitted + local sat = 0; + if( curr_index > 1 and liste[ curr_index ] == "s50" ) then + sat = 1; + curr_index = curr_index - 1; + end + + -- the next value will be the color + local c = 0; + if( curr_index > 0 ) then + for i,v in ipairs( colormachine.colors ) do + if( c==0 and curr_index > 0 and v == liste[ curr_index ] ) then + c = i; + curr_index = curr_index - 1; + end + end + end + + local g = -1; + -- perhaps we are dealing with a grey value + if( curr_index > 0 and c==0 ) then + for i,v in ipairs(colormachine.grey_names ) do + if( g==-1 and curr_index > 0 and v == liste[ curr_index ] ) then + g = i; + c = -1; + curr_index = curr_index - 1; + end + end + end + + -- determine the real shade; 3 stands for normal + local s = 3; + if( curr_index > 0 and g==-1 and c~=0) then + if( liste[ curr_index ] == 'light' ) then + s = 1; + curr_index = curr_index - 1; + elseif( liste[ curr_index ] == 'medium' ) then + s = 5; + curr_index = curr_index - 1; + elseif( liste[ curr_index ] == 'dark' ) then + s = 7; + curr_index = curr_index - 1; + end + end + + local found_name = ""; + if( g ~= -1 ) then + found_name = colormachine.grey_names[ g ]; + elseif( c > 0 ) then + + found_name = colormachine.prefixes[ math.floor((s+1)/2) ] .. colormachine.colors[ c ]; + + if( sat==1 ) then + s = s+1; + found_name = found_name.."_s50"; + end + end + + -- for blocks that do not follow the naming scheme - the color cannot be decoded + if( g==-1 and c==0 ) then + return { error_code ="This is a colored block: "..tostring( bname )..".", + found_name = "", + blocktype = ""}; + end + + -- identify the block type/subname + local add = ""; + if( not( blocktype ) or blocktype == '' ) then + + blocktype = found[1]; + end + + if( curr_index > 0 ) then + + for k,v in pairs( colormachine.data ) do + -- prefix and postfix have to fit + if( curr_index > 0 and add=="" and mod_name == v.modname and (liste[ curr_index ].."_") == v.add + -- if a postfix exists, we did check for that before and set blocktype accordingly + and( not( blocktype ) or blocktype=='' or blocktype==k)) then + add = v.add; + blocktype = k; + curr_index = curr_index - 1; + end + end + end + + if( curr_index > 0 and #liste>0 and liste[1]=='chair' and blocktype == 'homedecor_bed_' ) then + return { error_code = nil, + found_name = found_name, + blocktype = 'forniture_kitchen_chair_sides_'}; + end + + if( curr_index > 0 ) then + print( 'colormachine: ERROR: leftover name parts for '..tostring( bname )..": "..minetest.serialize( liste )); + end + + return { error_code = nil, + found_name = found_name, + blocktype = blocktype}; +end + + + +-- if the player has selected a color, show all blocks in that color +colormachine.blocktype_menu = function( meta, new_color, start_at_offset ) + + new_color = colormachine.decode_color_name( meta, new_color ); + + -- keep the same size as with the color selector + local form = "size["..tostring( #colormachine.colors+2 )..",10]".."label[5,0;Select a blocktype:]".. + "label[0.2,1.2;name]".. + "label[0.2,2.2;unpainted]".. + "label[0.2,3.2;colored]".. + "button[1,0.5;4,1;dye_management;Manage stored dyes]".. + "button[5,0.5;4,1;main_menu;Back to main menu]"; + local x = 1; + local y = 2; + + for i,k in ipairs( colormachine.ordered ) do + + -- only installed mods are of intrest + if( k ~= nil and colormachine.data[ k ].installed == 1 and i > start_at_offset and i <= (start_at_offset + 3*13)) then + + -- that particular mod may not offer this color + form = form.."button["..tostring(x)..","..tostring(y-0.8).. ";1,1;"..k..";"..colormachine.data[k].descr.."]".. + "item_image["..tostring(x)..","..tostring(y )..";1,1;"..colormachine.data[k].block.."]"; + + local button = colormachine.print_color_image( meta, k, new_color, nil, nil, nil, tostring(x), tostring(y+1), 1);-- translated_color as return value for button + if( button ~= "" ) then + form = form..button; + else + form = form.."button[".. tostring(x)..","..tostring(y+1)..";1,1;"..k..";n/a]"; + end + + x = x+1; + if( x>13 ) then + x = 1; + y = y+3; + form = form.. + "label[0.2,"..tostring(y-1)..".2;name]".. + "label[0.2,"..tostring(y )..".2;unpainted]".. + "label[0.2,"..tostring(y+1)..".2;colored]"; + if( y>3 ) then + if( start_at_offset == 0 ) then + form = form.."button[9,0.5;4,1;blocktype_menu2;Show further blocks]"; + else + form = form.."button[9,0.5;4,1;blocktype_menu;Back to first page]"; + end + end + end + end + end + return form; +end + + + +-- this function tries to figure out which block type was inserted and how the color can be decoded +colormachine.main_menu_formspec = function( pos, option ) + + local i = 0; + local k = 0; + local v = 0; + + local form = "size[14.5,9]".. + "list[current_player;main;1,5;8,4;]".. +-- TODO +-- "label[3,0.2;Spray booth main menu]".. + "button[6.5,0.25;3,1;dye_management;Manage stored dyes]".. + "button[6.5,0.75;3,1;blocktype_menu;Show supported blocks]".. + + "label[3,0.0;1. Input - Insert material to paint:]".. + "list[current_name;input;4.5,0.5;1,1;]".. + + "label[9.3,-0.5;Additional storage for dyes:]".. + "list[current_name;extrastore;9.3,0;5,9]"; + + if( minetest.setting_getbool("creative_mode") ) then + form = form.."label[0.5,0.25;CREATIVE MODE:]".."label[0.5,0.75;no dyes or input consumed]"; + end + + local meta = minetest.env:get_meta(pos); + local inv = meta:get_inventory(); + + -- display the name of the color the machine is set to + form = form.."label[1.0,4.3;Current painting color:]".. + "label[3.5,4.3;"..(meta:get_string('selected_name') or "?" ).."]".. + -- display the owner name + "label[7,4.3;Owner: "..(meta:get_string('owner') or "?" ).."]"; + + if( inv:is_empty( "input" )) then + form = form.."label[2.2,3.0;Insert block to be analyzed.]"; + return form; + end + + local stack = inv:get_stack( "input", 1); + local bname = stack:get_name(); + -- lets find out if this block is one of the unpainted basic blocks calling for paint + local found = {}; + for k,v in pairs( colormachine.data ) do + if( bname == v.block and colormachine.data[ k ].installed==1) then + table.insert( found, k ); + end + end + + -- make sure all output fields are empty + for i = 1, inv:get_size( "output" ) do + inv:set_stack( "output", i, "" ); + end + + local anz_blocks = stack:get_count(); + + -- a block that can be colored + if( #found > 0 ) then + + local out_offset = 3.5-math.floor( #found / 2 ); + if( out_offset < 0 ) then + out_offset = 0; + end + + local anz_found = 0; + local p_values = {}; -- how many blocks can be colored with one pigment? + for i,v in ipairs( found ) do + if( i <= inv:get_size( "output" )) then + + -- offer the description-link + form = form.."button["..tostring(out_offset+i)..","..tostring(1.45)..";1,1;"..v..";"..colormachine.data[v].descr.."]"; + + -- when clicking here, the color selection menu for that blocktype is presented + local button = colormachine.print_color_image( meta, v, meta:get_string('selected_name'), nil, nil, nil, tostring(out_offset+i), tostring(2.0),1 ); + + if( button ~= "" ) then + + local block_name = colormachine.translate_color_name( meta, v, meta:get_string('selected_name'), nil, nil, nil, 1 ); + -- one pigment is enough for factor blocks: + local factor = colormachine.data[ v ].p; + -- how many of these blocks can we actually paint? + + local can_be_painted = 0; + if( not( minetest.setting_getbool("creative_mode") )) then + can_be_painted = colormachine.calc_dyes_needed( meta, inv, math.ceil( anz_blocks / factor ), 0 ); + else + can_be_painted = 99; -- an entire stack can be painted in creative mode + end + inv:set_stack( "output", i, block_name.." "..tostring( math.min( can_be_painted * factor, anz_blocks ))); + + p_values[ i ] = factor; + + form = form..button; + else + inv:set_stack( "output", i, "" ); + +-- form = form.."button[" ..tostring(2+i)..","..tostring(2.5)..";1,1;"..v..";"..colormachine.data[v].descr.."]"; + form = form.."button[".. tostring(out_offset+i)..","..tostring(2.0)..";1,1;"..v..";n/a]"; + end + anz_found = anz_found + 1; + end + end + -- so that we can determine the factor when taking blocks from the output slots + meta:set_string('p_values', minetest.serialize( p_values )); + + -- this color was not supported + if( anz_found == 0 ) then + form = form.."label[2.2,3.0;Block is not available in that color.]"; + return form; + end + + form = form.."label[3.0,1.2;2. Select color for any style:]".. + "label[3.0,2.9;3. Take output (determines style):]".. + "list[current_name;output;"..tostring(out_offset+1)..",3.5;"..tostring( anz_found )..",1;]"; + return form; + end -- end of handling of blocks that can be colored + + + -- get the modname + local parts = string.split(bname,":"); + if( #parts < 2 ) then + form = form.."label[2.2,3.0;ERROR! Failed to analyze the name of this node: "..tostring(bname).."]"; + return form; + end + + + -- it may be a dye source + for i,v in ipairs( colormachine.basic_dye_sources ) do + -- we have found the right color! + if( bname == v ) then + form = form.."label[2.2,3.0;This is a dye source.]".. + "button[6,3.0;3,1;turn_into_dye;Add to internal dye storage]"; + return form; + end + end + + + -- it is possible that we are dealing with an already painted block - in that case we have to dertermie the color + local found_color_data = colormachine.get_color_from_blockname( parts[1], parts[2] ); + if( found_color_data.error_code ~= nil ) then + form = form.."label[2.2,3.0;"..found_color_data.error_code..".]"; + return form; + end + + -- the previous analyse was necessary in order to determine which block we ought to use + if( option == 'remove_paint' ) then + -- actually remove the paint from the + inv:set_stack( "input", 1, colormachine.data[ found_color_data.blocktype ].block.." "..tostring( anz_blocks )); + -- update display (we changed the input!) + return colormachine.main_menu_formspec(pos, "analyze"); + end + + + if( option == 'adapt_color' ) then + -- actually change the color + colormachine.decode_color_name( meta, found_color_data.found_name ); + -- default color changed - update the menu + return colormachine.main_menu_formspec(pos, "analyze"); + end + + -- print color name; select as input color / remove paint + form = form.."label[2.2,3.0;This is: "..tostring( found_color_data.found_name )..".]".. + "button[6,3.5;3,1;remove_paint;Remove paint]"; + + if( found_color_data.found_name ~= meta:get_string( 'selected_name' )) then + form = form.."button[6,2.6;3,1;adapt_color;Set as new color]"; + else + form = form.."label[5.5,2.0;This is the selected color.]"; + end + + return form; +end + + +-- returns a list of all blocks that can be created by applying dye_node_name to the basic node of old_node_name +colormachine.get_node_name_painted = function( old_node_name, dye_node_name ) + local possible_blocks = {}; + local unpainted_block = ""; + local old_dye = ""; + for k,v in pairs( colormachine.data ) do + if( old_node_name == v.block and colormachine.data[ k ].installed==1) then + table.insert( possible_blocks, k ); + unpainted_block = old_node_name; + end + end + + if( unpainted_block == "" ) then + local parts = string.split(old_node_name,":"); + if( #parts < 2 ) then + return; + end + found_color_data_block = colormachine.get_color_from_blockname( parts[1], parts[2] ); + if( found_color_data_block.error_code ~= nil ) then + return; + end + unpainted_block = colormachine.data[ found_color_data_block.blocktype ].block; + old_dye = found_color_data_block.found_name; + + -- figure out how the dye this block was painted with was called + local cdata = colormachine.decode_color_name( nil, old_dye ); + if( cdata ) then + old_dye = colormachine.translate_color_name( nil, 'unifieddyes_', old_dye, cdata.c, cdata.s, cdata.g, 1 ); + if( not( old_dye ) or old_dye == '' ) then + old_dye = colormachine.translate_color_name( nil, 'dye_', old_dye, cdata.c, cdata.s, cdata.g, 1 ); + end + else + old_dye = ''; + end + end + if( unpainted_block ~= "" and #possible_blocks < 1 ) then + for k,v in pairs( colormachine.data ) do + if( unpainted_block == v.block and colormachine.data[ k ].installed==1) then + table.insert( possible_blocks, k ); + end + end + end + + -- remove paint + if( not( dye_node_name ) or dye_node_name == "") then + return {possible={unpainted_block},old_dye = old_dye}; + end + + -- decode dye name + parts = string.split(dye_node_name,":"); + if( #parts < 2 ) then + return; + end + local found_color_data_color = colormachine.get_color_from_blockname( parts[1], parts[2] ); + + if( found_color_data_color.error_code ~= nil ) then + return; + end + local dye_name = found_color_data_color.found_name; + + local cdata = colormachine.decode_color_name( nil, dye_name ); + if( not( cdata )) then + return; + end + + -- find out for which block types/patterns this unpainted block is the basic one + local found = {}; + for _,k in ipairs( possible_blocks ) do + + local new_block_name = colormachine.translate_color_name( nil, k, dye_name, cdata.c, cdata.s, cdata.g, 1 ); + table.insert( found, new_block_name ); + end + if( #found < 1 ) then + return; + end + return { possible=found, old_dye = old_dye }; +end + + +colormachine.check_owner = function( pos, player ) + -- only the owner can put something in + local meta = minetest.env:get_meta(pos); + + if( meta:get_string('owner') ~= player:get_player_name() ) then + minetest.chat_send_player( player:get_player_name(), + "This spray booth belongs to "..tostring( meta:get_string("owner")).. + ". If you want to use one, build your own!"); + return 0; + end + return 1; +end + + +colormachine.allow_inventory_access = function(pos, listname, index, stack, player, mode) + + -- only specific slots accept input or output + if( (mode=="put" and listname ~= "input" and listname ~= "refill" and listname ~= "dyes" ) + or (mode=="take" and listname ~= "input" and listname ~= "refill" and listname ~= "dyes" and listname ~= "output" and listname ~= "paintless" )) then + + if( listname == "extrastore" ) then + local parts = string.split(stack:get_name(),":"); + if( #parts > 1 and (parts[1]=='unifieddyes' or parts[1]=='dye')) then + return stack:get_count(); + end + end + return 0; + end + + local stack_name = stack:get_name(); + -- the dyes are a bit special - they accept only powder of the correct name + if( listname == "dyes" + and stack_name ~= ("dye:".. colormachine.colors_and_greys[ index ]) + and stack_name ~= ("unifieddyes:"..colormachine.colors_and_greys[ index ]) + and (stack_name ~= "dye:light_grey" or colormachine.colors_and_greys[ index ]~="lightgrey" ) + and (stack_name ~= "dye:dark_grey" or colormachine.colors_and_greys[ index ]~="darkgrey" ) + ) then + + minetest.chat_send_player( player:get_player_name(), 'You can only store dye powders of the correct color here.'); + return 0; + end + + if( not( colormachine.check_owner( pos, player ))) then + return 0; + end + + -- let's check if that type of input is allowed here + if( listname == "refill" ) then + local str = stack:get_name(); + for i,v in ipairs( colormachine.basic_dye_sources ) do + if( str == v and v ~= "") then + return stack:get_count(); + end + end + minetest.chat_send_player( player:get_player_name(), 'Please insert dye sources as listed below here (usually plants)!'); + return 0; + end + + return stack:get_count(); +end + + +colormachine.on_metadata_inventory_put = function( pos, listname, index, stack, player ) + + local meta = minetest.env:get_meta(pos); + local inv = meta:get_inventory(); + + -- nothing to do if onnly a dye was inserted + if( listname == "dyes" ) then + return; + end + + -- an unprocessed color pigment was inserted + if( listname == "refill" ) then + local str = stack:get_name(); + for i,v in ipairs( colormachine.basic_dye_sources ) do + -- we have found the right color! + if( str == v ) then + local count = stack:get_count(); + + -- how much free space do we have in the destination stack? + local dye_stack = inv:get_stack( "dyes", i); + local free = math.floor(dye_stack:get_free_space()/4); + if( free < 1 ) then + minetest.chat_send_player( player:get_player_name(), 'Sorry, the storage for that dye is already full.'); + return 0; + end + if( count < free ) then + free = count; + end + + -- consume the inserted material - no more than the input slot can handle + inv:remove_item(listname, stack:get_name().." "..tostring( free )); + + color_name = colormachine.colors_and_greys[ i ]; + -- add four times that much to the storage + if( i==4 or i==6 or i==8 or i==12 or i==14 ) then + + if( colormachine.data[ 'unifieddyes_' ].installed == 0 ) then + minetest.chat_send_player( player:get_player_name(), 'Sorry, this color requires unifieddyes (which is not installed).'); + return 0; + end + inv:set_stack( "dyes", i, ("unifieddyes:"..color_name).." "..tostring( free*4 + dye_stack:get_count()) ); + else + inv:set_stack( "dyes", i, ("dye:" ..color_name).." "..tostring( free*4 + dye_stack:get_count()) ); + end + end + end + minetest.chat_send_player( player:get_player_name(), 'Please insert dye sources as listed below here (usually plants)!'); + return 0; + end + + if( listname == "input" ) then + -- update the main menu accordingly + meta:set_string( 'formspec', colormachine.main_menu_formspec( pos, "analyze" )); + return; + end +end + + +colormachine.on_metadata_inventory_take = function( pos, listname, index, stack, player ) + + local meta = minetest.env:get_meta(pos); + local inv = meta:get_inventory(); + + + if( listname == "output" ) then + + -- in creative mode, no pigments are consumed + if( minetest.setting_getbool("creative_mode") ) then + -- update the main menu + meta:set_string( 'formspec', colormachine.main_menu_formspec( pos, "analyze" )); + return; + end + + -- consume color for painted blocks + local str = meta:get_string( 'p_values' ); + local p = 1; -- color more than one block with one pigment + if( str and str ~= "" ) then + local p_values = minetest.deserialize( str ); + if( index and p_values[ index ] ) then + p = p_values[ index ]; + end + end + + local amount_needed = math.ceil( stack:get_count() / p ); + local amount_done = colormachine.calc_dyes_needed( meta, inv, amount_needed, 1 ); +--print( ' NEEDED: '..tostring( amount_needed )..' DONE: '..tostring( amount_done )); -- TODO + if( amount_done > amount_needed ) then +-- TODO: leftover color - how to handle? + end + + -- calculate how much was taken + local anz_taken = stack:get_count(); + local anz_present = inv:get_stack("input",1):get_count(); + anz_present = anz_present - anz_taken; + if( anz_present <= 0 ) then + inv:set_stack( "input", 1, "" ); -- everything used up + else + inv:set_stack( "input", 1, inv:get_stack("input",1):get_name().." "..tostring( anz_present )); + end + + -- the main menu needs to be updated as well + meta:set_string( 'formspec', colormachine.main_menu_formspec( pos, "analyze" )); + return; + end + + + if( listname == "input" ) then + -- update the main menu accordingly + meta:set_string( 'formspec', colormachine.main_menu_formspec( pos, "analyze" )); + return; + end +end + + +-- calculate which dyes are needed +colormachine.calc_dyes_needed = function( meta, inv, amount_needed, do_consume ) + + local form = ""; + + -- display the name of the currently selected color + form = form.."label[8,0.2;"..( meta:get_string( "selected_name" ) or "?" ).."]"; + + local s = tonumber(meta:get_string('selected_shade' )); + local g = tonumber(meta:get_string('selected_grey_shade' )); + local c = tonumber(meta:get_string('selected_color' )); + + + local needed = {}; + -- we are dealing with a grey value + if( g > -1 ) then + needed[ colormachine.grey_names[ g ]] = 1; + + -- we are dealing with a normal color + else + -- one pigment of the selected color (to get started) + needed[ colormachine.colors[ c ]] = 1; + -- handle saturation + if( s==1 ) then needed[ "white" ]=1; -- light +-- elseif( s==3 ) then -- normal color - no changes needed + elseif( s==4 ) then needed[ "white" ]=2; needed[ "black" ] =1; -- normal, low saturation + elseif( s==5 ) then needed[ "black" ] =1; -- medium dark + elseif( s==6 ) then needed[ "white" ]=1; needed[ "black" ] =1; -- medium dark, low saturation + elseif( s==7 ) then needed[ "black" ] =2; -- dark + elseif( s==8 ) then needed[ "white" ]=1; needed[ "black" ] =2; -- dark, low saturation + end + end + + local anz_pigments = 0; + for i,v in pairs( needed ) do + anz_pigments = anz_pigments + v; + end + + + -- n: portions of *mixtures* needed + local n = 1; + -- if the colors are to be consumed, we need to calculate how many we actually need + -- (one mixutre consists of anz_pigments pigments each) + if( amount_needed > 0) then + n = math.ceil( amount_needed / anz_pigments ); + + local min_found = 10000; -- high number that cannot be reached + -- now we need to check how many pigments of each color we have + for i,v in ipairs( colormachine.colors_and_greys ) do + + if( needed[ v ] and needed[ v ]> 0 ) then + + -- find out how many blocks of this type we can actually color + local stack = inv:get_stack( "dyes", i ); + local found = math.floor( stack:get_count() / needed[ v ]); + if( found < min_found ) then + min_found = found; -- save the new minimum + end + end + end + + -- we do not have enough pigments + if( min_found < n ) then + n = min_found; + end + end + + + -- return how many *could* be colored + if( amount_needed > 0 and do_consume ~= 1 ) then + return n*anz_pigments; + end + + + + for i,v in ipairs( colormachine.colors_and_greys ) do + + if( needed[ v ] and needed[ v ]> 0 ) then + + -- show how many pigments of this color are needed for the selected mixture + -- normal color + if( i <= #colormachine.colors ) then + form = form.."label["..tostring(i+0.2)..",2.2;" ..needed[ v ].."x]".. + "label["..tostring(i+0.2)..",0.6;" ..needed[ v ].."x]"; + -- grey value + else + form = form.."label[11.3,"..tostring(i-#colormachine.colors+4.2)..";"..needed[ v ].."x]".. + "label[13.3,"..tostring(i-#colormachine.colors+4.2)..";"..needed[ v ].."x]"; + end + + -- actually consume the color pigment + if( amount_needed > 0 and n > 0 ) then + local stack = inv:get_stack( "dyes", i ); + local found = stack:get_count(); + --print( ' CONSUMED '..math.floor( n * needed[ v ] )..' of '..tostring( stack:get_name())); + inv:set_stack( "dyes", i, stack:get_name()..' '..tostring( found - math.floor( n * needed[ v ] ))); + end + end + end + + + -- in case pigments where consumed, return how many blocks where colored successfully + if( amount_needed > 0 and n > 0 ) then +--print('Successfully colored: '..tostring( n*anz_pigments )); + return n*anz_pigments; + end + + -- else return the formspec addition with the information how many of which pigment is needed + return form; +end + + +-- this adds the name of the current color and the amount of needed dyes to the formspec +colormachine.get_individual_dye_management_formspec = function( meta, inv ) + + local form = colormachine.dye_management_formspec; + + -- just add information how many pigments of each color are needed + form = form .. colormachine.calc_dyes_needed( meta, inv, 0, 0 ) + return form; +end + + +-- mix two colors +colormachine.mix_colors = function( inv, i, sender ) + + local farbe = colormachine.colors_and_greys[ i ]; + local mix = colormachine.dye_mixes[ farbe ]; + -- in case the color cannot be mixed + if( not( mix ) or #mix < 2 ) then + return; + end + + local stack1 = inv:get_stack( "dyes", mix[1] ); + local stack2 = inv:get_stack( "dyes", mix[2] ); + local stack3 = inv:get_stack( "dyes", i ); + + + if( stack3:get_free_space() > 1 -- we need space for two + and stack1:get_count() > 0 + and stack2:get_count() > 0 ) then + + inv:set_stack( "dyes", mix[1], stack1:get_name()..' '..( stack1:get_count()-1)); + inv:set_stack( "dyes", mix[2], stack2:get_name()..' '..( stack2:get_count()-1)); + + -- handle light/dark grey + if( farbe=='lightgrey' ) then + farbe = 'light_grey'; + elseif( farbe=='darkgrey' ) then + farbe = 'dark_grey'; + end + + -- dye or unifieddyes? + local name = 'dye:'..farbe; + if( not( minetest.registered_craftitems[ name ])) then + name = 'unifieddyes:'..farbe; + end + + -- print errormessage or add the mixed dye pigment + if( not( minetest.registered_craftitems[ name ])) then + minetest.chat_send_player( sender:get_player_name(), '[colormachine] ERROR: color '..tostring( farbe )..' could not be mixed (craftitem '..tostring(name)..' not found)'); + else + inv:set_stack( "dyes", i, name..' '..( stack3:get_count() + 2 )); -- two pigments mixed -> we get two pigments result + end + + elseif( stack3:get_free_space() > 1 ) then + minetest.chat_send_player( sender:get_player_name(), 'Need '..colormachine.colors_and_greys[ mix[1] ]..' and '.. + colormachine.colors_and_greys[ mix[2] ]..' in order to mix '..farbe..'.'); + end +end + + +-- this generates the formspec for all supported mods and the general colormachine.dye_management_formspec +colormachine.init = function() + local liste = {}; + -- create formspecs for all machines + for k,v in pairs( colormachine.data ) do + + if( minetest.get_modpath( colormachine.data[ k ].modname ) ~= nil ) then + + -- generate the formspec for that machine + colormachine.data[ k ].formspec = colormachine.generate_form( k ); + -- remember that the mod is installed + colormachine.data[ k ].installed = 1; + -- this is helpful for getting an ordered list later +-- liste[ colormachine.data[ k ].nr ] = k; + table.insert( liste, k ); + else + -- the mod is not installed + colormachine.data[ k ].installed = 0; + end + end + + table.sort( liste, function(a,b) return colormachine.data[a].nr < colormachine.data[b].nr end); + colormachine.ordered = liste; + + -- if no flowers are present, take dye sources from default (so we only have to depend on dyes) + if( minetest.get_modpath( "flowers") == nil ) then + for i,v in ipairs( colormachine.alternate_basic_dye_sources ) do + colormachine.basic_dye_sources[ i ] = colormachine.alternate_basic_dye_sources[ i ]; + end + end + + local form = "size[14,10]".. + "list[current_player;main;1,5;8,4;]".. + "label[1,0.2;"..minetest.formspec_escape('Insert dye sources here -->').."]".. + "list[current_name;refill;4,0;1,1;]".. + "label[6,0.2;Selected color:]".. + "label[0.1,1;sources:]".. + "label[0.1,2;dyes:]".. + "label[0.1,3;storage:]".. + "button[1,4;4,1;main_menu;Back to main menu]".. + "button[5,4;4,1;blocktype_menu;Show supported blocks]".. + "list[current_name;dyes;1,3;"..tostring(#colormachine.colors)..",1;]".. -- normal colors + + -- remaining fields of the dyes inventory: grey colors, arranged vertically + -- (not enough space for the "dyes" label) + "label[0.1,0.6;need:]".. + "label[9.3,4.5;need:]".. + "label[10,4.5;sources:]".. + "label[12,4.5;storage:]".. + "list[current_name;dyes;12,5;1,"..tostring(#colormachine.grey_names)..";"..tostring(#colormachine.colors).."]"; + + local needed = {}; + + -- align colors horizontal + for i,k in ipairs( colormachine.colors ) do + + local prefix = 'dye:'; + if( i==4 or i==6 or i==8 or i==12 or i==14 ) then + if( colormachine.data[ 'unifieddyes_' ].installed == 1 ) then + prefix = 'unifieddyes:'; + else + prefix = ""; + end + end + + if( prefix ~= "" ) then + + local source = colormachine.basic_dye_sources[ i ]; + if( source ~= "" ) then + form = form.."item_image["..tostring(i)..",1;1,1;"..source.."]"; + + -- even those colors may be additionally mixed + if( #colormachine.dye_mixes[ colormachine.colors_and_greys[ i ] ] == 2 ) then + form = form.. "button["..tostring(i-0.1)..",1.9;0.8,0.2;mix_"..colormachine.colors_and_greys[ i ]..";mix]"; + end + + -- a color that can be mixed + elseif( #colormachine.dye_mixes[ colormachine.colors_and_greys[ i ] ] == 2 ) then + + local mixes = colormachine.dye_mixes[ colormachine.colors_and_greys[ i ] ]; + + local source1 = 'dye:'..colormachine.colors_and_greys[ mixes[1] ]; + local source2 = 'dye:'..colormachine.colors_and_greys[ mixes[2] ]; + + form = form.."item_image["..tostring(i )..",1.0;1,1;"..source1.."]".. + "item_image["..tostring(i+0.3)..",1.3;1,1;"..source2.."]".. + "button["..tostring(i-0.1)..",1.9;0.8,0.2;mix_"..colormachine.colors_and_greys[ i ]..";mix]"; + end + + form = form.. "item_image["..tostring(i)..",2;1,1;"..tostring( prefix..colormachine.colors[ i ] ).."]".. + "label["..tostring(i)..",3.6;" ..tostring( colormachine.colors_and_greys[ i ] ).."]"; + else + form = form.."label["..tostring(i+0.2)..",3;n/a]"; + end + end + + -- align grey-values vertical + for i,k in ipairs( colormachine.grey_names ) do + + if( i ~= 2 or colormachine.data[ 'unifieddyes_' ].installed == 1 ) then + + local source = colormachine.basic_dye_sources[ #colormachine.colors + i ]; + if( source and source ~= "" ) then + form = form.."item_image[10,"..tostring(i+4)..";1,1;"..source.."]"; + + elseif( #colormachine.dye_mixes[ colormachine.colors_and_greys[ #colormachine.colors + i ] ] == 2 ) then + + local mixes = colormachine.dye_mixes[ colormachine.colors_and_greys[ #colormachine.colors + i ] ]; + + local source1 = 'dye:'..colormachine.colors_and_greys[ mixes[1] ]; + local source2 = 'dye:'..colormachine.colors_and_greys[ mixes[2] ]; + + form = form.."item_image[10.0,"..tostring(i+4.0)..";1,1;"..source1.."]".. + "item_image[10.3,"..tostring(i+4.3)..";1,1;"..source2.."]".. + "button[9.8," ..tostring(i+4.9)..";0.8,0.2;mix_"..colormachine.colors_and_greys[ #colormachine.colors + i ]..";mix]"; + end + + local dye_name = 'dye:'..k; + + -- lightgrey exists only in unifieddyes + if( i== 2 ) then + if( colormachine.data[ 'unifieddyes_' ].installed == 1 ) then + dye_name = 'unifieddyes:lightgrey_paint'; --'unifieddyes:'..k; + else + dye_name = ''; + end + + -- darkgrey is called slightly diffrent + elseif( i==4 ) then + dye_name = 'dye:dark_grey'; + end + + if( dye_name ~= "" ) then + form = form.. "item_image[11,"..tostring(i+4)..";1,1;"..tostring( dye_name ).."]".. + "label[ 12.9,"..tostring(i+4)..";" ..tostring( colormachine.colors_and_greys[ #colormachine.colors + i ] ).."]"; + end + else + form = form.."label[12.2,"..tostring(i+4)..";n/a]"; + end + end + + + colormachine.dye_management_formspec = form; + +end + + + +-- delay initialization so that modules are hopefully loaded +minetest.after( 0, colormachine.init ); + + +-- flowers: 6 basic colors + black + white +-- unifieddyes: dye pulver +-- coloredwood: wood, fence - skip sticks! +-- unifiedbricks: clay blocks, brick blocks (skip individual clay lumps and bricks!) +-- multicolor: 3 shades, usual amount of colors +-- cotton: (by jordach) probably the same as coloredwood +-- +-- stained_glass: 9 shades/intensities + + +minetest.register_node("colormachine:colormachine", { + description = "spray booth", + + tiles = { + "colormachine_top.png", + "colormachine_bottom.png", + "colormachine_side.png", + "colormachine_side.png", + "colormachine_side.png", + "colormachine_front.png", + }, + + paramtype2 = "facedir", + groups = {cracky=2}, + legacy_facedir_simple = true, + + on_construct = function(pos) + + local meta = minetest.env:get_meta(pos); + + meta:set_string('selected_shade', 3 ); -- grey-shade + meta:set_string('selected_grey_shade', 1 ); + meta:set_string('selected_color', -1 ); -- we selected grey + meta:set_string('selected_name', 'white' ); + + meta:set_string('owner', '' ); -- protect input from getting stolen + + local inv = meta:get_inventory(); + inv:set_size("input", 1); -- input slot for blocks that are to be painted + inv:set_size("refill", 1); -- input slot for plants and other sources of dye pigments + inv:set_size("output", 14); -- output slot for painted blocks - up to 8 alternate coloring schems supported (blox has 8 for stone!) + inv:set_size("paintless", 1); -- output slot for blocks with paint scratched off + inv:set_size("dyes", 18); -- internal storage for the dye powders + inv:set_size("extrastore",5*9); -- additional storage for dyes + + --meta:set_string( 'formspec', colormachine.blocktype_menu( meta, 'white' )); + meta:set_string( 'formspec', colormachine.main_menu_formspec(pos, "analyze") ); + end, + + after_place_node = function(pos, placer) + local meta = minetest.env:get_meta(pos); + + meta:set_string( "owner", ( placer:get_player_name() or "" )); + meta:set_string( "infotext", "Spray booth (owned by "..( meta:get_string( "owner" ) or "" )..")"); + end, + + on_receive_fields = function(pos, formname, fields, sender) + + if( not( colormachine.check_owner( pos, sender ))) then + return 0; + end + + local meta = minetest.env:get_meta(pos); + for k,v in pairs( fields ) do + if( k == 'main_menu' ) then + meta:set_string( 'formspec', colormachine.main_menu_formspec(pos, "analyze") ); + return; + elseif( k == 'remove_paint' ) then + meta:set_string( 'formspec', colormachine.main_menu_formspec(pos, "remove_paint") ); + return; + elseif( k == 'adapt_color' ) then + meta:set_string( 'formspec', colormachine.main_menu_formspec(pos, "adapt_color") ); + return; + + elseif( k == 'turn_into_dye' ) then + local inv = meta:get_inventory(); + + local stack = inv:get_stack( 'input', 1 ); + -- move into refill slot + inv:set_stack( 'refill', 1, stack ); + -- empty input slot + inv:set_stack( 'input', 1, '' ); + -- process the dye + colormachine.on_metadata_inventory_put( pos, 'refill', 1, stack, sender ) + -- call dye management forpsec to show result + meta:set_string( 'formspec', colormachine.get_individual_dye_management_formspec( meta, inv )); + return; + + elseif( k == 'dye_management' ) then + local inv = meta:get_inventory(); + + meta:set_string( 'formspec', colormachine.get_individual_dye_management_formspec( meta, inv )); + return; + elseif( colormachine.data[ k ] ) then + meta:set_string( 'formspec', colormachine.data[ k ].formspec ); + return; + elseif( k=='key_escape') then + -- nothing to do + else + local inv = meta:get_inventory(); + + -- perhaps we ought to mix colors + for i,f in ipairs( colormachine.colors_and_greys ) do + if( k==("mix_"..f )) then + colormachine.mix_colors( inv, i, sender ); + return; -- formspec remains the dye-management one + end + end + + -- if no input is present, show the block selection menu + if( k=="blocktype_menu2" ) then + meta:set_string( 'formspec', colormachine.blocktype_menu( meta, k, 3*13 )); + elseif( k=="blocktype_menu" or inv:is_empty( "input" )) then + meta:set_string( 'formspec', colormachine.blocktype_menu( meta, k, 0 )); + + else + + -- else set the selected color and go back to the main menu + colormachine.decode_color_name( meta, k ); + meta:set_string( 'formspec', colormachine.main_menu_formspec(pos, "analyze") ); + end + end + end + end, + + -- there is no point in moving inventory around + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + return 0; + end, + + + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + return colormachine.allow_inventory_access(pos, listname, index, stack, player, "put" ); + end, + + + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + return colormachine.allow_inventory_access(pos, listname, index, stack, player, "take" ); + end, + + on_metadata_inventory_put = function(pos, listname, index, stack, player) + return colormachine.on_metadata_inventory_put( pos, listname, index, stack, player ); + end, + + on_metadata_inventory_take = function(pos, listname, index, stack, player) + return colormachine.on_metadata_inventory_take( pos, listname, index, stack, player ); + end, + + can_dig = function(pos,player) + + local meta = minetest.env:get_meta(pos); + local inv = meta:get_inventory() + + if( not( colormachine.check_owner( pos, player ))) then + return 0; + end + + if( not( inv:is_empty("input")) + or not( inv:is_empty("refill"))) then + minetest.chat_send_player( player:get_player_name(), "Please remove the material in the input- and/or refill slot first!"); + meta:set_string( 'formspec', colormachine.blocktype_menu( meta, meta:get_string('selected_name'), 0)); + return false; + end + if( not( inv:is_empty("dyes"))) then + minetest.chat_send_player( player:get_player_name(), "Please remove the stored dyes first!"); + meta:set_string( 'formspec', colormachine.blocktype_menu( meta, meta:get_string('selected_name'), 0 )); + return false; + end + + return true + end +}) + +minetest.register_craft({ + output = 'colormachine:colormachine', + recipe = { + { 'default:gold_ingot', 'default:glass', 'default:gold_ingot', }, + { 'default:mese', 'default:glass', 'default:mese' }, + { 'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot' } + } +}) + +dofile( minetest.get_modpath('colormachine')..'/paint_roller.lua'); diff --git a/mods/colormachine/paint_roller.lua b/mods/colormachine/paint_roller.lua new file mode 100755 index 00000000..4214e65f --- /dev/null +++ b/mods/colormachine/paint_roller.lua @@ -0,0 +1,62 @@ +-- This is based upon the paint_roller mod by Krock. + +minetest.register_tool("colormachine:paint_roller", { + description = "Paint roller", + inventory_image = "paint_roller.png", + on_use = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return + end + local idx = placer:get_wield_index() + 1 + if idx > 7 then --copied from explorer tools moo-ha-ha + return + end + if minetest.is_protected(pointed_thing.under, placer:get_player_name()) then + minetest.record_protection_violation(pointed_thing.under, placer:get_player_name()) + return + end + local node = minetest.get_node(pointed_thing.under); + local node_name = node.name + + local inv = placer:get_inventory() + local stack = inv:get_stack("main", idx) --dye + local stack_name = stack:get_name() + + local res = colormachine.get_node_name_painted( node_name, stack_name ); + + if( not( res) or not( res.possible ) or #res.possible < 1 or (#res.possible==1 and res.possible[1]==node_name)) then + return; + end + local index = 1; + for i,v in ipairs( res.possible ) do + if( v==node_name and i < #res.possible and #res.possible[i+1]) then + index = i+1; + end + end + + -- return the old dye + if( res.old_dye and res.old_dye ~= stack_name ) then + inv:add_item( 'main', res.old_dye..' 1' ); + end + + -- consume one dye + if( stack_name and stack_name ~= '' and (not(res.old_dye) or res.old_dye~=stack_name)) then + inv:remove_item( 'main', stack_name..' 1'); + end + + -- paint the node + minetest.set_node(pointed_thing.under, {name=res.possible[ index ], param2=node.param2}) + + --itemstack:add_wear( 65535 / 30 ); + return itemstack + end +}) + +minetest.register_craft({ + output = "colormachine:paint_roller", + recipe = { + {"wool:white", "wool:white", "default:steel_ingot"}, + {"", "default:steel_ingot", ""}, + {"", "default:steel_ingot", ""}, + } +}) diff --git a/mods/colormachine/textures/colormachine_bottom.png b/mods/colormachine/textures/colormachine_bottom.png new file mode 100755 index 00000000..7c429f99 Binary files /dev/null and b/mods/colormachine/textures/colormachine_bottom.png differ diff --git a/mods/colormachine/textures/colormachine_front.png b/mods/colormachine/textures/colormachine_front.png new file mode 100755 index 00000000..7a4dadb9 Binary files /dev/null and b/mods/colormachine/textures/colormachine_front.png differ diff --git a/mods/colormachine/textures/colormachine_front_active.png b/mods/colormachine/textures/colormachine_front_active.png new file mode 100755 index 00000000..745095af Binary files /dev/null and b/mods/colormachine/textures/colormachine_front_active.png differ diff --git a/mods/colormachine/textures/colormachine_side.png b/mods/colormachine/textures/colormachine_side.png new file mode 100755 index 00000000..cdcc9813 Binary files /dev/null and b/mods/colormachine/textures/colormachine_side.png differ diff --git a/mods/colormachine/textures/colormachine_top.png b/mods/colormachine/textures/colormachine_top.png new file mode 100755 index 00000000..3de0266f Binary files /dev/null and b/mods/colormachine/textures/colormachine_top.png differ diff --git a/mods/colormachine/textures/colormachine_top_active.png b/mods/colormachine/textures/colormachine_top_active.png new file mode 100755 index 00000000..8eded036 Binary files /dev/null and b/mods/colormachine/textures/colormachine_top_active.png differ diff --git a/mods/colormachine/textures/paint_roller.png b/mods/colormachine/textures/paint_roller.png new file mode 100755 index 00000000..45b9b28d Binary files /dev/null and b/mods/colormachine/textures/paint_roller.png differ diff --git a/mods/colouredstonebricks/README.txt b/mods/colouredstonebricks/README.txt new file mode 100755 index 00000000..d713b613 --- /dev/null +++ b/mods/colouredstonebricks/README.txt @@ -0,0 +1,13 @@ +Coloured Stone Bricks +===================== +This mod adds coloured stone bricks! These are decorative blocks which would look nice on any building or creation. + +Crafting +-------- +You can craft the blocks by placing a stone brick and a coloured dye in the craft grid: + +Depends: default, dye +Licence: Code and textures, CC BY-SA 4.0 +Installation: Unzip the file and rename it to "colouredstonebricks". Then move it to the mod directory. + +More information and discussion: https://forum.minetest.net/viewtopic.php?id=8784 diff --git a/mods/colouredstonebricks/depends.txt b/mods/colouredstonebricks/depends.txt new file mode 100755 index 00000000..8401bd90 --- /dev/null +++ b/mods/colouredstonebricks/depends.txt @@ -0,0 +1,2 @@ +default +dye \ No newline at end of file diff --git a/mods/colouredstonebricks/init.lua b/mods/colouredstonebricks/init.lua new file mode 100755 index 00000000..e9cb82f7 --- /dev/null +++ b/mods/colouredstonebricks/init.lua @@ -0,0 +1,78 @@ +--------------------------------------------- +-- Coloured Stone Bricks Mod by CraigyDavi -- +--------------------------------------------- + +local COLOURS = { + "Black", + "Cyan", + "Brown", + "Dark Blue", + "Dark Green", + "Dark Grey", + "Dark Pink", + "Green", + "Grey", + "Orange", + "Pink", + "Purple", + "Red", + "White", + "Yellow" +} + +local COLOURS2 = { + "black", + "cyan", + "brown", + "dark_blue", + "dark_green", + "dark_grey", + "dark_pink", + "green", + "grey", + "orange", + "pink", + "purple", + "red", + "white", + "yellow" +} + +for number = 1, 15 do + + local colour = COLOURS[number] + local colour2 = COLOURS2[number] + + minetest.register_node("colouredstonebricks:"..colour2, { + description = colour.." Stone Brick", + tiles = {"colouredstonebricks_"..colour2..".png"}, + groups = {cracky=3}, + sounds = default.node_sound_defaults(), + }) + + minetest.register_craft({ + type = "shapeless", + output = 'colouredstonebricks:'..colour2, + recipe = { + 'dye:'..colour2, 'default:stonebrick', + } + }) + + -- Stairs + + stairsplus:register_all("colouredstonebricks", colour2, "colouredstonebricks:"..colour2, { + description = colour.." Stone Brick", + tiles = {"colouredstonebricks_"..colour2..".png"}, + groups = {cracky=3}, + sounds = default.node_sound_defaults(), + sunlight_propagates = true, + }) +end + + + +minetest.register_alias("dye:dark_blue","dye:blue") +minetest.register_alias("dye:dark_pink","dye:magenta") +minetest.register_alias("dye:purple","dye:violet") + +print ("Coloured Stone Bricks [colouredstonebricks] has loaded!") diff --git a/mods/colouredstonebricks/screenshot.png b/mods/colouredstonebricks/screenshot.png new file mode 100755 index 00000000..ecb14b8d Binary files /dev/null and b/mods/colouredstonebricks/screenshot.png differ diff --git a/mods/colouredstonebricks/textures/colouredstonebricks_black.png b/mods/colouredstonebricks/textures/colouredstonebricks_black.png new file mode 100755 index 00000000..ccbf594d Binary files /dev/null and b/mods/colouredstonebricks/textures/colouredstonebricks_black.png differ diff --git a/mods/colouredstonebricks/textures/colouredstonebricks_brown.png b/mods/colouredstonebricks/textures/colouredstonebricks_brown.png new file mode 100755 index 00000000..389850dc Binary files /dev/null and b/mods/colouredstonebricks/textures/colouredstonebricks_brown.png differ diff --git a/mods/colouredstonebricks/textures/colouredstonebricks_cyan.png b/mods/colouredstonebricks/textures/colouredstonebricks_cyan.png new file mode 100755 index 00000000..c0635e9a Binary files /dev/null and b/mods/colouredstonebricks/textures/colouredstonebricks_cyan.png differ diff --git a/mods/colouredstonebricks/textures/colouredstonebricks_dark_blue.png b/mods/colouredstonebricks/textures/colouredstonebricks_dark_blue.png new file mode 100755 index 00000000..c93d6f9f Binary files /dev/null and b/mods/colouredstonebricks/textures/colouredstonebricks_dark_blue.png differ diff --git a/mods/colouredstonebricks/textures/colouredstonebricks_dark_green.png b/mods/colouredstonebricks/textures/colouredstonebricks_dark_green.png new file mode 100755 index 00000000..49a391ea Binary files /dev/null and b/mods/colouredstonebricks/textures/colouredstonebricks_dark_green.png differ diff --git a/mods/colouredstonebricks/textures/colouredstonebricks_dark_grey.png b/mods/colouredstonebricks/textures/colouredstonebricks_dark_grey.png new file mode 100755 index 00000000..94d733ea Binary files /dev/null and b/mods/colouredstonebricks/textures/colouredstonebricks_dark_grey.png differ diff --git a/mods/colouredstonebricks/textures/colouredstonebricks_dark_pink.png b/mods/colouredstonebricks/textures/colouredstonebricks_dark_pink.png new file mode 100755 index 00000000..ac57a251 Binary files /dev/null and b/mods/colouredstonebricks/textures/colouredstonebricks_dark_pink.png differ diff --git a/mods/colouredstonebricks/textures/colouredstonebricks_green.png b/mods/colouredstonebricks/textures/colouredstonebricks_green.png new file mode 100755 index 00000000..55544de3 Binary files /dev/null and b/mods/colouredstonebricks/textures/colouredstonebricks_green.png differ diff --git a/mods/colouredstonebricks/textures/colouredstonebricks_grey.png b/mods/colouredstonebricks/textures/colouredstonebricks_grey.png new file mode 100755 index 00000000..8a490c00 Binary files /dev/null and b/mods/colouredstonebricks/textures/colouredstonebricks_grey.png differ diff --git a/mods/colouredstonebricks/textures/colouredstonebricks_orange.png b/mods/colouredstonebricks/textures/colouredstonebricks_orange.png new file mode 100755 index 00000000..630925fe Binary files /dev/null and b/mods/colouredstonebricks/textures/colouredstonebricks_orange.png differ diff --git a/mods/colouredstonebricks/textures/colouredstonebricks_pink.png b/mods/colouredstonebricks/textures/colouredstonebricks_pink.png new file mode 100755 index 00000000..b745c11b Binary files /dev/null and b/mods/colouredstonebricks/textures/colouredstonebricks_pink.png differ diff --git a/mods/colouredstonebricks/textures/colouredstonebricks_purple.png b/mods/colouredstonebricks/textures/colouredstonebricks_purple.png new file mode 100755 index 00000000..bddcd2e8 Binary files /dev/null and b/mods/colouredstonebricks/textures/colouredstonebricks_purple.png differ diff --git a/mods/colouredstonebricks/textures/colouredstonebricks_red.png b/mods/colouredstonebricks/textures/colouredstonebricks_red.png new file mode 100755 index 00000000..4704881c Binary files /dev/null and b/mods/colouredstonebricks/textures/colouredstonebricks_red.png differ diff --git a/mods/colouredstonebricks/textures/colouredstonebricks_white.png b/mods/colouredstonebricks/textures/colouredstonebricks_white.png new file mode 100755 index 00000000..24416b0d Binary files /dev/null and b/mods/colouredstonebricks/textures/colouredstonebricks_white.png differ diff --git a/mods/colouredstonebricks/textures/colouredstonebricks_yellow.png b/mods/colouredstonebricks/textures/colouredstonebricks_yellow.png new file mode 100755 index 00000000..88fb5116 Binary files /dev/null and b/mods/colouredstonebricks/textures/colouredstonebricks_yellow.png differ diff --git a/mods/columnia/README.txt b/mods/columnia/README.txt new file mode 100755 index 00000000..062de2ba --- /dev/null +++ b/mods/columnia/README.txt @@ -0,0 +1,29 @@ +Columnia (2014 by Glunggi) is a Fork of Stairs ..in principle is its Stairs with other Nodes. +So i will to keep the old Stairs- Licences for this chanced Mode.. include all of my Chances. + +Minetest 0.4 mod: stairs +========================= + +License of source code: +----------------------- +Copyright (C) 2011-2012 Kahrl +Copyright (C) 2011-2012 celeron55, Perttu Ahola + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +http://www.gnu.org/licenses/lgpl-2.1.html + +License of media (textures and sounds) +-------------------------------------- +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + +Authors of media files +----------------------- +Everything not listed in here: +Copyright (C) 2010-2012 celeron55, Perttu Ahola + + diff --git a/mods/columnia/depends.txt b/mods/columnia/depends.txt new file mode 100755 index 00000000..4ad96d51 --- /dev/null +++ b/mods/columnia/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/columnia/init.lua b/mods/columnia/init.lua new file mode 100755 index 00000000..fcbae41c --- /dev/null +++ b/mods/columnia/init.lua @@ -0,0 +1,647 @@ +-- Minetest 0.4 mod: columnia by Glunggi(former Stairs Copyright by(C) 2011-2012 Kahrl Copyright (C) 2011-2012 celeron55, Perttu Ahola) +-- See README.txt for licensing and other information. + +columnia = {} + +-- The Blueprint +minetest.register_craftitem("columnia:blueprint", { + description = "Column Blueprint", + inventory_image = "columnia_blueprint.png", +}) + +minetest.register_craft({ + output = 'columnia:blueprint', + recipe = { + {'default:paper', 'group:stick', 'default:paper'}, + {'default:paper', 'default:coal_lump', 'default:paper'}, + {'default:paper', 'group:stick', 'default:paper'}, + } +}) + +-- Bracket +minetest.register_node("columnia:bracket", { + description = 'Bracket (Column)', + tiles = {"columnia_rusty.png",}, + drawtype = "nodebox", + sunlight_propagates = true, + paramtype = 'light', + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.25, 0, 0.4375, 0.25, 0.5, 0.5}, + {-0.1875, -0.5, -0.1875, 0.1875, -0.375, 0.1875}, + {-0.0625, -0.375, -0.0625, 0.0625, 0.1875, 0.0625}, + {-0.0625, 0.1875, -0.0625, 0.0625, 0.3125, 0.4375}, + {-0.1875, 0.0625, 0.3125, 0.1875, 0.4375, 0.4375}, + {-0.125, -0.375, -0.125, 0.125, -0.25, 0.125}, + }, + }, + groups = {choppy=2, oddly_breakable_by_hand=2,}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_craft({ + output = 'columnia:bracket 4', + recipe = { + {"default:steel_ingot", "columnia:blueprint", ""}, + {"", "default:steel_ingot", ""}, + {"", "default:steel_ingot", ""}, + }, + replacements = {{"columnia:blueprint", "columnia:blueprint"}}, +}) + +-- Lamp +minetest.register_node("columnia:lamp_ceiling", { + description = "Ceiling Lamp (Column)", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + inventory_image = "columnia_lamp_inv.png", + tiles = { + "columnia_rusty.png", "columnia_lamp.png", "columnia_lamp.png", + "columnia_lamp.png", "columnia_lamp.png", "columnia_lamp.png" + }, + sunlight_propagates = true, + light_source = 13, + walkable = false, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + node_box = { + type = "fixed", + fixed = { + {-0.1875, 0.4375, -0.1875, 0.1875, 0.5, 0.1875}, + {-0.125, 0.375, -0.125, 0.125, 0.4375, 0.125}, + }, + }, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_craft({ + output = 'columnia:lamp_ceiling 4', + recipe = { + {"columnia:blueprint", "default:steel_ingot", ""}, + {"", "default:torch", ""}, + {"", "default:glass", ""}, + }, + replacements = {{"columnia:blueprint", "columnia:blueprint"}}, +}) + +-- Rusty_Block + +minetest.register_node("columnia:rusty_block", { + description = "Rusty Block", + tiles = {"columnia_rusty_block.png"}, + is_ground_content = true, + groups = {cracky=1,level=2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_craft({ + output = 'columnia:rusty_block 8', + recipe = { + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "columnia:blueprint", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + }, + replacements = {{"columnia:blueprint", "columnia:blueprint"}}, +}) + +-- Now the Column +-- Node will be called columnia:column_mid_ +function columnia.register_column_mid(subname, recipeitem, groups, images, description, sounds) + minetest.register_node(":columnia:column_mid_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = groups, + sounds = sounds, + node_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, 0.5, 0.25}, + }, + }, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + local p0 = pointed_thing.under + local p1 = pointed_thing.above + local param2 = 0 + + local placer_pos = placer:getpos() + if placer_pos then + local dir = { + x = p1.x - placer_pos.x, + y = p1.y - placer_pos.y, + z = p1.z - placer_pos.z + } + param2 = minetest.dir_to_facedir(dir) + end + + if p0.y-1 == p1.y then + param2 = param2 + 20 + if param2 == 21 then + param2 = 23 + elseif param2 == 23 then + param2 = 21 + end + end + + return minetest.item_place(itemstack, placer, pointed_thing, param2) + end, + }) + + -- for replace ABM + minetest.register_node(":columnia:column_mid_" .. subname.."upside_down", { + replace_name = "columnia:column_mid_" .. subname, + groups = {slabs_replace=1}, + }) + + minetest.register_craft({ + output = 'columnia:column_mid_' .. subname .. ' 2', + recipe = { + {"", recipeitem, ""}, + {"", "columnia:blueprint", ""}, + {"", recipeitem, ""}, + }, + replacements = {{"columnia:blueprint", "columnia:blueprint"}}, + }) +end + + +-- Node will be called columnia:column_top_ +function columnia.register_column_top(subname, recipeitem, groups, images, description, sounds) + minetest.register_node(":columnia:column_top_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = groups, + sounds = sounds, + node_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, 0.5, 0.25}, + {-0.5, 0.25, -0.5, 0.5, 0.5, 0.5}, + {-0.375, 0, -0.375, 0.375, 0.5, 0.375}, + }, + }, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + local p0 = pointed_thing.under + local p1 = pointed_thing.above + local param2 = 0 + + local placer_pos = placer:getpos() + if placer_pos then + local dir = { + x = p1.x - placer_pos.x, + y = p1.y - placer_pos.y, + z = p1.z - placer_pos.z + } + param2 = minetest.dir_to_facedir(dir) + end + + if p0.y-1 == p1.y then + param2 = param2 + 20 + if param2 == 21 then + param2 = 23 + elseif param2 == 23 then + param2 = 21 + end + end + + return minetest.item_place(itemstack, placer, pointed_thing, param2) + end, + }) + + -- for replace ABM + minetest.register_node(":columnia:column_top_" .. subname.."upside_down", { + replace_name = "columnia:column_top_" .. subname, + groups = {slabs_replace=1}, + }) + + minetest.register_craft({ + output = 'columnia:column_top_' .. subname .. ' 4', + recipe = { + {recipeitem, recipeitem, recipeitem}, + {"", recipeitem, ""}, + {"", "columnia:blueprint", ""}, + }, + replacements = {{"columnia:blueprint", "columnia:blueprint"}}, + }) +end + +-- Node will be called columnia:column_bottom_ +function columnia.register_column_bottom(subname, recipeitem, groups, images, description, sounds) + minetest.register_node(":columnia:column_bottom_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = groups, + sounds = sounds, + node_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, 0.5, 0.25}, + {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, + {-0.375, -0.5, -0.375, 0.375, 0, 0.375}, + }, + }, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + local p0 = pointed_thing.under + local p1 = pointed_thing.above + local param2 = 0 + + local placer_pos = placer:getpos() + if placer_pos then + local dir = { + x = p1.x - placer_pos.x, + y = p1.y - placer_pos.y, + z = p1.z - placer_pos.z + } + param2 = minetest.dir_to_facedir(dir) + end + + if p0.y-1 == p1.y then + param2 = param2 + 20 + if param2 == 21 then + param2 = 23 + elseif param2 == 23 then + param2 = 21 + end + end + + return minetest.item_place(itemstack, placer, pointed_thing, param2) + end, + }) + + -- for replace ABM + minetest.register_node(":columnia:column_bottom_" .. subname.."upside_down", { + replace_name = "columnia:column_bottom_" .. subname, + groups = {slabs_replace=1}, + }) + + minetest.register_craft({ + output = 'columnia:column_bottom_' .. subname .. ' 4', + recipe = { + {"", "columnia:blueprint", ""}, + {"", recipeitem, ""}, + {recipeitem, recipeitem, recipeitem}, + }, + replacements = {{"columnia:blueprint", "columnia:blueprint"}}, + }) +end +-- Node will be called columnia:column_crosslink +function columnia.register_column_crosslink(subname, recipeitem, groups, images, description, sounds) + minetest.register_node(":columnia:column_crosslink_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = groups, + sounds = sounds, + node_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, 0.5, 0.25}, + {-0.5, 0, -0.25, 0.5, 0.5, 0.25}, + {-0.25, 0, -0.5, 0.25, 0.5, 0.5}, + {-0.4375, 0.0625, -0.4375, 0.4375, 0.4375, 0.4375}, + }, + }, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + local p0 = pointed_thing.under + local p1 = pointed_thing.above + local param2 = 0 + + local placer_pos = placer:getpos() + if placer_pos then + local dir = { + x = p1.x - placer_pos.x, + y = p1.y - placer_pos.y, + z = p1.z - placer_pos.z + } + param2 = minetest.dir_to_facedir(dir) + end + + if p0.y-1 == p1.y then + param2 = param2 + 20 + if param2 == 21 then + param2 = 23 + elseif param2 == 23 then + param2 = 21 + end + end + + return minetest.item_place(itemstack, placer, pointed_thing, param2) + end, + }) + + -- for replace ABM + minetest.register_node(":columnia:column_crosslink_" .. subname.."upside_down", { + replace_name = "columnia:column_crosslink_" .. subname, + groups = {slabs_replace=1}, + }) + + minetest.register_craft({ + output = 'columnia:column_crosslink_' .. subname .. ' 4', + recipe = { + {"", recipeitem, ""}, + {recipeitem, "columnia:blueprint", recipeitem}, + {"", recipeitem, ""}, + }, + replacements = {{"columnia:blueprint", "columnia:blueprint"}}, + }) +end + +-- Node will be called columnia:column_link +function columnia.register_column_link(subname, recipeitem, groups, images, description, sounds) + minetest.register_node(":columnia:column_link_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = groups, + sounds = sounds, + node_box = { + type = "fixed", + fixed = { + {-0.25, 0, -0.5, 0.25, 0.5, 0.5}, + }, + }, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + local p0 = pointed_thing.under + local p1 = pointed_thing.above + local param2 = 0 + + local placer_pos = placer:getpos() + if placer_pos then + local dir = { + x = p1.x - placer_pos.x, + y = p1.y - placer_pos.y, + z = p1.z - placer_pos.z + } + param2 = minetest.dir_to_facedir(dir) + end + + if p0.y-1 == p1.y then + param2 = param2 + 20 + if param2 == 21 then + param2 = 23 + elseif param2 == 23 then + param2 = 21 + end + end + + return minetest.item_place(itemstack, placer, pointed_thing, param2) + end, + }) + + -- for replace ABM + minetest.register_node(":columnia:column_link_" .. subname.."upside_down", { + replace_name = "columnia:column_link_" .. subname, + groups = {slabs_replace=1}, + }) + + minetest.register_craft({ + output = 'columnia:column_link_' .. subname .. ' 2', + recipe = { + {recipeitem, "columnia:blueprint", recipeitem}, + {"", "", ""}, + {"", "", ""}, + }, + replacements = {{"columnia:blueprint", "columnia:blueprint"}}, + }) +end + +-- Node will be called columnia:column_linkdown +function columnia.register_column_linkdown(subname, recipeitem, groups, images, description, sounds) + minetest.register_node(":columnia:column_linkdown_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = groups, + sounds = sounds, + node_box = { + type = "fixed", + fixed = { + {-0.25, 0, -0.5, 0.25, 0.5, 0.5}, + {-0.125, -0.5, -0.125, 0.125, 0, 0.125}, + {-0.1875, -0.5, -0.1875, 0.1875, -0.375, 0.1875}, + {-0.1875, -0.125, -0.1875, 0.1875, 0, 0.1875}, + }, + }, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + local p0 = pointed_thing.under + local p1 = pointed_thing.above + local param2 = 0 + + local placer_pos = placer:getpos() + if placer_pos then + local dir = { + x = p1.x - placer_pos.x, + y = p1.y - placer_pos.y, + z = p1.z - placer_pos.z + } + param2 = minetest.dir_to_facedir(dir) + end + + if p0.y-1 == p1.y then + param2 = param2 + 20 + if param2 == 21 then + param2 = 23 + elseif param2 == 23 then + param2 = 21 + end + end + + return minetest.item_place(itemstack, placer, pointed_thing, param2) + end, + }) + + -- for replace ABM + minetest.register_node(":columnia:column_linkdown_" .. subname.."upside_down", { + replace_name = "columnia:column_linkdown_" .. subname, + groups = {slabs_replace=1}, + }) + + minetest.register_craft({ + output = 'columnia:column_linkdown_' .. subname .. ' 3', + recipe = { + {recipeitem, "columnia:blueprint", recipeitem}, + {"", recipeitem, ""}, + {"", "", ""}, + }, + replacements = {{"columnia:blueprint", "columnia:blueprint"}}, + }) +end + + +-- Nodes will be called columnia:{column}_ +function columnia.register_column_ia(subname, recipeitem, groups, images, desc_column_mid, desc_column_top, desc_column_bottom, desc_column_crosslink, desc_column_link, desc_column_linkdown, sounds) + columnia.register_column_mid(subname, recipeitem, groups, images, desc_column_mid, sounds) + columnia.register_column_top(subname, recipeitem, groups, images, desc_column_top, sounds) + columnia.register_column_bottom(subname, recipeitem, groups, images, desc_column_bottom, sounds) + columnia.register_column_crosslink(subname, recipeitem, groups, images, desc_column_crosslink, sounds) + columnia.register_column_link(subname, recipeitem, groups, images, desc_column_link, sounds) + columnia.register_column_linkdown(subname, recipeitem, groups, images, desc_column_linkdown, sounds) +end + +columnia.register_column_ia("rusty_block", "columnia:rusty_block", + {cracky=3}, + {"columnia_rusty_block.png"}, + "Rusty Column", + "Rusty Column Top", + "Rusty Column Bottom", + "Rusty Column Crosslink", + "Rusty Column Link", + "Rusty Column Linkdown", + default.node_sound_stone_defaults()) + +columnia.register_column_ia("stone", "default:stone", + {cracky=3}, + {"default_stone.png"}, + "Stone Column", + "Stone Column Top", + "Stone Column Bottom", + "Stone Column Crosslink", + "Stone Column Link", + "Stone Column Linkdown", + default.node_sound_stone_defaults()) + +columnia.register_column_ia("stonebrick", "default:stonebrick", + {cracky=3}, + {"default_stone_brick.png"}, + "Stone Brick Column", + "Stone Brick Column Top", + "Stone Brick Column Bottom", + "Stone Brick Column Crosslink", + "Stone Brick Column Link", + "Stone Brick Column Linkdown", + default.node_sound_stone_defaults()) + +columnia.register_column_ia("desert_stonebrick", "default:desert_stonebrick", + {cracky=3}, + {"default_desert_stone_brick.png"}, + "Desert Stone Brick Column", + "Desert Stone Brick Column Top", + "Desert Stone Brick Column Bottom", + "Desert Stone Brick Column Crosslink", + "Desert Stone Brick Column Link", + "Desert Stone Brick Column Linkdown", + default.node_sound_stone_defaults()) + +columnia.register_column_ia("desert_stone", "default:desert_stone", + {cracky=3}, + {"default_desert_stone.png"}, + "Desert Stone Column", + "Desert Stone Column Top", + "Desert Stone Column Bottom", + "Desert Stone Column Crosslink", + "Desert Stone Column Link", + "Desert Stone Column Linkdown", + default.node_sound_stone_defaults()) + +columnia.register_column_ia("cobble", "default:cobble", + {cracky=3}, + {"default_cobble.png"}, + "Cobble Column", + "Cobble Column Top", + "Cobble Column Bottom", + "Cobble Column Crosslink", + "Cobble Column Link", + "Cobble Column Linkdown", + default.node_sound_stone_defaults()) + +columnia.register_column_ia("brick", "default:brick", + {cracky=3}, + {"default_brick.png"}, + "Brick Column", + "Brick Column Top", + "Brick Column Bottom", + "Brick Column Crosslink", + "Brick Column Link", + "Brick Column Linkdown", + default.node_sound_stone_defaults()) + +columnia.register_column_ia("sandstone", "default:sandstone", + {crumbly=2,cracky=2}, + {"default_sandstone.png"}, + "Sandstone Column", + "Sandstone Column Top", + "Sandstone Column Bottom", + "Sandstone Column Crosslink", + "Sandstone Column Link", + "Sandstone Column Linkdown", + default.node_sound_stone_defaults()) + +columnia.register_column_ia("sandstonebrick", "default:sandstonebrick", + {crumbly=2,cracky=2}, + {"default_sandstone_brick.png"}, + "Sandstone Brick Column", + "Sandstone Brick Column Top", + "Sandstone Brick Column Bottom", + "Sandstone Brick Column Crosslink", + "Sandstone Brick Column Link", + "Sandstone Brick Column Linkdown", + default.node_sound_stone_defaults()) + +columnia.register_column_ia("wood", "default:wood", + {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + {"default_wood.png"}, + "Wooden Column", + "Wooden Column Top", + "Wooden Column Bottom", + "Wooden Column Crosslink", + "Wooden Column Link", + "Wooden Column Linkdown", + default.node_sound_wood_defaults()) + +columnia.register_column_ia("junglewood", "default:junglewood", + {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + {"default_junglewood.png"}, + "Junglewood Column", + "Junglewood Column Top", + "Junglewood Column Bottom", + "Junglewood Column Crosslink", + "Junglewood Column Link", + "Junglewood Column Linkdown", + default.node_sound_wood_defaults()) + diff --git a/mods/columnia/textures/columnia_blueprint.png b/mods/columnia/textures/columnia_blueprint.png new file mode 100755 index 00000000..331afc60 Binary files /dev/null and b/mods/columnia/textures/columnia_blueprint.png differ diff --git a/mods/columnia/textures/columnia_lamp.png b/mods/columnia/textures/columnia_lamp.png new file mode 100755 index 00000000..23dbb1cb Binary files /dev/null and b/mods/columnia/textures/columnia_lamp.png differ diff --git a/mods/columnia/textures/columnia_lamp_inv.png b/mods/columnia/textures/columnia_lamp_inv.png new file mode 100755 index 00000000..5611b789 Binary files /dev/null and b/mods/columnia/textures/columnia_lamp_inv.png differ diff --git a/mods/columnia/textures/columnia_rusty.png b/mods/columnia/textures/columnia_rusty.png new file mode 100755 index 00000000..74a0347e Binary files /dev/null and b/mods/columnia/textures/columnia_rusty.png differ diff --git a/mods/columnia/textures/columnia_rusty_block.png b/mods/columnia/textures/columnia_rusty_block.png new file mode 100755 index 00000000..7c4ec94b Binary files /dev/null and b/mods/columnia/textures/columnia_rusty_block.png differ diff --git a/mods/darkage/.gitignore b/mods/darkage/.gitignore new file mode 100755 index 00000000..5ebd21a1 --- /dev/null +++ b/mods/darkage/.gitignore @@ -0,0 +1,163 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results +[Dd]ebug/ +[Rr]elease/ +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.vspscc +.builds +*.dotCover + +## TODO: If you have NuGet Package Restore enabled, uncomment this +#packages/ + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf + +# Visual Studio profiler +*.psess +*.vsp + +# ReSharper is a .NET coding add-in +_ReSharper* + +# Installshield output folder +[Ee]xpress + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish + +# Others +[Bb]in +[Oo]bj +sql +TestResults +*.Cache +ClientBin +stylecop.* +~$* +*.dbmdl +Generated_Code #added for RIA/Silverlight projects + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML + + + +############ +## Windows +############ + +# Windows image file caches +Thumbs.db + +# Folder config file +Desktop.ini + + +############# +## Python +############# + +*.py[co] + +# Packages +*.egg +*.egg-info +dist +build +eggs +parts +bin +var +sdist +develop-eggs +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg + +# Mac crap +.DS_Store diff --git a/mods/darkage/README.md b/mods/darkage/README.md new file mode 100755 index 00000000..53ab88fc --- /dev/null +++ b/mods/darkage/README.md @@ -0,0 +1,76 @@ +# Darkage mod for Minetest +This mod adds some new blocks that allow pre-industrial looking buildings to be made. +Of course, feel free to use them for any other type of construction. + +This mod originally created by MasterGollum and is now maintained and being improved upon by addi and CraigyDavi. + +**Depends:** default, stairs?, stairsplus? + +**License:** Code and textures, [WTFPL](http://www.wtfpl.net/txt/copying/) + +**Installation:** Unzip the file and rename it to "darkage". Then move it to the mod directory. + +## Changelog +**Version Development** + +**Version 1.3** + +* Many, many craft recipe changes +* New lamp texture +* New mud and mud lump texture +* Add some more stairs, fix existing stairs +* Fixes problems with light emmiting nodes +* Fix caves generating in blocks which are not ground content +* Remove textures32 folder, code cleanup + +**Version 1.2** + +* Corrected Sounds of Stairs +* Updated mod to use new moreblocks API +* Added Serpentine Stairs + +**Version 1.1** + +* Fix spelling mistakes in README file +* Bug fix +* Rename slate_tale to slate_tile +* Remove unneeded code +* Add marble tile +* Remove unneeded code +* Capitalise a couple of descriptions +* Add marble tile texture +* Rename alias.lua to aliases.lua + +**Version 1.0.1** + +* Fixed broken init.lua + +**Version 1.0** + +* Compatibility with stairsplus added +* Added new iron_stick item +* Added craft for iron stick +* Changed craft reciep of iron_bars to avoid conflicts with iron bars mod +* Changed craft recipe of chain to avoid conflicts with 3d furniture mod +* Changed craft recipe of darkage:stonebrick to avoid conflicts with moreblocks +* Disabled marble_tile +* Added darkage:glass +* Changed the sound_node_leaves_default to wood_default for boxes and wooden shelves +* Added craft recipe for chalk +* Improved the textures of reinforced wood and chalk +* Added another recipe for darkage straw + +**Version 0.3** + +* 29 Nodes + 3 Craft Items +* Furniture and building decoration +* Stone layers + +**Version 0.2** + +* 13 Nodes +* Sedimentary stones + +**Version 0.1** + +* 6 Nodes diff --git a/mods/darkage/aliases.lua b/mods/darkage/aliases.lua new file mode 100755 index 00000000..bc5b2b36 --- /dev/null +++ b/mods/darkage/aliases.lua @@ -0,0 +1,90 @@ +-- darkage:desert_stone_cobble + stairs/slabs/microblocks -> default:desert_cobble + stairs/slabs/microblocks +minetest.register_alias("darkage:desert_stone_cobble","default:desert_cobble") +minetest.register_alias("darkage:stair_desert_stone_cobble_wall_half","default:stair_desert_cobble_wall_half") +minetest.register_alias("darkage:slab_desert_stone_cobble_inverted","default:slab_desert_cobble_inverted") +minetest.register_alias("darkage:stair_desert_stone_cobble_inverted","default:stair_desert_cobble_inverted") +minetest.register_alias("darkage:stair_desert_stone_cobble_outer","default:stair_desert_cobble_outer") +minetest.register_alias("darkage:slab_desert_stone_cobble_three_quarter_wall","default:slab_desert_cobble_three_quarter_wall") +minetest.register_alias("darkage:slab_desert_stone_cobble_quarter","default:slab_desert_cobble_quarter") +minetest.register_alias("darkage:slab_desert_stone_cobble","default:slab_desert_cobble") +minetest.register_alias("darkage:slab_desert_stone_cobble_quarter_inverted","default:slab_desert_cobble_quarter_inverted") +minetest.register_alias("darkage:stair_desert_stone_cobble_wall","default:stair_desert_cobble_wall") +minetest.register_alias("darkage:stair_desert_stone_cobble_outer_inverted","default:stair_desert_cobble_outer_inverted") +minetest.register_alias("darkage:stair_desert_stone_cobble_half","default:stair_desert_cobble_half") +minetest.register_alias("darkage:stair_desert_stone_cobble_wall_half_inverted","default:stair_desert_cobble_wall_half_inverted") +minetest.register_alias("darkage:micro_desert_stone_cobble_bottom","default:micro_desert_cobble_bottom") +minetest.register_alias("darkage:panel_desert_stone_cobble_bottom","default:panel_desert_cobble_bottom") +minetest.register_alias("darkage:stair_desert_stone_cobble_half_inverted","default:stair_desert_cobble_half_inverted") +minetest.register_alias("darkage:micro_desert_stone_cobble_top","default:micro_desert_cobble_top") +minetest.register_alias("darkage:slab_desert_stone_cobble_quarter_wall","default:slab_desert_cobble_quarter_wall") +minetest.register_alias("darkage:stair_desert_stone_cobble_right_half","default:stair_desert_cobble_right_half") +minetest.register_alias("darkage:stair_desert_stone_cobble_right_half_inverted","default:stair_desert_cobble_right_half_inverted") +minetest.register_alias("darkage:slab_desert_stone_cobble_three_quarter","default:slab_desert_cobble_three_quarter") +minetest.register_alias("darkage:panel_desert_stone_cobble_top","default:panel_desert_cobble_top") +minetest.register_alias("darkage:stair_desert_stone_cobble_inner","default:stair_desert_cobble_inner") +minetest.register_alias("darkage:stair_desert_stone_cobble","default:stair_desert_cobble") +minetest.register_alias("darkage:panel_desert_stone_cobble_vertical","default:panel_desert_cobble_vertical") +minetest.register_alias("darkage:stair_desert_stone_cobble_inner_inverted","default:stair_desert_cobble_inner_inverted") +minetest.register_alias("darkage:slab_desert_stone_cobble_three_quarter_inverted","default:slab_desert_cobble_three_quarter_inverted") + +-- darkage:sandstone_cobble + stairs/slabs/microblocks -> default:sandstonebrick + stairs/slabs/microblocks +minetest.register_alias("darkage:sandstone_cobble","default:sandstonebrick") +minetest.register_alias("darkage:stair_sandstone_cobble_wall_half","default:stair_sandstonebrick_wall_half") +minetest.register_alias("darkage:slab_sandstone_cobble_inverted","default:slab_sandstonebrick_inverted") +minetest.register_alias("darkage:stair_sandstone_cobble_inverted","default:stair_sandstonebrick_inverted") +minetest.register_alias("darkage:stair_sandstone_cobble_outer","default:stair_sandstonebrick_outer") +minetest.register_alias("darkage:slab_sandstone_cobble_three_quarter_wall","default:slab_sandstonebrick_three_quarter_wall") +minetest.register_alias("darkage:slab_sandstone_cobble_quarter","default:slab_sandstonebrick_quarter") +minetest.register_alias("darkage:slab_sandstone_cobble","default:slab_sandstonebrick") +minetest.register_alias("darkage:slab_sandstone_cobble_quarter_inverted","default:slab_sandstonebrick_quarter_inverted") +minetest.register_alias("darkage:stair_sandstone_cobble_wall","default:stair_sandstonebrick_wall") +minetest.register_alias("darkage:stair_sandstone_cobble_outer_inverted","default:stair_sandstonebrick_outer_inverted") +minetest.register_alias("darkage:stair_sandstone_cobble_half","default:stair_sandstonebrick_half") +minetest.register_alias("darkage:stair_sandstone_cobble_wall_half_inverted","default:stair_sandstonebrick_wall_half_inverted") +minetest.register_alias("darkage:micro_sandstone_cobble_bottom","default:micro_sandstonebrick_bottom") +minetest.register_alias("darkage:panel_sandstone_cobble_bottom","default:panel_sandstonebrick_bottom") +minetest.register_alias("darkage:stair_sandstone_cobble_half_inverted","default:stair_sandstonebrick_half_inverted") +minetest.register_alias("darkage:micro_sandstone_cobble_top","default:micro_sandstonebrick_top") +minetest.register_alias("darkage:slab_sandstone_cobble_quarter_wall","default:slab_sandstonebrick_quarter_wall") +minetest.register_alias("darkage:stair_sandstone_cobble_right_half","default:stair_sandstonebrick_right_half") +minetest.register_alias("darkage:stair_sandstone_cobble_right_half_inverted","default:stair_sandstonebrick_right_half_inverted") +minetest.register_alias("darkage:slab_sandstone_cobble_three_quarter","default:slab_sandstonebrick_three_quarter") +minetest.register_alias("darkage:panel_sandstone_cobble_top","default:panel_sandstonebrick_top") +minetest.register_alias("darkage:stair_sandstone_cobble_inner","default:stair_sandstonebrick_inner") +minetest.register_alias("darkage:stair_sandstone_cobble","default:stair_sandstonebrick") +minetest.register_alias("darkage:panel_sandstone_cobble_vertical","default:panel_sandstonebrick_vertical") +minetest.register_alias("darkage:stair_sandstone_cobble_inner_inverted","default:stair_sandstonebrick_inner_inverted") +minetest.register_alias("darkage:slab_sandstone_cobble_three_quarter_inverted","default:slab_sandstonebrick_three_quarter_inverted") + +-- darkage:slate_tale + stairs/slabs/microblocks -> darkage:slate_tile + stairs/slabs/microblocks +minetest.register_alias("darkage:slate_tile","darkage:slate_tale") +minetest.register_alias("darkage:slab_slate_tile_inverted","darkage:slab_slate_tale_inverted") +minetest.register_alias("darkage:slab_slate_tile_wall","darkage:slab_slate_tale_wall") +minetest.register_alias("darkage:slab_slate_tile_quarter","darkage:slab_slate_tale_quarter") +minetest.register_alias("darkage:slab_slate_tile_quarter_inverted","darkage:slab_slate_tale_quarter_inverted") +minetest.register_alias("darkage:slab_slate_tile_quarter_wall","darkage:slab_slate_tale_quarter_wall") +minetest.register_alias("darkage:slab_slate_tile_three_quarter","darkage:slab_slate_tale_three_quarter") +minetest.register_alias("darkage:slab_slate_tile_three_quarter_inverted","darkage:slab_slate_tale_three_quarter_inverted") +minetest.register_alias("darkage:slab_slate_tile_three_quarter_wall","darkage:slab_slate_tale_three_quarter_wall") +minetest.register_alias("darkage:stair_slate_tile_inverted","darkage:stair_slate_tale_inverted") +minetest.register_alias("darkage:stair_slate_tile_wall","darkage:stair_slate_tale_wall") +minetest.register_alias("darkage:stair_slate_tile_wall_half","darkage:stair_slate_tale_wall_half") +minetest.register_alias("darkage:stair_slate_tile_wall_half_inverted","darkage:stair_slate_tale_wall_half_inverted") +minetest.register_alias("darkage:stair_slate_tile_half","darkage:stair_slate_tale_half") +minetest.register_alias("darkage:stair_slate_tile_half_inverted","darkage:stair_slate_tale_half_inverted") +minetest.register_alias("darkage:stair_slate_tile_right_half","darkage:stair_slate_tale_right_half") +minetest.register_alias("darkage:stair_slate_tile_right_half_inverted","darkage:stair_slate_tale_right_half_inverted") +minetest.register_alias("darkage:stair_slate_tile_wall_half","darkage:stair_slate_tale_wall_half") +minetest.register_alias("darkage:stair_slate_tile_wall_half_inverted","darkage:stair_slate_tale_wall_half_inverted") +minetest.register_alias("darkage:stair_slate_tile_inner","darkage:stair_slate_tale_inner") +minetest.register_alias("darkage:stair_slate_tile_inner_inverted","darkage:stair_slate_tale_inner_inverted") +minetest.register_alias("darkage:stair_slate_tile_outer","darkage:stair_slate_tale_outer") +minetest.register_alias("darkage:stair_slate_tile_outer_inverted","darkage:stair_slate_tale_outer_inverted") +minetest.register_alias("darkage:panel_slate_tile_bottom","darkage:panel_slate_tale_bottom") +minetest.register_alias("darkage:panel_slate_tile_top","darkage:panel_slate_tale_top") +minetest.register_alias("darkage:panel_slate_tile_vertical","darkage:panel_slate_tale_vertical") +minetest.register_alias("darkage:micro_slate_tile_bottom","darkage:micro_slate_tale_bottom") +minetest.register_alias("darkage:micro_slate_tile_top","darkage:micro_slate_tale_top") + +-- darkage:desert_stone_with_iron -> default:desert_stone +minetest.register_alias("darkage:desert_stone_with_iron","default:desert_stone") diff --git a/mods/darkage/craftitems.lua b/mods/darkage/craftitems.lua new file mode 100755 index 00000000..409d9ea7 --- /dev/null +++ b/mods/darkage/craftitems.lua @@ -0,0 +1,19 @@ +minetest.register_craftitem("darkage:chalk_powder", { + description = "Chalk Powder", + inventory_image = "darkage_chalk_powder.png", +}) + +minetest.register_craftitem("darkage:mud_lump", { + description = "Mud Lump", + inventory_image = "darkage_mud_lump.png", +}) + +minetest.register_craftitem("darkage:silt_lump", { + description = "Silt Lump", + inventory_image = "darkage_silt_lump.png", +}) + +minetest.register_craftitem("darkage:iron_stick", { + description = "Iron Stick", + inventory_image = "darkage_iron_stick.png", +}) \ No newline at end of file diff --git a/mods/darkage/crafts.lua b/mods/darkage/crafts.lua new file mode 100755 index 00000000..25407255 --- /dev/null +++ b/mods/darkage/crafts.lua @@ -0,0 +1,353 @@ +-- Naturally spawning blocks +minetest.register_craft({ + output = "darkage:chalk", + recipe = { + {"darkage:chalk_powder","darkage:chalk_powder"}, + {"darkage:chalk_powder","darkage:chalk_powder"}, + } +}) + +minetest.register_craft({ + output = "darkage:mud", + recipe = { + {"darkage:mud_lump","darkage:mud_lump"}, + {"darkage:mud_lump","darkage:mud_lump"}, + } +}) + +minetest.register_craft({ + type = "cooking", + output = "darkage:shale", + recipe = "darkage:mud", +}) + +minetest.register_craft({ + output = "darkage:silt 3", + recipe = { + {"default:sand","default:sand"}, + {"default:clay_lump","default:clay_lump"}, + } +}) + +minetest.register_craft({ + output = "darkage:silt", + recipe = { + {"darkage:silt_lump","darkage:silt_lump"}, + {"darkage:silt_lump","darkage:silt_lump"}, + } +}) + +minetest.register_craft({ + type = "cooking", + output = "darkage:gneiss", + recipe = "darkage:schist", +}) + +minetest.register_craft({ + type = "cooking", + output = "darkage:slate", + recipe = "darkage:shale", +}) + +minetest.register_craft({ + type = "cooking", + output = "darkage:mud 5", + recipe = "darkage:silt", +}) + +minetest.register_craft({ + type = "cooking", + output = "darkage:slate", + recipe = "darkage:slate_cobble", +}) + +minetest.register_craft({ + output = "darkage:ors 4", + recipe = { + {"default:sandstone","default:sandstone"}, + {"default:iron_lump","default:sandstone"}, + } +}) + +minetest.register_craft({ + type = "cooking", + output = "darkage:ors", + recipe = "darkage:ors_cobble", +}) + +minetest.register_craft({ + type = "cooking", + output = "darkage:gneiss", + recipe = "darkage:gneiss_cobble", +}) + +minetest.register_craft({ + type = "cooking", + output = "darkage:basalt", + recipe = "darkage:basalt_cobble", +}) + +-- Cobble + +-- Other Blocks + +minetest.register_craft({ + output = "darkage:straw 2", + recipe = { + {"default:dry_shrub","default:dry_shrub"}, + {"default:dry_shrub","default:dry_shrub"}, + } +}) + +minetest.register_craft({ + output = "darkage:straw 2", + recipe = { + {"darkage:dry_leaves","darkage:dry_leaves"}, + {"darkage:dry_leaves","darkage:dry_leaves"}, + } +}) + +minetest.register_craft({ + output = "darkage:straw_bale", + recipe = { + {"darkage:straw","darkage:straw"}, + {"darkage:straw","darkage:straw"}, + } +}) + +minetest.register_craft({ + output = "darkage:slate_tile 4", + recipe = { + {"darkage:slate","darkage:slate"}, + {"darkage:slate","darkage:slate"}, + {"darkage:adobe","darkage:adobe"}, + } +}) + +minetest.register_craft({ + output = "darkage:marble_tile 4", + recipe = { + {"darkage:marble","darkage:marble"}, + {"darkage:marble","darkage:marble"}, + {"darkage:adobe","darkage:adobe"}, + } +}) + +minetest.register_craft({ + output = "darkage:stone_brick 9", + recipe = { + {"default:cobble","default:cobble","default:cobble"}, + {"default:cobble","default:cobble","default:cobble"}, + {"default:cobble","default:cobble","default:cobble"}, + } +}) + +minetest.register_craft({ + output = "darkage:reinforced_chalk", + recipe = { + {"group:stick","","group:stick"}, + {"","darkage:chalk",""}, + {"group:stick","","group:stick"}, + } +}) + +minetest.register_craft({ + output = "darkage:adobe 4", + recipe = { + {"default:sand","default:sand"}, + {"default:clay_lump","darkage:straw"}, + } +}) + +minetest.register_craft({ + output = "darkage:lamp", + recipe = { + {"group:stick","","group:stick"}, + {"","default:torch",""}, + {"group:stick","","group:stick"}, + } +}) + +minetest.register_craft({ + output = "darkage:cobble_with_plaster 2", + recipe = { + {"default:cobble","darkage:chalk_powder"}, + {"default:cobble","darkage:chalk_powder"}, + } +}) + +minetest.register_craft({ + output = "darkage:cobble_with_plaster 2", + recipe = { + {"darkage:chalk_powder","default:cobble"}, + {"darkage:chalk_powder","default:cobble"}, + } +}) + +minetest.register_craft({ + output = "darkage:darkdirt 4", + recipe = { + {"default:dirt","default:dirt"}, + {"default:gravel","default:gravel"}, + } +}) + +minetest.register_craft({ + type = "cooking", + output = "darkage:dry_leaves", + recipe = "default:leaves", +}) + +-- Storage blocks (boxes, shelves, ect.) +minetest.register_craft({ + output = "darkage:box", + recipe = { + {"default:wood","","default:wood"}, + {"","",""}, + {"default:wood","","default:wood"}, + } +}) + +minetest.register_craft({ + output = "darkage:wood_shelves 2", + recipe = { + {"darkage:box"}, + {"darkage:box"}, + } +}) + +-- Glass / Glow Glass +minetest.register_craft({ + output = "darkage:glass", + recipe = { + {"darkage:glow_glass"}, + } +}) + +minetest.register_craft({ + output = "darkage:glass 8", + recipe = { + {"default:glass", "default:steel_ingot", "default:glass"}, + {"default:steel_ingot", "default:glass", "default:steel_ingot"}, + {"default:glass", "default:steel_ingot", "default:glass"}, + } +}) + +minetest.register_craft({ + output = "darkage:glow_glass", + recipe = { + {"darkage:glass"}, + {"default:torch"}, + } +}) + +-- Reinforced Wood +minetest.register_craft({ + output = "darkage:reinforced_wood", + recipe = { + {"group:stick","","group:stick"}, + {"","default:wood",""}, + {"group:stick","","group:stick"}, + } +}) + +minetest.register_craft({ + output = "darkage:reinforced_wood_left", + recipe = { + {"default:stick","darkage:reinforced_wood",""}, + } +}) + +minetest.register_craft({ + output = "darkage:reinforced_wood_right", + recipe = { + {"","darkage:reinforced_wood","default:stick"}, + } +}) + +-- Wood based deco items +minetest.register_craft({ + output = "darkage:wood_bars 2", + recipe = { + {"default:stick","","default:stick"}, + {"default:stick","","default:stick"}, + {"default:stick","","default:stick"}, + } +}) + +minetest.register_craft({ + output = "darkage:wood_grille 2", + recipe = { + {"","darkage:wood_bars",""}, + {"darkage:wood_bars","","darkage:wood_bars"}, + {"","darkage:wood_bars",""}, + } +}) + +minetest.register_craft({ + output = "darkage:wood_frame", + recipe = { + {"group:stick","","group:stick"}, + {"","group:wood",""}, + {"group:stick","","group:stick"}, + } +}) + +-- Metal based deco items +minetest.register_craft({ + output = "darkage:chain 2", + recipe = { + {"darkage:iron_stick"}, + {"darkage:iron_stick"}, + {"darkage:iron_stick"}, + } +}) + +minetest.register_craft({ + output = "darkage:iron_bars 2", + recipe = { + {"darkage:iron_stick","","darkage:iron_stick"}, + {"darkage:iron_stick","","darkage:iron_stick"}, + {"darkage:iron_stick","","darkage:iron_stick"}, + } +}) + +minetest.register_craft({ + output = "darkage:iron_grille 2", + recipe = { + {"","darkage:iron_bars",""}, + {"darkage:iron_bars","","darkage:iron_bars"}, + {"","darkage:iron_bars",""}, + } +}) + +-- Craft items +minetest.register_craft({ + output = "darkage:chalk_powder 4", + recipe = { + {"darkage:chalk"}, + } +}) + +minetest.register_craft({ + output = "darkage:mud_lump 4", + recipe = { + {"darkage:mud"}, + } +}) + +minetest.register_craft({ + output = "darkage:silt_lump 4", + recipe = { + {"darkage:silt"}, + } +}) + +minetest.register_craft({ + output = "darkage:iron_stick 3", + recipe = { + {"default:steel_ingot"}, + {"default:steel_ingot"}, + {"default:steel_ingot"}, + } +}) diff --git a/mods/darkage/depends.txt b/mods/darkage/depends.txt new file mode 100755 index 00000000..7408e617 --- /dev/null +++ b/mods/darkage/depends.txt @@ -0,0 +1,3 @@ +default +stairs? +stairsplus? \ No newline at end of file diff --git a/mods/darkage/init.lua b/mods/darkage/init.lua new file mode 100755 index 00000000..be2ba198 --- /dev/null +++ b/mods/darkage/init.lua @@ -0,0 +1,16 @@ +------------------------------------------------------ +-- Darkage mod by MasterGollum, addi and CraigyDavi -- +------------------------------------------------------ + +dofile(minetest.get_modpath("darkage").."/nodes.lua") +dofile(minetest.get_modpath("darkage").."/craftitems.lua") +dofile(minetest.get_modpath("darkage").."/crafts.lua") +dofile(minetest.get_modpath("darkage").."/mapgen.lua") +dofile(minetest.get_modpath("darkage").."/stairs.lua") +dofile(minetest.get_modpath("darkage").."/aliases.lua") + +-- +-- Config +-- + +print ("Darkage [darkage] has loaded!") \ No newline at end of file diff --git a/mods/darkage/mapgen.lua b/mods/darkage/mapgen.lua new file mode 100755 index 00000000..ce9c4c3f --- /dev/null +++ b/mods/darkage/mapgen.lua @@ -0,0 +1,254 @@ +--[[ + This file generates: + darkage:mud + darkage:silt + darkage:chalk + darkage:ors + darkage:shale + darkage:slate + darkage:schist + darkage:basalt + darkage:marble + darkage:serpentine + darkage:gneiss +--]] + +local function generate_stratus(name, wherein, ceilin, ceil, minp, maxp, seed, stratus_chance, radius, radius_y, deep, height_min, height_max) + if maxp.y < height_min or minp.y > height_max then + return + end + local stratus_per_volume = 1 + local area = 45 + 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)/area)*((y_max-y_min+1)/area)*((maxp.z-minp.z+1)/area) + local pr = PseudoRandom(seed) + local blocks = math.floor(stratus_per_volume*volume) + print(" <<"..dump(name)..">>"); + if blocks == 0 then + blocks = 1 + end + print(" blocks: "..dump(blocks).." in vol: "..dump(volume).." ("..dump(maxp.x-minp.x+1)..","..dump(y_max-y_min+1)..","..dump(maxp.z-minp.z+1)..")") + for i=1,blocks do + local x = pr:next(1,stratus_chance) + if x == 1 then + local y0=y_max-radius_y+1 + if y0 < y_min then + y0=y_min + else + y0=pr:next(y_min, y0) + end + local x0 = maxp.x-radius+1 + if x0 < minp.x then + x0 = minp.x + else + x0 = pr:next(minp.x, x0) + end + local z0 = maxp.z-radius+1 + if z0 < minp.z then + x0 = minp.z + else + z0 = pr:next(minp.z, z0) + end + local p0 = {x=x0, y=y0, z=z0} + local n = minetest.get_node(p0).name + local i = 0 + x = 0 + for k, v in ipairs(ceilin) do + if n == v then + x = 1 + break + end + end + if x == 1 then + for y1=y0-1,y_min,-1 do + p0.y=y1 + n = minetest.get_node(p0).name + x = 0 + for k, v in ipairs(wherein) do + if n == v then + x = 1 + break + end + end + if x == 1 then + y0=y1-deep + if y0 < y_min then + y0 = y_min + end + break + end + end + local rx=pr:next(radius/2,radius)+1 + local rz=pr:next(radius/2,radius)+1 + local ry=pr:next(radius_y/2,radius_y)+1 + for x1=0,rx do + rz = rz + 3 - pr:next(1,6) + if rz < 1 then + rz = 1 + end + for z1=pr:next(1,3),rz do + local ry0=ry+ pr:next(1,3) + for y1=pr:next(1,3),ry0 do + local x2 = x0+x1 + local y2 = y0+y1 + local z2 = z0+z1 + local p2 = {x=x2, y=y2, z=z2} + n = minetest.get_node(p2).name + x = 0 + for k, v in ipairs(wherein) do + if n == v then + x = 1 + break + end + end + if x == 1 then + if ceil == nil then + minetest.set_node(p2, {name=name}) + i = i +1 + else + local p3 = {p2.x,p2.y+1,p2} + if minetest.get_node(p3).name == ceil then + minetest.set_node(p2, {name=name}) + i = i +1 + end + end + end + end + end + end + print(" generated "..dump(i).." blocks in ("..dump(x0)..","..dump(y0)..","..dump(z0)..")") +-- end end end end! +end +end +end +end + +local function generate_claylike(name, minp, maxp, seed, chance, minh, maxh, dirt) + if maxp.y >= maxh+1 and minp.y <= minh-1 then + local pr = PseudoRandom(seed) + local divlen = 4 + local divs = (maxp.x-minp.x)/divlen+1; + for yy=minh,maxh do + local x = pr:next(1,chance) + if x == 1 then + for divx=0+1,divs-1-1 do + for divz=0+1,divs-1-1 do + local cx = minp.x + math.floor((divx+0.5)*divlen) + local cz = minp.z + math.floor((divz+0.5)*divlen) + local up = minetest.get_node({x=cx,y=yy,z=cz}).name + local down = minetest.get_node({x=cx,y=yy-1,z=cz}).name + if ( up == "default:water_source" or up == "air" ) and ( down == "default:sand" or (dirt == 1 and (down == "default:dirt" or down == "default:dirt_with_grass" ))) then + local is_shallow = true + local num_water_around = 0 + if minetest.get_node({x=cx-divlen*2,y=yy,z=cz}).name == "default:water_source" then + num_water_around = num_water_around + 1 + end + if minetest.get_node({x=cx+divlen*2,y=yy,z=cz}).name == "default:water_source" then + num_water_around = num_water_around + 1 + end + if minetest.get_node({x=cx,y=yy,z=cz-divlen*2}).name == "default:water_source" then + num_water_around = num_water_around + 1 + end + if minetest.get_node({x=cx,y=yy,z=cz+divlen*2}).name == "default:water_source" then + num_water_around = num_water_around + 1 + end + if num_water_around >= 3 then + is_shallow = false + end + if is_shallow then + for x1=-divlen,divlen do + for z1=-divlen,divlen do + local p={x=cx+x1,y=yy-1,z=cz+z1} + down = minetest.get_node(p).name + if down == "default:sand" or (dirt == 1 and (down == "default:dirt" or down == "default:dirt_with_grass")) then + minetest.set_node(p, {name=name}) + end + end + end + end + end + end + end + end + end + end +end + + +local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, chunk_size, ore_per_chunk, height_min, height_max) + 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) + local num_chunks = math.floor(chunks_per_volume * volume) + local inverse_chance = math.floor(chunk_size*chunk_size*chunk_size / ore_per_chunk) + 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 +end + +minetest.register_on_generated(function(minp, maxp, seed) +print("DARKAGE: Generate stratus"); +generate_claylike("darkage:mud", minp, maxp, seed+1, 4, 0, 2, 0) +generate_claylike("darkage:silt", minp, maxp, seed+2, 4, -1, 1, 1) +generate_stratus("darkage:chalk", + {"default:stone"}, + {"default:stone","air"}, nil, + minp, maxp, seed+3, 4, 25, 8, 0, -20, 50) +generate_stratus("darkage:ors", + {"default:stone"}, + {"default:stone","air","default:water_source"}, nil, + minp, maxp, seed+4, 4, 25, 7, 50, -200, 500) +generate_stratus("darkage:shale", + {"default:stone"}, + {"default:stone","air"}, nil, + minp, maxp, seed+5, 4, 23, 7, 50, -50, 20) +generate_stratus("darkage:slate", + {"default:stone"}, + {"default:stone","air"}, nil, + minp, maxp, seed+6, 6, 23, 5, 50, -500, 0) +generate_stratus("darkage:schist", + {"default:stone"}, + {"default:stone","air"}, nil, + minp, maxp, seed+7, 6, 19, 6, 50, -31000, -10) +generate_stratus("darkage:basalt", + {"default:stone"}, + {"default:stone","air"}, nil, + minp, maxp, seed+8, 5, 20, 5, 20, -31000, -50) +generate_stratus("darkage:marble", + {"default:stone"}, + {"default:stone","air"}, nil, + minp, maxp, seed+9, 4, 25, 6, 50, -31000, -75) +generate_stratus("darkage:serpentine", + {"default:stone"}, + {"default:stone","air"}, nil, + minp, maxp, seed+10, 4, 28, 8, 50, -31000, -350) +generate_stratus("darkage:gneiss", + {"default:stone"}, + {"default:stone","air"}, nil, + minp, maxp, seed+11, 4, 15, 5, 50, -31000, -250) +end) diff --git a/mods/darkage/nodes.lua b/mods/darkage/nodes.lua new file mode 100755 index 00000000..f73f9bed --- /dev/null +++ b/mods/darkage/nodes.lua @@ -0,0 +1,443 @@ +-- Naturally spawning blocks +minetest.register_node("darkage:chalk", { + description = "Chalk", + tiles = {"darkage_chalk.png"}, + is_ground_content = true, + drop = "darkage:chalk_powder 4", + groups = {crumbly=2,cracky=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:marble", { + description = "Marble", + tiles = {"darkage_marble.png"}, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:serpentine", { + description = "Serpentine", + tiles = {"darkage_serpentine.png"}, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:mud", { + description = "Mud", + tiles = {"darkage_mud_top.png", "darkage_mud.png"}, + is_ground_content = true, + groups = {crumbly=3}, + drop = "darkage:mud_lump 4", + sounds = default.node_sound_dirt_defaults({ + footstep = "", + }), +}) + +minetest.register_node("darkage:schist", { + description = "Schist", + tiles = {"darkage_schist.png"}, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:shale", { + description = "Shale", + tiles = {"darkage_shale.png","darkage_shale.png","darkage_shale_side.png"}, + is_ground_content = true, + groups = {crumbly=2,cracky=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:silt", { + description = "Silt", + tiles = {"darkage_silt.png"}, + is_ground_content = true, + groups = {crumbly=3}, + drop = "darkage:silt_lump 4", + sounds = default.node_sound_dirt_defaults({ + footstep = "", + }), +}) + +minetest.register_node("darkage:slate", { + description = "Slate", + tiles = {"darkage_slate.png","darkage_slate.png","darkage_slate_side.png"}, + is_ground_content = true, + drop = "darkage:slate_cobble", + groups = {cracky=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:ors", { + description = "Old Red Sandstone", + tiles = {"darkage_ors.png"}, + is_ground_content = true, + drop = "darkage:ors_cobble", + groups = {crumbly=2,cracky=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:gneiss", { + description = "Gneiss", + tiles = {"darkage_gneiss.png"}, + is_ground_content = true, + groups = {cracky=3}, + drop = "darkage:gneiss_cobble", + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:basalt", { + description = "Basalt", + tiles = {"darkage_basalt.png"}, + is_ground_content = true, + drop = "darkage:basalt_cobble", + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults() +}) + +-- Cobble +minetest.register_node("darkage:slate_cobble", { + description = "Slate Cobble", + tiles = {"darkage_slate_cobble.png"}, + groups = {cracky=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:ors_cobble", { + description = "Old Red Sandstone Cobble", + tiles = {"darkage_ors_cobble.png"}, + groups = {crumbly=2,cracky=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:gneiss_cobble", { + description = "Gneiss Cobble", + tiles = {"darkage_gneiss_cobble.png"}, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:basalt_cobble", { + description = "Basalt Cobble", + tiles = {"darkage_basalt_cobble.png"}, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults() +}) + +-- Brick +minetest.register_node("darkage:slate_brick", { + description = "Slate Brick", + tiles = {"darkage_slate_brick.png"}, + groups = {cracky=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:ors_brick", { + description = "Old Red Sandstone Brick", + tiles = {"darkage_ors_brick.png"}, + groups = {crumbly=2,cracky=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:gneiss_brick", { + description = "Gneiss Brick", + tiles = {"darkage_gneiss_brick.png"}, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:basalt_brick", { + description = "Basalt Brick", + tiles = {"darkage_basalt_brick.png"}, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:stone_brick", { + description = "Stone Brick", + tiles = {"darkage_stone_brick.png"}, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults() +}) + +-- Other Blocks +minetest.register_node("darkage:straw", { + description = "Straw", + tiles = {"darkage_straw.png"}, + groups = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("darkage:straw_bale", { + description = "Straw Bale", + tiles = {"darkage_straw_bale.png"}, + drop = "darkage:straw 4", + groups = {snappy=2, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("darkage:slate_tile", { + description = "Slate Tile", + tiles = {"darkage_slate_tile.png"}, + groups = {cracky=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:marble_tile", { + description = "Marble Tile", + tiles = {"darkage_marble_tile.png"}, + groups = {cracky=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:reinforced_chalk", { + description = "Reinforced Chalk", + tiles = {"darkage_chalk.png^darkage_reinforce.png"}, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:adobe", { + description = "Adobe", + tiles = {"darkage_adobe.png"}, + groups = {crumbly=3}, + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("darkage:lamp", { + description = "Lamp", + tiles = {"darkage_lamp.png"}, + paramtype = "light", + light_source = 18, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,flammable=1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("darkage:cobble_with_plaster", { + description = "Cobblestone With Plaster", + tiles = {"darkage_cobble_with_plaster_D.png", "darkage_cobble_with_plaster_B.png", "darkage_cobble_with_plaster_C.png", + "darkage_cobble_with_plaster_A.png", "default_cobble.png", "darkage_chalk.png"}, + paramtype2 = "facedir", + drop = "default:cobble", + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("darkage:darkdirt", { + description = "Dark Dirt", + tiles = {"darkage_darkdirt.png"}, + groups = {crumbly=2}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("darkage:dry_leaves", { + description = "Dry Leaves", + tiles = {"darkage_dry_leaves.png"}, + paramtype = "light", + groups = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults() +}) + +-- Storage blocks (boxes, shelves, ect.) +minetest.register_node("darkage:box", { + description = "Box", + tiles = { "darkage_box_top.png","darkage_box_top.png","darkage_box.png"}, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = { snappy = 3 }, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[8,8]".. + "list[current_name;main;0,0;8,3;]".. + "list[current_player;main;0,4;8,4;]") + meta:set_string("infotext", "Box") + local inv = meta:get_inventory() + inv:set_size("main", 16) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name().. + " moves stuff in box 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 box 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 box at "..minetest.pos_to_string(pos)) + end, +}) + +minetest.register_node("darkage:wood_shelves", { + description = "Wooden Shelves", + tiles = { "darkage_shelves.png","darkage_shelves.png","darkage_shelves.png", + "darkage_shelves.png","darkage_shelves.png","darkage_shelves_front.png"}, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = {snappy = 3}, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[8,10]".. + "list[context;up;0,0;8,3;]".. + "list[context;down;0,3;8,3;]".. + "list[current_player;main;0,6;8,4;]") + meta:set_string("infotext", "Wooden Shelves") + local inv = meta:get_inventory() + inv:set_size("up", 16) + inv:set_size("down", 16) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("shape") and inv:is_empty("out") and inv:is_empty("water") + 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 shelves 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 shelves 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 shelves at "..minetest.pos_to_string(pos)) + end, +}) + +-- Glass / Glow Glass +minetest.register_node("darkage:glass", { + description = "Medieval Glass", + drawtype = "glasslike", + tiles = {"darkage_glass.png"}, + paramtype = "light", + sunlight_propagates = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("darkage:glow_glass", { + description = "Medieval Glow Glass", + drawtype = "glasslike", + tiles = {"darkage_glass.png"}, + paramtype = "light", + light_source = 18, + sunlight_propagates = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults(), +}) + +-- Reinforced Wood +minetest.register_node("darkage:reinforced_wood", { + description = "Reinforced Wood", + tiles = {"default_wood.png^darkage_reinforce.png"}, + groups = {snappy=2,choppy=3,oddly_breakable_by_hand=3,flammable=3}, + sounds = default.node_sound_wood_defaults() +}) + +minetest.register_node("darkage:reinforced_wood_left", { + description = "Reinforced Wood Left", + tiles = {"darkage_reinforced_wood_left.png"}, + groups = {snappy=2,choppy=3,oddly_breakable_by_hand=3,flammable=3}, + sounds = default.node_sound_wood_defaults() +}) + +minetest.register_node("darkage:reinforced_wood_right", { + description = "Reinforced Wood Right", + tiles = {"darkage_reinforced_wood_right.png"}, + groups = {snappy=2,choppy=3,oddly_breakable_by_hand=3,flammable=3}, + sounds = default.node_sound_wood_defaults() +}) + +-- Wood based deco items +minetest.register_node("darkage:wood_bars", { + description = "Wooden Bars", + drawtype = "glasslike", + tiles = {"darkage_wood_bars.png"}, + inventory_image = "darkage_wood_bars.png", + wield_image = "darkage_wood_bars.png", + paramtype = "light", + sunlight_propagates = true, + groups = {snappy=1,choppy=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:wood_grille", { + description = "Wooden Grille", + drawtype = "glasslike", + tiles = {"darkage_wood_grille.png"}, + inventory_image = "darkage_wood_grille.png", + wield_image = "darkage_wood_grille.png", + paramtype = "light", + sunlight_propagates = true, + groups = {snappy=1,choppy=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:wood_frame", { + description = "Wooden Frame", + drawtype = "glasslike", + tiles = {"darkage_wood_frame.png"}, + inventory_image = "darkage_wood_frame.png", + wield_image = "darkage_wood_frame.png", + paramtype = "light", + sunlight_propagates = true, + groups = {snappy=1,choppy=2}, + sounds = default.node_sound_stone_defaults() +}) + +-- Metal based deco items +minetest.register_node("darkage:chain", { + description = "Chain", + drawtype = "signlike", + tiles = {"darkage_chain.png"}, + inventory_image = "darkage_chain.png", + wield_image = "darkage_chain.png", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + climbable = true, + selection_box = { + type = "wallmounted", + }, + groups = {snappy=1,cracky=2,oddly_breakable_by_hand=2}, + legacy_wallmounted = true +}) + +minetest.register_node("darkage:iron_bars", { + description = "Iron Bars", + drawtype = "glasslike", + tiles = {"darkage_iron_bars.png"}, + inventory_image = "darkage_iron_bars.png", + wield_image = "darkage_iron_bars.png", + paramtype = "light", + sunlight_propagates = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("darkage:iron_grille", { + description = "Iron Grille", + drawtype = "glasslike", + tiles = {"darkage_iron_grille.png"}, + inventory_image = "darkage_iron_grille.png", + wield_image = "darkage_iron_grille.png", + paramtype = "light", + sunlight_propagates = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults() +}) diff --git a/mods/darkage/stairs.lua b/mods/darkage/stairs.lua new file mode 100755 index 00000000..8dc6124c --- /dev/null +++ b/mods/darkage/stairs.lua @@ -0,0 +1,343 @@ +if stairsplus then + + stairsplus:register_all("darkage", "basalt", "darkage:basalt", { + description = "Basalt", + tiles = {"darkage_basalt.png"}, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + sunlight_propagates = true, + }) + + stairsplus:register_all("darkage", "marble", "darkage:marble", { + description = "Marble", + tiles = {"darkage_marble.png"}, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + sunlight_propagates = true, + }) + + stairsplus:register_all("darkage", "serpentine", "darkage:serpentine", { + description = "Serpentine", + tiles = {"darkage_serpentine.png"}, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + sunlight_propagates = true, + }) + + stairsplus:register_all("darkage", "ors", "darkage:ors", { + description = "Old Red Sandstone", + tiles = {"darkage_ors.png"}, + groups = {crumbly=2,cracky=2}, + sounds = default.node_sound_stone_defaults(), + sunlight_propagates = true, + }) + + stairsplus:register_all("darkage", "schist", "darkage:schist", { + description = "Schist", + tiles = {"darkage_schist.png"}, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + sunlight_propagates = true, + }) + + stairsplus:register_all("darkage", "slate", "darkage:slate", { + description = "Slate", + tiles = {"darkage_slate.png"}, + groups = {cracky=2}, + sounds = default.node_sound_stone_defaults(), + sunlight_propagates = true, + }) + + stairsplus:register_all("darkage", "gneiss", "darkage:gneiss", { + description = "Gneiss", + tiles = {"darkage_gneiss.png"}, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + sunlight_propagates = true, + }) + + stairsplus:register_all("darkage", "chalk", "darkage:chalk", { + description = "Chalk", + tiles = {"darkage_chalk.png"}, + groups = {crumbly=2,cracky=2}, + sounds = default.node_sound_stone_defaults(), + sunlight_propagates = true, + }) + + stairsplus:register_all("darkage", "slate_cobble", "darkage:slate_cobble", { + description = "Slate Cobble", + tiles = {"darkage_slate_cobble.png"}, + groups = {cracky=2}, + sounds = default.node_sound_stone_defaults(), + sunlight_propagates = true, + }) + + stairsplus:register_all("darkage", "ors_cobble", "darkage:ors_cobble", { + description = "Old Red Sandstone Cobble", + tiles = {"darkage_ors_cobble.png"}, + groups = {crumbly=2,cracky=2}, + sounds = default.node_sound_stone_defaults(), + sunlight_propagates = true, + }) + + stairsplus:register_all("darkage", "gneiss_cobble", "darkage:gneiss_cobble", { + description = "Gneiss Cobble", + tiles = {"darkage_gneiss_cobble.png"}, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + sunlight_propagates = true, + }) + + stairsplus:register_all("darkage", "basalt_cobble", "darkage:basalt_cobble", { + description = "Basalt Cobble", + tiles = {"darkage_basalt_cobble.png"}, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + sunlight_propagates = true, + }) + + stairsplus:register_all("darkage", "straw", "darkage:straw", { + description = "Straw", + tiles = {"darkage_straw.png"}, + groups = {snappy=3, flammable=2}, + sounds = default.node_sound_stone_defaults(), + sunlight_propagates = true, + }) + + stairsplus:register_all("darkage", "straw_bale", "darkage:straw_bale", { + description = "Straw Bale", + tiles = {"darkage_straw_bale.png"}, + groups = {snappy=2, flammable=2}, + sounds = default.node_sound_stone_defaults(), + sunlight_propagates = true, + }) + + stairsplus:register_all("darkage", "slate_tile", "darkage:slate_tile", { + description = "Slate Tile", + tiles = {"darkage_slate_tile.png"}, + groups = {cracky=2}, + sounds = default.node_sound_stone_defaults(), + sunlight_propagates = true, + }) + + stairsplus:register_all("darkage", "marble_tile", "darkage:marble_tile", { + description = "Marble Tile", + tiles = {"darkage_marble_tile.png"}, + groups = {cracky=2}, + sounds = default.node_sound_stone_defaults(), + sunlight_propagates = true, + }) + + stairsplus:register_all("darkage", "stone_brick", "darkage:stone_brick", { + description = "Stone Brick", + tiles = {"darkage_stone_brick.png"}, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + sunlight_propagates = true, + }) + + stairsplus:register_all("darkage", "reinforced_chalk", "darkage:reinforced_chalk", { + description = "Reinforced Chalk", + tiles = {"darkage_chalk.png^darkage_reinforce.png"}, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + sunlight_propagates = true, + }) + + stairsplus:register_all("darkage", "glass", "darkage:glass", { + description = "Medieval Glass", + tiles = {"darkage_glass.png"}, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_stone_defaults(), + sunlight_propagates = true, + }) + + stairsplus:register_all("darkage", "glow_glass", "darkage:glow_glass", { + description = "Medieval Glow Glass", + tiles = {"darkage_glass.png"}, + paramtype = "light", + light_source = 18, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_stone_defaults(), + sunlight_propagates = true, + }) + + stairsplus:register_all("darkage", "reinforced_wood", "darkage:reinforced_wood", { + description = "Reinforced Wood", + tiles = {"default_wood.png^darkage_reinforce.png"}, + groups = {snappy=2,choppy=3,oddly_breakable_by_hand=3,flammable=3}, + sounds = default.node_sound_stone_defaults(), + sunlight_propagates = true, + }) + +elseif stairs then + + stairs.register_stair_and_slab("basalt", "darkage:basalt", + {cracky=3}, + {"darkage_basalt.png"}, + "Basalt Stair", + "Basalt Slab", + default.node_sound_stone_defaults() + ) + + stairs.register_stair_and_slab("marble", "darkage:marble", + {cracky=3}, + {"darkage_marble.png"}, + "Marble Stair", + "Marble Slab", + default.node_sound_stone_defaults() + ) + + stairs.register_stair_and_slab("marble", "darkage:serpentine", + {cracky=3}, + {"darkage_serpentine.png"}, + "Serpentine Stair", + "Serpentine Slab", + default.node_sound_stone_defaults() + ) + + stairs.register_stair_and_slab("ors", "darkage:ors", + {crumbly=2,cracky=2}, + {"darkage_ors.png"}, + "Old Red Sandstone Stair", + "Old Red Sandstone Slab", + default.node_sound_stone_defaults() + ) + + stairs.register_stair_and_slab("schist", "darkage:schist", + {cracky=3}, + {"darkage_schist.png"}, + "Schist Stair", + "Schist Slab", + default.node_sound_stone_defaults() + ) + + stairs.register_stair_and_slab("slate", "darkage:slate", + {cracky=2}, + {"darkage_slate.png"}, + "Slate Stair", + "Slate Slab", + default.node_sound_stone_defaults() + ) + + stairs.register_stair_and_slab("gneiss", "darkage:gneiss", + {cracky=3}, + {"darkage_gneiss.png"}, + "Gneiss Stair", + "Gneiss Slab", + default.node_sound_stone_defaults() + ) + + stairs.register_stair_and_slab("chalk", "darkage:chalk", + {crumbly=2,cracky=2}, + {"darkage_chalk.png"}, + "Chalk Stair", + "Chalk Slab", + default.node_sound_stone_defaults() + ) + + stairs.register_stair_and_slab("slate_cobble", "darkage:slate_cobble", + {cracky=2}, + {"darkage_slate_cobble.png"}, + "Slate Cobble Stair", + "Slate Cobble Slab", + default.node_sound_stone_defaults() + ) + + stairs.register_stair_and_slab("ors_cobble", "darkage:ors_cobble", + {crumbly=2,cracky=2}, + {"darkage_ors_cobble.png"}, + "Old Red Sandstone Cobble Stair", + "Old Red Sandstone Cobble Slab", + default.node_sound_stone_defaults() + ) + + stairs.register_stair_and_slab("gneiss_cobble", "darkage:gneiss_cobble", + {crumbly=2,cracky=2}, + {"darkage_gneiss_cobble.png"}, + "Gneiss Cobble Stair", + "Gneiss Cobble Slab", + default.node_sound_stone_defaults() + ) + + stairs.register_stair_and_slab("basalt_cobble", "darkage:basalt_cobble", + {cracky=3}, + {"darkage_basalt_cobble.png"}, + "Basalt Cobble Stair", + "Basalt Cobble Slab", + default.node_sound_stone_defaults() + ) + + stairs.register_stair_and_slab("straw", "darkage:straw", + {snappy=3, flammable=2}, + {"darkage_straw.png"}, + "Straw Stair", + "Straw Slab", + default.node_sound_stone_defaults() + ) + + stairs.register_stair_and_slab("straw_bale", "darkage:straw_bale", + {snappy=2, flammable=2}, + {"darkage_straw_bale.png"}, + "Straw Bale Stair", + "Straw Bale Slab", + default.node_sound_stone_defaults() + ) + + stairs.register_stair_and_slab("slate_tile", "darkage:slate_tile", + {cracky=2}, + {"darkage_slate_tile.png"}, + "Slate Tile Stair", + "Slate Tile Slab", + default.node_sound_stone_defaults() + ) + + stairs.register_stair_and_slab("marble_tile", "darkage:marble_tile", + {cracky=2}, + {"darkage_marble_tile.png"}, + "Marble Tile Stair", + "Marble Tile Slab", + default.node_sound_stone_defaults() + ) + + stairs.register_stair_and_slab("stone_brick", "darkage:stone_brick", + {cracky=3}, + {"darkage_stone_brick.png"}, + "Stone Brick Stair", + "Stone Brick Slab", + default.node_sound_stone_defaults() + ) + + stairs.register_stair_and_slab("reinforced_chalk", "darkage:reinforced_chalk", + {cracky=3}, + {"darkage_chalk.png^darkage_reinforce.png"}, + "Reinforced Chalk Stair", + "Reinforced Chalk Slab", + default.node_sound_stone_defaults() + ) + + stairs.register_stair_and_slab("glass", "darkage:glass", + {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + {"darkage_glass.png"}, + "Medieval Glass Stair", + "Medieval Glass Slab", + default.node_sound_stone_defaults() + ) + + stairs.register_stair_and_slab("glow_glass", "darkage:glow_glass", + {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + {"darkage_glass.png"}, + "Medieval Glow Glass Stair", + "Medieval Glow Glass Slab", + default.node_sound_stone_defaults() + ) + + stairs.register_stair_and_slab("reinforced_wood", "darkage:reinforced_wood", + {snappy=2,choppy=3,oddly_breakable_by_hand=3,flammable=3}, + {"default_wood.png^darkage_reinforce.png"}, + "Reinforced Wood Stair", + "Reinforced Wood Slab", + default.node_sound_stone_defaults() + ) + +end \ No newline at end of file diff --git a/mods/darkage/textures/darkage_adobe.png b/mods/darkage/textures/darkage_adobe.png new file mode 100755 index 00000000..ed56b413 Binary files /dev/null and b/mods/darkage/textures/darkage_adobe.png differ diff --git a/mods/darkage/textures/darkage_basalt.png b/mods/darkage/textures/darkage_basalt.png new file mode 100755 index 00000000..07ea514a Binary files /dev/null and b/mods/darkage/textures/darkage_basalt.png differ diff --git a/mods/darkage/textures/darkage_basalt_brick.png b/mods/darkage/textures/darkage_basalt_brick.png new file mode 100755 index 00000000..34ff317c Binary files /dev/null and b/mods/darkage/textures/darkage_basalt_brick.png differ diff --git a/mods/darkage/textures/darkage_basalt_cobble.png b/mods/darkage/textures/darkage_basalt_cobble.png new file mode 100755 index 00000000..a7c78d68 Binary files /dev/null and b/mods/darkage/textures/darkage_basalt_cobble.png differ diff --git a/mods/darkage/textures/darkage_box.png b/mods/darkage/textures/darkage_box.png new file mode 100755 index 00000000..fd9550eb Binary files /dev/null and b/mods/darkage/textures/darkage_box.png differ diff --git a/mods/darkage/textures/darkage_box_top.png b/mods/darkage/textures/darkage_box_top.png new file mode 100755 index 00000000..5c93d968 Binary files /dev/null and b/mods/darkage/textures/darkage_box_top.png differ diff --git a/mods/darkage/textures/darkage_chain.png b/mods/darkage/textures/darkage_chain.png new file mode 100755 index 00000000..4df06651 Binary files /dev/null and b/mods/darkage/textures/darkage_chain.png differ diff --git a/mods/darkage/textures/darkage_chalk.png b/mods/darkage/textures/darkage_chalk.png new file mode 100755 index 00000000..004305ed Binary files /dev/null and b/mods/darkage/textures/darkage_chalk.png differ diff --git a/mods/darkage/textures/darkage_chalk_powder.png b/mods/darkage/textures/darkage_chalk_powder.png new file mode 100755 index 00000000..86ef2578 Binary files /dev/null and b/mods/darkage/textures/darkage_chalk_powder.png differ diff --git a/mods/darkage/textures/darkage_cobble_with_plaster_A.png b/mods/darkage/textures/darkage_cobble_with_plaster_A.png new file mode 100755 index 00000000..285b33d8 Binary files /dev/null and b/mods/darkage/textures/darkage_cobble_with_plaster_A.png differ diff --git a/mods/darkage/textures/darkage_cobble_with_plaster_B.png b/mods/darkage/textures/darkage_cobble_with_plaster_B.png new file mode 100755 index 00000000..5659f923 Binary files /dev/null and b/mods/darkage/textures/darkage_cobble_with_plaster_B.png differ diff --git a/mods/darkage/textures/darkage_cobble_with_plaster_C.png b/mods/darkage/textures/darkage_cobble_with_plaster_C.png new file mode 100755 index 00000000..0e51ff60 Binary files /dev/null and b/mods/darkage/textures/darkage_cobble_with_plaster_C.png differ diff --git a/mods/darkage/textures/darkage_cobble_with_plaster_D.png b/mods/darkage/textures/darkage_cobble_with_plaster_D.png new file mode 100755 index 00000000..c8cd9294 Binary files /dev/null and b/mods/darkage/textures/darkage_cobble_with_plaster_D.png differ diff --git a/mods/darkage/textures/darkage_darkdirt.png b/mods/darkage/textures/darkage_darkdirt.png new file mode 100755 index 00000000..a5709d3a Binary files /dev/null and b/mods/darkage/textures/darkage_darkdirt.png differ diff --git a/mods/darkage/textures/darkage_dry_leaves.png b/mods/darkage/textures/darkage_dry_leaves.png new file mode 100755 index 00000000..69f41ed5 Binary files /dev/null and b/mods/darkage/textures/darkage_dry_leaves.png differ diff --git a/mods/darkage/textures/darkage_glass.png b/mods/darkage/textures/darkage_glass.png new file mode 100755 index 00000000..65d87bef Binary files /dev/null and b/mods/darkage/textures/darkage_glass.png differ diff --git a/mods/darkage/textures/darkage_gneiss.png b/mods/darkage/textures/darkage_gneiss.png new file mode 100755 index 00000000..26809463 Binary files /dev/null and b/mods/darkage/textures/darkage_gneiss.png differ diff --git a/mods/darkage/textures/darkage_gneiss_brick.png b/mods/darkage/textures/darkage_gneiss_brick.png new file mode 100755 index 00000000..d1a2fa06 Binary files /dev/null and b/mods/darkage/textures/darkage_gneiss_brick.png differ diff --git a/mods/darkage/textures/darkage_gneiss_cobble.png b/mods/darkage/textures/darkage_gneiss_cobble.png new file mode 100755 index 00000000..db1eab83 Binary files /dev/null and b/mods/darkage/textures/darkage_gneiss_cobble.png differ diff --git a/mods/darkage/textures/darkage_iron_bars.png b/mods/darkage/textures/darkage_iron_bars.png new file mode 100755 index 00000000..75d5438a Binary files /dev/null and b/mods/darkage/textures/darkage_iron_bars.png differ diff --git a/mods/darkage/textures/darkage_iron_grille.png b/mods/darkage/textures/darkage_iron_grille.png new file mode 100755 index 00000000..f627d6fb Binary files /dev/null and b/mods/darkage/textures/darkage_iron_grille.png differ diff --git a/mods/darkage/textures/darkage_iron_stick.png b/mods/darkage/textures/darkage_iron_stick.png new file mode 100755 index 00000000..fcde7d60 Binary files /dev/null and b/mods/darkage/textures/darkage_iron_stick.png differ diff --git a/mods/darkage/textures/darkage_lamp.png b/mods/darkage/textures/darkage_lamp.png new file mode 100755 index 00000000..3fba7387 Binary files /dev/null and b/mods/darkage/textures/darkage_lamp.png differ diff --git a/mods/darkage/textures/darkage_marble.png b/mods/darkage/textures/darkage_marble.png new file mode 100755 index 00000000..c4dd213c Binary files /dev/null and b/mods/darkage/textures/darkage_marble.png differ diff --git a/mods/darkage/textures/darkage_marble_tile.png b/mods/darkage/textures/darkage_marble_tile.png new file mode 100755 index 00000000..8876632c Binary files /dev/null and b/mods/darkage/textures/darkage_marble_tile.png differ diff --git a/mods/darkage/textures/darkage_mud.png b/mods/darkage/textures/darkage_mud.png new file mode 100755 index 00000000..53cedf7f Binary files /dev/null and b/mods/darkage/textures/darkage_mud.png differ diff --git a/mods/darkage/textures/darkage_mud_lump.png b/mods/darkage/textures/darkage_mud_lump.png new file mode 100755 index 00000000..606a68cf Binary files /dev/null and b/mods/darkage/textures/darkage_mud_lump.png differ diff --git a/mods/darkage/textures/darkage_mud_top.png b/mods/darkage/textures/darkage_mud_top.png new file mode 100755 index 00000000..67ff5903 Binary files /dev/null and b/mods/darkage/textures/darkage_mud_top.png differ diff --git a/mods/darkage/textures/darkage_ors.png b/mods/darkage/textures/darkage_ors.png new file mode 100755 index 00000000..d02f76d5 Binary files /dev/null and b/mods/darkage/textures/darkage_ors.png differ diff --git a/mods/darkage/textures/darkage_ors_brick.png b/mods/darkage/textures/darkage_ors_brick.png new file mode 100755 index 00000000..a8998c06 Binary files /dev/null and b/mods/darkage/textures/darkage_ors_brick.png differ diff --git a/mods/darkage/textures/darkage_ors_cobble.png b/mods/darkage/textures/darkage_ors_cobble.png new file mode 100755 index 00000000..c566a9dc Binary files /dev/null and b/mods/darkage/textures/darkage_ors_cobble.png differ diff --git a/mods/darkage/textures/darkage_reinforce.png b/mods/darkage/textures/darkage_reinforce.png new file mode 100755 index 00000000..7c03671d Binary files /dev/null and b/mods/darkage/textures/darkage_reinforce.png differ diff --git a/mods/darkage/textures/darkage_reinforced_wood_left.png b/mods/darkage/textures/darkage_reinforced_wood_left.png new file mode 100755 index 00000000..f762c0e6 Binary files /dev/null and b/mods/darkage/textures/darkage_reinforced_wood_left.png differ diff --git a/mods/darkage/textures/darkage_reinforced_wood_right.png b/mods/darkage/textures/darkage_reinforced_wood_right.png new file mode 100755 index 00000000..f4f28d02 Binary files /dev/null and b/mods/darkage/textures/darkage_reinforced_wood_right.png differ diff --git a/mods/darkage/textures/darkage_schist.png b/mods/darkage/textures/darkage_schist.png new file mode 100755 index 00000000..0f45d99a Binary files /dev/null and b/mods/darkage/textures/darkage_schist.png differ diff --git a/mods/darkage/textures/darkage_serpentine.png b/mods/darkage/textures/darkage_serpentine.png new file mode 100755 index 00000000..addfe115 Binary files /dev/null and b/mods/darkage/textures/darkage_serpentine.png differ diff --git a/mods/darkage/textures/darkage_shale.png b/mods/darkage/textures/darkage_shale.png new file mode 100755 index 00000000..6ebc026f Binary files /dev/null and b/mods/darkage/textures/darkage_shale.png differ diff --git a/mods/darkage/textures/darkage_shale_side.png b/mods/darkage/textures/darkage_shale_side.png new file mode 100755 index 00000000..b0f7668f Binary files /dev/null and b/mods/darkage/textures/darkage_shale_side.png differ diff --git a/mods/darkage/textures/darkage_shelves.png b/mods/darkage/textures/darkage_shelves.png new file mode 100755 index 00000000..9c1cc51e Binary files /dev/null and b/mods/darkage/textures/darkage_shelves.png differ diff --git a/mods/darkage/textures/darkage_shelves_front.png b/mods/darkage/textures/darkage_shelves_front.png new file mode 100755 index 00000000..d3f423cb Binary files /dev/null and b/mods/darkage/textures/darkage_shelves_front.png differ diff --git a/mods/darkage/textures/darkage_silt.png b/mods/darkage/textures/darkage_silt.png new file mode 100755 index 00000000..5bd8a622 Binary files /dev/null and b/mods/darkage/textures/darkage_silt.png differ diff --git a/mods/darkage/textures/darkage_silt_lump.png b/mods/darkage/textures/darkage_silt_lump.png new file mode 100755 index 00000000..9539587a Binary files /dev/null and b/mods/darkage/textures/darkage_silt_lump.png differ diff --git a/mods/darkage/textures/darkage_slate.png b/mods/darkage/textures/darkage_slate.png new file mode 100755 index 00000000..dd94dc4e Binary files /dev/null and b/mods/darkage/textures/darkage_slate.png differ diff --git a/mods/darkage/textures/darkage_slate_brick.png b/mods/darkage/textures/darkage_slate_brick.png new file mode 100755 index 00000000..b4f26c3d Binary files /dev/null and b/mods/darkage/textures/darkage_slate_brick.png differ diff --git a/mods/darkage/textures/darkage_slate_cobble.png b/mods/darkage/textures/darkage_slate_cobble.png new file mode 100755 index 00000000..ef4631b7 Binary files /dev/null and b/mods/darkage/textures/darkage_slate_cobble.png differ diff --git a/mods/darkage/textures/darkage_slate_side.png b/mods/darkage/textures/darkage_slate_side.png new file mode 100755 index 00000000..8e1a9ddb Binary files /dev/null and b/mods/darkage/textures/darkage_slate_side.png differ diff --git a/mods/darkage/textures/darkage_slate_tile.png b/mods/darkage/textures/darkage_slate_tile.png new file mode 100755 index 00000000..e7f7f2bd Binary files /dev/null and b/mods/darkage/textures/darkage_slate_tile.png differ diff --git a/mods/darkage/textures/darkage_stone_brick.png b/mods/darkage/textures/darkage_stone_brick.png new file mode 100755 index 00000000..013935a0 Binary files /dev/null and b/mods/darkage/textures/darkage_stone_brick.png differ diff --git a/mods/darkage/textures/darkage_straw.png b/mods/darkage/textures/darkage_straw.png new file mode 100755 index 00000000..9817316a Binary files /dev/null and b/mods/darkage/textures/darkage_straw.png differ diff --git a/mods/darkage/textures/darkage_straw_bale.png b/mods/darkage/textures/darkage_straw_bale.png new file mode 100755 index 00000000..f607c2f0 Binary files /dev/null and b/mods/darkage/textures/darkage_straw_bale.png differ diff --git a/mods/darkage/textures/darkage_wood_bars.png b/mods/darkage/textures/darkage_wood_bars.png new file mode 100755 index 00000000..e0f63d1c Binary files /dev/null and b/mods/darkage/textures/darkage_wood_bars.png differ diff --git a/mods/darkage/textures/darkage_wood_frame.png b/mods/darkage/textures/darkage_wood_frame.png new file mode 100755 index 00000000..cdb6ce3d Binary files /dev/null and b/mods/darkage/textures/darkage_wood_frame.png differ diff --git a/mods/darkage/textures/darkage_wood_grille.png b/mods/darkage/textures/darkage_wood_grille.png new file mode 100755 index 00000000..066e43d2 Binary files /dev/null and b/mods/darkage/textures/darkage_wood_grille.png differ diff --git a/mods/death_messages/LICENSE.txt b/mods/death_messages/LICENSE.txt new file mode 100755 index 00000000..c6176381 --- /dev/null +++ b/mods/death_messages/LICENSE.txt @@ -0,0 +1,712 @@ + + + Home / Licenses + +GPL v3 + + 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 +. + +Copy license text to clipboard +How to apply this license + +Create a text file (typically named LICENSE or LICENSE.txt) in the root of your source code and copy the text of the license into the file. + +Note: The Free Software Foundation recommends taking the additional step of adding a boilerplate notice to the top of each file. The boilerplate can be found at the end of the license. +Source +Required + + Disclose Source + License and copyright notice + State Changes + +Permitted + + Commercial Use + Distribution + Modification + Patent Grant + Private Use + +Forbidden + + Hold Liable + Sublicensing + +About Terms of Service + +If you have questions or issues, it is always best to consult a legal professional. +This site is licensed under the Creative Commons Attribution 3.0 Unported License. +Demystified with <3 by GitHub, Inc. diff --git a/mods/death_messages/README.md b/mods/death_messages/README.md new file mode 100755 index 00000000..f02f044f --- /dev/null +++ b/mods/death_messages/README.md @@ -0,0 +1,12 @@ +Death Messages +============== + +A Minetest mod which sends a chat message when a player dies. + +Version: 0.1.2 beta + +License of source code: +GPL v3 + +See LICENSE.txt for full legal text + diff --git a/mods/death_messages/depends.txt b/mods/death_messages/depends.txt new file mode 100755 index 00000000..e69de29b diff --git a/mods/death_messages/init.lua b/mods/death_messages/init.lua new file mode 100755 index 00000000..1c26e38d --- /dev/null +++ b/mods/death_messages/init.lua @@ -0,0 +1,98 @@ +----------------------------------------------------------------------------------------------- +local title = "Death Messages" +local version = "0.1.2" +local mname = "death_messages" +----------------------------------------------------------------------------------------------- +dofile(minetest.get_modpath("death_messages").."/settings.txt") +----------------------------------------------------------------------------------------------- + +-- A table of quips for death messages + +local messages = {} + +-- Lava death messages +messages.lava = { + " pensait que la lave etait cool.", + " s'est sentit oblige de toucher la lave.", + " est tombe dans la lave.", + " est mort dans de la lave.", + " ne savait pas que la lave etait vraiment chaude." +} + +-- Drowning death messages +messages.water = { + " a manque d'air.", + " a essaye d'usurper l'identite d'une ancre.", + " a oublie qu'il n'etait pas un poisson.", + " a oublier qu'il lui fallait respirer sous l'eau.", + " n'est pas bon en natation." +} + +-- Burning death messages +messages.fire = { + " a eut un peu trop chaud.", + " a ete trop pres du feu.", + " vient de se faire rotir.", + " a ete carbonise.", + " c'est prit pour torch man. (des quatres fantastiques)" +} + +-- Other death messages +messages.other = { + " a fait quelque chose qui lui a ete fatale.", + " est mort.", + " n'est plus de ce monde.", + " a rejoint le paradis des mineurs.", + " a perdu la vie." +} + +if RANDOM_MESSAGES == true then + minetest.register_on_dieplayer(function(player) + local player_name = player:get_player_name() + local node = minetest.registered_nodes[minetest.get_node(player:getpos()).name] + if minetest.is_singleplayer() then + player_name = "You" + end + -- Death by lava + if node.groups.lava ~= nil then + minetest.chat_send_all(player_name .. messages.lava[math.random(1,#messages.lava)] ) + -- Death by drowning + elseif player:get_breath() == 0 then + minetest.chat_send_all(player_name .. messages.water[math.random(1,#messages.water)] ) + -- Death by fire + elseif node.name == "fire:basic_flame" then + minetest.chat_send_all(player_name .. messages.fire[math.random(1,#messages.fire)] ) + -- Death by something else + else + minetest.chat_send_all(player_name .. messages.other[math.random(1,#messages.other)] ) + end + + end) + +else + minetest.register_on_dieplayer(function(player) + local player_name = player:get_player_name() + local node = minetest.registered_nodes[minetest.get_node(player:getpos()).name] + if minetest.is_singleplayer() then + player_name = "You" + end + -- Death by lava + if node.groups.lava ~= nil then + minetest.chat_send_all(player_name .. " melted into a ball of fire") + -- Death by drowning + elseif player:get_breath() == 0 then + minetest.chat_send_all(player_name .. " ran out of air.") + -- Death by fire + elseif node.name == "fire:basic_flame" then + minetest.chat_send_all(player_name .. " burned to a crisp.") + -- Death by something else + else + minetest.chat_send_all(player_name .. " died.") + end + + end) +end + +----------------------------------------------------------------------------------------------- +print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") +----------------------------------------------------------------------------------------------- diff --git a/mods/death_messages/settings.txt b/mods/death_messages/settings.txt new file mode 100755 index 00000000..1d77b31e --- /dev/null +++ b/mods/death_messages/settings.txt @@ -0,0 +1 @@ +RANDOM_MESSAGES = true \ No newline at end of file diff --git a/mods/dropondie/LICENSE b/mods/dropondie/LICENSE new file mode 100644 index 00000000..e06d2081 --- /dev/null +++ b/mods/dropondie/LICENSE @@ -0,0 +1,202 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/mods/dropondie/README.md b/mods/dropondie/README.md new file mode 100644 index 00000000..1914b79d --- /dev/null +++ b/mods/dropondie/README.md @@ -0,0 +1,4 @@ +minetest-dropondie +================== + +Minecraft-like drop-all-items-on-die mod diff --git a/mods/dropondie/depends.txt b/mods/dropondie/depends.txt new file mode 100644 index 00000000..4ad96d51 --- /dev/null +++ b/mods/dropondie/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/dropondie/init.lua b/mods/dropondie/init.lua new file mode 100644 index 00000000..cd24f8a6 --- /dev/null +++ b/mods/dropondie/init.lua @@ -0,0 +1,43 @@ +local drop = function(pos, itemstack) + + local it = itemstack:take_item(itemstack:get_count()) + local obj = core.add_item(pos, it) + + if obj then + + obj:setvelocity({x=math.random(-1,1), y=5, z=math.random(-1,1)}) + + local remi = minetest.setting_get("remove_items") + + if remi and remi == "true" then + obj:remove() + end + + end + return itemstack +end + +minetest.register_on_dieplayer(function(player) + + if minetest.setting_getbool("creative_mode") then + return + end + + local pos = player:getpos() + pos.y = math.floor(pos.y + 0.5) + + minetest.chat_send_player(player:get_player_name(), 'at '..math.floor(pos.x)..','..math.floor(pos.y)..','..math.floor(pos.z)) + + local player_inv = player:get_inventory() + + for i=1,player_inv:get_size("main") do + drop(pos, player_inv:get_stack("main", i)) + player_inv:set_stack("main", i, nil) + end + + for i=1,player_inv:get_size("craft") do + drop(pos, player_inv:get_stack("craft", i)) + player_inv:set_stack("craft", i, nil) + end + +end) diff --git a/mods/factions/chatcommands.lua b/mods/factions/chatcommands.lua new file mode 100755 index 00000000..8bd132ab --- /dev/null +++ b/mods/factions/chatcommands.lua @@ -0,0 +1,465 @@ +------------------------------------------------------------------------------- +-- factions Mod by Sapier +-- +-- License WTFPL +-- +--! @file chatcommnd.lua +--! @brief factions chat interface +--! @copyright Sapier +--! @author Sapier +--! @date 2013-05-08 +-- +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @class factions_chat +--! @brief chat interface class +factions_chat = {} + +------------------------------------------------------------------------------- +-- name: init() +-- +--! @brief initialize chat interface +--! @memberof factions_chat +--! @public +------------------------------------------------------------------------------- +function factions_chat.init() + + minetest.register_privilege("faction_user", + { + description = "this user is allowed to interact with faction mod", + give_to_singleplayer = true, + } + ) + + minetest.register_privilege("faction_admin", + { + description = "this user is allowed to create or delete factions", + give_to_singleplayer = true, + } + ) + + minetest.register_chatcommand("factions", + { + params = " .. ", + description = "faction administration functions", + privs = { faction_user=true }, + func = factions_chat.cmdhandler, + } + ) + + minetest.register_chatcommand("af", + { + params = "text", + description = "send message to all factions", + privs = { faction_user=true }, + func = factions_chat.allfactions_chathandler, + } + ) + + minetest.register_chatcommand("f", + { + params = " text", + description = "send message to a specific faction", + privs = { faction_user=true }, + func = factions_chat.chathandler, + } + ) +end + +------------------------------------------------------------------------------- +-- name: cmdhandler(playername,parameter) +-- +--! @brief chat command handler +--! @memberof factions_chat +--! @private +-- +--! @param playername name +--! @param parameter data supplied to command +------------------------------------------------------------------------------- +function factions_chat.cmdhandler(playername,parameter) + + local player = minetest.env:get_player_by_name(playername) + local params = parameter:split(" ") + local cmd = params[1] + + --handle common commands + if parameter == nil or + parameter == "" then + + local playerfactions = factions.get_factions(player) + + local tosend = "Factions: " .. playername .. " factions:" + for i,v in ipairs(playerfactions) do + if i ~= #playerfactions then + tosend = tosend .. " " .. v .. "," + else + tosend = tosend .. " " .. v + end + end + minetest.chat_send_player(playername, tosend, false) + return + end + + --list all known factions + if cmd == "list" then + local list = factions.get_faction_list() + local tosend = "Factions: current available factions:" + + for i,v in ipairs(list) do + if i ~= #list then + tosend = tosend .. " " .. v .. "," + else + tosend = tosend .. " " .. v + end + end + minetest.chat_send_player(playername, tosend, false) + return + end + + --show factions mod version + if cmd == "version" then + minetest.chat_send_player(playername, "Factions: version " .. factions_version , false) + return + end + + --show description of faction + if cmd == "info" then + if params[2] ~= nil then + minetest.chat_send_player(playername, + "Factions: " .. params[2] .. ": " .. + factions.get_description(params[2]), false) + return + end + end + + if cmd == "leave" then + if params[2] ~= nil then + if params[3] ~= nil then + local toremove = minetest.env:get_player_by_name(params[3]) + --allowed if faction_admin, admin of faction or player itself + if minetest.check_player_privs(playername,{ faction_admin=true }) or + factions.is_admin(params[2],playername) and + toremove ~= nil then + + factions.member_remove(params[2],toremove) + minetest.chat_send_player(playername, + "Factions: " .. params[3] .. " has been removed from " + .. params[2], false) + return + end + else + factions.member_remove(params[2],player) + minetest.chat_send_player(playername, + "Factions: You have left " .. params[2], false) + return + end + end + end + + --handle superadmin only commands + if minetest.check_player_privs(playername,{ faction_admin=true }) then + --create new faction + if cmd == "create" then + if params[2] ~= nil then + if factions.add_faction(params[2]) then + minetest.chat_send_player(playername, + "Factions: created faction " .. params[2], + false) + return + else + minetest.chat_send_player(playername, + "Factions: FAILED to created faction " .. params[2], + false) + return + end + end + end + end + + if cmd == "join" then + if params[2] ~= nil then + if params[3] ~= nil and + minetest.check_player_privs(playername,{ faction_admin=true }) then + + local toadd = minetest.env:get_player_by_name(params[3]) + + if toadd ~= nil then + if factions.member_add(params[2],toadd) then + minetest.chat_send_player(playername, + "Factions: " .. params[3] .. " joined faction " .. + params[2], + false) + return + end + end + minetest.chat_send_player(playername, + "Factions: " .. params[3] .. " FAILED to join faction " .. + params[2], + false) + return + else + --check for invitation + if factions.is_invited(params[2],playername) then + if factions.member_add(params[2],player) then + minetest.chat_send_player(playername, + "Factions: joined faction " .. + params[2], + false) + return + else + minetest.chat_send_player(playername, + "Factions: FAILED to join faction " .. + params[2], + false) + return + end + else + minetest.chat_send_player(playername, + "Factions: you are not allowed to join " .. params[2], + false) + return + end + end + end + end + + --all following commands require at least two parameters + if params[2] ~= nil then + if minetest.check_player_privs(playername,{ faction_admin=true }) or + factions.is_admin(params[2],playername) then + + --delete faction + if cmd == "delete" then + if factions.delete_faction(params[2]) then + minetest.chat_send_player(playername, + "Factions: deleted faction " .. params[2], + false) + return + else + minetest.chat_send_player(playername, + "Factions: FAILED to deleted faction " .. params[2], + false) + return + end + end + + if cmd == "set_free" then + if params[3] ~= nil and + (params[3] == "true" or params[3] == "false")then + + local value = false + if params[3] == "true" then + value = true + end + + if factions.set_free(params[2],value) then + minetest.chat_send_player(playername, + "Factions: free to join for " .. params[2] .. + " has been set to " .. params[3], + false) + else + minetest.chat_send_player(playername, + "Factions: FAILED to set free to join for " .. + params[2], + false) + end + end + end + + --set player admin status + if cmd == "admin" then + if params[3] ~= nil and params[4] ~= nil and + (params[4] == "true" or params[4] == "false") then + + local value = false + if params[4] == "true" then + value = true + end + + if factions.set_admin(params[2],params[3],value) then + minetest.chat_send_player(playername, + "Factions: adminstate of " .. params[3] .. + " has been set to " .. params[4], + false) + else + minetest.chat_send_player(playername, + "Factions: FAILED to set admin privileges for " .. + params[3], + false) + end + end + return + end + + if cmd == "description" and + params[2] ~= nil and + params[3] ~= nil then + + local desc = params[3] + for i=4, #params, 1 do + desc = desc .. " " .. params[i] + end + if factions.set_description(params[2],desc) then + minetest.chat_send_player(playername, + "Factions: updated description of faction " .. + params[2], + false) + return + else + minetest.chat_send_player(playername, + "Factions: FAILED to update description of faction " .. + params[2], + false) + return + end + end + + if cmd == "invite" and + params[2] ~= nil and + params[3] ~= nil then + if factions.member_invite(params[2],params[3]) then + minetest.chat_send_player(params[3], + "Factions: " .. params[3] .. + " you have been invited to join faction " .. params[2], + false) + minetest.chat_send_player(playername, + "Factions: " .. params[3] .. + " has been invited to join faction " .. params[2], + false) + return + else + minetest.chat_send_player(playername, + "Factions: FAILED to invite " .. params[3] .. + " to join faction " .. params[2], + false) + return + end + end + end + end + + factions_chat.show_help(playername) +end + +------------------------------------------------------------------------------- +-- name: allfactions_chathandler(playername,parameter) +-- +--! @brief chat handler +--! @memberof factions_chat +--! @private +-- +--! @param playername name +--! @param parameter data supplied to command +------------------------------------------------------------------------------- +function factions_chat.allfactions_chathandler(playername,parameter) + + local player = minetest.env:get_player_by_name(playername) + + if player ~= nil then + local recipients = {} + + for faction,value in pairs(factions.get_factions(player)) do + for name,value in pairs(factions.dynamic_data.membertable[faction]) do + local object_to_check = mientest.env:get_player_by_name(name) + + if object_to_check ~= nil then + recipients[name] = true + end + end + end + + for recipient,value in pairs(recipients) do + if recipient ~= playername then + minetest.chat_send_player(recipient,playername ..": " .. parameter,false) + end + end + return + end + factions_chat.show_help(playername) +end + +------------------------------------------------------------------------------- +-- name: chathandler(playername,parameter) +-- +--! @brief chat handler +--! @memberof factions_chat +--! @private +-- +--! @param playername name +--! @param parameter data supplied to command +------------------------------------------------------------------------------- +function factions_chat.chathandler(playername,parameter) + + local player = minetest.env:get_player_by_name(playername) + + if player ~= nil then + local line = parameter:split(" ") + local target_faction = line[1] + + local text = line[2] + for i=3,#line,1 do + text = text .. " " .. line[i] + end + + local valid_faction = false + + for faction,value in pairs(factions.get_factions(player)) do + if target_faction == faction then + valid_faction = true + end + end + + if faction ~= nil and valid_faction and + factions.dynamic_data.membertable[faction] ~= nil then + for name,value in pairs(factions.dynamic_data.membertable[faction]) do + local object_to_check = mientest.env:get_player_by_name(name) + factions_chat.show_help(playername) + if object_to_check ~= nil and + name ~= playername then + minetest.chat_send_player(name,playername ..": " .. text,false) + end + end + else + minetest.chat_send_player(playername, + "Factions: you're not a member of " .. dump(faction),false) + end + return + end + factions_chat.show_help(playername) +end + +------------------------------------------------------------------------------- +-- name: show_help(playername,parameter) +-- +--! @brief send help message to player +--! @memberof factions_chat +--! @private +-- +--! @param playername name +------------------------------------------------------------------------------- +function factions_chat.show_help(playername) + + local MSG = function(text) + minetest.chat_send_player(playername,text,false) + end + + MSG("Factions mod") + MSG("Usage:") + MSG("\tUser commands:") + MSG("\t\t/factions -> info on your current factions") + MSG("\t\t/factions info -> show description of faction") + MSG("\t\t/factions list -> show list of factions") + MSG("\t\t/factions leave -> leave specified faction") + MSG("\t\t/factions join -> join specified faction") + MSG("\t\t/factions version -> show version number of mod") + + MSG("\tAdmin commands:") + MSG("\t\t/factions create -> create a new faction") + MSG("\t\t/factions delete -> delete a faction faction") + MSG("\t\t/factions leave -> remove player from faction") + MSG("\t\t/factions invite -> invite player to faction") + MSG("\t\t/factions set_free -> set faction free to join") + MSG("\t\t/factions admin -> make player admin of faction") + MSG("\t\t/factions description -> set description for faction") +end \ No newline at end of file diff --git a/mods/factions/description.txt b/mods/factions/description.txt new file mode 100755 index 00000000..d0cb87fb --- /dev/null +++ b/mods/factions/description.txt @@ -0,0 +1,5 @@ +Version 1.1.5 + +Mod for handling in game factions and reputation + + diff --git a/mods/factions/doc/Doxyfile b/mods/factions/doc/Doxyfile new file mode 100755 index 00000000..7bbeb6c1 --- /dev/null +++ b/mods/factions/doc/Doxyfile @@ -0,0 +1,1774 @@ +# Doxyfile 1.7.6.1 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# http://www.gnu.org/software/libiconv for the list of possible encodings. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or sequence of words) that should +# identify the project. Note that if you do not use Doxywizard you need +# to put quotes around the project name if it contains spaces. + +PROJECT_NAME = "Factions Mod (by sapier)" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer +# a quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = + +# With the PROJECT_LOGO tag one can specify an logo or icon that is +# included in the documentation. The maximum height of the logo should not +# exceed 55 pixels and the maximum width should not exceed 200 pixels. +# Doxygen will copy the logo to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = . + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, +# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English +# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, +# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, +# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = "The $name class" "The $name widget" "The $name file" is provides specifies contains represents a an the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful if your file system +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like regular Qt-style comments +# (thus requiring an explicit @brief command for a brief description.) + +JAVADOC_AUTOBRIEF = NO + +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# This tag can be used to specify a number of word-keyword mappings (TCL only). +# A mapping has the form "name=value". For example adding +# "class=itcl::class" will allow you to use the command class in the +# itcl::class meaning. + +TCL_SUBST = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for +# Java. For instance, namespaces will be presented as packages, qualified +# scopes will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources only. Doxygen will then generate output that is more tailored for +# Fortran. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for +# VHDL. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given extension. +# Doxygen has a built-in mapping, but you can override or extend it using this +# tag. The format is ext=language, where ext is a file extension, and language +# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, +# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make +# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C +# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions +# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also makes the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. +# Doxygen will parse them like normal C++ but will assume all classes use public +# instead of private inheritance when no explicit protection keyword is present. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate getter +# and setter methods for a property. Setting this option to YES (the default) +# will make doxygen replace the get and set methods by a property in the +# documentation. This will only work if the methods are indeed getting or +# setting a simple type. If this is not the case, or you want to show the +# methods anyway, you should set this option to NO. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and +# unions are shown inside the group in which they are included (e.g. using +# @ingroup) instead of on a separate page (for HTML and Man pages) or +# section (for LaTeX and RTF). + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and +# unions with only public data fields will be shown inline in the documentation +# of the scope in which they are defined (i.e. file, namespace, or group +# documentation), provided this scope is documented. If set to NO (the default), +# structs, classes, and unions are shown on a separate page (for HTML and Man +# pages) or section (for LaTeX and RTF). + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum +# is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically +# be useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. + +TYPEDEF_HIDES_STRUCT = NO + +# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to +# determine which symbols to keep in memory and which to flush to disk. +# When the cache is full, less often used symbols will be written to disk. +# For small to medium size projects (<1000 input files) the default value is +# probably good enough. For larger projects a too small cache size can cause +# doxygen to be busy swapping symbols to and from disk most of the time +# causing a significant performance penalty. +# If the system has enough physical memory increasing the cache will improve the +# performance by keeping more symbols in memory. Note that the value works on +# a logarithmic scale so increasing the size by one will roughly double the +# memory usage. The cache size is given by this formula: +# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, +# corresponding to a cache size of 2^16 = 65536 symbols. + +SYMBOL_CACHE_SIZE = 0 + +# Similar to the SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be +# set using LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given +# their name and scope. Since this can be an expensive process and often the +# same symbol appear multiple times in the code, doxygen keeps a cache of +# pre-resolved symbols. If the cache is too small doxygen will become slower. +# If the cache is too large, memory is wasted. The cache size is given by this +# formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range is 0..9, the default is 0, +# corresponding to a cache size of 2^16 = 65536 symbols. + +LOOKUP_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = YES + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base +# name of the file that contains the anonymous namespace. By default +# anonymous namespaces are hidden. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen +# will list include files with double quotes in the documentation +# rather than with sharp brackets. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen +# will sort the (brief and detailed) documentation of class members so that +# constructors and destructors are listed first. If set to NO (the default) +# the constructors will appear in the respective orders defined by +# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. +# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO +# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the +# hierarchy of group names into alphabetical order. If set to NO (the default) +# the group names will appear in their defined order. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to +# do proper type resolution of all parameters of a function it will reject a +# match between the prototype and the implementation of a member function even +# if there is only one candidate or it is obvious which candidate to choose +# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen +# will still accept a match between prototype and implementation in such cases. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST = YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or macro consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and macros in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = NO + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. +# This will remove the Files entry from the Quick Index and from the +# Folder Tree View (if specified). The default is YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the +# Namespaces page. This will remove the Namespaces entry from the Quick Index +# and from the Folder Tree View (if specified). The default is YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. The create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. +# You can optionally specify a file name after the option, if omitted +# DoxygenLayout.xml will be used as the name of the layout file. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files +# containing the references data. This must be a list of .bib files. The +# .bib extension is automatically appended if omitted. Using this command +# requires the bibtex tool to be installed. See also +# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style +# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this +# feature you need bibtex and perl available in the search path. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = NO + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# The WARN_NO_PARAMDOC option can be enabled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = ../ + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is +# also the default input encoding. Doxygen uses libiconv (or the iconv built +# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for +# the list of possible encodings. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh +# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py +# *.f90 *.f *.for *.vhd *.vhdl + +#FILE_PATTERNS = *.c \ + +FILE_PATTERNS = *.lua + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty or if +# non of the patterns match the file name, INPUT_FILTER is applied. + +FILTER_PATTERNS = *.lua=/usr/local/bin/lua2dox + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) +# and it is also possible to disable source filtering for a specific pattern +# using *.ext= (so without naming a filter). This option only has effect when +# FILTER_SOURCE_FILES is enabled. + +FILTER_SOURCE_PATTERNS = + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. Otherwise they will link to the documentation. + +REFERENCES_LINK_SOURCE = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = YES + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. Note that when using a custom header you are responsible +# for the proper inclusion of any scripts and style sheets that doxygen +# needs, which is dependent on the configuration options used. +# It is advised to generate a default header using "doxygen -w html +# header.html footer.html stylesheet.css YourConfigFile" and then modify +# that header. Note that the header is subject to change so you typically +# have to redo this when upgrading to a newer version of doxygen or when +# changing the value of configuration settings such as GENERATE_TREEVIEW! + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# style sheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that +# the files will be copied as-is; there are no commands or markers available. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. +# Doxygen will adjust the colors in the style sheet and background images +# according to this color. Hue is specified as an angle on a colorwheel, +# see http://en.wikipedia.org/wiki/Hue for more information. +# For instance the value 0 represents red, 60 is yellow, 120 is green, +# 180 is cyan, 240 is blue, 300 purple, and 360 is red again. +# The allowed range is 0 to 359. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of +# the colors in the HTML output. For a value of 0 the output will use +# grayscales only. A value of 255 will produce the most vivid colors. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to +# the luminance component of the colors in the HTML output. Values below +# 100 gradually make the output lighter, whereas values above 100 make +# the output darker. The value divided by 100 is the actual gamma applied, +# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, +# and 100 does not change the gamma. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting +# this to NO can help when comparing the output of multiple runs. + +HTML_TIMESTAMP = YES + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. For this to work a browser that supports +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). + +HTML_DYNAMIC_SECTIONS = NO + +# If the GENERATE_DOCSET tag is set to YES, additional index files +# will be generated that can be used as input for Apple's Xcode 3 +# integrated development environment, introduced with OSX 10.5 (Leopard). +# To create a documentation set, doxygen will generate a Makefile in the +# HTML output directory. Running make will produce the docset in that +# directory and running "make install" will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find +# it at startup. +# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html +# for more information. + +GENERATE_DOCSET = NO + +# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the +# feed. A documentation feed provides an umbrella under which multiple +# documentation sets from a single provider (such as a company or product suite) +# can be grouped. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that +# should uniquely identify the documentation set bundle. This should be a +# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen +# will append .docset to the name. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING +# is used to encode HtmlHelp index (hhk), content (hhc) and project file +# content. + +CHM_INDEX_ENCODING = + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated +# that can be used as input for Qt's qhelpgenerator to generate a +# Qt Compressed Help (.qch) of the generated HTML documentation. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can +# be used to specify the file name of the resulting .qch file. +# The path specified is relative to the HTML output folder. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#namespace + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#virtual-folders + +QHP_VIRTUAL_FOLDER = doc + +# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to +# add. For more information please see +# http://doc.trolltech.com/qthelpproject.html#custom-filters + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see +# +# Qt Help Project / Custom Filters. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's +# filter section matches. +# +# Qt Help Project / Filter Attributes. + +QHP_SECT_FILTER_ATTRS = + +# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can +# be used to specify the location of Qt's qhelpgenerator. +# If non-empty doxygen will try to run qhelpgenerator on the generated +# .qhp file. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files +# will be generated, which together with the HTML files, form an Eclipse help +# plugin. To install this plugin and make it available under the help contents +# menu in Eclipse, the contents of the directory containing the HTML and XML +# files needs to be copied into the plugins directory of eclipse. The name of +# the directory within the plugins directory should be the same as +# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before +# the help appears. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have +# this name. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) +# at top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. Since the tabs have the same information as the +# navigation tree you can set this option to NO if you already set +# GENERATE_TREEVIEW to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. +# If the tag value is set to YES, a side panel will be generated +# containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). +# Windows users are probably better off using the HTML help feature. +# Since the tree basically has the same information as the tab index you +# could consider to set DISABLE_INDEX to NO when enabling this option. + +GENERATE_TREEVIEW = YES + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values +# (range [0,1..20]) that doxygen will group on one line in the generated HTML +# documentation. Note that a value of 0 will completely suppress the enum +# values from appearing in the overview section. + +ENUM_VALUES_PER_LINE = 1 + +# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, +# and Class Hierarchy pages using a tree view instead of an ordered list. + +USE_INLINE_TREES = YES + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open +# links to external symbols imported via tag files in a separate window. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of Latex formulas included +# as images in the HTML documentation. The default is 10. Note that +# when you change the font size after a successful doxygen run you need +# to manually remove any form_*.png images from the HTML output directory +# to force them to be regenerated. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are +# not supported properly for IE 6.0, but are supported on all modern browsers. +# Note that when changing this option you need to delete any form_*.png files +# in the HTML output before the changes have effect. + +FORMULA_TRANSPARENT = YES + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax +# (see http://www.mathjax.org) which uses client side Javascript for the +# rendering instead of using prerendered bitmaps. Use this if you do not +# have LaTeX installed or if you want to formulas look prettier in the HTML +# output. When enabled you also need to install MathJax separately and +# configure the path to it using the MATHJAX_RELPATH option. + +USE_MATHJAX = NO + +# When MathJax is enabled you need to specify the location relative to the +# HTML output directory using the MATHJAX_RELPATH option. The destination +# directory should contain the MathJax.js script. For instance, if the mathjax +# directory is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the +# mathjax.org site, so you can quickly see the result without installing +# MathJax, but it is strongly recommended to install a local copy of MathJax +# before deployment. + +MATHJAX_RELPATH = http://www.mathjax.org/mathjax + +# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension +# names that should be enabled during MathJax rendering. + +MATHJAX_EXTENSIONS = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box +# for the HTML output. The underlying search engine uses javascript +# and DHTML and should work on any modern browser. Note that when using +# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets +# (GENERATE_DOCSET) there is already a search function so this one should +# typically be disabled. For large projects the javascript based search engine +# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. + +SEARCHENGINE = YES + +# When the SERVER_BASED_SEARCH tag is enabled the search engine will be +# implemented using a PHP enabled web server instead of at the web client +# using Javascript. Doxygen will generate the search PHP script and index +# file to put on the web server. The advantage of the server +# based approach is that it scales better to large projects and allows +# full text search. The disadvantages are that it is more difficult to setup +# and does not have live searching capabilities. + +SERVER_BASED_SEARCH = NO + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. +# Note that when enabling USE_PDFLATEX this option is only used for +# generating bitmaps for formulas in the HTML output, but not in the +# Makefile that is written to the output directory. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4 + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for +# the generated latex document. The footer should contain everything after +# the last chapter. If it is left blank doxygen will generate a +# standard footer. Notice: only use this tag if you know what you are doing! + +LATEX_FOOTER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = YES + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = YES + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +# If LATEX_SOURCE_CODE is set to YES then doxygen will include +# source code with syntax highlighting in the LaTeX output. +# Note that which sources are shown also depends on other settings +# such as SOURCE_BROWSER. + +LATEX_SOURCE_CODE = NO + +# The LATEX_BIB_STYLE tag can be used to specify the style to use for the +# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See +# http://en.wikipedia.org/wiki/BibTeX for more info. + +LATEX_BIB_STYLE = plain + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load style sheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# pointed to by INCLUDE_PATH will be searched when a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition that +# overrules the definition found in the source code. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all references to function-like macros +# that are alone on a line, have an all uppercase name, and do not end with a +# semicolon, because these will confuse the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option also works with HAVE_DOT disabled, but it is recommended to +# install and use dot, since it yields more powerful graphs. + +CLASS_DIAGRAMS = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see +# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the +# documentation. The MSCGEN_PATH tag allows you to specify the directory where +# the mscgen tool resides. If left empty the tool is assumed to be found in the +# default search path. + +MSCGEN_PATH = + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = YES + +# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is +# allowed to run in parallel. When set to 0 (the default) doxygen will +# base this on the number of processors available in the system. You can set it +# explicitly to a value larger than 0 to get control over the balance +# between CPU load and processing speed. + +DOT_NUM_THREADS = 0 + +# By default doxygen will use the Helvetica font for all dot files that +# doxygen generates. When you want a differently looking font you can specify +# the font name using DOT_FONTNAME. You need to make sure dot is able to find +# the font, which can be done by putting it in a standard location or by setting +# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the +# directory containing the font. + +DOT_FONTNAME = Helvetica + +# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. +# The default size is 10pt. + +DOT_FONTSIZE = 10 + +# By default doxygen will tell dot to use the Helvetica font. +# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to +# set the path where dot can find it. + +DOT_FONTPATH = + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT options are set to YES then +# doxygen will generate a call dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable call graphs +# for selected functions only using the \callgraph command. + +CALL_GRAPH = YES + +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then +# doxygen will generate a caller dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable caller +# graphs for selected functions only using the \callergraph command. + +CALLER_GRAPH = YES + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will generate a graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are svg, png, jpg, or gif. +# If left blank png will be used. If you choose svg you need to set +# HTML_FILE_EXTENSION to xhtml in order to make the SVG files +# visible in IE 9+ (other browsers do not have this requirement). + +DOT_IMAGE_FORMAT = png + +# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to +# enable generation of interactive SVG images that allow zooming and panning. +# Note that this requires a modern browser other than Internet Explorer. +# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you +# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files +# visible. Older versions of IE do not have SVG support. + +INTERACTIVE_SVG = NO + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MSCFILE_DIRS tag can be used to specify one or more directories that +# contain msc files that are included in the documentation (see the +# \mscfile command). + +MSCFILE_DIRS = + +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of +# nodes that will be shown in the graph. If the number of nodes in a graph +# becomes larger than this value, doxygen will truncate the graph, which is +# visualized by representing a node as a red box. Note that doxygen if the +# number of direct children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, because dot on Windows does not +# seem to support this out of the box. Warning: Depending on the platform used, +# enabling this option may lead to badly anti-aliased labels on the edges of +# a graph (i.e. they become hard to read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES diff --git a/mods/factions/factions.lua b/mods/factions/factions.lua new file mode 100755 index 00000000..2c8ba3b2 --- /dev/null +++ b/mods/factions/factions.lua @@ -0,0 +1,775 @@ +------------------------------------------------------------------------------- +-- factions Mod by Sapier +-- +-- License WTFPL +-- +--! @file factions.lua +--! @brief factions core file containing datastorage +--! @copyright Sapier +--! @author Sapier +--! @date 2013-05-08 +-- +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--read some basic information +local factions_worldid = minetest.get_worldpath() + +--! @class factions +--! @brief main class for factions +factions = {} + +--! @brief runtime data +factions.data = {} +factions.data.factions = {} +factions.data.objects = {} +factions.dynamic_data = {} +factions.dynamic_data.membertable = {} + +factions.print = function(text) + print("Factions: " .. dump(text)) +end + +factions.dbg_lvl1 = function() end --factions.print -- errors +factions.dbg_lvl2 = function() end --factions.print -- non cyclic trace +factions.dbg_lvl3 = function() end --factions.print -- cyclic trace + +------------------------------------------------------------------------------- +-- name: add_faction(name) +-- +--! @brief add a faction +--! @memberof factions +--! @public +-- +--! @param name of faction to add +--! +--! @return true/false (succesfully added faction or not) +------------------------------------------------------------------------------- +function factions.add_faction(name) + + if factions.data.factions[name] == nil then + factions.data.factions[name] = {} + factions.data.factions[name].reputation = {} + factions.data.factions[name].base_reputation = {} + factions.data.factions[name].adminlist = {} + factions.data.factions[name].invitations = {} + + factions.dynamic_data.membertable[name] = {} + + factions.save() + + return true + end + + return false +end + +------------------------------------------------------------------------------- +-- name: set_base_reputation(faction1,faction2,value) +-- +--! @brief set base reputation between two factions +--! @memberof factions +--! @public +-- +--! @param faction1 first faction +--! @param faction2 second faction +--! @param value value to use +--! +--! @return true/false (succesfully added faction or not) +------------------------------------------------------------------------------- +function factions.set_base_reputation(faction1,faction2,value) + + if factions.data.factions[faction1] ~= nil and + factions.data.factions[faction2] ~= nil then + + factions.data.factions[faction1].base_reputation[faction2] = value + factions.data.factions[faction2].base_reputation[faction1] = value + factions.save() + return true + end + return false +end + +------------------------------------------------------------------------------- +-- name: get_base_reputation(faction1,faction2) +-- +--! @brief get base reputation between two factions +--! @memberof factions +--! @public +-- +--! @param faction1 first faction +--! @param faction2 second faction +--! +--! @return reputation/0 if none set +------------------------------------------------------------------------------- +function factions.get_base_reputation(faction1,faction2) + factions.dbg_lvl3("get_base_reputation: " .. faction1 .. "<-->" .. faction2) + if factions.data.factions[faction1] ~= nil and + factions.data.factions[faction2] ~= nil then + if factions.data.factions[faction1].base_reputation[faction2] ~= nil then + return factions.data.factions[faction1].base_reputation[faction2] + end + end + return 0 +end + +------------------------------------------------------------------------------- +-- name: set_description(name,description) +-- +--! @brief set description for a faction +--! @memberof factions +--! @public +-- +--! @param name of faction +--! @param description text describing a faction +--! +--! @return true/false (succesfully set description) +------------------------------------------------------------------------------- +function factions.set_description(name,description) + + if factions.data.factions[name] ~= nil then + factions.data.factions[name].description = description + factions.save() + return true + end + return false +end + +------------------------------------------------------------------------------- +-- name: get_description(name) +-- +--! @brief get description for a faction +--! @memberof factions +--! @public +-- +--! @param name of faction +--! +--! @return description or "" +------------------------------------------------------------------------------- +function factions.get_description(name) + + if factions.data.factions[name] ~= nil and + factions.data.factions[name].description ~= nil then + return factions.data.factions[name].description + end + return "" +end + +------------------------------------------------------------------------------- +-- name: exists(name) +-- +--! @brief check if a faction exists +--! @memberof factions +--! @public +--! @param name name to check +--! +--! @return true/false +------------------------------------------------------------------------------- +function factions.exists(name) + + for key,value in pairs(factions.data.factions) do + if key == name then + return true + end + end + + return false +end + +------------------------------------------------------------------------------- +-- name: get_faction_list() +-- +--! @brief get list of factions +--! @memberof factions +--! @public +--! +--! @return list of factions +------------------------------------------------------------------------------- +function factions.get_faction_list() + + local retval = {} + + for key,value in pairs(factions.data.factions) do + table.insert(retval,key) + end + + return retval +end + +------------------------------------------------------------------------------- +-- name: delete_faction(name) +-- +--! @brief delete a faction +--! @memberof factions +--! @public +-- +--! @param name of faction to delete +--! +--! @return true/false (succesfully added faction or not) +------------------------------------------------------------------------------- +function factions.delete_faction(name) + + factions.data.factions[name] = nil + + factions.save() + + if factions.data.factions[name] == nil then + return true + end + + return false +end + +------------------------------------------------------------------------------- +-- name: member_add(name,object) +-- +--! @brief add an entity or player to a faction +--! @memberof factions +--! @public +-- +--! @param name of faction to add object to +--! @param object to add to faction +--! +--! @return true/false (succesfully added faction or not) +------------------------------------------------------------------------------- +function factions.member_add(name, object) + local new_entry = {} + new_entry.factions = {} + + if object.object ~= nil then + object = object.object + end + + if not factions.exists(name) then + print("Unable to add to NON existant faction >" .. name .. "<") + return false + end + + new_entry.name,new_entry.temporary = factions.get_name(object) + + factions.dbg_lvl2("Adding name=" .. dump(new_entry.name) .. " to faction: " .. name ) + + if new_entry.name ~= nil then + if factions.data.objects[new_entry.name] == nil then + factions.data.objects[new_entry.name] = new_entry + end + + if factions.data.objects[new_entry.name].factions[name] == nil then + factions.data.objects[new_entry.name].factions[name] = true + factions.dynamic_data.membertable[name][new_entry.name] = true + factions.data.factions[name].invitations[new_entry.name] = nil + factions.save() + return true + end + end + + --return false if no valid object or already member + return false +end + +------------------------------------------------------------------------------- +-- name: member_invite(name,playername) +-- +--! @brief invite a player for joining a faction +--! @memberof factions +--! @public +-- +--! @param name of faction to add object to +--! @param name of player to invite +--! +--! @return true/false (succesfully added invitation or not) +------------------------------------------------------------------------------- +function factions.member_invite(name, playername) + + if factions.data.factions[name] ~= nil and + factions.data.factions[name].invitations[playername] == nil then + factions.data.factions[name].invitations[playername] = true + factions.save() + return true + end + + --return false if not a valid faction or player already invited + return false +end + +------------------------------------------------------------------------------- +-- name: member_remove(name,object) +-- +--! @brief remove an entity or player to a faction +--! @memberof factions +--! @public +-- +--! @param name of faction to add object to +--! @param object to add to faction +--! +--! @return true/false (succesfully added faction or not) +------------------------------------------------------------------------------- +function factions.member_remove(name,object) + + local id,type = factions.get_name(object) + + factions.dbg_lvl2("removing name=" .. dump(id) .. " to faction: " .. name ) + + if id ~= nil and + factions.data.objects[id] ~= nil and + factions.data.objects[id].factions[name] ~= nil then + factions.data.objects[id].factions[name] = nil + factions.dynamic_data.membertable[name][id] = nil + factions.save() + return true + end + + if id ~= nil and + factions.data.factions[name].invitations[id] ~= nil then + factions.data.factions[name].invitations[id] = nil + factions.save() + return true + end + + return false +end + +------------------------------------------------------------------------------- +-- name: set_admin(name,playername,value) +-- +--! @brief set admin priviles for a playername +--! @memberof factions +--! @public +-- +--! @param name of faction to add object to +--! @param playername to change rights +--! @param value true/false has or has not admin privileges +--! +--! @return true/false (succesfully changed privileges) +------------------------------------------------------------------------------- +function factions.set_admin(name,playername,value) + mobf_assert_backtrace(type(playername) == "string") + if factions.data.factions[name] ~= nil then + if value then + factions.data.factions[name].adminlist[playername] = true + factions.save() + return true + else + factions.data.factions[name].adminlist[playername] = nil + factions.save() + return true + end + else + print("FACTIONS: no faction >" .. name .. "< found") + end + + return false +end + +------------------------------------------------------------------------------- +-- name: set_free(name,value) +-- +--! @brief set faction to be joinable by everyone +--! @memberof factions +--! @public +-- +--! @param name of faction to add object to +--! @param value true/false has or has not admin privileges +--! +--! @return true/false (succesfully added faction or not) +------------------------------------------------------------------------------- +function factions.set_free(name,value) + + if factions.data.factions[name] ~= nil then + if value then + if factions.data.factions[name].open == nil then + factions.data.factions[name].open = true + factions.save() + return true + else + return false + end + else + if factions.data.factions[name].open == nil then + return false + else + factions.data.factions[name].open = nil + factions.save() + return true + end + end + end + + return false +end + +------------------------------------------------------------------------------- +-- name: is_free(name) +-- +--! @brief check if a fraction is free to join +--! @memberof factions +--! @public +-- +--! @param name of faction to add object to +-- +--! @return true/false (free or not) +------------------------------------------------------------------------------- +function factions.is_free(name) + if factions.data.factions[name] ~= nil and + factions.data.factions[name].open then + return true + end + + return false +end + +------------------------------------------------------------------------------- +-- name: is_admin(name,playername) +-- +--! @brief read admin privilege of player +--! @memberof factions +--! @public +-- +--! @param name of faction to check rights +--! @param playername to change rights +--! +--! @return true/false (succesfully added faction or not) +------------------------------------------------------------------------------- +function factions.is_admin(name,playername) + + if factions.data.factions[name] ~= nil and + factions.data.factions[name].adminlist[playername] == true then + return true + end + + return false +end + +------------------------------------------------------------------------------- +-- name: is_invited(name,playername) +-- +--! @brief read invitation status of player +--! @memberof factions +--! @public +-- +--! @param name of faction to check for invitation +--! @param playername to change rights +--! +--! @return true/false (succesfully added faction or not) +------------------------------------------------------------------------------- +function factions.is_invited(name,playername) + + if factions.data.factions[name] ~= nil and + ( factions.data.factions[name].invitations[playername] == true or + factions.data.factions[name].open == true) then + return true + end + + return false +end + +------------------------------------------------------------------------------- +-- name: get_factions(object) +-- +--! @brief get list of factions for an object +--! @memberof factions +--! @public +-- +--! @param object to get list for +--! +--! @return list of factions +------------------------------------------------------------------------------- +function factions.get_factions(object) + + local id,type = factions.get_name(object) + + local retval = {} + if id ~= nil and + factions.data.objects[id] ~= nil then + for key,value in pairs(factions.data.objects[id].factions) do + table.insert(retval,key) + end + end + + return retval +end + +------------------------------------------------------------------------------- +-- name: is_member(name,object) +-- +--! @brief check if object is member of name +--! @memberof factions +--! @public +-- +--! @param name of faction to check +--! @param object to check +--! +--! @return true/false +------------------------------------------------------------------------------- +function factions.is_member(name,object) + + local retval = false + + local id,type = factions.get_name(object) + + if id ~= nil and + factions.data.objects[id] ~= nil then + for key,value in pairs(factions.data.objects[id].factions) do + if key == name then + retval = true + break + end + end + end + + return retval +end + + +------------------------------------------------------------------------------- +-- name: get_reputation(name,object) +-- +--! @brief get reputation of an object +--! @memberof factions +--! @public +-- +--! @param name name of faction to check for reputation +--! @param object object to get reputation for +--! +--! @return number value -100 to 100 0 being neutral, -100 beeing enemy 100 friend +------------------------------------------------------------------------------- +function factions.get_reputation(name,object) + + local id,type = factions.get_name(object) + + factions.dbg_lvl3("get_reputation: " .. name .. "<-->" .. dump(id)) + + if id ~= nil and + factions.data.factions[name] ~= nil then + + factions.dbg_lvl3("get_reputation: object reputation: " .. dump(factions.data.factions[name].reputation[id])) + + if factions.data.factions[name].reputation[id] == nil then + factions.data.factions[name].reputation[id] + = factions.calc_base_reputation(name,object) + end + + return factions.data.factions[name].reputation[id] + else + factions.dbg_lvl3("get_reputation: didn't find any factions for: " .. name) + end + + return 0 +end + +------------------------------------------------------------------------------- +-- name: modify_reputation(name,object,delta) +-- +--! @brief modify reputation of an object for a faction +--! @memberof factions +--! @public +-- +--! @param name name of faction to modify reputation +--! @param object object to change reputation +--! @param delta value to change reputation +--! +--! @return true/false +------------------------------------------------------------------------------- +function factions.modify_reputation(name,object,delta) + + local id,type = factions.get_name(object) + + if factions.data.factions[name] ~= nil then + if factions.data.factions[name].reputation[id] == nil then + factions.data.factions[name].reputation[id] + = factions.calc_base_reputation(name,object) + end + + factions.data.factions[name].reputation[id] + = factions.data.factions[name].reputation[id] + delta + factions.save() + return true + end + + return false +end + +------------------------------------------------------------------------------- +-- name: get_name(object) +-- +--! @brief get textual name of object +--! @memberof factions +--! @private +-- +--! @param object fetch name for this +--! +--! @return name or nil,is temporary element +------------------------------------------------------------------------------- +function factions.get_name(object) + if object == nil then + return nil,true + end + + if object.object ~= nil then + object = object.object + end + + if object:is_player() then + return object:get_player_name(),false + else + local luaentity = object:get_luaentity() + + if luaentity ~= nil then + return tostring(luaentity),true + end + end + + return nil,true +end + +------------------------------------------------------------------------------- +-- name: calc_base_reputation(name,object) +-- +--! @brief calculate initial reputation of object within a faction +--! @memberof factions +--! @private +-- +--! @param name name of faction +--! @param object calc reputation for this +--! +--! @return reputation value +------------------------------------------------------------------------------- +function factions.calc_base_reputation(name,object) + + --calculate initial reputation based uppon all groups + local object_factions = factions.get_factions(object) + local rep_value = 0 + + factions.dbg_lvl3("calc_base_reputation: " .. name .. " <--> " .. tostring(object)) + + if object_factions ~= nil then + factions.dbg_lvl3("calc_base_reputation: " .. tostring(object) .. " is in " .. #object_factions .. " factions") + for k,v in pairs(object_factions) do + if factions.data.factions[v] == nil then + print("FACTIONS: warning object is member of faction " .. v .. " which doesn't exist") + else + factions.dbg_lvl3("calc_base_reputation: " .. name .. " <--> " .. v .. " rep=" .. dump(factions.data.factions[v].base_reputation[name])) + if factions.data.factions[v].base_reputation[name] ~= nil then + rep_value = + rep_value + factions.data.factions[v].base_reputation[name] + end + end + end + + rep_value = rep_value / #object_factions + end + + return rep_value +end + +------------------------------------------------------------------------------- +-- name: save() +-- +--! @brief save data to file +--! @memberof factions +--! @private +------------------------------------------------------------------------------- +function factions.save() + + --saving is done much more often than reading data to avoid delay + --due to figuring out which data to save and which is temporary only + --all data is saved here + --this implies data needs to be cleant up on load + + local file,error = io.open(factions_worldid .. "/" .. "factions.conf","w") + + if file ~= nil then + file:write(minetest.serialize(factions.data)) + file:close() + else + minetest.log("error","MOD factions: unable to save factions world specific data!: " .. error) + end + +end + +------------------------------------------------------------------------------- +-- name: load() +-- +--! @brief load data from file +--! @memberof factions +--! @private +-- +--! @return true/false +------------------------------------------------------------------------------- +function factions.load() + local file,error = io.open(factions_worldid .. "/" .. "factions.conf","r") + + if file ~= nil then + local raw_data = file:read("*a") + file:close() + + if raw_data ~= nil and + raw_data ~= "" then + + local raw_table = minetest.deserialize(raw_data) + + + --read object data + local temp_objects = {} + + if raw_table.objects ~= nil then + for key,value in pairs(raw_table.objects) do + + if value.temporary == false then + factions.data.objects[key] = value + else + temp_objects[key] = true + end + end + end + + if raw_table.factions ~= nil then + for key,value in pairs(raw_table.factions) do + factions.data.factions[key] = {} + factions.data.factions[key].base_reputation = value.base_reputation + factions.data.factions[key].adminlist = value.adminlist + factions.data.factions[key].open = value.open + factions.data.factions[key].invitations = value.invitations + + factions.data.factions[key].reputation = {} + for repkey,repvalue in pairs(value.reputation) do + if temp_objects[repkey] == nil then + factions.data.factions[key].reputation[repkey] = repvalue + end + end + + factions.dynamic_data.membertable[key] = {} + end + end + + --populate dynamic faction member table + for id,object in pairs(factions.data.objects) do + for name,value in pairs(factions.data.objects[id].factions) do + if value then + factions.dynamic_data.membertable[name][id] = true + end + end + end + end + else + local file,error = io.open(factions_worldid .. "/" .. "factions.conf","w") + + if file ~= nil then + file:close() + else + minetest.log("error","MOD factions: unable to save factions world specific data!: " .. error) + end + end + + --create special faction players + factions.add_faction("players") + + --autojoin players to faction players + minetest.register_on_joinplayer( + function(player) + if player:is_player() then + factions.member_add("players",player) + end + end + ) +end \ No newline at end of file diff --git a/mods/factions/init.lua b/mods/factions/init.lua new file mode 100755 index 00000000..a5003b43 --- /dev/null +++ b/mods/factions/init.lua @@ -0,0 +1,29 @@ +------------------------------------------------------------------------------- +-- factions Mod by Sapier +-- +-- License WTFPL +-- +--! @file init.lua +--! @brief factions mod to be used by other mods +--! @copyright Sapier +--! @author Sapier +--! @date 2013-05-08 +--! +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +local factions_version = "0.1.6" + +core.log("action", "MOD: factions (by sapier) loading ...") + +--!path of mod +factions_modpath = minetest.get_modpath("factions") + + +dofile (factions_modpath .. "/factions.lua") +dofile (factions_modpath .. "/chatcommands.lua") + +factions.load() +factions_chat.init() + +core.log("action","MOD: factions (by sapier) " .. factions_version .. " loaded.") diff --git a/mods/farming/README.txt b/mods/farming/README.txt new file mode 100644 index 00000000..bfc001a0 --- /dev/null +++ b/mods/farming/README.txt @@ -0,0 +1,129 @@ +Minetest Farming Redo Mod +by TenPlus1 + +based on + +Minetest 0.4 mod: farming +========================= + +License of source code: +----------------------- +Copyright (C) 2012-2013 PilzAdam + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2004 Sam Hocevar + + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. + +License of media (textures): +---------------------------- +Created by PilzAdam (License: WTFPL): + farming_bread.png + farming_soil.png + farming_soil_wet.png + farming_soil_wet_side.png + farming_string.png + +Created by 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 + farming_wheat_seed.png + farming_flour.png + farming_wheat.png + farming_wheat_1.png + farming_wheat_2.png + farming_wheat_3.png + farming_wheat_4.png + farming_wheat_5.png + farming_wheat_5.png + farming_wheat_7.png + farming_wheat_8.png + farming_cotton_1.png + farming_cotton_2.png + farming_cotton_3.png + farming_cotton_4.png + farming_cotton_5.png + farming_cotton_6.png + farming_cotton_7.png + farming_cotton_8.png + +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 \ No newline at end of file diff --git a/mods/farming/carrot.lua b/mods/farming/carrot.lua new file mode 100644 index 00000000..43e7a72d --- /dev/null +++ b/mods/farming/carrot.lua @@ -0,0 +1,157 @@ + +--= Carrot (Original textures from PixelBox texture pack) +-- https://forum.minetest.net/viewtopic.php?id=4990 + +minetest.register_craftitem("farming:carrot", { + description = "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 = "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", ""}, + } +}) + +-- Define Carrot growth stages + +minetest.register_node("farming:carrot_1", { + drawtype = "plantlike", + tiles = {"farming_carrot_1.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:carrot_2", { + drawtype = "plantlike", + tiles = {"farming_carrot_2.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:carrot_3", { + drawtype = "plantlike", + tiles = {"farming_carrot_3.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:carrot_4", { + drawtype = "plantlike", + tiles = {"farming_carrot_4.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:carrot_5", { + drawtype = "plantlike", + tiles = {"farming_carrot_5.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:carrot_6", { + drawtype = "plantlike", + tiles = {"farming_carrot_6.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:carrot_7", { + drawtype = "plantlike", + tiles = {"farming_carrot_7.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = { + items = { + {items = {'farming:carrot'},rarity=1}, + {items = {'farming:carrot 2'},rarity=3}, + } + }, + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +-- Last stage of Carrot growth doesnnot have growing=1 so abm never has to check these + +minetest.register_node("farming:carrot_8", { + drawtype = "plantlike", + tiles = {"farming_carrot_8.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = { + items = { + {items = {'farming:carrot 2'},rarity=1}, + {items = {'farming:carrot 3'},rarity=2}, + } + }, + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), +}) diff --git a/mods/farming/cocoa.lua b/mods/farming/cocoa.lua new file mode 100644 index 00000000..76ab058b --- /dev/null +++ b/mods/farming/cocoa.lua @@ -0,0 +1,165 @@ + +-- Re-register Jungletree (tree=2 for placement below) + +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=2,choppy=2,oddly_breakable_by_hand=1,flammable=2}, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node +}) + +-- Place Cocoa + +function place_cocoa(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) + + -- return if any of the nodes is not registered + if not minetest.registered_nodes[under.name] then + return + end + + -- check if pointing at jungletree + if minetest.get_item_group(under.name, "tree") ~= 2 then + return + end + + -- add the node and remove 1 item from the itemstack + minetest.add_node(pt.above, {name=plantname}) + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack +end + +--= Cocoa + +minetest.register_craftitem("farming:cocoa_beans", { + description = "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" }, + } +}) + +-- Cookie + +minetest.register_craftitem("farming:cookie", { + description = "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 = "Bar of Dark Chocolate", + inventory_image = "farming_chocolate_dark.png", + on_use = minetest.item_eat(3), +}) + +minetest.register_craft( { + output = "farming:chocolate_dark", + recipe = { + { "farming:cocoa_beans", "farming:cocoa_beans", "farming:cocoa_beans" }, + } +}) + +-- Define Coffee growth stages + +minetest.register_node("farming:cocoa_1", { + 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,not_in_creative_inventory=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:cocoa_2", { + drawtype = "plantlike", + tiles = {"farming_cocoa_2.png"}, + paramtype = "light", + walkable = true, + drop = { + items = { + {items = {'farming:cocoa_beans 1'},rarity=1}, + } + }, + selection_box = {type = "fixed",fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +-- Last stage of Cocoa growth does not have growing=1 so abm never has to check these + +minetest.register_node("farming:cocoa_3", { + drawtype = "plantlike", + tiles = {"farming_cocoa_3.png"}, + paramtype = "light", + walkable = true, + drop = { + items = { + {items = {'farming:cocoa_beans 2'},rarity=1}, + {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,not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +-- Abm to add random Cocoa Pod to Jungle Tree trunks + +minetest.register_abm({ + nodenames = {"default:jungletree"}, + neighbors = {"default:jungleleaves", "moretrees:jungletree_leaves_green"}, + interval = 80, + chance = 20, + 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 + + if minetest.get_node(pos).name == "air" and minetest.get_node_light(pos) > 11 then +-- print ("COCOA", pos.x, pos.y, pos.z) + 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 100644 index 00000000..a0d15cfc --- /dev/null +++ b/mods/farming/coffee.lua @@ -0,0 +1,186 @@ + +--= Coffee + +minetest.register_craftitem("farming:coffee_beans", { + description = "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, +}) + +--= Glass Cup +--minetest.register_craftitem("farming:drinking_cup", { +-- description = "Drinking Cup", +-- inventory_image = "vessels_drinking_cup.png", +--}) + +minetest.register_node("farming:drinking_cup", { + description = "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_craftitem("farming:coffee_cup", { +-- description = "Cold Cup of Coffee", +-- inventory_image = "farming_coffee_cup.png", +-- on_use = minetest.item_eat(2, "farming:drinking_cup"), +--}) + +minetest.register_node("farming:coffee_cup", { + description = "Cup of Coffee (cold)", + 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_craftitem("farming:coffee_cup_hot", { +-- description = "Hot Cup of Coffee", +-- inventory_image = "farming_coffee_cup_hot.png", +-- on_use = minetest.item_eat(3, "farming:drinking_cup"), +--}) + +minetest.register_node("farming:coffee_cup_hot", { + description = "Cup of Coffee (hot)", + 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(), +}) + +-- Define Coffee growth stages + +minetest.register_node("farming:coffee_1", { + drawtype = "plantlike", + tiles = {"farming_coffee_1.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:coffee_2", { + drawtype = "plantlike", + tiles = {"farming_coffee_2.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:coffee_3", { + drawtype = "plantlike", + tiles = {"farming_coffee_3.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:coffee_4", { + drawtype = "plantlike", + tiles = {"farming_coffee_4.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +-- Last stage of Coffee growth doesnnot have growing=1 so abm never has to check these + +minetest.register_node("farming:coffee_5", { + drawtype = "plantlike", + tiles = {"farming_coffee_5.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = { + items = { + {items = {'farming:coffee_beans 2'},rarity=1}, + {items = {'farming:coffee_beans 2'},rarity=2}, + {items = {'farming:coffee_beans 2'},rarity=3}, + } + }, + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), +}) diff --git a/mods/farming/compatibility.lua b/mods/farming/compatibility.lua new file mode 100644 index 00000000..a875d9bc --- /dev/null +++ b/mods/farming/compatibility.lua @@ -0,0 +1,97 @@ +-- 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") diff --git a/mods/farming/corn.lua b/mods/farming/corn.lua new file mode 100644 index 00000000..9232518b --- /dev/null +++ b/mods/farming/corn.lua @@ -0,0 +1,175 @@ + +--= Corn (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 + +minetest.register_craftitem("farming:corn", { + description = "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 = "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 = "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 = 60, + replacements = {{ "farming:bottle_ethanol", "vessels:glass_bottle"}} +}) + +-- Define Corn growth stages + +minetest.register_node("farming:corn_1", { + drawtype = "plantlike", + tiles = {"farming_corn_1.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:corn_2", { + drawtype = "plantlike", + tiles = {"farming_corn_2.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:corn_3", { + drawtype = "plantlike", + tiles = {"farming_corn_3.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:corn_4", { + drawtype = "plantlike", + tiles = {"farming_corn_4.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:corn_5", { + drawtype = "plantlike", + tiles = {"farming_corn_5.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:corn_6", { + drawtype = "plantlike", + tiles = {"farming_corn_6.png"}, + visual_scale = 1.45, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:corn_7", { + drawtype = "plantlike", + tiles = {"farming_corn_7.png"}, + visual_scale = 1.45, + paramtype = "light", + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = { + items = { + {items = {'farming:corn'},rarity=1}, + {items = {'farming:corn'},rarity=2}, + {items = {'farming:corn'},rarity=3}, + } + }, + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +-- Last stage of Corn growth doesnnot have growing=1 so abm never has to check these + +minetest.register_node("farming:corn_8", { + drawtype = "plantlike", + tiles = {"farming_corn_8.png"}, + visual_scale = 1.45, + paramtype = "light", + waving = 1, + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = { + items = { + {items = {'farming:corn 2'},rarity=1}, + {items = {'farming:corn 2'},rarity=2}, + {items = {'farming:corn 2'},rarity=2}, + } + }, + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), +}) diff --git a/mods/farming/cotton.lua b/mods/farming/cotton.lua new file mode 100644 index 00000000..f7d307f2 --- /dev/null +++ b/mods/farming/cotton.lua @@ -0,0 +1,183 @@ +-- Cotton Seed + +--minetest.register_craftitem("farming:seed_cotton", { +-- description = "Cotton Seed", +-- inventory_image = "farming_cotton_seed.png", +-- on_place = function(itemstack, placer, pointed_thing) +-- return farming.place_seed(itemstack, placer, pointed_thing, "farming:cotton_1") +-- end, +--}) + +minetest.register_node("farming:seed_cotton", { + description = "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 = {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, "farming:cotton_1") + end, +}) + +-- Cotton + +minetest.register_craftitem("farming:cotton", { + description = "Cotton", + inventory_image = "farming_cotton.png", +}) + +minetest.register_alias("farming:string", "farming:cotton") + +-- String to Wool + +minetest.register_craft({ + output = "wool:white", + recipe = { + {"farming:string", "farming:string"}, + {"farming:string", "farming:string"}, + } +}) + +-- Define Cotton growth stages + +minetest.register_node("farming:cotton_1", { + drawtype = "plantlike", + tiles = {"farming_cotton_1.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:cotton_2", { + drawtype = "plantlike", + tiles = {"farming_cotton_2.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:cotton_3", { + drawtype = "plantlike", + tiles = {"farming_cotton_3.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:cotton_4", { + drawtype = "plantlike", + tiles = {"farming_cotton_4.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:cotton_5", { + drawtype = "plantlike", + tiles = {"farming_cotton_5.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = { + items = { + {items = {"farming:seed_cotton"},rarity=1}, + } + }, + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:cotton_6", { + drawtype = "plantlike", + tiles = {"farming_cotton_6.png"}, + paramtype = "light", + waving = 1, + walkable = false, + buildable_to = true, + drop = { + items = { + {items = {"farming:cotton"},rarity=1}, + {items = {"farming:cotton"},rarity=2}, + } + }, + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:cotton_7", { + drawtype = "plantlike", + tiles = {"farming_cotton_7.png"}, + paramtype = "light", + waving = 1, + walkable = false, + buildable_to = true, + drop = { + items = { + {items = {"farming:cotton"},rarity=1}, + {items = {"farming:cotton"},rarity=2}, + {items = {"farming:seed_cotton"},rarity=1}, + {items = {"farming:seed_cotton"},rarity=2}, + } + }, + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +-- Define last stage of Cotton growth separate and without growing=1 so abm never has to check these + +minetest.register_node("farming:cotton_8", { + drawtype = "plantlike", + tiles = {"farming_cotton_8.png"}, + paramtype = "light", + waving = 1, + walkable = false, + buildable_to = true, + 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}, + } + }, + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), +}) diff --git a/mods/farming/cucumber.lua b/mods/farming/cucumber.lua new file mode 100644 index 00000000..4301890a --- /dev/null +++ b/mods/farming/cucumber.lua @@ -0,0 +1,74 @@ + +--= Cucumber (Original textures from DocFarming mod) +-- https://forum.minetest.net/viewtopic.php?id=3948 + +minetest.register_craftitem("farming:cucumber", { + description = "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), +}) + +-- Define Cucumber growth stages + +minetest.register_node("farming:cucumber_1", { + drawtype = "plantlike", + tiles = {"farming_cucumber_1.png"}, + paramtype = "light", + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:cucumber_2", { + drawtype = "plantlike", + tiles = {"farming_cucumber_2.png"}, + paramtype = "light", + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:cucumber_3", { + drawtype = "plantlike", + tiles = {"farming_cucumber_3.png"}, + paramtype = "light", + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +-- Last stage of Cucumber growth doesnnot have growing=1 so abm never has to check these + +minetest.register_node("farming:cucumber_4", { + drawtype = "plantlike", + tiles = {"farming_cucumber_4.png"}, + paramtype = "light", + waving = 1, + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = { + items = { + {items = {'farming:cucumber'},rarity=1}, + {items = {'farming:cucumber 2'},rarity=2}, + } + }, + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), +}) diff --git a/mods/farming/depends.txt b/mods/farming/depends.txt new file mode 100644 index 00000000..be420a35 --- /dev/null +++ b/mods/farming/depends.txt @@ -0,0 +1,2 @@ +default +wool \ No newline at end of file diff --git a/mods/farming/donut.lua b/mods/farming/donut.lua new file mode 100644 index 00000000..6dc385a8 --- /dev/null +++ b/mods/farming/donut.lua @@ -0,0 +1,45 @@ +-- Donut (thanks to Bockwurst for making the donut images) +minetest.register_craftitem("farming:donut", { + description = "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 = "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 = "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/grass.lua b/mods/farming/grass.lua new file mode 100644 index 00000000..aaf2e2a7 --- /dev/null +++ b/mods/farming/grass.lua @@ -0,0 +1,99 @@ +--= Grass + +-- Override default grass and have it drop Wheat Seeds + +minetest.register_node(":default:grass_1", { + description = "Grass", + drawtype = "plantlike", + tiles = {"default_grass_1.png"}, + -- use a bigger inventory image + inventory_image = "default_grass_3.png", + wield_image = "default_grass_3.png", + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = { + max_items = 1, + items = { + {items = {'farming:seed_wheat'},rarity = 5}, + {items = {'default:grass_1'}}, + } + }, + 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}, + }, +--= Disabled the following random grass placement as it crashes servers when protection nearby... +-- 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, +}) + +-- Override default Jungle Grass and have it drop Cotton Seeds + +minetest.register_node(":default:junglegrass", { + description = "Jungle Grass", + drawtype = "plantlike", + visual_scale = 1.3, + tiles = {"default_junglegrass.png"}, + inventory_image = "default_junglegrass.png", + wield_image = "default_junglegrass.png", + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = { + max_items = 1, + items = { + {items = {'farming:seed_cotton'},rarity = 8}, + {items = {'default:junglegrass'}}, + } + }, + 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}, + }, +}) + +-- Define rest of grass for growing + +for i=2,5 do + minetest.register_node(":default:grass_"..i, { + description = "Grass", + drawtype = "plantlike", + tiles = {"default_grass_"..i..".png"}, + inventory_image = "default_grass_"..i..".png", + wield_image = "default_grass_"..i..".png", + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = { + max_items = 1, + items = { + {items = {'farming:seed_wheat'},rarity = 5}, + {items = {'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 \ No newline at end of file diff --git a/mods/farming/hoes.lua b/mods/farming/hoes.lua new file mode 100644 index 00000000..a4783ec8 --- /dev/null +++ b/mods/farming/hoes.lua @@ -0,0 +1,155 @@ + +-- 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 + minetest.register_craft({ + output = name:gsub(":", "", 1), + recipe = def.recipe + }) +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 then + return + end + if 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] 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 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,}) + itemstack:add_wear(65535/(uses-1)) + return itemstack +end + +-- Define Hoes + +farming.register_hoe(":farming:hoe_wood", { + description = "Wooden Hoe", + inventory_image = "farming_tool_woodhoe.png", + max_uses = 30, + recipe = { + {"group:wood", "group:wood"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) + +farming.register_hoe(":farming:hoe_stone", { + description = "Stone Hoe", + inventory_image = "farming_tool_stonehoe.png", + max_uses = 90, + recipe = { + {"group:stone", "group:stone"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) + +farming.register_hoe(":farming:hoe_steel", { + description = "Steel Hoe", + inventory_image = "farming_tool_steelhoe.png", + max_uses = 200, + recipe = { + {"default:steel_ingot", "default:steel_ingot"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) + +farming.register_hoe(":farming:hoe_bronze", { + description = "Bronze Hoe", + inventory_image = "farming_tool_bronzehoe.png", + max_uses = 220, + recipe = { + {"default:bronze_ingot", "default:bronze_ingot"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) + +farming.register_hoe(":farming:hoe_mese", { + description = "Mese Hoe", + inventory_image = "farming_tool_mesehoe.png", + max_uses = 350, + recipe = { + {"default:mese_crystal", "default:mese_crystal"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) + +farming.register_hoe(":farming:hoe_diamond", { + description = "Diamond Hoe", + inventory_image = "farming_tool_diamondhoe.png", + max_uses = 500, + recipe = { + {"default:diamond", "default:diamond"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) diff --git a/mods/farming/init.lua b/mods/farming/init.lua new file mode 100644 index 00000000..f414c396 --- /dev/null +++ b/mods/farming/init.lua @@ -0,0 +1,194 @@ +--[[ + Minetest Farming Redo Mod 1.09 (19th September 2014) + by TenPlus1 +]] + +farming = {} +farming.mod = "redo" +farming.hoe_on_use = default.hoe_on_use + +dofile(minetest.get_modpath("farming").."/soil.lua") +dofile(minetest.get_modpath("farming").."/hoes.lua") +dofile(minetest.get_modpath("farming").."/grass.lua") +dofile(minetest.get_modpath("farming").."/wheat.lua") +dofile(minetest.get_modpath("farming").."/cotton.lua") +dofile(minetest.get_modpath("farming").."/carrot.lua") +dofile(minetest.get_modpath("farming").."/potato.lua") +dofile(minetest.get_modpath("farming").."/tomato.lua") +dofile(minetest.get_modpath("farming").."/cucumber.lua") +dofile(minetest.get_modpath("farming").."/corn.lua") +dofile(minetest.get_modpath("farming").."/coffee.lua") +dofile(minetest.get_modpath("farming").."/melon.lua") +dofile(minetest.get_modpath("farming").."/sugar.lua") +dofile(minetest.get_modpath("farming").."/pumpkin.lua") +dofile(minetest.get_modpath("farming").."/cocoa.lua") +dofile(minetest.get_modpath("farming").."/raspberry.lua") +dofile(minetest.get_modpath("farming").."/rhubarb.lua") +dofile(minetest.get_modpath("farming").."/donut.lua") -- sweet treat +dofile(minetest.get_modpath("farming").."/mapgen.lua") +dofile(minetest.get_modpath("farming").."/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 then + return + end + + -- add the node and remove 1 item from the itemstack + minetest.add_node(pt.above, {name=plantname}) + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack +end + +-- Single ABM Handles Growing of All Plants + +minetest.register_abm({ + nodenames = {"group:growing"}, + neighbors = {"farming:soil_wet", "default:jungletree"}, + interval = 60, + chance = 2, + + action = function(pos, node) + + -- get node type (e.g. farming:wheat_1) + + local data = nil + data = string.split(node.name, '_', 2) + local plant = data[1].."_" + local numb = data[2] + + -- check if fully grown + if not minetest.registered_nodes[plant..(numb + 1)] then return end + + -- Check for Cocoa Pod + if plant == "farming:cocoa_" and minetest.find_node_near(pos, 1, {"default:jungletree"}) then + + else + + -- check if on wet soil + pos.y = pos.y-1 + if minetest.get_node(pos).name ~= "farming:soil_wet" then return end + pos.y = pos.y+1 + + -- check light + if minetest.get_node_light(pos) < 13 then return end + + 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/mapgen.lua b/mods/farming/mapgen.lua new file mode 100644 index 00000000..8cb9ec78 --- /dev/null +++ b/mods/farming/mapgen.lua @@ -0,0 +1,83 @@ + +-- Generate new foods on map + +minetest.register_on_generated(function(minp, maxp, seed) + + 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 plant amount from perlin noise + local grass_amount = math.floor(perlin1:get2d({x=x0, y=z0}) ^ 3 * 9) + + -- Find random positions for plant 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 dirt with grass, add plant in various stages of maturity + if nn == "default:dirt_with_grass" then + + local type = math.random(1,10) + if type == 1 and ground_y > 15 then + minetest.set_node(p,{name="farming:potato_"..pr:next(3, 4)}) + elseif type == 2 then + minetest.set_node(p,{name="farming:tomato_"..pr:next(7, 8)}) + elseif type == 3 then + minetest.set_node(p,{name="farming:carrot_"..pr:next(7, 8)}) + elseif type == 4 then + minetest.set_node(p,{name="farming:cucumber_4"}) + elseif type == 5 then + minetest.set_node(p,{name="farming:corn_"..pr:next(7, 8)}) + elseif type == 6 and ground_y > 20 then + minetest.set_node(p,{name="farming:coffee_5"}) + elseif type == 7 and minetest.find_node_near(p, 3, {"group:water"}) then + minetest.set_node(p,{name="farming:melon_8"}) + elseif type == 8 and ground_y > 15 then + minetest.set_node(p,{name="farming:pumpkin_8"}) + elseif type == 9 and ground_y > 5 then + minetest.set_node(p,{name="farming:raspberry_4"}) + elseif type == 10 and ground_y > 10 then + minetest.set_node(p,{name="farming:rhubarb_3"}) + end + end + end + end + end + end + end +end) diff --git a/mods/farming/melon.lua b/mods/farming/melon.lua new file mode 100644 index 00000000..11dd54b3 --- /dev/null +++ b/mods/farming/melon.lua @@ -0,0 +1,141 @@ + +--= Melon + +minetest.register_craftitem("farming:melon_slice", { + description = "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", ""}, + } +}) + +-- Define Melon growth stages + +minetest.register_node("farming:melon_1", { + drawtype = "plantlike", + tiles = {"farming_melon_1.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:melon_2", { + drawtype = "plantlike", + tiles = {"farming_melon_2.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:melon_3", { + drawtype = "plantlike", + tiles = {"farming_melon_3.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:melon_4", { + drawtype = "plantlike", + tiles = {"farming_melon_4.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:melon_5", { + drawtype = "plantlike", + tiles = {"farming_melon_5.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:melon_6", { + drawtype = "plantlike", + tiles = {"farming_melon_6.png"}, + paramtype = "light", + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:melon_7", { + drawtype = "plantlike", + tiles = {"farming_melon_7.png"}, + paramtype = "light", + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +-- Last stage of Melon growth doesnnot have growing=1 so abm never has to check these + +minetest.register_node("farming:melon_8", { + drawtype = "nodebox", + description = "Melon", + tiles = {"farming_melon_top.png", "farming_melon_top.png", "farming_melon_side.png"}, + paramtype = "light", + walkable = true, + is_ground_content = true, + drop = { + items = { + {items = {'farming:melon_slice 9'},rarity=1}, + } + }, + groups = {choppy=3,flammable=2,plant=1}, + sounds = default.node_sound_wood_defaults(), +}) diff --git a/mods/farming/potato.lua b/mods/farming/potato.lua new file mode 100644 index 00000000..9d4a4a7f --- /dev/null +++ b/mods/farming/potato.lua @@ -0,0 +1,97 @@ + +--= Potato (Original textures from DocFarming mod) +-- https://forum.minetest.net/viewtopic.php?id=3948 + +minetest.register_craftitem("farming:potato", { + description = "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), +}) + +minetest.register_craftitem("farming:baked_potato", { + description = "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" +}) + +-- Define Potato growth stages + +minetest.register_node("farming:potato_1", { + drawtype = "plantlike", + tiles = {"farming_potato_1.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:potato_2", { + drawtype = "plantlike", + tiles = {"farming_potato_2.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:potato_3", { + drawtype = "plantlike", + tiles = {"farming_potato_3.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = { + items = { + {items = {'farming:potato'},rarity=1}, + {items = {'farming:potato'},rarity=3}, + } + }, + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +-- Last stage of Potato growth doesnnot have growing=1 so abm never has to check these + +minetest.register_node("farming:potato_4", { + drawtype = "plantlike", + tiles = {"farming_potato_4.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = { + items = { + {items = {'farming:potato 2'},rarity=1}, + {items = {'farming:potato 3'},rarity=2}, + } + }, + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), +}) diff --git a/mods/farming/pumpkin.lua b/mods/farming/pumpkin.lua new file mode 100644 index 00000000..95a7e301 --- /dev/null +++ b/mods/farming/pumpkin.lua @@ -0,0 +1,199 @@ + +--= Pumpkin (Big thanks to the PainterlyPack.net for Minecraft for allowing me to use these textures) + +minetest.register_node("farming:pumpkin", { + description = "Pumpkin", + tiles = {"farming_pumpkin_top.png", "farming_pumpkin_top.png", "farming_pumpkin_side.png"}, + groups = {choppy=3,flammable=2,plant=1}, + drop = { + items = { + {items = {'farming:pumpkin_slice 9'},rarity=1}, + } + }, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_craftitem("farming:pumpkin_slice", { + description = "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 = "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.png"}, + light_source = 14, + paramtype2 = "facedir", + groups = {choppy=3,flammable=2,plant=1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_craft({ + output = "farming:jackolantern", + recipe = { + {"", "", ""}, + {"", "default:torch", ""}, + {"", "farming:pumpkin", ""}, + } +}) + +-- Pumpkin Bread +minetest.register_craftitem("farming:pumpkin_bread", { + description = ("Pumpkin Bread"), + inventory_image = "farming_pumpkin_bread.png", + on_use = minetest.item_eat(8) +}) + +minetest.register_craftitem("farming:pumpkin_dough", { + description = "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 +}) + +-- Define Pumpkin growth stages + +minetest.register_node("farming:pumpkin_1", { + drawtype = "plantlike", + tiles = {"farming_pumpkin_1.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:pumpkin_2", { + drawtype = "plantlike", + tiles = {"farming_pumpkin_2.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:pumpkin_3", { + drawtype = "plantlike", + tiles = {"farming_pumpkin_3.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:pumpkin_4", { + drawtype = "plantlike", + tiles = {"farming_pumpkin_4.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:pumpkin_5", { + drawtype = "plantlike", + tiles = {"farming_pumpkin_5.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:pumpkin_6", { + drawtype = "plantlike", + tiles = {"farming_pumpkin_6.png"}, + paramtype = "light", + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:pumpkin_7", { + drawtype = "plantlike", + tiles = {"farming_pumpkin_7.png"}, + paramtype = "light", + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +-- Last stage of Pumpkin growth does not have growing=1 so abm never has to check these + +minetest.register_node("farming:pumpkin_8", { + drawtype = "plantlike", + tiles = {"farming_pumpkin_8.png"}, + paramtype = "light", + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = { + items = { + {items = {'farming:pumpkin_slice 9'},rarity=1}, + } + }, + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1}, + sounds = default.node_sound_defaults(), +}) diff --git a/mods/farming/raspberry.lua b/mods/farming/raspberry.lua new file mode 100644 index 00000000..105b17e9 --- /dev/null +++ b/mods/farming/raspberry.lua @@ -0,0 +1,95 @@ + +--= Raspberries + +minetest.register_craftitem("farming:raspberries", { + description = "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 = "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"}, + } +}) + +-- Define Raspberry growth stages + +minetest.register_node("farming:raspberry_1", { + drawtype = "plantlike", + tiles = {"farming_raspberry_1.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:raspberry_2", { + drawtype = "plantlike", + tiles = {"farming_raspberry_2.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:raspberry_3", { + drawtype = "plantlike", + tiles = {"farming_raspberry_3.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +-- Last stage of Carrot growth doesnnot have growing=1 so abm never has to check these + +minetest.register_node("farming:raspberry_4", { + drawtype = "plantlike", + tiles = {"farming_raspberry_4.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = { + items = { + {items = {'farming:raspberries 2'},rarity=1}, + {items = {'farming:raspberries'},rarity=2}, + {items = {'farming:raspberries'},rarity=3}, + } + }, + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), +}) diff --git a/mods/farming/rhubarb.lua b/mods/farming/rhubarb.lua new file mode 100644 index 00000000..37bd4011 --- /dev/null +++ b/mods/farming/rhubarb.lua @@ -0,0 +1,79 @@ + +--= Rhubarb + +minetest.register_craftitem("farming:rhubarb", { + description = "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), +}) + +minetest.register_craftitem("farming:rhubarb_pie", { + description = "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"}, + } +}) + +-- Define Rhubarb growth stages + +minetest.register_node("farming:rhubarb_1", { + drawtype = "plantlike", + tiles = {"farming_rhubarb_1.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:rhubarb_2", { + drawtype = "plantlike", + tiles = {"farming_rhubarb_2.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +-- Last stage of Rhubarb growth doesnnot have growing=1 so abm never has to check these + +minetest.register_node("farming:rhubarb_3", { + drawtype = "plantlike", + tiles = {"farming_rhubarb_3.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = { + items = { + {items = {'farming:rhubarb 2'},rarity=1}, + {items = {'farming:rhubarb'},rarity=2}, + {items = {'farming:rhubarb'},rarity=3}, + } + }, + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), +}) diff --git a/mods/farming/soil.lua b/mods/farming/soil.lua new file mode 100644 index 00000000..b459273b --- /dev/null +++ b/mods/farming/soil.lua @@ -0,0 +1,58 @@ + +--= Soil Functions + +-- Normal Soil + +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}, + sounds = default.node_sound_dirt_defaults(), +}) +minetest.register_alias("farming:desert_sand_soil", "farming:soil") + +-- Wet Soil + +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}, + sounds = default.node_sound_dirt_defaults(), +}) +minetest.register_alias("farming:desert_sand_soil_wet", "farming:soil_wet") + +-- If Water near Soil then turn into Wet Soil + +minetest.register_abm({ + nodenames = {"farming:soil", "farming:soil_wet"}, + interval = 15, + chance = 4, + action = function(pos, node) + + pos.y = pos.y+1 + local nn = minetest.get_node(pos).name + pos.y = pos.y-1 + + -- 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"}) + 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/sugar.lua b/mods/farming/sugar.lua new file mode 100644 index 00000000..15bd9fa0 --- /dev/null +++ b/mods/farming/sugar.lua @@ -0,0 +1,15 @@ + +--= Sugar + +minetest.register_craftitem("farming:sugar", { + description = "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 100644 index 00000000..5d8cdbca 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 100644 index 00000000..425c4ae3 Binary files /dev/null and b/mods/farming/textures/farming_baked_potato.png differ diff --git a/mods/farming/textures/farming_bottle_ethanol.png b/mods/farming/textures/farming_bottle_ethanol.png new file mode 100644 index 00000000..84e6162d 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 new file mode 100644 index 00000000..bd00e3e1 Binary files /dev/null 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 100644 index 00000000..73f2fd47 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 100644 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 100644 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 100644 index 00000000..84005057 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 100644 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 100644 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 100644 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 100644 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 100644 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 100644 index 00000000..b817101d 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 100644 index 00000000..03243b27 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 100644 index 00000000..f887a1fb 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 100644 index 00000000..f0d39353 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 100644 index 00000000..8eaf67eb 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 100644 index 00000000..4022f8e8 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 100644 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 100644 index 00000000..a659f851 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 100644 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 100644 index 00000000..37a609f6 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 100644 index 00000000..e624fbeb 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 100644 index 00000000..0786f4e7 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 100644 index 00000000..d3820bc7 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 100644 index 00000000..f4fae904 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 100644 index 00000000..e80be358 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 100644 index 00000000..2a2894a4 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 100644 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 100644 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 100644 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 100644 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 100644 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 100644 index 00000000..313697b9 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 100644 index 00000000..6a937e79 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 100644 index 00000000..77e442b0 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 100644 index 00000000..a2fd9da7 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 new file mode 100644 index 00000000..ee0c2909 Binary files /dev/null and b/mods/farming/textures/farming_cotton.png differ diff --git a/mods/farming/textures/farming_cotton_1.png b/mods/farming/textures/farming_cotton_1.png new file mode 100644 index 00000000..8750adfa Binary files /dev/null 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 new file mode 100644 index 00000000..dc1025ba Binary files /dev/null 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 new file mode 100644 index 00000000..a1fe3b64 Binary files /dev/null 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 new file mode 100644 index 00000000..d0096da3 Binary files /dev/null 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 new file mode 100644 index 00000000..11f67fc6 Binary files /dev/null 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 new file mode 100644 index 00000000..13343046 Binary files /dev/null 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 new file mode 100644 index 00000000..fb98f1e7 Binary files /dev/null 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 new file mode 100644 index 00000000..ae9ed374 Binary files /dev/null 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 new file mode 100644 index 00000000..70d2ac28 Binary files /dev/null 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 100644 index 00000000..2acb7b2f 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 100644 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 100644 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 100644 index 00000000..25f3c54f 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 100644 index 00000000..fc62f2f4 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 new file mode 100644 index 00000000..1450e014 Binary files /dev/null and b/mods/farming/textures/farming_desert_sand_soil.png differ diff --git a/mods/farming/textures/farming_desert_sand_soil_wet.png b/mods/farming/textures/farming_desert_sand_soil_wet.png new file mode 100644 index 00000000..cffa955d Binary files /dev/null and b/mods/farming/textures/farming_desert_sand_soil_wet.png differ diff --git a/mods/farming/textures/farming_desert_sand_soil_wet_side.png b/mods/farming/textures/farming_desert_sand_soil_wet_side.png new file mode 100644 index 00000000..fbb2815e Binary files /dev/null and b/mods/farming/textures/farming_desert_sand_soil_wet_side.png differ diff --git a/mods/farming/textures/farming_donut.png b/mods/farming/textures/farming_donut.png new file mode 100644 index 00000000..8985299b 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 100644 index 00000000..6dfe63d5 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 100644 index 00000000..aa4b93fa 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 new file mode 100644 index 00000000..a526b202 Binary files /dev/null and b/mods/farming/textures/farming_flour.png differ diff --git a/mods/farming/textures/farming_melon_1.png b/mods/farming/textures/farming_melon_1.png new file mode 100644 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 100644 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 100644 index 00000000..6e661f92 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 100644 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 100644 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 100644 index 00000000..b31a5b4c 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 100644 index 00000000..3aebfdd6 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 100644 index 00000000..88e40c6a 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 100644 index 00000000..6ee97757 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 100644 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 100644 index 00000000..6e91d6ae 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 100644 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 100644 index 00000000..c81830c4 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 100644 index 00000000..a3d79209 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 100644 index 00000000..405b7e56 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 100644 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 100644 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 100644 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 100644 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 100644 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 100644 index 00000000..6ae543e4 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 100644 index 00000000..79190e09 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 100644 index 00000000..b941442c 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 100644 index 00000000..0dfae08f 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 100644 index 00000000..62ea7a65 Binary files /dev/null and b/mods/farming/textures/farming_pumpkin_dough.png differ diff --git a/mods/farming/textures/farming_pumpkin_face.png b/mods/farming/textures/farming_pumpkin_face.png new file mode 100644 index 00000000..fa71c9d4 Binary files /dev/null and b/mods/farming/textures/farming_pumpkin_face.png differ diff --git a/mods/farming/textures/farming_pumpkin_side.png b/mods/farming/textures/farming_pumpkin_side.png new file mode 100644 index 00000000..2d30f203 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 100644 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 100644 index 00000000..79283454 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 100644 index 00000000..ab96e1bf 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 100644 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 100644 index 00000000..308a0caf 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 100644 index 00000000..43d2ab13 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 100644 index 00000000..32da6b9f 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 100644 index 00000000..fe178d11 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 100644 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 100644 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 100644 index 00000000..71845c75 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 100644 index 00000000..b412f7e0 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 100644 index 00000000..1f77b535 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 new file mode 100644 index 00000000..0be94e3c Binary files /dev/null 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 new file mode 100644 index 00000000..d5e335ef Binary files /dev/null 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 new file mode 100644 index 00000000..6bd3a56c Binary files /dev/null and b/mods/farming/textures/farming_soil_wet_side.png differ diff --git a/mods/farming/textures/farming_sugar.png b/mods/farming/textures/farming_sugar.png new file mode 100644 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 100644 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 100644 index 00000000..d858e586 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 100644 index 00000000..9d9ed6d0 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 100644 index 00000000..fe3dcf0a 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 100644 index 00000000..27c32828 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 100644 index 00000000..f369a68f 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 100644 index 00000000..0135cb53 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 100644 index 00000000..4cd85f5f 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 100644 index 00000000..0b490257 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 new file mode 100644 index 00000000..ef07a80a Binary files /dev/null and b/mods/farming/textures/farming_tool_bronzehoe.png differ diff --git a/mods/farming/textures/farming_tool_diamondhoe.png b/mods/farming/textures/farming_tool_diamondhoe.png new file mode 100644 index 00000000..093acb82 Binary files /dev/null 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 new file mode 100644 index 00000000..ffd597a4 Binary files /dev/null and b/mods/farming/textures/farming_tool_mesehoe.png differ diff --git a/mods/farming/textures/farming_tool_steelhoe.png b/mods/farming/textures/farming_tool_steelhoe.png new file mode 100644 index 00000000..893a6958 Binary files /dev/null and b/mods/farming/textures/farming_tool_steelhoe.png differ diff --git a/mods/farming/textures/farming_tool_stonehoe.png b/mods/farming/textures/farming_tool_stonehoe.png new file mode 100644 index 00000000..4f8dade0 Binary files /dev/null and b/mods/farming/textures/farming_tool_stonehoe.png differ diff --git a/mods/farming/textures/farming_tool_woodhoe.png b/mods/farming/textures/farming_tool_woodhoe.png new file mode 100644 index 00000000..8b20d2dc Binary files /dev/null and b/mods/farming/textures/farming_tool_woodhoe.png differ diff --git a/mods/farming/textures/farming_wheat.png b/mods/farming/textures/farming_wheat.png new file mode 100644 index 00000000..8ecd7350 Binary files /dev/null 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 new file mode 100644 index 00000000..49430003 Binary files /dev/null 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 new file mode 100644 index 00000000..63550d12 Binary files /dev/null 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 new file mode 100644 index 00000000..00a8c661 Binary files /dev/null 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 new file mode 100644 index 00000000..80b98aa2 Binary files /dev/null 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 new file mode 100644 index 00000000..1023f0cc Binary files /dev/null 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 new file mode 100644 index 00000000..591c1383 Binary files /dev/null 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 new file mode 100644 index 00000000..98bc60aa Binary files /dev/null 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 new file mode 100644 index 00000000..44bc5321 Binary files /dev/null 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 new file mode 100644 index 00000000..9afcd4dd Binary files /dev/null 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 100644 index 00000000..2eba2321 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 100644 index 00000000..3ec20f7b --- /dev/null +++ b/mods/farming/tomato.lua @@ -0,0 +1,138 @@ + +--= Tomato (Original textures from link below) +-- http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/1288375-food-plus-mod-more-food-than-you-can-imagine-v2-9) + +minetest.register_craftitem("farming:tomato", { + description = "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), +}) + +-- Define Tomato growth stages + +minetest.register_node("farming:tomato_1", { + drawtype = "plantlike", + tiles = {"farming_tomato_1.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:tomato_2", { + drawtype = "plantlike", + tiles = {"farming_tomato_2.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:tomato_3", { + drawtype = "plantlike", + tiles = {"farming_tomato_3.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:tomato_4", { + drawtype = "plantlike", + tiles = {"farming_tomato_4.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:tomato_5", { + drawtype = "plantlike", + tiles = {"farming_tomato_5.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:tomato_6", { + drawtype = "plantlike", + tiles = {"farming_tomato_6.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:tomato_7", { + drawtype = "plantlike", + tiles = {"farming_tomato_7.png"}, + paramtype = "light", + waving = 1, + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = { + items = { + {items = {'farming:tomato'},rarity=1}, + {items = {'farming:tomato'},rarity=3}, + } + }, + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +-- Last stage of Carrot growth doesnnot have growing=1 so abm never has to check these + +minetest.register_node("farming:tomato_8", { + drawtype = "plantlike", + tiles = {"farming_tomato_8.png"}, + paramtype = "light", + waving = 1, + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = { + items = { + {items = {'farming:tomato 3'},rarity=1}, + {items = {'farming:tomato 3'},rarity=2}, + } + }, + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), +}) diff --git a/mods/farming/wheat.lua b/mods/farming/wheat.lua new file mode 100644 index 00000000..4acf4f8f --- /dev/null +++ b/mods/farming/wheat.lua @@ -0,0 +1,203 @@ + +--= Wheat + +-- Wheat Seed + +--minetest.register_craftitem("farming:seed_wheat", { +-- description = "Wheat Seed", +-- inventory_image = "farming_wheat_seed.png", +-- on_place = function(itemstack, placer, pointed_thing) +-- return farming.place_seed(itemstack, placer, pointed_thing, "farming:wheat_1") +-- end, +--}) + +minetest.register_node("farming:seed_wheat", { + description = "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 = {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, "farming:wheat_1") + end, +}) + +-- Harvested Wheat + +minetest.register_craftitem("farming:wheat", { + description = "Wheat", + inventory_image = "farming_wheat.png", +}) + +-- flour + +minetest.register_craftitem("farming:flour", { + description = "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 = "Bread", + inventory_image = "farming_bread.png", + on_use = minetest.item_eat(4), +}) + +minetest.register_craft({ + type = "cooking", + cooktime = 15, + output = "farming:bread", + recipe = "farming:flour" +}) + +-- Define Wheat growth stages + +minetest.register_node("farming:wheat_1", { + drawtype = "plantlike", + tiles = {"farming_wheat_1.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:wheat_2", { + drawtype = "plantlike", + tiles = {"farming_wheat_2.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:wheat_3", { + drawtype = "plantlike", + tiles = {"farming_wheat_3.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:wheat_4", { + drawtype = "plantlike", + tiles = {"farming_wheat_4.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:wheat_5", { + drawtype = "plantlike", + tiles = {"farming_wheat_5.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = { + items = { + {items = {'farming:wheat'},rarity=2}, + {items = {'farming:seed_wheat'},rarity=2}, + } + }, + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:wheat_6", { + drawtype = "plantlike", + tiles = {"farming_wheat_6.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = { + items = { + {items = {'farming:wheat'},rarity=2}, + {items = {'farming:seed_wheat'},rarity=1}, + } + }, + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:wheat_7", { + drawtype = "plantlike", + tiles = {"farming_wheat_7.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = { + items = { + {items = {'farming:wheat'},rarity=1}, + {items = {'farming:wheat'},rarity=3}, + {items = {'farming:seed_wheat'},rarity=1}, + {items = {'farming:seed_wheat'},rarity=3}, + } + }, + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +-- Last stage of Wheat growth doesnnot have growing=1 so abm never has to check these + +minetest.register_node("farming:wheat_8", { + drawtype = "plantlike", + tiles = {"farming_wheat_8.png"}, + paramtype = "light", + waving = 1, + walkable = false, + buildable_to = true, + drop = { + items = { + {items = {'farming:wheat'},rarity=1}, + {items = {'farming:wheat'},rarity=2}, + {items = {'farming:seed_wheat'},rarity=1}, + {items = {'farming:seed_wheat'},rarity=2}, + } + }, + selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},}, + groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), +}) diff --git a/mods/fences/README.txt b/mods/fences/README.txt new file mode 100755 index 00000000..5e0cc91a --- /dev/null +++ b/mods/fences/README.txt @@ -0,0 +1,27 @@ +Minetest mod "Fences" +======================= +version: 1.0 + +License of source code and textures: +------------------------------------ +Written 2013 by BlockMen + +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. + + + + + +--USING the mod-- + +This mod "overrides" the recipe for the default fence, so if you want craft a fance, it crafts THIS fence. + +If you want replace already placed default fences open the "init.lua" (in this directory) and change +the first line to "local override_original = true". Then all placed default fences will be replaced with +this fence. + +It is not possible to jump over the Fence or the closed Fencegate. Only exception is when you "sneak" and "jump". \ No newline at end of file diff --git a/mods/fences/depends.txt b/mods/fences/depends.txt new file mode 100755 index 00000000..4ad96d51 --- /dev/null +++ b/mods/fences/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/fences/init.lua b/mods/fences/init.lua new file mode 100755 index 00000000..25f2751d --- /dev/null +++ b/mods/fences/init.lua @@ -0,0 +1,698 @@ +local override_original = false --change to "true" if you want original and placed fences replaced + +local function dockable(nodename) + if nodename == "default:wood" or nodename == "default:brick" or nodename == "default:cobble" or nodename == "default:dirt" or nodename == "default:sandstone" or nodename == "default:stone" or string.find(nodename, "fences:fence_wood") or string.find(nodename, "fences:fencegate") then + return true + end +end + + +local function find_dock(pos, second) + if pos == nil then + return false + end + + local h1 = minetest.env:get_node({x=pos.x+1, y=pos.y, z=pos.z}) + local v1 = minetest.env:get_node({x=pos.x-1, y=pos.y, z=pos.z}) + local r1 = minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z+1}) + local l1 = minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z-1}) + local code = 0 + if dockable(l1.name) then + code = code+1 + if second < 2 then + minetest.env:punch_node({x=pos.x, y=pos.y, z=pos.z-1}) + end + end + if dockable(r1.name) then + code = code+2 + if second < 2 then + minetest.env:punch_node({x=pos.x, y=pos.y, z=pos.z+1}) + end + end + if dockable(v1.name) then + code = code+11 + if second < 2 then + minetest.env:punch_node({x=pos.x-1, y=pos.y, z=pos.z}) + end + end + if dockable(h1.name) then + code = code+21 + if second < 2 then + minetest.env:punch_node({x=pos.x+1, y=pos.y, z=pos.z}) + end + end + local me = minetest.env:get_node(pos) + if code > 0 then + local tmp_name = "fences:fence_wood_"..code + --minetest.chat_send_all(tmp_name) + local tmp_node = {name=tmp_name, param1=me.param1, param2=me.param2} + if second > 0 then + local tmp_node = {name=tmp_name, param1=me.param1, param2=me.param2} + minetest.env:set_node(pos, tmp_node) + end + elseif code == 0 then + if second == 2 then + local tmp_node = {name="fences:fence_wood", param1=me.param1, param2=me.param2} + minetest.env:set_node(pos, tmp_node) + end + end + +end + +local function punch(pos, puncher) + if not puncher ~= '' then + find_dock(pos, 2) + elseif not puncher:is_player() then + find_dock(pos, 2) + end +end + + +local p0 = {-2/16, -1/2, -2/16, 2/16, 1/2, 2/16} +local p1 = {-2/16, 1/2, -2/16, -2/16, 1/2+8/16, -2/16} +local p2 = {-2/16, 1/2, 2/16, -2/16, 1/2+8/16, 2/16} +local p4 = {2/16, 1/2, -2/16, 2/16, 1/2+8/16, -2/16} +local p5 = {2/16, 1/2, 2/16, 2/16, 1/2+8/16, 2/16} + +local x1 = {-2/16, 1/2-4/16, 1/16, -1/2, 1/2-1/16, -1/16} --oben(quer) -x +local x12 = {-2/16, -1/2+6/16, 1/16, -1/2, -1/2+9/16, -1/16} --unten(quer) -x +local x2 = {2/16, 1/2-4/16, -1/16, 1/2, 1/2-1/16, 1/16} --oben(quer) x +local x22 = {2/16, -1/2+6/16, -1/16, 1/2, -1/2+9/16, 1/16} --unten(quer) x +local z1 = {1/16, 1/2-4/16, -2/16, -1/16, 1/2-1/16, -1/2} --oben(quer) -z +local z12 = {1/16, -1/2+6/16, -2/16, -1/16, -1/2+9/16, -1/2} --unten(quer) -z +local z2 = {-1/16, 1/2-4/16, 2/16, 1/16, 1/2-1/16, 1/2} --oben(quer) z +local z22 = {-1/16, -1/2+6/16, 2/16, 1/16, -1/2+9/16, 1/2} --unten(quer) z + +local bz1 = {1/16, 1/2-1/16, -6/16, 1/16, 1/2+8/16, -6/16} --oben_block(quer) -z 1seite +local bz11 = {-1/16, 1/2-1/16, -6/16, -1/16, 1/2+8/16, -6/16} --oben_block(quer) -z 2seite +local bz2 = {1/16, 1/2-1/16, 5/16, 1/16, 1/2+8/16, 5/16} --oben_block(quer) z 1seite +local bz21 = {-1/16, 1/2-1/16, 5/16, -1/16, 1/2+8/16, 5/16} --oben_block(quer) z 2seite + +local bx1 = {-6/16, 1/2-1/16, 1/16, -6/16, 1/2+8/16, 1/16} --oben_block(quer) -x 1seite +local bx11 = {-6/16, 1/2-1/16, -1/16, -6/16, 1/2+8/16, -1/16} --oben_block(quer) -x 2seite +local bx2 = {5/16, 1/2-1/16, 1/16, 5/16, 1/2+8/16, 1/16} --oben_block(quer) x 1seite +local bx21 = {5/16, 1/2-1/16, -1/16, 5/16, 1/2+8/16, -1/16} --oben_block(quer) x 2seite + + +minetest.register_node("fences:fence_wood", { + description = "Wooden Fence", + tiles = {"default_wood.png"}, + inventory_image = "default_fence.png", + wield_image = "default_fence.png", + paramtype = "light", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,fences=1}, + drop = 'fences:fence_wood', + sunlight_propagates = true, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = {p0,p1,p2,p3,p4,p5,} + }, + selection_box = { + type = "fixed", + fixed = {-2/16, -1/2, -2/16, 2/16, 1/2, 2/16}, + }, + on_construct = function(pos) + find_dock(pos, 1) + end, + on_punch = function(pos, puncher) + punch(pos, puncher) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + find_dock(pos, -1) + end +}) + + + +--different fence types- (1=left,2=right,3=top,4=bottom) + +minetest.register_node("fences:fence_wood_1", { + tiles = {"default_wood.png"}, + paramtype = "light", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,fences=1,not_in_inventory=1}, + drop = 'fences:fence_wood', + sunlight_propagates = true, + sounds = default.node_sound_wood_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + p0,p1,p2,p3,p4,p5, + z1,z12, + bz1,bz11, + } + }, + selection_box = { + type = "fixed", + fixed = {-2/16, -1/2, -2/16, 2/16, 1/2, 2/16}, + }, + on_punch = function(pos, puncher) + punch(pos, puncher) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + find_dock(pos, -1) + end +}) + +minetest.register_node("fences:fence_wood_2", { + tiles = {"default_wood.png"}, + paramtype = "light", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,fences=1,not_in_inventory=1}, + drop = 'fences:fence_wood', + sunlight_propagates = true, + sounds = default.node_sound_wood_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + p0,p1,p2,p3,p4,p5, + z2,z22, + bz2,bz21, + } + }, + selection_box = { + type = "fixed", + fixed = {-2/16, -1/2, -2/16, 2/16, 1/2, 2/16}, + }, + on_punch = function(pos, puncher) + punch(pos, puncher) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + find_dock(pos, -1) + end +}) + +minetest.register_node("fences:fence_wood_3", { --left+right(3) + tiles = {"default_wood.png"}, + paramtype = "light", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,fences=1,not_in_inventory=1}, + drop = 'fences:fence_wood', + sunlight_propagates = true, + sounds = default.node_sound_wood_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + p0,p1,p2,p3,p4,p5, + z1,z12,z2,z22, + bz1,bz11,bz2,bz21, + } + }, + selection_box = { + type = "fixed", + fixed = {-2/16, -1/2, -2/16, 2/16, 1/2, 2/16}, + }, + on_punch = function(pos, puncher) + punch(pos, puncher) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + find_dock(pos, -1) + end +}) + +minetest.register_node("fences:fence_wood_11", { --top + tiles = {"default_wood.png"}, + paramtype = "light", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,fences=1,not_in_inventory=1}, + drop = 'fences:fence_wood', + sunlight_propagates = true, + sounds = default.node_sound_wood_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + p0,p1,p2,p3,p4,p5, + x1,x12, + bx1,bx11, + } + }, + selection_box = { + type = "fixed", + fixed = {-2/16, -1/2, -2/16, 2/16, 1/2, 2/16}, + }, + on_punch = function(pos, puncher) + punch(pos, puncher) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + find_dock(pos, -1) + end +}) + +minetest.register_node("fences:fence_wood_21", { --bottom + tiles = {"default_wood.png"}, + paramtype = "light", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,fences=1,not_in_inventory=1}, + drop = 'fences:fence_wood', + sunlight_propagates = true, + sounds = default.node_sound_wood_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + p0,p1,p2,p3,p4,p5, + x2,x22, + bx2,bx21, + } + }, + selection_box = { + type = "fixed", + fixed = {-2/16, -1/2, -2/16, 2/16, 1/2, 2/16}, + }, + on_punch = function(pos, puncher) + punch(pos, puncher) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + find_dock(pos, -1) + end +}) + + +minetest.register_node("fences:fence_wood_32", { --top+bottom(32) + tiles = {"default_wood.png"}, + paramtype = "light", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,fences=1,not_in_inventory=1}, + drop = 'fences:fence_wood', + sunlight_propagates = true, + sounds = default.node_sound_wood_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + p0,p1,p2,p3,p4,p5, + x1,x12,x2,x22, + bx1,bx11,bx2,bx21, + } + }, + selection_box = { + type = "fixed", + fixed = {-2/16, -1/2, -2/16, 2/16, 1/2, 2/16}, + }, + on_punch = function(pos, puncher) + punch(pos, puncher) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + find_dock(pos, -1) + end +}) + +minetest.register_node("fences:fence_wood_14", { --left+right(3)+ top(11) =14 + tiles = {"default_wood.png"}, + paramtype = "light", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,fences=1,not_in_inventory=1}, + drop = 'fences:fence_wood', + sunlight_propagates = true, + sounds = default.node_sound_wood_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + p0,p1,p2,p3,p4,p5, + z1,z12,z2,z22,x1,x12, + bz1,bz11,bz2,bz21,bx1,bx11, + } + }, + selection_box = { + type = "fixed", + fixed = {-2/16, -1/2, -2/16, 2/16, 1/2, 2/16}, + }, + on_punch = function(pos, puncher) + punch(pos, puncher) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + find_dock(pos, -1) + end +}) + +minetest.register_node("fences:fence_wood_24", { --left+right(3)+ bottom(21) =24 + tiles = {"default_wood.png"}, + paramtype = "light", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,fences=1,not_in_inventory=1}, + drop = 'fences:fence_wood', + sunlight_propagates = true, + sounds = default.node_sound_wood_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + p0,p1,p2,p3,p4,p5, + z1,z12,z2,z22,x2,x22, + bz1,bz11,bz2,bz21,bx2,bx21, + } + }, + selection_box = { + type = "fixed", + fixed = {-2/16, -1/2, -2/16, 2/16, 1/2, 2/16}, + }, + on_punch = function(pos, puncher) + punch(pos, puncher) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + find_dock(pos, -1) + end +}) + +minetest.register_node("fences:fence_wood_35", { --left+right(3)+top+bottom(32) = 35 + tiles = {"default_wood.png"}, + paramtype = "light", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,fences=1,not_in_inventory=1}, + drop = 'fences:fence_wood', + sunlight_propagates = true, + sounds = default.node_sound_wood_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + p0,p1,p2,p3,p4,p5, + x1,x12,x2,x22,z1,z12,z2,z22, + bz1,bz11,bz2,bz21,bx1,bx11,bx2,bx21, + } + }, + selection_box = { + type = "fixed", + fixed = {-2/16, -1/2, -2/16, 2/16, 1/2, 2/16}, + }, + on_punch = function(pos, puncher) + punch(pos, puncher) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + find_dock(pos, -1) + end +}) + +minetest.register_node("fences:fence_wood_12", { --left(1)+top(11)=12 + tiles = {"default_wood.png"}, + paramtype = "light", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,fences=1,not_in_inventory=1}, + drop = 'fences:fence_wood', + sunlight_propagates = true, + sounds = default.node_sound_wood_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + p0,p1,p2,p3,p4,p5, + z1,z12,x1,x12, + bz1,bz11,bx1,bx11, + } + }, + selection_box = { + type = "fixed", + fixed = {-2/16, -1/2, -2/16, 2/16, 1/2, 2/16}, + }, + on_punch = function(pos, puncher) + punch(pos, puncher) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + find_dock(pos, -1) + end +}) + +minetest.register_node("fences:fence_wood_22", { --left(1)+bottom(21)=22 + tiles = {"default_wood.png"}, + paramtype = "light", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,fences=1,not_in_inventory=1}, + drop = 'fences:fence_wood', + sunlight_propagates = true, + sounds = default.node_sound_wood_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + p0,p1,p2,p3,p4,p5, + z1,z12,x2,x22, + bz1,bz11,bx2,bx21, + } + }, + selection_box = { + type = "fixed", + fixed = {-2/16, -1/2, -2/16, 2/16, 1/2, 2/16}, + }, + on_punch = function(pos, puncher) + punch(pos, puncher) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + find_dock(pos, -1) + end +}) + +minetest.register_node("fences:fence_wood_33", { --left(1)+top+bottom(32)=33 + tiles = {"default_wood.png"}, + paramtype = "light", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,fences=1,not_in_inventory=1}, + drop = 'fences:fence_wood', + sunlight_propagates = true, + sounds = default.node_sound_wood_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + p0,p1,p2,p3,p4,p5, + z1,z12,x1,x12,x2,x21, + bz1,bz11,bx1,bx11,bx2,bx21, + } + }, + selection_box = { + type = "fixed", + fixed = {-2/16, -1/2, -2/16, 2/16, 1/2, 2/16}, + }, + on_punch = function(pos, puncher) + punch(pos, puncher) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + find_dock(pos, -1) + end +}) + +minetest.register_node("fences:fence_wood_34", { --right(2)+top+bottom(32)=34 + tiles = {"default_wood.png"}, + paramtype = "light", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,fences=1,not_in_inventory=1}, + drop = 'fences:fence_wood', + sunlight_propagates = true, + sounds = default.node_sound_wood_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + p0,p1,p2,p3,p4,p5, + z2,z22,x1,x12,x2,x22, + bz2,bz21,bx1,bx11,bx2,bx21, + } + }, + selection_box = { + type = "fixed", + fixed = {-2/16, -1/2, -2/16, 2/16, 1/2, 2/16}, + }, + on_punch = function(pos, puncher) + punch(pos, puncher) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + find_dock(pos, -1) + end +}) + +minetest.register_node("fences:fence_wood_23", { --right(2)+bottom(21)=23 + tiles = {"default_wood.png"}, + paramtype = "light", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,fences=1,not_in_inventory=1}, + drop = 'fences:fence_wood', + sunlight_propagates = true, + sounds = default.node_sound_wood_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + p0,p1,p2,p3,p4,p5, + z2,z22,x2,x22, + bz2,bz21,bx2,bx21, + } + }, + selection_box = { + type = "fixed", + fixed = {-2/16, -1/2, -2/16, 2/16, 1/2, 2/16}, + }, + on_punch = function(pos, puncher) + punch(pos, puncher) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + find_dock(pos, -1) + end +}) + +minetest.register_node("fences:fence_wood_13", { --right(2)+top(11)=13 + tiles = {"default_wood.png"}, + paramtype = "light", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,fences=1,not_in_inventory=1}, + drop = 'fences:fence_wood', + sunlight_propagates = true, + sounds = default.node_sound_wood_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + p0,p1,p2,p3,p4,p5, + z2,z22,x1,x12, + bz1,bz11,bx1,bx11, + } + }, + selection_box = { + type = "fixed", + fixed = {-2/16, -1/2, -2/16, 2/16, 1/2, 2/16}, + }, + on_punch = function(pos, puncher) + punch(pos, puncher) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + find_dock(pos, -1) + end +}) + + + +minetest.register_craft({ + output = 'fences:fence_wood 2', + recipe = { + {'default:stick', 'default:stick', 'default:stick'}, + {'default:stick', 'default:stick', 'default:stick'}, + {'', '', ''}, + } +}) + +minetest.register_craft({ + output = 'fences:fencegate', + recipe = { + {'default:stick', 'default:wood', 'default:stick'}, + {'default:stick', 'default:wood', 'default:stick'}, + {'', '', ''}, + } +}) + + + + +local meta2 +local state2 = 0 + +local function update_gate(pos, node) + minetest.env:set_node(pos, node) +end + +local function punch_gate(pos, node) + meta2 = minetest.env:get_meta(pos) + state2 = meta2:get_int("state") + local tmp_node2 + if state2 == 1 then + state2 = 0 + minetest.sound_play("door_close", {gain = 0.3, max_hear_distance = 10}) + tmp_node2 = {name="fences:fencegate", param1=node.param1, param2=node.param2} + else + state2 = 1 + minetest.sound_play("door_open", {gain = 0.3, max_hear_distance = 10}) + tmp_node2 = {name="fences:fencegate_open", param1=node.param1, param2=node.param2} + end + update_gate(pos, tmp_node2) + meta2:set_int("state", state2) +end + +minetest.register_node("fences:fencegate_open", { + tiles = {"default_wood.png"}, + inventory_image = "default_fence.png", + wield_image = "default_fence.png", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + walkable = true, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,fences=1,not_in_inventory=1}, + drop = 'fences:fencegate', + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-1/2, -1/2+5/16, -1/16, -1/2+2/16, 1/2, 1/16}, --links abschluss + {1/2-2/16, -1/2+5/16, -1/16, 1/2, 1/2, 1/16}, --rechts abschluss + {-1/2, 1/2-4/16, 1/16, -1/2+2/16, 1/2-1/16, 1/2-2/16}, --oben-links(quer) x + {-1/2, -1/2+6/16, 1/16, -1/2+2/16, -1/2+9/16, 1/2-2/16}, --unten-links(quer) x + {1/2-2/16, 1/2-4/16, 1/16, 1/2, 1/2-1/16, 1/2}, --oben-rechts(quer) x + {1/2-2/16, -1/2+6/16, 1/16, 1/2, -1/2+9/16, 1/2}, --unten-rechts(quer) x + {-1/2, -1/2+6/16, 6/16, -1/2+2/16, 1/2-1/16, 1/2}, --mitte links + {1/2-2/16, 1/2-4/16, 1/2, 1/2, -1/2+9/16, 6/16}, --mitte rechts + } + }, + selection_box = { + type = "fixed", + fixed = { + {-1/2, -1/2+5/16, -1/16, -1/2+2/16, 1/2, 1/2}, --links + {1/2, -1/2+5/16, -1/16, 1/2, 1/2, 1/2-2/16}, --rechts + } + }, + --on_punch = function(pos, node, puncher) + on_rightclick = function(pos, node, clicker) + punch_gate(pos, node) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + find_dock(pos, -1) + end +}) + +minetest.register_node("fences:fencegate", { + description = "Wooden Fancegate", + tiles = {"default_wood.png"}, + inventory_image = "fences_fencegate.png", + wield_image = "fences_fencegate.png", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + walkable = true, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,fences=1}, + drop = 'fences:fencegate', + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-1/2, -1/2+5/16, -1/16, -1/2+2/16, 1/2, 1/16}, --links abschluss + {1/2-2/16, -1/2+5/16, -1/16, 1/2, 1/2, 1/16}, --rechts abschluss + {-2/16, -1/2+6/16, -1/16, 0, 1/2-1/16, 1/16}, --mitte links + {0, -1/2+6/16, -1/16, 2/16, 1/2-1/16, 1/16}, --mitte rechts + {-2/16, 1/2-4/16, 1/16, -1/2, 1/2-1/16, -1/16}, --oben(quer) -z + {-2/16, -1/2+6/16, 1/16, -1/2, -1/2+9/16, -1/16}, --unten(quer) -z + {2/16, 1/2-4/16, -1/16, 1/2, 1/2-1/16, 1/16}, --oben(quer) z + {2/16, -1/2+6/16, -1/16, 1/2, -1/2+9/16, 1/16}, --unten(quer) z + p1,p2,p3,p4,p5, + bx1,bx11,bx2,bx21, + } + }, + selection_box = { + type = "fixed", + fixed = { + {-1/2, -1/2+5/16, -1/16, 1/2, 1/2, 1/16}, --gate + } + }, + on_construct = function(pos) + me2 = minetest.env:get_node(pos) + meta2 = minetest.env:get_meta(pos) + meta2:set_int("state", 0) + state2 = 0 + find_dock(pos, -1) + end, + on_rightclick = function(pos, node, clicker) + punch_gate(pos, node) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + find_dock(pos, -1) + end +}) + + +if override_original == true then + minetest.register_abm({ + nodenames = {"default:fence_wood"}, + interval = 1.0, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local tmp_node3 = {name="fences:fence_wood"} + minetest.env:set_node(pos, tmp_node3) + minetest.env:punch_node(pos) + end + }) +end \ No newline at end of file diff --git a/mods/fences/textures/fences_fencegate.png b/mods/fences/textures/fences_fencegate.png new file mode 100755 index 00000000..55cd537f Binary files /dev/null and b/mods/fences/textures/fences_fencegate.png differ diff --git a/mods/fishing/depends.txt b/mods/fishing/depends.txt new file mode 100755 index 00000000..331d858c --- /dev/null +++ b/mods/fishing/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/mods/fishing/fishing.lua b/mods/fishing/fishing.lua new file mode 100755 index 00000000..35abfe42 --- /dev/null +++ b/mods/fishing/fishing.lua @@ -0,0 +1,86 @@ +-- Raw Fish (Thanks to Altairas for her Fish image on DeviantArt) +minetest.register_craftitem("fishing:fish_raw", { + description = "Raw Fish", + inventory_image = "fish_raw.png", + on_use = minetest.item_eat(2), +}) + +-- Cooked Fish +minetest.register_craftitem("fishing:fish_cooked", { + description = "Cooked Fish", + inventory_image = "fish_cooked.png", + on_use = minetest.item_eat(5), +}) + +-- Worm +minetest.register_craftitem("fishing:worm", { + description = "Worm", + inventory_image = "worm.png", +}) + +-- Fishing Rod +minetest.register_craftitem("fishing:fishing_rod", { + description = "Fishing Rod", + inventory_image = "fishing_rod.png", + stack_max = 1, + liquids_pointable = true, +}) + +-- Fishing Rod (Baited) +minetest.register_craftitem("fishing:fishing_rod_baited", { + description = "Baited Fishing Rod", + inventory_image = "fishing_rod_baited.png", + wield_image = "fishing_rod_wield.png", + stack_max = 1, + liquids_pointable = true, + on_use = function (itemstack, user, pointed_thing) + if pointed_thing and pointed_thing.under then + local node = minetest.env:get_node(pointed_thing.under) + if string.find(node.name, "default:water_source") then + if math.random(1, 100) < 5 then + local inv = user:get_inventory() + if inv:room_for_item("main", {name="fishing:fish_raw"}) then + inv:add_item("main", {name="fishing:fish_raw"}) + return {name="fishing:fishing_rod"} + else + minetest.chat_send_player(user:get_player_name(), "Your Fish Got Away! Inventory Too Full") + end + end + end + end + end, +}) + +-- Fishing Rod +minetest.register_craft({ + output = "fishing:fishing_rod", + recipe = { + {"","","default:stick"}, + {"", "default:stick", "farming:string"}, + {"default:stick", "", "farming:string"}, + } +}) + +-- Sift through 4 Dirt Blocks to find Worm +minetest.register_craft({ + output = "fishing:worm", + recipe = { + {"default:dirt","default:dirt"}, + {"default:dirt","default:dirt"}, + } +}) + +-- Cooking Fish +minetest.register_craft({ + type = "cooking", + output = "fishing:fish_cooked", + recipe = "fishing:fish_raw", + cooktime = 2, +}) + +-- Baiting Fishing Rod +minetest.register_craft({ + type = "shapeless", + output = "fishing:fishing_rod_baited", + recipe = {"fishing:fishing_rod", "fishing:worm"}, +}) diff --git a/mods/fishing/init.lua b/mods/fishing/init.lua new file mode 100755 index 00000000..575988e6 --- /dev/null +++ b/mods/fishing/init.lua @@ -0,0 +1,16 @@ +--[[ + Fishing mod extraced out of: + + Minetest Ethereal Mod 1.08 (https://forum.minetest.net/viewtopic.php?f=11&t=7656) + + Created by ChinChow + + Updated by TenPlus1 + + Extracted with little changes by Xanthin + +]] + +fishing = {} +dofile(minetest.get_modpath("fishing").."/fishing.lua") +--dofile(minetest.get_modpath("fishing").."/sealife.lua") diff --git a/mods/fishing/license.txt b/mods/fishing/license.txt new file mode 100755 index 00000000..94a9ed02 --- /dev/null +++ b/mods/fishing/license.txt @@ -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. + + + Copyright (C) + + 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: + + Copyright (C) + 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/fishing/textures/coral2.png b/mods/fishing/textures/coral2.png new file mode 100755 index 00000000..bee95611 Binary files /dev/null and b/mods/fishing/textures/coral2.png differ diff --git a/mods/fishing/textures/coral3.png b/mods/fishing/textures/coral3.png new file mode 100755 index 00000000..15d31ac6 Binary files /dev/null and b/mods/fishing/textures/coral3.png differ diff --git a/mods/fishing/textures/coral4.png b/mods/fishing/textures/coral4.png new file mode 100755 index 00000000..4fb343c4 Binary files /dev/null and b/mods/fishing/textures/coral4.png differ diff --git a/mods/fishing/textures/fish_cooked.png b/mods/fishing/textures/fish_cooked.png new file mode 100755 index 00000000..2a330ea0 Binary files /dev/null and b/mods/fishing/textures/fish_cooked.png differ diff --git a/mods/fishing/textures/fish_raw.png b/mods/fishing/textures/fish_raw.png new file mode 100755 index 00000000..9842b585 Binary files /dev/null and b/mods/fishing/textures/fish_raw.png differ diff --git a/mods/fishing/textures/fishing_rod.png b/mods/fishing/textures/fishing_rod.png new file mode 100755 index 00000000..371561d5 Binary files /dev/null and b/mods/fishing/textures/fishing_rod.png differ diff --git a/mods/fishing/textures/fishing_rod_baited.png b/mods/fishing/textures/fishing_rod_baited.png new file mode 100755 index 00000000..22989f3a Binary files /dev/null and b/mods/fishing/textures/fishing_rod_baited.png differ diff --git a/mods/fishing/textures/fishing_rod_wield.png b/mods/fishing/textures/fishing_rod_wield.png new file mode 100755 index 00000000..5a10cf52 Binary files /dev/null and b/mods/fishing/textures/fishing_rod_wield.png differ diff --git a/mods/fishing/textures/sashimi.png b/mods/fishing/textures/sashimi.png new file mode 100755 index 00000000..5263e7b2 Binary files /dev/null and b/mods/fishing/textures/sashimi.png differ diff --git a/mods/fishing/textures/seaweed.png b/mods/fishing/textures/seaweed.png new file mode 100755 index 00000000..a3e58bf1 Binary files /dev/null and b/mods/fishing/textures/seaweed.png differ diff --git a/mods/fishing/textures/worm.png b/mods/fishing/textures/worm.png new file mode 100755 index 00000000..ceb5fece Binary files /dev/null and b/mods/fishing/textures/worm.png differ diff --git a/mods/food/.gitignore b/mods/food/.gitignore new file mode 100755 index 00000000..a89a5c65 --- /dev/null +++ b/mods/food/.gitignore @@ -0,0 +1 @@ +*~* diff --git a/mods/food/README.md b/mods/food/README.md new file mode 100755 index 00000000..c5dcd0ca --- /dev/null +++ b/mods/food/README.md @@ -0,0 +1,42 @@ +The Food Mod +============ + +This is the main mod in the food mod collection. + +Version 2.3 + +The Aims +-------- + +All content should follow these aims: +* Basis for expansion - supplies a framework of ingredients for other mods to build upon +* Mod support without dependancies - this allows flexibility for the user +* Minetest-game worthy - (Minimalism) This mod only contains traditional foods - such as cakes, soups and bread. + +Documentation +------------- + +Recipe guide: https://www.dropbox.com/s/tsvjmobv9n3isu0/food_crafting.pdf?dl=1 + +Expansion Packs +--------------- + +There are expansion mods available. Just install them in a mod folder, and everything should be fine. + +* Sweet Foods - https://github.com/rubenwardy/food_sweet +* Modern food (Needs updating) - burgers, soft drinks, pop corn, coffee, etc + +Licensing +--------- + +Created by rubenwardy +License for code: GPL 3.0 or later. +License for textures: CC-BY-SA + +Exceptions: + +* Baked potato texture by Doc, WTFPL +* Dough, flour and wheat textures from default farming mod, WTFPL +* Egg and milk textures from Mobf, CC BY SA + +Have I missed out credit? Please tell me. diff --git a/mods/food/api.lua b/mods/food/api.lua new file mode 100755 index 00000000..19d019f6 --- /dev/null +++ b/mods/food/api.lua @@ -0,0 +1,155 @@ +-- FOOD MOD +-- A mod written by rubenwardy that adds +-- food to the minetest game +-- ===================================== +-- >> food/api.lua +-- The supporting api for the mod +-- ===================================== + +-- Boilerplate to support localized strings if intllib mod is installed. +S = 0 +if (intllib) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) +else + S = function ( s ) return s end +end + +food = { + modules = {}, + disabled_modules = {}, + debug = false, + version = 2.3 +} + +-- Checks for external content, and adds support +function food.support(group, item) + if type(group) == "table" then + for i = 1, #group do + food.support(group[i], item) + end + return + end + if type(item) == "table" then + for i = 1, #item do + food.support(group, item[i]) + end + return + end + + local idx = string.find(item, ":") + if idx <= 1 then + error("[Food Error] food.support - error in item name ('" .. item .. "')") + end + mod = string.sub(item, 1, idx - 1) + + if not minetest.get_modpath(mod) then + if food.debug then + print("[Food Debug] Mod '"..mod.."' is not installed") + end + return + end + + local data = minetest.registered_items[item] + if not data then + print("[Food Warning] Item '"..item.."' not found") + return + end + + + food.disable(group) + + -- Add group + g = {} + if data.groups then + for k, v in pairs(data.groups) do + g[k] = v + end + end + g["food_"..group] = 1 + minetest.override_item(item, {groups = g}) +end + +function food.disable(name) + if type(name) == "table" then + for i = 1, #name do + food.disable(name[i]) + end + return + end + food.disabled_modules[name] = true +end + +function food.disable_if(mod, name) + if minetest.get_modpath(mod) then + food.disable(name) + end +end + +-- Adds a module +function food.module(name, func, ingred) + if food.disabled_modules[name] then + return + end + if ingred then + for name, def in pairs(minetest.registered_items) do + local g = def.groups and def.groups["food_"..name] or 0 + if g > 0 then + print("cancelled") + return + end + end + + if food.debug then + print("[Food Debug] Registering " .. name .. " fallback definition") + end + elseif food.debug then + print("[Food Debug] Module " .. name) + end + func() +end + +-- Checks for hunger mods to register food on +function food.item_eat(amt) + if minetest.get_modpath("diet") then + return diet.item_eat(amt) + elseif minetest.get_modpath("hud") then + return hud.item_eat(amt) + else + return minetest.item_eat(amt) + end +end + +-- Registers craft item or node depending on settings +function food.register(name, data, mod) + if (minetest.setting_getbool("food_use_2d") or (mod ~= nil and minetest.setting_getbool("food_"..mod.."_use_2d"))) then + minetest.register_craftitem(name,{ + description = data.description, + inventory_image = data.inventory_image, + groups = data.groups, + on_use = data.on_use + }) + else + local newdata = { + description = data.description, + tiles = data.tiles, + groups = data.groups, + on_use = data.on_use, + walkable = false, + sunlight_propagates = true, + drawtype = "nodebox", + paramtype = "light", + node_box = data.node_box + } + if (minetest.setting_getbool("food_2d_inv_image")) then + newdata.inventory_image = data.inventory_image + end + minetest.register_node(name,newdata) + end +end + +-- Allows for overriding in the future +function food.craft(craft) + minetest.register_craft(craft) +end + diff --git a/mods/food/depends.txt b/mods/food/depends.txt new file mode 100755 index 00000000..f3f515da --- /dev/null +++ b/mods/food/depends.txt @@ -0,0 +1,17 @@ +animalmaterials? +bushes_classic? +default? +docfarming? +diet? +farming? +farming_plus? +hud? +intllib? +jkanimals? +jkfarming? +my_mobs? +mobs? +mobfcooking? +plantlib? +veggies? +vessels? diff --git a/mods/food/description.txt b/mods/food/description.txt new file mode 100755 index 00000000..eb392e01 --- /dev/null +++ b/mods/food/description.txt @@ -0,0 +1 @@ +The largest supporting food mod for Minetest. Adds soups, cakes, bakes and juices. diff --git a/mods/food/ingredients.lua b/mods/food/ingredients.lua new file mode 100755 index 00000000..503aa78a --- /dev/null +++ b/mods/food/ingredients.lua @@ -0,0 +1,269 @@ +-- FOOD MOD +-- A mod written by rubenwardy that adds +-- food to the minetest game +-- ===================================== +-- >> food/ingredients.lua +-- Fallback ingredients +-- ===================================== + +food.module("wheat", function() + minetest.register_craftitem("food:wheat", { + description = S("Wheat"), + inventory_image = "food_wheat.png", + groups = {food_wheat=1} + }) + + food.craft({ + output = "food:wheat", + recipe = { + {"default:dry_shrub"}, + } + }) +end, true) + +food.module("flour", function() + minetest.register_craftitem("food:flour", { + description = S("Flour"), + inventory_image = "food_flour.png", + groups = {food_flour = 1} + }) + food.craft({ + output = "food:flour", + recipe = { + {"group:food_wheat"}, + {"group:food_wheat"} + } + }) + food.craft({ + output = "food:flour", + recipe = { + {"default:sand"}, + {"default:sand"} + } + }) +end, true) + +food.module("potato", function() + minetest.register_craftitem("food:potato", { + description = S("Potato"), + inventory_image = "food_potato.png", + groups = {food_potato = 1} + }) + food.craft({ + output = "food:potato", + recipe = { + {"default:dirt"}, + {"default:apple"} + + } + }) +end, true) + +food.module("tomato", function() + minetest.register_craftitem("food:tomato", { + description = S("Tomato"), + inventory_image = "food_tomato.png", + groups = {food_tomato = 1} + }) + food.craft({ + output = "food:tomato", + recipe = { + {"", "default:desert_sand", ""}, + {"default:desert_sand", "", "default:desert_sand"}, + {"", "default:desert_sand", ""} + } + }) +end, true) + +food.module("carrot", function() + minetest.register_craftitem("food:carrot", { + description = S("Carrot"), + inventory_image = "food_carrot.png", + groups = {food_carrot=1}, + on_use = food.item_eat(3) + }) + food.craft({ + output = "food:carrot", + recipe = { + {"default:apple", "default:apple", "default:apple"}, + } + }) +end, true) + +food.module("milk", function() + minetest.register_craftitem("food:milk", { + description = S("Milk"), + image = "food_milk.png", + on_use = food.item_eat(1), + groups = { eatable=1, food_milk = 1 }, + stack_max=10 + }) + food.craft({ + output = "food:milk", + recipe = { + {"default:sand"}, + {"bucket:bucket_water"} + }, + replacements = {{"bucket:bucket_water", "bucket:bucket_empty"}}, + }) +end, true) + +food.module("egg", function() + minetest.register_craftitem("food:egg", { + description = S("Egg"), + inventory_image = "food_egg.png", + groups = {food_egg=1} + }) + food.craft({ + output = "food:egg", + recipe = { + {"", "default:sand", ""}, + {"default:sand", "", "default:sand"}, + {"", "default:sand", ""} + } + }) +end, true) + +food.module("cocoa", function() + minetest.register_craftitem("food:cocoa", { + description = S("Cocoa Bean"), + inventory_image = "food_cocoa.png", + groups = {food_cocoa=1} + }) + food.craft({ + output = "food:cocoa", + recipe = { + {"", "default:apple", ""}, + {"default:apple", "", "default:apple"}, + {"", "default:apple", ""} + } + }) +end, true) + +food.module("meat", function() + minetest.register_craftitem("food:meat", { + description = S("Venison"), + inventory_image = "food_meat.png", + groups = {food_meat=1, food_chicken=1} + }) + food.craft({ + type = "cooking", + output = "food:meat", + recipe = "group:food_meat_raw", + cooktime = 30 + }) + + if not minetest.get_modpath("animalmaterials") then + minetest.register_craftitem("food:meat_raw", { + description = S("Raw meat"), + image = "food_meat_raw.png", + on_use = food.item_eat(1), + groups = { meat=1, eatable=1, food_meat_raw=1 }, + stack_max=25 + }) + food.craft({ + output = "food:meat_raw", + recipe = { + {"default:apple"}, + {"default:dirt"} + } + }) + end +end, true) + +food.module("sugar", function() + minetest.register_craftitem("food:sugar", { + description = S("Sugar"), + inventory_image = "food_sugar.png", + groups = {food_sugar=1} + }) + + minetest.register_craft({ + output = "food:sugar 20", + recipe = { + {"default:papyrus"}, + } + }) +end, true) + +food.module("chocolate_powder", function() + minetest.register_craftitem("food:chocolate_powder", { + description = S("Chocolate Powder"), + inventory_image = "food_chocolate_powder.png", + groups = {food_choco_powder = 1} + }) + food.craft({ + output = "food:chocolate_powder 16", + recipe = { + {"group:food_cocoa","group:food_cocoa","group:food_cocoa"}, + {"group:food_cocoa","group:food_cocoa","group:food_cocoa"}, + {"group:food_cocoa","group:food_cocoa","group:food_cocoa"} + } + }) +end, true) + +food.module("pasta", function() + minetest.register_craftitem("food:pasta",{ + description = S("Pasta"), + inventory_image = "food_pasta.png", + groups = {food_pasta=1} + }) + food.craft({ + output = "food:pasta 4", + type = "shapeless", + recipe = {"group:food_flour","group:food_egg","group:food_egg"} + }) +end, true) + +food.module("bowl", function() + minetest.register_craftitem("food:bowl",{ + description = S("Bowl"), + inventory_image = "food_bowl.png", + groups = {food_bowl=1} + }) + food.craft({ + output = "food:bowl", + recipe = { + {"default:clay_lump","","default:clay_lump"}, + {"","default:clay_lump",""} + } + }) +end, true) + +food.module("butter", function() + minetest.register_craftitem("food:butter", { + description = S("Butter"), + inventory_image = "food_butter.png", + groups = {food_butter=1} + }) + food.craft({ + output = "food:butter", + recipe = { + {"group:food_milk","group:food_milk"}, + } + }) +end, true) + +food.module("cheese", function() + minetest.register_craftitem("food:cheese", { + description = S("Cheese"), + inventory_image = "food_cheese.png", + on_use = food.item_eat(4), + groups = {food_cheese=1} + }) + food.craft({ + output = "food:cheese", + recipe = { + {"group:food_butter","group:food_butter"}, + } + }) +end, true) + +if (minetest.get_modpath("animalmaterials") and not minetest.get_modpath("mobfcooking")) then + food.craft({ + type = "cooking", + output = "food:meat", + recipe = "animalmaterials:meat_raw", + cooktime = 30 + }) +end diff --git a/mods/food/init.lua b/mods/food/init.lua new file mode 100755 index 00000000..0bbf4368 --- /dev/null +++ b/mods/food/init.lua @@ -0,0 +1,288 @@ +-- FOOD MOD +-- A mod written by rubenwardy that adds +-- food to the minetest game +-- ===================================== +-- >> food/init.lua +-- Some basic foods +-- ===================================== + +print("Food Mod - Version 2.3") + +dofile(minetest.get_modpath("food").."/api.lua") +dofile(minetest.get_modpath("food").."/support.lua") +dofile(minetest.get_modpath("food").."/ingredients.lua") + + + +-- Register dark chocolate +food.module("dark_chocolate", function() + minetest.register_craftitem("food:dark_chocolate",{ + description = S("Dark Chocolate"), + inventory_image = "food_dark_chocolate.png", + on_use = food.item_eat(3), + groups = {food_dark_chocolate=1} + }) + food.craft({ + output = "food:dark_chocolate", + recipe = { + {"group:food_cocoa","group:food_cocoa","group:food_cocoa"} + } + }) +end) + +-- Register milk chocolate +food.module("milk_chocolate", function() + minetest.register_craftitem("food:milk_chocolate",{ + description = S("Milk Chocolate"), + inventory_image = "food_milk_chocolate.png", + on_use = food.item_eat(3), + groups = {food_milk_chocolate=1} + }) + food.craft({ + output = "food:milk_chocolate", + recipe = { + {"","group:food_milk",""}, + {"group:food_cocoa","group:food_cocoa","group:food_cocoa"} + } + }) +end) + +-- Register baked potato +food.module("baked_potato", function() + minetest.register_craftitem("food:baked_potato", { + description = S("Baked Potato"), + inventory_image = "food_baked_potato.png", + on_use = food.item_eat(6), + }) + food.craft({ + type = "cooking", + output = "food:baked_potato", + recipe = "group:food_potato", + }) +end) + +-- Register pasta bake +food.module("pasta_bake", function() + minetest.register_craftitem("food:pasta_bake",{ + description = S("Pasta Bake"), + inventory_image = "food_pasta_bake.png", + on_use = food.item_eat(4), + groups = {food=3} + }) + minetest.register_craftitem("food:pasta_bake_raw",{ + description = S("Raw Pasta Bake"), + inventory_image = "food_pasta_bake_raw.png", + }) + food.craft({ + output = "food:pasta_bake", + type = "cooking", + recipe = "food:pasta_bake_raw" + }) + food.craft({ + output = "food:pasta_bake_raw", + recipe = { + {"group:food_cheese"}, + {"group:food_pasta"}, + {"group:food_bowl"} + } + }) +end) + +-- Register Soups +local soups = { + {"tomato", "tomato"}, + {"chicken", "meat"} +} +for i=1, #soups do + local flav = soups[i] + food.module("soup_"..flav[1], function() + minetest.register_craftitem("food:soup_"..flav[1],{ + description = S(flav[1].." Soup"), + inventory_image = "food_soup_"..flav[1]..".png", + on_use = food.item_eat(4), + groups = {food=3} + }) + minetest.register_craftitem("food:soup_"..flav[1].."_raw",{ + description = S("Uncooked ".. flav[1].." Soup"), + inventory_image = "food_soup_"..flav[1].."_raw.png", + + }) + food.craft({ + type = "cooking", + output = "food:soup_"..flav[1], + recipe = "food:soup_"..flav[1].."_raw", + }) + food.craft({ + output = "food:soup_"..flav[1].."_raw", + recipe = { + {"", "", ""}, + {"bucket:bucket_water", "group:food_"..flav[2], "bucket:bucket_water"}, + {"", "group:food_bowl", ""}, + }, + replacements = {{"bucket:bucket_water", "bucket:bucket_empty"},{"bucket:bucket_water", "bucket:bucket_empty"}} + }) + end) +end + +-- Juices +local juices = {"apple","cactus"} +for i=1, #juices do + local flav = juices[i] + food.module(flav.."_juice", function() + minetest.register_craftitem("food:"..flav.."_juice", { + description = S(flav.." Juice"), + inventory_image = "food_"..flav.."_juice.png", + on_use = food.item_eat(2), + }) + food.craft({ + output = "food:"..flav.."_juice 4", + recipe = { + {"","",""}, + {"","default:"..flav,""}, + {"","group:food_cup",""}, + } + }) + end) +end + +food.module("rainbow_juice", function() + minetest.register_craftitem("food:rainbow_juice", { + description = S("Rainbow Juice"), + inventory_image = "food_rainbow_juice.png", + on_use = food.item_eat(20), + }) + + food.craft({ + output = "food:rainbow_juice 99", + recipe = { + {"","",""}, + {"","default:nyancat_rainbow",""}, + {"","group:food_cup",""}, + } + }) +end) + +food.cake_box = { + type = "fixed", + fixed = { + {-0.250000,-0.500000,-0.296880,0.250000,-0.250000,0.312502}, + {-0.309375,-0.500000,-0.250000,0.309375,-0.250000,0.250000}, + {-0.250000,-0.250000,-0.250000,0.250000,-0.200000,0.250000} + } +} + +-- Register cakes +food.module("cake", function() + minetest.register_node("food:cake", { + description = S("Cake"), + on_use = food.item_eat(4), + groups={food=3,crumbly=3}, + tiles = { + "food_cake_texture.png", + "food_cake_texture.png", + "food_cake_texture_side.png", + "food_cake_texture_side.png", + "food_cake_texture_side.png", + "food_cake_texture_side.png" + }, + walkable = false, + sunlight_propagates = true, + drawtype="nodebox", + paramtype = "light", + node_box = food.cake_box + }) + food.craft({ + type = "cooking", + output = "food:cake", + recipe = "food:cakemix_plain", + cooktime = 10, + }) + minetest.register_craftitem("food:cakemix_plain",{ + description = S("Cake Mix"), + inventory_image = "food_cakemix_plain.png", + }) + minetest.register_craft({ + output = "food:cakemix_plain", + recipe = { + {"group:food_flour","group:food_sugar","group:food_egg"}, + } + }) +end) + + +food.module("cake_choco", function() + minetest.register_node("food:cake_choco", { + description = S("Chocolate Cake"), + on_use = food.item_eat(4), + groups={food=3,crumbly=3}, + tiles = { + "food_cake_choco_texture.png", + "food_cake_choco_texture.png", + "food_cake_choco_texture_side.png", + "food_cake_choco_texture_side.png", + "food_cake_choco_texture_side.png", + "food_cake_choco_texture_side.png" + }, + walkable = false, + sunlight_propagates = true, + drawtype="nodebox", + paramtype = "light", + node_box = food.cake_box + }) + food.craft({ + type = "cooking", + output = "food:cake_choco", + recipe = "food:cakemix_choco", + cooktime = 10, + }) + minetest.register_craftitem("food:cakemix_choco",{ + description = S("Chocolate Cake Mix"), + inventory_image = "food_cakemix_choco.png", + }) + food.craft({ + output = "food:cakemix_choco", + recipe = { + {"","group:food_choco_powder",""}, + {"group:food_flour","group:food_sugar","group:food_egg"}, + } + }) +end) + +food.module("cake_carrot", function() + minetest.register_node("food:cake_carrot", { + description = S("Carrot Cake"), + on_use = food.item_eat(4), + groups={food=3,crumbly=3}, + walkable = false, + sunlight_propagates = true, + tiles = { + "food_cake_carrot_texture.png", + "food_cake_carrot_texture.png", + "food_cake_carrot_texture_side.png", + "food_cake_carrot_texture_side.png", + "food_cake_carrot_texture_side.png", + "food_cake_carrot_texture_side.png" + }, + drawtype="nodebox", + paramtype = "light", + node_box = food.cake_box + }) + food.craft({ + type = "cooking", + output = "food:cake_carrot", + recipe = "food:cakemix_carrot", + cooktime = 10, + }) + minetest.register_craftitem("food:cakemix_carrot",{ + description = S("Carrot Cake Mix"), + inventory_image = "food_cakemix_carrot.png", + }) + food.craft({ + output = "food:cakemix_carrot", + recipe = { + {"","group:food_carrot",""}, + {"group:food_flour","group:food_sugar","group:food_egg"}, + } + }) +end) + diff --git a/mods/food/locale/de.txt b/mods/food/locale/de.txt new file mode 100755 index 00000000..35e21873 --- /dev/null +++ b/mods/food/locale/de.txt @@ -0,0 +1,36 @@ +# Translation by Xanthin and hawkril + +Wheat = Weizen +Flour = Mehl +Potato = Kartoffel +Tomato = Tomate +Carrot = Karotte +Milk = Milch +Egg = Ei +Cocoa Bean = Kakaobohne +Raw meat = rohes Fleisch +Venison = Wildbret +Sugar = Zucker +Chocolate Powder = Schokoladenpulver +Dark Chocolate = Dunkle Schokolade +Milk Chocolate = Vollmilchschokolade +Pasta = Nudeln +Bowl = Schuessel +Butter = Butter +Cheese = Kaese +Baked Potato = Ofenkartoffel +Pasta Bake = Nudelauflauf +Raw Pasta Bake = Ungekochter Nudelauflauf +chicken Soup = Huehnersuppe +tomato Soup = Tomatensuppe +Uncooked tomato Soup = Ungekochte Tomatensuppe +Uncooked chicken Soup = Ungekochte Huehnersuppe +apple Juice = Apfelsaft +cactus Juice = Kaktussaft +Rainbow Juice = Regenbogensaft +Cake = Kuchen +Chocolate Cake = Schokoladenkuchen +Carrot Cake = Karottenkuchen +Cake Mix = Backmischung +Chocolate Cake Mix = Backmischung fuer Schokoladenkuchen +Carrot Cake Mix = Backmischung fuer Karottenkuchen diff --git a/mods/food/locale/template.txt b/mods/food/locale/template.txt new file mode 100755 index 00000000..7c54b135 --- /dev/null +++ b/mods/food/locale/template.txt @@ -0,0 +1,38 @@ +# template + +Wheat = +Flour = +Potato = +Tomato = +Carrot = +Milk = +Egg = +Cocoa Bean = +Raw meat = +Venison = +Sugar = +Chocolate Powder = +Dark Chocolate = +Milk Chocolate = +Pasta = +Bowl = +Butter = +Cheese = +Baked Potato = +Pasta Bake = +Raw Pasta Bake = +chicken Soup = +tomato Soup = +Uncooked tomato Soup = +Uncooked chicken Soup = +apple Juice = +cactus Juice = +Rainbow Juice = +Cake = +Chocolate Cake = +Carrot Cake = +Cheese cake = +Cake Mix = +Chocolate Cake Mix = +Carrot Cake Mix = +Cheese Cake Mix = diff --git a/mods/food/support.lua b/mods/food/support.lua new file mode 100755 index 00000000..d4470e86 --- /dev/null +++ b/mods/food/support.lua @@ -0,0 +1,71 @@ +-- FOOD MOD +-- A mod written by rubenwardy that adds +-- food to the minetest game +-- ===================================== +-- >> food/support.lua +-- Support external mods +-- ===================================== + +-- The following ingredient list is licensed under WTFPL +-- You may use the list in your mod. I am doing this to +-- make it easier for mods to support lots of others - +-- good for the end user + +-- Add support for other mods +food.support("cocoa", "farming_plus:cocoa_bean") +food.support("cup", "vessels:drinking_glass") +food.support("potato", { + "docfarming:potato", + "veggies:potato", + "farming_plus:potato_item" +}) +food.support("tomato", { + "farming_plus:tomato_item", + "plantlib:tomato" +}) +food.support("carrot", { + "farming_plus:carrot_item", + "docfarming:carrot", + "plantlib:carrot", + "jkfarming:carrot" +}) +food.support("milk", { + "animalmaterials:milk", + "my_mobs:milk_glass_cup", + "jkanimals:bucket_milk" +}) +food.support("egg", { + "animalmaterials:egg", + "animalmaterials:egg_big", + "jkanimals:egg" +}) +food.support("meat", { + "mobs:meat", + "jkanimals:meat", + "mobfcooking:cooked_pork", + "mobfcooking:cooked_beef", + "mobfcooking:cooked_chicken", + "mobfcooking:cooked_lamb", + "mobfcooking:cooked_venison" +}) +food.support("sugar", { + "jkfarming:sugar", + "bushes:sugar" +}) + +if farming and farming.mod == "redo" then + food.support("wheat", "farming:wheat") + food.support("flour", "farming:flour") + food.support("carrot", "farming:carrot") + food.support("potato", "farming:potato") + food.support("tomato", "farming:tomato") + food.support("cocoa", "farming:cocoa_beans") + food.support("dark_chocolate", "farming:chocolate_dark") + food.support("sugar", "farming:sugar") + food.support("cup", "farming:drinking_cup") + food.disable_if("farming", "baked_potato") +else + food.support("wheat", "farming:wheat") + food.support("flour", "farming:flour") +end + diff --git a/mods/food/textures/food_apple_juice.png b/mods/food/textures/food_apple_juice.png new file mode 100755 index 00000000..fc2b8efc Binary files /dev/null and b/mods/food/textures/food_apple_juice.png differ diff --git a/mods/food/textures/food_baked_potato.png b/mods/food/textures/food_baked_potato.png new file mode 100755 index 00000000..425c4ae3 Binary files /dev/null and b/mods/food/textures/food_baked_potato.png differ diff --git a/mods/food/textures/food_baking_bread_slice.png b/mods/food/textures/food_baking_bread_slice.png new file mode 100755 index 00000000..174c900a Binary files /dev/null and b/mods/food/textures/food_baking_bread_slice.png differ diff --git a/mods/food/textures/food_baking_bun_mix.png b/mods/food/textures/food_baking_bun_mix.png new file mode 100755 index 00000000..ac2e7f46 Binary files /dev/null and b/mods/food/textures/food_baking_bun_mix.png differ diff --git a/mods/food/textures/food_baking_dough.png b/mods/food/textures/food_baking_dough.png new file mode 100755 index 00000000..5c4b1975 Binary files /dev/null and b/mods/food/textures/food_baking_dough.png differ diff --git a/mods/food/textures/food_bowl.png b/mods/food/textures/food_bowl.png new file mode 100755 index 00000000..b1d2b092 Binary files /dev/null and b/mods/food/textures/food_bowl.png differ diff --git a/mods/food/textures/food_butter.png b/mods/food/textures/food_butter.png new file mode 100755 index 00000000..cb6f0541 Binary files /dev/null and b/mods/food/textures/food_butter.png differ diff --git a/mods/food/textures/food_cactus_juice.png b/mods/food/textures/food_cactus_juice.png new file mode 100755 index 00000000..6180eed6 Binary files /dev/null and b/mods/food/textures/food_cactus_juice.png differ diff --git a/mods/food/textures/food_cake_carrot_texture.png b/mods/food/textures/food_cake_carrot_texture.png new file mode 100755 index 00000000..1acfccd4 Binary files /dev/null and b/mods/food/textures/food_cake_carrot_texture.png differ diff --git a/mods/food/textures/food_cake_carrot_texture_side.png b/mods/food/textures/food_cake_carrot_texture_side.png new file mode 100755 index 00000000..ef961d09 Binary files /dev/null and b/mods/food/textures/food_cake_carrot_texture_side.png differ diff --git a/mods/food/textures/food_cake_choco_texture.png b/mods/food/textures/food_cake_choco_texture.png new file mode 100755 index 00000000..20ae8b58 Binary files /dev/null and b/mods/food/textures/food_cake_choco_texture.png differ diff --git a/mods/food/textures/food_cake_choco_texture_side.png b/mods/food/textures/food_cake_choco_texture_side.png new file mode 100755 index 00000000..4f7a8b4d Binary files /dev/null and b/mods/food/textures/food_cake_choco_texture_side.png differ diff --git a/mods/food/textures/food_cake_texture.png b/mods/food/textures/food_cake_texture.png new file mode 100755 index 00000000..f4e9b272 Binary files /dev/null and b/mods/food/textures/food_cake_texture.png differ diff --git a/mods/food/textures/food_cake_texture_side.png b/mods/food/textures/food_cake_texture_side.png new file mode 100755 index 00000000..314ed393 Binary files /dev/null and b/mods/food/textures/food_cake_texture_side.png differ diff --git a/mods/food/textures/food_cakemix_carrot.png b/mods/food/textures/food_cakemix_carrot.png new file mode 100755 index 00000000..30dd0020 Binary files /dev/null and b/mods/food/textures/food_cakemix_carrot.png differ diff --git a/mods/food/textures/food_cakemix_choco.png b/mods/food/textures/food_cakemix_choco.png new file mode 100755 index 00000000..cd881691 Binary files /dev/null and b/mods/food/textures/food_cakemix_choco.png differ diff --git a/mods/food/textures/food_cakemix_plain.png b/mods/food/textures/food_cakemix_plain.png new file mode 100755 index 00000000..7b9f392e Binary files /dev/null and b/mods/food/textures/food_cakemix_plain.png differ diff --git a/mods/food/textures/food_carrot.png b/mods/food/textures/food_carrot.png new file mode 100755 index 00000000..5ed61ac9 Binary files /dev/null and b/mods/food/textures/food_carrot.png differ diff --git a/mods/food/textures/food_cheese.png b/mods/food/textures/food_cheese.png new file mode 100755 index 00000000..eec185c9 Binary files /dev/null and b/mods/food/textures/food_cheese.png differ diff --git a/mods/food/textures/food_chocolate_powder.png b/mods/food/textures/food_chocolate_powder.png new file mode 100755 index 00000000..49840ed1 Binary files /dev/null and b/mods/food/textures/food_chocolate_powder.png differ diff --git a/mods/food/textures/food_cocoa.png b/mods/food/textures/food_cocoa.png new file mode 100755 index 00000000..4ad6b35a Binary files /dev/null and b/mods/food/textures/food_cocoa.png differ diff --git a/mods/food/textures/food_dark_chocolate.png b/mods/food/textures/food_dark_chocolate.png new file mode 100755 index 00000000..3e1df7b1 Binary files /dev/null and b/mods/food/textures/food_dark_chocolate.png differ diff --git a/mods/food/textures/food_egg.png b/mods/food/textures/food_egg.png new file mode 100755 index 00000000..50010de8 Binary files /dev/null and b/mods/food/textures/food_egg.png differ diff --git a/mods/food/textures/food_flour.png b/mods/food/textures/food_flour.png new file mode 100755 index 00000000..a526b202 Binary files /dev/null and b/mods/food/textures/food_flour.png differ diff --git a/mods/food/textures/food_meat.png b/mods/food/textures/food_meat.png new file mode 100755 index 00000000..d4e4abb2 Binary files /dev/null and b/mods/food/textures/food_meat.png differ diff --git a/mods/food/textures/food_meat_raw.png b/mods/food/textures/food_meat_raw.png new file mode 100755 index 00000000..0dea4ec5 Binary files /dev/null and b/mods/food/textures/food_meat_raw.png differ diff --git a/mods/food/textures/food_milk.png b/mods/food/textures/food_milk.png new file mode 100755 index 00000000..e5352645 Binary files /dev/null and b/mods/food/textures/food_milk.png differ diff --git a/mods/food/textures/food_milk_chocolate.png b/mods/food/textures/food_milk_chocolate.png new file mode 100755 index 00000000..bbfa37ea Binary files /dev/null and b/mods/food/textures/food_milk_chocolate.png differ diff --git a/mods/food/textures/food_pasta.png b/mods/food/textures/food_pasta.png new file mode 100755 index 00000000..9fa194b9 Binary files /dev/null and b/mods/food/textures/food_pasta.png differ diff --git a/mods/food/textures/food_pasta_bake.png b/mods/food/textures/food_pasta_bake.png new file mode 100755 index 00000000..81221a62 Binary files /dev/null and b/mods/food/textures/food_pasta_bake.png differ diff --git a/mods/food/textures/food_pasta_bake_raw.png b/mods/food/textures/food_pasta_bake_raw.png new file mode 100755 index 00000000..2a6294a0 Binary files /dev/null and b/mods/food/textures/food_pasta_bake_raw.png differ diff --git a/mods/food/textures/food_potato.png b/mods/food/textures/food_potato.png new file mode 100755 index 00000000..6e91d6ae Binary files /dev/null and b/mods/food/textures/food_potato.png differ diff --git a/mods/food/textures/food_rainbow_juice.png b/mods/food/textures/food_rainbow_juice.png new file mode 100755 index 00000000..7eb97cf0 Binary files /dev/null and b/mods/food/textures/food_rainbow_juice.png differ diff --git a/mods/food/textures/food_soup_chicken.png b/mods/food/textures/food_soup_chicken.png new file mode 100755 index 00000000..db9f10df Binary files /dev/null and b/mods/food/textures/food_soup_chicken.png differ diff --git a/mods/food/textures/food_soup_chicken_raw.png b/mods/food/textures/food_soup_chicken_raw.png new file mode 100755 index 00000000..0cf6b211 Binary files /dev/null and b/mods/food/textures/food_soup_chicken_raw.png differ diff --git a/mods/food/textures/food_soup_tomato.png b/mods/food/textures/food_soup_tomato.png new file mode 100755 index 00000000..5cc23be7 Binary files /dev/null and b/mods/food/textures/food_soup_tomato.png differ diff --git a/mods/food/textures/food_soup_tomato_raw.png b/mods/food/textures/food_soup_tomato_raw.png new file mode 100755 index 00000000..1eac22c8 Binary files /dev/null and b/mods/food/textures/food_soup_tomato_raw.png differ diff --git a/mods/food/textures/food_strawberry.png b/mods/food/textures/food_strawberry.png new file mode 100755 index 00000000..0a80f45d Binary files /dev/null and b/mods/food/textures/food_strawberry.png differ diff --git a/mods/food/textures/food_sugar.png b/mods/food/textures/food_sugar.png new file mode 100755 index 00000000..10ecf703 Binary files /dev/null and b/mods/food/textures/food_sugar.png differ diff --git a/mods/food/textures/food_tomato.png b/mods/food/textures/food_tomato.png new file mode 100755 index 00000000..c998b602 Binary files /dev/null and b/mods/food/textures/food_tomato.png differ diff --git a/mods/food/textures/food_wheat.png b/mods/food/textures/food_wheat.png new file mode 100755 index 00000000..8ecd7350 Binary files /dev/null and b/mods/food/textures/food_wheat.png differ diff --git a/mods/framedglass/.gitignore b/mods/framedglass/.gitignore new file mode 100755 index 00000000..5307fcbe --- /dev/null +++ b/mods/framedglass/.gitignore @@ -0,0 +1,4 @@ +*~ +.DS_Store +Thumbs.db + diff --git a/mods/framedglass/depends.txt b/mods/framedglass/depends.txt new file mode 100755 index 00000000..765575d7 --- /dev/null +++ b/mods/framedglass/depends.txt @@ -0,0 +1,2 @@ +default +dye? diff --git a/mods/framedglass/init.lua b/mods/framedglass/init.lua new file mode 100755 index 00000000..bf504950 --- /dev/null +++ b/mods/framedglass/init.lua @@ -0,0 +1,118 @@ +-- Minetest 0.4.7 mod: framedglass + +minetest.register_craft({ + output = 'framedglass:wooden_framed_glass 4', + recipe = { + {'default:glass', 'default:glass', 'default:stick'}, + {'default:glass', 'default:glass', 'default:stick'}, + {'default:stick', 'default:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'framedglass:steel_framed_glass 4', + recipe = { + {'default:glass', 'default:glass', 'default:steel_ingot'}, + {'default:glass', 'default:glass', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot', ''}, + } +}) + +minetest.register_craft({ + output = 'framedglass:wooden_framed_obsidian_glass 4', + recipe = { + {'default:obsidian_glass', 'default:obsidian_glass', 'default:stick'}, + {'default:obsidian_glass', 'default:obsidian_glass', 'default:stick'}, + {'default:stick', 'default:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'framedglass:steel_framed_obsidian_glass 4', + recipe = { + {'default:obsidian_glass', 'default:obsidian_glass', 'default:steel_ingot'}, + {'default:obsidian_glass', 'default:obsidian_glass', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot', ''}, + } +}) + +minetest.register_node("framedglass:wooden_framed_glass", { + description = "Wooden-framed Glass", + drawtype = "glasslike_framed", + tiles = {"framedglass_wooden_frame.png","framedglass_glass_face_streaks.png"}, + paramtype = "light", + sunlight_propagates = true, + groups = {cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("framedglass:steel_framed_glass", { + description = "Steel-framed Glass", + drawtype = "glasslike_framed", + tiles = {"framedglass_steel_frame.png","framedglass_glass_face_streaks.png"}, + paramtype = "light", + sunlight_propagates = true, + groups = {cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("framedglass:wooden_framed_obsidian_glass", { + description = "Wooden-framed Obsidian Glass", + drawtype = "glasslike_framed", + tiles = {"framedglass_wooden_frame.png","framedglass_glass_face_clean.png"}, + paramtype = "light", + sunlight_propagates = true, + groups = {cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("framedglass:steel_framed_obsidian_glass", { + description = "Steel-framed Obsidian Glass", + drawtype = "glasslike_framed", + tiles = {"framedglass_steel_frame.png","framedglass_glass_face_clean.png"}, + paramtype = "light", + sunlight_propagates = true, + groups = {cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults(), +}) + +function add_coloured_framedglass(name, desc, dye, texture) + minetest.register_node( "framedglass:steel_framed_obsidian_glass"..name, { + description = "Steel-framed "..desc.." Obsidian Glass", + tiles = {"framedglass_steel_frame.png",texture}, + drawtype = "glasslike_framed", + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + use_texture_alpha = true, + groups = {cracky=3}, + sounds = default.node_sound_glass_defaults(), + }) + + minetest.register_craft({ + type = "shapeless", + output = "framedglass:steel_framed_obsidian_glass"..name, + recipe = { + "framedglass:steel_framed_glass", + "group:basecolor_white", + dye + } + }) + +end + +add_coloured_framedglass ("red","Red","group:basecolor_red","framedglass_redglass.png") +add_coloured_framedglass ("green","Green","group:basecolor_green","framedglass_greenglass.png") +add_coloured_framedglass ("blue","Blue","group:basecolor_blue","framedglass_blueglass.png") +add_coloured_framedglass ("cyan","Cyan","group:basecolor_cyan","framedglass_cyanglass.png") +add_coloured_framedglass ("darkgreen","Dark Green","group:unicolor_dark_green","framedglass_darkgreenglass.png") +add_coloured_framedglass ("violet","Violet","group:excolor_violet","framedglass_violetglass.png") +add_coloured_framedglass ("pink","Pink","group:unicolor_light_red","framedglass_pinkglass.png") +add_coloured_framedglass ("yellow","Yellow","group:basecolor_yellow","framedglass_yellowglass.png") +add_coloured_framedglass ("orange","Orange","group:basecolor_orange","framedglass_orangeglass.png") +add_coloured_framedglass ("brown","Brown","group:unicolor_dark_orange","framedglass_brownglass.png") +add_coloured_framedglass ("white","White","group:basecolor_white","framedglass_whiteglass.png") +add_coloured_framedglass ("grey","Grey","group:basecolor_grey","framedglass_greyglass.png") +add_coloured_framedglass ("darkgrey","Dark Grey","group:excolor_darkgrey","framedglass_darkgreyglass.png") +add_coloured_framedglass ("black","Black","group:basecolor_black","framedglass_blackglass.png") + diff --git a/mods/framedglass/textures/framedglass_blackglass.png b/mods/framedglass/textures/framedglass_blackglass.png new file mode 100755 index 00000000..4e820278 Binary files /dev/null and b/mods/framedglass/textures/framedglass_blackglass.png differ diff --git a/mods/framedglass/textures/framedglass_blueglass.png b/mods/framedglass/textures/framedglass_blueglass.png new file mode 100755 index 00000000..2768017a Binary files /dev/null and b/mods/framedglass/textures/framedglass_blueglass.png differ diff --git a/mods/framedglass/textures/framedglass_brownglass.png b/mods/framedglass/textures/framedglass_brownglass.png new file mode 100755 index 00000000..b61bdbfa Binary files /dev/null and b/mods/framedglass/textures/framedglass_brownglass.png differ diff --git a/mods/framedglass/textures/framedglass_cyanglass.png b/mods/framedglass/textures/framedglass_cyanglass.png new file mode 100755 index 00000000..31edcc60 Binary files /dev/null and b/mods/framedglass/textures/framedglass_cyanglass.png differ diff --git a/mods/framedglass/textures/framedglass_darkgreenglass.png b/mods/framedglass/textures/framedglass_darkgreenglass.png new file mode 100755 index 00000000..c90a0279 Binary files /dev/null and b/mods/framedglass/textures/framedglass_darkgreenglass.png differ diff --git a/mods/framedglass/textures/framedglass_darkgreyglass.png b/mods/framedglass/textures/framedglass_darkgreyglass.png new file mode 100755 index 00000000..78c394b8 Binary files /dev/null and b/mods/framedglass/textures/framedglass_darkgreyglass.png differ diff --git a/mods/framedglass/textures/framedglass_glass_face_clean.png b/mods/framedglass/textures/framedglass_glass_face_clean.png new file mode 100755 index 00000000..385d6d27 Binary files /dev/null and b/mods/framedglass/textures/framedglass_glass_face_clean.png differ diff --git a/mods/framedglass/textures/framedglass_glass_face_streaks.png b/mods/framedglass/textures/framedglass_glass_face_streaks.png new file mode 100755 index 00000000..eb169d17 Binary files /dev/null and b/mods/framedglass/textures/framedglass_glass_face_streaks.png differ diff --git a/mods/framedglass/textures/framedglass_greenglass.png b/mods/framedglass/textures/framedglass_greenglass.png new file mode 100755 index 00000000..0886c74a Binary files /dev/null and b/mods/framedglass/textures/framedglass_greenglass.png differ diff --git a/mods/framedglass/textures/framedglass_greyglass.png b/mods/framedglass/textures/framedglass_greyglass.png new file mode 100755 index 00000000..bb1927d3 Binary files /dev/null and b/mods/framedglass/textures/framedglass_greyglass.png differ diff --git a/mods/framedglass/textures/framedglass_orangeglass.png b/mods/framedglass/textures/framedglass_orangeglass.png new file mode 100755 index 00000000..4ac3eb73 Binary files /dev/null and b/mods/framedglass/textures/framedglass_orangeglass.png differ diff --git a/mods/framedglass/textures/framedglass_pinkglass.png b/mods/framedglass/textures/framedglass_pinkglass.png new file mode 100755 index 00000000..68185c74 Binary files /dev/null and b/mods/framedglass/textures/framedglass_pinkglass.png differ diff --git a/mods/framedglass/textures/framedglass_redglass.png b/mods/framedglass/textures/framedglass_redglass.png new file mode 100755 index 00000000..1d209207 Binary files /dev/null and b/mods/framedglass/textures/framedglass_redglass.png differ diff --git a/mods/framedglass/textures/framedglass_steel_frame.png b/mods/framedglass/textures/framedglass_steel_frame.png new file mode 100755 index 00000000..383eab7b Binary files /dev/null and b/mods/framedglass/textures/framedglass_steel_frame.png differ diff --git a/mods/framedglass/textures/framedglass_violetglass.png b/mods/framedglass/textures/framedglass_violetglass.png new file mode 100755 index 00000000..aec8ce01 Binary files /dev/null and b/mods/framedglass/textures/framedglass_violetglass.png differ diff --git a/mods/framedglass/textures/framedglass_whiteglass.png b/mods/framedglass/textures/framedglass_whiteglass.png new file mode 100755 index 00000000..0f2a1707 Binary files /dev/null and b/mods/framedglass/textures/framedglass_whiteglass.png differ diff --git a/mods/framedglass/textures/framedglass_wooden_frame.png b/mods/framedglass/textures/framedglass_wooden_frame.png new file mode 100755 index 00000000..66f2b722 Binary files /dev/null and b/mods/framedglass/textures/framedglass_wooden_frame.png differ diff --git a/mods/framedglass/textures/framedglass_yellowglass.png b/mods/framedglass/textures/framedglass_yellowglass.png new file mode 100755 index 00000000..521198c7 Binary files /dev/null and b/mods/framedglass/textures/framedglass_yellowglass.png differ diff --git a/mods/framedglass/textures/stained_glass_lime.png b/mods/framedglass/textures/stained_glass_lime.png new file mode 100755 index 00000000..782edc99 Binary files /dev/null and b/mods/framedglass/textures/stained_glass_lime.png differ diff --git a/mods/framedglass/textures/stained_glass_magenta.png b/mods/framedglass/textures/stained_glass_magenta.png new file mode 100755 index 00000000..43e28b7f Binary files /dev/null and b/mods/framedglass/textures/stained_glass_magenta.png differ diff --git a/mods/gauges/init.lua b/mods/gauges/init.lua new file mode 100755 index 00000000..e7b344c8 --- /dev/null +++ b/mods/gauges/init.lua @@ -0,0 +1,46 @@ +-- Adds health bars above players. +-- Code by 4aiman, textures by Calinou. Licensed under CC0. + +local hp_bar = { + physical = false, + collisionbox = {x = 0, y = 0, z = 0}, + visual = "sprite", + textures = {"20.png"}, -- The texture is changed later in the code. + visual_size = {x = 1.5, y = 0.09375, z = 1.5}, -- Y value is (1 / 16) * 1.5. + wielder = nil, +} + +function hp_bar:on_step(dtime) + local wielder = self.wielder + if wielder == nil then + self.object:remove() + return + elseif minetest.env:get_player_by_name(wielder:get_player_name()) == nil then + self.object:remove() + return + end + hp = wielder:get_hp() + breath = wielder:get_breath() + self.object:set_properties({textures = {"health_" .. tostring(hp) .. ".png^breath_" .. tostring(breath) .. ".png"}}) +end + +minetest.register_entity("gauges:hp_bar", hp_bar) + +function add_HP_gauge(pl) + local pos = pl:getpos() + local ent = minetest.env:add_entity(pos, "gauges:hp_bar") + if ent ~= nil then + ent:set_attach(pl, "", {x = 0, y = 10, z = 0}, {x = 0, y = 0, z = 0}) + ent = ent:get_luaentity() + ent.wielder = pl + end +end + +if minetest.setting_getbool("health_bars") ~= false -- “If not defined or set to true then” +and minetest.setting_getbool("enable_damage") then -- Health bars only display when damage is enabled. + minetest.register_on_joinplayer(add_HP_gauge) +end + +if minetest.setting_getbool("log_mods") then + minetest.log("action", "Carbone: [gauges] loaded.") +end diff --git a/mods/gauges/textures/breath_0.png b/mods/gauges/textures/breath_0.png new file mode 100755 index 00000000..6aeb84e5 Binary files /dev/null and b/mods/gauges/textures/breath_0.png differ diff --git a/mods/gauges/textures/breath_1.png b/mods/gauges/textures/breath_1.png new file mode 100755 index 00000000..5182fc8a Binary files /dev/null and b/mods/gauges/textures/breath_1.png differ diff --git a/mods/gauges/textures/breath_10.png b/mods/gauges/textures/breath_10.png new file mode 100755 index 00000000..96fe81ad Binary files /dev/null and b/mods/gauges/textures/breath_10.png differ diff --git a/mods/gauges/textures/breath_11.png b/mods/gauges/textures/breath_11.png new file mode 100755 index 00000000..4b5b3029 Binary files /dev/null and b/mods/gauges/textures/breath_11.png differ diff --git a/mods/gauges/textures/breath_2.png b/mods/gauges/textures/breath_2.png new file mode 100755 index 00000000..9ad96a8c Binary files /dev/null and b/mods/gauges/textures/breath_2.png differ diff --git a/mods/gauges/textures/breath_3.png b/mods/gauges/textures/breath_3.png new file mode 100755 index 00000000..dc787dff Binary files /dev/null and b/mods/gauges/textures/breath_3.png differ diff --git a/mods/gauges/textures/breath_4.png b/mods/gauges/textures/breath_4.png new file mode 100755 index 00000000..f22fdac2 Binary files /dev/null and b/mods/gauges/textures/breath_4.png differ diff --git a/mods/gauges/textures/breath_5.png b/mods/gauges/textures/breath_5.png new file mode 100755 index 00000000..bc7e23f6 Binary files /dev/null and b/mods/gauges/textures/breath_5.png differ diff --git a/mods/gauges/textures/breath_6.png b/mods/gauges/textures/breath_6.png new file mode 100755 index 00000000..3396ea65 Binary files /dev/null and b/mods/gauges/textures/breath_6.png differ diff --git a/mods/gauges/textures/breath_65535.png b/mods/gauges/textures/breath_65535.png new file mode 100755 index 00000000..4b5b3029 Binary files /dev/null and b/mods/gauges/textures/breath_65535.png differ diff --git a/mods/gauges/textures/breath_7.png b/mods/gauges/textures/breath_7.png new file mode 100755 index 00000000..03dbd4ab Binary files /dev/null and b/mods/gauges/textures/breath_7.png differ diff --git a/mods/gauges/textures/breath_8.png b/mods/gauges/textures/breath_8.png new file mode 100755 index 00000000..6c4b40cd Binary files /dev/null and b/mods/gauges/textures/breath_8.png differ diff --git a/mods/gauges/textures/breath_9.png b/mods/gauges/textures/breath_9.png new file mode 100755 index 00000000..22edb2d4 Binary files /dev/null and b/mods/gauges/textures/breath_9.png differ diff --git a/mods/gauges/textures/health_0.png b/mods/gauges/textures/health_0.png new file mode 100755 index 00000000..4b5b3029 Binary files /dev/null and b/mods/gauges/textures/health_0.png differ diff --git a/mods/gauges/textures/health_1.png b/mods/gauges/textures/health_1.png new file mode 100755 index 00000000..7f5f05ed Binary files /dev/null and b/mods/gauges/textures/health_1.png differ diff --git a/mods/gauges/textures/health_10.png b/mods/gauges/textures/health_10.png new file mode 100755 index 00000000..8c493abd Binary files /dev/null and b/mods/gauges/textures/health_10.png differ diff --git a/mods/gauges/textures/health_11.png b/mods/gauges/textures/health_11.png new file mode 100755 index 00000000..47879eb9 Binary files /dev/null and b/mods/gauges/textures/health_11.png differ diff --git a/mods/gauges/textures/health_12.png b/mods/gauges/textures/health_12.png new file mode 100755 index 00000000..ef546774 Binary files /dev/null and b/mods/gauges/textures/health_12.png differ diff --git a/mods/gauges/textures/health_13.png b/mods/gauges/textures/health_13.png new file mode 100755 index 00000000..62222cc4 Binary files /dev/null and b/mods/gauges/textures/health_13.png differ diff --git a/mods/gauges/textures/health_14.png b/mods/gauges/textures/health_14.png new file mode 100755 index 00000000..86aa26be Binary files /dev/null and b/mods/gauges/textures/health_14.png differ diff --git a/mods/gauges/textures/health_15.png b/mods/gauges/textures/health_15.png new file mode 100755 index 00000000..532a9157 Binary files /dev/null and b/mods/gauges/textures/health_15.png differ diff --git a/mods/gauges/textures/health_16.png b/mods/gauges/textures/health_16.png new file mode 100755 index 00000000..9541e075 Binary files /dev/null and b/mods/gauges/textures/health_16.png differ diff --git a/mods/gauges/textures/health_17.png b/mods/gauges/textures/health_17.png new file mode 100755 index 00000000..11b43226 Binary files /dev/null and b/mods/gauges/textures/health_17.png differ diff --git a/mods/gauges/textures/health_18.png b/mods/gauges/textures/health_18.png new file mode 100755 index 00000000..aeff4d56 Binary files /dev/null and b/mods/gauges/textures/health_18.png differ diff --git a/mods/gauges/textures/health_19.png b/mods/gauges/textures/health_19.png new file mode 100755 index 00000000..fc95e7c2 Binary files /dev/null and b/mods/gauges/textures/health_19.png differ diff --git a/mods/gauges/textures/health_2.png b/mods/gauges/textures/health_2.png new file mode 100755 index 00000000..8faf1a0c Binary files /dev/null and b/mods/gauges/textures/health_2.png differ diff --git a/mods/gauges/textures/health_20.png b/mods/gauges/textures/health_20.png new file mode 100755 index 00000000..93d6733d Binary files /dev/null and b/mods/gauges/textures/health_20.png differ diff --git a/mods/gauges/textures/health_3.png b/mods/gauges/textures/health_3.png new file mode 100755 index 00000000..c973e017 Binary files /dev/null and b/mods/gauges/textures/health_3.png differ diff --git a/mods/gauges/textures/health_4.png b/mods/gauges/textures/health_4.png new file mode 100755 index 00000000..e463d7e5 Binary files /dev/null and b/mods/gauges/textures/health_4.png differ diff --git a/mods/gauges/textures/health_5.png b/mods/gauges/textures/health_5.png new file mode 100755 index 00000000..2b241c55 Binary files /dev/null and b/mods/gauges/textures/health_5.png differ diff --git a/mods/gauges/textures/health_6.png b/mods/gauges/textures/health_6.png new file mode 100755 index 00000000..e0af5f6a Binary files /dev/null and b/mods/gauges/textures/health_6.png differ diff --git a/mods/gauges/textures/health_7.png b/mods/gauges/textures/health_7.png new file mode 100755 index 00000000..35fd7f8a Binary files /dev/null and b/mods/gauges/textures/health_7.png differ diff --git a/mods/gauges/textures/health_8.png b/mods/gauges/textures/health_8.png new file mode 100755 index 00000000..1f45f7b0 Binary files /dev/null and b/mods/gauges/textures/health_8.png differ diff --git a/mods/gauges/textures/health_9.png b/mods/gauges/textures/health_9.png new file mode 100755 index 00000000..90abc72b Binary files /dev/null and b/mods/gauges/textures/health_9.png differ diff --git a/mods/glow/.gitignore b/mods/glow/.gitignore new file mode 100644 index 00000000..d9c069a6 --- /dev/null +++ b/mods/glow/.gitignore @@ -0,0 +1,4 @@ +## Generic ignorable patterns and files +*~ +.*.swp +debug.txt diff --git a/mods/glow/README.md b/mods/glow/README.md new file mode 100644 index 00000000..883094c6 --- /dev/null +++ b/mods/glow/README.md @@ -0,0 +1,5 @@ +minetest-glow +============= + +Adds 2 glowing blocks for minetest: +Glowing stone and glowing lantern. diff --git a/mods/glow/glow/depends.txt b/mods/glow/glow/depends.txt new file mode 100644 index 00000000..4ad96d51 --- /dev/null +++ b/mods/glow/glow/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/glow/glow/glow_lamp.png b/mods/glow/glow/glow_lamp.png new file mode 100644 index 00000000..f7532d35 Binary files /dev/null and b/mods/glow/glow/glow_lamp.png differ diff --git a/mods/glow/glow/init.lua b/mods/glow/glow/init.lua new file mode 100644 index 00000000..7dfdc4d2 --- /dev/null +++ b/mods/glow/glow/init.lua @@ -0,0 +1,39 @@ +-- glow/init.lua +-- mod by john and Zeg9 + +LIGHT_MAX = 15 + +minetest.register_node("glow:stone", { + description = "Glowing stone", + tile_images = {"glow_stone.png"}, + light_source = LIGHT_MAX, + groups = {cracky=3}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("glow:lamp", { + description = "Lamp", + tile_images = {"glow_stone.png^glow_lamp_frame.png"}, + light_source = LIGHT_MAX, + groups = {cracky=3}, + sounds = default.node_sound_glass_defaults(), +}) + + +minetest.register_craft( { + output = '"glow:stone" 2', + recipe = { + {'default:stone','default:coal_lump','default:stone'} + }, +}) + +minetest.register_craft( { + output = '"glow:lamp" 6', + recipe = { + {'default:stick', 'default:glass', 'default:stick'}, + {'default:glass', 'glow:stone', 'default:glass'}, + {'default:stick', 'default:glass', 'default:stick'}, + }, +}) + +minetest.register_alias("glow:lantern", "glow:lamp") diff --git a/mods/glow/glow/textures/glow_lamp_frame.png b/mods/glow/glow/textures/glow_lamp_frame.png new file mode 100644 index 00000000..0f763cac Binary files /dev/null and b/mods/glow/glow/textures/glow_lamp_frame.png differ diff --git a/mods/glow/glow/textures/glow_lamp_frame_normal.png b/mods/glow/glow/textures/glow_lamp_frame_normal.png new file mode 100644 index 00000000..4bdb5ef2 Binary files /dev/null and b/mods/glow/glow/textures/glow_lamp_frame_normal.png differ diff --git a/mods/glow/glow/textures/glow_stone.png b/mods/glow/glow/textures/glow_stone.png new file mode 100644 index 00000000..71b97c0e Binary files /dev/null and b/mods/glow/glow/textures/glow_stone.png differ diff --git a/mods/glow/glow/textures/glow_stone_normal.png b/mods/glow/glow/textures/glow_stone_normal.png new file mode 100644 index 00000000..97a27d47 Binary files /dev/null and b/mods/glow/glow/textures/glow_stone_normal.png differ diff --git a/mods/glow/modpack.txt b/mods/glow/modpack.txt new file mode 100644 index 00000000..e69de29b diff --git a/mods/homedecor_modpack/.gitignore b/mods/homedecor_modpack/.gitignore new file mode 100644 index 00000000..b25c15b8 --- /dev/null +++ b/mods/homedecor_modpack/.gitignore @@ -0,0 +1 @@ +*~ diff --git a/mods/homedecor_modpack/README b/mods/homedecor_modpack/README new file mode 100644 index 00000000..35fe12cb --- /dev/null +++ b/mods/homedecor_modpack/README @@ -0,0 +1,53 @@ +This is what I consider to be a fairly feature-filled home decor +modpack. As such, it comes in multiple parts: + +* The actual homedecor mod, which supplies a bunch of stuff found in +most homes (like flower pots, home electronics, brass and wrought-iron +tables, and a bunch of other things). + +* A "3d extras" mod, which supplies things that re-define something in +some other mod (or in the default game) so that those objects become +fully 3d (instead of a flat cube), as well as things which are directly +related. This mod, for example, provides 3d bookshelves and their empty +and half-depth "open frame" counterparts. + +* A signs library forked from the one that thexyz and PilzAdam first +made, which produces visible text on signs (and which has been extended +to put signs on fences, including the brass and wrought iron ones here +in homedecor). + +* Sdzen's building_blocks mod, which is here to supply not only a few +blocks to build with, obviously, :-) but also to supply a number of +materials to craft other things in Homedecor with. + +All items can be accessed either by crafting various other items +together, or with the usual /give commands. To get a list of the actual +node names, just go into the homedecor/ folder and run the listnodes.sh +Bash script. Note that a few of the listed nodes are kinda useless by +themselves (like the various parts of the folding doors). + +All of the images used for the recipes in the forum post tracking this +mod are included in the crafting-guide/ folder. + +Most stuff can be made from materials found through a game world. Some +stuff can only be crafted by using materials from another mod (look for +the orange highlights). Currently, this mod can use materials from +moreores, mesecons, wool, and unifieddyes if present. You can still use +the usual /give commands to get the items that depend on these mods if +you don't use them installed. + +This mod is still a work-in-progress, but should be complete enough not +to irritate anyone. :-) Namely, many items can be used as fuel but the +burn times need tuning and I need to tune the cook time and fuel usage +on the four smelted items. + +Much of the code (especially for the doors) plus the bucket were taken +from the files which come with Minetest and altered to suit. Many +thanks to Jeija for coming up with an elegant cylinder using nodeboxes; +see his 'irregular' mods). His code is used herein (you can guess where +:-) ). + +Dependencies: none (just the game's default stuff) + +Recommends: buckets, flowers, unifieddyes, junglegrass, moreores, +mesecons, wool diff --git a/mods/homedecor_modpack/building_blocks/depends.txt b/mods/homedecor_modpack/building_blocks/depends.txt new file mode 100644 index 00000000..b5fb120d --- /dev/null +++ b/mods/homedecor_modpack/building_blocks/depends.txt @@ -0,0 +1,2 @@ +default +moreblocks? \ No newline at end of file diff --git a/mods/homedecor_modpack/building_blocks/init.lua b/mods/homedecor_modpack/building_blocks/init.lua new file mode 100644 index 00000000..e2a8e65b --- /dev/null +++ b/mods/homedecor_modpack/building_blocks/init.lua @@ -0,0 +1,538 @@ +minetest.register_node("building_blocks:Adobe", { + tiles = {"building_blocks_Adobe.png"}, + description = "Adobe", + is_ground_content = true, + groups = {crumbly=3}, + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node("building_blocks:Roofing", { + tiles = {"building_blocks_Roofing.png"}, + is_ground_content = true, + description = "Roof block", + groups = {snappy=3}, +}) +minetest.register_craft({ + output = 'building_blocks:terrycloth_towel 2', + recipe = { + {"farming:string", "farming:string", "farming:string"}, + } +}) +minetest.register_craft({ + output = 'building_blocks:Tarmac_spread 4', + recipe = { + {"building_blocks:Tar", "building_blocks:Tar"}, + } +}) +minetest.register_craft({ + output = 'building_blocks:gravel_spread 4', + recipe = { + {"default:gravel", "default:gravel", "default:gravel"}, + } +}) +minetest.register_craft({ + output = 'building_blocks:brobble_spread 4', + recipe = { + {"default:brick", "default:cobble", "default:brick"}, + } +}) +minetest.register_craft({ + output = 'building_blocks:Fireplace 1', + recipe = { + {"default:steel_ingot", "building_blocks:sticks", "default:steel_ingot"}, + } +}) +minetest.register_craft({ + output = 'building_blocks:Adobe 3', + recipe = { + {"default:sand"}, + {"default:clay"}, + {"group:stick"}, + } +}) + +minetest.register_craft({ + output = 'building_blocks:Roofing 10', + recipe = { + {"building_blocks:Adobe", "building_blocks:Adobe"}, + {"building_blocks:Adobe", "building_blocks:Adobe"}, + } +}) +minetest.register_craft({ + output = 'building_blocks:BWtile 10', + recipe = { + {"building_blocks:Marble", "building_blocks:Tar"}, + {"building_blocks:Tar", "building_blocks:Marble"}, + } +}) +minetest.register_craft({ + output = 'building_blocks:grate 1', + recipe = { + {"default:steel_ingot", "default:steel_ingot"}, + {"default:glass", "default:glass"}, + } +}) +minetest.register_craft({ + output = 'building_blocks:woodglass 1', + recipe = { + {"default:wood"}, + {"default:glass"}, + } +}) +minetest.register_craft({ + output = 'building_blocks:hardwood 2', + recipe = { + {"default:wood", "default:junglewood"}, + {"default:junglewood", "default:wood"}, + } +}) + +minetest.register_craft({ + output = 'building_blocks:hardwood 2', + recipe = { + {"default:junglewood", "default:wood"}, + {"default:wood", "default:junglewood"}, + } +}) + +minetest.register_craft({ + output = 'building_blocks:sticks', + recipe = { + {'group:stick', 'group:stick'}, + {'group:stick', 'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'building_blocks:fakegrass 2', + recipe = { + {'default:leaves'}, + {"default:dirt"}, + } +}) + +minetest.register_craft({ + output = 'building_blocks:tar_base 2', + recipe = { + {"default:coal_lump", "default:gravel"}, + {"default:gravel", "default:coal_lump"} + } +}) + +minetest.register_craft({ + output = 'building_blocks:tar_base 2', + recipe = { + {"default:gravel", "default:coal_lump"}, + {"default:coal_lump", "default:gravel"} + } +}) + +minetest.register_craft({ + type = "cooking", + output = "building_blocks:smoothglass", + recipe = "default:glass" +}) +minetest.register_node("building_blocks:smoothglass", { + drawtype = "glasslike", + description = "Streak Free Glass", + tiles = {"building_blocks_sglass.png"}, + inventory_image = minetest.inventorycube("building_blocks_sglass.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults(), +}) +minetest.register_node("building_blocks:grate", { + drawtype = "glasslike", + description = "Grate", + tiles = {"building_blocks_grate.png"}, + inventory_image = minetest.inventorycube("building_blocks_grate.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + groups = {cracky=1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("building_blocks:Fireplace", { + description = "Fireplace", + tiles = { + "building_blocks_cast_iron.png", + "building_blocks_cast_iron.png", + "building_blocks_cast_iron.png", + "building_blocks_cast_iron_fireplace.png" + }, + paramtype = "light", + paramtype2 = "facedir", + light_source = LIGHT_MAX, + sunlight_propagates = true, + is_ground_content = true, + groups = {cracky=2}, +}) + +minetest.register_node("building_blocks:woodglass", { + drawtype = "glasslike", + description = "Wood Framed Glass", + tiles = {"building_blocks_wglass.png"}, + inventory_image = minetest.inventorycube("building_blocks_wglass.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults(), +}) +minetest.register_node("building_blocks:terrycloth_towel", { + drawtype = "raillike", + description = "Terrycloth towel", + tiles = {"building_blocks_towel.png"}, + inventory_image = "building_blocks_towel_inv.png", + paramtype = "light", + walkable = 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}, + }, + sunlight_propagates = true, + is_ground_content = true, + groups = {crumbly=3}, +}) +minetest.register_node("building_blocks:Tarmac_spread", { + drawtype = "raillike", + description = "Tarmac Spread", + tiles = {"building_blocks_tar.png"}, + inventory_image = "building_blocks_tar_spread_inv.png", + paramtype = "light", + walkable = 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}, + }, + sunlight_propagates = true, + is_ground_content = true, + groups = {cracky=3}, +}) +minetest.register_node("building_blocks:BWtile", { + drawtype = "raillike", + description = "Chess board tiling", + tiles = {"building_blocks_BWtile.png"}, + inventory_image = "building_blocks_bwtile_inv.png", + paramtype = "light", + walkable = 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}, + }, + sunlight_propagates = true, + is_ground_content = true, + groups = {crumbly=3}, +}) +minetest.register_node("building_blocks:brobble_spread", { + drawtype = "raillike", + description = "Brobble Spread", + tiles = {"building_blocks_brobble.png"}, + inventory_image = "building_blocks_brobble_spread_inv.png", + paramtype = "light", + walkable = 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}, + }, + sunlight_propagates = true, + is_ground_content = true, + groups = {crumbly=3}, +}) +minetest.register_node("building_blocks:gravel_spread", { + drawtype = "raillike", + description = "Gravel Spread", + tiles = {"default_gravel.png"}, + inventory_image = "building_blocks_gravel_spread_inv.png", + paramtype = "light", + walkable = 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}, + }, + sunlight_propagates = true, + is_ground_content = true, + groups = {crumbly=2}, +}) +minetest.register_node("building_blocks:hardwood", { + tiles = {"building_blocks_hardwood.png"}, + is_ground_content = true, + description = "Hardwood", + groups = {choppy=1,flammable=1}, + sounds = default.node_sound_wood_defaults(), +}) + +if minetest.get_modpath("moreblocks") then + + stairsplus:register_all( + "building_blocks", + "marble", + "building_blocks:Marble", + { + description = "Marble", + tiles = {"building_blocks_marble.png"}, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + } + ) + stairsplus:register_all( + "building_blocks", + "hardwood", + "building_blocks:hardwood", + { + description = "Hardwood", + tiles = {"building_blocks_hardwood.png"}, + groups = {choppy=1,flammable=1}, + sounds = default.node_sound_wood_defaults(), + } + ) + stairsplus:register_all( + "building_blocks", + "fakegrass", + "building_blocks:fakegrass", + { + description = "Grass", + tiles = {"default_grass.png"}, + groups = {crumbly=3}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.4}, + }), + } + ) + stairsplus:register_all( + "building_blocks", + "tar", + "building_blocks:Tar", + { + description = "Tar", + tiles = {"building_blocks_tar.png"}, + groups = {crumbly=1}, + sounds = default.node_sound_stone_defaults(), + } + ) + stairsplus:register_all( + "building_blocks", + "grate", + "building_blocks:grate", + { + description = "Grate", + tiles = {"building_blocks_grate.png"}, + groups = {cracky=1}, + sounds = default.node_sound_stone_defaults(), + } + ) + +else + bb_stairs = {} + + -- Node will be called stairs:stair_ + function bb_stairs.register_stair(subname, recipeitem, groups, images, description) + minetest.register_node("building_blocks:stair_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = groups, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + {-0.5, 0, 0, 0.5, 0.5, 0.5}, + }, + }, + }) + + minetest.register_craft({ + output = 'building_blocks:stair_' .. subname .. ' 4', + recipe = { + {recipeitem, "", ""}, + {recipeitem, recipeitem, ""}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + + -- Flipped recipe for the silly minecrafters + minetest.register_craft({ + output = 'building_blocks:stair_' .. subname .. ' 4', + recipe = { + {"", "", recipeitem}, + {"", recipeitem, recipeitem}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + end + + -- Node will be called stairs:slab_ + function bb_stairs.register_slab(subname, recipeitem, groups, images, description) + minetest.register_node("building_blocks:slab_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + is_ground_content = true, + groups = groups, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + }, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + }, + }) + + minetest.register_craft({ + output = 'building_blocks:slab_' .. subname .. ' 3', + recipe = { + {recipeitem, recipeitem, recipeitem}, + }, + }) + end + + -- Nodes will be called stairs:{stair,slab}_ + function bb_stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab) + bb_stairs.register_stair(subname, recipeitem, groups, images, desc_stair) + bb_stairs.register_slab(subname, recipeitem, groups, images, desc_slab) + end + bb_stairs.register_stair_and_slab("marble","building_blocks:Marble", + {cracky=3}, + {"building_blocks_marble.png"}, + "Marble stair", + "Marble slab" + ) + bb_stairs.register_stair_and_slab("hardwood","building_blocks:hardwood", + {choppy=1,flammable=1}, + {"building_blocks_hardwood.png"}, + "Hardwood stair", + "Hardwood slab" + ) + bb_stairs.register_stair_and_slab("fakegrass","building_blocks:fakegrass", + {crumbly=3}, + {"default_grass.png"}, + "Grass stair", + "Grass slab" + ) + bb_stairs.register_stair_and_slab("tar","building_blocks:Tar", + {crumbly=1}, + {"building_blocks_tar.png"}, + "Tar stair", + "Tar slab" + ) + bb_stairs.register_stair_and_slab("grate","building_blocks:grate", + {cracky=1}, + {"building_blocks_grate.png"}, + "Grate Stair", + "Grate Slab" + ) +end + + +minetest.register_craft({ + type = "fuel", + recipe = "building_blocks:hardwood", + burntime = 28, +}) + +minetest.register_node("building_blocks:fakegrass", { + tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, + description = "Fake Grass", + is_ground_content = true, + groups = {crumbly=3}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.4}, + }), +}) + +minetest.register_craftitem("building_blocks:sticks", { + description = "Small bundle of sticks", + image = "building_blocks_sticks.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craftitem("building_blocks:tar_base", { + description = "Tar base", + image = "building_blocks_tar_base.png", +}) + +--Tar +minetest.register_craft({ + output = 'building_blocks:knife 1', + recipe = { + {"building_blocks:Tar"}, + {"group:stick"}, + } +}) + +minetest.register_alias("tar", "building_blocks:Tar") +minetest.register_alias("fakegrass", "building_blocks:fakegrass") +minetest.register_alias("tar_knife", "building_blocks:knife") +minetest.register_alias("adobe", "building_blocks:Adobe") +minetest.register_alias("building_blocks_roofing", "building_blocks:Roofing") +minetest.register_alias("hardwood", "building_blocks:hardwood") +minetest.register_alias("sticks", "building_blocks:sticks") +minetest.register_alias("building_blocks:faggot", "building_blocks:sticks") +minetest.register_alias("marble", "building_blocks:Marble") + +minetest.register_node("building_blocks:Tar", { + description = "Tar", + tiles = {"building_blocks_tar.png"}, + is_ground_content = true, + groups = {crumbly=1}, + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node("building_blocks:Marble", { + description = "Marble", + tiles = {"building_blocks_marble.png"}, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_craft({ + type = "fuel", + recipe = "building_blocks:sticks", + burntime = 5, +}) +minetest.register_craft({ + type = "fuel", + recipe = "building_blocks:Tar", + burntime = 40, +}) + +minetest.register_craft({ + type = "cooking", + output = "building_blocks:Tar", + recipe = "building_blocks:tar_base", +}) + +minetest.register_tool("building_blocks:knife", { + description = "Tar Knife", + inventory_image = "building_blocks_knife.png", + tool_capabilities = { + max_drop_level=0, + groupcaps={ + choppy={times={[2]=7.50, [3]=2.80}, maxwear=0.01, maxlevel=1}, + fleshy={times={[2]=5.50, [3]=2.80}, maxwear=0.01, maxlevel=1} + } + }, +}) + +minetest.add_to_creative_inventory('building_blocks:Tar 0') +minetest.add_to_creative_inventory('building_blocks:hardwood 0') +minetest.register_craft({ + output = "building_blocks:Marble 9", + recipe = { + {"default:clay", "building_blocks:Tar", "default:clay"}, + {"building_blocks:Tar","default:clay", "building_blocks:Tar"}, + {"default:clay", "building_blocks:Tar","default:clay"}, + } +}) + diff --git a/mods/homedecor_modpack/building_blocks/textures/building_blocks_Adobe.png b/mods/homedecor_modpack/building_blocks/textures/building_blocks_Adobe.png new file mode 100644 index 00000000..28bd3fb1 Binary files /dev/null and b/mods/homedecor_modpack/building_blocks/textures/building_blocks_Adobe.png differ diff --git a/mods/homedecor_modpack/building_blocks/textures/building_blocks_BWtile.png b/mods/homedecor_modpack/building_blocks/textures/building_blocks_BWtile.png new file mode 100644 index 00000000..3751e72a Binary files /dev/null and b/mods/homedecor_modpack/building_blocks/textures/building_blocks_BWtile.png differ diff --git a/mods/homedecor_modpack/building_blocks/textures/building_blocks_Roofing.png b/mods/homedecor_modpack/building_blocks/textures/building_blocks_Roofing.png new file mode 100644 index 00000000..c76846fd Binary files /dev/null and b/mods/homedecor_modpack/building_blocks/textures/building_blocks_Roofing.png differ diff --git a/mods/homedecor_modpack/building_blocks/textures/building_blocks_brobble.png b/mods/homedecor_modpack/building_blocks/textures/building_blocks_brobble.png new file mode 100644 index 00000000..13a4b396 Binary files /dev/null and b/mods/homedecor_modpack/building_blocks/textures/building_blocks_brobble.png differ diff --git a/mods/homedecor_modpack/building_blocks/textures/building_blocks_brobble_spread_inv.png b/mods/homedecor_modpack/building_blocks/textures/building_blocks_brobble_spread_inv.png new file mode 100644 index 00000000..9452b0ec Binary files /dev/null and b/mods/homedecor_modpack/building_blocks/textures/building_blocks_brobble_spread_inv.png differ diff --git a/mods/homedecor_modpack/building_blocks/textures/building_blocks_bwtile_inv.png b/mods/homedecor_modpack/building_blocks/textures/building_blocks_bwtile_inv.png new file mode 100644 index 00000000..a8ec83b6 Binary files /dev/null and b/mods/homedecor_modpack/building_blocks/textures/building_blocks_bwtile_inv.png differ diff --git a/mods/homedecor_modpack/building_blocks/textures/building_blocks_cast_iron.png b/mods/homedecor_modpack/building_blocks/textures/building_blocks_cast_iron.png new file mode 100644 index 00000000..54f2bacc Binary files /dev/null and b/mods/homedecor_modpack/building_blocks/textures/building_blocks_cast_iron.png differ diff --git a/mods/homedecor_modpack/building_blocks/textures/building_blocks_cast_iron_fireplace.png b/mods/homedecor_modpack/building_blocks/textures/building_blocks_cast_iron_fireplace.png new file mode 100644 index 00000000..218c1a3a Binary files /dev/null and b/mods/homedecor_modpack/building_blocks/textures/building_blocks_cast_iron_fireplace.png differ diff --git a/mods/homedecor_modpack/building_blocks/textures/building_blocks_grate.png b/mods/homedecor_modpack/building_blocks/textures/building_blocks_grate.png new file mode 100644 index 00000000..8bcaad0b Binary files /dev/null and b/mods/homedecor_modpack/building_blocks/textures/building_blocks_grate.png differ diff --git a/mods/homedecor_modpack/building_blocks/textures/building_blocks_grate2.png b/mods/homedecor_modpack/building_blocks/textures/building_blocks_grate2.png new file mode 100644 index 00000000..941ca9fc Binary files /dev/null and b/mods/homedecor_modpack/building_blocks/textures/building_blocks_grate2.png differ diff --git a/mods/homedecor_modpack/building_blocks/textures/building_blocks_gravel_spread_inv.png b/mods/homedecor_modpack/building_blocks/textures/building_blocks_gravel_spread_inv.png new file mode 100644 index 00000000..1d8d8d08 Binary files /dev/null and b/mods/homedecor_modpack/building_blocks/textures/building_blocks_gravel_spread_inv.png differ diff --git a/mods/homedecor_modpack/building_blocks/textures/building_blocks_hardwood.png b/mods/homedecor_modpack/building_blocks/textures/building_blocks_hardwood.png new file mode 100644 index 00000000..e3a6bd4d Binary files /dev/null and b/mods/homedecor_modpack/building_blocks/textures/building_blocks_hardwood.png differ diff --git a/mods/homedecor_modpack/building_blocks/textures/building_blocks_knife.png b/mods/homedecor_modpack/building_blocks/textures/building_blocks_knife.png new file mode 100644 index 00000000..ae99bdc6 Binary files /dev/null and b/mods/homedecor_modpack/building_blocks/textures/building_blocks_knife.png differ diff --git a/mods/homedecor_modpack/building_blocks/textures/building_blocks_marble.png b/mods/homedecor_modpack/building_blocks/textures/building_blocks_marble.png new file mode 100644 index 00000000..94aad999 Binary files /dev/null and b/mods/homedecor_modpack/building_blocks/textures/building_blocks_marble.png differ diff --git a/mods/homedecor_modpack/building_blocks/textures/building_blocks_sglass.png b/mods/homedecor_modpack/building_blocks/textures/building_blocks_sglass.png new file mode 100644 index 00000000..6ecd512d Binary files /dev/null and b/mods/homedecor_modpack/building_blocks/textures/building_blocks_sglass.png differ diff --git a/mods/homedecor_modpack/building_blocks/textures/building_blocks_sticks.png b/mods/homedecor_modpack/building_blocks/textures/building_blocks_sticks.png new file mode 100644 index 00000000..9b8b882f Binary files /dev/null and b/mods/homedecor_modpack/building_blocks/textures/building_blocks_sticks.png differ diff --git a/mods/homedecor_modpack/building_blocks/textures/building_blocks_tar.png b/mods/homedecor_modpack/building_blocks/textures/building_blocks_tar.png new file mode 100644 index 00000000..d2a17d86 Binary files /dev/null and b/mods/homedecor_modpack/building_blocks/textures/building_blocks_tar.png differ diff --git a/mods/homedecor_modpack/building_blocks/textures/building_blocks_tar_base.png b/mods/homedecor_modpack/building_blocks/textures/building_blocks_tar_base.png new file mode 100644 index 00000000..1825e98d Binary files /dev/null and b/mods/homedecor_modpack/building_blocks/textures/building_blocks_tar_base.png differ diff --git a/mods/homedecor_modpack/building_blocks/textures/building_blocks_tar_spread_inv.png b/mods/homedecor_modpack/building_blocks/textures/building_blocks_tar_spread_inv.png new file mode 100644 index 00000000..844fd403 Binary files /dev/null and b/mods/homedecor_modpack/building_blocks/textures/building_blocks_tar_spread_inv.png differ diff --git a/mods/homedecor_modpack/building_blocks/textures/building_blocks_towel.png b/mods/homedecor_modpack/building_blocks/textures/building_blocks_towel.png new file mode 100644 index 00000000..498cb6cf Binary files /dev/null and b/mods/homedecor_modpack/building_blocks/textures/building_blocks_towel.png differ diff --git a/mods/homedecor_modpack/building_blocks/textures/building_blocks_towel_inv.png b/mods/homedecor_modpack/building_blocks/textures/building_blocks_towel_inv.png new file mode 100644 index 00000000..f2dc366a Binary files /dev/null and b/mods/homedecor_modpack/building_blocks/textures/building_blocks_towel_inv.png differ diff --git a/mods/homedecor_modpack/building_blocks/textures/building_blocks_wglass.png b/mods/homedecor_modpack/building_blocks/textures/building_blocks_wglass.png new file mode 100644 index 00000000..64c505eb Binary files /dev/null and b/mods/homedecor_modpack/building_blocks/textures/building_blocks_wglass.png differ diff --git a/mods/homedecor_modpack/chains/depends.txt b/mods/homedecor_modpack/chains/depends.txt new file mode 100644 index 00000000..331d858c --- /dev/null +++ b/mods/homedecor_modpack/chains/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/mods/homedecor_modpack/chains/init.lua b/mods/homedecor_modpack/chains/init.lua new file mode 100644 index 00000000..69afdd78 --- /dev/null +++ b/mods/homedecor_modpack/chains/init.lua @@ -0,0 +1,150 @@ +print("[Chains] v1.2") + +-- wrought iron items + +minetest.register_node("chains:chain", { + description = "Hanging chain (wrought iron)", + walkable = false, + climbable = true, + sunlight_propagates = true, + paramtype = "light", + drops = "", + tiles = { "chains_chain.png" }, + inventory_image = "chains_chain.png", + drawtype = "plantlike", + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("chains:chain_top", { + description = "Hanging chain (ceiling mount, wrought iron)", + walkable = false, + climbable = true, + sunlight_propagates = true, + paramtype = "light", + drops = "", + tiles = { "chains_chain_top.png" }, + inventory_image = "chains_chain_top_inv.png", + drawtype = "plantlike", + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("chains:chandelier", { + description = "Chandelier (wrought iron)", + paramtype = "light", + walkable = false, + light_source = LIGHT_MAX-2, + climbable = true, + sunlight_propagates = true, + paramtype = "light", + drops = "", + tiles = { {name="chains_chandelier.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}}}, + inventory_image = "chains_chandelier_inv.png", + drawtype = "plantlike", + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +-- brass-based items + +minetest.register_node("chains:chain_brass", { + description = "Hanging chain (brass)", + walkable = false, + climbable = true, + sunlight_propagates = true, + paramtype = "light", + drops = "", + tiles = { "chains_chain_brass.png" }, + inventory_image = "chains_chain_brass.png", + drawtype = "plantlike", + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("chains:chain_top_brass", { + description = "Hanging chain (ceiling mount, brass)", + walkable = false, + climbable = true, + sunlight_propagates = true, + paramtype = "light", + drops = "", + tiles = { "chains_chain_top_brass.png" }, + inventory_image = "chains_chain_top_brass_inv.png", + drawtype = "plantlike", + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("chains:chandelier_brass", { + description = "Chandelier (brass)", + paramtype = "light", + walkable = false, + light_source = LIGHT_MAX-2, + climbable = true, + sunlight_propagates = true, + paramtype = "light", + drops = "", + tiles = { {name="chains_chandelier_brass.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}}}, + inventory_image = "chains_chandelier_brass_inv.png", + drawtype = "plantlike", + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +-- crafts + +minetest.register_craft({ + output = 'chains:chain 2', + recipe = { + {'glooptest:chainlink'}, + {'glooptest:chainlink'}, + {'glooptest:chainlink'}, + } +}) + +minetest.register_craft({ + output = 'chains:chain_top', + recipe = { + {'default:steel_ingot'}, + {'glooptest:chainlink'}, + }, +}) + +minetest.register_craft({ + output = 'chains:chandelier', + recipe = { + {'', 'glooptest:chainlink', ''}, + {'default:torch', 'glooptest:chainlink', 'default:torch'}, + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + } +}) + +-- brass versions + +minetest.register_craft({ + output = 'chains:chain_brass 2', + recipe = { + {'homedecor:chainlink_brass'}, + {'homedecor:chainlink_brass'}, + {'homedecor:chainlink_brass'}, + } +}) + +minetest.register_craft({ + output = 'chains:chain_top_brass', + recipe = { + {'technic:brass_ingot'}, + {'homedecor:chainlink_brass'}, + }, +}) + +minetest.register_craft({ + output = 'chains:chandelier_brass', + recipe = { + {'', 'homedecor:chainlink_brass', ''}, + {'default:torch', 'homedecor:chainlink_brass', 'default:torch'}, + {'technic:brass_ingot', 'technic:brass_ingot', 'technic:brass_ingot'}, + } +}) + diff --git a/mods/homedecor_modpack/chains/textures/chains_chain.png b/mods/homedecor_modpack/chains/textures/chains_chain.png new file mode 100644 index 00000000..36cb2258 Binary files /dev/null and b/mods/homedecor_modpack/chains/textures/chains_chain.png differ diff --git a/mods/homedecor_modpack/chains/textures/chains_chain_brass.png b/mods/homedecor_modpack/chains/textures/chains_chain_brass.png new file mode 100644 index 00000000..75d19d19 Binary files /dev/null and b/mods/homedecor_modpack/chains/textures/chains_chain_brass.png differ diff --git a/mods/homedecor_modpack/chains/textures/chains_chain_top.png b/mods/homedecor_modpack/chains/textures/chains_chain_top.png new file mode 100644 index 00000000..9279f956 Binary files /dev/null and b/mods/homedecor_modpack/chains/textures/chains_chain_top.png differ diff --git a/mods/homedecor_modpack/chains/textures/chains_chain_top_brass.png b/mods/homedecor_modpack/chains/textures/chains_chain_top_brass.png new file mode 100644 index 00000000..0becccfc Binary files /dev/null and b/mods/homedecor_modpack/chains/textures/chains_chain_top_brass.png differ diff --git a/mods/homedecor_modpack/chains/textures/chains_chain_top_brass_inv.png b/mods/homedecor_modpack/chains/textures/chains_chain_top_brass_inv.png new file mode 100644 index 00000000..52f9e17f Binary files /dev/null and b/mods/homedecor_modpack/chains/textures/chains_chain_top_brass_inv.png differ diff --git a/mods/homedecor_modpack/chains/textures/chains_chain_top_inv.png b/mods/homedecor_modpack/chains/textures/chains_chain_top_inv.png new file mode 100644 index 00000000..5cd95379 Binary files /dev/null and b/mods/homedecor_modpack/chains/textures/chains_chain_top_inv.png differ diff --git a/mods/homedecor_modpack/chains/textures/chains_chandelier.png b/mods/homedecor_modpack/chains/textures/chains_chandelier.png new file mode 100644 index 00000000..18a61f77 Binary files /dev/null and b/mods/homedecor_modpack/chains/textures/chains_chandelier.png differ diff --git a/mods/homedecor_modpack/chains/textures/chains_chandelier_brass.png b/mods/homedecor_modpack/chains/textures/chains_chandelier_brass.png new file mode 100644 index 00000000..d57a7c30 Binary files /dev/null and b/mods/homedecor_modpack/chains/textures/chains_chandelier_brass.png differ diff --git a/mods/homedecor_modpack/chains/textures/chains_chandelier_brass_inv.png b/mods/homedecor_modpack/chains/textures/chains_chandelier_brass_inv.png new file mode 100644 index 00000000..4a835dd0 Binary files /dev/null and b/mods/homedecor_modpack/chains/textures/chains_chandelier_brass_inv.png differ diff --git a/mods/homedecor_modpack/chains/textures/chains_chandelier_inv.png b/mods/homedecor_modpack/chains/textures/chains_chandelier_inv.png new file mode 100644 index 00000000..99ba69ed Binary files /dev/null and b/mods/homedecor_modpack/chains/textures/chains_chandelier_inv.png differ diff --git a/mods/homedecor_modpack/computer/CHANGES.txt b/mods/homedecor_modpack/computer/CHANGES.txt new file mode 100644 index 00000000..b9b455c3 --- /dev/null +++ b/mods/homedecor_modpack/computer/CHANGES.txt @@ -0,0 +1,38 @@ +version 0.2.3: + - Added animated router front + - Added all crafts for new items + +version 0.2.2: + - Added printer + - Added server + +version 0.2.1: + - Added modern tower pc + - Added wifi router + - Added flatscreen LCD and keyboard + +Version 0.2.0: + - Added recipes. + - Partly re-written. + - Removed original baby tower (seemed out of place). + - You can now turn devices on and off by right-clicking. + - Mod is now on github. + +Version 0.1.4: + - Added Admiral 64 & 128 (Commodore 64 & 128 lookalikes) + +Version 0.1.3: + - Added SX Spectre (Sinclair ZX Spectrum lookalike) + - Added Pony SlayStation 2 (Sony PlayStation lookalike) + - Minor fixes to textures. + +Version 0.1.2: + - Nodes now use the node box as selection box. + - Added Pony SlayStation (Sony PlayStation lookalike) + - Added Pony Vanio (Sony VAIO lookalike...err...just a generic laptop) + +Version 0.1.1: + - Added SheFriend SOO (Amiga 500 lookalike) + +Version 0.1.0: + - Initial Version only a baby tower. diff --git a/mods/homedecor_modpack/computer/LICENSE.txt b/mods/homedecor_modpack/computer/LICENSE.txt new file mode 100644 index 00000000..1dc9f2f4 --- /dev/null +++ b/mods/homedecor_modpack/computer/LICENSE.txt @@ -0,0 +1,15 @@ + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2012 Diego Martínez + + 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/homedecor_modpack/computer/README.txt b/mods/homedecor_modpack/computer/README.txt new file mode 100644 index 00000000..6d6c7dcf --- /dev/null +++ b/mods/homedecor_modpack/computer/README.txt @@ -0,0 +1,61 @@ + +Decorative Computers Mod for Minetest +by Diego Martínez + +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: +For now just use creative mode or the `/give' or `/giveme' chat commands + to get the items. + +These are the items currently defined by this mod: + +computer:printer (printer scanner combo) +computer:server (rack server) +computer:tower (modern type) +computer:monitor (LCD with keyboard) +computer:router (wifi type) +computer:babytower +computer:shefriendSOO +computer:slaystation +computer:vanio +computer:spectre +computer:slaystation2 +computer:admiral64 +computer:admiral128 + +There's also a `computer:computer' alias to `computer:babytower'. + +License: +Sourcecode: WTFPL (see below) +Graphics: WTFPL (see below) + +Thanks to all the people in the forums and the #minetest IRC channel for + their support and suggestions; in no particular order: + OldCoder, Josh, tonyka, VanessaE, davidpace, Jordach, and all the other + sirs/madammes that I forgot to mention (sorry, please remind me if it + was you ;) ). + +See also: +http://minetest.net/ + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2012 Diego Martínez + + 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/homedecor_modpack/computer/TODO.txt b/mods/homedecor_modpack/computer/TODO.txt new file mode 100644 index 00000000..e1e57524 --- /dev/null +++ b/mods/homedecor_modpack/computer/TODO.txt @@ -0,0 +1,29 @@ + +TO-DO List: + +- New Nodes: + + - Computers: + - Mainframe (well me have a rackserver now) + - My Computer :P + + - Peripherals: + - Scanner ( well we have a printer/scanner combo now) + + - Consoles: + - NES + - SNES + - DC + + - Handhelds + - GB/C + - GBA + - Calculator + - Smartphone + +- Animated screens + +- Implement some kind of games (take code from `tetris' mod?). [It would be + nice if Minetest provided a "canvas" GUI widget :)]. + +- Get more suggestions :) diff --git a/mods/homedecor_modpack/computer/computers.lua b/mods/homedecor_modpack/computer/computers.lua new file mode 100644 index 00000000..2d7f83ff --- /dev/null +++ b/mods/homedecor_modpack/computer/computers.lua @@ -0,0 +1,600 @@ + +-- Amiga 500 lookalike +-- Fun fact: "Amiga" is spanish for "female friend" ("Amigo" is for male); +-- that's why this computer was named "She Friend". +computer.register("computer:shefriendSOO", { + description = "SheFriendSOO"; + tiles_off = { front=true; }; + node_box = computer.pixelnodebox(32, { + -- X Y Z W H L + { 0, 0, 17, 32, 32, 12 }, -- Monitor Screen + { 3, 3, 29, 26, 26, 3 }, -- Monitor Tube + { 0, 0, 0, 32, 4, 17 }, -- Keyboard + }); +}); + +-- Some generic laptop. Sony VAIO came to mind when thinking about a name :) +-- Fun fact: "Vanio" sounds like "baño" ("bathroom" in spanish, pronounced +-- as something like "bah-nee-oh") +computer.register("computer:vanio", { + description = "Pony Vanio"; + tiles_off = { front=true; top=true; left=true; right=true; back=true; }; + node_box = computer.pixelnodebox(32, { + -- X Y Z W H L + { 0, 0, 4, 32, 3, 24 }, -- Keyboard + { 0, 3, 25, 32, 21, 3 }, -- Screen + }); + node_box_off = computer.pixelnodebox(32, { + -- X Y Z W H L + { 0, 0, 4, 32, 3, 24 }, -- Keyboard + { 0, 3, 4, 32, 3, 24 }, -- Screen + }); +}); + +-- Sony PlayStation lookalike +-- Fun fact: Swapping the first letters gives valid words :) +-- Pony SureiSutteshun!!! +computer.register("computer:slaystation", { + description = "Pony SlayStation"; + tiles_off = { top=true; }; + node_box = computer.pixelnodebox(32, { + -- X Y Z W H L + { 0, 0, 11, 32, 6, 21 }, -- Console + { 1, 0, 1, 4, 2, 9 }, -- Controller 1 L Grip + { 10, 0, 1, 4, 2, 9 }, -- Controller 1 R Grip + { 5, 0, 4, 5, 2, 5 }, -- Controller 1 Center + { 18, 0, 1, 4, 2, 9 }, -- Controller 2 L Grip + { 27, 0, 1, 4, 2, 9 }, -- Controller 2 R Grip + { 22, 0, 4, 5, 2, 5 }, -- Controller 2 Center + }); +}); + +-- Sony PlayStation 2 lookalike +-- Fun fact: Swapping the first letters gives valid words :) +-- Pony SureiSutteshun!!! +computer.register("computer:slaystation2", { + description = "Pony SlayStation 2"; + tiles_off = { front=true; }; + node_box = computer.pixelnodebox(32, { + -- X Y Z W H L + { 2, 2, 11, 28, 3, 19 }, -- Console (Upper part) + { 2, 0, 11, 26, 2, 19 }, -- Console (Lower part) + { 1, 0, 1, 4, 2, 9 }, -- Controller 1 L Grip + { 10, 0, 1, 4, 2, 9 }, -- Controller 1 R Grip + { 5, 0, 1, 5, 2, 8 }, -- Controller 1 Center + { 18, 0, 1, 4, 2, 9 }, -- Controller 2 L Grip + { 27, 0, 1, 4, 2, 9 }, -- Controller 2 R Grip + { 22, 0, 1, 5, 2, 8 }, -- Controller 2 Center + }); +}); + +-- Sinclair ZX Spectrum lookalike +computer.register("computer:specter", { + description = "SX Specter"; + tiles_off = { }; + node_box = computer.pixelnodebox(32, { + -- X Y Z W H L + { 3, 0, 0, 26, 4, 17 }, -- Keyboard + { 18, 0, 18, 12, 6, 14 }, -- Tape Player + }); +}); + +-- Nintendo Wii lookalike. +computer.register("computer:wee", { + description = "Nientiendo Wee"; + tiles_off = { front=true; }; + node_box = computer.pixelnodebox(32, { + -- X Y Z W H L + { 11, 0, 3, 10, 6, 26 }, -- Base + { 12, 6, 4, 8, 22, 24 }, -- Top + }); +}); + +-- Apple iPad lookalike. +minetest.register_node("computer:piepad", { + description = "Snapple Piepad", + drawtype = "signlike", + tiles = {"computer_piepad_inv.png"}, + inventory_image = "computer_piepad_inv.png", + wield_image = "computer_piepad_inv.png", + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "wallmounted", + light_source = 10, + walkable = false, + groups = { snappy=3, cracky=3, choppy=3, oddly_breakable_by_hand=3}, + selection_box = {type = "wallmounted"}, + sounds = default.node_sound_wood_defaults() +}) + +-- Commodore 64 lookalike +computer.register("computer:admiral64", { + description = "Admiral64"; + tiles_off = { }; + node_box = computer.pixelnodebox(32, { + -- X Y Z W H L + { 0, 0, 0, 32, 4, 18 }, -- Keyboard + }); +}); + +-- Commodore 128 lookalike +computer.register("computer:admiral128", { + description = "Admiral128"; + tiles_off = { }; + node_box = computer.pixelnodebox(32, { + -- X Y Z W H L + { 0, 0, 0, 32, 4, 27 }, -- Keyboard + }); +}); + +--------------------------------------------------------------------------------- +----------------------------added by crazyginger72------------------------------- +--------------------------------------------------------------------------------- + + + +-- Generic Flat Screen LCD (16x9) with keyboard + minetest.register_node("computer:monitor_on", { + description = "Monitor and keyboard", + tiles = {"computer_monitor_t.png","computer_monitor_bt.png", + "computer_monitor_l.png","computer_monitor_r.png", + "computer_monitor_b.png","computer_monitor_f_desktop.png"}, --"computer_monitor_f_on.png"}, --till i get a boot abm inplace + --inventory_image = + paramtype = "light", + light_source = 4, + paramtype2 = "facedir", + walkable = false, + is_ground_content = true, + groups = {crumbly=3,not_in_creative_inventory=1}, + --sounds = default.node_sound_dirt_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116}, + {-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5}, + {-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698}, + {-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125}, + {-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125}, + {-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375}, + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116}, + {-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5}, + {-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698}, + {-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125}, + {-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125}, + {-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375}, + }, + }, + drop = 'computer:monitor' , + on_rightclick = function ( pos, node, clicker, itemstack) + node.name = "computer:monitor"; + minetest.set_node(pos, node); + nodeupdate(pos) + end +}) + + minetest.register_node("computer:monitor_bios", { + description = "Monitor and keyboard", + tiles = {"computer_monitor_t.png","computer_monitor_bt.png","computer_monitor_l.png","computer_monitor_r.png","computer_monitor_b.png","computer_monitor_f_bios.png"}, + --inventory_image = + paramtype = "light", + light_source = 4, + paramtype2 = "facedir", + walkable = false, + is_ground_content = true, + groups = {crumbly=3,not_in_creative_inventory=1}, + --sounds = default.node_sound_dirt_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116}, + {-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5}, + {-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698}, + {-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125}, + {-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125}, + {-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375}, + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116}, + {-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5}, + {-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698}, + {-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125}, + {-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125}, + {-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375}, + }, + }, + drop = 'computer:monitor' , +}) + + minetest.register_node("computer:monitor_loading", { + description = "Monitor and keyboard", + tiles = {"computer_monitor_t.png","computer_monitor_bt.png","computer_monitor_l.png","computer_monitor_r.png","computer_monitor_b.png","computer_monitor_f_loading.png"}, + --inventory_image = + paramtype = "light", + light_source = 4, + paramtype2 = "facedir", + walkable = false, + is_ground_content = true, + groups = {crumbly=3,not_in_creative_inventory=1}, + --sounds = default.node_sound_dirt_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116}, + {-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5}, + {-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698}, + {-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125}, + {-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125}, + {-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375}, + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116}, + {-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5}, + {-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698}, + {-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125}, + {-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125}, + {-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375}, + }, + }, + drop = 'computer:monitor' , +}) + + minetest.register_node("computer:monitor_login", { + description = "Monitor and keyboard", + tiles = {"computer_monitor_t.png","computer_monitor_bt.png","computer_monitor_l.png","computer_monitor_r.png","computer_monitor_b.png","computer_monitor_f_login.png"}, + --inventory_image = + paramtype = "light", + light_source = 4, + paramtype2 = "facedir", + walkable = false, + is_ground_content = true, + groups = {crumbly=3,not_in_creative_inventory=1}, + --sounds = default.node_sound_dirt_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116}, + {-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5}, + {-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698}, + {-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125}, + {-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125}, + {-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375}, + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116}, + {-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5}, + {-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698}, + {-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125}, + {-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125}, + {-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375}, + }, + }, + drop = 'computer:monitor' , +}) + + minetest.register_node("computer:monitor_desktop", { + description = "Monitor and keyboard", + tiles = {"computer_monitor_t.png","computer_monitor_bt.png","computer_monitor_l.png","computer_monitor_r.png","computer_monitor_b.png","computer_monitor_f_desktop.png"}, + --inventory_image = + paramtype = "light", + light_source = 4, + paramtype2 = "facedir", + walkable = false, + is_ground_content = true, + groups = {crumbly=3,not_in_creative_inventory=1}, + --sounds = default.node_sound_dirt_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116}, + {-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5}, + {-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698}, + {-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125}, + {-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125}, + {-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375}, + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116}, + {-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5}, + {-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698}, + {-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125}, + {-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125}, + {-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375}, + }, + }, + drop = 'computer:monitor' , +}) + + minetest.register_node("computer:monitor", { + description = "Monitor and keyboard", + tiles = {"computer_monitor_t_off.png","computer_monitor_bt.png","computer_monitor_l.png","computer_monitor_r.png","computer_monitor_b.png","computer_monitor_f_off.png"}, + --inventory_image = + paramtype = "light", + light_source = 4, + paramtype2 = "facedir", + walkable = false, + is_ground_content = true, + groups = {crumbly=3}, + --sounds = default.node_sound_dirt_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116}, + {-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5}, + {-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698}, + {-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125}, + {-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125}, + {-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375}, + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116}, + {-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5}, + {-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698}, + {-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125}, + {-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125}, + {-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375}, + }, + }, + drop = 'computer:monitor' , + + on_rightclick = function ( pos, node, clicker, itemstack) + node.name = "computer:monitor_on"; + minetest.set_node(pos, node); + nodeupdate(pos) + end + +}) + +--WIFI Router (linksys look-a-like) + + minetest.register_node("computer:router", { + description = "WIFI Router", + tiles = {"computer_router_t.png","computer_router_bt.png","computer_router_l.png","computer_router_r.png","computer_router_b.png",{name="computer_router_f_animated.png", animation={type="vertical_frames", aspect_w=32, aspect_h=32, length=1.0}},}, --"computer_router_f.png"}, + --inventory_image = + paramtype = "light", + paramtype2 = "facedir", + walkable = false, + is_ground_content = true, + groups = {crumbly=3}, + --sounds = default.node_sound_dirt_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.0625, 0.25, -0.375, 0.3125}, + {-0.1875, -0.4375, 0.3125, -0.125, -0.1875, 0.375}, + {0.125, -0.4375, 0.3125, 0.1875, -0.1875, 0.375}, + {-0.0625, -0.4375, 0.3125, 0.0625, -0.25, 0.375}, + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.0625, 0.25, -0.375, 0.3125}, + {-0.1875, -0.4375, 0.3125, -0.125, -0.1875, 0.375}, + {0.125, -0.4375, 0.3125, 0.1875, -0.1875, 0.375}, + {-0.0625, -0.4375, 0.3125, 0.0625, -0.25, 0.375}, + }, + }, +}) + +--Modern PC Tower + + minetest.register_node("computer:tower_on", { + description = "Computer Tower", + tiles = {"computer_tower_t.png","computer_tower_bt.png","computer_tower_l.png","computer_tower_r.png","computer_tower_b.png","computer_tower_f_on.png"}, + --inventory_image = + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + is_ground_content = true, + groups = {crumbly=3,not_in_creative_inventory=1}, + --sounds = default.node_sound_dirt_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.1875, -0.5, -0.3125, 0.1875, 0.3125, 0.4375}, + {-0.1875, -0.5, -0.353774, 0.1875, 0, -0.0625}, + {-0.1875, 0.247641, -0.353774, 0.1875, 0.3125, 0.1875}, + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.1875, -0.5, -0.3125, 0.1875, 0.3125, 0.4375}, + }, + }, + drop = 'computer:tower' , + + on_rightclick = function ( pos, node, clicker, itemstack) + node.name = "computer:tower"; + minetest.set_node(pos, node); + nodeupdate(pos) + end +}) + + minetest.register_node("computer:tower", { + description = "Computer Tower", + tiles = {"computer_tower_t.png","computer_tower_bt.png","computer_tower_l.png","computer_tower_r.png","computer_tower_b.png","computer_tower_f_off.png"}, + --inventory_image = + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + is_ground_content = true, + groups = {crumbly=3}, + --sounds = default.node_sound_dirt_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.1875, -0.5, -0.3125, 0.1875, 0.3125, 0.4375}, + {-0.1875, -0.5, -0.353774, 0.1875, 0, -0.0625}, + {-0.1875, 0.247641, -0.353774, 0.1875, 0.3125, 0.1875}, + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.1875, -0.5, -0.3125, 0.1875, 0.3125, 0.4375}, + }, + }, + on_rightclick = function ( pos, node, clicker, itemstack) + node.name = "computer:tower_on"; + minetest.set_node(pos, node); + nodeupdate(pos) + end +}) + +-- Printer/scaner combo + +minetest.register_node("computer:printer", { + description = "Printer Scaner Combo", + tiles = {"computer_printer_t.png","computer_printer_bt.png","computer_printer_l.png","computer_printer_r.png","computer_printer_b.png","computer_printer_f.png"}, + --inventory_image = + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + is_ground_content = true, + groups = {crumbly=3}, + --sounds = default.node_sound_dirt_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.4375, -0.3125, -0.125, 0.4375, -0.0625, 0.375}, + {-0.4375, -0.5, -0.125, 0.4375, -0.4375, 0.375}, + {-0.4375, -0.5, -0.125, -0.25, -0.0625, 0.375}, + {0.25, -0.5, -0.125, 0.4375, -0.0625, 0.375}, + {-0.4375, -0.5, -0.0625, 0.4375, -0.0625, 0.375}, + {-0.375, -0.4375, 0.25, 0.375, -0.0625, 0.4375}, + {-0.25, -0.25, 0.4375, 0.25, 0.0625, 0.5}, + {-0.25, -0.481132, -0.3125, 0.25, -0.4375, 0}, + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.4375, -0.3125, -0.125, 0.4375, -0.0625, 0.375}, + {-0.4375, -0.5, -0.125, 0.4375, -0.4375, 0.375}, + {-0.4375, -0.5, -0.125, -0.25, -0.0625, 0.375}, + {0.25, -0.5, -0.125, 0.4375, -0.0625, 0.375}, + {-0.4375, -0.5, -0.0625, 0.4375, -0.0625, 0.375}, + {-0.375, -0.4375, 0.25, 0.375, -0.0625, 0.4375}, + {-0.25, -0.25, 0.4375, 0.25, 0.0625, 0.5}, + {-0.25, -0.481132, -0.3125, 0.25, -0.4375, 0}, + }, + }, +}) + +--Rack Server + +minetest.register_node("computer:server", { + drawtype = "nodebox", + description = "Rack Server", + tiles = { + 'computer_server_t.png', + 'computer_server_bt.png', + 'computer_server_l.png', + 'computer_server_r.png', + 'computer_server_bt.png', + 'computer_server_f_off.png' + }, + inventory_image = "computer_server_inv.png", + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = { snappy = 3 }, + + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}, + }, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}, + }, + --drop = 'computer:server', + sounds = default.node_sound_wood_defaults(), + on_rightclick = function ( pos, node, clicker, itemstack) + node.name = "computer:server_on"; + minetest.set_node(pos, node); + nodeupdate(pos) + end, + on_place = function(itemstack, placer, pointed_thing) + local pos = pointed_thing.above + if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name ~= "air" then + minetest.chat_send_player( placer:get_player_name(), "Not enough vertical space to place a server!" ) + return + end + return minetest.item_place(itemstack, placer, pointed_thing) + end, + + + +}) + +minetest.register_node("computer:server_on", { + drawtype = "nodebox", + description = "Rack Server", + tiles = { + 'computer_server_t.png', + 'computer_server_bt.png', + 'computer_server_r.png', + 'computer_server_l.png', + 'computer_server_bt.png', + 'computer_server_f_on.png', + }, + inventory_image = "computer_server_inv.png", + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = { snappy = 3,not_in_creative_inventory=1 }, + + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}, + }, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}, + }, + + sounds = default.node_sound_wood_defaults(), + drop = 'computer:server', + on_rightclick = function ( pos, node, clicker, itemstack) + node.name = "computer:server"; + minetest.set_node(pos, node); + nodeupdate(pos) + end , + +}) + + diff --git a/mods/homedecor_modpack/computer/depends.txt b/mods/homedecor_modpack/computer/depends.txt new file mode 100644 index 00000000..4ad96d51 --- /dev/null +++ b/mods/homedecor_modpack/computer/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/homedecor_modpack/computer/init.lua b/mods/homedecor_modpack/computer/init.lua new file mode 100644 index 00000000..2c85e7e7 --- /dev/null +++ b/mods/homedecor_modpack/computer/init.lua @@ -0,0 +1,105 @@ + +computer = { }; + +computer.register = function ( name, def ) + local nodename = name; + if (name:sub(1, 1) == ":") then name = name:sub(2); end + local modname, basename = name:match("^([^:]+):(.*)"); + local TEXPFX = modname.."_"..basename.."_"; + local ONSTATE = modname..":"..basename; + local OFFSTATE = modname..":"..basename.."_off"; + local def = def; + minetest.register_node(ONSTATE, { + drawtype = "nodebox"; + paramtype = "light"; + paramtype2 = "facedir"; + description = def.description; + groups = { snappy=2, choppy=2, oddly_breakable_by_hand=2 }; + tiles = { + TEXPFX.."tp.png", + TEXPFX.."bt.png", + TEXPFX.."rt.png", + TEXPFX.."lt.png", + TEXPFX.."bk.png", + TEXPFX.."ft.png", + }; + node_box = def.node_box; + selection_box = def.node_box; + on_rightclick = function ( pos, node, clicker, itemstack) + if (def.on_turn_off) then + if (def.on_turn_off(pos, node, clicker, itemstack)) then return; end + end + node.name = OFFSTATE; + minetest.env:set_node(pos, node); + nodeupdate(pos); + end; + }); + minetest.register_node(OFFSTATE, { + drawtype = "nodebox"; + paramtype = "light"; + paramtype2 = "facedir"; + groups = { snappy=2, choppy=2, oddly_breakable_by_hand=2, + not_in_creative_inventory=1 }; + tiles = { + (TEXPFX.."tp"..(def.tiles_off.top and "_off" or "")..".png"), + (TEXPFX.."bt"..(def.tiles_off.bottom and "_off" or "")..".png"), + (TEXPFX.."rt"..(def.tiles_off.right and "_off" or "")..".png"), + (TEXPFX.."lt"..(def.tiles_off.left and "_off" or "")..".png"), + (TEXPFX.."bk"..(def.tiles_off.back and "_off" or "")..".png"), + (TEXPFX.."ft"..(def.tiles_off.front and "_off" or "")..".png"), + }; + node_box = def.node_box_off or def.node_box; + selection_box = def.node_box_off or def.node_box; + on_rightclick = function ( pos, node, clicker, itemstack) + if (def.on_turn_on) then + if (def.on_turn_on(pos, node, clicker, itemstack)) then return; end + end + node.name = ONSTATE; + minetest.env:set_node(pos, node); + nodeupdate(pos); + end; + drop = ONSTATE; + }); +end + +computer.register_handheld = function ( name, def ) + local nodename = name; + if (name:sub(1, 1) == ":") then name = name:sub(2); end + local modname, basename = name:match("^([^:]+):(.*)"); + local TEXPFX = modname.."_"..basename.."_inv"; + local ONSTATE = modname..":"..basename; + local OFFSTATE = modname..":"..basename.."_off"; + local on_use = def.on_use; + minetest.register_craftitem(ONSTATE, { + description = def.description; + inventory_image = TEXPFX..".png"; + wield_image = TEXPFX..".png"; + }); +end + +computer.pixelnodebox = function ( size, boxes ) + local fixed = { }; + local i, box; + for i, box in ipairs(boxes) do + local x, y, z, w, h, l = unpack(box); + fixed[#fixed + 1] = { + (x / size) - 0.5, + (y / size) - 0.5, + (z / size) - 0.5, + ((x + w) / size) - 0.5, + ((y + h) / size) - 0.5, + ((z + l) / size) - 0.5, + }; + end + return { + type = "fixed"; + fixed = fixed; + }; +end + +local MODPATH = minetest.get_modpath("computer"); +dofile(MODPATH.."/computers.lua"); +dofile(MODPATH.."/miscitems.lua"); +dofile(MODPATH.."/recipes.lua"); + + diff --git a/mods/homedecor_modpack/computer/locale/es.txt b/mods/homedecor_modpack/computer/locale/es.txt new file mode 100644 index 00000000..db6fdcb4 --- /dev/null +++ b/mods/homedecor_modpack/computer/locale/es.txt @@ -0,0 +1,6 @@ + +# Language: Español +# Author: Diego Martínez + +Plastic sheet = Placa de Plastico +Unprocessed Plastic base = Base de Plastico No Procesada diff --git a/mods/homedecor_modpack/computer/miscitems.lua b/mods/homedecor_modpack/computer/miscitems.lua new file mode 100644 index 00000000..7ce63de5 --- /dev/null +++ b/mods/homedecor_modpack/computer/miscitems.lua @@ -0,0 +1,77 @@ + +-- Copyright (C) 2012-2013 Diego Martínez +-- License is WTFPL (see README.txt). + +-- This file defines some items in order to not have to depend on other mods. + +-- Boilerplate to support localized strings if intllib mod is installed. +local S; +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua"); + S = intllib.Getter(minetest.get_current_modname()); +else + S = function ( s ) return s; end +end + +if (not minetest.get_modpath("homedecor")) then + + minetest.register_craftitem(":homedecor:plastic_sheeting", { + description = S("Plastic sheet"), + inventory_image = "homedecor_plastic_sheeting.png", + }) + + minetest.register_craftitem(":homedecor:plastic_base", { + description = S("Unprocessed Plastic base"), + wield_image = "homedecor_plastic_base.png", + inventory_image = "homedecor_plastic_base_inv.png", + }) + + minetest.register_craft({ + type = "shapeless", + output = 'homedecor:plastic_base 6', + recipe = { "default:junglegrass", + "default:junglegrass", + "default:junglegrass" + } + }) + + minetest.register_craft({ + type = "shapeless", + output = 'homedecor:plastic_base 3', + recipe = { "default:dry_shrub", + "default:dry_shrub", + "default:dry_shrub" + }, + }) + + minetest.register_craft({ + type = "shapeless", + output = 'homedecor:plastic_base 4', + recipe = { "default:leaves", + "default:leaves", + "default:leaves", + "default:leaves", + "default:leaves", + "default:leaves" + } + }) + + minetest.register_craft({ + type = "cooking", + output = "homedecor:plastic_sheeting", + recipe = "homedecor:plastic_base", + }) + + minetest.register_craft({ + type = 'fuel', + recipe = 'homedecor:plastic_base', + burntime = 30, + }) + + minetest.register_craft({ + type = 'fuel', + recipe = 'homedecor:plastic_sheeting', + burntime = 30, + }) + +end -- not homedecor diff --git a/mods/homedecor_modpack/computer/recipes.lua b/mods/homedecor_modpack/computer/recipes.lua new file mode 100644 index 00000000..663d6b79 --- /dev/null +++ b/mods/homedecor_modpack/computer/recipes.lua @@ -0,0 +1,134 @@ + +-- Copyright (C) 2012-2013 Diego Martínez +-- License is WTFPL (see README.txt). + +minetest.register_craft({ + output = "computer:shefriendSOO"; + recipe = { + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, + { "homedecor:plastic_sheeting", "default:glass", "homedecor:plastic_sheeting", }, + { "homedecor:plastic_sheeting", "default:wood", "homedecor:plastic_sheeting", }, + }; +}); + +minetest.register_craft({ + output = "computer:slaystation"; + recipe = { + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, + { "homedecor:plastic_sheeting", "default:wood", "homedecor:plastic_sheeting", }, + }; +}); + +minetest.register_craft({ + output = "computer:vanio"; + recipe = { + { "homedecor:plastic_sheeting", "", "", }, + { "default:glass", "", "" }, + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, + }; +}); + +minetest.register_craft({ + output = "computer:specter"; + recipe = { + { "", "", "homedecor:plastic_sheeting", }, + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, + }; +}); + +minetest.register_craft({ + output = "computer:slaystation2"; + recipe = { + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, + { "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting", }, + }; +}); + +minetest.register_craft({ + output = "computer:admiral64"; + recipe = { + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, + { "default:wood", "default:wood", "default:wood", }, + }; +}); + +minetest.register_craft({ + output = "computer:admiral128"; + recipe = { + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, + { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot", }, + }; +}); + +minetest.register_craft({ + output = "computer:wee"; + recipe = { + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, + { "homedecor:plastic_sheeting", "default:copper_ingot", "homedecor:plastic_sheeting", }, + }; +}); + +minetest.register_craft({ + output = "computer:piepad"; + recipe = { + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, + { "homedecor:plastic_sheeting", "default:glass", "homedecor:plastic_sheeting", }, + }; +}); + +--new stuff + +minetest.register_craft({ + output = "computer:monitor"; + recipe = { + { "homedecor:plastic_sheeting", "default:glass","", }, + { "homedecor:plastic_sheeting", "default:glass","", }, + { "homedecor:plastic_sheeting", "default:mese_crystal_fragment", "homedecor:plastic_sheeting", }, + }; +}); + +minetest.register_craft({ + output = "computer:router"; + recipe = { + { "default:steel_ingot","","", }, + { "default:steel_ingot" ,"homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, + { "default:mese_crystal_fragment","homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, + }; +}); + +minetest.register_craft({ + output = "computer:tower"; + recipe = { + { "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting", }, + { "homedecor:plastic_sheeting", "default:mese_crystal", "homedecor:plastic_sheeting", }, + { "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting", }, + }; +}); + +minetest.register_craft({ + output = "computer:printer"; + recipe = { + { "homedecor:plastic_sheeting", "default:steel_ingot","", }, + { "homedecor:plastic_sheeting", "default:mese_crystal", "homedecor:plastic_sheeting", }, + { "homedecor:plastic_sheeting", "default:coal_lump", "homedecor:plastic_sheeting", }, + }; +}); + +minetest.register_craft({ + output = "computer:printer"; + recipe = { + { "homedecor:plastic_sheeting", "default:steel_ingot","", }, + { "homedecor:plastic_sheeting", "default:mese_crystal", "homedecor:plastic_sheeting", }, + { "homedecor:plastic_sheeting", "dye:black", "homedecor:plastic_sheeting", }, + }; +}); + +minetest.register_craft({ + output = "computer:server"; + recipe = { + { "computer:tower", "computer:tower", "computer:tower", }, + { "computer:tower", "computer:tower", "computer:tower", }, + { "computer:tower", "computer:tower", "computer:tower", }, + }; +}); diff --git a/mods/homedecor_modpack/computer/textures/computer_admiral128_bk.png b/mods/homedecor_modpack/computer/textures/computer_admiral128_bk.png new file mode 100644 index 00000000..488ec1d0 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_admiral128_bk.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_admiral128_bt.png b/mods/homedecor_modpack/computer/textures/computer_admiral128_bt.png new file mode 100644 index 00000000..73d1f2a0 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_admiral128_bt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_admiral128_ft.png b/mods/homedecor_modpack/computer/textures/computer_admiral128_ft.png new file mode 100644 index 00000000..67d250ca Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_admiral128_ft.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_admiral128_lt.png b/mods/homedecor_modpack/computer/textures/computer_admiral128_lt.png new file mode 100644 index 00000000..07f112cc Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_admiral128_lt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_admiral128_rt.png b/mods/homedecor_modpack/computer/textures/computer_admiral128_rt.png new file mode 100644 index 00000000..bf8052d1 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_admiral128_rt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_admiral128_tp.png b/mods/homedecor_modpack/computer/textures/computer_admiral128_tp.png new file mode 100644 index 00000000..e3788a4f Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_admiral128_tp.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_admiral64_bk.png b/mods/homedecor_modpack/computer/textures/computer_admiral64_bk.png new file mode 100644 index 00000000..b10bb38d Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_admiral64_bk.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_admiral64_bt.png b/mods/homedecor_modpack/computer/textures/computer_admiral64_bt.png new file mode 100644 index 00000000..fc50758b Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_admiral64_bt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_admiral64_ft.png b/mods/homedecor_modpack/computer/textures/computer_admiral64_ft.png new file mode 100644 index 00000000..51f40e6c Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_admiral64_ft.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_admiral64_lt.png b/mods/homedecor_modpack/computer/textures/computer_admiral64_lt.png new file mode 100644 index 00000000..1332a134 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_admiral64_lt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_admiral64_rt.png b/mods/homedecor_modpack/computer/textures/computer_admiral64_rt.png new file mode 100644 index 00000000..c89353f3 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_admiral64_rt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_admiral64_tp.png b/mods/homedecor_modpack/computer/textures/computer_admiral64_tp.png new file mode 100644 index 00000000..da1fcdd9 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_admiral64_tp.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_babytower_back.png b/mods/homedecor_modpack/computer/textures/computer_babytower_back.png new file mode 100644 index 00000000..b94088d0 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_babytower_back.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_babytower_bottom.png b/mods/homedecor_modpack/computer/textures/computer_babytower_bottom.png new file mode 100644 index 00000000..b94088d0 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_babytower_bottom.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_babytower_front.png b/mods/homedecor_modpack/computer/textures/computer_babytower_front.png new file mode 100644 index 00000000..d164fd82 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_babytower_front.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_babytower_left.png b/mods/homedecor_modpack/computer/textures/computer_babytower_left.png new file mode 100644 index 00000000..b94088d0 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_babytower_left.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_babytower_right.png b/mods/homedecor_modpack/computer/textures/computer_babytower_right.png new file mode 100644 index 00000000..b94088d0 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_babytower_right.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_babytower_top.png b/mods/homedecor_modpack/computer/textures/computer_babytower_top.png new file mode 100644 index 00000000..d82eea87 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_babytower_top.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_computer_front_old.png b/mods/homedecor_modpack/computer/textures/computer_computer_front_old.png new file mode 100644 index 00000000..5f591a64 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_computer_front_old.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_computer_top_old.png b/mods/homedecor_modpack/computer/textures/computer_computer_top_old.png new file mode 100644 index 00000000..625479c8 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_computer_top_old.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_monitor_b.png b/mods/homedecor_modpack/computer/textures/computer_monitor_b.png new file mode 100644 index 00000000..c04d33d1 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_monitor_b.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_monitor_bt.png b/mods/homedecor_modpack/computer/textures/computer_monitor_bt.png new file mode 100644 index 00000000..4575e36e Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_monitor_bt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_monitor_btdl.png b/mods/homedecor_modpack/computer/textures/computer_monitor_btdl.png new file mode 100644 index 00000000..10ee8be3 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_monitor_btdl.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_monitor_f_bios.png b/mods/homedecor_modpack/computer/textures/computer_monitor_f_bios.png new file mode 100644 index 00000000..3755a63e Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_monitor_f_bios.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_monitor_f_desktop.png b/mods/homedecor_modpack/computer/textures/computer_monitor_f_desktop.png new file mode 100644 index 00000000..72ec0948 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_monitor_f_desktop.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_monitor_f_dl.png b/mods/homedecor_modpack/computer/textures/computer_monitor_f_dl.png new file mode 100644 index 00000000..5ed17eb6 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_monitor_f_dl.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_monitor_f_loading.png b/mods/homedecor_modpack/computer/textures/computer_monitor_f_loading.png new file mode 100644 index 00000000..bd0f4963 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_monitor_f_loading.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_monitor_f_login.png b/mods/homedecor_modpack/computer/textures/computer_monitor_f_login.png new file mode 100644 index 00000000..20095638 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_monitor_f_login.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_monitor_f_off.png b/mods/homedecor_modpack/computer/textures/computer_monitor_f_off.png new file mode 100644 index 00000000..35c7899e Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_monitor_f_off.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_monitor_f_on.png b/mods/homedecor_modpack/computer/textures/computer_monitor_f_on.png new file mode 100644 index 00000000..220e37ab Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_monitor_f_on.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_monitor_l.png b/mods/homedecor_modpack/computer/textures/computer_monitor_l.png new file mode 100644 index 00000000..9f9efcf0 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_monitor_l.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_monitor_r.png b/mods/homedecor_modpack/computer/textures/computer_monitor_r.png new file mode 100644 index 00000000..9f9efcf0 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_monitor_r.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_monitor_t.png b/mods/homedecor_modpack/computer/textures/computer_monitor_t.png new file mode 100644 index 00000000..28300db5 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_monitor_t.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_monitor_t_off.png b/mods/homedecor_modpack/computer/textures/computer_monitor_t_off.png new file mode 100644 index 00000000..d2502f2e Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_monitor_t_off.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_monitor_tdl.png b/mods/homedecor_modpack/computer/textures/computer_monitor_tdl.png new file mode 100644 index 00000000..85d40445 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_monitor_tdl.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_piepad_inv.png b/mods/homedecor_modpack/computer/textures/computer_piepad_inv.png new file mode 100644 index 00000000..386999d9 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_piepad_inv.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_piepad_inv_off.png b/mods/homedecor_modpack/computer/textures/computer_piepad_inv_off.png new file mode 100644 index 00000000..aabe8b3d Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_piepad_inv_off.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_printer_b.png b/mods/homedecor_modpack/computer/textures/computer_printer_b.png new file mode 100644 index 00000000..a3bc6b14 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_printer_b.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_printer_bt.png b/mods/homedecor_modpack/computer/textures/computer_printer_bt.png new file mode 100644 index 00000000..762eb27c Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_printer_bt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_printer_f.png b/mods/homedecor_modpack/computer/textures/computer_printer_f.png new file mode 100644 index 00000000..f8abf3ed Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_printer_f.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_printer_l.png b/mods/homedecor_modpack/computer/textures/computer_printer_l.png new file mode 100644 index 00000000..94be11e8 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_printer_l.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_printer_r.png b/mods/homedecor_modpack/computer/textures/computer_printer_r.png new file mode 100644 index 00000000..bd254968 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_printer_r.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_printer_t.png b/mods/homedecor_modpack/computer/textures/computer_printer_t.png new file mode 100644 index 00000000..5fe41740 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_printer_t.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_router_b.png b/mods/homedecor_modpack/computer/textures/computer_router_b.png new file mode 100644 index 00000000..3d5b884e Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_router_b.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_router_bt.png b/mods/homedecor_modpack/computer/textures/computer_router_bt.png new file mode 100644 index 00000000..c07500a2 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_router_bt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_router_f.png b/mods/homedecor_modpack/computer/textures/computer_router_f.png new file mode 100644 index 00000000..5e69f052 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_router_f.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_router_f_animated.png b/mods/homedecor_modpack/computer/textures/computer_router_f_animated.png new file mode 100644 index 00000000..fb9cfabd Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_router_f_animated.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_router_l.png b/mods/homedecor_modpack/computer/textures/computer_router_l.png new file mode 100644 index 00000000..67d3afe6 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_router_l.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_router_r.png b/mods/homedecor_modpack/computer/textures/computer_router_r.png new file mode 100644 index 00000000..86e10e8f Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_router_r.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_router_t.png b/mods/homedecor_modpack/computer/textures/computer_router_t.png new file mode 100644 index 00000000..8d2febe2 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_router_t.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_server_bt.png b/mods/homedecor_modpack/computer/textures/computer_server_bt.png new file mode 100644 index 00000000..d9b72e68 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_server_bt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_server_f_off.png b/mods/homedecor_modpack/computer/textures/computer_server_f_off.png new file mode 100644 index 00000000..4b92fe65 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_server_f_off.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_server_f_on.png b/mods/homedecor_modpack/computer/textures/computer_server_f_on.png new file mode 100644 index 00000000..cb6b47af Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_server_f_on.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_server_inv.png b/mods/homedecor_modpack/computer/textures/computer_server_inv.png new file mode 100644 index 00000000..5a6d8f45 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_server_inv.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_server_l.png b/mods/homedecor_modpack/computer/textures/computer_server_l.png new file mode 100644 index 00000000..776596fd Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_server_l.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_server_r.png b/mods/homedecor_modpack/computer/textures/computer_server_r.png new file mode 100644 index 00000000..49da9eb7 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_server_r.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_server_t.png b/mods/homedecor_modpack/computer/textures/computer_server_t.png new file mode 100644 index 00000000..d9b72e68 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_server_t.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_shefriendSOO_bk.png b/mods/homedecor_modpack/computer/textures/computer_shefriendSOO_bk.png new file mode 100644 index 00000000..cb3b121b Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_shefriendSOO_bk.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_shefriendSOO_bt.png b/mods/homedecor_modpack/computer/textures/computer_shefriendSOO_bt.png new file mode 100644 index 00000000..e51b7d7c Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_shefriendSOO_bt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_shefriendSOO_ft.png b/mods/homedecor_modpack/computer/textures/computer_shefriendSOO_ft.png new file mode 100644 index 00000000..8305e289 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_shefriendSOO_ft.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_shefriendSOO_ft_off.png b/mods/homedecor_modpack/computer/textures/computer_shefriendSOO_ft_off.png new file mode 100644 index 00000000..9a9e9a80 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_shefriendSOO_ft_off.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_shefriendSOO_lt.png b/mods/homedecor_modpack/computer/textures/computer_shefriendSOO_lt.png new file mode 100644 index 00000000..53b90ef2 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_shefriendSOO_lt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_shefriendSOO_rt.png b/mods/homedecor_modpack/computer/textures/computer_shefriendSOO_rt.png new file mode 100644 index 00000000..35765494 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_shefriendSOO_rt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_shefriendSOO_tp.png b/mods/homedecor_modpack/computer/textures/computer_shefriendSOO_tp.png new file mode 100644 index 00000000..c8c28d5f Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_shefriendSOO_tp.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_slaystation2_bk.png b/mods/homedecor_modpack/computer/textures/computer_slaystation2_bk.png new file mode 100644 index 00000000..81664413 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_slaystation2_bk.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_slaystation2_bt.png b/mods/homedecor_modpack/computer/textures/computer_slaystation2_bt.png new file mode 100644 index 00000000..bac0f75f Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_slaystation2_bt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_slaystation2_ft.png b/mods/homedecor_modpack/computer/textures/computer_slaystation2_ft.png new file mode 100644 index 00000000..7bf7f1fd Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_slaystation2_ft.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_slaystation2_ft_off.png b/mods/homedecor_modpack/computer/textures/computer_slaystation2_ft_off.png new file mode 100644 index 00000000..7753da89 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_slaystation2_ft_off.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_slaystation2_lt.png b/mods/homedecor_modpack/computer/textures/computer_slaystation2_lt.png new file mode 100644 index 00000000..5fe035bd Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_slaystation2_lt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_slaystation2_rt.png b/mods/homedecor_modpack/computer/textures/computer_slaystation2_rt.png new file mode 100644 index 00000000..c3eb1494 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_slaystation2_rt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_slaystation2_tp.png b/mods/homedecor_modpack/computer/textures/computer_slaystation2_tp.png new file mode 100644 index 00000000..273ed877 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_slaystation2_tp.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_slaystation_bk.png b/mods/homedecor_modpack/computer/textures/computer_slaystation_bk.png new file mode 100644 index 00000000..eca4b2d9 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_slaystation_bk.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_slaystation_bt.png b/mods/homedecor_modpack/computer/textures/computer_slaystation_bt.png new file mode 100644 index 00000000..0bd1a469 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_slaystation_bt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_slaystation_ft.png b/mods/homedecor_modpack/computer/textures/computer_slaystation_ft.png new file mode 100644 index 00000000..49cd44d2 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_slaystation_ft.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_slaystation_lt.png b/mods/homedecor_modpack/computer/textures/computer_slaystation_lt.png new file mode 100644 index 00000000..5b55a4bf Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_slaystation_lt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_slaystation_rt.png b/mods/homedecor_modpack/computer/textures/computer_slaystation_rt.png new file mode 100644 index 00000000..06b40ccb Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_slaystation_rt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_slaystation_tp.png b/mods/homedecor_modpack/computer/textures/computer_slaystation_tp.png new file mode 100644 index 00000000..2fbf46fc Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_slaystation_tp.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_slaystation_tp_off.png b/mods/homedecor_modpack/computer/textures/computer_slaystation_tp_off.png new file mode 100644 index 00000000..20dd999e Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_slaystation_tp_off.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_specter_bk.png b/mods/homedecor_modpack/computer/textures/computer_specter_bk.png new file mode 100644 index 00000000..28be26e9 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_specter_bk.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_specter_bt.png b/mods/homedecor_modpack/computer/textures/computer_specter_bt.png new file mode 100644 index 00000000..a9d27bf3 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_specter_bt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_specter_ft.png b/mods/homedecor_modpack/computer/textures/computer_specter_ft.png new file mode 100644 index 00000000..8e50ce5e Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_specter_ft.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_specter_lt.png b/mods/homedecor_modpack/computer/textures/computer_specter_lt.png new file mode 100644 index 00000000..73b8d4d7 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_specter_lt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_specter_rt.png b/mods/homedecor_modpack/computer/textures/computer_specter_rt.png new file mode 100644 index 00000000..72bbb143 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_specter_rt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_specter_tp.png b/mods/homedecor_modpack/computer/textures/computer_specter_tp.png new file mode 100644 index 00000000..0d5a92da Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_specter_tp.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_spectre_back.png b/mods/homedecor_modpack/computer/textures/computer_spectre_back.png new file mode 100644 index 00000000..d5abffc9 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_spectre_back.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_spectre_bottom.png b/mods/homedecor_modpack/computer/textures/computer_spectre_bottom.png new file mode 100644 index 00000000..701a191e Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_spectre_bottom.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_spectre_front.png b/mods/homedecor_modpack/computer/textures/computer_spectre_front.png new file mode 100644 index 00000000..6ad7f280 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_spectre_front.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_spectre_left.png b/mods/homedecor_modpack/computer/textures/computer_spectre_left.png new file mode 100644 index 00000000..b7d0ac34 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_spectre_left.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_spectre_right.png b/mods/homedecor_modpack/computer/textures/computer_spectre_right.png new file mode 100644 index 00000000..19f98157 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_spectre_right.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_spectre_top.png b/mods/homedecor_modpack/computer/textures/computer_spectre_top.png new file mode 100644 index 00000000..058f6102 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_spectre_top.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_tower_b.png b/mods/homedecor_modpack/computer/textures/computer_tower_b.png new file mode 100644 index 00000000..4ff13f49 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_tower_b.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_tower_bt.png b/mods/homedecor_modpack/computer/textures/computer_tower_bt.png new file mode 100644 index 00000000..9f9efcf0 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_tower_bt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_tower_f_off.png b/mods/homedecor_modpack/computer/textures/computer_tower_f_off.png new file mode 100644 index 00000000..47770172 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_tower_f_off.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_tower_f_on.png b/mods/homedecor_modpack/computer/textures/computer_tower_f_on.png new file mode 100644 index 00000000..e2eff77b Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_tower_f_on.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_tower_l.png b/mods/homedecor_modpack/computer/textures/computer_tower_l.png new file mode 100644 index 00000000..e605b92a Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_tower_l.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_tower_r.png b/mods/homedecor_modpack/computer/textures/computer_tower_r.png new file mode 100644 index 00000000..516dd726 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_tower_r.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_tower_t.png b/mods/homedecor_modpack/computer/textures/computer_tower_t.png new file mode 100644 index 00000000..9f9efcf0 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_tower_t.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_vanio_bk.png b/mods/homedecor_modpack/computer/textures/computer_vanio_bk.png new file mode 100644 index 00000000..54f3d928 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_vanio_bk.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_vanio_bk_off.png b/mods/homedecor_modpack/computer/textures/computer_vanio_bk_off.png new file mode 100644 index 00000000..6748cea7 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_vanio_bk_off.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_vanio_bt.png b/mods/homedecor_modpack/computer/textures/computer_vanio_bt.png new file mode 100644 index 00000000..33b630ae Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_vanio_bt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_vanio_ft.png b/mods/homedecor_modpack/computer/textures/computer_vanio_ft.png new file mode 100644 index 00000000..69d4e9f4 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_vanio_ft.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_vanio_ft_off.png b/mods/homedecor_modpack/computer/textures/computer_vanio_ft_off.png new file mode 100644 index 00000000..6748cea7 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_vanio_ft_off.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_vanio_lt.png b/mods/homedecor_modpack/computer/textures/computer_vanio_lt.png new file mode 100644 index 00000000..0bc3d68c Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_vanio_lt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_vanio_lt_off.png b/mods/homedecor_modpack/computer/textures/computer_vanio_lt_off.png new file mode 100644 index 00000000..6748cea7 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_vanio_lt_off.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_vanio_rt.png b/mods/homedecor_modpack/computer/textures/computer_vanio_rt.png new file mode 100644 index 00000000..fc163b58 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_vanio_rt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_vanio_rt_off.png b/mods/homedecor_modpack/computer/textures/computer_vanio_rt_off.png new file mode 100644 index 00000000..6748cea7 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_vanio_rt_off.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_vanio_tp.png b/mods/homedecor_modpack/computer/textures/computer_vanio_tp.png new file mode 100644 index 00000000..61144dca Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_vanio_tp.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_vanio_tp_off.png b/mods/homedecor_modpack/computer/textures/computer_vanio_tp_off.png new file mode 100644 index 00000000..21fb0df7 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_vanio_tp_off.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_wee_bk.png b/mods/homedecor_modpack/computer/textures/computer_wee_bk.png new file mode 100644 index 00000000..d70c2c05 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_wee_bk.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_wee_bt.png b/mods/homedecor_modpack/computer/textures/computer_wee_bt.png new file mode 100644 index 00000000..687ccceb Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_wee_bt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_wee_ft.png b/mods/homedecor_modpack/computer/textures/computer_wee_ft.png new file mode 100644 index 00000000..eacfc210 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_wee_ft.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_wee_ft_off.png b/mods/homedecor_modpack/computer/textures/computer_wee_ft_off.png new file mode 100644 index 00000000..27db57e8 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_wee_ft_off.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_wee_lt.png b/mods/homedecor_modpack/computer/textures/computer_wee_lt.png new file mode 100644 index 00000000..d9242d98 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_wee_lt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_wee_rt.png b/mods/homedecor_modpack/computer/textures/computer_wee_rt.png new file mode 100644 index 00000000..d9242d98 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_wee_rt.png differ diff --git a/mods/homedecor_modpack/computer/textures/computer_wee_tp.png b/mods/homedecor_modpack/computer/textures/computer_wee_tp.png new file mode 100644 index 00000000..35448e89 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/computer_wee_tp.png differ diff --git a/mods/homedecor_modpack/computer/textures/homedecor_plastic_base.png b/mods/homedecor_modpack/computer/textures/homedecor_plastic_base.png new file mode 100644 index 00000000..5c0a0ad1 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/homedecor_plastic_base.png differ diff --git a/mods/homedecor_modpack/computer/textures/homedecor_plastic_base_inv.png b/mods/homedecor_modpack/computer/textures/homedecor_plastic_base_inv.png new file mode 100644 index 00000000..f3f3f2b2 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/homedecor_plastic_base_inv.png differ diff --git a/mods/homedecor_modpack/computer/textures/homedecor_plastic_sheeting.png b/mods/homedecor_modpack/computer/textures/homedecor_plastic_sheeting.png new file mode 100644 index 00000000..91dd5322 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/homedecor_plastic_sheeting.png differ diff --git a/mods/homedecor_modpack/computer/textures/unused/computer_babytower_back.png b/mods/homedecor_modpack/computer/textures/unused/computer_babytower_back.png new file mode 100644 index 00000000..711649a2 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/unused/computer_babytower_back.png differ diff --git a/mods/homedecor_modpack/computer/textures/unused/computer_babytower_bottom.png b/mods/homedecor_modpack/computer/textures/unused/computer_babytower_bottom.png new file mode 100644 index 00000000..711649a2 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/unused/computer_babytower_bottom.png differ diff --git a/mods/homedecor_modpack/computer/textures/unused/computer_babytower_front.png b/mods/homedecor_modpack/computer/textures/unused/computer_babytower_front.png new file mode 100644 index 00000000..6bbbdd1b Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/unused/computer_babytower_front.png differ diff --git a/mods/homedecor_modpack/computer/textures/unused/computer_babytower_left.png b/mods/homedecor_modpack/computer/textures/unused/computer_babytower_left.png new file mode 100644 index 00000000..711649a2 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/unused/computer_babytower_left.png differ diff --git a/mods/homedecor_modpack/computer/textures/unused/computer_babytower_right.png b/mods/homedecor_modpack/computer/textures/unused/computer_babytower_right.png new file mode 100644 index 00000000..711649a2 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/unused/computer_babytower_right.png differ diff --git a/mods/homedecor_modpack/computer/textures/unused/computer_babytower_top.png b/mods/homedecor_modpack/computer/textures/unused/computer_babytower_top.png new file mode 100644 index 00000000..f7ff21b1 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/unused/computer_babytower_top.png differ diff --git a/mods/homedecor_modpack/computer/textures/unused/computer_computer_front_old.png b/mods/homedecor_modpack/computer/textures/unused/computer_computer_front_old.png new file mode 100644 index 00000000..6cff1c17 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/unused/computer_computer_front_old.png differ diff --git a/mods/homedecor_modpack/computer/textures/unused/computer_computer_top_old.png b/mods/homedecor_modpack/computer/textures/unused/computer_computer_top_old.png new file mode 100644 index 00000000..422ad94f Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/unused/computer_computer_top_old.png differ diff --git a/mods/homedecor_modpack/computer/textures/unused/computer_shefriendSOO_ (copia).png b/mods/homedecor_modpack/computer/textures/unused/computer_shefriendSOO_ (copia).png new file mode 100644 index 00000000..711649a2 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/unused/computer_shefriendSOO_ (copia).png differ diff --git a/mods/homedecor_modpack/computer/textures/unused/computer_spectre_back.png b/mods/homedecor_modpack/computer/textures/unused/computer_spectre_back.png new file mode 100644 index 00000000..83263db8 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/unused/computer_spectre_back.png differ diff --git a/mods/homedecor_modpack/computer/textures/unused/computer_spectre_bottom.png b/mods/homedecor_modpack/computer/textures/unused/computer_spectre_bottom.png new file mode 100644 index 00000000..439e9d4a Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/unused/computer_spectre_bottom.png differ diff --git a/mods/homedecor_modpack/computer/textures/unused/computer_spectre_front.png b/mods/homedecor_modpack/computer/textures/unused/computer_spectre_front.png new file mode 100644 index 00000000..82193601 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/unused/computer_spectre_front.png differ diff --git a/mods/homedecor_modpack/computer/textures/unused/computer_spectre_left.png b/mods/homedecor_modpack/computer/textures/unused/computer_spectre_left.png new file mode 100644 index 00000000..69e4e08b Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/unused/computer_spectre_left.png differ diff --git a/mods/homedecor_modpack/computer/textures/unused/computer_spectre_right.png b/mods/homedecor_modpack/computer/textures/unused/computer_spectre_right.png new file mode 100644 index 00000000..4030e9be Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/unused/computer_spectre_right.png differ diff --git a/mods/homedecor_modpack/computer/textures/unused/computer_spectre_top.png b/mods/homedecor_modpack/computer/textures/unused/computer_spectre_top.png new file mode 100644 index 00000000..96220a06 Binary files /dev/null and b/mods/homedecor_modpack/computer/textures/unused/computer_spectre_top.png differ diff --git a/mods/homedecor_modpack/fake_fire/LICENSE.txt b/mods/homedecor_modpack/fake_fire/LICENSE.txt new file mode 100644 index 00000000..7015bc8c --- /dev/null +++ b/mods/homedecor_modpack/fake_fire/LICENSE.txt @@ -0,0 +1,694 @@ +JP's Fork of LazyJ's Minetest Mod, "Fake Fire" +by : JP. + +Replaced LazyJ's smoke nodes pictures by smoke particles. Lighter, prettier, configurable smoke. + +====================================================================== + + +LazyJ's Fork of Semmett9's Minetest Mod, "Fake Fire" +by: +LazyJ + +This is my fork of Semmett9's "Fake Fire" mod. Some code clean-up, a +bunch of changes and a few new things have been added. + + + +====================================================================== + + + 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. + + + Copyright (C) + + 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: + + Copyright (C) + 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 +. \ No newline at end of file diff --git a/mods/homedecor_modpack/fake_fire/README.txt b/mods/homedecor_modpack/fake_fire/README.txt new file mode 100644 index 00000000..01fd377c --- /dev/null +++ b/mods/homedecor_modpack/fake_fire/README.txt @@ -0,0 +1,62 @@ +##### JP's Fork of LazyJ's Minetest Mod, "Fake Fire" + +Replaced LazyJ's smoke nodes pictures by smoke particles. Lighter, prettier, configurable smoke. + + + +##### LazyJ's Fork of Semmett9's "Fake Fire" Mod + +This fork of 'Fake Fire' is based off of Semmett9's 2014_03_14 release of the +mod. + +At LinuxGaming.us, we have a creative-leaning Minetest server. Destruction by +arson is not something we like. When the Fake Fire mod was installed we finally +could make warm hearths and campfires without fear of burning down our builds. +We could also use Fake Fire to simulate things burning without worrying our +neighbors about the fires spreading and destroying their stuff. + +As a creative bunch of Minetesters, we often come up with new ideas for things. +This fork of "Fake Fire" incorporates some of those ideas. + + +Semmett9's original version of this mod can be found here: + +* Minetest.net +http://forum.minetest.net/viewtopic.php?id=6145 + +* Ad.Fly +http://adf.ly/RbzwV + +Yes, it has advertisements. That's what helps to pay for hosting Semmett9's +website and server costs. Everything has a cost. Someone pays. Even when it +comes to so-called free, open-source software. Someone pays. Everything has a +cost. Try running your own business and you will understand. There are no +free lunches in life. + +Ok, done ranting. ;)- + + +~ LazyJ, 2014_06_19 + + + +Minetest version: 0.4.9 +Depends: default +Recommended Additional Mods: none +License: GPL v2 +Source Code: http://github.com/LazyJ/fake_fire +Download (.zip): http://github.com/LazyJ/fake_fire/archive/master.zip + +Install: + * After downloading, unzip the file. + * Rename the directory "fake_fire_fork-master" to "fake_fire" + * Copy the "fake_fire" directory into either + ../minetest/worlds/yourworld'sname/worldmods/ + or + ../minetest/mods/ + * If you put "fake_fire" in the ../minetest/mods/ directory, either + enable the mod from within Minetest's "Configure" button + (main menu, bottom right) or by adding this line to the + world's "world.mt" file: + load_mod_fake_fire = true + diff --git a/mods/homedecor_modpack/fake_fire/changelog.txt b/mods/homedecor_modpack/fake_fire/changelog.txt new file mode 100644 index 00000000..9afe9f3b --- /dev/null +++ b/mods/homedecor_modpack/fake_fire/changelog.txt @@ -0,0 +1,86 @@ +CHANGELOG +~~~~~~~~~~~~~~~~~ + +2014_07_27: + +* Replaced LazyJ's smoke nodes pictures by smoke particles. Lighter, prettier, configurable smoke. +* Code clean-up. + + +2014_06_21: + + * Added changelog.txt, 2014_06_19. Some changes are much older than this. + I've been making little tweaks to it for several months and finally decided + to give it an overhaul. + * Code clean-up. + * Split the init.lua file stuff into separate files and moved them into the + "modfiles" folder. + * I had added a lump of coal to be dropped when the flame was dug but, as + one of our moderators pointed out, once word got out, new players would + snuff-out every fake_fire they found just to get easy coal. The coal drop + was removed. + * Changed the flint crafting recipe to require 2 gravel instead of one. + This resolves a crafting conflict with another mod. The recipe is also + shapless now. + * Added crafting recipes for 1 cobble to 1 gravel, then 1 gravel to 1 sand. + For Wazuland2 these recipes are commented out because another mod takes + care of them (the reason for changing the flint recipe). + * Health-damage disabled. This fork is strictly for decoration. + * Waving added to flames and smoke. + * Rising, disappearing smoke-puffs added. Smoke columns will rise to 14 + spaces above the flame or chimney top. + * Smoke can be punched to remove. + * Never-ending flint and steel disabled. May add it as a priv later. + * Extinguishing with water and lava(??) disabled. Again, this fork is + strictly for decoration so dousing the flames with water or lava would just + make a big, needless mess. Much easier and cleaner to just punch the flame. + * Flame images are hidden from creative inventory but are still provided + for in the code and image files if you want them to be visible. Just remove + the "not_in_creative_inventory" part from the groups of the flame types and + they will be visible again. Having the images in inventory is useful when + playing in creative mode or if you want to torture griefers who put in the + time and effort to get the materials to make the fire hoping to be able to + burn things only to discover that it is *fake* and *harmless*. Bwa-hahaha! + * Added ice-fire, a blue-colored flame that only ignites on snow and ice + stuff. + * Added added ability to switch between smoking and non-smoking flames by + punching them. Default is non-smoking. + * Added stone and sandstone chimney caps that can produce smoke when punched + (smoking and non-smoking versions). Useful for small builds where a 3x3 + chimney would be too oversized in proportion to the reset of the build. + * Added animated, glowing embers. This hearth-warming block emits a + mid-level light and simulates the hot coals under a flame. Flames are not + required and the embers blocks are smokeless. + + + +2014_06_23: + + * Flames - "sunlight_propagates = true," + -- Adding sunlight_propagtes and leaving comments as a future reference. + -- If true, sunlight will go infinitely through this (no shadow is cast). + -- Because fire produces light it should be "true" so fire *doesn't* have + -- a shadow. + + * Embers - "sunlight_propagates = true," + -- Adding sunlight_propagtes and leaving comments as a future reference. + -- If true, sunlight will go infinitely through this (no shadow is cast). + -- Because embers produce some light it should be somewhat "true" but this + -- is an area where Minetest lacks in subtlety so I'm opting for 100% that + -- embers *don't* have a shadow. + + * Bug Fix - Server Crash when Flint-Steel Clicked on Nothing (sky). + -- Players can see farther than they can reach. Even though the player + -- was aiming for a node several spaces ahead of them, Minetest's targeting + -- range doesn't extend that far. The player saw the node they were aiming + -- at, Minetest's target range ended and Minetest saw "nothing" + -- (a nil value). The bug was a conflict in the code so when that + -- particular nil value popped up, Minetest was confused by the bug, threw + -- up it's hands in frustration and said "I quit!" by crashing. + + * Original init.lua Added + -- What I thought was the original init.lua file turned out to be one I had + -- tinkered with months ago. So I extracted the actual original init.lua + -- file from a zip file of the original mod. Why bother including it in my + -- fork? Because it's a reference to compare to and learn from. + \ No newline at end of file diff --git a/mods/homedecor_modpack/fake_fire/depends.txt b/mods/homedecor_modpack/fake_fire/depends.txt new file mode 100644 index 00000000..562cf632 --- /dev/null +++ b/mods/homedecor_modpack/fake_fire/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/homedecor_modpack/fake_fire/init.lua b/mods/homedecor_modpack/fake_fire/init.lua new file mode 100644 index 00000000..207e06b1 --- /dev/null +++ b/mods/homedecor_modpack/fake_fire/init.lua @@ -0,0 +1,37 @@ +--[[ + +The 'Fake-Fire' mod was originally created by Semmett9. + +URL to the 'Fake-Fire' thread on Minetest.net: +http://forum.minetest.net/viewtopic.php?id=6145 + +I've customized it a bit. Please see the changelog.txt file for more details. + +~ LazyJ, 2014_03_15 + +--]] + +dofile(minetest.get_modpath("fake_fire").."/modfiles/nodes.lua") +dofile(minetest.get_modpath("fake_fire").."/modfiles/crafts.lua") +dofile(minetest.get_modpath("fake_fire").."/modfiles/abms.lua") + + + +--[[ + + The lines below, at the end, are from the original author, Semmett9. + + Thanks for a nice mod, Semmett9. ;) + + ~ LazyJ, 2014_03_14 + +--]] + + + +-- Thanks- + +-- Many thanks for addi for his help in coding. -- + +-- Many thanks for the players on the King Arthur's land server for giving -- +-- me support, ideas and allowing me to add the mod to the server itself. -- diff --git a/mods/homedecor_modpack/fake_fire/modfiles/abms.lua b/mods/homedecor_modpack/fake_fire/modfiles/abms.lua new file mode 100644 index 00000000..0bb6967e --- /dev/null +++ b/mods/homedecor_modpack/fake_fire/modfiles/abms.lua @@ -0,0 +1,84 @@ +--[[ + + I commented out this part because: + 1. water and lava buckets are disabled on some servers, + 2. putting out fire with water and especially lava would only make + a big mess, and... + + As for 'realism': + * C'mon... This is *fake* fire. + * Torches have long been impervious to water. + * Minetest creates surreal worlds so it's OK if some things aren't + perfectly realistic. + + Besides, the fake-fire can be put out by punching it - simple and effective. + ~ LazyJ, 2014_03_14 + + + +-- water and lava puts out fake fire -- +minetest.register_abm({ + nodenames = {"fake_fire:fake_fire"}, + interval = 1, + chance = 1, + action = function(pos, node) + if minetest.env:find_node_near(pos, 1, {"default:water_source", + "default:water_flowing","default:lava_source", + "default:lava_flowing"}) then + minetest.sound_play("fire_extinguish", + {gain = 1.0, max_hear_distance = 20,}) + node.name = "air" + minetest.env:set_node(pos, node) + end + end +}) + + + +-- ADVISING ABOUT SMOKE PARTICLES SETTINGS + + -- For the best visual result... + -- If you increase the particles size, + -- you should decrease the particles amount and/or increase the smoke column lenght. + -- If you increase the particle time duration and/or particle course, + -- you should decrease the particles amount or increase the smoke column lenght. + -- Or conversely... + -- ~ JP + + --]] + +minetest.register_abm({ + nodenames = { + "fake_fire:fake_fire", + "fake_fire:ice_fire", + "fake_fire:chimney_top_stone", + "fake_fire:chimney_top_sandstone" + }, + interval = 1, + chance = 2, + action = function(pos, node) + if + minetest.get_node({x=pos.x, y=pos.y+1.0, z=pos.z}).name == "air" and + minetest.get_node({x=pos.x, y=pos.y+2.0, z=pos.z}).name == "air" + then + local image_number = math.random(4) + minetest.add_particlespawner( + 8, --particles amount + 1, --time + {x=pos.x-0.25, y=pos.y+0.4, z=pos.z-0.25}, --min. smoke position + {x=pos.x+0.25, y=pos.y+8, z=pos.z+0.25}, --max. smoke position + {x=-0.2, y=0.3, z=-0.2}, --min. particle velocity + {x=0.2, y=1, z=0.2}, --max. particle velocity + {x=0,y=0,z=0}, --min. particle acceleration + {x=0,y=0,z=0}, --max. particle acceleration + 0.5, --min. time particle expiration + 3, --max. time particle expiration + 2, --min. particle size + 10, --max. particle size + false, --collision detection + "smoke_particle_"..image_number..".png" --textures + ) + end + end +}) + diff --git a/mods/homedecor_modpack/fake_fire/modfiles/crafts.lua b/mods/homedecor_modpack/fake_fire/modfiles/crafts.lua new file mode 100644 index 00000000..94848070 --- /dev/null +++ b/mods/homedecor_modpack/fake_fire/modfiles/crafts.lua @@ -0,0 +1,169 @@ +--[[ + + NEVER-ENDING FLINT and STEEL + + Uncraftable, at the moment, and I'm not sure yet how many wanna-be-firebug + griefers are going to litter with fake-fire. Why give them this if it only + makes the mess bigger? ~ LazyJ, 2014_03_13 + + May add a priv for this later so trusted players can use it. + ~ LazyJ, 2014_06_19 + +minetest.register_craftitem("fake_fire:old_flint_and_steel", { + description = "Never ending flint and steel", + inventory_image = "flint_and_steel.png", + stack_max = 1, + liquids_pointable = false, + on_use = function(itemstack, user, pointed_thing) + n = minetest.env:get_node(pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_node(pointed_thing.above, + {name="fake_fire:fake_fire"}) + minetest.sound_play("", + {gain = 1.0, max_hear_distance = 20,}) + end + end +}) +--]] + + +-- RECIPE ITEM - FLINT +minetest.register_craftitem("fake_fire:flint", { + description = "flint", + inventory_image = "flint.png", + stack_max = 99, + liquids_pointable = false, +}) + + + +-- FLINT +minetest.register_craft({ + type = "shapeless", + output = 'fake_fire:flint', + recipe = { + "default:gravel", + "default:gravel", + } +}) + + + +-- FLINT & STEEL +minetest.register_craft({ + type = "shapeless", + output = 'fake_fire:flint_and_steel', + recipe = { + "fake_fire:flint", + "default:steel_ingot", + } +}) + + + +-- EMBERS +minetest.register_craft({ + type = "shapeless", + output = 'fake_fire:embers', + recipe = { + "default:torch", + "group:wood", + } +}) + + + +-- CHIMNEY TOPS - SMOKELESS + + -- Only the smokeless kind will be craftable and shown in the inventory. + -- The nodes are coded to switch to the smoking chimney tops when punched. + -- ~ LazyJ + +-- STONE CHIMNEY TOP +minetest.register_craft({ + type = "shapeless", + output = 'fake_fire:smokeless_chimney_top_stone', + recipe = { + "default:torch", + "stairs:slab_stone", + } +}) + + + +-- SANDSTONE CHIMNEY TOP +minetest.register_craft({ + type = "shapeless", + output = 'fake_fire:smokeless_chimney_top_sandstone', + recipe = { + "default:torch", + "stairs:slab_sandstone", + } +}) + + + +-- Crafting Chain - Cobble-to-Gravel-to-Sand and Convert Sands + +--[[ + + Craft one cobble into one gravel. + Craft one gravel into one sand. + Convert-craft sand to desert sand and vice-versa. + + This was suggested by klappspaten and it makes sense in both its natural + progression and as a practical way for players to get some of the non- + renewable resources that they need. + + Because the gravel-to-sand recipe (from one of our other custom mods) + conflicted with the Fake Fire mod's flint recipe, the Fake Fire mod's + recipe was changed to require 2 gravel. + + I've added the cobble-gravel-sand and convert sands recipes as a bonus and + to make-up for the more expensive flint recipe. You can comment-out these + recipes because they aren't *required* by this fork of Fake Fire, but they + *are* handy recipes to have. + + ~ LazyJ + + + +--]] + +-- Cobble to Gravel +minetest.register_craft({ + output = 'default:gravel', + recipe = { + {'default:cobble'}, + } +}) + + + +-- Gravel to Sand +minetest.register_craft({ + output = 'default:sand', + recipe = { + {'default:gravel'}, + } +}) + + + +-- Desert Sand to Sand +minetest.register_craft({ + output = 'default:sand', + recipe = { + {'default:desert_sand'}, + } +}) + + + +-- Sand to Desert Sand +minetest.register_craft({ + output = 'default:desert_sand', + recipe = { + {'default:sand'}, + } +}) \ No newline at end of file diff --git a/mods/homedecor_modpack/fake_fire/modfiles/nodes.lua b/mods/homedecor_modpack/fake_fire/modfiles/nodes.lua new file mode 100644 index 00000000..315e0279 --- /dev/null +++ b/mods/homedecor_modpack/fake_fire/modfiles/nodes.lua @@ -0,0 +1,460 @@ +-- FLAME TYPES + +-- SMOKEY FIRE (TRIGGERS SMOKE ABM) +minetest.register_node("fake_fire:fake_fire", { + description = "Smokey, Fake Fire", + tiles = { + {name="fake_fire_animated.png", animation={type="vertical_frames", + aspect_w=16, aspect_h=16, length=1.5}}, + }, + is_ground_content = true, + inventory_image = 'fake_fire.png', + wield_image = { + {name="fake_fire_animated.png", animation={type="vertical_frames", + aspect_w=16, aspect_h=16, length=1.5}}, + }, + drawtype = "plantlike", + -- Waving wasn't an option when this mod was written. ~ LazyJ, 2014_03_13 + waving = 1, + light_source = 14, + -- Adding sunlight_propagtes and leaving comments as a future reference. + -- If true, sunlight will go infinitely through this (no shadow is cast). + -- Because fire produces light it should be "true" so fire *doesn't* have + -- a shadow. + sunlight_propagates = true, + -- damage_per_second = 2*0.5, -- It's *fake* fire. PvP on our server has + -- been disabled for a reason. I don't want griefers lighting players on + -- fire or trapping them in blazes. ~ LazyJ, 2014_0_13 + --groups = {dig_immediate=3,attached_node=1}, + groups = { + oddly_breakable_by_hand=3, dig_immediate=2, attached_node=1, + not_in_creative_inventory=1 + }, + paramtype = "light", + walkable = false, + drop = "", -- So fire won't return to the inventory. ~ LazyJ + sounds = minetest.sound_play("fire_small", {pos=cp, loop=true}), + on_punch = function (pos,node,puncher) + -- A max_hear_distance of 20 may freak some players out by the "hiss" + -- so I reduced it to 5. + minetest.sound_play("fire_extinguish", {pos = pos, gain = 1.0, + max_hear_distance = 5,}) + -- This swaps the smoky version with the smokeless version. ~ LazyJ + minetest.set_node(pos, {name = "fake_fire:smokeless_fire"}) + end +}) + + + +-- SMOKELESS FIRE (DOES NOT TRIGGER SMOKE ABM) +minetest.register_node("fake_fire:smokeless_fire", { + description = "Smokeless, Fake Fire", + tiles = { + {name="fake_fire_animated.png", animation={type="vertical_frames", + aspect_w=16, aspect_h=16, length=1.5}}, + }, + is_ground_content = true, + inventory_image = 'fake_fire.png', + wield_image = { + {name="fake_fire_animated.png", animation={type="vertical_frames", + aspect_w=16, aspect_h=16, length=1.5}}, + }, + drawtype = "plantlike", + -- Waving wasn't an option when this mod was written. ~ LazyJ, 2014_03_13 + waving = 1, + light_source = 14, + -- Adding sunlight_propagtes and leaving comments as a future reference. + -- If true, sunlight will go infinitely through this (no shadow is cast). + -- Because fire produces light it should be "true" so fire *doesn't* have + -- a shadow. + sunlight_propagates = true, + -- damage_per_second = 2*0.5, -- It's *fake* fire. PvP on our server has + -- been disabled for a reason. I don't want griefers lighting players on + -- fire or trapping them in blazes. ~ LazyJ, 2014_0_13 + --groups = {dig_immediate=3,attached_node=1}, + groups = { + oddly_breakable_by_hand=3, dig_immediate=2, attached_node=1, + not_in_creative_inventory=1 + }, + paramtype = "light", + walkable = false, + drop = "", -- So fire won't return to the inventory. ~ LazyJ + sounds = minetest.sound_play("fire_small", {pos=cp, loop=true}), + on_punch = function (pos,node,puncher) + -- A max_hear_distance of 20 may freak some players out by the "hiss" + -- so I reduced it to 5. + minetest.sound_play("fire_extinguish", {pos = pos, gain = 1.0, + max_hear_distance = 5,}) + -- This swaps the smokeless version with the smoky version. ~ LazyJ + minetest.set_node(pos, {name = "fake_fire:fake_fire"}) + end +}) + + + +-- SMOKEY ICE FIRE (TRIGGERS SMOKE ABM) +minetest.register_node("fake_fire:ice_fire", { + description = "Smoky, Fake, Ice Fire", + tiles = { + {name="ice_fire_animated.png", animation={type="vertical_frames", + aspect_w=16, aspect_h=16, length=1.5}}, + }, + is_ground_content = true, + inventory_image = 'ice_fire.png', + wield_image = { + {name="ice_fire_animated.png", animation={type="vertical_frames", + aspect_w=16, aspect_h=16, length=1.5}}, + }, + drawtype = "plantlike", + -- Waving wasn't an option when this mod was written. ~ LazyJ, 2014_03_13 + waving = 1, + light_source = 14, + -- Adding sunlight_propagtes and leaving comments as a future reference. + -- If true, sunlight will go infinitely through this (no shadow is cast). + -- Because fire produces light it should be "true" so fire *doesn't* have + -- a shadow. + sunlight_propagates = true, + -- damage_per_second = 2*0.5, -- It's *fake* fire. PvP on our server has + -- been disabled for a reason. I don't want griefers lighting players on + -- fire or trapping them in blazes. ~ LazyJ, 2014_0_13 + --groups = {dig_immediate=3,attached_node=1}, + groups = { + oddly_breakable_by_hand=3, dig_immediate=2, attached_node=1, + not_in_creative_inventory=1 + }, + paramtype = "light", + walkable = false, + drop = "", -- So fire won't return to the inventory. ~ LazyJ + sounds = minetest.sound_play("fire_small", {pos=cp, loop=true}), + on_punch = function (pos,node,puncher) + -- A max_hear_distance of 20 may freak some players out by the "hiss" + -- so I reduced it to 5. + minetest.sound_play("fire_extinguish", {pos = pos, gain = 1.0, + max_hear_distance = 5,}) + -- This swaps the smoky version with the smokeless version. ~ LazyJ + minetest.set_node(pos, {name = "fake_fire:smokeless_ice_fire"}) + end +}) + + + +-- SMOKELESS ICE FIRE (DOES NOT TRIGGER SMOKE ABM) +minetest.register_node("fake_fire:smokeless_ice_fire", { + description = "Smokeless, Fake, Ice Fire", + tiles = { + {name="ice_fire_animated.png", animation={type="vertical_frames", + aspect_w=16, aspect_h=16, length=1.5}}, + }, + is_ground_content = true, + inventory_image = 'ice_fire.png', + wield_image = { + {name="ice_fire_animated.png", animation={type="vertical_frames", + aspect_w=16, aspect_h=16, length=1.5}}, + }, + drawtype = "plantlike", + -- Waving wasn't an option when this mod was written. ~ LazyJ, 2014_03_13 + waving = 1, + light_source = 14, + -- Adding sunlight_propagtes and leaving comments as a future reference. + -- If true, sunlight will go infinitely through this (no shadow is cast). + -- Because fire produces light it should be "true" so fire *doesn't* have + -- a shadow. + sunlight_propagates = true, + -- damage_per_second = 2*0.5, -- It's *fake* fire. PvP on our server has + -- been disabled for a reason. I don't want griefers lighting players on + -- fire or trapping them in blazes. ~ LazyJ, 2014_0_13 + --groups = {dig_immediate=3,attached_node=1}, + groups = { + oddly_breakable_by_hand=3, dig_immediate=2, attached_node=1, + not_in_creative_inventory=1 + }, + paramtype = "light", + walkable = false, + drop = "", -- So fire won't return to the inventory. ~ LazyJ + sounds = minetest.sound_play("fire_small", {pos=cp, loop=true}), + on_punch = function (pos,node,puncher) + -- A max_hear_distance of 20 may freak some players out by the "hiss" + -- so I reduced it to 5. + minetest.sound_play("fire_extinguish", {pos = pos, gain = 1.0, + max_hear_distance = 5,}) + -- This swaps the smokeless version with the smoky version. ~ LazyJ + minetest.set_node(pos, {name = "fake_fire:ice_fire"}) + end +}) + + + +-- FLINT and STEEL + +minetest.register_tool("fake_fire:flint_and_steel", { + description = "Flint and steel", + inventory_image = "flint_and_steel.png", + liquids_pointable = false, + stack_max = 1, + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=0, + groupcaps={flamable = {uses=65, maxlevel=1}, + } + }, + on_use = function(itemstack, user, pointed_thing) + -- This next section took me a lot of keyboard bashing to figure out. + -- The lua documentation and examples for Minetest are terrible. + -- ~ LazyJ, 2014_06_23 + + local snow_ice_list = {"snow", "ice",} + + for _, which_one_is_it in pairs(snow_ice_list) do + local snow_ice = which_one_is_it + + if + -- A *node*, not a player or sprite. ~ LazyJ + pointed_thing.type == "node" + + --[[ + These next two "and nots" tell Minetest not to put the + red flame on snow and ice stuff. This "string" bit was + the workable solution that took many hours, over + several days, to finally come around to. It's a search + for any node name that contains whatever is between the + double-quotes, ie. "snow" or "ice". I had been trying + to identify the nodes by their group properties and I + couldn't figure out how to do it. The clue for the + "string"came from Blockmen's "Landscape" mod. + + Another quirk is that the "string" doesn't work well + with variable lists (see "snow_ice_list") when using + "and not". Ice-fire would light on snow but when I + clicked on ice, the regular flame appeared. I couldn't + understand what was happening until I mentally changed + the wording "and not" to "is not" and spoke out-loud + each thing that line of code was to accomplish: + + "Is not snow, then make fake-fire." + "Is not ice, then make fake-fire." + + That's when I caught the problem. + + Ice *is not* snow, so Minetest was correctly following + the instruction, "Is not snow, then make fake-fire." + and that is why fake-fire appeared instead of ice-fire + when I clicked on ice. + + ~ LazyJ + --]] + + and not + string.find(minetest.get_node(pointed_thing.under).name, "snow") + and not + string.find(minetest.get_node(pointed_thing.under).name, "ice") + and + minetest.get_node(pointed_thing.above).name == "air" + then + if not minetest.is_protected(pointed_thing.above, user:get_player_name()) then + minetest.set_node(pointed_thing.above, {name="fake_fire:smokeless_fire"}) + else + minetest.chat_send_player(user:get_player_name(), "You can't set a fire in someone else's area!") + end + elseif + + pointed_thing.type == "node" + and + -- Split this "string" across several lines because I ran out + -- of room while trying to adhere to the 80-column wide rule + -- of coding style. + string.find( + minetest.get_node(pointed_thing.under).name, + snow_ice + ) + and + minetest.get_node(pointed_thing.above).name == "air" + then + if not minetest.is_protected(pointed_thing.above, user:get_player_name()) then + minetest.set_node(pointed_thing.above, {name="fake_fire:smokeless_ice_fire"}) + else + minetest.chat_send_player(user:get_player_name(), "You can't set a fire in someone else's area!") + end + end -- Line 210, if + end -- Line 207, for/do + + minetest.sound_play("", + {gain = 1.0, max_hear_distance = 2,}) + itemstack:add_wear(65535/65) + return itemstack + end +}) -- Closes the flint and steel tool registration + + + +--[[ + + SOME LESSONS LEARNED (and keeping this because I'll forget) + + flint_and_steel is registered as a tool. Tools do not materialize something + like placing a block (on_construct) makes that block appear. Tools are + *used* so "on_use" works but not "on_construct". + + on_rightclick is meant for the code of the thing being clicked on, not the + code of the thing doing the clicking. + + ~ LazyJ + +--]] + + + +-- ANIMATED, RISING, DISPAPPEARING SMOKE + +--[[ + + These next two sections of code are a real bonus that I figured out how + to pull-off. ;) + + The first section creates animated smoke. Trying to figure out how to make + the animation appear to go upward was a headache. + + The second section places the animated smoke *only* above the fake-fire + *if* there is nothing but air straight above the fake-fire. I also made + the smoke skip a space so it looks more like puffs of smoke and made it + stretch high enough to be used in chimneys. For large builds, a second + fake-fire will have to be hidden close to the top of the chimney so the + smoke will be visible. The smoke also emmits a low-level light. + + Yup, I'm proud of this little addition I've made to Semmett9's mod. :D + + ~ LazyJ, 2014_03_15 + +--]] + + + +-- EMBERS + +minetest.register_node("fake_fire:embers", { + description = "Glowing Embers", + tiles = { + {name="embers_animated.png", animation={type="vertical_frames", + aspect_w=16, aspect_h=16, length=2}}, + }, + inventory_image = minetest.inventorycube('fake_fire_embers.png'), + is_ground_content = true, + light_source = 9, + -- Adding sunlight_propagtes and leaving comments as a future reference. + -- If true, sunlight will go infinitely through this (no shadow is cast). + -- Because embers produce some light it should be somewhat "true" but this + -- is an area where Minetest lacks in subtlety so I'm opting for 100% that + -- embers *don't* have a shadow. + sunlight_propagates = true, + -- It's almost soft, brittle charcoal. ~ LazyJ + groups = {choppy=3, crumbly=3, oddly_breakable_by_hand=3}, + paramtype = "light", + -- You never know when a creative builder may use the screwdriver or + -- position to create a subtle effect that makes their creation just + -- that little bit nicer looking. ~ Lazyj + paramtype2 = "facedir", + walkable = true, + sounds = minetest.sound_play("fire_small", {pos=cp, loop=true}), +}) + + + +-- CHIMNEY TOPS + + -- Stone (cool tone) to go with cool colors. + -- Sandstone (warm tone) to go with warm colors. + +-- CHIMNEY TOP - STONE +minetest.register_node("fake_fire:chimney_top_stone", { + description = "Chimney Top - Stone", + tiles = {"chimney_top_stone.png", "default_stone.png"}, + is_ground_content = true, + groups = {cracky=3, oddly_breakable_by_hand=1, not_in_creative_inventory=1}, + paramtype = "light", + sounds = default.node_sound_stone_defaults(), + drop = "fake_fire:smokeless_chimney_top_stone", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + }, + on_punch = function (pos,node,puncher) + -- This swaps the smokeless version with the smoky version when punched. + -- ~ LazyJ + minetest.set_node(pos, {name = "fake_fire:smokeless_chimney_top_stone"}) + end +}) + + + +-- CHIMNEY TOP - SANDSTONE +minetest.register_node("fake_fire:chimney_top_sandstone", { + description = "Chimney Top - Sandstone", + tiles = {"chimney_top_sandstone.png", "default_sandstone.png"}, + is_ground_content = true, + groups = {cracky=3, oddly_breakable_by_hand=1, not_in_creative_inventory=1}, + paramtype = "light", + sounds = default.node_sound_stone_defaults(), + drop = "fake_fire:smokeless_chimney_top_sandstone", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + }, + on_punch = function (pos,node,puncher) + -- This swaps the smokeless version with the smoky version when punched. + -- ~ LazyJ + minetest.set_node(pos, + {name = "fake_fire:smokeless_chimney_top_sandstone"}) + end +}) + + + +-- SMOKELESS CHIMNEY TOPS + + -- Some players may want a chimney top *without* smoke. This is the node + -- that will be craftable. To get the smoking variety, simply punch the + -- node. Same approach is used with the smoking and non-smoking flames. + -- ~ LazyJ + +-- SMOKELESS CHIMNEY TOP - STONE +minetest.register_node("fake_fire:smokeless_chimney_top_stone", { + description = "Chimney Top - Stone", + tiles = {"chimney_top_stone.png", "default_stone.png"}, + is_ground_content = true, + groups = {cracky=3, oddly_breakable_by_hand=1}, + paramtype = "light", + sounds = default.node_sound_stone_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + }, + on_punch = function (pos,node,puncher) + -- This swaps the smokeless version with the smoky version when punched. + -- ~ LazyJ + minetest.set_node(pos, {name = "fake_fire:chimney_top_stone"}) + end +}) + + + +-- SMOKELESS CHIMNEY TOP - SANDSTONE +minetest.register_node("fake_fire:smokeless_chimney_top_sandstone", { + description = "Chimney Top - Sandstone", + tiles = {"chimney_top_sandstone.png", "default_sandstone.png"}, + is_ground_content = true, + groups = {cracky=3, oddly_breakable_by_hand=1}, + paramtype = "light", + sounds = default.node_sound_stone_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + }, + on_punch = function (pos,node,puncher) + -- This swaps the smokeless version with the smoky version when punched. + -- ~ LazyJ + minetest.set_node(pos, {name = "fake_fire:chimney_top_sandstone"}) + end +}) diff --git a/mods/homedecor_modpack/fake_fire/sounds/fire_extinguish.ogg b/mods/homedecor_modpack/fake_fire/sounds/fire_extinguish.ogg new file mode 100644 index 00000000..38c56d6a Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/sounds/fire_extinguish.ogg differ diff --git a/mods/homedecor_modpack/fake_fire/sounds/fire_ignite.ogg b/mods/homedecor_modpack/fake_fire/sounds/fire_ignite.ogg new file mode 100644 index 00000000..9063eeb8 Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/sounds/fire_ignite.ogg differ diff --git a/mods/homedecor_modpack/fake_fire/sounds/fire_small.ogg b/mods/homedecor_modpack/fake_fire/sounds/fire_small.ogg new file mode 100644 index 00000000..5aac595b Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/sounds/fire_small.ogg differ diff --git a/mods/homedecor_modpack/fake_fire/textures/chimney_top_sandstone.png b/mods/homedecor_modpack/fake_fire/textures/chimney_top_sandstone.png new file mode 100644 index 00000000..be937dbb Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/textures/chimney_top_sandstone.png differ diff --git a/mods/homedecor_modpack/fake_fire/textures/chimney_top_sandstone.xcf b/mods/homedecor_modpack/fake_fire/textures/chimney_top_sandstone.xcf new file mode 100644 index 00000000..2edfc473 Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/textures/chimney_top_sandstone.xcf differ diff --git a/mods/homedecor_modpack/fake_fire/textures/chimney_top_stone.png b/mods/homedecor_modpack/fake_fire/textures/chimney_top_stone.png new file mode 100644 index 00000000..afb2ef72 Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/textures/chimney_top_stone.png differ diff --git a/mods/homedecor_modpack/fake_fire/textures/chimney_top_stone.xcf b/mods/homedecor_modpack/fake_fire/textures/chimney_top_stone.xcf new file mode 100644 index 00000000..aab3449c Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/textures/chimney_top_stone.xcf differ diff --git a/mods/homedecor_modpack/fake_fire/textures/embers_animated.png b/mods/homedecor_modpack/fake_fire/textures/embers_animated.png new file mode 100644 index 00000000..08ee660f Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/textures/embers_animated.png differ diff --git a/mods/homedecor_modpack/fake_fire/textures/embers_animated.xcf b/mods/homedecor_modpack/fake_fire/textures/embers_animated.xcf new file mode 100644 index 00000000..23e7da2a Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/textures/embers_animated.xcf differ diff --git a/mods/homedecor_modpack/fake_fire/textures/fake_fire.png b/mods/homedecor_modpack/fake_fire/textures/fake_fire.png new file mode 100644 index 00000000..7e3deae4 Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/textures/fake_fire.png differ diff --git a/mods/homedecor_modpack/fake_fire/textures/fake_fire_animated.png b/mods/homedecor_modpack/fake_fire/textures/fake_fire_animated.png new file mode 100644 index 00000000..f4cd8db6 Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/textures/fake_fire_animated.png differ diff --git a/mods/homedecor_modpack/fake_fire/textures/fake_fire_animated_old.png b/mods/homedecor_modpack/fake_fire/textures/fake_fire_animated_old.png new file mode 100644 index 00000000..328e2855 Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/textures/fake_fire_animated_old.png differ diff --git a/mods/homedecor_modpack/fake_fire/textures/fake_fire_embers.png b/mods/homedecor_modpack/fake_fire/textures/fake_fire_embers.png new file mode 100644 index 00000000..a450f2ec Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/textures/fake_fire_embers.png differ diff --git a/mods/homedecor_modpack/fake_fire/textures/fake_fire_embers.xcf b/mods/homedecor_modpack/fake_fire/textures/fake_fire_embers.xcf new file mode 100644 index 00000000..e3ca9545 Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/textures/fake_fire_embers.xcf differ diff --git a/mods/homedecor_modpack/fake_fire/textures/flint.png b/mods/homedecor_modpack/fake_fire/textures/flint.png new file mode 100644 index 00000000..5c699917 Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/textures/flint.png differ diff --git a/mods/homedecor_modpack/fake_fire/textures/flint_and_steel.png b/mods/homedecor_modpack/fake_fire/textures/flint_and_steel.png new file mode 100644 index 00000000..5ffd88d0 Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/textures/flint_and_steel.png differ diff --git a/mods/homedecor_modpack/fake_fire/textures/ice_fire.png b/mods/homedecor_modpack/fake_fire/textures/ice_fire.png new file mode 100644 index 00000000..363b03c6 Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/textures/ice_fire.png differ diff --git a/mods/homedecor_modpack/fake_fire/textures/ice_fire.xcf b/mods/homedecor_modpack/fake_fire/textures/ice_fire.xcf new file mode 100644 index 00000000..62ce3f5e Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/textures/ice_fire.xcf differ diff --git a/mods/homedecor_modpack/fake_fire/textures/ice_fire_animated.png b/mods/homedecor_modpack/fake_fire/textures/ice_fire_animated.png new file mode 100644 index 00000000..04c5a100 Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/textures/ice_fire_animated.png differ diff --git a/mods/homedecor_modpack/fake_fire/textures/ice_fire_animated.xcf b/mods/homedecor_modpack/fake_fire/textures/ice_fire_animated.xcf new file mode 100644 index 00000000..b663b8ff Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/textures/ice_fire_animated.xcf differ diff --git a/mods/homedecor_modpack/fake_fire/textures/smoke_particle_1.png b/mods/homedecor_modpack/fake_fire/textures/smoke_particle_1.png new file mode 100644 index 00000000..23043030 Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/textures/smoke_particle_1.png differ diff --git a/mods/homedecor_modpack/fake_fire/textures/smoke_particle_2.png b/mods/homedecor_modpack/fake_fire/textures/smoke_particle_2.png new file mode 100644 index 00000000..0b3d7154 Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/textures/smoke_particle_2.png differ diff --git a/mods/homedecor_modpack/fake_fire/textures/smoke_particle_3.png b/mods/homedecor_modpack/fake_fire/textures/smoke_particle_3.png new file mode 100644 index 00000000..acac1578 Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/textures/smoke_particle_3.png differ diff --git a/mods/homedecor_modpack/fake_fire/textures/smoke_particle_4.png b/mods/homedecor_modpack/fake_fire/textures/smoke_particle_4.png new file mode 100644 index 00000000..b546ddae Binary files /dev/null and b/mods/homedecor_modpack/fake_fire/textures/smoke_particle_4.png differ diff --git a/mods/homedecor_modpack/homedecor/LICENSE b/mods/homedecor_modpack/homedecor/LICENSE new file mode 100644 index 00000000..65c5ca88 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER 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. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser 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 +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/mods/homedecor_modpack/homedecor/changelog.txt b/mods/homedecor_modpack/homedecor/changelog.txt new file mode 100644 index 00000000..9e287e72 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/changelog.txt @@ -0,0 +1,229 @@ +Changelog +--------- + +2013-03-16: Kaeza pushed fixes for signs on wrought iron/brass fences not +showing the text. This also fixed a potential undesired replacement bug. He +also fixed many of the sounds in the mod so that they aren't based on leaves. +:-) + +2013-03-11: Kaeza merged in code from my fork of thexyz/PilzAdam's +3d/visible-text signs mods and fixed some bugs in my signs-on-fenceposts code +in homedecor. If you have any of those three versions of the signs mod, +uninstall it. Homedecor will cover its functionality. Thanks to kaeza for the +contribution! Also, now signs-on-fences work slightly differently than before +when digging - dig to get the sign back from the post, then dig the remaining +post to get that back as well. + +2013-02-13: changed glowlight recipes to avoid conflicts with moreblocks (now +uses moreblocks glowglass *and* super glowglass together), made IC rely on +moreores copper ingot, added recipes to craft glow cubes back into glowlight +slabs. See crafting guide for details. + +2012-02-09: Add ability to place a sign directly onto a brass/wrought iron +fencepost, rather than crafting a sign-on-fencepost from one of each. Place a +brass or wrought iron fencepost, then attempt to place a sign against it. +Instead of the sign floating in air, the fencepost will be replaced with one +bearing the sign in the same node. Dig to get the two pieces back as separate +items, right click the resultant sign to edit the text thereon. + +2012-02-08: Added ability to add signs to brass/wrought iron fenceposts. + +2013-01-23: Completely rewrote all doors code to condense them into two files - +one with the nodebox models, and one with the actual node definitions. In the +process, cleaned up the code that handles node_ownership and protection mods. +Also made the mod automatically enable either left-click or right-click to +open/close a door, depending on whether the game supports it (actually it +checks for the existance of an unrelated function that happened to be added the +same time as the new right-click function). Renamed some textures, duplicated +all of the _lr.png textures to make it easier to register the textures in a +loop and to allow for more flexible texturing. + +2012-10-11 (late night): Minor update - fixed a recipe conflict with throwing +mod. Unprocessed plastic, when made from jungle grass or dry shrubs, now +requires three jungle grass (yields 6) or three dry shrubs (yields 3). Still +works with 6 leaves also. Extended the above owned-node support to work with +glomie's "protector" mod since it has a similar bug as node_ownership has. + + All server Admins: If you have Home Decor and you use either node_ownership + or protector (or both), please update your copy of Home Decor as soon as + practical. + +2012-10-09: Added code to all doors to check for the presence of node_ownership +and adapt accordingly. If that mod is present, you can only place doors in +land you own, or land you have been given permission by the owner to build in, +or land that is not owned at all. Singleplayer mode still works the same as +before. Works around a bug in node_ownership where it doesn't completely +handle the on_place= construct in register_node(), causing it to only delete +half of an illegally-placed door. + +2012-10-05: Added titanium dioxide and white paint from Unified Dyes as +alternates if that mod isn't present. Both are compatible/interchangeable with +the ones from that mod. Uses the same crafting recipes as UD uses, plus a +couple of alternates in case of materials shortages. Added white and mahogany +variants of the aforementioned grid-style glass-and-wood door. + +2012-10-04: Added a couple new types of doors, converted the others to +nodeboxes. All door code has been rewritten mostly from scratch. These new +doors should convert over just fine, or at least you won't lose anything. You +may have to dig and re-place a few if their orientation is wrong. Also note +that these always return the left-opening version when you dig one. + +2012-10-03: Refrigerators are now two nodes tall and have a 10x5 inventory +space. If you have two stacked up already before this update, you'll need to +empty them, dig them, and then re-place one or both, and put their contents +back in. Sorry about the inconvenience, the one-node-tall ones were only +supposed to be temporary anyway. Besides, now one stores more than twice as +much as before. :-) The associated crafting recipe yields only one now, in +keeping with this change. + +2012-10-01: Added white glowlights, changed nodenames for yellow glowlights to +indicate that they're supposed to be yellow (you'll need to destroy and +re-craft them, sorry). + +2012-09-30: Added a few different kinds of fences - bare/unpainted wooden and +classic white picket fences, chainlink, barbed wire, and wooden privacy fence +(e.g to put around a backyard pool). + +Also added gates that open/close on a click, for the picket fences, chainlink +fence, and barbed wire fence. For the privacy fence, use a regular door if you +need a gate. + +2012-09-30: Big set of updates today to make the mod a little easier to use in +places and to add some more nodes. Recipe changes: Brass and wrought iron +poles, table legs, and fences/railings were too expensive in practice. +Increased recipe outputs. Small square glass table now comes from one small +round table (instead of three-to-two). Large square glass table comes from one +small square now instead of two. Small round, small square, and large wooden +tables follow the same pattern. + + Recycling: All glass tables can be recycled back into glass blocks via the + Vessels mod's recipes. All are 3:1 with glass fragments (and thus, 3:1 with + glass blocks), so there's no glass wasted. All wooden tables can be crafted + into sticks by putting three of a given item onto the crafting grid. Any + such craft yields 4 sticks, so there's no waste. Glass skylights recycle + 3:1 also, which does result in a little waste. + + New nodes: + + Added working oven (really just a furnace with new textures/recipe) + Added mini-fridge that stores 24 slots + Added kitchen cabinet that stores 24 slots + Added half-size kitchen cabinet that stores 12 slots (6x2) + Added kitchen sink with under-sink cabinet that stores 16 slots + Added slab-sized, half-slab-sized, and microblock-sized glowlights (e.g. + ceiling fixtures and yard/sidewalk lighting) + Added curtains in 6 colors: red, green, blue, purple, pink, white + + Misc. changes: 3d-ified nightstands (e.g. nodeboxes), improved their + textures somewhat. Got rid of the dressers - they were never brought to a + working state, but they're obsolete now (stacked two-drawer nightstands look + the same anyway). + + Notes about this update: This mod now requires Moreblocks for some recipes - + namely fridge and oven, and uses the Vessels mod's recycle crafts. + +2012-09-27: Changed most uses of dyes so that they can come from the game's +in-built groups-based dye system, where appropriate. Unified Dyes can still +supply the colors, this just makes it possible to use any other dye system that +might come about as long as it uses the groups method. Improved recipe outputs +for all shutters and mahogany folding door (better ratios of objects to +colorants). + + Added intermediate "unprocessed plastic" step to get from materials to + plastic sheeting (now craft some materials to get unprocessed plastic, then + smelt that to get the sheeting), added alternate recipes to produce it, + improved ratio of materials to plastic. Minor code cleanups. + + Later in the day: Nightstands now offer small inventories - one-drawer units + get 8 slots, while two-drawer nightstands get 16 slots (8x2). They're + smaller than chests because they're cheaper to make. Note that if you have + nightstands already placed, dig them up and place them again to enable their + new inventory capabilities. + +2012-09-25: Added alternate recipes for most items that use dyes. Removed +Mesecons dependency from TV and stereo (uses in-built silicon lumps if Mesecons +isn't present). Replaced speakers' Mesecons Noteblocks with copper ingots from +Moreores. + +2012-08-01: Added optional recipes for items that use wool to also use cotton +instead. Choose one or the other in any given recipe (you can't mix the two). +No, it isn't a Kosher thing. ;-) + +2012-07-28: Noticed I technically had left/right textures swapped on a few +blocks. The textures were drawn to counteract this, without my realizing I was +doing just that. :-) Fixed. Also replaced all "tile_images" references with +"tiles", since the former is deprecated in favor of the latter. + +2012-07-26: Updated to use the Vessels mod to give back empty dye bottles. + +2012-07-24: Made all objects that use a dye require a more appropriate color, +made all objects that use a dye give back empty bottles on craft, made grey +shutters use the various grey paints directly. Moved this changelog out of the +forum post and into this separate file. + +2012-07-12: Moved project to github. + +2012-07-02: Deleted a few redundant files from the unified dyes mod. + +2012-06-30: Added a fancy wood-and-glass door. Textures used here were +formerly used for (and have been replaced by new textures for) the default wood +door in my realistic texture packs. + +2012-06-27: Relaxed dependency on UnifiedDyes to prevent depending on Flowers. +The mod will still use them if available; if not, you just can't craft the +various colored objects. + +2012-06-26: Separated dyes into their own mod ("unifieddyes"). Added a copy of +flowers and made this mod depend on it and unified dyes. Updated all crafting +recipes to fit, got rid of the conditional code for flowers (since it is a +dependency now), removed a bunch of redundant register_craftitem code, fixed +some copy&paste errors on the window shutters. As a consequence of these +changes, white paint, titanium dioxide, and all colors of dyes will have to be +removed and replaced (but the things that depend on them are fine). + +2012-06-25: Removed all of the old legacy_wallmounted references - I didn't +realize they were deprecated (and they were causing out-of-nodes issues also). + +2012-06-23: Added small speaker, round brass pole, square wrought iron pole +(without connecting rungs). Fairly recent version of Minetest required for +these to work (uses nodeboxes). Note that if you've placed brass or wrought +iron poles in your world already, they will be drawn using these newer styles; +if you need the square poles and/or connecting rungs, you'll need to remove +them and craft brass/wrought iron fences instead. + +2012-06-16: Tweaked terracotta roof tiles/shingles to give the 4 pieces back on +digging a 'shingle'. + +2012-06-15 (a bit later): Did the same for the stereo and television and +improved them in the process. + +2012-06-15: Tweaked the speaker textures, added separate images for all 6 +sides. + +2012-06-14: Added right-opening versions of oak and mahogany "folding" doors - +allows one to create double doors. Split the two colors into separate files. +Inspired by Calinou's update to the default doors mod - works the same way too. +:-) + +2012-06-13 (a lot later): Changed the crafting recipe slightly for nightstands +- they're designated as 'oak' now. Added crafting recipe for mahogany +variants. If you've already placed nightstands into your world, you should +remove them before updating - sorry, you'll have to rebuild them due my having +had to change the node names. Added initial crafting recipes for oak and +mahogany drawers and complete dressers (dresser components are not yet useful, +work in progress. See crafts.lua for more details). + +2012-06-13: Changed buckets of white paint so that the empty bucket is returned +when the bucket of paint is crafted into something else (rather than when the +bucket of paint is first created). * Fixed copy&paste error from the previous +bucket change. * Moved smelting and crafting of white paint from crafts.lua +over to dyes.lua. + +2012-06-12: Multiple post-release updates over the course of the day. * Fixed +recipe collision with glass panes. * Implemented a full set of dyes derived +from flowers, updated all related crafting recipes and screenshots to match. * +Collected all dyes into one file. Changed recipes for blue and purple dyes to +something that makes a bit more sense. :-) * Tweaked oak shutters to give two +pieces on crafting. * Added alternate recipes for orange and green dyes. + +2012-06-12: Initial release. diff --git a/mods/homedecor_modpack/homedecor/climate-control.lua b/mods/homedecor_modpack/homedecor/climate-control.lua new file mode 100644 index 00000000..9dbcb88e --- /dev/null +++ b/mods/homedecor_modpack/homedecor/climate-control.lua @@ -0,0 +1,226 @@ +-- Nodes that would affect the local temperature e.g. fans, heater, A/C + +local S = homedecor.gettext + +minetest.register_node('homedecor:air_conditioner', { + drawtype = "nodebox", + description = S("Air Conditioner"), + tiles = { 'homedecor_ac_tb.png', + 'homedecor_ac_tb.png', + 'homedecor_ac_sides.png', + 'homedecor_ac_sides.png', + 'homedecor_ac_back.png', + 'homedecor_ac_front.png'}, + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = { snappy = 3 }, + sounds = default.node_sound_leaves_defaults(), + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.124, 0.5 }, -- off by just a tad to force the adjoining faces to be drawn. + {-0.5, 0.125, -0.5, 0.5, 0.5, 0.5 }, + } + }, + selection_box = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 } +}) + +-- fans + +minetest.register_entity("homedecor:mesh_desk_fan", { + collisionbox = { 0, 0, 0, 0, 0, 0 }, + visual = "mesh", + mesh = "homedecor_desk_fan.b3d", + textures = {"homedecor_desk_fan_uv.png"}, + visual_size = {x=10, y=10}, +}) + +minetest.register_node("homedecor:desk_fan", { + description = "Desk Fan", + drawtype = "nodebox", + paramtype2 = "facedir", + legacy_facedir_simple = true, + paramtype = "light", + groups = {oddly_breakable_by_hand=2}, + node_box = { + type = "fixed", + fixed = { + {-0.1875, -0.5, -0.1875, 0.1875, -0.375, 0.1875}, -- NodeBox1 + } + }, + tiles = {"homedecor_desk_fan_body.png"}, + inventory_image = "homedecor_desk_fan_inv.png", + wield_image = "homedecor_desk_fan_inv.png", + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + } + }, + on_construct = function(pos) + local entity_remove = minetest.get_objects_inside_radius(pos, 0.1) + local meta = minetest.get_meta(pos) + meta:set_string("active", "no") + print (meta:get_string("active")) + if entity_remove[1] == nil then + minetest.add_entity({x=pos.x, y=pos.y, z=pos.z}, "homedecor:mesh_desk_fan") --+(0.0625*10) + entity_remove = minetest.get_objects_inside_radius(pos, 0.1) + if minetest.get_node(pos).param2 == 0 then --list of rad to 90 degree: 3.142/2 = 90; 3.142 = 180; 3*3.142 = 270 + entity_remove[1]:setyaw(3.142) + elseif minetest.get_node(pos).param2 == 1 then + entity_remove[1]:setyaw(3.142/2) + elseif minetest.get_node(pos).param2 == 3 then + entity_remove[1]:setyaw((-3.142/2)) + else + entity_remove[1]:setyaw(0) + end + end + end, + on_punch = function(pos) + local entity_anim = minetest.get_objects_inside_radius(pos, 0.1) + local speedy_meta = minetest.get_meta(pos) + if speedy_meta:get_string("active") == "no" then + speedy_meta:set_string("active", "yes") + print (speedy_meta:get_string("active")) + elseif speedy_meta:get_string("active") == "yes" then + speedy_meta:set_string("active", "no") + print (speedy_meta:get_string("active")) + end + + if entity_anim[1] == nil then + minetest.add_entity({x=pos.x, y=pos.y, z=pos.z}, "homedecor:mesh_desk_fan") --+(0.0625*10) + local entity_remove = minetest.get_objects_inside_radius(pos, 0.1) + if minetest.get_node(pos).param2 == 0 then --list of rad to 90 degree: 3.142/2 = 90; 3.142 = 180; 3*3.142 = 270 + entity_remove[1]:setyaw(3.142) + elseif minetest.get_node(pos).param2 == 1 then + entity_remove[1]:setyaw(3.142/2) + elseif minetest.get_node(pos).param2 == 3 then + entity_remove[1]:setyaw((-3.142/2)) + else + entity_remove[1]:setyaw(0) + end + end + local entity_anim = minetest.get_objects_inside_radius(pos, 0.1) + if minetest.get_meta(pos):get_string("active") == "no" then + entity_anim[1]:set_animation({x=0,y=0}, 1, 0) + elseif minetest.get_meta(pos):get_string("active") == "yes" then + entity_anim[1]:set_animation({x=0,y=96}, 24, 0) + end + end, + after_dig_node = function(pos) + local entity_remove = minetest.get_objects_inside_radius(pos, 0.1) + entity_remove[1]:remove() + end, +}) + +-- ceiling fan + +minetest.register_node('homedecor:ceiling_fan', { + description = S("Ceiling Fan"), + drawtype = "nodebox", + tiles = { + { name="homedecor_ceiling_fan_top.png", + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=0.5} }, + { name="homedecor_ceiling_fan_bottom.png", + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=0.5} }, + 'homedecor_ceiling_fan_sides.png', + }, + inventory_image = "homedecor_ceiling_fan_inv.png", + node_box = { + type = "fixed", + fixed = { + { -0.5, 0.495, -0.5, 0.5, 0.495, 0.5 }, + { -0.0625, 0.375, -0.0625, 0.0625, 0.5, 0.0625 } + } + }, + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = { snappy = 3 }, + light_source = LIGHT_MAX-1, + sounds = default.node_sound_wood_defaults(), +}) + +-- heating devices + +minetest.register_node('homedecor:space_heater', { + drawtype = "nodebox", + description = S("Space heater"), + tiles = { 'homedecor_heater_tb.png', + 'homedecor_heater_tb.png', + 'homedecor_heater_sides.png', + 'homedecor_heater_sides.png', + 'homedecor_heater_back.png', + 'homedecor_heater_front.png' + }, + inventory_image = "homedecor_heater_inv.png", + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = { snappy = 3 }, + sounds = default.node_sound_leaves_defaults(), + node_box = { + type = "fixed", + fixed = { + {-0.1875, -0.5, 0.0625, 0.1875, 0, 0.3125}, + } + }, + selection_box = { + type = "fixed", + fixed = {-0.1875, -0.5, 0.0625, 0.1875, 0, 0.3125} + } +}) + +minetest.register_node("homedecor:radiator", { + tiles = { "homedecor_white_metal.png" }, + inventory_image = "homedecor_radiator_inv.png", + description = "Radiator heater", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {-0.4375, 0.3125, 0.3125, 0.5, 0.4375, 0.4375}, -- NodeBox1 + {0.375, 0.25, 0.25, 0.4375, 0.5, 0.5}, -- NodeBox2 + {0.25, 0.25, 0.25, 0.3125, 0.5, 0.5}, -- NodeBox3 + {0.125, 0.25, 0.25, 0.1875, 0.5, 0.5}, -- NodeBox4 + {0, 0.25, 0.25, 0.0625, 0.5, 0.5}, -- NodeBox5 + {-0.125, 0.25, 0.25, -0.0625, 0.5, 0.5}, -- NodeBox6 + {-0.25, 0.25, 0.25, -0.1875, 0.5, 0.5}, -- NodeBox7 + {-0.375, 0.25, 0.25, -0.3125, 0.5, 0.5}, -- NodeBox8 + {0.375, -0.375, 0.4375, 0.4375, 0.5, 0.5}, -- NodeBox9 + {0.375, -0.375, 0.25, 0.4375, 0.5, 0.3125}, -- NodeBox10 + {0.25, -0.375, 0.4375, 0.3125, 0.5, 0.5}, -- NodeBox11 + {0.25, -0.375, 0.25, 0.3125, 0.5, 0.3125}, -- NodeBox12 + {0.125, -0.375, 0.4375, 0.1875, 0.5, 0.5}, -- NodeBox13 + {0.125, -0.375, 0.25, 0.1875, 0.5, 0.3125}, -- NodeBox14 + {0, -0.375, 0.4375, 0.0625, 0.5, 0.5}, -- NodeBox15 + {0, -0.375, 0.25, 0.0625, 0.5, 0.3125}, -- NodeBox16 + {-0.125, -0.375, 0.4375, -0.0625, 0.5, 0.5}, -- NodeBox17 + {-0.125, -0.375, 0.25, -0.0625, 0.5, 0.3125}, -- NodeBox18 + {-0.25, -0.375, 0.4375, -0.1875, 0.5, 0.5}, -- NodeBox19 + {-0.25, -0.375, 0.25, -0.1875, 0.5, 0.3125}, -- NodeBox20 + {-0.375, -0.375, 0.4375, -0.3125, 0.5, 0.5}, -- NodeBox21 + {-0.375, -0.375, 0.25, -0.3125, 0.5, 0.3125}, -- NodeBox22 + {-0.4375, -0.3125, 0.3125, 0.5, -0.1875, 0.4375}, -- NodeBox23 + {0.375, -0.375, 0.3125, 0.4375, -0.125, 0.4375}, -- NodeBox24 + {0.25, -0.375, 0.3125, 0.3125, -0.125, 0.4375}, -- NodeBox25 + {0.125, -0.375, 0.3125, 0.1875, -0.125, 0.4375}, -- NodeBox26 + {0, -0.375, 0.3125, 0.0625, -0.125, 0.4375}, -- NodeBox27 + {-0.125, -0.375, 0.3125, -0.0625, -0.125, 0.4375}, -- NodeBox28 + {-0.25, -0.375, 0.3125, -0.1875, -0.125, 0.4375}, -- NodeBox29 + {-0.375, -0.375, 0.3125, -0.3125, -0.125, 0.4375}, -- NodeBox30 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.4375, -0.375, 0.25, 0.5, 0.5, 0.5 } + } +}) + diff --git a/mods/homedecor_modpack/homedecor/clocks.lua b/mods/homedecor_modpack/homedecor/clocks.lua new file mode 100644 index 00000000..65fcf34a --- /dev/null +++ b/mods/homedecor_modpack/homedecor/clocks.lua @@ -0,0 +1,107 @@ +minetest.register_node("homedecor:analog_clock_plastic", { + description = "Analog clock (plastic)", + drawtype = "nodebox", + tiles = { + "homedecor_analog_clock_plastic_edges.png", + "homedecor_analog_clock_plastic_edges.png", + "homedecor_analog_clock_plastic_edges.png", + "homedecor_analog_clock_plastic_edges.png", + "homedecor_analog_clock_plastic_back.png", + "homedecor_analog_clock_plastic_front.png" + }, + inventory_image = "homedecor_analog_clock_plastic_inv.png", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + { -8/32, -3/32, 15/32, 8/32, 3/32, 16/32 }, + { -7/32, -5/32, 15/32, 7/32, 5/32, 16/32 }, + { -6/32, -6/32, 15/32, 6/32, 6/32, 16/32 }, + { -5/32, -7/32, 15/32, 5/32, 7/32, 16/32 }, + { -3/32, -8/32, 15/32, 3/32, 8/32, 16/32 } + } + }, + selection_box = { + type = "fixed", + fixed = { -8/32, -8/32, 15/32, 8/32, 8/32, 16/32 } + }, + groups = {snappy=3}, +}) + +minetest.register_node("homedecor:analog_clock_wood", { + description = "Analog clock (wood)", + drawtype = "nodebox", + tiles = { + "homedecor_analog_clock_wood_edges.png", + "homedecor_analog_clock_wood_edges.png", + "homedecor_analog_clock_wood_edges.png", + "homedecor_analog_clock_wood_edges.png", + "homedecor_analog_clock_wood_back.png", + "homedecor_analog_clock_wood_front.png" + }, + inventory_image = "homedecor_analog_clock_wood_inv.png", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + { -8/32, -3/32, 15/32, 8/32, 3/32, 16/32 }, + { -7/32, -5/32, 15/32, 7/32, 5/32, 16/32 }, + { -6/32, -6/32, 15/32, 6/32, 6/32, 16/32 }, + { -5/32, -7/32, 15/32, 5/32, 7/32, 16/32 }, + { -3/32, -8/32, 15/32, 3/32, 8/32, 16/32 } + } + }, + selection_box = { + type = "fixed", + fixed = { -8/32, -8/32, 15/32, 8/32, 8/32, 16/32 } + }, + groups = {snappy=3}, +}) + +minetest.register_node("homedecor:digital_clock", { + description = "Digital clock", + drawtype = "nodebox", + tiles = { + "homedecor_digital_clock_edges.png", + "homedecor_digital_clock_edges.png", + "homedecor_digital_clock_edges.png", + "homedecor_digital_clock_edges.png", + "homedecor_digital_clock_back.png", + "homedecor_digital_clock_front.png" + }, + inventory_image = "homedecor_digital_clock_inv.png", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.28125, -0.25, 0.4375, 0.3125, 0.25, 0.5}, + } + }, + groups = {snappy=3}, +}) + +minetest.register_node("homedecor:alarm_clock", { + description = "Alarm clock", + drawtype = "nodebox", + tiles = { + "homedecor_alarm_clock_top.png", + "homedecor_alarm_clock_bottom.png", + "homedecor_alarm_clock_sides.png", + "homedecor_alarm_clock_sides.png^[transformFX", + "homedecor_alarm_clock_back.png", + "homedecor_alarm_clock_front.png" + }, + inventory_image = "homedecor_alarm_clock_inv.png", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + { -9/32, -16/32, 7/32, 10/32, -5/32, 16/32 }, + } + }, + groups = {snappy=3}, +}) diff --git a/mods/homedecor_modpack/homedecor/cobweb.lua b/mods/homedecor_modpack/homedecor/cobweb.lua new file mode 100644 index 00000000..cdeab8d6 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/cobweb.lua @@ -0,0 +1,149 @@ +minetest.register_node("homedecor:cobweb_corner", { + description = "Cobweb", + drawtype = "torchlike", + tiles = { "homedecor_cobweb_torchlike.png" }, + inventory_image = "homedecor_cobweb_inv.png", + wield_image = "homedecor_cobweb_inv.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5} + }, + visual_scale = 1.4, + groups = { snappy = 3 }, + after_place_node = function(pos, placer, itemstack, pointed_thing) + homedecor.rotate_cobweb(pos) + end +}) + +minetest.register_node("homedecor:cobweb_centered", { + description = "Cobweb", + drawtype = "nodebox", + tiles = { "homedecor_cobweb.png" }, + inventory_image = "homedecor_cobweb_inv.png", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.1, 0.5, 0.5, 0.1 } + }, + node_box = { + type = "fixed", + fixed = { -0.5, -0.5, 0, 0.5, 0.5, 0 } + }, + groups = { snappy = 3, not_in_creative_inventory = 1 }, + drop = "homedecor:cobweb_corner" +}) + +minetest.register_node("homedecor:cobweb_flat", { + description = "Cobweb", + drawtype = "nodebox", + tiles = { "homedecor_cobweb.png" }, + inventory_image = "homedecor_cobweb_inv.png", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, 0.4, 0.5, 0.5, 0.5 } + }, + node_box = { + type = "fixed", + fixed = { -0.5, -0.5, 0.495, 0.5, 0.5, 0.495 } + }, + groups = { snappy = 3, not_in_creative_inventory = 1 }, + drop = "homedecor:cobweb_corner" +}) + +minetest.register_node("homedecor:cobweb_plantlike", { + description = "Cobweb", + drawtype = "plantlike", + tiles = { "homedecor_cobweb_plantlike.png" }, + inventory_image = "homedecor_cobweb_inv.png", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5} + }, + visual_scale = 1.189, + groups = { snappy = 3, not_in_creative_inventory = 1 }, + drop = "homedecor:cobweb_corner" +}) + +-- helper function to rotate the cobweb after it's placed + +function homedecor.rotate_cobweb(pos) + local wall_xm = minetest.get_node({ x=pos.x-1, y=pos.y, z=pos.z }).name + local wall_xp = minetest.get_node({ x=pos.x+1, y=pos.y, z=pos.z }).name + local wall_zm = minetest.get_node({ x=pos.x, y=pos.y, z=pos.z-1}).name + local wall_zp = minetest.get_node({ x=pos.x, y=pos.y, z=pos.z+1}).name + + local iswall_xm = (wall_xm ~= "air" and not string.find(wall_xm, "homedecor:cobweb")) + local iswall_xp = (wall_xp ~= "air" and not string.find(wall_xp, "homedecor:cobweb")) + local iswall_zm = (wall_zm ~= "air" and not string.find(wall_zm, "homedecor:cobweb")) + local iswall_zp = (wall_zp ~= "air" and not string.find(wall_zp, "homedecor:cobweb")) + + -- only xm+zp, or only xp+zm means on-floor torchlike + + if (iswall_xm and iswall_zp and not iswall_xp and not iswall_zm) + or (iswall_xp and iswall_zm and not iswall_xm and not iswall_zp) then + minetest.set_node(pos, {name = "homedecor:cobweb_corner", param2 = 1}) + + -- only xm+zm, or only xp+zp means on-ceiling torchlike + + elseif (iswall_xm and iswall_zm and not iswall_xp and not iswall_zp) + or (iswall_xp and iswall_zp and not iswall_xm and not iswall_zm) then + minetest.set_node(pos, {name = "homedecor:cobweb_corner", param2 = 0}) + + -- only xm+xp means nodebox (not rotated, 0 degrees) + + elseif iswall_xm and iswall_xp and not iswall_zm and not iswall_zp then + minetest.set_node(pos, {name = "homedecor:cobweb_centered", param2 = 0}) + + -- only zm+zp means nodebox rotated to 90 degrees + + elseif iswall_zm and iswall_zp and not iswall_xm and not iswall_xp then + minetest.set_node(pos, {name = "homedecor:cobweb_centered", param2 = 1}) + + -- ok, there aren't any simple two-wall corners or opposing walls. + -- Are there any standalone walls? + + elseif iswall_xm and not iswall_xp and not iswall_zm and not iswall_zp then + minetest.set_node(pos, {name = "homedecor:cobweb_flat", param2 = 3}) + + elseif iswall_xp and not iswall_xm and not iswall_zm and not iswall_zp then + minetest.set_node(pos, {name = "homedecor:cobweb_flat", param2 = 1}) + + elseif iswall_zm and not iswall_xm and not iswall_xp and not iswall_zp then + minetest.set_node(pos, {name = "homedecor:cobweb_flat", param2 = 2}) + + elseif iswall_zp and not iswall_xm and not iswall_xp and not iswall_zm then + minetest.set_node(pos, {name = "homedecor:cobweb_flat", param2 = 0}) + + -- if all else fails, place the plantlike version as a fallback. + + else + minetest.set_node(pos, {name = "homedecor:cobweb_plantlike", param2 = 0}) + end + +end + +-- convert existing cobwebs + +minetest.register_abm({ + nodenames = { "homedecor:cobweb" }, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + homedecor.rotate_cobweb(pos) + end +}) diff --git a/mods/homedecor_modpack/homedecor/copyright.txt b/mods/homedecor_modpack/homedecor/copyright.txt new file mode 100644 index 00000000..fab890e2 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/copyright.txt @@ -0,0 +1,14 @@ +Most code and all textures by Vanessa Ezekowitz. + +Some code copied and modified from the game's default mods (especially +doors) and ironzorg's flowers mod. + +Licenses: +* For the lua code, LGPL. +* For the door open/close sound, CC-By-SA 3.0 by Slanesh on freesound.org + http://freesound.org/people/Slanesh/sounds/31768/ +* For the gate open/close sound, CC0, by j1987 on freesound.org + http://freesound.org/people/j1987/sounds/106116/ +* For the doorbell sound, CC0 by guitarguy1985 on freesound.org + http://freesound.org/people/guitarguy1985/sounds/69384/ +* For all images and everything else, WTFPL. diff --git a/mods/homedecor_modpack/homedecor/crafts.lua b/mods/homedecor_modpack/homedecor/crafts.lua new file mode 100644 index 00000000..0af0f296 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/crafts.lua @@ -0,0 +1,2870 @@ +-- Crafting for homedecor mod (includes folding) by Vanessa Ezekowitz +-- +-- Mostly my own code; overall template borrowed from game default + +local S = homedecor.gettext + +-- misc craftitems + +minetest.register_craftitem("homedecor:terracotta_base", { + description = S("Uncooked Terracotta Base"), + inventory_image = "homedecor_terracotta_base.png", +}) + +minetest.register_craftitem("homedecor:roof_tile_terracotta", { + description = S("Terracotta Roof Tile"), + inventory_image = "homedecor_roof_tile_terracotta.png", +}) + +minetest.register_craftitem("homedecor:oil_extract", { + description = S("Oil extract"), + inventory_image = "homedecor_oil_extract.png", +}) + +minetest.register_craftitem("homedecor:paraffin", { + description = S("Unprocessed paraffin"), + inventory_image = "homedecor_paraffin.png", +}) + +minetest.register_alias("homedecor:plastic_base", "homedecor:paraffin") + +minetest.register_craftitem("homedecor:plastic_sheeting", { + description = S("Plastic sheet"), + inventory_image = "homedecor_plastic_sheeting.png", +}) + +minetest.register_craftitem("homedecor:plastic_strips", { + description = S("Plastic strips"), + inventory_image = "homedecor_plastic_strips.png", +}) + +minetest.register_craftitem("homedecor:drawer_small", { + description = S("Small Wooden Drawer"), + inventory_image = "homedecor_drawer_small.png", +}) + +minetest.register_craftitem("homedecor:ic", { + description = S("Simple Integrated Circuit"), + inventory_image = "homedecor_ic.png", +}) + +minetest.register_craftitem("homedecor:heating_element", { + description = S("Heating element"), + inventory_image = "homedecor_heating_element.png", +}) + +minetest.register_craftitem("homedecor:motor", { + description = S("Motor"), + inventory_image = "homedecor_motor.png", +}) + +minetest.register_craftitem("homedecor:power_crystal", { + description = S("Power Crystal"), + inventory_image = "homedecor_power_crystal.png", +}) + +minetest.register_craftitem("homedecor:blank_canvas", { + description = S("Blank Canvas"), + inventory_image = "homedecor_blank_canvas.png" +}) + +minetest.register_craftitem("homedecor:vcr", { + description = S("VCR"), + inventory_image = "homedecor_vcr.png" +}) + +minetest.register_craftitem("homedecor:dvd_player", { + description = S("DVD Player"), + inventory_image = "homedecor_dvd_player.png" +}) + +minetest.register_craftitem("homedecor:copper_wire", { + description = S("Spool of copper wire"), + inventory_image = "homedecor_copper_wire.png" +}) + +minetest.register_craftitem("homedecor:steel_wire", { + description = S("Spool of steel wire"), + inventory_image = "homedecor_steel_wire.png" +}) + +minetest.register_craftitem("homedecor:speaker_driver", { + description = S("Speaker driver"), + inventory_image = "homedecor_speaker_driver.png" +}) + +minetest.register_craftitem("homedecor:fan_blades", { + description = S("Fan blades"), + inventory_image = "homedecor_fan_blades.png" +}) + +minetest.register_craftitem("homedecor:copper_strip", { + description = S("Copper Strip"), + inventory_image = "homedecor_copper_strip.png" +}) + +minetest.register_craftitem("homedecor:steel_strip", { + description = S("Steel Strip"), + inventory_image = "homedecor_steel_strip.png" +}) + +minetest.register_craftitem(":glooptest:chainlink", { + description = "Steel chainlink", + inventory_image = "homedecor_chainlink_steel.png" +}) + +minetest.register_craftitem("homedecor:chainlink_brass", { + description = "Brass chainlink", + inventory_image = "homedecor_chainlink_brass.png" +}) + +-- alternate crafting if mesecons is/isn't installed + +if not minetest.get_modpath("mesecons") then + + minetest.register_craftitem(":mesecons_materials:silicon", { + description = S("Silicon lump"), + inventory_image = "homedecor_silicon.png", + }) + + minetest.register_craft( { + output = "mesecons_materials:silicon 4", + recipe = { + { "default:sand", "default:sand" }, + { "default:sand", "default:steel_ingot" }, + }, + }) + +end + +-- alternate crafting if technic is/isn't installed + +if not minetest.get_modpath("technic") then + + minetest.register_craftitem(":technic:brass_ingot", { + description = S("Brass Ingot"), + inventory_image = "homedecor_brass_ingot.png", + }) + + minetest.register_craft( { + type = "shapeless", + output = "technic:brass_ingot 2", + recipe = { + "moreores:silver_ingot", + "default:copper_ingot", + }, + }) +end + +minetest.register_alias("homedecor:brass_ingot", "technic:brass_ingot") + +-- the actual crafts + +minetest.register_craft( { + output = "homedecor:copper_strip 12", + recipe = { + { "", "default:copper_ingot", "" }, + { "default:copper_ingot", "", "" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:steel_strip 12", + recipe = { + { "", "default:steel_ingot", "" }, + { "default:steel_ingot", "", "" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:fan_blades 2", + recipe = { + { "", "homedecor:plastic_sheeting", "" }, + { "", "default:steel_ingot", "" }, + { "homedecor:plastic_sheeting", "", "homedecor:plastic_sheeting" } + }, +}) + +minetest.register_craft( { + output = "homedecor:steel_wire 4", + recipe = { + { "", "homedecor:plastic_sheeting", "" }, + { "default:steel_ingot", "homedecor:plastic_sheeting", "default:steel_ingot" }, + { "", "homedecor:plastic_sheeting", "" } + }, +}) + +minetest.register_craft( { + output = "homedecor:copper_wire 4", + recipe = { + { "", "homedecor:plastic_sheeting", "" }, + { "default:copper_ingot", "homedecor:plastic_sheeting", "default:copper_ingot" }, + { "", "homedecor:plastic_sheeting", "" } + }, +}) + +minetest.register_craft( { + output = "homedecor:plastic_strips 3", + recipe = { + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" } + }, +}) + +minetest.register_craft( { + output = "homedecor:heating_element 2", + recipe = { + { "default:copper_ingot", "default:mese_crystal_fragment", "default:copper_ingot" } + }, +}) + +minetest.register_craft( { + output = "homedecor:motor 2", + recipe = { + { "default:mese_crystal_fragment", "homedecor:copper_wire", "homedecor:plastic_sheeting" }, + { "default:copper_ingot", "default:steel_ingot", "default:steel_ingot" }, + { "default:mese_crystal_fragment", "homedecor:copper_wire", "homedecor:plastic_sheeting" } + }, +}) + +minetest.register_craft({ + --type = "shapeless", + output = "homedecor:power_crystal 2", + recipe = { + { "default:mese_crystal_fragment", "default:torch", "default:mese_crystal_fragment" }, + { "default:diamond", "default:gold_ingot", "default:diamond" } + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:power_crystal", + burntime = 50, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:terracotta_base 8", + recipe = { + "default:dirt", + "default:clay_lump", + "bucket:bucket_water" + }, + replacements = { {"bucket:bucket_water", "bucket:bucket_empty"}, }, +}) + +minetest.register_craft({ + type = "cooking", + output = "homedecor:roof_tile_terracotta", + recipe = "homedecor:terracotta_base", +}) + +minetest.register_craft( { + output = "homedecor:shingles_terracotta", + recipe = { + { "homedecor:roof_tile_terracotta", "homedecor:roof_tile_terracotta"}, + { "homedecor:roof_tile_terracotta", "homedecor:roof_tile_terracotta"}, + }, +}) + +minetest.register_craft( { + output = "homedecor:roof_tile_terracotta 8", + recipe = { + { "homedecor:shingles_terracotta", "homedecor:shingles_terracotta" } + } +}) + +minetest.register_craft( { + output = "homedecor:flower_pot_terracotta", + recipe = { + { "homedecor:roof_tile_terracotta", "default:dirt", "homedecor:roof_tile_terracotta" }, + { "homedecor:roof_tile_terracotta", "homedecor:roof_tile_terracotta", "homedecor:roof_tile_terracotta" }, + }, +}) + +-- + +minetest.register_craft({ + type = "shapeless", + output = "homedecor:oil_extract 4", + recipe = { + "group:leaves", + "group:leaves", + "group:leaves", + "group:leaves", + "group:leaves", + "group:leaves" + } +}) + +minetest.register_craft({ + type = "cooking", + output = "homedecor:paraffin", + recipe = "homedecor:oil_extract", +}) + +minetest.register_craft({ + type = "cooking", + output = "homedecor:plastic_sheeting", + recipe = "homedecor:paraffin", +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:oil_extract", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:paraffin", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:plastic_sheeting", + burntime = 30, +}) + +minetest.register_craft( { + output = "homedecor:flower_pot_green", + recipe = { + { "", "dye:dark_green", "" }, + { "homedecor:plastic_sheeting", "default:dirt", "homedecor:plastic_sheeting" }, + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:flower_pot_black", + recipe = { + { "dye:black", "dye:black", "dye:black" }, + { "homedecor:plastic_sheeting", "default:dirt", "homedecor:plastic_sheeting" }, + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, + }, +}) + +-- + +minetest.register_craft( { + output = "homedecor:projection_screen 3", + recipe = { + { "", "default:glass", "" }, + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:projection_screen", + burntime = 30, +}) + +-- + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:ceiling_paint 20", + recipe = { + "dye:white", + "dye:white", + "default:sand", + "bucket:bucket_water", + }, + replacements = { { "bucket:bucket_water","bucket:bucket_empty" } } +}) + +minetest.register_craft( { + output = "homedecor:ceiling_tile 10", + recipe = { + { "", "dye:white", "" }, + { "default:steel_ingot", "default:stone", "default:steel_ingot" }, + + }, +}) + + +-- ======================================================= +-- Items/recipes not requiring smelting of anything new + +minetest.register_craft( { + output = "homedecor:glass_table_small_round_b 15", + recipe = { + { "", "default:glass", "" }, + { "default:glass", "default:glass", "default:glass" }, + { "", "default:glass", "" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:glass_table_small_square_b 2", + recipe = { + {"homedecor:glass_table_small_round", "homedecor:glass_table_small_round" }, + } +}) + +minetest.register_craft( { + output = "homedecor:glass_table_large_b 2", + recipe = { + { "homedecor:glass_table_small_square", "homedecor:glass_table_small_square" }, + } +}) + +-- + +minetest.register_craft( { + output = "homedecor:wood_table_small_round_b 15", + recipe = { + { "", "group:wood", "" }, + { "group:wood", "group:wood", "group:wood" }, + { "", "group:wood", "" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:wood_table_small_square_b 2", + recipe = { + { "homedecor:wood_table_small_round","homedecor:wood_table_small_round" }, + } +}) + +minetest.register_craft( { + output = "homedecor:wood_table_large_b 2", + recipe = { + { "homedecor:wood_table_small_square", "homedecor:wood_table_small_square" }, + } +}) + +-- + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:wood_table_small_round_b", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:wood_table_small_square_b", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:wood_table_large_b", + burntime = 30, +}) + +-- + +minetest.register_craft( { + output = "homedecor:shingles_asphalt 6", + recipe = { + { "building_blocks:gravel_spread", "dye:black", "building_blocks:gravel_spread" }, + { "default:sand", "dye:black", "default:sand" }, + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, + }, +}) + +-- + +minetest.register_craft( { + output = "homedecor:shingles_wood 12", + recipe = { + { "group:stick", "group:wood"}, + { "group:wood", "group:stick"}, + }, +}) + +minetest.register_craft( { + output = "homedecor:shingles_wood 12", + recipe = { + { "group:wood", "group:stick"}, + { "group:stick", "group:wood"}, + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:shingles_wood", + burntime = 30, +}) + +-- + +minetest.register_craft( { + output = "homedecor:skylight 4", + recipe = { + { "homedecor:glass_table_large", "homedecor:glass_table_large" }, + { "homedecor:glass_table_large", "homedecor:glass_table_large" }, + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:skylight_frosted", + recipe = { + "dye:white", + "homedecor:skylight" + }, +}) + +minetest.register_craft({ + type = "cooking", + output = "homedecor:skylight", + recipe = "homedecor:skylight_frosted", +}) + +-- Various colors of shutters + +minetest.register_craft( { + output = "homedecor:shutter_oak 2", + recipe = { + { "group:stick", "group:stick" }, + { "group:stick", "group:stick" }, + { "group:stick", "group:stick" }, + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:shutter_oak", + burntime = 30, +}) + +-- + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:shutter_black 4", + recipe = { + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "dye:black" + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:shutter_black", + burntime = 30, +}) + +-- + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:shutter_dark_grey 4", + recipe = { + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "dye:dark_grey" + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:shutter_dark_grey", + burntime = 30, +}) + +-- + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:shutter_grey 4", + recipe = { + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "dye:grey" + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:shutter_grey", + burntime = 30, +}) + +-- + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:shutter_white 4", + recipe = { + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "dye:white" + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:shutter_white", + burntime = 30, +}) + +-- + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:shutter_mahogany 4", + recipe = { + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "dye:brown" + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:shutter_mahogany", + burntime = 30, +}) +minetest.register_craft( { + type = "shapeless", + output = "homedecor:shutter_red 4", + recipe = { + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "dye:red" + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:shutter_red", + burntime = 30, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:shutter_yellow 4", + recipe = { + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "dye:yellow" + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:shutter_yellow", + burntime = 30, +}) + +-- + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:shutter_forest_green 4", + recipe = { + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "dye:dark_green" + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:shutter_forest_green", + burntime = 30, +}) + +-- + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:shutter_light_blue 4", + recipe = { + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "unifieddyes:light_blue" + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:shutter_light_blue", + burntime = 30, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:shutter_violet 4", + recipe = { + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "homedecor:shutter_oak", + "dye:violet" + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:shutter_violet", + burntime = 30, +}) + +-- + +minetest.register_craft( { + output = "homedecor:drawer_small", + recipe = { + { "group:wood", "default:steel_ingot", "group:wood" }, + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:drawer_small", + burntime = 30, +}) + +-- + +minetest.register_craft( { + output = "homedecor:nightstand_oak_one_drawer", + recipe = { + { "homedecor:drawer_small" }, + { "group:wood" }, + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:nightstand_oak_one_drawer", + burntime = 30, +}) + +minetest.register_craft( { + output = "homedecor:nightstand_oak_two_drawers", + recipe = { + { "homedecor:drawer_small" }, + { "homedecor:drawer_small" }, + { "group:wood" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:nightstand_oak_two_drawers", + recipe = { + { "homedecor:nightstand_oak_one_drawer" }, + { "homedecor:drawer_small" }, + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:nightstand_oak_two_drawers", + burntime = 30, +}) + +-- + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:nightstand_mahogany_one_drawer", + recipe = { + "homedecor:nightstand_oak_one_drawer", + "dye:brown", + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:nightstand_mahogany_one_drawer", + burntime = 30, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:nightstand_mahogany_two_drawers", + recipe = { + "homedecor:nightstand_oak_two_drawers", + "dye:brown", + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:nightstand_mahogany_two_drawers", + burntime = 30, +}) + +-- Table legs + +minetest.register_craft( { + output = "homedecor:table_legs_wrought_iron 3", + recipe = { + { "", "default:iron_lump", "" }, + { "", "default:iron_lump", "" }, + { "default:iron_lump", "default:iron_lump", "default:iron_lump" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:table_legs_brass 3", + recipe = { + { "", "technic:brass_ingot", "" }, + { "", "technic:brass_ingot", "" }, + { "technic:brass_ingot", "technic:brass_ingot", "technic:brass_ingot" } + }, +}) + +minetest.register_craft( { + output = "homedecor:utility_table_legs", + recipe = { + { "group:stick", "group:stick", "group:stick" }, + { "group:stick", "", "group:stick" }, + { "group:stick", "", "group:stick" }, + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:utility_table_legs", + burntime = 30, +}) + +-- vertical poles/lampposts + +minetest.register_craft( { + output = "homedecor:pole_brass 4", + recipe = { + { "", "technic:brass_ingot", "" }, + { "", "technic:brass_ingot", "" }, + { "", "technic:brass_ingot", "" } + }, +}) + +minetest.register_craft( { + output = "homedecor:pole_wrought_iron 4", + recipe = { + { "default:iron_lump", }, + { "default:iron_lump", }, + { "default:iron_lump", }, + }, +}) + +-- Home electronics + +minetest.register_craft( { + output = "homedecor:ic 4", + recipe = { + { "mesecons_materials:silicon", "mesecons_materials:silicon" }, + { "mesecons_materials:silicon", "default:copper_ingot" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:television", + recipe = { + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, + { "homedecor:plastic_sheeting", "moreblocks:glow_glass", "homedecor:plastic_sheeting" }, + { "homedecor:ic", "homedecor:ic", "homedecor:ic" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:television", + recipe = { + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, + { "homedecor:plastic_sheeting", "default:glass", "homedecor:plastic_sheeting" }, + { "homedecor:ic", "homedecor:power_crystal", "homedecor:ic" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:stereo", + recipe = { + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, + { "homedecor:plastic_sheeting", "homedecor:ic", "homedecor:plastic_sheeting" }, + { "default:steel_ingot", "homedecor:ic", "default:steel_ingot" }, + }, +}) + +-- =========================================================== +-- Recipes that require materials from wool (cotton alternate) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:rug_small 8", + recipe = { + "wool:red", + "wool:yellow", + "wool:blue", + "wool:black" + }, +}) + +-- cotton version: + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:rug_small 8", + recipe = { + "cotton:red", + "cotton:yellow", + "cotton:blue", + "cotton:black" + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:rug_small", + burntime = 30, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:rug_large 2", + recipe = { + "homedecor:rug_small", + "homedecor:rug_small", + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:rug_large", + burntime = 30, +}) + +-- Speakers + +minetest.register_craft( { + output = "homedecor:speaker_driver 2", + recipe = { + { "", "default:steel_ingot", "" }, + { "default:paper", "homedecor:copper_wire", "default:iron_lump" }, + { "", "default:steel_ingot", "" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:speaker_small", + recipe = { + { "wool:black", "homedecor:speaker_driver", "group:wood" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:speaker", + recipe = { + { "wool:black", "homedecor:speaker_driver", "group:wood" }, + { "wool:black", "homedecor:speaker_driver", "group:wood" }, + { "wool:black", "group:wood", "group:wood" }, + }, +}) + +-- cotton version + +minetest.register_craft( { + output = "homedecor:speaker_small", + recipe = { + { "cotton:black", "homedecor:speaker_driver", "group:wood" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:speaker", + recipe = { + { "cotton:black", "homedecor:speaker_driver", "group:wood" }, + { "cotton:black", "homedecor:speaker_driver", "group:wood" }, + { "cotton:black", "group:wood", "group:wood" }, + }, +}) + +-- Curtains + +local curtaincolors = { + "red", + "green", + "blue", + "white", + "pink", + "violet" +} + +for c in ipairs(curtaincolors) do + local color = curtaincolors[c] + minetest.register_craft( { + output = "homedecor:curtain_"..color.." 3", + recipe = { + { "wool:"..color, "", ""}, + { "wool:"..color, "", ""}, + { "wool:"..color, "", ""}, + }, + }) +end + +local mats = { + { "brass", "homedecor:pole_brass" }, + { "wrought_iron", "homedecor:pole_wrought_iron" }, + { "wood", "default:stick" } +} + +for i in ipairs(mats) do + local material = mats[i][1] + local ingredient = mats[i][2] + minetest.register_craft( { + output = "homedecor:curtainrod_"..material.." 3", + recipe = { + { ingredient, ingredient, ingredient }, + }, + }) +end + +-- Recycling recipes + +-- Some glass objects recycle via the glass fragments item/recipe in the Vessels mod. + +minetest.register_craft({ + type = "shapeless", + output = "vessels:glass_fragments", + recipe = { + "homedecor:glass_table_small_round", + "homedecor:glass_table_small_round", + "homedecor:glass_table_small_round" + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "vessels:glass_fragments", + recipe = { + "homedecor:glass_table_small_square", + "homedecor:glass_table_small_square", + "homedecor:glass_table_small_square" + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "vessels:glass_fragments", + recipe = { + "homedecor:glass_table_large", + "homedecor:glass_table_large", + "homedecor:glass_table_large" + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "vessels:glass_fragments 2", + recipe = { + "homedecor:skylight", + "homedecor:skylight", + "homedecor:skylight", + "homedecor:skylight", + "homedecor:skylight", + "homedecor:skylight" + } +}) + +-- Wooden tabletops can turn into sticks + +minetest.register_craft({ + type = "shapeless", + output = "default:stick 4", + recipe = { + "homedecor:wood_table_small_round", + "homedecor:wood_table_small_round", + "homedecor:wood_table_small_round" + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "default:stick 4", + recipe = { + "homedecor:wood_table_small_square", + "homedecor:wood_table_small_square", + "homedecor:wood_table_small_square" + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "default:stick 4", + recipe = { + "homedecor:wood_table_large", + "homedecor:wood_table_large", + "homedecor:wood_table_large" + } +}) + +-- Kitchen stuff + +minetest.register_craft({ + output = "homedecor:oven_steel", + recipe = { + {"homedecor:heating_element", "default:steel_ingot", "homedecor:heating_element", }, + {"default:steel_ingot", "moreblocks:iron_glass", "default:steel_ingot", }, + {"default:steel_ingot", "homedecor:heating_element", "default:steel_ingot", }, + } +}) + +minetest.register_craft({ + output = "homedecor:oven_steel", + recipe = { + {"homedecor:heating_element", "default:steel_ingot", "homedecor:heating_element", }, + {"default:steel_ingot", "default:glass", "default:steel_ingot", }, + {"default:steel_ingot", "homedecor:heating_element", "default:steel_ingot", }, + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "homedecor:oven", + recipe = { + "homedecor:oven_steel", + "dye:white", + "dye:white", + } +}) + +minetest.register_craft({ + output = "homedecor:microwave_oven 2", + recipe = { + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot", }, + {"default:steel_ingot", "moreblocks:iron_glass", "homedecor:ic", }, + {"default:steel_ingot", "default:copper_ingot", "homedecor:power_crystal", }, + } +}) + +minetest.register_craft({ + output = "homedecor:microwave_oven 2", + recipe = { + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot", }, + {"default:steel_ingot", "default:glass", "homedecor:ic", }, + {"default:steel_ingot", "default:copper_ingot", "homedecor:power_crystal", }, + } +}) + +minetest.register_craft({ + output = "homedecor:refrigerator_steel_bottom", + recipe = { + {"default:steel_ingot", "homedecor:glowlight_small_cube_white", "default:steel_ingot", }, + {"default:steel_ingot", "default:copperblock", "default:steel_ingot", }, + {"default:steel_ingot", "default:clay", "default:steel_ingot", }, + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "homedecor:refrigerator_white_bottom", + recipe = { + "homedecor:refrigerator_steel_bottom", + "dye:white", + "dye:white", + "dye:white", + } +}) + +minetest.register_craft({ + output = "homedecor:kitchen_cabinet", + recipe = { + {"group:wood", "group:stick", "group:wood", }, + {"group:wood", "group:stick", "group:wood", }, + {"group:wood", "group:stick", "group:wood", }, + } +}) + +minetest.register_craft({ + output = "homedecor:kitchen_cabinet_steel", + recipe = { + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"", "homedecor:kitchen_cabinet", ""}, + } +}) + +minetest.register_craft({ + output = "homedecor:kitchen_cabinet_steel", + recipe = { + {"moreblocks:slab_steelblock_1"}, + { "homedecor:kitchen_cabinet" }, + } +}) + +minetest.register_craft({ + output = "homedecor:kitchen_cabinet_marble", + recipe = { + {"building_blocks:slab_marble"}, + {"homedecor:kitchen_cabinet"}, + } +}) + +minetest.register_craft({ + output = "homedecor:kitchen_cabinet_marble", + recipe = { + {"technic:slab_marble_1"}, + {"homedecor:kitchen_cabinet"}, + } +}) + +minetest.register_craft({ + output = "homedecor:kitchen_cabinet_granite", + recipe = { + {"technic:slab_granite_1"}, + {"homedecor:kitchen_cabinet"}, + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "homedecor:kitchen_cabinet_half 2", + recipe = { "homedecor:kitchen_cabinet" } +}) + +minetest.register_craft({ + output = "homedecor:kitchen_cabinet_with_sink", + recipe = { + {"group:wood", "default:steel_ingot", "group:wood", }, + {"group:wood", "default:steel_ingot", "group:wood", }, + {"group:wood", "group:stick", "group:wood", }, + } +}) + +------- Lighting + +-- candles + +minetest.register_craft({ + output = "homedecor:candle_thin 4", + recipe = { + {"farming:string" }, + {"homedecor:paraffin" } + } +}) + +minetest.register_craft({ + output = "homedecor:candle 2", + recipe = { + {"farming:string" }, + {"homedecor:paraffin" }, + {"homedecor:paraffin" } + } +}) + +minetest.register_craft({ + output = "homedecor:oil_lamp 4", + recipe = { + { "", "vessels:glass_bottle", "" }, + { "", "farming:string", "" }, + { "default:steel_ingot", "homedecor:oil_extract", "default:steel_ingot" } + } +}) + +-- wood-lattice lamps + +minetest.register_craft( { + output = "homedecor:lattice_lantern_large 2", + recipe = { + { "dye:black", "dye:yellow", "dye:black" }, + { "group:stick", "building_blocks:woodglass", "group:stick" }, + { "group:stick", "homedecor:power_crystal", "group:stick" } + }, +}) + +minetest.register_craft( { + output = "homedecor:lattice_lantern_small 8", + recipe = { + { "homedecor:lattice_lantern_large" }, + }, +}) + +-- yellow glowlights + +minetest.register_craft({ + output = "homedecor:glowlight_half_yellow 6", + recipe = { + {"default:glass", "homedecor:power_crystal", "default:glass", }, + } +}) + +minetest.register_craft({ + output = "homedecor:glowlight_half_yellow 6", + recipe = { + {"moreblocks:super_glow_glass", "moreblocks:glow_glass", "moreblocks:super_glow_glass", }, + } +}) + +minetest.register_craft({ + output = "homedecor:glowlight_quarter_yellow 6", + recipe = { + {"homedecor:glowlight_half_yellow", "homedecor:glowlight_half_yellow", "homedecor:glowlight_half_yellow", }, + } +}) + +minetest.register_craft({ + output = "homedecor:glowlight_small_cube_yellow 16", + recipe = { + {"default:glass" }, + {"homedecor:power_crystal" }, + } +}) + +minetest.register_craft({ + output = "homedecor:glowlight_small_cube_yellow 16", + recipe = { + {"moreblocks:glow_glass" }, + {"moreblocks:super_glow_glass" }, + } +}) + +minetest.register_craft({ + output = "homedecor:glowlight_small_cube_yellow 4", + recipe = { + {"homedecor:glowlight_half_yellow" }, + } +}) + +minetest.register_craft({ + output = "homedecor:glowlight_half_yellow", + recipe = { + {"homedecor:glowlight_small_cube_yellow","homedecor:glowlight_small_cube_yellow"}, + {"homedecor:glowlight_small_cube_yellow","homedecor:glowlight_small_cube_yellow"} + } +}) + +-- white + +minetest.register_craft({ + output = "homedecor:glowlight_half_white 6", + recipe = { + { "dye:white", "dye:white", "dye:white" }, + { "default:glass", "homedecor:power_crystal", "default:glass", }, + } +}) + +minetest.register_craft({ + output = "homedecor:glowlight_half_white 6", + recipe = { + { "dye:white", "dye:white", "dye:white" }, + {"moreblocks:super_glow_glass", "moreblocks:glow_glass", "moreblocks:super_glow_glass", }, + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "homedecor:glowlight_half_white 2", + recipe = { + "dye:white", + "homedecor:glowlight_half_yellow", + "homedecor:glowlight_half_yellow", + } +}) + +minetest.register_craft({ + output = "homedecor:glowlight_quarter_white 6", + recipe = { + {"homedecor:glowlight_half_white", "homedecor:glowlight_half_white", "homedecor:glowlight_half_white", }, + } +}) + +minetest.register_craft({ + output = "homedecor:glowlight_small_cube_white 8", + recipe = { + { "dye:white" }, + { "default:glass" }, + { "homedecor:power_crystal" }, + } +}) + +minetest.register_craft({ + output = "homedecor:glowlight_small_cube_white 8", + recipe = { + {"dye:white" }, + {"moreblocks:super_glow_glass" }, + } +}) + +minetest.register_craft({ + output = "homedecor:glowlight_small_cube_white 4", + recipe = { + {"homedecor:glowlight_half_white" }, + } +}) + +minetest.register_craft({ + output = "homedecor:glowlight_half_white", + recipe = { + {"homedecor:glowlight_small_cube_white","homedecor:glowlight_small_cube_white"}, + {"homedecor:glowlight_small_cube_white","homedecor:glowlight_small_cube_white"} + } +}) + +minetest.register_craft({ + output = "homedecor:plasma_lamp", + recipe = { + {"", "default:glass", ""}, + {"default:glass", "homedecor:power_crystal", "default:glass"}, + {"", "default:glass", ""} + } +}) + +-- Brass/wrought iron fences + + +minetest.register_craft( { + output = "homedecor:fence_brass 6", + recipe = { + { "technic:brass_ingot", "technic:brass_ingot", "technic:brass_ingot" }, + { "technic:brass_ingot", "technic:brass_ingot", "technic:brass_ingot" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:fence_wrought_iron 6", + recipe = { + { "default:iron_lump","default:iron_lump","default:iron_lump" }, + { "default:iron_lump","default:iron_lump","default:iron_lump" }, + }, +}) + +-- other types of fences + +minetest.register_craft( { + output = "homedecor:fence_wrought_iron_2 2", + recipe = { + { "homedecor:pole_wrought_iron", "default:iron_lump" }, + { "homedecor:pole_wrought_iron", "default:iron_lump" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:fence_wrought_iron_2 2", + recipe = { + { "homedecor:pole_wrought_iron", "default:iron_lump" }, + { "homedecor:pole_wrought_iron", "default:iron_lump" }, + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_wrought_iron_2_corner", + recipe = { + "homedecor:fence_wrought_iron_2", + "homedecor:fence_wrought_iron_2" + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_wrought_iron_2 2", + recipe = { + "homedecor:fence_wrought_iron_2_corner", + }, +}) + +-- + +minetest.register_craft( { + output = "homedecor:fence_picket 6", + recipe = { + { "group:stick", "group:stick", "group:stick" }, + { "group:stick", "", "group:stick" }, + { "group:stick", "group:stick", "group:stick" } + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_picket_corner", + recipe = { + "homedecor:fence_picket", + "homedecor:fence_picket" + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_picket 2", + recipe = { + "homedecor:fence_picket_corner" + }, +}) + +-- + + +minetest.register_craft( { + output = "homedecor:fence_picket_white 6", + recipe = { + { "group:stick", "group:stick", "group:stick" }, + { "group:stick", "dye:white", "group:stick" }, + { "group:stick", "group:stick", "group:stick" } + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_picket_corner_white", + recipe = { + "homedecor:fence_picket_white", + "homedecor:fence_picket_white" + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_picket_white 2", + recipe = { + "homedecor:fence_picket_corner_white" + }, +}) + +-- + + +minetest.register_craft( { + output = "homedecor:fence_privacy 6", + recipe = { + { "group:wood", "group:stick", "group:wood" }, + { "group:wood", "", "group:wood" }, + { "group:wood", "group:stick", "group:wood" } + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_privacy_corner", + recipe = { + "homedecor:fence_privacy", + "homedecor:fence_privacy" + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_privacy 2", + recipe = { + "homedecor:fence_privacy_corner" + }, +}) + +-- + + +minetest.register_craft( { + output = "homedecor:fence_barbed_wire 6", + recipe = { + { "group:stick", "homedecor:steel_wire", "group:stick" }, + { "group:stick", "", "group:stick" }, + { "group:stick", "homedecor:steel_wire", "group:stick" } + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_barbed_wire_corner", + recipe = { "homedecor:fence_barbed_wire", "homedecor:fence_barbed_wire" }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_barbed_wire 2", + recipe = { "homedecor:fence_barbed_wire_corner" }, +}) + +-- + + +minetest.register_craft( { + output = "homedecor:fence_chainlink 9", + recipe = { + { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" }, + { "homedecor:steel_wire", "homedecor:steel_wire", "default:steel_ingot" }, + { "homedecor:steel_wire", "homedecor:steel_wire", "default:steel_ingot" } + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_chainlink_corner", + recipe = { "homedecor:fence_chainlink", "homedecor:fence_chainlink" }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_chainlink 2", + recipe = { "homedecor:fence_chainlink_corner" }, +}) + + +-- Gates + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:gate_picket_white_closed", + recipe = { + "homedecor:fence_picket_white" + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_picket_white", + recipe = { + "homedecor:gate_picket_white_closed" + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:gate_picket_closed", + recipe = { + "homedecor:fence_picket" + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_picket", + recipe = { + "homedecor:gate_picket_closed" + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:gate_barbed_wire_closed", + recipe = { + "homedecor:fence_barbed_wire" + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_barbed_wire", + recipe = { + "homedecor:gate_barbed_wire_closed" + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:gate_chainlink_closed", + recipe = { + "homedecor:fence_chainlink" + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:fence_chainlink", + recipe = { + "homedecor:gate_chainlink_closed" + }, +}) + +------ Doors + +-- plain wood, non-windowed + +minetest.register_craft( { + output = "homedecor:door_wood_plain_bottom_left 2", + recipe = { + { "group:wood", "group:wood", "" }, + { "group:wood", "group:wood", "default:steel_ingot" }, + { "group:wood", "group:wood", "" }, + }, +}) + +-- fancy exterior + +minetest.register_craft( { + output = "homedecor:door_exterior_fancy_bottom_left 2", + recipe = { + { "group:wood", "default:glass" }, + { "group:wood", "group:wood" }, + { "group:wood", "group:wood" }, + }, +}) + +-- wood and glass (grid style) + +-- bare + +minetest.register_craft( { + output = "homedecor:door_wood_glass_bottom_left 2", + recipe = { + { "default:glass", "group:wood" }, + { "group:wood", "default:glass" }, + { "default:glass", "group:wood" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:door_wood_glass_bottom_left 2", + recipe = { + { "group:wood", "default:glass" }, + { "default:glass", "group:wood" }, + { "group:wood", "default:glass" }, + }, +}) + +-- mahogany + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:door_wood_glass_mahogany_bottom_left 2", + recipe = { + "default:dirt", + "default:coal_lump", + "homedecor:door_wood_glass_bottom_left", + "homedecor:door_wood_glass_bottom_left" + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:door_wood_glass_mahogany_bottom_left 2", + recipe = { + "dye:brown", + "homedecor:door_wood_glass_bottom_left", + "homedecor:door_wood_glass_bottom_left" + }, +}) + +-- white + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:door_wood_glass_white_bottom_left 2", + recipe = { + "dye:white", + "homedecor:door_wood_glass_bottom_left", + "homedecor:door_wood_glass_bottom_left" + }, +}) + +-- Solid glass with metal handle + +minetest.register_craft( { + output = "homedecor:door_glass_bottom_left 2", + recipe = { + { "default:glass", "default:glass" }, + { "default:glass", "default:steel_ingot" }, + { "default:glass", "default:glass" }, + }, +}) + +-- Closet doors + +-- oak + +minetest.register_craft( { + output = "homedecor:door_closet_oak_bottom_left 2", + recipe = { + { "", "group:stick", "group:stick" }, + { "default:steel_ingot", "group:stick", "group:stick" }, + { "", "group:stick", "group:stick" }, + }, +}) + +-- mahogany + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:door_closet_mahogany_bottom_left 2", + recipe = { + "homedecor:door_closet_oak_bottom_left", + "homedecor:door_closet_oak_bottom_left", + "default:dirt", + "default:coal_lump", + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:door_closet_mahogany_bottom_left 2", + recipe = { + "homedecor:door_closet_oak_bottom_left", + "homedecor:door_closet_oak_bottom_left", + "dye:brown" + }, +}) + +-- wrought fence-like door + +minetest.register_craft( { + output = "homedecor:door_wrought_iron_bottom_left 2", + recipe = { + { "homedecor:pole_wrought_iron", "default:iron_lump" }, + { "homedecor:pole_wrought_iron", "default:iron_lump" }, + { "homedecor:pole_wrought_iron", "default:iron_lump" } + }, +}) + +-- bedroom door + +minetest.register_craft( { + output = "homedecor:door_bedroom_bottom_left", + recipe = { + { "dye:white", "dye:white", "" }, + { "homedecor:door_wood_plain_bottom_left", "technic:brass_ingot", "" }, + { "", "", "" }, + }, +}) + +-- washer and dryer + +minetest.register_craft( { + output = "homedecor:washing_machine", + recipe = { + { "default:steel_ingot", "default:steel_ingot", "homedecor:ic" }, + { "default:steel_ingot", "bucket:bucket_water", "default:steel_ingot" }, + { "default:steel_ingot", "homedecor:motor", "default:steel_ingot" } + }, +}) + +minetest.register_craft( { + output = "homedecor:washing_machine", + recipe = { + { "default:steel_ingot", "default:steel_ingot", "homedecor:ic" }, + { "default:steel_ingot", "bucket:bucket_water", "default:steel_ingot" }, + { "default:steel_ingot", "technic:motor", "default:steel_ingot" } + }, +}) + +minetest.register_craft( { + output = "homedecor:dryer", + recipe = { + { "default:steel_ingot", "default:steel_ingot", "homedecor:ic" }, + { "default:steel_ingot", "bucket:bucket_empty", "homedecor:motor" }, + { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" } + }, +}) + +minetest.register_craft( { + output = "homedecor:dryer", + recipe = { + { "default:steel_ingot", "default:steel_ingot", "homedecor:ic" }, + { "default:steel_ingot", "bucket:bucket_empty", "technic:motor" }, + { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" } + }, +}) + +-- dishwashers + +minetest.register_craft( { + output = "homedecor:dishwasher", + recipe = { + { "homedecor:ic", "homedecor:fence_chainlink", "default:steel_ingot", }, + { "default:steel_ingot", "homedecor:shower_head", "homedecor:motor" }, + { "default:steel_ingot", "homedecor:heating_element", "bucket:bucket_water" } + }, +}) + +minetest.register_craft( { + output = "homedecor:dishwasher", + recipe = { + { "homedecor:ic", "homedecor:fence_chainlink", "default:steel_ingot", }, + { "default:steel_ingot", "homedecor:shower_head", "technic:motor" }, + { "default:steel_ingot", "homedecor:heating_element", "bucket:bucket_water" } + }, +}) + +minetest.register_craft( { + output = "homedecor:dishwasher_wood", + recipe = { + { "stairs:slab_wood" }, + { "homedecor:dishwasher" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:dishwasher_wood", + recipe = { + { "moreblocks:slab_wood" }, + { "homedecor:dishwasher" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:dishwasher_wood", + recipe = { + { "moreblocks:slab_wood_1" }, + { "homedecor:dishwasher" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:dishwasher_steel", + recipe = { + { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" }, + { "", "homedecor:dishwasher", "" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:dishwasher_steel", + recipe = { + { "moreblocks:slab_steelblock_1" }, + { "homedecor:dishwasher" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:dishwasher_marble", + recipe = { + { "building_blocks:slab_marble" }, + { "homedecor:dishwasher" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:dishwasher_marble", + recipe = { + { "technic:slab_marble_1" }, + { "homedecor:dishwasher" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:dishwasher_granite", + recipe = { + { "technic:slab_granite_1" }, + { "homedecor:dishwasher" }, + }, +}) + +-- paintings + +minetest.register_craft({ + output = "homedecor:blank_canvas", + recipe = { + { "", "group:stick", "" }, + { "group:stick", "wool:white", "group:stick" }, + { "", "group:stick", "" }, + } +}) + +local painting_patterns = { + [1] = { { "brown", "red", "brown" }, + { "dark_green", "red", "green" } }, + + [2] = { { "green", "yellow", "green" }, + { "green", "yellow", "green" } }, + + [3] = { { "green", "pink", "green" }, + { "brown", "pink", "brown" } }, + + [4] = { { "black", "orange", "grey" }, + { "dark_green", "orange", "orange" } }, + + [5] = { { "blue", "orange", "yellow" }, + { "green", "red", "brown" } }, + + [6] = { { "green", "red", "orange" }, + { "orange", "yellow", "green" } }, + + [7] = { { "blue", "dark_green", "dark_green" }, + { "green", "grey", "green" } }, + + [8] = { { "blue", "blue", "blue" }, + { "green", "green", "green" } }, + + [9] = { { "blue", "blue", "dark_green" }, + { "green", "grey", "dark_green" } }, + + [10] = { { "green", "white", "green" }, + { "dark_green", "white", "dark_green" } }, + + [11] = { { "blue", "white", "blue" }, + { "blue", "grey", "dark_green" } }, + + [12] = { { "green", "green", "green" }, + { "grey", "grey", "green" } }, + + [13] = { { "blue", "blue", "grey" }, + { "dark_green", "white", "white" } }, + + [14] = { { "red", "yellow", "blue" }, + { "blue", "green", "violet" } }, + + [15] = { { "blue", "yellow", "blue" }, + { "black", "black", "black" } }, + + [16] = { { "red", "orange", "blue" }, + { "black", "dark_grey", "grey" } }, + + [17] = { { "orange", "yellow", "orange" }, + { "black", "black", "black" } }, + + [18] = { { "grey", "dark_green", "grey" }, + { "white", "white", "white" } }, + + [19] = { { "white", "brown", "green" }, + { "green", "brown", "brown" } }, + + [20] = { { "blue", "blue", "blue" }, + { "red", "brown", "grey" } } +} + +for i,recipe in pairs(painting_patterns) do + + local item1 = "dye:"..recipe[1][1] + local item2 = "dye:"..recipe[1][2] + local item3 = "dye:"..recipe[1][3] + local item4 = "dye:"..recipe[2][1] + local item5 = "dye:"..recipe[2][2] + local item6 = "dye:"..recipe[2][3] + + minetest.register_craft({ + output = "homedecor:painting_"..i, + recipe = { + { item1, item2, item3 }, + { item4, item5, item6 }, + {"", "homedecor:blank_canvas", "" } + } + }) +end + +-- more misc stuff here + +minetest.register_craft({ + output = "homedecor:chimney 2", + recipe = { + { "default:clay_brick", "", "default:clay_brick" }, + { "default:clay_brick", "", "default:clay_brick" }, + { "default:clay_brick", "", "default:clay_brick" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:fishtank", + recipe = { + { "homedecor:plastic_sheeting", "homedecor:glowlight_small_cube_white", "homedecor:plastic_sheeting" }, + { "default:glass", "bucket:bucket_water", "default:glass" }, + { "default:glass", "building_blocks:gravel_spread", "default:glass" }, + }, + replacements = { {"bucket:bucket_water", "bucket:bucket_empty"} } +}) + +minetest.register_craft({ + output = "homedecor:towel_rod", + recipe = { + { "default:wood", "group:stick", "default:wood" }, + { "", "building_blocks:terrycloth_towel", "" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:toilet_paper", + recipe = { + { "", "default:paper", "default:paper" }, + { "group:wood", "group:stick", "default:paper" }, + { "", "default:paper", "default:paper" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:medicine_cabinet", + recipe = { + { "group:stick", "default:glass", "group:stick" }, + { "group:stick", "default:glass", "group:stick" }, + { "group:stick", "default:glass", "group:stick" } + }, +}) + +minetest.register_craft({ + output = "homedecor:cardboard_box 2", + recipe = { + { "default:paper", "", "default:paper" }, + { "default:paper", "default:paper", "default:paper" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:desk", + recipe = { + { "stairs:slab_wood", "stairs:slab_wood", "stairs:slab_wood" }, + { "homedecor:drawer_small", "default:wood", "default:wood" }, + { "homedecor:drawer_small", "", "default:wood" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:desk", + recipe = { + { "moreblocks:slab_wood", "moreblocks:slab_wood", "moreblocks:slab_wood" }, + { "homedecor:drawer_small", "default:wood", "default:wood" }, + { "homedecor:drawer_small", "", "default:wood" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:filing_cabinet", + recipe = { + { "", "default:wood", "" }, + { "default:wood", "homedecor:drawer_small", "default:wood" }, + { "", "default:wood", "" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:analog_clock_plastic 2", + recipe = { + { "homedecor:plastic_sheeting", "dye:black", "homedecor:plastic_sheeting" }, + { "homedecor:plastic_sheeting", "homedecor:ic", "homedecor:plastic_sheeting" }, + { "homedecor:plastic_sheeting", "dye:black", "homedecor:plastic_sheeting" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:analog_clock_wood 2", + recipe = { + { "group:stick", "dye:black", "group:stick" }, + { "group:stick", "homedecor:ic", "group:stick" }, + { "group:stick", "dye:black", "group:stick" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:digital_clock 2", + recipe = { + { "homedecor:plastic_sheeting", "default:paper", "homedecor:plastic_sheeting" }, + { "homedecor:plastic_sheeting", "homedecor:ic", "homedecor:plastic_sheeting" }, + { "homedecor:plastic_sheeting", "homedecor:power_crystal", "homedecor:plastic_sheeting" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:alarm_clock", + recipe = { + { "homedecor:plastic_sheeting", "homedecor:speaker_driver", "homedecor:plastic_sheeting" }, + { "homedecor:plastic_sheeting", "homedecor:digital_clock", "homedecor:plastic_sheeting" }, + { "homedecor:plastic_sheeting", "homedecor:power_crystal", "homedecor:plastic_sheeting" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:air_conditioner", + recipe = { + { "default:steel_ingot", "building_blocks:grate", "default:steel_ingot" }, + { "default:steel_ingot", "homedecor:fan_blades", "homedecor:motor" }, + { "default:steel_ingot", "homedecor:motor", "default:steel_ingot" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:air_conditioner", + recipe = { + { "default:steel_ingot", "building_blocks:grate", "default:steel_ingot" }, + { "default:steel_ingot", "technic:motor", "default:steel_ingot" }, + { "default:steel_ingot", "technic:motor", "default:steel_ingot" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:ceiling_fan", + recipe = { + { "homedecor:motor" }, + { "homedecor:fan_blades" }, + { "homedecor:glowlight_small_cube_white" } + } +}) + +minetest.register_craft({ + output = "homedecor:ceiling_fan", + recipe = { + { "technic:motor" }, + { "homedecor:fan_blades" }, + { "homedecor:glowlight_small_cube_white" } + } +}) + +minetest.register_craft({ + output = "homedecor:welcome_mat_grey 2", + recipe = { + { "", "dye:black", "" }, + { "wool:grey", "wool:grey", "wool:grey" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:welcome_mat_brown 2", + recipe = { + { "", "dye:black", "" }, + { "wool:brown", "wool:brown", "wool:brown" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:welcome_mat_green 2", + recipe = { + { "", "dye:white", "" }, + { "wool:dark_green", "wool:dark_green", "wool:dark_green" }, + }, +}) + +minetest.register_craft({ + type = "shapeless", + output = "homedecor:window_plain 8", + recipe = { + "dye:white", + "dye:white", + "dye:white", + "dye:white", + "building_blocks:woodglass" + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "homedecor:window_quartered", + recipe = { + "dye:white", + "group:stick", + "group:stick", + "homedecor:window_plain" + } +}) + +minetest.register_craft({ + output = "homedecor:vcr 2", + recipe = { + { "homedecor:ic", "default:steel_ingot", "homedecor:plastic_sheeting" }, + { "default:iron_lump", "default:iron_lump", "default:iron_lump" }, + { "homedecor:plastic_sheeting", "", "homedecor:plastic_sheeting" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:dvd_player 2", + recipe = { + { "", "homedecor:plastic_sheeting", "" }, + { "default:obsidian_glass", "homedecor:motor", "homedecor:motor" }, + { "default:mese_crystal_fragment", "homedecor:ic", "homedecor:power_crystal" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:dvd_player 2", + recipe = { + { "", "homedecor:plastic_sheeting", "" }, + { "default:obsidian_glass", "technic:motor", "technic:motor" }, + { "default:mese_crystal_fragment", "homedecor:ic", "homedecor:power_crystal" }, + }, +}) + +minetest.register_craft({ + type = "shapeless", + output = "homedecor:dvd_vcr", + recipe = { + "homedecor:vcr", + "homedecor:dvd_player" + }, +}) + +minetest.register_craft({ + output = "homedecor:blinds_thin", + recipe = { + { "group:stick", "homedecor:plastic_sheeting", "group:stick" }, + { "farming:string", "homedecor:plastic_strips", "" }, + { "", "homedecor:plastic_strips", "" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:blinds_thick", + recipe = { + { "group:stick", "homedecor:plastic_sheeting", "group:stick" }, + { "farming:string", "homedecor:plastic_strips", "homedecor:plastic_strips" }, + { "", "homedecor:plastic_strips", "homedecor:plastic_strips" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:openframe_bookshelf", + recipe = { + {"group:wood", "", "group:wood"}, + {"default:book", "default:book", "default:book"}, + {"group:wood", "", "group:wood"}, + }, +}) + +minetest.register_craft( { + output = "homedecor:desk_fan", + recipe = { + {"default:steel_ingot", "homedecor:fan_blades", "homedecor:motor"}, + {"", "default:steel_ingot", ""} + }, +}) + +minetest.register_craft( { + output = "homedecor:space_heater", + recipe = { + {"homedecor:plastic_sheeting", "homedecor:heating_element", "homedecor:plastic_sheeting"}, + {"homedecor:plastic_sheeting", "homedecor:fan_blades", "homedecor:motor"}, + {"homedecor:plastic_sheeting", "homedecor:heating_element", "homedecor:plastic_sheeting"} + }, +}) + +minetest.register_craft( { + output = "homedecor:radiator", + recipe = { + { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" }, + { "homedecor:ic", "homedecor:heating_element", "" }, + { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" } + }, +}) + +-- bathroom/kitchen tiles + +local color_pairings = { + { "grey", "white", "1" }, + { "dark_grey", "white", "2" }, + { "black", "white", "3" }, + { "black", "dark_grey", "4" }, + { "red", "white", "red" }, + { "green", "white", "green" }, + { "blue", "white", "blue" }, + { "yellow", "white", "yellow" }, + { "brown", "white", "tan" } +} + +for i in ipairs(color_pairings) do + local dye1 = color_pairings[i][1] + local dye2 = color_pairings[i][2] + local result = color_pairings[i][3] + minetest.register_craft( { + output = "homedecor:tiles_"..result.." 2", + recipe = { + { "building_blocks:Marble", "dye:"..dye1 }, + { "building_blocks:Marble", "dye:"..dye2 } + }, + }) +end + +-- misc electrical + +minetest.register_craft( { + output = "homedecor:power_outlet", + recipe = { + {"homedecor:plastic_sheeting", "homedecor:copper_strip"}, + {"homedecor:plastic_sheeting", ""}, + {"homedecor:plastic_sheeting", "homedecor:copper_strip"} + }, +}) + +minetest.register_craft( { + output = "homedecor:light_switch", + recipe = { + {"", "homedecor:plastic_sheeting", "homedecor:copper_strip"}, + {"homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:copper_strip"}, + {"", "homedecor:plastic_sheeting", "homedecor:copper_strip"} + }, +}) + +-- doghouse + +minetest.register_craft( { + output = "homedecor:doghouse_base", + recipe = { + {"homedecor:shingles_terracotta", "homedecor:shingles_terracotta", "homedecor:shingles_terracotta"}, + {"group:wood", "", "group:wood"}, + {"group:wood", "building_blocks:terrycloth_towel", "group:wood"} + }, +}) + +-- japanese walls and mat + +minetest.register_craft( { + output = "homedecor:japanese_wall_top", + recipe = { + {"group:stick", "default:paper"}, + {"default:paper", "group:stick"}, + {"group:stick", "default:paper"} + }, +}) + +minetest.register_craft( { + output = "homedecor:japanese_wall_top", + recipe = { + {"default:paper", "group:stick"}, + {"group:stick", "default:paper"}, + {"default:paper", "group:stick"} + }, +}) + +minetest.register_craft( { + output = "homedecor:japanese_wall_middle", + recipe = { + {"homedecor:japanese_wall_top"} + }, +}) + +minetest.register_craft( { + output = "homedecor:japanese_wall_bottom", + recipe = { + {"homedecor:japanese_wall_middle"} + }, +}) + +minetest.register_craft( { + output = "homedecor:japanese_wall_top", + recipe = { + {"homedecor:japanese_wall_bottom"} + }, +}) + +minetest.register_craft( { + output = "homedecor:tatami_mat", + recipe = { + {"farming:wheat", "farming:wheat", "farming:wheat"} + }, +}) + +minetest.register_craft( { + output = "homedecor:wardrobe_bottom", + recipe = { + { "homedecor:drawer_small", "homedecor:kitchen_cabinet" }, + { "homedecor:drawer_small", "default:wood" }, + { "homedecor:drawer_small", "default:wood" } + }, +}) + +minetest.register_craft( { + output = "homedecor:pool_table", + recipe = { + { "wool:dark_green", "wool:dark_green", "wool:dark_green" }, + { "group:wood", "group:wood", "group:wood" }, + { "group:stick", "", "group:stick" } + }, +}) + +minetest.register_craft( { + output = "homedecor:trash_can 3", + recipe = { + { "homedecor:steel_wire", "", "homedecor:steel_wire" }, + { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" } + }, +}) + +minetest.register_craft( { + output = "homedecor:telephone", + recipe = { + { "homedecor:speaker_driver", "homedecor:copper_wire", "homedecor:speaker_driver" }, + { "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting" }, + { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" } + }, +}) + +minetest.register_craft( { + output = "homedecor:cobweb_corner 5", + recipe = { + { "farming:string", "", "farming:string" }, + { "", "farming:string", "" }, + { "farming:string", "", "farming:string" } + }, +}) + +minetest.register_craft( { + output = "homedecor:well_base", + recipe = { + { "homedecor:shingles_wood", "homedecor:shingles_wood", "homedecor:shingles_wood" }, + { "group:wood", "group:stick", "group:wood" }, + { "default:cobble", "", "default:cobble" } + }, +}) + +minetest.register_craft( { + output = "homedecor:coat_tree", + recipe = { + { "group:stick", "group:stick", "group:stick" }, + { "", "group:stick", "" }, + { "", "group:wood", "" } + }, +}) + +minetest.register_craft( { + output = "homedecor:coatrack_wallmount", + recipe = { + { "group:stick", "homedecor:curtainrod_wood", "group:stick" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:doorbell", + recipe = { + { "homedecor:light_switch", "homedecor:power_crystal", "homedecor:speaker_driver" } + }, +}) + + +minetest.register_craft( { + output = "homedecor:bench_large_1_left", + recipe = { + { "group:wood", "group:wood", "group:wood" }, + { "group:wood", "group:wood", "group:wood" }, + { "homedecor:pole_wrought_iron", "", "homedecor:pole_wrought_iron" } + }, +}) + +minetest.register_craft( { + output = "homedecor:bench_large_2_left", + recipe = { + { "homedecor:shutter_oak", "homedecor:shutter_oak", "homedecor:shutter_oak" }, + { "group:wood", "group:wood", "group:wood" }, + { "stairs:slab_wood", "", "stairs:slab_wood" } + }, +}) + +minetest.register_craft( { + output = "homedecor:bench_large_2_left", + recipe = { + { "homedecor:shutter_oak", "homedecor:shutter_oak", "homedecor:shutter_oak" }, + { "group:wood", "group:wood", "group:wood" }, + { "moreblocks:slab_wood", "", "moreblocks:slab_wood" } + }, +}) + +minetest.register_craft( { + output = "homedecor:kitchen_faucet", + recipe = { + { "", "default:steel_ingot" }, + { "default:steel_ingot", "" }, + { "homedecor:taps", "" } + }, +}) + +minetest.register_craft( { + output = "homedecor:cutlery_set", + recipe = { + { "", "vessels:drinking_glass", "" }, + { "homedecor:steel_strip", "building_blocks:slab_marble", "homedecor:steel_strip" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:cutlery_set", + recipe = { + { "", "vessels:drinking_glass", "" }, + { "homedecor:steel_strip", "building_blocks:micro_marble_1", "homedecor:steel_strip" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:simple_bench", + recipe = { + { "stairs:slab_wood", "stairs:slab_wood", "stairs:slab_wood" }, + { "stairs:slab_wood", "", "stairs:slab_wood" } + }, +}) + +minetest.register_craft( { + output = "homedecor:simple_bench", + recipe = { + { "moreblocks:slab_wood", "moreblocks:slab_wood", "moreblocks:slab_wood" }, + { "moreblocks:slab_wood", "", "moreblocks:slab_wood" } + }, +}) + +local bedcolors = { + { "red", "red"}, + { "orange", "orange" }, + { "yellow", "yellow"}, + { "green", "dark_green"}, + { "blue", "blue"}, + { "violet", "violet"}, + { "pink", "pink"}, + { "darkgrey", "dark_grey"}, + { "brown", "brown" }, +} + +for c in ipairs(bedcolors) do + local color = bedcolors[c][1] + local woolcolor = bedcolors[c][2] + + minetest.register_craft( { + output = "homedecor:bed_"..color.."_foot", + recipe = { + { "group:stick", "", "group:stick" }, + { "wool:white", "wool:"..woolcolor, "wool:"..woolcolor }, + { "group:wood", "", "group:wood" }, + }, + }) + +end + +minetest.register_craft( { + output = "homedecor:bottle_green", + recipe = { + { "vessels:glass_bottle", "dye:green" } + }, +}) + +minetest.register_craft( { + output = "homedecor:bottle_brown", + recipe = { + { "vessels:glass_bottle", "dye:brown" } + }, +}) + +if not minetest.get_modpath("glooptest") then + + minetest.register_craft({ + output = "glooptest:chainlink 12", + recipe = { + {"", "default:steel_ingot", "default:steel_ingot"}, + { "default:steel_ingot", "", "default:steel_ingot" }, + { "default:steel_ingot", "default:steel_ingot", "" }, + }, + }) + +end + +minetest.register_alias("homedecor:chainlink_steel", "glooptest:chainlink") + +minetest.register_craft({ + output = "homedecor:chains 4", + recipe = { + { "default:steel_ingot", "", "default:steel_ingot"}, + { "glooptest:chainlink", "", "glooptest:chainlink" }, + { "glooptest:chainlink", "", "glooptest:chainlink" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:chainlink_brass 12", + recipe = { + {"", "technic:brass_ingot", "technic:brass_ingot"}, + { "technic:brass_ingot", "", "technic:brass_ingot" }, + { "technic:brass_ingot", "technic:brass_ingot", "" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:coffee_maker", + recipe = { + {"homedecor:plastic_sheeting", "bucket:bucket_water", "homedecor:plastic_sheeting"}, + {"homedecor:plastic_sheeting", "default:glass", "homedecor:plastic_sheeting"}, + {"homedecor:plastic_sheeting", "homedecor:heating_element", "homedecor:plastic_sheeting"} + }, +}) + +minetest.register_craft({ + output = "homedecor:dartboard", + recipe = { + {"dye:black", "homedecor:plastic_sheeting", "dye:white"}, + {"homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting"}, + {"dye:dark_green", "homedecor:plastic_sheeting", "dye:red"} + }, +}) + +minetest.register_craft({ + output = "homedecor:piano_left", + recipe = { + { "", "homedecor:steel_wire", "building_blocks:hardwood" }, + { "homedecor:plastic_strips", "homedecor:steel_wire", "building_blocks:hardwood" }, + { "building_blocks:hardwood", "default:steelblock", "building_blocks:hardwood" } + }, +}) + +minetest.register_craft({ + output = "homedecor:toaster", + recipe = { + { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" }, + { "default:steel_ingot", "homedecor:heating_element", "default:steel_ingot" } + }, +}) + +minetest.register_craft({ + output = "homedecor:deckchair_foot", + recipe = { + { "group:stick", "building_blocks:terrycloth_towel", "group:stick" }, + { "group:stick", "building_blocks:terrycloth_towel", "group:stick" }, + { "group:stick", "building_blocks:terrycloth_towel", "group:stick" } + }, +}) + +minetest.register_craft({ + output = "homedecor:wall_shelf 2", + recipe = { + { "homedecor:wood_table_small_square", "homedecor:curtainrod_wood", "homedecor:curtainrod_wood" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:trophy 3", + recipe = { + { "default:gold_ingot","","default:gold_ingot" }, + { "","default:gold_ingot","" }, + { "default:gold_ingot","default:gold_ingot","default:gold_ingot" } + }, +}) + +minetest.register_craft({ + output = "homedecor:grandfather_clock_bottom", + recipe = { + { "building_blocks:slab_hardwood","homedecor:analog_clock_wood","building_blocks:slab_hardwood" }, + { "building_blocks:slab_hardwood","technic:brass_ingot","building_blocks:slab_hardwood" }, + { "building_blocks:slab_hardwood","technic:brass_ingot","building_blocks:slab_hardwood" } + }, +}) + +minetest.register_craft({ + output = "homedecor:sportbench", + recipe = { + { "stairs:slab_steelblock","homedecor:pole_wrought_iron","stairs:slab_steelblock" }, + { "default:steel_ingot","wool:black","default:steel_ingot" }, + { "default:steel_ingot","wool:black","default:steel_ingot" } + }, +}) + +minetest.register_craft({ + output = "homedecor:skateboard", + recipe = { + { "dye:yellow","dye:green","dye:blue" }, + { "homedecor:wood_table_small_square","homedecor:wood_table_small_square","homedecor:wood_table_small_square" }, + { "default:steel_ingot","","default:steel_ingot" } + }, +}) + +minetest.register_craft({ + output = "homedecor:copper_pans", + recipe = { + { "homedecor:copper_strip","","homedecor:copper_strip" }, + { "default:copper_ingot","","default:copper_ingot" }, + { "default:copper_ingot","","default:copper_ingot" } + }, +}) + +minetest.register_craft( { + output = "homedecor:window_flowerbox", + recipe = { + { "homedecor:roof_tile_terracotta", "default:dirt", "homedecor:roof_tile_terracotta" }, + { "", "homedecor:roof_tile_terracotta", "" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:paper_towel", + recipe = { + { "homedecor:toilet_paper", "homedecor:toilet_paper" } + }, +}) + +minetest.register_craft({ + output = "homedecor:stonepath 16", + recipe = { + { "stairs:slab_stone","","stairs:slab_stone" }, + { "","stairs:slab_stone","" }, + { "stairs:slab_stone","","stairs:slab_stone" } + }, +}) + +minetest.register_craft({ + output = "homedecor:stonepath 16", + recipe = { + { "moreblocks:slab_stone","","moreblocks:slab_stone" }, + { "","moreblocks:slab_stone","" }, + { "moreblocks:slab_stone","","moreblocks:slab_stone" } + }, +}) + +minetest.register_craft({ + output = "homedecor:stonepath 3", + recipe = { + { "moreblocks:micro_stone_1","","moreblocks:micro_stone_1" }, + { "","moreblocks:micro_stone_1","" }, + { "moreblocks:micro_stone_1","","moreblocks:micro_stone_1" } + }, +}) + +minetest.register_craft({ + output = "homedecor:barbecue", + recipe = { + { "","homedecor:fence_chainlink","" }, + { "default:steel_ingot","fake_fire:embers","default:steel_ingot" }, + { "homedecor:pole_wrought_iron","default:steel_ingot","homedecor:pole_wrought_iron" } + }, +}) + +minetest.register_craft({ + output = "homedecor:beer_tap", + recipe = { + { "group:stick","default:steel_ingot","group:stick" }, + { "homedecor:kitchen_faucet","default:steel_ingot","homedecor:kitchen_faucet" }, + { "default:steel_ingot","default:steel_ingot","default:steel_ingot" } + }, +}) + +minetest.register_craft({ + output = "homedecor:swing", + recipe = { + { "farming:string","","farming:string" }, + { "farming:string","","farming:string" }, + { "farming:string","stairs:slab_wood","farming:string" } + }, +}) + +minetest.register_craft({ + output = "homedecor:swing", + recipe = { + { "farming:string","","farming:string" }, + { "farming:string","","farming:string" }, + { "farming:string","moreblocks:slab_wood","farming:string" } + }, +}) + +minetest.register_craft({ + output = "homedecor:swing", + recipe = { + { "farming:string","","farming:string" }, + { "farming:string","","farming:string" }, + { "farming:string","moreblocks:panel_wood_1","farming:string" } + }, +}) + +local bookcolors = { + "red", + "green", + "blue" +} + +for _, color in ipairs(bookcolors) do + minetest.register_craft({ + type = "shapeless", + output = "homedecor:book_"..color, + recipe = { + "dye:"..color, + "default:book" + }, + }) +end + +minetest.register_craft({ + output = "homedecor:jpn_door_bottom", + recipe = { + { "homedecor:japanese_wall_top" }, + { "homedecor:japanese_wall_bottom" } + }, +}) + diff --git a/mods/homedecor_modpack/homedecor/depends.txt b/mods/homedecor_modpack/homedecor/depends.txt new file mode 100644 index 00000000..9dcc69f0 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/depends.txt @@ -0,0 +1,5 @@ +default +signs_lib +building_blocks +moreblocks? + diff --git a/mods/homedecor_modpack/homedecor/door_models.lua b/mods/homedecor_modpack/homedecor/door_models.lua new file mode 100644 index 00000000..32dce9c3 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/door_models.lua @@ -0,0 +1,365 @@ + +local S = homedecor.gettext + +homedecor.door_models = { + { + "closet_mahogany", + S("Mahogany Closet Door"), + + {{ -8/16, 5/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, 8/32, 13/32, 8/16, 9/32, 15/32 }, + { -8/16, 6/32, 13/32, 8/16, 7/32, 15/32 }, + { -8/16, 4/32, 13/32, 8/16, 5/32, 15/32 }, + { -8/16, 2/32, 13/32, 8/16, 3/32, 15/32 }, + { -8/16, 0/32, 13/32, 8/16, 1/32, 15/32 }, + { -8/16, -2/32, 13/32, 8/16, -1/32, 15/32 }, + { -8/16, -4/32, 13/32, 8/16, -3/32, 15/32 }, + { -8/16, -6/32, 13/32, 8/16, -5/32, 15/32 }, + { -8/16, -8/32, 13/32, 8/16, -7/32, 15/32 }, + { -8/16, -10/32, 13/32, 8/16, -9/32, 15/32 }, + { -8/16, -12/32, 13/32, 8/16, -11/32, 15/32 }, + { -8/16, -16/32, 6/16, 8/16, -13/32, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, + + {{ -8/16, 6/16, 6/16, 8/16, 8/16, 8/16}, + { -8/16, 10/32, 13/32, 8/16, 11/32, 15/32 }, + { -8/16, 8/32, 13/32, 8/16, 9/32, 15/32 }, + { -8/16, 6/32, 13/32, 8/16, 7/32, 15/32 }, + { -8/16, 4/32, 13/32, 8/16, 5/32, 15/32 }, + { -8/16, 2/32, 13/32, 8/16, 3/32, 15/32 }, + { -8/16, 0, 13/32, 8/16, 1/32, 15/32 }, + { -8/16, -2/32, 13/32, 8/16, -1/32, 15/32 }, + { -8/16, -4/32, 13/32, 8/16, -3/32, 15/32 }, + { -8/16, -6/32, 13/32, 8/16, -5/32, 15/32 }, + { -8/16, -8/32, 13/32, 8/16, -7/32, 15/32 }, + { -8/16, -10/32, 13/32, 8/16, -9/32, 15/32 }, + { -8/16, -16/32, 6/16, 8/16, -11/32, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, + + {{ -8/16, 5/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, 8/32, 13/32, 8/16, 9/32, 15/32 }, + { -8/16, 6/32, 13/32, 8/16, 7/32, 15/32 }, + { -8/16, 4/32, 13/32, 8/16, 5/32, 15/32 }, + { -8/16, 2/32, 13/32, 8/16, 3/32, 15/32 }, + { -8/16, 0/32, 13/32, 8/16, 1/32, 15/32 }, + { -8/16, -2/32, 13/32, 8/16, -1/32, 15/32 }, + { -8/16, -4/32, 13/32, 8/16, -3/32, 15/32 }, + { -8/16, -6/32, 13/32, 8/16, -5/32, 15/32 }, + { -8/16, -8/32, 13/32, 8/16, -7/32, 15/32 }, + { -8/16, -10/32, 13/32, 8/16, -9/32, 15/32 }, + { -8/16, -12/32, 13/32, 8/16, -11/32, 15/32 }, + { -8/16, -16/32, 6/16, 8/16, -13/32, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, + + {{ -8/16, 6/16, 6/16, 8/16, 8/16, 8/16}, + { -8/16, 10/32, 13/32, 8/16, 11/32, 15/32 }, + { -8/16, 8/32, 13/32, 8/16, 9/32, 15/32 }, + { -8/16, 6/32, 13/32, 8/16, 7/32, 15/32 }, + { -8/16, 4/32, 13/32, 8/16, 5/32, 15/32 }, + { -8/16, 2/32, 13/32, 8/16, 3/32, 15/32 }, + { -8/16, 0, 13/32, 8/16, 1/32, 15/32 }, + { -8/16, -2/32, 13/32, 8/16, -1/32, 15/32 }, + { -8/16, -4/32, 13/32, 8/16, -3/32, 15/32 }, + { -8/16, -6/32, 13/32, 8/16, -5/32, 15/32 }, + { -8/16, -8/32, 13/32, 8/16, -7/32, 15/32 }, + { -8/16, -10/32, 13/32, 8/16, -9/32, 15/32 }, + { -8/16, -16/32, 6/16, 8/16, -11/32, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }} + }, + +---------- + + { + "closet_oak", + S("Oak Closet Door"), + + {{ -8/16, 5/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, 8/32, 13/32, 8/16, 9/32, 15/32 }, + { -8/16, 6/32, 13/32, 8/16, 7/32, 15/32 }, + { -8/16, 4/32, 13/32, 8/16, 5/32, 15/32 }, + { -8/16, 2/32, 13/32, 8/16, 3/32, 15/32 }, + { -8/16, 0/32, 13/32, 8/16, 1/32, 15/32 }, + { -8/16, -2/32, 13/32, 8/16, -1/32, 15/32 }, + { -8/16, -4/32, 13/32, 8/16, -3/32, 15/32 }, + { -8/16, -6/32, 13/32, 8/16, -5/32, 15/32 }, + { -8/16, -8/32, 13/32, 8/16, -7/32, 15/32 }, + { -8/16, -10/32, 13/32, 8/16, -9/32, 15/32 }, + { -8/16, -12/32, 13/32, 8/16, -11/32, 15/32 }, + { -8/16, -16/32, 6/16, 8/16, -13/32, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, + + {{ -8/16, 6/16, 6/16, 8/16, 8/16, 8/16}, + { -8/16, 10/32, 13/32, 8/16, 11/32, 15/32 }, + { -8/16, 8/32, 13/32, 8/16, 9/32, 15/32 }, + { -8/16, 6/32, 13/32, 8/16, 7/32, 15/32 }, + { -8/16, 4/32, 13/32, 8/16, 5/32, 15/32 }, + { -8/16, 2/32, 13/32, 8/16, 3/32, 15/32 }, + { -8/16, 0, 13/32, 8/16, 1/32, 15/32 }, + { -8/16, -2/32, 13/32, 8/16, -1/32, 15/32 }, + { -8/16, -4/32, 13/32, 8/16, -3/32, 15/32 }, + { -8/16, -6/32, 13/32, 8/16, -5/32, 15/32 }, + { -8/16, -8/32, 13/32, 8/16, -7/32, 15/32 }, + { -8/16, -10/32, 13/32, 8/16, -9/32, 15/32 }, + { -8/16, -16/32, 6/16, 8/16, -11/32, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, + + {{ -8/16, 5/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, 8/32, 13/32, 8/16, 9/32, 15/32 }, + { -8/16, 6/32, 13/32, 8/16, 7/32, 15/32 }, + { -8/16, 4/32, 13/32, 8/16, 5/32, 15/32 }, + { -8/16, 2/32, 13/32, 8/16, 3/32, 15/32 }, + { -8/16, 0/32, 13/32, 8/16, 1/32, 15/32 }, + { -8/16, -2/32, 13/32, 8/16, -1/32, 15/32 }, + { -8/16, -4/32, 13/32, 8/16, -3/32, 15/32 }, + { -8/16, -6/32, 13/32, 8/16, -5/32, 15/32 }, + { -8/16, -8/32, 13/32, 8/16, -7/32, 15/32 }, + { -8/16, -10/32, 13/32, 8/16, -9/32, 15/32 }, + { -8/16, -12/32, 13/32, 8/16, -11/32, 15/32 }, + { -8/16, -16/32, 6/16, 8/16, -13/32, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, + + {{ -8/16, 6/16, 6/16, 8/16, 8/16, 8/16}, + { -8/16, 10/32, 13/32, 8/16, 11/32, 15/32 }, + { -8/16, 8/32, 13/32, 8/16, 9/32, 15/32 }, + { -8/16, 6/32, 13/32, 8/16, 7/32, 15/32 }, + { -8/16, 4/32, 13/32, 8/16, 5/32, 15/32 }, + { -8/16, 2/32, 13/32, 8/16, 3/32, 15/32 }, + { -8/16, 0, 13/32, 8/16, 1/32, 15/32 }, + { -8/16, -2/32, 13/32, 8/16, -1/32, 15/32 }, + { -8/16, -4/32, 13/32, 8/16, -3/32, 15/32 }, + { -8/16, -6/32, 13/32, 8/16, -5/32, 15/32 }, + { -8/16, -8/32, 13/32, 8/16, -7/32, 15/32 }, + { -8/16, -10/32, 13/32, 8/16, -9/32, 15/32 }, + { -8/16, -16/32, 6/16, 8/16, -11/32, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, + }, + +---------- + + { + "exterior_fancy", + S("Fancy Wood/Glass Door"), + + {{ -8/16, 6/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 }}, + + {{ -8/16, -8/16, 6/16, 8/16, 6/16, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 }}, + + {{ -8/16, 6/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 }}, + + {{ -8/16, -8/16, 6/16, 8/16, 6/16, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 }} + }, + +---------- + + { + "glass", + S("Glass Office Door"), + + {{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, + + {{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, + + {{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, + + {{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }} + }, + +---------- + + { + "wood_glass", + S("Glass and Wood, Oak-colored"), + + {{ -8/16, 6/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -3/32, 6/16, 8/16, 1/32, 8/16 }, + { -8/16, -8/16, 6/16, 8/16, -7/16, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { -1/16, -8/16, 6/16, 1/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 }}, + + {{ -8/16, 7/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -1/32, 6/16, 8/16, 3/32, 8/16 }, + { -8/16, -8/16, 6/16, 8/16, -6/16, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { -1/16, -8/16, 6/16, 1/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 }}, + + {{ -8/16, 6/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -3/32, 6/16, 8/16, 1/32, 8/16 }, + { -8/16, -8/16, 6/16, 8/16, -7/16, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { -1/16, -8/16, 6/16, 1/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 }}, + + {{ -8/16, 7/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -1/32, 6/16, 8/16, 3/32, 8/16 }, + { -8/16, -8/16, 6/16, 8/16, -6/16, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { -1/16, -8/16, 6/16, 1/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 }} + }, + +---------- + + { + "wood_glass_mahogany", + S("Glass and Wood, Mahogany-colored"), + + {{ -8/16, 6/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -3/32, 6/16, 8/16, 1/32, 8/16 }, + { -8/16, -8/16, 6/16, 8/16, -7/16, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { -1/16, -8/16, 6/16, 1/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 }}, + + {{ -8/16, 7/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -1/32, 6/16, 8/16, 3/32, 8/16 }, + { -8/16, -8/16, 6/16, 8/16, -6/16, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { -1/16, -8/16, 6/16, 1/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 }}, + + {{ -8/16, 6/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -3/32, 6/16, 8/16, 1/32, 8/16 }, + { -8/16, -8/16, 6/16, 8/16, -7/16, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { -1/16, -8/16, 6/16, 1/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 }}, + + {{ -8/16, 7/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -1/32, 6/16, 8/16, 3/32, 8/16 }, + { -8/16, -8/16, 6/16, 8/16, -6/16, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { -1/16, -8/16, 6/16, 1/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 }} + }, + +---------- + + { + "wood_glass_white", + S("Glass and Wood, White"), + + {{ -8/16, 6/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -3/32, 6/16, 8/16, 1/32, 8/16 }, + { -8/16, -8/16, 6/16, 8/16, -7/16, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { -1/16, -8/16, 6/16, 1/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 }}, + + {{ -8/16, 7/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -1/32, 6/16, 8/16, 3/32, 8/16 }, + { -8/16, -8/16, 6/16, 8/16, -6/16, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { -1/16, -8/16, 6/16, 1/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 }}, + + {{ -8/16, 6/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -3/32, 6/16, 8/16, 1/32, 8/16 }, + { -8/16, -8/16, 6/16, 8/16, -7/16, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { -1/16, -8/16, 6/16, 1/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 }}, + + {{ -8/16, 7/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -1/32, 6/16, 8/16, 3/32, 8/16 }, + { -8/16, -8/16, 6/16, 8/16, -6/16, 8/16 }, + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, + { -1/16, -8/16, 6/16, 1/16, 8/16, 8/16 }, + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, + { -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 }} + }, + +---------- + + { + "wood_plain", + S("Plain Wooden Door"), + + {{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, + + {{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, + + {{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, + + {{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }} + }, + +---------- + + { + "bedroom", + S("White Bedroom Door"), + + {{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, + + {{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, + + {{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, + + {{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }} + }, + +---------- + + { + "wrought_iron", + S("Wrought Iron Gate/Door"), + + {{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, + + {{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, + + {{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, + + {{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }} + }, + +--------- + + { + "woodglass", + S("Woodglass door"), + + {{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, + + {{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, + + {{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }}, + + {{ -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 }} + }, + +} + diff --git a/mods/homedecor_modpack/homedecor/doors_and_gates.lua b/mods/homedecor_modpack/homedecor/doors_and_gates.lua new file mode 100644 index 00000000..4de2164e --- /dev/null +++ b/mods/homedecor_modpack/homedecor/doors_and_gates.lua @@ -0,0 +1,800 @@ +-- Node definitions for Homedecor doors + +local S = homedecor.gettext + +-- doors + +local function isSolid(pos,adj) + local adj = {x=adj[1],y=adj[2],z=adj[3]} + local node = minetest.get_node(vector.add(pos,adj)) + if node then + local idef = minetest.registered_nodes[minetest.get_node(vector.add(pos,adj)).name] + if idef then + return idef.walkable + end + end + return false +end + +local function countSolids(pos,node,level) + local solids = 0 + for x = -1, 1 do + for z = -1, 1 do + local y = 0 + if node.param2 == 5 then + y = -level + else + y = level + end + -- special cases when x == z == 0 + if x == 0 and z == 0 then + if level == 1 then + -- when looking past the trap door, cannot be solid in center + if isSolid(pos,{x,y,z}) then + return false + end + -- no else. it doesn't matter if x == y == z is solid, that's us. + end + elseif isSolid(pos,{x,y,z}) then + solids = solids + 1 + end + end + end + return solids +end + +local function calculateClosed(pos) + local node = minetest.get_node(pos) + -- the door is considered closed if it is closing off something. + + local solids = 0 + local direction = node.param2 % 6 + local isTrap = direction == 0 or direction == 5 + if isTrap then + -- the trap door is considered closed when all nodes on its sides are solid + -- or all nodes in the 3x3 above/below it are solid except the center + for level = 0, 1 do + local fail = false + local solids = countSolids(pos,node,level) + if solids == 8 then + return true + end + end + return false + else + -- the door is considered closed when the nodes on its sides are solid + -- or the 3 nodes in its facing direction are solid nonsolid solid + -- if the door has two levels (i.e. not a gate) then this must + -- be true for the top node as well. + + -- sorry I dunno the math to figure whether to x or z + if direction == 1 or direction == 2 then + if isSolid(pos,{0,0,-1}) and isSolid(pos,{0,0,1}) then + if string.find(node.name,'_bottom_') then + return calculateClosed({x=pos.x,y=pos.y+1,z=pos.z}) + else + return true + end + end + local x + if direction == 1 then + x = 1 + else + x = -1 + end + if isSolid(pos,{x,0,-1}) and not isSolid(pos,{x,0,0}) and isSolid(pos,{x,0,1}) then + if string.find(node.name,'_bottom_') then + return calculateClosed({x=pos.x,y=pos.y+1,z=pos.z}) + else + return true + end + end + return false + else + -- direction == 3 or 4 + if isSolid(pos,{-1,0,0}) and isSolid(pos,{1,0,0}) then + if string.find(node.name,'_bottom_') then + return calculateClosed({x=pos.x,y=pos.y+1,z=pos.z}) + else + return true + end + end + local z + if direction == 3 then + z = 1 + else + z = -1 + end + if isSolid(pos,{-1,0,z}) and not isSolid(pos,{0,0,z}) and isSolid(pos,{1,0,z}) then + if string.find(node.name,'_bottom_') then + return calculateClosed({x=pos.x,y=pos.y+1,z=pos.z}) + else + return true + end + end + return false + end + error("What direction is this???",direction) + end +end + +-- isClosed flag, is 0 or 1 0 = open, 1 = closed +local function getClosed(pos) + local isClosed = minetest.get_meta(pos):get_string('closed') + if isClosed=='' then + if calculateClosed(pos) then + return true + else + return false + end + else + isClosed = tonumber(isClosed) + -- may be closed or open (1 or 0) + return isClosed == 1 + end +end + +local function addDoorNode(pos,def,isClosed) + if isClosed then + isClosed = 1 + else + isClosed = 0 + end + minetest.add_node(pos, def) + minetest.get_meta(pos):set_int('closed',isClosed) +end + +local sides = {"left", "right"} +local rsides = {"right", "left"} + +for i in ipairs(sides) do + local side = sides[i] + local rside = rsides[i] + + for j in ipairs(homedecor.door_models) do + local doorname = homedecor.door_models[j][1] + local doordesc = homedecor.door_models[j][2] + local nodeboxes_top = homedecor.door_models[j][5] + local nodeboxes_bottom = homedecor.door_models[j][6] + local texalpha = false + if doorname == "exterior_fancy" then + texalpha = true + end + + if side == "left" then + nodeboxes_top = homedecor.door_models[j][3] + nodeboxes_bottom = homedecor.door_models[j][4] + end + + local lower_top_side = "homedecor_door_"..doorname.."_tb.png" + local upper_bottom_side = "homedecor_door_"..doorname.."_tb.png" + + if doorname == "glass" or doorname == "wrought_iron" then + lower_top_side = "homedecor_blanktile.png" + upper_bottom_side = "homedecor_blanktile.png" + end + + local tiles_upper = { + "homedecor_door_"..doorname.."_tb.png", + upper_bottom_side, + "homedecor_door_"..doorname.."_lrt.png", + "homedecor_door_"..doorname.."_lrt.png", + "homedecor_door_"..doorname.."_"..rside.."_top.png", + "homedecor_door_"..doorname.."_"..side.."_top.png", + } + + local tiles_lower = { + lower_top_side, + "homedecor_door_"..doorname.."_tb.png", + "homedecor_door_"..doorname.."_lrb.png", + "homedecor_door_"..doorname.."_lrb.png", + "homedecor_door_"..doorname.."_"..rside.."_bottom.png", + "homedecor_door_"..doorname.."_"..side.."_bottom.png", + } + + local selectboxes_top = { + type = "fixed", + fixed = { -0.5, -1.5, 6/16, 0.5, 0.5, 8/16} + } + + local selectboxes_bottom = { + type = "fixed", + fixed = { -0.5, -0.5, 6/16, 0.5, 1.5, 8/16} + } + + minetest.register_node("homedecor:door_"..doorname.."_top_"..side, { + description = doordesc.." "..S("(Top Half, %s-opening)"):format(side), + drawtype = "nodebox", + tiles = tiles_upper, + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3, not_in_creative_inventory=1}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + use_texture_alpha = texalpha, + selection_box = selectboxes_top, + node_box = { + type = "fixed", + fixed = nodeboxes_top + }, + drop = "homedecor:door_"..doorname.."_bottom_"..side, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + if minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "homedecor:door_"..doorname.."_bottom_"..side then + minetest.remove_node({x=pos.x, y=pos.y-1, z=pos.z}) + end + end, + on_rightclick = function(pos, node, clicker) + homedecor.flip_door({x=pos.x, y=pos.y-1, z=pos.z}, node, clicker, doorname, side) + end + }) + + local dgroups = {snappy=3, not_in_creative_inventory=1} + if side == "left" then + dgroups = {snappy=3} + end + + minetest.register_node("homedecor:door_"..doorname.."_bottom_"..side, { + description = doordesc.." "..S("(%s-opening)"):format(side), + drawtype = "nodebox", + tiles = tiles_lower, + inventory_image = "homedecor_door_"..doorname.."_"..side.."_inv.png", + wield_image = "homedecor_door_"..doorname.."_"..side.."_inv.png", + paramtype = "light", + paramtype2 = "facedir", + groups = dgroups, + sounds = default.node_sound_wood_defaults(), + walkable = true, + use_texture_alpha = texalpha, + selection_box = selectboxes_bottom, + node_box = { + type = "fixed", + fixed = nodeboxes_bottom + }, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "homedecor:door_"..doorname.."_top_"..side then + minetest.remove_node({x=pos.x, y=pos.y+1, z=pos.z}) + end + end, + on_place = function(itemstack, placer, pointed_thing) + local keys=placer:get_player_control() + homedecor.place_door(itemstack, placer, pointed_thing, doorname, keys["sneak"]) + return itemstack + end, + on_rightclick = function(pos, node, clicker) + homedecor.flip_door(pos, node, clicker, doorname, side) + end, + -- both left and right doors may be used for open or closed doors + -- so they have to have both action_on and action_off and just + -- check when that action is invoked if to continue + + on_punch = function(pos, node, puncher) + minetest.get_meta(pos):set_string('closed',nil) + end, + drop = "homedecor:door_"..doorname.."_bottom_left", + mesecons = { + effector = { + action_on = function(pos,node) + local isClosed = getClosed(pos) + if isClosed then + homedecor.flip_door(pos,node,nil,doorname,side,isClosed) + end + end, + action_off = function(pos,node) + local isClosed = getClosed(pos) + if not isClosed then + homedecor.flip_door(pos,node,nil,doorname,side,isClosed) + end + end + } + } + }) + end +end + +-- Gates + +local gates_list = { "picket", "picket_white", "barbed_wire", "chainlink" } +local gate_names = { "Unpainted Picket", "White Picket", "Barbed Wire", "Chainlink" } + +local gate_models_closed = { + {{ -0.5, -0.5, 0.498, 0.5, 0.5, 0.498 }}, + + {{ -0.5, -0.5, 0.498, 0.5, 0.5, 0.498 }}, + + {{ -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, -- left post + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, -- right post + { -8/16, 7/16, 13/32, 8/16, 8/16, 15/32 }, -- top piece + { -8/16, -8/16, 13/32, 8/16, -7/16, 15/32 }, -- bottom piece + { -6/16, -8/16, 7/16, 6/16, 8/16, 7/16 }}, -- the wire + + {{ -8/16, -8/16, 6/16, -7/16, 8/16, 8/16 }, -- left post + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, -- right post + { -8/16, 7/16, 13/32, 8/16, 8/16, 15/32 }, -- top piece + { -8/16, -8/16, 13/32, 8/16, -7/16, 15/32 }, -- bottom piece + { -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 }, -- the chainlink itself + { -8/16, -3/16, 6/16, -6/16, 3/16, 8/16 }} -- the lump representing the lock +} + +local gate_models_open = { + {{ 0.498, -0.5, -0.5, 0.498, 0.5, 0.5 }}, + + {{ 0.498, -0.5, -0.5, 0.498, 0.5, 0.5 }}, + + {{ 6/16, -8/16, -8/16, 8/16, 8/16, -6/16 }, -- left post + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, -- right post + { 13/32, 7/16, -8/16, 15/32, 8/16, 8/16 }, -- top piece + { 13/32, -8/16, -8/16, 15/32, -7/16, 8/16 }, -- bottom piece + { 7/16, -8/16, -6/16, 7/16, 8/16, 6/16 }}, -- the wire + + {{ 6/16, -8/16, -8/16, 8/16, 8/16, -7/16 }, -- left post + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, -- right post + { 13/32, 7/16, -8/16, 15/32, 8/16, 8/16 }, -- top piece + { 13/32, -8/16, -8/16, 15/32, -7/16, 8/16 }, -- bottom piece + { 7/16, -8/16, -8/16, 7/16, 8/16, 8/16 }, -- the chainlink itself + { 6/16, -3/16, -8/16, 8/16, 3/16, -6/16 }} -- the lump representing the lock +} + +for i in ipairs(gates_list) do + + local gate=gates_list[i] + + local def = { + drawtype = "nodebox", + description = S(gate_names[i].." Fence Gate"), + tiles = { + "homedecor_gate_"..gate.."_top.png", + "homedecor_gate_"..gate.."_bottom.png", + "homedecor_gate_"..gate.."_left.png", + "homedecor_gate_"..gate.."_right.png", + "homedecor_gate_"..gate.."_back.png", + "homedecor_gate_"..gate.."_front.png" + }, + paramtype = "light", + is_ground_content = true, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, 0.4, 0.5, 0.5, 0.5 } + }, + node_box = { + type = "fixed", + fixed = gate_models_closed[i] + }, + on_rightclick = function(pos, node, clicker) + homedecor.flip_gate(pos, node, clicker, gate, "closed") + end, + mesecons = { + effector = { + action_on = function(pos,node) homedecor.flip_gate(pos,node,player,gate, "closed") end + } + } + } + + -- gates when placed default to closed, closed. + + minetest.register_node("homedecor:gate_"..gate.."_closed", def) + + -- this is either a terrible idea or a great one + def = homedecor.table_copy(def) + def.groups.not_in_creative_inventory = 1 + def.selection_box.fixed = { 0.4, -0.5, -0.5, 0.5, 0.5, 0.5 } + def.tiles = { + "homedecor_gate_"..gate.."_top.png", + "homedecor_gate_"..gate.."_bottom.png", + "homedecor_gate_"..gate.."_front.png", + "homedecor_gate_"..gate.."_back.png", + "homedecor_gate_"..gate.."_left.png", + "homedecor_gate_"..gate.."_right.png" + } + def.node_box.fixed = gate_models_open[i] + def.drop = "homedecor:gate_"..gate.."_closed" + def.on_rightclick = function(pos, node, clicker) + homedecor.flip_gate(pos, node, clicker, gate, "open") + end + def.mesecons.effector = { + action_off = function(pos,node) homedecor.flip_gate(pos,node,player,gate, "open") end + } + + minetest.register_node("homedecor:gate_"..gate.."_open", def) +end + +minetest.register_alias("homedecor:fence_barbed_wire_gate_open", "homedecor:gate_barbed_wire_open") +minetest.register_alias("homedecor:fence_barbed_wire_gate_closed", "homedecor:gate_barbed_wire_closed") +minetest.register_alias("homedecor:fence_chainlink_gate_open", "homedecor:gate_chainlink_open") +minetest.register_alias("homedecor:fence_chainlink_gate_closed", "homedecor:gate_chainlink_closed") +minetest.register_alias("homedecor:fence_picket_gate_open", "homedecor:gate_picket_open") +minetest.register_alias("homedecor:fence_picket_gate_closed", "homedecor:gate_picket_closed") +minetest.register_alias("homedecor:fence_picket_gate_white_open", "homedecor:gate_picket_white_open") +minetest.register_alias("homedecor:fence_picket_gate_white_closed", "homedecor:gate_picket_white_closed") + +----- helper functions + +function homedecor.place_door(itemstack, placer, pointed_thing, name, forceright) + + local pointed = pointed_thing.under + local pnode = minetest.get_node(pointed) + local pname = pnode.name + local rnodedef = minetest.registered_nodes[pname] + + if rnodedef then + + if rnodedef.on_rightclick then + rnodedef.on_rightclick(pointed_thing.under, pnode, placer, itemstack) + return + end + + local pos1 = nil + local pos2 = nil + + if rnodedef["buildable_to"] then + pos1 = pointed + pos2 = {x=pointed.x, y=pointed.y+1, z=pointed.z} + else + pos1 = pointed_thing.above + pos2 = {x=pointed_thing.above.x, y=pointed_thing.above.y+1, z=pointed_thing.above.z} + end + + local node_bottom = minetest.get_node(pos1) + local node_top = minetest.get_node(pos2) + + if minetest.is_protected(pos1, placer:get_player_name()) then + minetest.record_protection_violation(pos1, + placer:get_player_name()) + return + end + + if minetest.is_protected(pos2, placer:get_player_name()) then + minetest.record_protection_violation(pos2, + placer:get_player_name()) + return + end + + if not homedecor.get_nodedef_field(node_bottom.name, "buildable_to") + or not homedecor.get_nodedef_field(node_top.name, "buildable_to") then + minetest.chat_send_player( placer:get_player_name(), S('Not enough space above that spot to place a door!') ) + else + local fdir = minetest.dir_to_facedir(placer:get_look_dir()) + local p_tests = { + {x=pos1.x-1, y=pos1.y, z=pos1.z}, + {x=pos1.x, y=pos1.y, z=pos1.z+1}, + {x=pos1.x+1, y=pos1.y, z=pos1.z}, + {x=pos1.x, y=pos1.y, z=pos1.z-1}, + } + print("fdir="..fdir) + local testnode = minetest.get_node(p_tests[fdir+1]) + local side = "left" + + if string.find(testnode.name, "homedecor:door_"..name.."_bottom_left") or forceright then + side = "right" + end + + local def = { name = "homedecor:door_"..name.."_bottom_"..side, param2=fdir} + addDoorNode(pos1, def, true) + minetest.add_node(pos2, { name = "homedecor:door_"..name.."_top_"..side, param2=fdir}) + if not homedecor.expect_infinite_stacks then + itemstack:take_item() + return itemstack + end + end + end +end + +-- to open a door, you switch left for right and subtract from param2, or vice versa right for left +-- that is to say open "right" doors become left door nodes, and open left doors right door nodes. +-- also adjusting param2 so the node is at 90 degrees. + +function homedecor.flip_door(pos, node, player, name, side, isClosed) + if isClosed == nil then + isClosed = getClosed(pos) + end + -- this is where we swap the isClosed status! + -- i.e. if isClosed, we're adding an open door + -- and if not isClosed, a closed door + isClosed = not isClosed + + local rside = nil + local nfdir = nil + local ofdir = node.param2 or 0 + if side == "left" then + rside = "right" + nfdir=ofdir - 1 + if nfdir < 0 then nfdir = 3 end + else + rside = "left" + nfdir=ofdir + 1 + if nfdir > 3 then nfdir = 0 end + end + local sound; + if isClosed then + sound = 'close' + else + sound = 'open' + end + minetest.sound_play("homedecor_door_"..sound, { + pos=pos, + max_hear_distance = 5, + gain = 2, + }) + -- XXX: does the top half have to remember open/closed too? + minetest.add_node({x=pos.x, y=pos.y+1, z=pos.z}, { name = "homedecor:door_"..name.."_top_"..rside, param2=nfdir}) + + addDoorNode(pos,{ name = "homedecor:door_"..name.."_bottom_"..rside, param2=nfdir },isClosed) +end + +function homedecor.flip_gate(pos, node, player, gate, oc) + local isClosed = getClosed(pos); + minetest.sound_play("homedecor_gate_open_close", { + pos=pos, + max_hear_distance = 5, + gain = 2, + }) + + local fdir = node.param2 or 0 + + -- since right facing gates use "open" nodes for closed, we need an + -- isClosed flag to tell if it's "really" closed. + + local gateresult = nil + if oc == "closed" then + gateresult = "homedecor:gate_"..gate.."_open" + else + gateresult = "homedecor:gate_"..gate.."_closed" + end + + local def = {name=gateresult, param2=fdir} + + addDoorNode(pos, def, isClosed) + + -- the following opens and closes gates below and above in sync with this one + -- (without three gate open/close sounds) + + local above = {x=pos.x, y=pos.y+1, z=pos.z} + local below = {x=pos.x, y=pos.y-1, z=pos.z} + local nodeabove = minetest.get_node(above) + local nodebelow = minetest.get_node(below) + + if string.find(nodeabove.name, "homedecor:gate_"..gate) then + addDoorNode(above, def, isClosed) + end + + if string.find(nodebelow.name, "homedecor:gate_"..gate) then + addDoorNode(below, def, isClosed) + end +end + +-- "paper" door/wall + +minetest.register_node("homedecor:japanese_wall_top", { + tiles = { + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_top.png", + "homedecor_japanese_wall_top.png" + }, + description = "Japanese wall (top)", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + use_texture_alpha = true, + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0, 0.5, 0.5, 0.0625}, -- NodeBox1 + } + } +}) + +minetest.register_node("homedecor:japanese_wall_middle", { + tiles = { + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_middle.png", + "homedecor_japanese_wall_middle.png" + }, + description = "Japanese wall", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + use_texture_alpha = true, + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0, 0.5, 0.5, 0.0625}, -- NodeBox1 + } + } +}) + +minetest.register_node("homedecor:japanese_wall_bottom", { + tiles = { + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_bottom.png", + "homedecor_japanese_wall_bottom.png" + }, + description = "Japanese wall (bottom)", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + use_texture_alpha = true, + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0, 0.5, 0.5, 0.0625}, -- NodeBox1 + } + } +}) + +minetest.register_node("homedecor:tatami_mat", { + tiles = { + "homedecor_tatami.png", + "homedecor_tatami.png", + "homedecor_tatami.png", + "homedecor_tatami.png", + "homedecor_tatami.png", + "homedecor_tatami.png" + }, + description = "Japanese tatami", + drawtype = "nodebox", + paramtype = "light", + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, + } + } +}) + +minetest.register_node("homedecor:jpn_door_bottom", { + description = "Japanese-style door", + inventory_image = "homedecor_jpn_door_inv.png", + tiles = { + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_door_bottom.png" + }, + drawtype = "nodebox", + use_texture_alpha = true, + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy = 3 }, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0, 0.5, 0.5, 0.0625}, -- NodeBox1 + } + }, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0, 0.5, 1.5, 0.0625}, + }, + on_place = function(itemstack, placer, pointed_thing) + + local pointed = pointed_thing.under + local pnode = minetest.get_node(pointed) + local pname = pnode.name + local rnodedef = minetest.registered_nodes[pname] + + if rnodedef.on_rightclick then + rnodedef.on_rightclick(pointed, pnode, placer) + return + end + + return homedecor.stack_vertically(itemstack, placer, pointed_thing, + "homedecor:jpn_door_bottom", "homedecor:jpn_door_top") + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local pos2 = { x = pos.x, y=pos.y + 1, z = pos.z } + if minetest.get_node(pos2).name == "homedecor:jpn_door_top" then + minetest.remove_node(pos2) + end + end, + on_rightclick = function(pos, node, clicker) + fdir = minetest.get_node(pos).param2 + minetest.set_node(pos, {name = "homedecor:jpn_door_bottom_open", param2 = fdir}) + minetest.set_node({x = pos.x, y=pos.y + 1, z = pos.z}, {name = "homedecor:jpn_door_top_open", param2 = fdir}) + end +}) + +minetest.register_node("homedecor:jpn_door_top", { + tiles = { + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_door_top.png" + }, + drawtype = "nodebox", + use_texture_alpha = true, + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy = 3, not_in_creative_inventory = 1 }, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0, 0.5, 0.5, 0.0625}, -- NodeBox1 + } + }, + selection_box = { + type = "fixed", + fixed = { 0, 0, 0, 0, 0, 0 }, + }, +}) + +minetest.register_node("homedecor:jpn_door_bottom_open", { + tiles = { + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_door_bottom.png" + }, + drawtype = "nodebox", + use_texture_alpha = true, + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy = 3, not_in_creative_inventory = 1 }, + node_box = { + type = "fixed", + fixed = { + {-1.5, -0.5, -0.0625, -0.5, 0.5, 0}, -- NodeBox1 + } + }, + selection_box = { + type = "fixed", + fixed = {-1.5, -0.5, -0.0625, 0.5, 1.5, 0}, + }, + on_rightclick = function(pos, node, clicker) + fdir = minetest.get_node(pos).param2 + minetest.set_node(pos, {name = "homedecor:jpn_door_bottom", param2 = fdir}) + minetest.set_node({x = pos.x, y=pos.y + 1, z = pos.z}, {name = "homedecor:jpn_door_top", param2 = fdir}) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local pos2 = { x = pos.x, y=pos.y + 1, z = pos.z } + if minetest.get_node(pos2).name == "homedecor:jpn_door_top_open" then + minetest.remove_node(pos2) + end + end, + drop = "homedecor:jpn_door_bottom", +}) + +minetest.register_node("homedecor:jpn_door_top_open", { + tiles = { + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_wall_edges.png", + "homedecor_japanese_door_top.png" + }, + drawtype = "nodebox", + use_texture_alpha = true, + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy = 3, not_in_creative_inventory = 1 }, + node_box = { + type = "fixed", + fixed = { + {-1.5, -0.5, -0.0625, -0.5, 0.5, 0}, -- NodeBox1 + } + }, + selection_box = { + type = "fixed", + fixed = { 0, 0, 0, 0, 0, 0 }, + }, +}) + + diff --git a/mods/homedecor_modpack/homedecor/electronics.lua b/mods/homedecor_modpack/homedecor/electronics.lua new file mode 100644 index 00000000..6be8538a --- /dev/null +++ b/mods/homedecor_modpack/homedecor/electronics.lua @@ -0,0 +1,173 @@ +-- Various home electronics + +local S = homedecor.gettext + +minetest.register_node('homedecor:speaker', { + description = S("Large Stereo Speaker"), + tiles = { 'homedecor_speaker_top.png', + 'homedecor_speaker_bottom.png', + 'homedecor_speaker_right.png', + 'homedecor_speaker_left.png', + 'homedecor_speaker_back.png', + 'homedecor_speaker_front.png'}, + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = { snappy = 3 }, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node('homedecor:speaker_small', { + description = S("Small Surround Speaker"), + drawtype = "nodebox", + tiles = { + 'homedecor_speaker_top.png', + 'homedecor_speaker_bottom.png', + 'homedecor_speaker_right.png', + 'homedecor_speaker_left.png', + 'homedecor_speaker_back.png', + 'homedecor_speaker_front.png' + }, + selection_box = { + type = "fixed", + fixed = { -0.2, -0.5, 0, 0.2, 0, 0.4 } + }, + node_box = { + type = "fixed", + fixed = { -0.2, -0.5, 0, 0.2, 0, 0.4 } + }, + + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = { snappy = 3 }, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node('homedecor:stereo', { + description = S("Stereo Receiver"), + tiles = { 'homedecor_stereo_top.png', + 'homedecor_stereo_bottom.png', + 'homedecor_stereo_right.png', + 'homedecor_stereo_left.png', + 'homedecor_stereo_back.png', + 'homedecor_stereo_front.png'}, + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = { snappy = 3 }, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node('homedecor:projection_screen', { + description = S("Projection Screen Material"), + drawtype = 'signlike', + tiles = { 'homedecor_projection_screen.png' }, + wield_image = 'homedecor_projection_screen_inv.png', + inventory_image = 'homedecor_projection_screen_inv.png', + sunlight_propagates = false, + paramtype = 'light', + walkable = false, + groups = { snappy = 3 }, + sounds = default.node_sound_leaves_defaults(), + paramtype2 = 'wallmounted', + selection_box = { + type = "wallmounted", + --wall_side = = + }, +}) + +minetest.register_node('homedecor:television', { + description = S("Small CRT Television"), + tiles = { 'homedecor_television_top.png', + 'homedecor_television_bottom.png', + 'homedecor_television_right.png', + 'homedecor_television_left.png', + 'homedecor_television_back.png', + { name="homedecor_television_front_animated.png", + animation={ + type="vertical_frames", + aspect_w=16, + aspect_h=16, + length=80.0 + } + } + }, + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + light_source = LIGHT_MAX - 1, + groups = { snappy = 3 }, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("homedecor:dvd_vcr", { + description = S("DVD and VCR"), + drawtype = "nodebox", + tiles = { + "homedecor_dvdvcr_top.png", + "homedecor_dvdvcr_bottom.png", + "homedecor_dvdvcr_sides.png", + "homedecor_dvdvcr_sides.png^[transformFX", + "homedecor_dvdvcr_back.png", + "homedecor_dvdvcr_front.png", + }, + inventory_image = "homedecor_dvdvcr_inv.png", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.3125, -0.5, -0.25, 0.3125, -0.375, 0.1875}, + {-0.25, -0.5, -0.25, 0.25, -0.1875, 0.125}, + } + }, + groups = { snappy = 3 }, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("homedecor:telephone", { + tiles = { + "homedecor_telephone_top.png", + "homedecor_telephone_bottom.png", + "homedecor_telephone_sides.png", + "homedecor_telephone_sides.png", + "homedecor_telephone_sides.png", + "homedecor_telephone_sides.png" + }, + inventory_image = "homedecor_telephone_inv.png", + description = "Telephone", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {-0.1875, -0.5, -0.1875, 0.1875, -0.4375, 0.15}, -- NodeBox1 + {-0.125, -0.5, -0.130, 0.125, -0.3675, 0.15}, -- NodeBox2 + {-0.175, -0.4375, -0.175, 0.175, -0.42, 0.15}, -- NodeBox3 + {-0.16, -0.42, -0.16, 0.16, -0.4025, 0.15}, -- NodeBox4 + {-0.145, -0.4025, -0.145, 0.145, -0.385, 0.15}, -- NodeBox5 + {-0.11, -0.385, -0.115, 0.11, -0.35, 0.15}, -- NodeBox6 + {-0.095, -0.5, -0.1, 0.095, -0.3325, 0.15}, -- NodeBox7 + {-0.075, -0.345, 0.15, 0.075, -0.32, -0.075}, -- NodeBox8 + {0.04, -0.375, 0.0125, 0.0625, -0.23, 0.11}, -- NodeBox9 + {-0.0625, -0.375, 0.0125, -0.04, -0.23, 0.11}, -- NodeBox10 + {-0.2075, -0.25, 0.0375, 0.2075, -0.21, 0.0875}, -- NodeBox11 + {0.125, -0.3, 0, 0.25, -0.25, 0.125}, -- NodeBox12 + {-0.25, -0.3, 0, -0.125, -0.25, 0.125}, -- NodeBox13 + {0.125, -0.275, 0.017, 0.23, -0.225, 0.11}, -- NodeBox14 + {-0.23, -0.275, 0.017, -0.125, -0.225, 0.11}, -- NodeBox15 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.25, -0.5, -0.1875, 0.25, -0.21, 0.15 } + } +}) + diff --git a/mods/homedecor_modpack/homedecor/fences.lua b/mods/homedecor_modpack/homedecor/fences.lua new file mode 100644 index 00000000..bf956982 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/fences.lua @@ -0,0 +1,498 @@ +-- This file adds fences of various types + +local S = homedecor.gettext + +minetest.register_node("homedecor:fence_brass", { + description = S("Brass Fence/railing"), + drawtype = "fencelike", + tiles = {"homedecor_tile_brass.png"}, + inventory_image = "homedecor_fence_brass.png", + wield_image = "homedecor_pole_brass.png", + paramtype = "light", + selection_box = { + type = "fixed", + fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, + }, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + walkable = true, +}) + +minetest.register_node("homedecor:fence_wrought_iron", { + description = S("Wrought Iron Fence/railing"), + drawtype = "fencelike", + tiles = {"homedecor_tile_wrought_iron.png"}, + inventory_image = "homedecor_fence_wrought_iron.png", + wield_image = "homedecor_pole_wrought_iron.png", + paramtype = "light", + selection_box = { + type = "fixed", + fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, + }, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + walkable = true, +}) + +-- brass/wrought iron with signs: + +minetest.register_node("homedecor:fence_brass_with_sign", { + description = S("Brass Fence/railing with sign"), + drawtype = "nodebox", + tiles = { + "homedecor_sign_brass_post_top.png", + "homedecor_sign_brass_post_bottom.png", + "homedecor_sign_brass_post_side.png", + "homedecor_sign_brass_post_side.png", + "homedecor_sign_brass_post_back.png", + "homedecor_sign_brass_post_front.png", + }, + wield_image = "homedecor_sign_brass_post.png", + paramtype = "light", + paramtype2 = "facedir", + node_box = signs_lib.sign_post_model.nodebox, + groups = {snappy=3,not_in_creative_inventory=1}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + sunlight_propagates = true, + drop = { + max_items = 2, + items = { + { items = { "default:sign_wall" }}, + { items = { "homedecor:fence_brass" }}, + }, + }, +}) + +minetest.register_node("homedecor:fence_wrought_iron_with_sign", { + description = S("Wrought Iron Fence/railing with sign"), + drawtype = "nodebox", + tiles = { + "homedecor_sign_wrought_iron_post_top.png", + "homedecor_sign_wrought_iron_post_bottom.png", + "homedecor_sign_wrought_iron_post_side.png", + "homedecor_sign_wrought_iron_post_side.png", + "homedecor_sign_wrought_iron_post_back.png", + "homedecor_sign_wrought_iron_post_front.png", + }, + wield_image = "homedecor_sign_wrought_iron_post.png", + paramtype = "light", + paramtype2 = "facedir", + node_box = signs_lib.sign_post_model.nodebox, + groups = {snappy=3,not_in_creative_inventory=1}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + sunlight_propagates = true, + drop = { + max_items = 2, + items = { + { items = { "default:sign_wall" }}, + { items = { "homedecor:fence_wrought_iron" }}, + }, + }, +}) + +-- other types of fences + +minetest.register_node("homedecor:fence_picket", { + drawtype = "nodebox", + description = S("Unpainted Picket Fence"), + tiles = { + "homedecor_blanktile.png", + "homedecor_blanktile.png", + "homedecor_fence_picket.png", + "homedecor_fence_picket.png", + "homedecor_fence_picket_backside.png", + "homedecor_fence_picket.png" + }, + paramtype = "light", + is_ground_content = true, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, 0.4, 0.5, 0.5, 0.5 } + }, + node_box = { + type = "fixed", + fixed = { -0.5, -0.5, 0.498, 0.5, 0.5, 0.498 } + }, +}) + +minetest.register_node("homedecor:fence_picket_corner", { + drawtype = "nodebox", + description = S("Unpainted Picket Fence Corner"), + tiles = { + "homedecor_blanktile.png", + "homedecor_blanktile.png", + "homedecor_fence_picket.png", + "homedecor_fence_picket_backside.png", + "homedecor_fence_picket_backside.png", + "homedecor_fence_picket.png", + }, + paramtype = "light", + is_ground_content = true, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = { + { -0.5, -0.5, 0.4, 0.5, 0.5, 0.5 }, + { -0.5, -0.5, -0.5, -0.4, 0.5, 0.4 } + } + }, + node_box = { + type = "fixed", + fixed = { + { -0.5, -0.5, 0.498, 0.5, 0.5, 0.5 }, + { -0.5, -0.5, -0.5, -0.498, 0.5, 0.5 } + } + }, +}) + +minetest.register_node("homedecor:fence_picket_white", { + drawtype = "nodebox", + description = S("White Picket Fence"), + tiles = { + "homedecor_blanktile.png", + "homedecor_blanktile.png", + "homedecor_fence_picket_white.png", + "homedecor_fence_picket_white.png", + "homedecor_fence_picket_white_backside.png", + "homedecor_fence_picket_white.png" + }, + paramtype = "light", + is_ground_content = true, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, 0.4, 0.5, 0.5, 0.5 } + }, + node_box = { + type = "fixed", + fixed = { -0.5, -0.5, 0.498, 0.5, 0.5, 0.498 } + }, +}) + +minetest.register_node("homedecor:fence_picket_corner_white", { + drawtype = "nodebox", + description = S("White Picket Fence Corner"), + tiles = { + "homedecor_blanktile.png", + "homedecor_blanktile.png", + "homedecor_fence_picket_white.png", + "homedecor_fence_picket_white_backside.png", + "homedecor_fence_picket_white_backside.png", + "homedecor_fence_picket_white.png", + }, + paramtype = "light", + is_ground_content = true, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = { + { -0.5, -0.5, 0.4, 0.5, 0.5, 0.5 }, + { -0.5, -0.5, -0.5, -0.4, 0.5, 0.4 } + } + }, + node_box = { + type = "fixed", + fixed = { + { -0.5, -0.5, 0.498, 0.5, 0.5, 0.5 }, + { -0.5, -0.5, -0.5, -0.498, 0.5, 0.5 } + } + }, +}) + +minetest.register_node("homedecor:fence_privacy", { + drawtype = "nodebox", + description = S("Wooden Privacy Fence"), + tiles = { + "homedecor_fence_privacy_tb.png", + "homedecor_fence_privacy_tb.png", + "homedecor_fence_privacy_sides.png", + "homedecor_fence_privacy_sides.png", + "homedecor_fence_privacy_backside.png", + "homedecor_fence_privacy_front.png" + }, + paramtype = "light", + is_ground_content = true, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, 5/16, 0.5, 0.5, 8/16 } + }, + node_box = { + type = "fixed", + fixed = { + { -8/16, -8/16, 5/16, -5/16, 8/16, 7/16 }, -- left part + { -4/16, -8/16, 5/16, 3/16, 8/16, 7/16 }, -- middle part + { 4/16, -8/16, 5/16, 8/16, 8/16, 7/16 }, -- right part + { -8/16, -2/16, 7/16, 8/16, 2/16, 8/16 }, -- connecting rung + } + }, +}) + +minetest.register_node("homedecor:fence_privacy_corner", { + drawtype = "nodebox", + description = S("Wooden Privacy Fence Corner"), + tiles = { + "homedecor_fence_privacy_corner_top.png", + "homedecor_fence_privacy_corner_bottom.png", + "homedecor_fence_privacy_corner_right.png", + "homedecor_fence_privacy_backside2.png", + "homedecor_fence_privacy_backside.png", + "homedecor_fence_privacy_corner_front.png" + }, + paramtype = "light", + is_ground_content = true, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = { + { -0.5, -0.5, 5/16, 0.5, 0.5, 0.5 }, + { -0.5, -0.5, -0.5, -5/16, 0.5, 5/16 }, + } + }, + node_box = { + type = "fixed", + fixed = { + { -7/16, -8/16, 5/16, -5/16, 8/16, 7/16 }, -- left part + { -4/16, -8/16, 5/16, 3/16, 8/16, 7/16 }, -- middle part + { 4/16, -8/16, 5/16, 8/16, 8/16, 7/16 }, -- right part + { -8/16, -2/16, 7/16, 8/16, 2/16, 8/16 }, -- back-side connecting rung + + { -7/16, -8/16, 4/16, -5/16, 8/16, 7/16 }, -- back-most part + { -7/16, -8/16, -4/16, -5/16, 8/16, 3/16 }, -- middle part + { -7/16, -8/16, -8/16, -5/16, 8/16, -5/16 }, -- front-most part + { -8/16, -2/16, -8/16, -7/16, 2/16, 7/16 }, -- left-side connecting rung + } + }, +}) + +minetest.register_node("homedecor:fence_barbed_wire", { + drawtype = "nodebox", + description = S("Barbed Wire Fence"), + tiles = {"homedecor_fence_barbed_wire.png"}, + paramtype = "light", + is_ground_content = true, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, 0.375, 0.5, 0.5, 0.5 } + }, + node_box = { + type = "fixed", + fixed = { + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, -- left post + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, -- right post + { -6/16, -8/16, 7/16, 6/16, 8/16, 7/16 } -- the wire + } + }, +}) + +minetest.register_node("homedecor:fence_barbed_wire_corner", { + drawtype = "nodebox", + description = S("Barbed Wire Fence Corner"), + tiles = { + "homedecor_fence_barbed_wire.png" + }, + paramtype = "light", + is_ground_content = true, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = { + { -0.5, -0.5, 0.375, 0.5, 0.5, 0.5 }, + { -0.5, -0.5, -0.5, -0.375, 0.5, 0.375 } + } + }, + node_box = { + type = "fixed", + fixed = { + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, -- left post + { 6/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, -- right post + { -6/16, -8/16, 7/16, 6/16, 8/16, 7/16 }, -- the wire + + { -8/16, -8/16, -8/16, -6/16, 8/16, -6/16 }, -- front post + { -7/16, -8/16, -6/16, -7/16, 8/16, 6/16 } -- more wire + } + }, +}) + +minetest.register_node("homedecor:fence_chainlink", { + drawtype = "nodebox", + description = S("Chainlink Fence"), + tiles = { + "homedecor_fence_chainlink_tb.png", + "homedecor_fence_chainlink_tb.png", + "homedecor_fence_chainlink_sides.png", + "homedecor_fence_chainlink_sides.png", + "homedecor_fence_chainlink_fb.png", + "homedecor_fence_chainlink_fb.png", + }, + paramtype = "light", + is_ground_content = true, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, 0.375, 0.5, 0.5, 0.5 } + }, + node_box = { + type = "fixed", + fixed = { + { -8/16, -8/16, 6/16, -7/16, 8/16, 8/16 }, -- left post + { 7/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, -- right post + { -8/16, 7/16, 13/32, 8/16, 8/16, 15/32 }, -- top piece + { -8/16, -8/16, 13/32, 8/16, -7/16, 15/32 }, -- bottom piece + { -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 } -- the chainlink itself + } + }, +}) + +minetest.register_node("homedecor:fence_chainlink_corner", { + drawtype = "nodebox", + description = S("Chainlink Fence Corner"), + tiles = { + "homedecor_fence_chainlink_corner_top.png", + "homedecor_fence_chainlink_corner_bottom.png", + "homedecor_fence_chainlink_corner_left.png", + "homedecor_fence_chainlink_corner_right.png", + "homedecor_fence_chainlink_corner_front.png", + "homedecor_fence_chainlink_corner_back.png", + }, + paramtype = "light", + is_ground_content = true, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = { + { -0.5, -0.5, 0.375, 0.5, 0.5, 0.5 }, + { -0.5, -0.5, -0.5, -0.375, 0.5, 0.375 } + } + }, + node_box = { + type = "fixed", + fixed = { + { -8/16, -8/16, 6/16, -6/16, 8/16, 8/16 }, -- left post, rear + { -8/16, -8/16, -8/16, -6/16, 8/16, -7/16 }, -- left post, front + { 7/16, -8/16, 6/16, 8/16, 8/16, 8/16 }, -- right post, rear + { -8/16, 7/16, 13/32, 8/16, 8/16, 15/32 }, -- top piece, rear + { -8/16, -8/16, 13/32, 8/16, -7/16, 15/32 }, -- bottom piece, rear + { -15/32, 7/16, -8/16, -13/32, 8/16, 8/16 }, -- top piece, side + { -15/32, -8/16, -8/16, -13/32, -7/16, 8/16 }, -- bottom piece, side + { -8/16, -8/16, 7/16, 8/16, 8/16, 7/16 }, -- the chainlink itself, rear + { -7/16, -8/16, -8/16, -7/16, 8/16, 8/16 } -- the chainlink itself, side + } + }, +}) + +minetest.register_node("homedecor:fence_wrought_iron_2", { + drawtype = "nodebox", + description = S("Wrought Iron fence (type 2)"), + tiles = { + "homedecor_fence_wrought_iron_2_tb.png", + "homedecor_fence_wrought_iron_2_tb.png", + "homedecor_fence_wrought_iron_2_sides.png", + "homedecor_fence_wrought_iron_2_sides.png", + "homedecor_fence_wrought_iron_2_fb.png", + "homedecor_fence_wrought_iron_2_fb.png" + }, + paramtype = "light", + is_ground_content = true, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, 0.42, 0.5, 0.5, 0.5 } + }, + node_box = { + type = "fixed", + fixed = { + { -8/16, -8/16, 14/32, -7.75/16, 8/16, 16/32 }, -- left post + { 7.75/16, -8/16, 14/32, 8/16, 8/16, 16/32 }, -- right post + { -8/16, 7.75/16, 14/32, 8/16, 8/16, 16/32 }, -- top piece + { -8/16, -0.015625, 14.75/32, 8/16, 0.015625, 15.25/32 }, -- cross piece + { -0.015625, -8/16, 14.75/32, 0.015625, 8/16, 15.25/32 }, -- cross piece + { -8/16, -8/16, 14/32, 8/16, -7.75/16, 16/32 }, -- bottom piece + { -8/16, -8/16, 15/32, 8/16, 8/16, 15/32 } -- the grid itself + } + }, +}) + +minetest.register_node("homedecor:fence_wrought_iron_2_corner", { + drawtype = "nodebox", + description = S("Wrought Iron fence (type 2) Corner"), + tiles = { + "homedecor_fence_corner_wrought_iron_2_tb.png", + "homedecor_fence_corner_wrought_iron_2_tb.png", + "homedecor_fence_corner_wrought_iron_2_lr.png", + "homedecor_fence_corner_wrought_iron_2_lr.png^[transformFX", + "homedecor_fence_corner_wrought_iron_2_fb.png^[transformFX", + "homedecor_fence_corner_wrought_iron_2_fb.png" + }, + paramtype = "light", + is_ground_content = true, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = { + { -0.5, -0.5, 0.42, 0.5, 0.5, 0.5 }, + { -0.5, -0.5, -0.5, -0.42, 0.5, 0.5 } + } + }, + node_box = { + type = "fixed", + fixed = { + { -0.5, -0.5, 0.453125, -0.453125, 0.5, 0.5 }, -- corner edge + { -7.5/16, 7.75/16, 14/32, 8/16, 8/16, 16/32 }, -- top piece + { -7.5/16, -8/16, 14/32, 8/16, -7.75/16, 16/32 }, -- bottom piece + { -16/32, 7.75/16, -8/16, -14/32, 8/16, 8/16 }, -- top piece, side + { -16/32, -8/16, -8/16, -14/32, -7.75/16, 8/16 }, -- bottom piece, side + { -7.5/16, -8/16, 7.5/16, 8/16, 8/16, 7.5/16 }, -- the grid itself + { -7.5/16, -8/16, -8/16, -7.5/16, 8/16, 7.5/16 }, -- the grid itself, side + { -15.5/32, -0.5, -0.5, -14.5/32, 0.5, -0.484375 }, -- left post side + { 7.75/16, -8/16, 14.5/32, 8/16, 8/16, 15.5/32 }, -- right post + { -8/16, -0.015625, 14.75/32, 8/16, 0.015625, 15.25/32 }, -- cross piece + { -0.015625, -8/16, 14.75/32, 0.015625, 8/16, 15.25/32 }, -- cross piece + { -15.25/32, -0.5, -0.015625, -14.75/32, 0.5, 0.015625 }, -- cross piece side + { -15.25/32, -0.015625, -0.5, -14.75/32, 0.015625, 0.5 } -- cross piece side + } + }, +}) + +signs_lib.register_fence_with_sign("homedecor:fence_brass", "homedecor:fence_brass_with_sign") +signs_lib.register_fence_with_sign("homedecor:fence_wrought_iron", "homedecor:fence_wrought_iron_with_sign") diff --git a/mods/homedecor_modpack/homedecor/furnaces.lua b/mods/homedecor_modpack/homedecor/furnaces.lua new file mode 100644 index 00000000..f3fef1c8 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/furnaces.lua @@ -0,0 +1,389 @@ +-- This code supplies an oven/stove. Basically it's just a copy of the default furnace with different textures. + +local S = homedecor.gettext + +local function hacky_swap_node(pos,name) + local node = minetest.get_node(pos) + if node.name == name then + return + end + local meta = minetest.get_meta(pos) + local meta0 = meta:to_table() + node.name = name + local meta0 = meta:to_table() + minetest.set_node(pos,node) + meta = minetest.get_meta(pos) + meta:from_table(meta0) +end + +local function make_formspec(furnacedef, percent) + + local fire + + if percent and (percent > 0) then + fire = ("%s^[lowpart:%d:%s"):format( + furnacedef.fire_bg, + (100-percent), + furnacedef.fire_fg + ) + else + fire = "default_furnace_fire_bg.png" + end + + local w = furnacedef.output_width + local h = math.ceil(furnacedef.output_slots / furnacedef.output_width) + + return "size["..math.max(8, 6 + w)..",9]".. + "image[2,2;1,1;"..fire.."]".. + "list[current_name;fuel;2,3;1,1;]".. + "list[current_name;src;2,1;1,1;]".. + "list[current_name;dst;5,1;"..w..","..h..";]".. + "list[current_player;main;0,5;8,4;]" +end + +--[[ +furnacedef = { + description = "Oven", + tiles = { ... }, + tiles_active = { ... }, + ^ +Y -Y +X -X +Z -Z + tile_format = "oven_%s%s.png", + ^ First '%s' replaced by one of "top", "bottom", "side", "front". + ^ Second '%s' replaced by "" for inactive, and "_active" for active "front" + ^ "side" is used for left, right and back. + ^ tiles_active for front is set + output_slots = 4, + output_width = 2, + cook_speed = 1, + ^ Higher values cook stuff faster. + extra_nodedef_fields = { ... }, + ^ Stuff here is copied verbatim into both active and inactive nodedefs + ^ Useful for overriding drawtype, etc. +} +]] + +local function make_tiles(tiles, fmt, active) + if not fmt then return tiles end + tiles = { } + for i,side in ipairs{"top", "bottom", "side", "side", "side", "front"} do + if active and (i == 6) then + tiles[i] = fmt:format(side, "_active") + else + tiles[i] = fmt:format(side, "") + end + end + return tiles +end + +function homedecor.register_furnace(name, furnacedef) + + local furnacedef = furnacedef + + local tiles = make_tiles(furnacedef.tiles, furnacedef.tile_format, false) + local tiles_active = make_tiles(furnacedef.tiles_active, furnacedef.tile_format, true) + + furnacedef.fire_fg = furnacedef.fire_bg or "default_furnace_fire_fg.png" + furnacedef.fire_bg = furnacedef.fire_bg or "default_furnace_fire_bg.png" + + furnacedef.output_slots = furnacedef.output_slots or 4 + furnacedef.output_width = furnacedef.output_width or 2 + + furnacedef.cook_speed = furnacedef.cook_speed or 1 + + local name_active = name.."_active" + + local desc = furnacedef.description or "Furnace" + + local def = { + description = furnacedef.description, + tiles = tiles, + paramtype2 = furnacedef.paramtype2 or "facedir", + groups = furnacedef.groups or {cracky=2}, + legacy_facedir_simple = true, + sounds = furnacedef.sounds or default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", make_formspec(furnacedef, 0)) + meta:set_string("infotext", desc) + local inv = meta:get_inventory() + inv:set_size("fuel", 1) + inv:set_size("src", 1) + inv:set_size("dst", furnacedef.output_slots) + 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) + 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", S("%s is empty"):format(desc)) + 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) + 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", S("%s is empty"):format(desc)) + end + return count + else + return 0 + end + elseif to_list == "src" then + return count + elseif to_list == "dst" then + return 0 + end + end, + } + + local def_active = { + description = furnacedef.description.." (active)", + tiles = tiles_active, + paramtype = furnacedef.paramtype, + paramtype2 = furnacedef.paramtype2 or "facedir", + light_source = 8, + drop = name, + groups = furnacedef.groups or {cracky=2, not_in_creative_inventory=1}, + legacy_facedir_simple = true, + sounds = furnacedef.sounds or default.node_sound_stone_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", make_formspec(furnacedef, 0)) + meta:set_string("infotext", desc) + local inv = meta:get_inventory() + inv:set_size("fuel", 1) + inv:set_size("src", 1) + inv:set_size("dst", furnacedef.output_slots) + 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) + 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",S("%s is empty"):format(desc)) + 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) + 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",S("%s is empty"):format(desc)) + end + return count + else + return 0 + end + elseif to_list == "src" then + return count + elseif to_list == "dst" then + return 0 + end + end, + } + + if furnacedef.extra_nodedef_fields then + for k, v in pairs(furnacedef.extra_nodedef_fields) do + def[k] = v + def_active[k] = v + end + end + + minetest.register_node(name, def) + minetest.register_node(name_active, def_active) + + minetest.register_abm({ + nodenames = {name, name_active, name.."_locked", name_active.."_locked"}, + 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") + furnacedef.cook_speed) + 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(S("Could not insert '%s'"):format(cooked.item:to_string())) + end + meta:set_string("src_time", 0) + end + end + + -- XXX: Quick patch, make it better in the future. + local locked = node.name:find("_locked$") and "_locked" or "" + local desc = minetest.registered_nodes[name..locked].description + + 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",S("%s active: %d%%"):format(desc,percent)) + hacky_swap_node(pos,name_active..locked) + meta:set_string("formspec", make_formspec(furnacedef, 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",desc..S(": Out of fuel")) + hacky_swap_node(pos,name..locked) + meta:set_string("formspec", make_formspec(furnacedef, 0)) + return + end + + if cooked.item:is_empty() then + if was_active then + meta:set_string("infotext",S("%s is empty"):format(desc)) + hacky_swap_node(pos,name..locked) + meta:set_string("formspec", make_formspec(furnacedef, 0)) + end + return + end + + if not inv:room_for_item("dst", cooked.item) then + meta:set_string("infotext", desc..S(": output bins are full")) + hacky_swap_node(pos, name..locked) + meta:set_string("formspec", make_formspec(furnacedef, 0)) + return + end + + meta:set_string("fuel_totaltime", fuel.time) + meta:set_string("fuel_time", 0) + + inv:set_stack("fuel", 1, afterfuel.items[1]) + end, + }) + +end + +homedecor.register_furnace("homedecor:oven", { + description = S("Oven"), + tile_format = "homedecor_oven_%s%s.png", + output_slots = 4, + output_width = 2, + cook_speed = 1.25, +}) + +homedecor.register_furnace("homedecor:oven_steel", { + description = S("Oven (stainless steel)"), + tile_format = "homedecor_oven_steel_%s%s.png", + output_slots = 4, + output_width = 2, + cook_speed = 1.25, +}) + +homedecor.register_furnace("homedecor:microwave_oven", { + description = S("Microwave Oven"), + tiles = { + "homedecor_microwave_top.png", "homedecor_microwave_bottom.png", + "homedecor_microwave_right.png", "homedecor_microwave_left.png", + "homedecor_microwave_back.png", "homedecor_microwave_front.png" + }, + tiles_active = { + "homedecor_microwave_top.png", "homedecor_microwave_bottom.png", + "homedecor_microwave_right.png", "homedecor_microwave_left.png", + "homedecor_microwave_back.png", "homedecor_microwave_front_active.png" + }, + output_slots = 2, + output_width = 2, + cook_speed = 1.5, + extra_nodedef_fields = { + drawtype = "nodebox", + paramtype = "light", + --paramtype2 = "facedir", -- Not needed, set by register_furnace + node_box = { + type = "fixed", + fixed = { { -0.5, -0.5, -0.125, 0.5, 0.125, 0.5 } }, + }, + }, +}) diff --git a/mods/homedecor_modpack/homedecor/furniture.lua b/mods/homedecor_modpack/homedecor/furniture.lua new file mode 100644 index 00000000..49133208 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/furniture.lua @@ -0,0 +1,830 @@ +local S = homedecor.gettext + +-- 3dforniture tables ... well, they used to be :P + +local table_colors = { "", "mahogany", "white" } + +for _, i in ipairs(table_colors) do + local color = "_"..i + local desc = S("Table ("..i..")") + + if i == "" then + color = "" + desc = S("Table") + end + + minetest.register_node("homedecor:table"..color, { + description = desc, + tiles = { "forniture_wood"..color..".png" }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + { -0.4, -0.5, -0.4, -0.3, 0.4, -0.3 }, + { 0.3, -0.5, -0.4, 0.4, 0.4, -0.3 }, + { -0.4, -0.5, 0.3, -0.3, 0.4, 0.4 }, + { 0.3, -0.5, 0.3, 0.4, 0.4, 0.4 }, + { -0.5, 0.4, -0.5, 0.5, 0.5, 0.5 }, + { -0.4, -0.2, -0.3, -0.3, -0.1, 0.3 }, + { 0.3, -0.2, -0.4, 0.4, -0.1, 0.3 }, + { -0.3, -0.2, -0.4, 0.4, -0.1, -0.3 }, + { -0.3, -0.2, 0.3, 0.3, -0.1, 0.4 }, + }, + }, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + }) +end + +local chaircolors = { + { "", "plain" }, + { "black", "Black" }, + { "red", "Red" }, + { "pink", "Pink" }, + { "violet", "Violet" }, + { "blue", "Blue" }, + { "dark_green", "Dark Green" }, +} + +for i in ipairs(chaircolors) do + + local color = "_"..chaircolors[i][1] + local color2 = chaircolors[i][1] + local name = S(chaircolors[i][2]) + + if chaircolors[i][1] == "" then + color = "" + end + + minetest.register_node("homedecor:chair"..color, { + description = S("Kitchen chair (%s)"):format(name), + tiles = { + "forniture_kitchen_chair_top"..color..".png", + "forniture_wood.png", + "forniture_kitchen_chair_sides"..color..".png", + "forniture_kitchen_chair_sides"..color..".png^[transformFX", + "forniture_kitchen_chair_back"..color..".png", + "forniture_kitchen_chair_front"..color..".png", + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.3125, -0.5, 0.1875, -0.1875, 0.5, 0.3125}, + {0.1875, -0.5, 0.1875, 0.3125, 0.5, 0.3125}, + {-0.3125, -0.5, -0.3125, -0.1875, 0, -0.1875}, + {0.1875, -0.5, -0.3125, 0.3125, 0, -0.1875}, + {-0.3125, -0.125, -0.3125, 0.3125, 0, 0.3125}, + {-0.25, 0.0625, 0.25, 0.25, 0.4375, 0.25}, + }, + }, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}, + }, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + }) + + if color ~= "" then + minetest.register_node("homedecor:armchair"..color, { + description = S("Armchair (%s)"):format(name), + tiles = { "forniture_armchair_top"..color..".png" }, + drawtype = "nodebox", + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + { -0.50, -0.50, -0.45, -0.30, 0.05, 0.30 }, + { -0.45, -0.50, -0.50, -0.35, 0.05, -0.45 }, + { -0.45, 0.05, -0.45, -0.35, 0.10, 0.15 }, + { 0.30, -0.50, -0.45, 0.50, 0.05, 0.30 }, + { 0.35, -0.50, -0.50, 0.45, 0.05, -0.45 }, + { 0.35, 0.05, -0.45, 0.45, 0.10, 0.15 }, + { -0.50, -0.50, 0.30, 0.50, 0.45, 0.50 }, + { -0.45, 0.45, 0.35, 0.45, 0.50, 0.45 }, + { -0.30, -0.45, -0.35, 0.30, -0.10, 0.30 }, + { -0.30, -0.45, -0.40, 0.30, -0.15, -0.35 }, + { -0.50, 0.05, 0.15, -0.30, 0.45, 0.30 }, + { -0.45, 0.10, 0.10, -0.35, 0.45, 0.15 }, + { -0.45, 0.45, 0.15, -0.35, 0.50, 0.35 }, + { 0.30, 0.05, 0.15, 0.50, 0.45, 0.30 }, + { 0.35, 0.10, 0.10, 0.45, 0.45, 0.15 }, + { 0.35, 0.45, 0.15, 0.45, 0.50, 0.35 }, + }, + }, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + }) + + minetest.register_craft({ + output = "homedecor:armchair"..color.." 2", + recipe = { + { "wool:"..color2,""}, + { "group:wood","group:wood" }, + { "wool:"..color2,"wool:"..color2 }, + }, + }) + end +end + +minetest.register_node(":homedecor:openframe_bookshelf", { + description = "Bookshelf (open-frame)", + drawtype = "nodebox", + is_ground_content = false, + groups = {choppy=3,oddly_breakable_by_hand=2,flammable=3}, + sounds = default.node_sound_wood_defaults(), + tiles = { + "3dbookshelf_openframe_top.png", + "3dbookshelf_openframe_bottom.png", + "3dbookshelf_openframe_right.png", + "3dbookshelf_openframe_left.png", + "3dbookshelf_openframe_back.png", + "3dbookshelf_openframe_front.png" + + }, + paramtype = "light", + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, 0, 0.5, 0.5, 0.5 } + }, + node_box = { + type = "fixed", + fixed = { + {-0.4375, -0.5, 0, -0.375, 0.5, 0.5}, + {0.375, -0.5, 0, 0.4375, 0.5, 0.5}, + {-0.5, -0.5, 0, 0.5, -0.4375, 0.5}, + {-0.5, 0, 0, 0.5, 0.0625, 0.5}, + {-0.375, 0.0625, 0.176, -0.25, 0.5, 0.5}, + {-0.25, 0.0625, 0.253, -0.1875, 0.4375, 0.5}, + {-0.1875, 0.0625, 0.227, -0.125, 0.5, 0.5}, + {-0.125, 0.0625, 0.176, 0, 0.4375, 0.5}, + {0, 0.0625, 0.232, 0.0625, 0.375, 0.5}, + {0.0625, 0.0625, 0.130, 0.1875, 0.5, 0.5}, + {0.1875, 0.0625, 0.217, 0.25, 0.4375, 0.5}, + {0.25, 0.0625, 0.166, 0.3125, 0.5, 0.5}, + {0.3125, 0.0625, 0.242, 0.375, 0.4375, 0.5}, + {-0.375, -0.4375, 0.191, -0.3125, -0.0625, 0.5}, + {-0.3125, -0.4375, 0.191, -0.1875, -0.125, 0.5}, + {-0.1875, -0.4375, 0.227, -0.125, -0.0625, 0.5}, + {-0.125, -0.4375, 0.0737, 0, -0.0625, 0.5}, + {0, -0.4375, 0.145, 0.0625, -0.125, 0.5}, + {0.0625, -0.4375, 0.212, 0.125, -0.1875, 0.5}, + {0.125, -0.4375, 0.207, 0.1875, -0.125, 0.5}, + {0.1875, -0.4375, 0.176, 0.25, -0.125, 0.5}, + {0.25, -0.4375, 0.258, 0.3125, -0.1875, 0.5}, + {0.3125, -0.4375, 0.130, 0.375, -0.0625, 0.5} + } + } +}) + +local bedcolors = { + "red", + "green", + "blue", + "violet", + "brown", + "darkgrey", + "orange", + "yellow", + "pink", +} + +local function bed_extension(pos, color) + + local topnode = minetest.get_node({x=pos.x, y=pos.y+1.0, z=pos.z}) + local thisnode = minetest.get_node(pos) + local bottomnode = minetest.get_node({x=pos.x, y=pos.y-1.0, z=pos.z}) + + local fdir = thisnode.param2 + + if string.find(topnode.name, "homedecor:bed_.*_foot$") then + if fdir == topnode.param2 then + local newnode = string.gsub(thisnode.name, "_foot", "_footext") + minetest.set_node(pos, { name = newnode, param2 = fdir}) + end + end + + if string.find(bottomnode.name, "homedecor:bed_.*_foot$") then + if fdir == bottomnode.param2 then + local newnode = string.gsub(bottomnode.name, "_foot", "_footext") + minetest.set_node({x=pos.x, y=pos.y-1.0, z=pos.z}, { name = newnode, param2 = fdir}) + end + end +end + +local function unextend_bed(pos, color) + local bottomnode = minetest.get_node({x=pos.x, y=pos.y-1.0, z=pos.z}) + local fdir = bottomnode.param2 + if string.find(bottomnode.name, "homedecor:bed_.*_footext$") then + local newnode = string.gsub(bottomnode.name, "_footext", "_foot") + minetest.set_node({x=pos.x, y=pos.y-1.0, z=pos.z}, { name = newnode, param2 = fdir}) + end +end + +for _, color in ipairs(bedcolors) do + + minetest.register_node("homedecor:bed_"..color.."_head", { + tiles = { + "homedecor_bed_"..color.."_top1.png", + "homedecor_bed_bottom1.png", + "homedecor_bed_"..color.."_side1.png", + "homedecor_bed_"..color.."_side1.png^[transformFX", + "homedecor_bed_head1.png", + "homedecor_bed_"..color.."_head2.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3, not_in_creative_inventory=1}, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0.4375, -0.375, 0.5, 0.5}, -- NodeBox1 + {0.375, -0.5, 0.4375, 0.5, 0.5, 0.5}, -- NodeBox2 + {-0.5, 0.25, 0.4375, 0.5, 0.4375, 0.5}, -- NodeBox3 + {-0.5, -0.0625, 0.4375, 0.5, 0.1875, 0.5}, -- NodeBox4 + {-0.5, -0.375, -0.5, 0.5, -0.125, 0.5}, -- NodeBox5 + {0.375, -0.375, -0.5, 0.4375, -0.125, 0.5}, -- NodeBox6 + {-0.4375, -0.3125, -0.5, 0.4375, -0.0625, 0.4375}, -- NodeBox7 + {-0.3125, -0.125, 0.0625, 0.3125, 0.0625, 0.4375}, -- NodeBox8 + } + }, + selection_box = { + type = "fixed", + fixed = { 0, 0, 0, 0, 0, 0 } + } + }) + + minetest.register_node("homedecor:bed_"..color.."_foot", { + tiles = { + "homedecor_bed_"..color.."_top2.png", + "homedecor_bed_bottom2.png", + "homedecor_bed_"..color.."_side2.png", + "homedecor_bed_"..color.."_side2.png^[transformFX", + "homedecor_bed_foot2.png", + "homedecor_bed_"..color.."_foot1.png" + }, + inventory_image = "homedecor_bed_"..color.."_inv.png", + description = S("Bed (%s)"):format(color), + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, -0.375, 0.1875, -0.4375}, -- NodeBox1 + {0.375, -0.5, -0.5, 0.5, 0.1875, -0.4375}, -- NodeBox2 + {-0.5, 0, -0.5, 0.5, 0.125, -0.4375}, -- NodeBox3 + {-0.5, -0.375, -0.5, 0.5, -0.125, -0.4375}, -- NodeBox4 + {-0.5, -0.375, -0.5, 0.5, -0.125, 0.5}, -- NodeBox5 + {0.375, -0.375, -0.5, 0.4375, -0.125, 0.5}, -- NodeBox6 + {-0.4375, -0.3125, -0.4375, 0.4375, -0.0625, 0.5}, -- NodeBox7 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 1.5 } + }, + on_construct = function(pos) + bed_extension(pos, color) + end, + + on_place = function(itemstack, placer, pointed_thing) + return homedecor.stack_sideways(itemstack, placer, pointed_thing, + "homedecor:bed_"..color.."_foot", "homedecor:bed_"..color.."_head", false) + end, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local fdir = oldnode.param2 + if not fdir or fdir > 3 then return end + local pos2 = { x = pos.x + homedecor.fdir_to_fwd[fdir+1][1], y=pos.y, z = pos.z + homedecor.fdir_to_fwd[fdir+1][2] } + if minetest.get_node(pos2).name == "homedecor:bed_"..color.."_head" then + minetest.remove_node(pos2) + end + unextend_bed(pos, color) + end + }) + + minetest.register_node("homedecor:bed_"..color.."_footext", { + tiles = { + "homedecor_bed_"..color.."_top2.png", + "homedecor_bed_bottom2.png", + "homedecor_bed_"..color.."_side2ext.png", + "homedecor_bed_"..color.."_side2ext.png^[transformFX", + "homedecor_bed_foot2ext.png", + "homedecor_bed_"..color.."_foot1ext.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3, not_in_creative_inventory=1}, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, -0.375, 0.5, -0.4375}, -- NodeBox1 + {0.375, -0.5, -0.5, 0.5, 0.5, -0.4375}, -- NodeBox2 + {-0.5, 0, -0.5, 0.5, 0.125, -0.4375}, -- NodeBox3 + {-0.5, -0.375, -0.5, 0.5, -0.125, -0.4375}, -- NodeBox4 + {-0.5, -0.375, -0.5, 0.5, -0.125, 0.5}, -- NodeBox5 + {0.375, -0.375, -0.5, 0.4375, -0.125, 0.5}, -- NodeBox6 + {-0.4375, -0.3125, -0.4375, 0.4375, -0.0625, 0.5}, -- NodeBox7 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 1.5 } + }, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local fdir = oldnode.param2 + if not fdir or fdir > 3 then return end + local pos2 = { x = pos.x + homedecor.fdir_to_fwd[fdir+1][1], y=pos.y, z = pos.z + homedecor.fdir_to_fwd[fdir+1][2] } + if minetest.get_node(pos2).name == "homedecor:bed_"..color.."_head" then + minetest.remove_node(pos2) + end + unextend_bed(pos, color) + end, + drop = "homedecor:bed_"..color.."_foot" + }) + +end + +minetest.register_node("homedecor:wardrobe_top", { + tiles = { + "homedecor_wardrobe_top.png", + "homedecor_wardrobe_bottom.png", + "homedecor_wardrobe_sides1.png", + "homedecor_wardrobe_sides1.png^[transformFX", + "homedecor_wardrobe_back1.png", + "homedecor_wardrobe_frontt.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3, not_in_creative_inventory=1}, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.4375, 0.5, 0.5, 0.5}, -- NodeBox1 + {0.0625, -0.4375, -0.5, 0.4375, 0.4375, -0.4375}, -- NodeBox2 + {-0.4375, -0.4375, -0.5, -0.0625, 0.4375, -0.4375}, -- NodeBox3 + } + }, + selection_box = { + type = "fixed", + fixed = { 0, 0, 0, 0, 0, 0 } + }, +}) + +minetest.register_node("homedecor:wardrobe_bottom", { + tiles = { + "homedecor_wardrobe_top.png", + "homedecor_wardrobe_bottom.png", + "homedecor_wardrobe_sides2.png", + "homedecor_wardrobe_sides2.png^[transformFX", + "homedecor_wardrobe_back2.png", + "homedecor_wardrobe_frontb.png" + }, + inventory_image = "homedecor_wardrobe_inv.png", + description = "Wardrobe", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.4375, 0.5, 0.5, 0.5}, -- NodeBox1 + {-0.4375, -0.375, -0.5, 0.4375, -0.125, -0.4375}, -- NodeBox2 + {-0.4375, -0.0625, -0.5, 0.4375, 0.1875, -0.4375}, -- NodeBox3 + {-0.4375, 0.25, -0.5, 0.4375, 0.5, -0.4375}, -- NodeBox4 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 1.5, 0.5 } + }, + on_place = function(itemstack, placer, pointed_thing) + return homedecor.stack_vertically(itemstack, placer, pointed_thing, + "homedecor:wardrobe_bottom", "homedecor:wardrobe_top") + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local pos2 = { x = pos.x, y=pos.y + 1, z = pos.z } + if minetest.get_node(pos2).name == "homedecor:wardrobe_top" then + minetest.remove_node(pos2) + end + end, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[8,8]".. + "list[current_name;main;0,0;8,3;]".. + "list[current_player;main;0,4;8,4;]") + meta:set_string("infotext", S("Wardrobe cabinet")) + local inv = meta:get_inventory() + inv:set_size("main", 24) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", S("%s moves stuff in wardrobe at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", S("%s moves stuff to wardrobe at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", S("%s takes stuff from wardrobe at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, +}) + +minetest.register_node("homedecor:simple_bench", { + tiles = { + "homedecor_generic_wood.png", + "homedecor_generic_wood.png", + "homedecor_generic_wood.png", + "homedecor_generic_wood.png", + "homedecor_bench_large_2_left_back.png", + "homedecor_bench_large_2_left_front.png" + }, + description = "Simple Bench", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.15, 0, 0.5, -0.05, 0.4}, + {-0.4, -0.5, 0.1, -0.3, -0.15, 0.3}, + { 0.3, -0.5, 0.1, 0.4, -0.15, 0.3}, + } + }, +}) + + +minetest.register_node("homedecor:bench_large_1_left", { + description = "Garden Bench (style 1)", + tiles = { + "homedecor_bench_large_1_left_top.png", + "homedecor_bench_large_1_left_bottom.png", + "homedecor_bench_large_1_ends.png^[transformFX", + "homedecor_bench_large_1_ends.png", + "homedecor_bench_large_1_left_back.png", + "homedecor_bench_large_1_left_front.png" + }, + inventory_image = "homedecor_bench_large_1_inv.png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {-0.5, 0.25, 0.375, 0.5, 0.4375, 0.4375}, -- NodeBox1 + {-0.5, 0, 0.375, 0.5, 0.1875, 0.4375}, -- NodeBox2 + {-0.5, -0.125, 0.115, 0.5, -0.0625, 0.35}, -- NodeBox3 + {-0.5, -0.125, -0.0872, 0.5, -0.0625, 0.079}, -- NodeBox4 + {-0.3125, -0.5, 0.4375, -0.25, 0.375, 0.5}, -- NodeBox5 + {-0.3125, -0.25, -0.0625, -0.25, -0.125, 0.4375}, -- NodeBox6 + {-0.3125, -0.5, -0.0625, -0.25, -0.25, 0}, -- NodeBox7 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.09375, 1.5, 0.5, 0.5 } + }, + on_place = function(itemstack, placer, pointed_thing) + return homedecor.stack_sideways(itemstack, placer, pointed_thing, + "homedecor:bench_large_1_left", "homedecor:bench_large_1_right", true) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local fdir = oldnode.param2 + if not fdir or fdir > 3 then return end + local pos2 = { x = pos.x + homedecor.fdir_to_right[fdir+1][1], y=pos.y, z = pos.z + homedecor.fdir_to_right[fdir+1][2] } + if minetest.get_node(pos2).name == "homedecor:bench_large_1_right" then + minetest.remove_node(pos2) + end + end +}) + +minetest.register_node("homedecor:bench_large_1_right", { + tiles = { + "homedecor_bench_large_1_right_top.png", + "homedecor_bench_large_1_right_bottom.png", + "homedecor_bench_large_1_ends.png^[transformFX", + "homedecor_bench_large_1_ends.png", + "homedecor_bench_large_1_right_back.png", + "homedecor_bench_large_1_right_front.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {-0.5, 0.25, 0.375, 0.5, 0.4375, 0.4375}, -- NodeBox1 + {-0.5, 0, 0.375, 0.5, 0.1875, 0.4375}, -- NodeBox2 + {-0.5, -0.125, 0.115, 0.5, -0.0625, 0.35}, -- NodeBox3 + {-0.5, -0.125, -0.0872, 0.5, -0.0625, 0.079}, -- NodeBox4 + {0.25, -0.5, 0.4375, 0.3125, 0.375, 0.5}, -- NodeBox5 + {0.25, -0.25, -0.0625, 0.3125, -0.125, 0.5}, -- NodeBox6 + {0.25, -0.5, -0.0625, 0.3125, -0.25, 0}, -- NodeBox7 + } + }, + selection_box = { + type = "fixed", + fixed = { 0, 0, 0, 0, 0, 0 } + }, +}) + + +minetest.register_node("homedecor:bench_large_2_left", { + description = "Garden Bench (style 2)", + tiles = { + "homedecor_generic_wood.png", + "homedecor_generic_wood.png", + "homedecor_generic_wood.png", + "homedecor_generic_wood.png", + "homedecor_bench_large_2_left_back.png", + "homedecor_bench_large_2_left_front.png" + }, + inventory_image = "homedecor_bench_large_2_inv.png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0.375, -0.375, 0.5, 0.5}, -- NodeBox1 + {-0.375, 0.3125, 0.4375, 0.5, 0.4375, 0.5}, -- NodeBox2 + {-0.375, -0.0625, 0.4375, 0.5, 0.0625, 0.5}, -- NodeBox3 + {-0.3125, 0.0625, 0.45, -0.25, 0.3125, 0.48}, -- NodeBox4 + {-0.1875, 0.0625, 0.45, -0.125, 0.3125, 0.48}, -- NodeBox5 + {-0.0625, 0.0625, 0.45, 0, 0.3125, 0.48}, -- NodeBox6 + {0.0625, 0.0625, 0.45, 0.125, 0.3125, 0.48}, -- NodeBox7 + {0.1875, 0.0625, 0.45, 0.25, 0.3125, 0.48}, -- NodeBox8 + {0.3125, 0.0625, 0.45, 0.375, 0.3125, 0.48}, -- NodeBox9 + {0.4375, 0.0625, 0.45, 0.5, 0.3125, 0.48}, -- NodeBox10 + {-0.5, 0.0625, -0.145362, -0.375, 0.125, 0.375}, -- NodeBox11 + {-0.5, -0.5, -0.0625, -0.375, 0.0625, 0.0625}, -- NodeBox12 + {-0.4375, -0.125, -0.0625, 0.5, -0.0911603, 0.4375}, -- NodeBox13 + {-0.4375, -0.4375, 0.0625, -0.375, -0.3125, 0.375}, -- NodeBox14 + {-0.375, -0.342324, 0.25, 0.5, -0.4375, 0.1875}, -- NodeBox15 + {-0.5, -0.25, -0.0290173, 0.5, -0.125, 0.0125346}, -- NodeBox16 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.15625, 1.5, 0.5, 0.5 } + }, + on_place = function(itemstack, placer, pointed_thing) + return homedecor.stack_sideways(itemstack, placer, pointed_thing, + "homedecor:bench_large_2_left", "homedecor:bench_large_2_right", true) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local fdir = oldnode.param2 + if not fdir or fdir > 3 then return end + local pos2 = { x = pos.x + homedecor.fdir_to_right[fdir+1][1], y=pos.y, z = pos.z + homedecor.fdir_to_right[fdir+1][2] } + if minetest.get_node(pos2).name == "homedecor:bench_large_2_right" then + minetest.remove_node(pos2) + end + end +}) + +minetest.register_node("homedecor:bench_large_2_right", { + tiles = { + "homedecor_generic_wood.png", + "homedecor_generic_wood.png", + "homedecor_generic_wood.png", + "homedecor_generic_wood.png", + "homedecor_bench_large_2_right_back.png", + "homedecor_bench_large_2_right_front.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {0.375, -0.5, 0.375, 0.5, 0.5, 0.5}, -- NodeBox1 + {-0.5, 0.3125, 0.4375, 0.375, 0.4375, 0.5}, -- NodeBox2 + {-0.5, -0.0625, 0.4375, 0.375, 0.0625, 0.5}, -- NodeBox3 + {-0.5, 0.0625, 0.45, -0.4375, 0.3125, 0.48}, -- NodeBox4 + {-0.375, 0.0625, 0.45, -0.3125, 0.3125, 0.48}, -- NodeBox5 + {-0.25, 0.0625, 0.45, -0.1875, 0.3125, 0.48}, -- NodeBox6 + {-0.125, 0.0625, 0.45, -0.0625, 0.3125, 0.48}, -- NodeBox7 + {0, 0.0625, 0.45, 0.0625, 0.3125, 0.48}, -- NodeBox8 + {0.125, 0.0625, 0.45, 0.1875, 0.3125, 0.48}, -- NodeBox9 + {0.25, 0.0625, 0.45, 0.3125, 0.3125, 0.48}, -- NodeBox10 + {0.375, 0.0625, -0.145362, 0.5, 0.125, 0.375}, -- NodeBox11 + {0.375, -0.5, -0.0625, 0.5, 0.125, 0.0625}, -- NodeBox12 + {0.375, -0.4375, 0.0625, 0.4375, -0.3125, 0.375}, -- NodeBox13 + {-0.5, -0.4375, 0.1875, 0.375, -0.342324, 0.25}, -- NodeBox14 + {-0.5, -0.125, -0.0625, 0.4375, -0.0911603, 0.4375}, -- NodeBox15 + {-0.5, -0.25, -0.0290173, 0.5, -0.125, 0.0125346}, -- NodeBox16 + } + }, + selection_box = { + type = "fixed", + fixed = { 0, 0, 0, 0, 0, 0 } + }, +}) + +minetest.register_node("homedecor:deckchair_head", { + tiles = { + "homedecor_deckchair_top_c1.png", + "homedecor_deckchair_bottom.png", + "homedecor_deckchair_sides.png", + "homedecor_deckchair_sides.png^[transformFX", + "homedecor_deckchair_back.png", + "homedecor_deckchair_front.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy = 3, not_in_creative_inventory = 1 }, + node_box = { + type = "fixed", + fixed = { + {-0.375, -0.3125, -0.0625, 0.375, -0.25, 0}, -- NodeBox1 + {-0.375, -0.25, 0, 0.375, -0.1875, 0.0625}, -- NodeBox2 + {-0.375, -0.1875, 0.0625, 0.375, -0.125, 0.125}, -- NodeBox3 + {-0.375, -0.125, 0.125, 0.375, -0.0625, 0.1875}, -- NodeBox4 + {-0.375, -0.0625, 0.1875, 0.375, 0, 0.25}, -- NodeBox5 + {-0.375, 0, 0.25, 0.375, 0.0625, 0.3125}, -- NodeBox6 + {-0.375, 0.0625, 0.3125, 0.375, 0.125, 0.375}, -- NodeBox7 + {-0.375, 0.125, 0.375, 0.375, 0.1875, 0.4375}, -- NodeBox8 + {-0.375, 0.1875, 0.4375, 0.375, 0.25, 0.5}, -- NodeBox9 + {-0.375, -0.375, -0.5, 0.375, -0.3125, 0.0625}, -- NodeBox10 + {0.3125, -0.1875, -0.5, 0.4375, -0.1575, 0.0625}, -- NodeBox11 + {-0.4375, -0.1875, -0.5, -0.3125, -0.1575, 0.0625}, -- NodeBox12 + {0.3125, -0.5, 0, 0.375, -0.25, 0.0625}, -- NodeBox13 + {-0.375, -0.5, 0, -0.3125, -0.25, 0.0625}, -- NodeBox14 + } + }, + selection_box = { + type = "fixed", + fixed = { 0, 0, 0, 0, 0, 0 } + } +}) + +minetest.register_node("homedecor:deckchair_foot", { + tiles = { + "homedecor_deckchair_top_c2.png", + "homedecor_deckchair_bottom.png", + "homedecor_deckchair_sides.png", + "homedecor_deckchair_sides.png^[transformFX", + "homedecor_deckchair_front.png" + }, + description = "Deck chair", + inventory_image = "homedecor_deckchair_inv.png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy = 3 }, + node_box = { + type = "fixed", + fixed = { + {-0.375, -0.375, -0.5, 0.375, -0.3125, 0.5}, -- NodeBox1 + {0.3125, -0.5, -0.5, 0.375, -0.375, -0.4375}, -- NodeBox2 + {-0.375, -0.5, -0.5, -0.3125, -0.375, -0.4375}, -- NodeBox3 + {0.3125, -0.1875, 0.3, 0.4375, -0.1575, 0.5}, -- NodeBox4 + {-0.4375, -0.1875, 0.3, -0.3125, -0.1575, 0.5}, -- NodeBox5 + {-0.365, -0.3125, 0.32, -0.3225, -0.1875, 0.4375}, -- NodeBox6 + {0.3225, -0.3125, 0.32, 0.365, -0.1875, 0.4375}, -- NodeBox7 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.45, -0.5, -0.5, 0.45, 0.35, 1.5 } + }, + on_place = function(itemstack, placer, pointed_thing) + return homedecor.stack_sideways(itemstack, placer, pointed_thing, + "homedecor:deckchair_foot", "homedecor:deckchair_head", false) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local fdir = oldnode.param2 + if not fdir or fdir > 3 then return end + local pos2 = { x = pos.x + homedecor.fdir_to_fwd[fdir+1][1], y=pos.y, z = pos.z + homedecor.fdir_to_fwd[fdir+1][2] } + if minetest.get_node(pos2).name == "homedecor:deckchair_head" then + minetest.remove_node(pos2) + end + end +}) + +minetest.register_node("homedecor:wall_shelf", { + description = "Wall Shelf", + tiles = { + "homedecor_wood_table_large_edges.png", + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy = 3 }, + node_box = { + type = "fixed", + fixed = { + {-0.5, 0.4, 0.47, 0.5, 0.47, 0.5}, + {-0.5, 0.47, -0.1875, 0.5, 0.5, 0.5} + } + } +}) + +minetest.register_node("homedecor:grandfather_clock_bottom", { + description = "Grandfather Clock", + tiles = { + "homedecor_grandfather_clock_sides.png", + "homedecor_grandfather_clock_sides.png", + "homedecor_grandfather_clock_sides.png", + "homedecor_grandfather_clock_sides.png", + "homedecor_grandfather_clock_sides.png", + "homedecor_grandfather_clock_bottom.png" + }, + inventory_image = "homedecor_grandfather_clock_inv.png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy = 3 }, + node_box = { + type = "fixed", + fixed = { + {-0.4, -0.5, -0.4, -0.3125, 0.5, 0.4}, -- NodeBox1 + {-0.3125, -0.4375, -0.3125, 0.3125, 0.5, 0.4}, -- NodeBox2 + {0.3125, -0.5, -0.4, 0.4, 0.5, 0.4}, -- NodeBox3 + {-0.3125, -0.5, -0.4, 0.3125, -0.405, 0.4}, -- NodeBox4 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.4, -0.5, -0.4, 0.4, 1.5, 0.4 } + }, + on_place = function(itemstack, placer, pointed_thing) + return homedecor.stack_vertically(itemstack, placer, pointed_thing, + "homedecor:grandfather_clock_bottom", "homedecor:grandfather_clock_top") + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local pos2 = { x = pos.x, y=pos.y + 1, z = pos.z } + if minetest.get_node(pos2).name == "homedecor:grandfather_clock_top" then + minetest.remove_node(pos2) + end + end, +}) + +minetest.register_node("homedecor:grandfather_clock_top", { + tiles = { + "homedecor_grandfather_clock_sides.png", + "homedecor_grandfather_clock_sides.png", + "homedecor_grandfather_clock_sides.png", + "homedecor_grandfather_clock_sides.png", + "homedecor_grandfather_clock_sides.png", + "homedecor_grandfather_clock_top.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy = 3, not_in_creative_inventory=1 }, + node_box = { + type = "fixed", + fixed = { + {-0.4, -0.5, -0.4, -0.3125, 0.5, 0.4}, -- NodeBox1 + {-0.3125, -0.1875, -0.4, 0.3125, 0.5, 0.4}, -- NodeBox2 + {0.3125, -0.5, -0.4, 0.4, 0.5, 0.4}, -- NodeBox3 + {-0.3125, -0.5, -0.3125, 0.3125, 0.5, 0.4}, -- NodeBox4 + } + }, + selection_box = { + type = "fixed", + fixed = { 0, 0, 0, 0, 0, 0 } + }, +}) + +-- Aliases for 3dforniture mod. + +minetest.register_alias("3dforniture:table", "homedecor:table") +minetest.register_alias("3dforniture:chair", "homedecor:chair") +minetest.register_alias("3dforniture:armchair", "homedecor:armchair_black") +minetest.register_alias("homedecor:armchair", "homedecor:armchair_black") + +minetest.register_alias('table', 'homedecor:table') +minetest.register_alias('chair', 'homedecor:chair') +minetest.register_alias('armchair', 'homedecor:armchair') diff --git a/mods/homedecor_modpack/homedecor/furniture_bathroom.lua b/mods/homedecor_modpack/homedecor/furniture_bathroom.lua new file mode 100644 index 00000000..02de3c73 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/furniture_bathroom.lua @@ -0,0 +1,203 @@ +local S = homedecor.gettext + +minetest.register_node("homedecor:toilet", { + description = S("Toilet"), + tiles = { "forniture_marble.png" }, + drawtype = "nodebox", + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + { -0.20, -0.50, -0.20, 0.20, -0.45, 0.50, }, + { -0.10, -0.45, -0.10, 0.10, 0.00, 0.50, }, + { -0.30, -0.20, -0.30, 0.30, 0.00, 0.35, }, + { -0.25, 0.00, -0.25, 0.25, 0.05, 0.25, }, + { -0.30, 0.00, 0.30, 0.30, 0.40, 0.50, }, + { -0.05, 0.40, 0.35, 0.05, 0.45, 0.45, }, + }, + }, + groups = {cracky=3,}, + sounds = default.node_sound_stone_defaults(), + on_punch = function (pos, node, puncher) + node.name = "homedecor:toilet_open" + minetest.set_node(pos, node) + end, +}) + +minetest.register_node("homedecor:toilet_open", { + tiles = { + "forniture_marble_top_toilet.png", + "forniture_marble.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + { -0.20, -0.50, -0.20, 0.20, -0.45, 0.50, }, + { -0.10, -0.45, -0.10, 0.10, -0.20, 0.50, }, + { -0.10, -0.20, 0.30, 0.10, 0.00, 0.50, }, + { -0.30, -0.20, 0.10, 0.30, 0.00, 0.35, }, + { -0.30, -0.20, -0.30, -0.10, -0.15, 0.10, }, + { -0.10, -0.20, -0.30, 0.10, -0.15, -0.10, }, + { 0.10, -0.20, -0.30, 0.30, -0.15, 0.10, }, + { -0.30, -0.15, -0.30, -0.20, 0.00, 0.10, }, + { -0.20, -0.15, -0.30, 0.20, 0.00, -0.20, }, + { 0.20, -0.15, -0.30, 0.30, 0.00, 0.10, }, + { -0.25, 0.00, 0.20, 0.25, 0.50, 0.25, }, + { -0.30, 0.00, 0.30, 0.30, 0.40, 0.50, }, + }, + }, + drop = "homedecor:toilet", + groups = {cracky = 3,}, + --sounds = {dig = "3dforniture_dig_toilet", gain=0.5}, + sounds = default.node_sound_stone_defaults(), + on_punch = function (pos, node, puncher) + node.name = "homedecor:toilet" + minetest.set_node(pos, node) + minetest.sound_play("homedecor_toilet_flush", { + pos=pos, + max_hear_distance = 5, + gain = 1, + }) + end, +}) + +--Sink +minetest.register_node("homedecor:sink", { + description = S("Sink"), + tiles = { + "forniture_marble_top_sink.png", + "forniture_marble.png" + }, + inventory_image="3dforniture_inv_sink.png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + { -0.15, 0.35, 0.20, 0.15, 0.40, 0.50, }, + { -0.25, 0.40, 0.40, 0.25, 0.45, 0.50, }, + { -0.25, 0.40, 0.15, -0.15, 0.45, 0.40, }, + { 0.15, 0.40, 0.15, 0.25, 0.45, 0.40, }, + { -0.15, 0.40, 0.15, 0.15, 0.45, 0.20, }, + { -0.30, 0.45, 0.40, 0.30, 0.50, 0.50, }, + { -0.30, 0.45, 0.10, -0.25, 0.50, 0.40, }, + { 0.25, 0.45, 0.10, 0.30, 0.50, 0.40, }, + { -0.25, 0.45, 0.10, 0.25, 0.50, 0.15, }, + {-0.1, -0.5, 0.3, 0.1, 0.4, 0.5}, + }, + }, + selection_box = { + type = "fixed", + fixed = {-0.3,-0.5,0.1, 0.3,0.5,0.5}, + }, + groups = {cracky=2,}, + sounds = default.node_sound_stone_defaults(), +}) + +--Taps +minetest.register_node("homedecor:taps", { + description = S("Taps"), + tiles = { "forniture_metal.png" }, + inventory_image="3dforniture_inv_taps.png", + drawtype = "nodebox", + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + { -0.25, -0.450, 0.49, 0.25, -0.30, 0.50, }, + { -0.05, -0.400, 0.25, 0.05, -0.35, 0.50, }, + { -0.05, -0.425, 0.25, 0.05, -0.40, 0.30, }, + { -0.20, -0.400, 0.45, -0.15, -0.35, 0.50, }, + { -0.20, -0.450, 0.40, -0.15, -0.30, 0.45, }, + { -0.25, -0.400, 0.40, -0.10, -0.35, 0.45, }, + { 0.15, -0.400, 0.45, 0.20, -0.35, 0.50, }, + { 0.15, -0.450, 0.40, 0.20, -0.30, 0.45, }, + { 0.10, -0.400, 0.40, 0.25, -0.35, 0.45, }, + }, + }, + selection_box = { + type = "fixed", + fixed = { -0.25, -0.45, 0.25, 0.25, -0.3, 0.5 }, + }, + groups = {cracky=2,}, + sounds = default.node_sound_stone_defaults(), +}) + +--Shower Tray +minetest.register_node("homedecor:shower_tray", { + description = S("Shower Tray"), + tiles = { + "forniture_marble_base_ducha_top.png", + "forniture_marble.png" + }, + drawtype = "nodebox", + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + legacy_facedir_simple = true, + node_box = { + type = "fixed", + fixed = { + { -0.50, -0.50, -0.50, 0.50, -0.45, 0.50, }, + { -0.50, -0.45, -0.50, 0.50, -0.40, -0.45, }, + { -0.50, -0.45, 0.45, 0.50, -0.40, 0.50, }, + { -0.50, -0.45, -0.45, -0.45, -0.40, 0.45, }, + { 0.45, -0.45, -0.45, 0.50, -0.40, 0.45, }, + }, + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, -0.4, 0.5 }, + }, + groups = {cracky=2,}, + sounds = default.node_sound_stone_defaults(), +}) + +--Shower Head +minetest.register_node("homedecor:shower_head", { + description = S("Shower Head"), + tiles = { "forniture_metal.png" }, + inventory_image="3dforniture_inv_shower_head.png", + drawtype = "nodebox", + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + { -0.10, -0.50, 0.10, 0.10, -0.40, 0.30, }, + { -0.05, -0.40, 0.15, 0.05, -0.30, 0.25, }, + { -0.05, -0.35, 0.25, 0.05, -0.30, 0.50, }, + { -0.10, -0.40, 0.49, 0.10, -0.25, 0.50, }, + }, + }, + selection_box = { + type = "fixed", + fixed = { -0.1, -0.5, 0.1, 0.1, -0.25, 0.5 }, + }, + groups = {cracky=2,}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_alias("3dforniture:toilet", "homedecor:toilet") +minetest.register_alias("3dforniture:toilet_open", "homedecor:toilet_open") +minetest.register_alias("3dforniture:sink", "homedecor:sink") +minetest.register_alias("3dforniture:taps", "homedecor:taps") +minetest.register_alias("3dforniture:shower_tray", "homedecor:shower_tray") +minetest.register_alias("3dforniture:shower_head", "homedecor:shower_head") +minetest.register_alias("3dforniture:table_lamp", "homedecor:table_lamp_off") + +minetest.register_alias("toilet", "homedecor:toilet") +minetest.register_alias("sink", "homedecor:sink") +minetest.register_alias("taps", "homedecor:taps") +minetest.register_alias("shower_tray", "homedecor:shower_tray") +minetest.register_alias("shower_head", "homedecor:shower_head") +minetest.register_alias("table_lamp", "homedecor:table_lamp_off") diff --git a/mods/homedecor_modpack/homedecor/furniture_medieval.lua b/mods/homedecor_modpack/homedecor/furniture_medieval.lua new file mode 100644 index 00000000..023a9a51 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/furniture_medieval.lua @@ -0,0 +1,170 @@ + +local S = homedecor.gettext + +minetest.register_node("homedecor:bars", { + description = S("Bars"), + tiles = { "forniture_black_metal.png" }, + drawtype = "nodebox", + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + { -0.5, -0.50, -0.10, -0.4, 0.50, 0.10 }, + { -0.1, -0.50, -0.10, 0.1, 0.50, 0.10 }, + { 0.4, -0.50, -0.10, 0.5, 0.50, 0.10 }, + { -0.5, -0.50, -0.05, 0.5, -0.45, 0.05 }, + { -0.5, 0.45, -0.05, 0.5, 0.50, 0.05 }, + }, + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.1, 0.5, 0.5, 0.1 }, + }, + groups = {cracky=1}, +}) + +--L Binding Bars +minetest.register_node("homedecor:L_binding_bars", { + description = S("Binding Bars"), + tiles = { "forniture_black_metal.png" }, + drawtype = "nodebox", + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + { -0.10, -0.50, -0.50, 0.10, 0.50, -0.40 }, + { -0.15, -0.50, -0.15, 0.15, 0.50, 0.15 }, + { 0.40, -0.50, -0.10, 0.50, 0.50, 0.10 }, + { 0.00, -0.50, -0.05, 0.50, -0.45, 0.05 }, + { -0.05, -0.50, -0.50, 0.05, -0.45, 0.00 }, + { 0.00, 0.45, -0.05, 0.50, 0.50, 0.05 }, + { -0.05, 0.45, -0.50, 0.05, 0.50, 0.00 }, + }, + }, + groups = {cracky=1,} +}) + +minetest.register_node("homedecor:chains", { + description = S("Chains"), + tiles = { "forniture_black_metal.png" }, + inventory_image="3dforniture_inv_chains.png", + drawtype = "nodebox", + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + { -0.45, 0.25, 0.45, -0.20, 0.50, 0.50, }, + { -0.35, 0.40, 0.35, -0.30, 0.45, 0.45, }, + { -0.35, 0.30, 0.35, -0.30, 0.35, 0.45, }, + { -0.35, 0.35, 0.30, -0.30, 0.40, 0.35, }, + { -0.40, 0.35, 0.35, -0.25, 0.40, 0.40, }, + { -0.40, 0.15, 0.35, -0.25, 0.20, 0.40, }, + { -0.45, 0.20, 0.35, -0.40, 0.35, 0.40, }, + { -0.25, 0.20, 0.35, -0.20, 0.35, 0.40, }, + { -0.35, 0.20, 0.30, -0.30, 0.25, 0.45, }, + { -0.35, 0.00, 0.30, -0.30, 0.05, 0.45, }, + { -0.35, 0.05, 0.25, -0.30, 0.20, 0.30, }, + { -0.35, 0.05, 0.45, -0.30, 0.20, 0.50, }, + { -0.40, 0.05, 0.35, -0.25, 0.10, 0.40, }, + { -0.40, -0.15, 0.35, -0.25, -0.10, 0.40, }, + { -0.45, -0.10, 0.35, -0.40, 0.05, 0.40, }, + { -0.25, -0.10, 0.35, -0.20, 0.05, 0.40, }, + { -0.35, -0.10, 0.30, -0.30, -0.05, 0.45, }, + { -0.35, -0.30, 0.30, -0.30, -0.25, 0.45, }, + { -0.35, -0.25, 0.25, -0.30, -0.10, 0.30, }, + { -0.35, -0.25, 0.45, -0.30, -0.10, 0.50, }, + { -0.40, -0.25, 0.35, -0.25, -0.20, 0.40, }, + { -0.40, -0.45, 0.35, -0.25, -0.40, 0.40, }, + { -0.45, -0.40, 0.35, -0.40, -0.25, 0.40, }, + { -0.25, -0.40, 0.35, -0.20, -0.25, 0.40, }, + { 0.20, 0.25, 0.45, 0.45, 0.50, 0.50, }, + { 0.30, 0.40, 0.35, 0.35, 0.45, 0.45, }, + { 0.30, 0.30, 0.35, 0.35, 0.35, 0.45, }, + { 0.30, 0.35, 0.30, 0.35, 0.40, 0.35, }, + { 0.25, 0.35, 0.35, 0.40, 0.40, 0.40, }, + { 0.25, 0.15, 0.35, 0.40, 0.20, 0.40, }, + { 0.20, 0.20, 0.35, 0.25, 0.35, 0.40, }, + { 0.40, 0.20, 0.35, 0.45, 0.35, 0.40, }, + { 0.30, 0.20, 0.30, 0.35, 0.25, 0.45, }, + { 0.30, 0.00, 0.30, 0.35, 0.05, 0.45, }, + { 0.30, 0.05, 0.25, 0.35, 0.20, 0.30, }, + { 0.30, 0.05, 0.45, 0.35, 0.20, 0.50, }, + { 0.25, 0.05, 0.35, 0.40, 0.10, 0.40, }, + { 0.25, -0.15, 0.35, 0.40, -0.10, 0.40, }, + { 0.20, -0.10, 0.35, 0.25, 0.05, 0.40, }, + { 0.40, -0.10, 0.35, 0.45, 0.05, 0.40, }, + { 0.30, -0.10, 0.30, 0.35, -0.05, 0.45, }, + { 0.30, -0.30, 0.30, 0.35, -0.25, 0.45, }, + { 0.30, -0.25, 0.25, 0.35, -0.10, 0.30, }, + { 0.30, -0.25, 0.45, 0.35, -0.10, 0.50, }, + { 0.25, -0.25, 0.35, 0.40, -0.20, 0.40, }, + { 0.25, -0.45, 0.35, 0.40, -0.40, 0.40, }, + { 0.20, -0.40, 0.35, 0.25, -0.25, 0.40, }, + { 0.40, -0.40, 0.35, 0.45, -0.25, 0.40, }, + }, + }, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, 1/4, 1/2, 1/2, 1/2}, + }, + groups = {cracky=1}, +}) + +minetest.register_node("homedecor:torch_wall", { + description = S("Wall Torch"), + drawtype = "nodebox", + tiles = { + "forniture_torch_wall_s.png", + "forniture_torch_wall_i.png", + { + name="forniture_torch_wall_anim.png", + animation={ + type="vertical_frames", + aspect_w=40, + aspect_h=40, + length=1.0, + }, + }, + }, + inventory_image="3dforniture_inv_torch_wall.png", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + { -0.05, -0.45, 0.45, 0.05, -0.35, 0.50, }, + { -0.05, -0.35, 0.40, 0.05, -0.25, 0.50, }, + { -0.05, -0.25, 0.35, 0.05, -0.15, 0.45, }, + { -0.05, -0.15, 0.30, 0.05, -0.05, 0.40, }, + { -0.05, -0.05, 0.25, 0.05, 0.00, 0.35, }, + { -0.10, 0.00, 0.20, 0.10, 0.05, 0.40, }, + { -0.15, 0.05, 0.15, 0.15, 0.15, 0.45, }, + { -0.10, 0.15, 0.20, 0.10, 0.25, 0.40, }, + { -0.05, 0.25, 0.25, 0.05, 0.35, 0.35, }, + }, + }, + sunlight_propagates = true, + walkable = false, + light_source = 14, + selection_box = { + type = "fixed", + fixed = { -0.15, -0.45, 0.15, 0.15,0.35, 0.5 }, + }, + groups = {cracky=2}, +}) + +minetest.register_alias("3dforniture:bars", "homedecor:bars") +minetest.register_alias("3dforniture:L_binding_bars", "homedecor:L_binding_bars") +minetest.register_alias("3dforniture:chains", "homedecor:chains") +minetest.register_alias("3dforniture:torch_wall", "homedecor:torch_wall") + +minetest.register_alias('bars', 'homedecor:bars') +minetest.register_alias('binding_bars', 'homedecor:L_binding_bars') +minetest.register_alias('chains', 'homedecor:chains') +minetest.register_alias('torch_wall', 'homedecor:torch_wall') diff --git a/mods/homedecor_modpack/homedecor/furniture_recipes.lua b/mods/homedecor_modpack/homedecor/furniture_recipes.lua new file mode 100644 index 00000000..a01c6cda --- /dev/null +++ b/mods/homedecor_modpack/homedecor/furniture_recipes.lua @@ -0,0 +1,255 @@ + +minetest.register_craft({ + output = "homedecor:table", "homedecor:chair 2", + recipe = { + { "group:wood","group:wood", "group:wood" }, + { "group:stick", "", "group:stick" }, + }, +}) + +minetest.register_craft({ + type = "shapeless", + output = "homedecor:table_mahogany", + recipe = { + "homedecor:table", + "dye:brown", + }, +}) + +minetest.register_craft({ + type = "shapeless", + output = "homedecor:table_mahogany", + recipe = { + "homedecor:table", + "unifieddyes:dark_orange", + }, +}) + +minetest.register_craft({ + type = "shapeless", + output = "homedecor:table_white", + recipe = { + "homedecor:table", + "dye:white", + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:table", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:table_mahogany", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:table_white", + burntime = 30, +}) + +minetest.register_craft({ + output = "homedecor:chair 2", + recipe = { + { "group:stick",""}, + { "group:wood","group:wood" }, + { "group:stick","group:stick" }, + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:chair", + burntime = 15, +}) + +local chaircolors = { "black", "red", "pink", "violet", "blue", "dark_green" } + +for _, color in ipairs(chaircolors) do + + minetest.register_craft({ + type = "shapeless", + output = "homedecor:chair_"..color, + recipe = { + "homedecor:chair", + "wool:white", + "dye:"..color + }, + }) + + minetest.register_craft({ + type = "shapeless", + output = "homedecor:chair_"..color, + recipe = { + "homedecor:chair", + "wool:"..color + }, + }) + + minetest.register_craft({ + type = "fuel", + recipe = "homedecor:chair_"..color, + burntime = 15, + }) +end + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:armchair", + burntime = 30, +}) + +minetest.register_craft({ + output = "homedecor:table_lamp_off", + recipe = { + {"default:paper","default:torch" ,"default:paper"}, + {"","group:stick",""}, + {"","stairs:slab_wood",""}, + }, +}) + +minetest.register_craft({ + output = "homedecor:table_lamp_off", + recipe = { + {"default:paper","default:torch" ,"default:paper"}, + {"","group:stick",""}, + {"","moreblocks:slab_wood",""}, + }, +}) + +minetest.register_craft({ + output = "homedecor:standing_lamp_bottom_off", + recipe = { + {"homedecor:table_lamp_off"}, + {"group:stick"}, + {"group:stick"}, + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:table_lamp_off", + burntime = 10, +}) + +local lamp_colors = { "blue", "green", "pink", "red", "violet" } + +for _, color in ipairs(lamp_colors) do + + minetest.register_craft({ + output = "homedecor:table_lamp_"..color.."_off", + recipe = { + {"wool:"..color,"default:torch" ,"wool:"..color}, + {"","group:stick",""}, + {"","stairs:slab_wood",""}, + }, + }) + + minetest.register_craft({ + output = "homedecor:table_lamp_"..color.."_off", + recipe = { + {"wool:"..color,"default:torch" ,"wool:"..color}, + {"","group:stick",""}, + {"","moreblocks:slab_wood",""}, + }, + }) + + minetest.register_craft({ + type = "shapeless", + output = "homedecor:table_lamp_"..color.."_off", + recipe = { + "dye:"..color, + "homedecor:table_lamp_off", + }, + }) + + minetest.register_craft({ + type = "fuel", + recipe = "homedecor:table_lamp_"..color.."_off", + burntime = 10, + }) + + minetest.register_craft({ + output = "homedecor:standing_lamp_bottom_"..color.."_off", + recipe = { + {"homedecor:table_lamp_"..color.."_off"}, + {"group:stick"}, + {"group:stick"}, + }, + }) + + minetest.register_craft({ + type = "shapeless", + output = "homedecor:standing_lamp_bottom_"..color.."_off", + recipe = { + "homedecor:standing_lamp_bottom_off", + "dye:"..color + }, + }) + +end + +minetest.register_craft({ + output = "homedecor:toilet", + recipe = { + {"","","bucket:bucket_water"}, + { "building_blocks:Marble","building_blocks:Marble", "building_blocks:Marble" }, + { "", "bucket:bucket_empty", "" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:sink", + recipe = { + { "building_blocks:Marble","bucket:bucket_empty", "building_blocks:Marble" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:taps", + recipe = { + { "default:steel_ingot","bucket:bucket_water", "default:steel_ingot" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:shower_tray", + recipe = { + { "building_blocks:Marble","bucket:bucket_water", "building_blocks:Marble" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:shower_head", + recipe = { + {"default:steel_ingot", "bucket:bucket_water"}, + }, +}) + +minetest.register_craft({ + output = "homedecor:bars 6", + recipe = { + { "default:steel_ingot","default:steel_ingot","default:steel_ingot" }, + { "homedecor:pole_wrought_iron","homedecor:pole_wrought_iron","homedecor:pole_wrought_iron" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:L_binding_bars 3", + recipe = { + { "homedecor:bars","" }, + { "homedecor:bars","homedecor:bars" }, + }, +}) + +minetest.register_craft({ + output = "homedecor:torch_wall 10", + recipe = { + { "default:coal_lump" }, + { "default:steel_ingot" }, + }, +}) diff --git a/mods/homedecor_modpack/homedecor/init.lua b/mods/homedecor_modpack/homedecor/init.lua new file mode 100644 index 00000000..7413c554 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/init.lua @@ -0,0 +1,241 @@ +-- Home Decor mod by VanessaE +-- +-- Mostly my own code, with bits and pieces lifted from Minetest's default +-- lua files and from ironzorg's flowers mod. Many thanks to GloopMaster +-- for helping me figure out the inventories used in the nightstands/dressers. +-- +-- The code for ovens, nightstands, refrigerators are basically modified +-- copies of the code for chests and furnaces. + +homedecor = {} + +homedecor.debug = 0 + +-- detail level for roofing slopes and also cobwebs + +homedecor.detail_level = 16 + +homedecor.modpath = minetest.get_modpath("homedecor") +homedecor.intllib_modpath = minetest.get_modpath("intllib") + +-- Boilerplate to support localized strings if intllib mod is installed. +local S +if homedecor.intllib_modpath then + dofile(homedecor.intllib_modpath.."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) +else + S = function ( s ) return s end +end +homedecor.gettext = S + +-- debug + +local dbg = function(s) + if homedecor.debug == 1 then + print('[HomeDecor] ' .. s) + end +end + +-- infinite stacks + +if minetest.get_modpath("unified_inventory") or not minetest.setting_getbool("creative_mode") then + homedecor.expect_infinite_stacks = false +else + homedecor.expect_infinite_stacks = true +end + +--table copy + +function homedecor.table_copy(t) + local nt = { }; + for k, v in pairs(t) do + if type(v) == "table" then + nt[k] = homedecor.table_copy(v) + else + nt[k] = v + end + end + return nt +end + +-- + +function homedecor.get_nodedef_field(nodename, fieldname) + if not minetest.registered_nodes[nodename] then + return nil + end + return minetest.registered_nodes[nodename][fieldname] +end + +-- Stack one node above another + +function homedecor.stack_vertically(itemstack, placer, pointed_thing, node1, node2) + local pos = pointed_thing.under + local pnode = minetest.get_node(pointed_thing.under) + local rnodedef = minetest.registered_nodes[pnode.name] + + if not rnodedef["buildable_to"] then + pos = pointed_thing.above + end + + local fdir = minetest.dir_to_facedir(placer:get_look_dir()) + local pos2 = { x = pos.x, y=pos.y + 1, z = pos.z } + + local tnode = minetest.get_node(pos) + local tnode2 = minetest.get_node(pos2) + + if homedecor.get_nodedef_field(tnode.name, "buildable_to") + and homedecor.get_nodedef_field(tnode2.name, "buildable_to") + and not minetest.is_protected(pos, placer:get_player_name()) + and not minetest.is_protected(pos2, placer:get_player_name()) then + minetest.add_node(pos, { name = node1, param2 = fdir }) + minetest.add_node(pos2, { name = node2, param2 = fdir }) + if not homedecor.expect_infinite_stacks then + itemstack:take_item() + return itemstack + end + end +end + +-- Place one node right of or behind another + +homedecor.fdir_to_right = { + { 1, 0 }, + { 0, -1 }, + { -1, 0 }, + { 0, 1 }, +} + +homedecor.fdir_to_fwd = { + { 0, 1 }, + { 1, 0 }, + { 0, -1 }, + { -1, 0 }, +} + +function homedecor.stack_sideways(itemstack, placer, pointed_thing, node1, node2, dir) + local pos = pointed_thing.under + local pnode = minetest.get_node(pointed_thing.under) + local rnodedef = minetest.registered_nodes[pnode.name] + + if not rnodedef["buildable_to"] then + pos = pointed_thing.above + end + + local fdir = minetest.dir_to_facedir(placer:get_look_dir()) + local pos2 + if dir then + pos2 = { x = pos.x + homedecor.fdir_to_right[fdir+1][1], y=pos.y, z = pos.z + homedecor.fdir_to_right[fdir+1][2] } + else + pos2 = { x = pos.x + homedecor.fdir_to_fwd[fdir+1][1], y=pos.y, z = pos.z + homedecor.fdir_to_fwd[fdir+1][2] } + end + + local tnode = minetest.get_node(pos) + local tnode2 = minetest.get_node(pos2) + + if homedecor.get_nodedef_field(tnode.name, "buildable_to") + and homedecor.get_nodedef_field(tnode2.name, "buildable_to") + and not minetest.is_protected(pos, placer:get_player_name()) + and not minetest.is_protected(pos2, placer:get_player_name()) then + minetest.add_node(pos, { name = node1, param2 = fdir }) + minetest.add_node(pos2, { name = node2, param2 = fdir }) + if not homedecor.expect_infinite_stacks then + itemstack:take_item() + return itemstack + end + end +end + +-- Determine if the item being pointed at is the underside of a node (e.g a ceiling) + +function homedecor.find_ceiling(itemstack, placer, pointed_thing) + -- most of this is copied from the rotate-and-place function in builtin + local unode = core.get_node_or_nil(pointed_thing.under) + if not unode then + return + end + local undef = core.registered_nodes[unode.name] + if undef and undef.on_rightclick then + undef.on_rightclick(pointed_thing.under, unode, placer, + itemstack, pointed_thing) + return + end + local pitch = placer:get_look_pitch() + local fdir = core.dir_to_facedir(placer:get_look_dir()) + local wield_name = itemstack:get_name() + + local above = pointed_thing.above + local under = pointed_thing.under + local iswall = (above.y == under.y) + local isceiling = not iswall and (above.y < under.y) + local anode = core.get_node_or_nil(above) + if not anode then + return + end + local pos = pointed_thing.above + local node = anode + + if undef and undef.buildable_to then + pos = pointed_thing.under + node = unode + iswall = false + end + + if core.is_protected(pos, placer:get_player_name()) then + core.record_protection_violation(pos, + placer:get_player_name()) + return + end + + local ndef = core.registered_nodes[node.name] + if not ndef or not ndef.buildable_to then + return + end + return isceiling, pos +end + +-- load various other components + +dofile(homedecor.modpath.."/misc-nodes.lua") -- the catch-all for all misc nodes +dofile(homedecor.modpath.."/tables.lua") +dofile(homedecor.modpath.."/electronics.lua") +dofile(homedecor.modpath.."/shutters.lua") +dofile(homedecor.modpath.."/shingles.lua") +dofile(homedecor.modpath.."/slopes.lua") + +dofile(homedecor.modpath.."/door_models.lua") +dofile(homedecor.modpath.."/doors_and_gates.lua") + +dofile(homedecor.modpath.."/fences.lua") + +dofile(homedecor.modpath.."/lighting.lua") +dofile(homedecor.modpath.."/kitchen_cabinet.lua") +dofile(homedecor.modpath.."/refrigerator.lua") + +dofile(homedecor.modpath.."/misc-bathroom.lua") + +dofile(homedecor.modpath.."/laundry.lua") + +dofile(homedecor.modpath.."/furnaces.lua") +dofile(homedecor.modpath.."/nightstands.lua") +dofile(homedecor.modpath.."/clocks.lua") +dofile(homedecor.modpath.."/misc-electrical.lua") + +dofile(homedecor.modpath.."/paintings.lua") +dofile(homedecor.modpath.."/window_treatments.lua") + +dofile(homedecor.modpath.."/crafts.lua") + +dofile(homedecor.modpath.."/furniture.lua") +dofile(homedecor.modpath.."/furniture_medieval.lua") +dofile(homedecor.modpath.."/furniture_bathroom.lua") +dofile(homedecor.modpath.."/furniture_recipes.lua") +dofile(homedecor.modpath.."/climate-control.lua") + +dofile(homedecor.modpath.."/cobweb.lua") + +dofile(homedecor.modpath.."/locked.lua") + + + +print("[HomeDecor] "..S("Loaded!")) diff --git a/mods/homedecor_modpack/homedecor/kitchen_cabinet.lua b/mods/homedecor_modpack/homedecor/kitchen_cabinet.lua new file mode 100644 index 00000000..d35dbe41 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/kitchen_cabinet.lua @@ -0,0 +1,173 @@ +-- This file supplies Kitchen cabinets and kitchen sink + +local S = homedecor.gettext + +local counter_materials = { "", "granite", "marble", "steel" } + +for _, mat in ipairs(counter_materials) do + + local desc = S("Kitchen Cabinet") + local material = "" + + if mat ~= "" then + desc = S("Kitchen Cabinet ("..mat.." top)") + material = "_"..mat + end + + minetest.register_node('homedecor:kitchen_cabinet'..material, { + description = desc, + tiles = { 'homedecor_kitchen_cabinet_top'..material..'.png', + 'homedecor_kitchen_cabinet_bottom.png', + 'homedecor_kitchen_cabinet_sides.png', + 'homedecor_kitchen_cabinet_sides.png', + 'homedecor_kitchen_cabinet_sides.png', + 'homedecor_kitchen_cabinet_front.png'}, + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = { snappy = 3 }, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[8,8]".. + "list[current_name;main;0,0;8,3;]".. + "list[current_player;main;0,4;8,4;]") + meta:set_string("infotext", S("Kitchen Cabinet")) + local inv = meta:get_inventory() + inv:set_size("main", 24) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", S("%s moves stuff in kitchen cabinet at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", S("%s moves stuff to kitchen cabinet at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", S("%s takes stuff from kitchen cabinet at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + }) +end + +minetest.register_node('homedecor:kitchen_cabinet_half', { + drawtype="nodebox", + description = S('Half-height Kitchen Cabinet (on ceiling)'), + tiles = { 'homedecor_kitchen_cabinet_sides.png', + 'homedecor_kitchen_cabinet_bottom.png', + 'homedecor_kitchen_cabinet_sides.png', + 'homedecor_kitchen_cabinet_sides.png', + 'homedecor_kitchen_cabinet_sides.png', + 'homedecor_kitchen_cabinet_front_half.png'}, + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = { -0.5, 0, -0.5, 0.5, 0.5, 0.5 } + }, + node_box = { + type = "fixed", + fixed = { -0.5, 0, -0.5, 0.5, 0.5, 0.5 } + }, + groups = { snappy = 3 }, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[8,7]".. + "list[current_name;main;1,0;6,2;]".. + "list[current_player;main;0,3;8,4;]") + meta:set_string("infotext", S("Kitchen Cabinet")) + local inv = meta:get_inventory() + inv:set_size("main", 12) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", S("%s moves stuff in kitchen cabinet at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", S("%s moves stuff to kitchen cabinet at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", S("%s takes stuff from kitchen cabinet at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, +}) + + +minetest.register_node('homedecor:kitchen_cabinet_with_sink', { + description = S("Kitchen Cabinet with sink"), + tiles = { 'homedecor_kitchen_cabinet_sinktop.png', + 'homedecor_kitchen_cabinet_bottom.png', + 'homedecor_kitchen_cabinet_sides.png', + 'homedecor_kitchen_cabinet_sides.png', + 'homedecor_kitchen_cabinet_sides.png', + 'homedecor_kitchen_cabinet_front.png'}, + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = { snappy = 3 }, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[8,7]".. + "list[current_name;main;0,0;8,2;]".. + "list[current_player;main;0,3;8,4;]") + meta:set_string("infotext", S("Under-sink cabinet")) + local inv = meta:get_inventory() + inv:set_size("main", 16) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", S("%s moves stuff in kitchen cabinet at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", S("%s moves stuff to kitchen cabinet at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", S("%s takes stuff from kitchen cabinet at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, +}) diff --git a/mods/homedecor_modpack/homedecor/laundry.lua b/mods/homedecor_modpack/homedecor/laundry.lua new file mode 100644 index 00000000..f26de99b --- /dev/null +++ b/mods/homedecor_modpack/homedecor/laundry.lua @@ -0,0 +1,56 @@ +-- laundry devices + +minetest.register_node("homedecor:washing_machine", { + description = "Washing Machine", + drawtype = "nodebox", + tiles = { + "homedecor_washing_machine_top.png", + "homedecor_washing_machine_bottom.png", + "homedecor_washing_machine_sides.png", + "homedecor_washing_machine_sides.png^[transformFX", + "homedecor_washing_machine_back.png", + "homedecor_washing_machine_front.png" + }, + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.375, 0.375}, + {-0.5, -0.5, 0.3125, 0.5, 0.5, 0.5}, + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 } + }, + groups = { snappy = 3 }, +}) + +minetest.register_node("homedecor:dryer", { + description = "Tumble dryer", + drawtype = "nodebox", + tiles = { + "homedecor_dryer_top.png", + "homedecor_dryer_bottom.png", + "homedecor_dryer_sides.png", + "homedecor_dryer_sides.png^[transformFX", + "homedecor_dryer_back.png", + "homedecor_dryer_front.png" + }, + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.375, 0.375}, + {-0.5, -0.5, 0.3125, 0.5, 0.5, 0.5}, + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 } + }, + groups = { snappy = 3 }, +}) + diff --git a/mods/homedecor_modpack/homedecor/lighting.lua b/mods/homedecor_modpack/homedecor/lighting.lua new file mode 100644 index 00000000..7bd358f7 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/lighting.lua @@ -0,0 +1,537 @@ + +-- This file supplies glowlights + +local dirs1 = { 20, 23, 22, 21 } +local dirs2 = { 9, 18, 7, 12 } + +local S = homedecor.gettext + +local colors = {"yellow","white"} + +for i in ipairs(colors) do + local color = colors[i] + + minetest.register_abm({ + nodenames = { "homedecor:glowlight_thin_"..color }, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + minetest.add_node(pos, {name = "homedecor:glowlight_quarter_"..color, param2 = 20}) + end, + }) + + minetest.register_abm({ + nodenames = { "homedecor:glowlight_thick_"..color }, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + minetest.add_node(pos, {name = "homedecor:glowlight_half_"..color, param2 = 20}) + end, + }) + + minetest.register_abm({ + nodenames = { "homedecor:glowlight_thin_"..color.."_wall" }, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local fdir = node.param2 or 0 + nfdir = dirs2[fdir+1] + minetest.add_node(pos, {name = "homedecor:glowlight_quarter_"..color, param2 = nfdir}) + end, + }) + + minetest.register_abm({ + nodenames = { "homedecor:glowlight_thick_"..color.."_wall" }, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local fdir = node.param2 or 0 + nfdir = dirs2[fdir+1] + minetest.add_node(pos, {name = "homedecor:glowlight_half_"..color, param2 = nfdir}) + end, + }) + + minetest.register_abm({ + nodenames = { "homedecor:glowlight_small_cube_"..color.."_ceiling" }, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + minetest.add_node(pos, {name = "homedecor:glowlight_small_cube_"..color, param2 = 20}) + end, + }) +end + +-- Yellow + +minetest.register_node('homedecor:glowlight_half_yellow', { + description = S("Yellow Glowlight (thick)"), + drawtype = "nodebox", + tiles = { + 'homedecor_glowlight_yellow_top.png', + 'homedecor_glowlight_yellow_bottom.png', + 'homedecor_glowlight_thick_yellow_sides.png', + 'homedecor_glowlight_thick_yellow_sides.png', + 'homedecor_glowlight_thick_yellow_sides.png', + 'homedecor_glowlight_thick_yellow_sides.png' + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 0, 0.5 } + }, + node_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 0, 0.5 } + }, + + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = { snappy = 3 }, + light_source = LIGHT_MAX, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node +}) + +minetest.register_node('homedecor:glowlight_quarter_yellow', { + description = S("Yellow Glowlight (thin)"), + drawtype = "nodebox", + tiles = { + 'homedecor_glowlight_yellow_top.png', + 'homedecor_glowlight_yellow_bottom.png', + 'homedecor_glowlight_thin_yellow_sides.png', + 'homedecor_glowlight_thin_yellow_sides.png', + 'homedecor_glowlight_thin_yellow_sides.png', + 'homedecor_glowlight_thin_yellow_sides.png' + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, -0.25, 0.5 } + }, + node_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, -0.25, 0.5 } + }, + + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = { snappy = 3 }, + light_source = LIGHT_MAX-1, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node +}) + +-- White + +minetest.register_node('homedecor:glowlight_half_white', { + description = S("White Glowlight (thick)"), + drawtype = "nodebox", + tiles = { + 'homedecor_glowlight_white_top.png', + 'homedecor_glowlight_white_bottom.png', + 'homedecor_glowlight_thick_white_sides.png', + 'homedecor_glowlight_thick_white_sides.png', + 'homedecor_glowlight_thick_white_sides.png', + 'homedecor_glowlight_thick_white_sides.png' + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 0, 0.5 } + }, + node_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 0, 0.5 } + }, + + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = { snappy = 3 }, + light_source = LIGHT_MAX, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node +}) + +minetest.register_node('homedecor:glowlight_quarter_white', { + description = S("White Glowlight (thin)"), + drawtype = "nodebox", + tiles = { + 'homedecor_glowlight_white_top.png', + 'homedecor_glowlight_white_bottom.png', + 'homedecor_glowlight_thin_white_sides.png', + 'homedecor_glowlight_thin_white_sides.png', + 'homedecor_glowlight_thin_white_sides.png', + 'homedecor_glowlight_thin_white_sides.png' + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, -0.25, 0.5 } + }, + node_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, -0.25, 0.5 } + }, + + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = { snappy = 3 }, + light_source = LIGHT_MAX-1, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node +}) + +-- Glowlight "cubes" + +minetest.register_node('homedecor:glowlight_small_cube_yellow', { + description = S("Yellow Glowlight (small cube)"), + drawtype = "nodebox", + tiles = { + 'homedecor_glowlight_cube_yellow_tb.png', + 'homedecor_glowlight_cube_yellow_tb.png', + 'homedecor_glowlight_cube_yellow_sides.png', + 'homedecor_glowlight_cube_yellow_sides.png', + 'homedecor_glowlight_cube_yellow_sides.png', + 'homedecor_glowlight_cube_yellow_sides.png' + }, + selection_box = { + type = "fixed", + fixed = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 } + }, + node_box = { + type = "fixed", + fixed = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 } + }, + + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = { snappy = 3 }, + light_source = LIGHT_MAX-1, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node +}) + +minetest.register_node('homedecor:glowlight_small_cube_white', { + description = S("White Glowlight (small cube)"), + drawtype = "nodebox", + tiles = { + 'homedecor_glowlight_cube_white_tb.png', + 'homedecor_glowlight_cube_white_tb.png', + 'homedecor_glowlight_cube_white_sides.png', + 'homedecor_glowlight_cube_white_sides.png', + 'homedecor_glowlight_cube_white_sides.png', + 'homedecor_glowlight_cube_white_sides.png' + }, + selection_box = { + type = "fixed", + fixed = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 } + }, + node_box = { + type = "fixed", + fixed = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 } + }, + + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = { snappy = 3 }, + light_source = LIGHT_MAX-1, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node +}) + +minetest.register_node("homedecor:plasma_lamp", { + description = "Plasma Lamp", + drawtype = "glasslike_framed", + tiles = {"homedecor_gold_block.png","homedecor_glass_face_clean.png"}, + special_tiles = { + { + name="homedecor_plasma_storm.png", + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0}, + } + }, +-- use_texture_alpha = true, + paramtype = "light", + light_source = LIGHT_MAX - 1, + sunlight_propagates = true, + groups = {cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults(), + after_place_node = function(pos, placer, itemstack, pointed_thing) + minetest.swap_node(pos, {name = "homedecor:plasma_lamp", param2 = 255}) + end +}) + +minetest.register_node('homedecor:candle', { + description = S("Thick Candle"), + drawtype = "nodebox", + tiles = { + 'homedecor_candle_top.png', + 'homedecor_candle_bottom.png', + {name="homedecor_candle_sides.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}}, + }, + node_box = { + type = "fixed", + fixed = { + { -0.125, -0.5, -0.125, 0.125, 0, 0.125 }, + { -0.125, 0, 0, 0.125, 0.5, 0 }, + { 0, 0, -0.125, 0, 0.5, 0.125 } + } + }, + selection_box = { + type = "fixed", + fixed = { + { -0.1875, -0.5, -0.1875, 0.1875, 0.5, 0.1875 }, + } + }, + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = { snappy = 3 }, + light_source = LIGHT_MAX-4, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node('homedecor:candle_thin', { + description = S("Little Candle"), + inventory_image = 'homedecor_candle_inv.png', + drawtype = "plantlike", + tiles = { + {name="homedecor_candle.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1.0}}, + }, + selection_box = { + type = "fixed", + fixed = { + { -0.1, -0.5, -0.1, 0.125, 0.05, 0.125 }, + } + }, + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + walkable = false, + groups = { snappy = 3 }, + light_source = LIGHT_MAX-4, +}) + +minetest.register_node('homedecor:oil_lamp', { + description = S("Oil lamp"), + drawtype = "plantlike", + tiles = { 'homedecor_oil_lamp.png' }, + inventory_image = 'homedecor_oil_lamp.png', + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = { + { -0.3, -0.5, -0.3, 0.3, 0.5, 0.3 }, + } + }, + groups = { snappy = 3 }, + light_source = LIGHT_MAX-4, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node('homedecor:wall_lantern', { + description = S("Wall lantern"), + drawtype = "plantlike", + tiles = { 'homedecor_wall_lantern.png' }, + inventory_image = 'homedecor_wall_lantern.png', + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = { + { -0.3, -0.5, -0.3, 0.3, 0.5, 0.3 }, + } + }, + groups = { snappy = 3 }, + light_source = LIGHT_MAX-4, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node('homedecor:lattice_lantern_large', { + description = S("Lattice lantern (large)"), + tiles = { 'homedecor_lattice_lantern_large.png' }, + sunlight_propagates = false, + paramtype = "light", + walkable = true, + groups = { snappy = 3 }, + light_source = LIGHT_MAX, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node('homedecor:lattice_lantern_small', { + description = S("Lattice lantern (small)"), + drawtype = "nodebox", + tiles = { + 'homedecor_lattice_lantern_small_tb.png', + 'homedecor_lattice_lantern_small_tb.png', + 'homedecor_lattice_lantern_small_sides.png' + }, + selection_box = { + type = "fixed", + fixed = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 } + }, + node_box = { + type = "fixed", + fixed = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 } + }, + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = { snappy = 3 }, + light_source = LIGHT_MAX-1, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node +}) + +local repl = { off="low", low="med", med="hi", hi="max", max="off", } +local lamp_colors = { "", "blue", "green", "pink", "red", "violet" } + +local function reg_lamp(suffix, nxt, tilesuffix, light, color) + local lampcolor = "_"..color + local standingcolor = "_"..color + local colordesc = " ("..color..")" + if color == "" then + lampcolor = "" + standingcolor = "_white" + colordesc = " (white)" + end + minetest.register_node("homedecor:table_lamp"..lampcolor.."_"..suffix, { + description = S("Table Lamp "..colordesc), + drawtype = "nodebox", + tiles = { + "forniture_table_lamp_s"..tilesuffix..".png", + "forniture_table_lamp_s"..tilesuffix..".png", + "forniture_table_lamp"..lampcolor.."_l"..tilesuffix..".png", + }, + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + { -0.1500, -0.500, -0.1500, 0.1500, -0.45, 0.1500 }, + { -0.0500, -0.450, -0.0500, 0.0500, -0.40, 0.0500 }, + { -0.0250, -0.400, -0.0250, 0.0250, -0.10, 0.0250 }, + { -0.0125, -0.125, -0.2000, 0.0125, -0.10, 0.2000 }, + { -0.2000, -0.125, -0.0125, 0.2000, -0.10, 0.0125 }, + { -0.2000, -0.100, -0.2000, -0.1750, 0.30, 0.2000 }, + { 0.1750, -0.100, -0.2000, 0.2000, 0.30, 0.2000 }, + { -0.1750, -0.100, -0.2000, 0.1750, 0.30, -0.1750 }, + { -0.1750, -0.100, 0.1750, 0.1750, 0.30, 0.2000 }, + }, + }, + walkable = false, + light_source = light, + selection_box = { + type = "fixed", + fixed = { -0.2, -0.5, -0.2, 0.2, 0.30, 0.2 }, + }, + groups = {cracky=2,oddly_breakable_by_hand=1, + not_in_creative_inventory=((light ~= nil) and 1) or nil, + }, + drop = "homedecor:table_lamp"..lampcolor.."_off", + on_punch = function(pos, node, puncher) + node.name = "homedecor:table_lamp"..lampcolor.."_"..repl[suffix] + minetest.set_node(pos, node) + nodeupdate(pos) + end, + }) + if lampcolor == "" then + minetest.register_alias("3dforniture:table_lamp_"..suffix, "homedecor:table_lamp_"..suffix) + end + + -- standing lamps + + minetest.register_node("homedecor:standing_lamp_bottom"..lampcolor.."_"..suffix, { + description = S("Standing Lamp"..colordesc), + drawtype = "nodebox", + tiles = { + "forniture_table_lamp_s"..tilesuffix..".png", + "homedecor_standing_lamp_bottom_sides.png", + }, + inventory_image = "homedecor_standing_lamp"..standingcolor.."_inv.png", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + { -0.1500, -0.500, -0.1500, 0.1500, -0.45, 0.1500 }, + { -0.0500, -0.450, -0.0500, 0.0500, -0.40, 0.0500 }, + { -0.0250, -0.400, -0.0250, 0.0250, 0.50, 0.0250 }, + }, + }, + walkable = false, + light_source = light, + selection_box = { + type = "fixed", + fixed = { 0, 0, 0, 0, 0, 0} + }, + groups = {cracky=2,oddly_breakable_by_hand=1, + not_in_creative_inventory=((light ~= nil) and 1) or nil, + }, + on_place = function(itemstack, placer, pointed_thing) + return homedecor.stack_vertically(itemstack, placer, pointed_thing, + "homedecor:standing_lamp_bottom"..lampcolor.."_"..suffix, "homedecor:standing_lamp_top"..lampcolor.."_"..suffix) + end, + }) + + minetest.register_node("homedecor:standing_lamp_top"..lampcolor.."_"..suffix, { + drawtype = "nodebox", + tiles = { + "forniture_table_lamp_s"..tilesuffix..".png", + "forniture_table_lamp_s"..tilesuffix..".png", + "forniture_standing_lamp"..lampcolor.."_l"..tilesuffix..".png" + }, + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + { -0.0250, -0.500, -0.0250, 0.0250, 0.10, 0.0250 }, + { -0.0125, 0.0625, -0.2000, 0.0125, 0.10, 0.2000 }, + { -0.2000, 0.0625, -0.0125, 0.2000, 0.10, 0.0125 }, + { -0.2000, 0.100, -0.2000, -0.1750, 0.50, 0.2000 }, + { 0.1750, 0.100, -0.2000, 0.2000, 0.50, 0.2000 }, + { -0.1750, 0.100, -0.2000, 0.1750, 0.50, -0.1750 }, + { -0.1750, 0.100, 0.1750, 0.1750, 0.50, 0.2000 }, + }, + }, + walkable = false, + light_source = light, + selection_box = { + type = "fixed", + fixed = { -0.2, -1.5, -0.2, 0.2, 0.5, 0.2 }, + }, + groups = {snappy=3, not_in_creative_inventory=1}, + on_punch = function(pos, node, puncher) + node.name = "homedecor:standing_lamp_top"..lampcolor.."_"..repl[suffix] + minetest.set_node(pos, node) + nodeupdate(pos) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local pos2 = { x = pos.x, y=pos.y - 1, z = pos.z } + if minetest.get_node(pos2).name == "homedecor:standing_lamp_bottom"..lampcolor.."_off" then + minetest.remove_node(pos2) + end + end, + drop = "homedecor:standing_lamp_bottom"..lampcolor.."_off" + }) +end + +for _, color in ipairs(lamp_colors) do + reg_lamp("off", "low", "", nil, color ) + reg_lamp("low", "med", "l", 3, color ) + reg_lamp("med", "hi", "m", 7, color ) + reg_lamp("hi", "max", "h", 11, color ) + reg_lamp("max", "off", "x", 14, color ) +end diff --git a/mods/homedecor_modpack/homedecor/listnodes.sh b/mods/homedecor_modpack/homedecor/listnodes.sh new file mode 100644 index 00000000..23320801 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/listnodes.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +echo "Node listing as of "`date` > nodes.txt + +for i in *.lua; do + echo -e "\nIn $i:\n" >> nodes.txt + cat $i | grep "minetest.register_node(" | \ + sed "s/minetest.register_node(.homedecor:/homedecor:/; s/., {//" | \ + sort >> nodes.txt +done + +less nodes.txt +rm -f nodes.txt diff --git a/mods/homedecor_modpack/homedecor/locale/de.txt b/mods/homedecor_modpack/homedecor/locale/de.txt new file mode 100644 index 00000000..3bc7324e --- /dev/null +++ b/mods/homedecor_modpack/homedecor/locale/de.txt @@ -0,0 +1,223 @@ +# Translation by Xanthin + +### Special strings ### + +### kitchen_cabinet.lua ### +Kitchen Cabinet = Kuechenschrank +## 1: Player name, 2: position +%s moves stuff in kitchen cabinet at %s = %s bewegt etwas im Kuechenschrank bei %s +%s moves stuff to kitchen cabinet at %s = %s legt etwas in den Kuechenschrank bei %s +%s takes stuff from kitchen cabinet at %s = %s nimmt etwas aus dem Kuechenschrank bei %s +Half-height Kitchen Cabinet (on ceiling) = Halbhoher Kuechenschrank (haengend) +Under-sink cabinet = Unterschrank +Kitchen Cabinet with sink = Unterschrank mit Spuele + +### door_models.lua ### +Mahogany Closet Door = Wandschranktuer aus Mahagoni +Oak Closet Door = Wandschranktuer aus Eiche +Fancy Wood/Glass Door = Schicke Holz/Glastuer +Glass Office Door = Glasbuerotuer +Glass and Wood, Mahogany-colored = Glas-Holz-Tuer, mahagonifarben +Glass and Wood, Oak-colored = Glas-Holz-Tuer, eichefarben +Glass and Wood, White = Glas-Holz-Tuer, weiss +Plain Wooden Door = Einfache Holztuer +left = links +right = rechts +## 1: Side the doors opens to +#deaktiviert, weil es nicht funktioniert +#(Top Half, %s-opening) = (obere Haelfte, %soeffnend) +#(%s-opening) = (%soeffnend) + + +### door_nodes.lua ### +Not enough space above that spot to place a door! = Es gibt nicht genug Raum ueber dieser Stelle um die Tuer zu platzieren! + +### crafts.lua ### +Brass Ingot = Messingbarren +Bucket of white paint = Eimer mit weisser Farbe +Legs for Small Utility table = Tischbeine fuer kleinen Arbeitsplatte +Plastic sheet = Kunststoffplatte +Silicon lump = Silikonklumpen +Simple Integrated Circuit = Einfacher integrierter Schaltkreis +Small Wooden Drawer = Kleiner Holzschubkasten +Terracotta Roof Tile = Terrakottadachziegel +Titanium Dioxide = Titandioxid +Uncooked Terracotta Base = Ungebrannte Terrakotta +Unprocessed Plastic base = Unverarbeitetes Plastik + +### door_models.lua ### + +### door_nodes.lua ### + +### fences.lua ### +Barbed Wire Fence = Stacheldrahtzaun +Barbed Wire Fence Corner = Stacheldrahtzaunecke +Barbed Wire Fence Gate = Stacheldrahtzauntor +Brass Fence/railing = Messingzaun/Gelaender +Brass Fence/railing with sign = Messingzaun/Gelaender mit Schild +Chainlink Fence = Maschendrahtzaun +Chainlink Fence Corner = Maschendrahtzaunecke +Chainlink Fence Gate = Maschendrahtzauntor +Unpainted Picket Fence = Unlackierter Lattenenzaun +Unpainted Picket Fence Corner = Unlackierte Lattenenzaunecke +Unpainted Picket Fence Gate = Unlackiertes Lattenzauntor +White Picket Fence = Weisser Lattenzaun +White Picket Fence Corner = Weisse Lattenzaunecke +White Picket Fence Gate = Weisses Lattenzauntor +Wooden Privacy Fence = Sichtschutzzaun aus Holz +Wooden Privacy Fence Corner = Sichtschutzzaunecke aus Holz +Wrought Iron Fence/railing = Schmiedeeiserner Zaun/Gelaender +Wrought Iron Fence/railing with sign = Schmiedeeiserner Zaun/Gelaender mit Schild +want to simply place the wielded item like usual. = Moechte einfach den getragenen Gegenstand wie gewohnt platzieren. + +### furniture.lua ### +Table = Tisch +Chair = Stuhl +Black = schwarz +Red = rot +Pink = rosa +Violet = violett +Blue = blau +Dark Green = dunkelgruen +## 1: Color name +Armchair (%s) = Sessel (%s) +Table Lamp = Tischlampe + +### furniture_medieval.lua ### +Bars = Gitterstaebe +Binding Bars = Eckverbindung fuer Gitterstaebe +Chains = Ketten +Wall Torch = Wandfackel + +### furniture_bathroom.lua ### +Toilet = Toilette +Sink = Waschbecken +Taps = Wasserhahn +Shower Tray = Duschtasse +Shower Head = Duschbrause + +### init.lua ### +Loaded! = Geladen! +Air Conditioner = Klimaanlage +Asphalt Shingles = Asphaltschindeln +Asphalt Shingles (outer corner) = Asphaltschindeln (Aussenecke) +Asphalt Shingles (inner corner) = Asphaltschindeln (Innenecke) +Black Plastic Flower Pot = Schwarzer Plastikblumentopf +Brass Pole = Messingstange +Brass Table Legs = Messingtischbeine +Wrought Iron Table Legs = Schmiedeeiserne Tischbeine +red = rot +green = gruen +blue = blau +white = weiss +pink = rosa +violet = violett +## 1: Color name +Curtains (%s) = Vorhaenge (%s) +Drop-Ceiling Tile = Deckenplatte +Glass Skylight = Glasdachfenster +Glass Skylight Frosted = Milchglasdachfenster +Glass Table (Small, Round) = Glastischplatte (klein, rund) +Glass Table (Small, Square) = Glastischplatte (klein, quadratisch) +Glass Table Piece (large) = Glastischplatte (gross) +Green Plastic Flower Pot = Gruener Plastikblumentopf +Large Area Rug = Grosser Teppich +Glass Table Piece (large) = Glastischplatte (gross) +Large Stereo Speaker = Grosser Lautsprecher +Legs for Utility Table = Tischbeine fuer Arbeitsplatte +Projection Screen Material = Projektorleinwand +Small Surround Speaker = Kleiner Lautsprecher +Small Throw Rug = Kleiner Teppich +Stereo Receiver = Stereoanlage +Terracotta Flower Pot = Terrakottablumentopf +Terracotta Shingles = Terrakottaschindeln +Terracotta Shingles (outer corner) = Terrakottaschindeln (Aussenecke) +Terracotta Shingles (inner corner) = Terrakottaschindeln (Innenecke) +Textured Ceiling Paint = Deckenfarbe (Raufaser) +Utility Table = Arbeitsplatte +Utility table mk2 = Arbeitsplatte Modell 2 +Wooden Shutter (Black) = Holzjalousie (schwarz) +Wooden Shutter (Dark grey) = Holzjalousie (dunkelgrau) +Wooden Shutter (Forest green) = Holzjalousie (waldgruen) +Wooden Shutter (Grey) = Holzjalousie (grau) +Wooden Shutter (Light blue) = Holzjalousie (hellblau) +Wooden Shutter (Violet) = Holzjalousie (violett) +Wooden Shutter (Red) = Holzjalousie (rot) +Wooden Shutter (Mahogany) = Holzjalousie (mahagoni) +Wooden Shutter (Unpainted oak) = Holzjalousie (eiche) +Wooden Shutter (White) = Holzjalousie (weiss) +Wooden Shutter (Yellow) = Holzjalousie (gelb) +Wood Table Piece (large)= Holztischplatte (gross) +Wood Table (Small, Round) = Holztischplatte (klein, rund) +Wood Table (Small, Square) = Holztischplatte (klein, quadratisch) +Wood Shingles = Holzschindeln +Wood Shingles (outer corner) = Holzschindeln (Aussenecke) +Wood Shingles (inner corner) = Holzschindeln (Innenecke) +Wrought Iron Pole = Schmiedeeiserne Stange +someone = jemand +## 1: Player name +Sorry, %s owns that spot. = Tut mir leid, %s gehoert diese Stelle. + +### lighting.lua ### +White Glowlight (small cube) = Weisse Gluehlampe (kleiner Wuerfel) +White Glowlight (small cube, on ceiling) = Weisse Gluehlampe (kleiner Wuerfel, an der Decke) +White Glowlight (thick) = Weisse Gluehlampe (dick) +White Glowlight (thick, on wall) = Weisse Gluehlampe (dick, an der Wand) +White Glowlight (thin) = Weisse Gluehlampe (duenn) +White Glowlight (thin, on wall) = Weisse Gluehlampe (duenn, an der Wand) +Yellow Glowlight (small cube) = Gelbe Gluehlampe (kleiner Wuerfel) +Yellow Glowlight (small cube, on ceiling) = Gelbe Gluehlampe (kleiner Wuerfel, an der Decke) +Yellow Glowlight (thick) = Gelbe Gluehlampe (dick) +Yellow Glowlight (thick, on wall) = Gelbe Gluehlampe (dick, an der Wand) +Yellow Glowlight (thin) = Gelbe Gluehlampe (duenn) +Yellow Glowlight (thin, on wall) = Gelbe Gluehlampe (duenn, an der Wand) + +### locked.lua ### +## 1: Item description, 2: Owner name +%s (owned by %s) = %s (gehoert %s) +## 1: Player name, 2: Item description, 3: Owner name, 4: Position +%s tried to access a %s belonging to %s at %s = %s versuchte Zugang zu %s von %s zu bekommen bei %s +## 1: Item description +%s (Locked) = %s (verschlossen) +Locked Fridge = Verschlossener Kuehlschrank +Locked Cabinet = Verschlossener Schrank +Locked Nightstand = Verschlossener Nachttisch +Locked Oven = Verschlossener Herd +Locked Oven (active) = Verschlossener Herd (aktiv) +Locked Microwave Oven = Verschlossene Mikrowelle +Locked Microwave Oven (active) = Verschlossene Mikrowelle (aktiv) + +### nightstands.lua ### +Mahogany Nightstand with One Drawer = Mahagoninachttisch mit einer Schublade +Mahogany Nightstand with Two Drawers = Mahagoninachttisch mit zwei Schubladen +Oak Nightstand with One Drawer = Eichenachttisch mit einer Schublade +Oak Nightstand with Two Drawers = Eichenachttisch mit zwei Schubladen +## 1: Player name, 2: position +%s moves stuff in nightstand at %s = %s bewegt etwas im Nachttisch +%s moves stuff to nightstand at %s = %s legt etwas in den Nachttisch +%s takes stuff from nightstand at %s = %s nimmt etwas aus dem Nachttisch +One-drawer Nightstand = Nachttisch mit einer Schublade +Two-drawer Nightstand = Nachttisch mit zwei Schubladen + +### oven.lua ### +Oven = Herd +Microwave Oven = Mikrowelle +## 1: Item descrition +Could not insert '%s' = Kann '%s' nicht einfuegen +## 1: Item description, 2: Percentage +%s active: %d%% = %s ist aktiv: %d%% +## 1: Item description +%s is empty = %s ist leer +: Out of fuel = : kein Brennmaterial vorhanden +: output bins are full = : Produktfelder sind voll + +### refrigerator.lua ### +Refrigerator = Kuehlschrank +## 1: Player name, 2: position +%s moves stuff in refrigerator at %s = %s bewegt etwas im Kuehlschrank bei %s +%s moves stuff to refrigerator at %s = %s legt etwas in den Kuehlschrank bei %s +%s takes stuff from refrigerator at %s = %s nimmt etwas aus dem Kuehlschrank bei %s +Not enough vertical space to place a refrigerator! = Es gibt nicht genug Raum ueber dieser Stelle um den Kuehlschrank zu platzieren! + +### television.lua ### +Small CRT Television = Kleiner Roehrenfernseher diff --git a/mods/homedecor_modpack/homedecor/locale/es.txt b/mods/homedecor_modpack/homedecor/locale/es.txt new file mode 100644 index 00000000..0baac0ba --- /dev/null +++ b/mods/homedecor_modpack/homedecor/locale/es.txt @@ -0,0 +1,194 @@ + +# +# Language: Español +# Author: Diego Martínez +# + +### kitchen_cabinet.lua ### +Kitchen Cabinet = Gabinete de Cocina +## 1: Player name, 2: position +%s moves stuff in kitchen cabinet at %s = %s mueve cosas en gabinete de cocina en %s +%s moves stuff to kitchen cabinet at %s = %s mueve cosas al gabinete de cocina en %s +%s takes stuff from kitchen cabinet at %s = %s toma cosas del gabinete de cocina en %s +Half-height Kitchen Cabinet (on ceiling) = Gabinete de cocina de media altura (en techo) +Under-sink cabinet = Gabinete con Lavabo +Kitchen Cabinet with sink = Gabinete de cocina con lavabo + +### door_models.lua ### +Mahogany Closet Door = Puerta de Armario de Caoba +Oak Closet Door = Puerta de Armario de Roble +Fancy Wood/Glass Door = Puerta de Madera y Cristal de Lujo +Glass Office Door = Puerta de Oficina de Cristal +Glass and Wood, Mahogany-colored = Cristal y Madera, color Caoba +Glass and Wood, Oak-colored = Cristal y Madera, color Roble +Glass and Wood, White = Cristal y Madera, color Blanco +Plain Wooden Door = Puerta Simple de Madera +left = izquierda +right = derecha +## 1: Side the doors opens to +(Top Half, %s-opening) = (Parte Superior, abre a la %s) +(%s-opening) = (abre a la %s) + +### door_nodes.lua ### +Not enough vertical space to place a door! = ¡No hay suficiente espacio vertical para colocar una puerta! + +### crafts.lua ### +Brass Ingot = Lingote de Latón +Bucket of white paint = Cubo de Pintura Blanca +Legs for Small Utility table = Patas de Mesa Utilitaria Pequeña +Plastic sheet = Lámina de Plástico +Silicon lump = Terrón de Silicio +Simple Integrated Circuit = Circuito Integrado Simple +Small Wooden Drawer = Cajón Pequeño de Madera +Terracotta Roof Tile = Teja de Terracota +Titanium Dioxide = Dióxido de Titanio +Uncooked Terracotta Base = Base de Terracota sin Cocer +Unprocessed Plastic base = Base de Plástico sin Procesar + +### fences.lua ### +Barbed Wire Fence = Cerca de Alambre de Púas +Barbed Wire Fence Gate = Portón de Cerca de Alambre de Púas +Brass Fence/railing = Cerca/Barandilla de Latón +Brass Fence/railing with sign = Cerca/Barandilla de Latón con Letrero +Chainlink Fence = Cerca de Cadenas +Chainlink Fence Gate = Portón de Cerca de Cadenas +Chainlink Fence Gate (open) = Portón de Cerca de Cadenas (Abierto) +Unpainted Picket Fence = Cerca de Piquete sin pintar +Unpainted Picket Fence Gate = Portón de Cerca de Piquete sin pintar +White Picket Fence = Cerca de Piquete blanca +White Picket Fence Gate = Portón de Cerca de Piquete blanca +Wooden Privacy Fence = Cerca privada de madera +Wrought Iron Fence/railing = Cerca/Barandilla de Hierro Forjado +Wrought Iron Fence/railing with sign = Cerca/Barandilla de Hierro Forjado con Letrero +want to simply place the wielded item like usual. = solo se desea colocar el objeto empuñado normalmente. + +### furniture_medieval.lua ### +Bars = Barras +Binding Bars = Barras de Unión +Chains = Cadenas +Wall Torch = Antorcha de Pared + +### furniture_bathroom.lua ### +Toilet = Inodoro +Sink = Lavabo +Taps = Grifo +Shower Tray = Piso de Ducha +Shower Head = Ducha + +### init.lua ### +Loaded! = ¡Cargado! +Asphalt Shingles = Tejas de Asfalto +Black Plastic Flower Pot = Florero de Plástico Negro +Brass Pole = Poste de Latón +Brass Table Legs = Patas de Mesa de Latón +red = rojas +green = verdes +blue = azules +white = blancas +pink = rosas +violet = violetas +## 1: Color name +Curtains (%s) = Cortinas (%s) +Drop-Ceiling Tile = Cielorraso +Glass Skylight = Claraboya de Cristal +Glass Table (Small, Round) = Mesa de Cristal (Pequeña, Redonda) +Glass Table (Small, Square) = Mesa de Cristal (Pequeña, Cuadrada) +Green Plastic Flower Pot = Florero de Plástico Negro +Large Area Rug = Manta Grande +Large Glass Table Piece = Pieza de Mesa de Cristal Grande +Large Stereo Speaker = Altavoz de Estéreo Grande +Legs for Utility Table = Patas de Mesa Utilitaria +Projection Screen Material = Material de Pantalla de Proyección +Small Surround Speaker = Pequeño Altavoz Envolvente +Small Throw Rug = Manta Pequeña +Stereo Receiver = Receptor Estéreo +Terracotta Flower Pot = Florero de Terracota +Terracotta Roofing = Tejado de Terracota +Textured Ceiling Paint = Pintura Texturada para Techo +Utility Table = Mesa Utilitaria +Utility table mk2 = Mesa Utilitaria mk2 +Wooden Shutter (Black) = Obturador de Madera (Negro) +Wooden Shutter (Dark Grey) = Obturador de Madera (Gris Oscuro) +Wooden Shutter (Forest Green) = Obturador de Madera (Verde Bosque) +Wooden Shutter (Grey) = Obturador de Madera (Gris) +Wooden Shutter (Light Blue) = Obturador de Madera (Azul Claro) +Wooden Shutter (Purple) = Obturador de Madera (Púrpura) +Wooden Shutter (Red) = Obturador de Madera (Rojo) +Wooden Shutter (Unpainted Mahogany) = Obturador de Madera (Caoba sin Pintar) +Wooden Shutter (Unpainted Oak) = Obturador de Madera (Roble sin Pintar) +Wooden Shutter (White) = Obturador de Madera (Blanco) +Wooden Shutter (Yellow) = Obturador de Madera (Amarillo) +Wooden Tabletop piece = Pieza de Mesa de Madera +Wooden Tabletop (Small, Round) = Pieza de Mesa de Madera (Pequeña, Redonda) +Wooden Tabletop (Small, Square) = Pieza de Mesa de Madera (Pequeña, Cuadrada) +Wood Shingles = Tejas de Madera +Wrought Iron Pole = Poste de Hierro Forjado +someone = alguien +## 1: Player name +Sorry, %s owns that spot. = Lo siento, %s es dueño de ése lugar. + +### lighting.lua ### +White Glowlight (small cube) = Luz Blanca (cubo pequeño) +White Glowlight (small cube, on ceiling) = Luz Blanca (cubo pequeño, en techo) +White Glowlight (thick) = Luz Blanca (Gruesa) +White Glowlight (thick, on wall) = Luz Blanca (Gruesa, en pared) +White Glowlight (thin) = Luz Blanca (Fina) +White Glowlight (thin, on wall) = Luz Blanca (Fina, en pared) +Yellow Glowlight (small cube) = Luz Amarilla (cubo pequeño) +Yellow Glowlight (small cube, on ceiling) = Luz Amarilla (cubo pequeño, en techo) +Yellow Glowlight (thick) = Luz Amarilla (Gruesa) +Yellow Glowlight (thick, on wall) = Luz Amarilla (Gruesa, en pared) +Yellow Glowlight (thin) = Luz Amarilla (Fina) +Yellow Glowlight (thin, on wall) = Luz Amarilla (Fina, en pared) + +### locked.lua ### +## 1: Item description, 2: Owner name +%s (owned by %s) = %s (propiedad de %s) +## 1: Player name, 2: Item description, 3: Owner name, 4: Position +%s tried to access a %s belonging to %s at %s = %s ha intentado acceder un(a) %s propiedad de %s en %s +## 1: Item description +%s (Locked) = %s (Cerrado) +Locked Cabinet = Gabinete Cerrado +Locked Nightstand = Mesa de Noche Cerrada +Locked Fridge = Refri Cerrado +Locked Oven = Estufa Cerrada + +### nightstands.lua ### +Mahogany Nightstand with One Drawer = Mesa de Noche de Caoba, un Cajón +Mahogany Nightstand with Two Drawers = Mesa de Noche de Caoba, dos Cajones +Oak Nightstand with One Drawer = Mesa de Noche de Roble, un Cajón +Oak Nightstand with Two Drawers = Mesa de Noche de Roble, dos Cajones +## 1: Player name, 2: position +%s moves stuff in nightstand at %s = %s mueve cosas en mesa de noche en %s +%s moves stuff to nightstand at %s = %s mueve cosas hacia mesa de noche en %s +%s takes stuff from nightstand at %s = %s mueve cosas desde mesa de noche en %s +One-drawer Nightstand = Mesa de Noche de un Cajón +Two-drawer Nightstand = Mesa de Noche de dos Cajones + +### oven.lua ### +Oven = Estufa +## 1: Item name +Could not insert '%s' = No se pudo insertar '%s' +## 1: Percentage +Oven active: %d%% = Estufa activa: %d%% +Oven out of fuel = Estufa sin combustible +Oven is empty = Estufavacía + +### refrigerator.lua ### +Refrigerator = Refrigerador +## 1: Player name, 2: position +%s moves stuff in refrigerator at %s = %s mueve cosas en refrigerador en %s +%s moves stuff to refrigerator at %s = %s mueve cosas hacia refrigerador en %s +%s takes stuff from refrigerator at %s = %s mueve cosas desde refrigerador en %s +Not enough vertical space to place a refrigerator! = ¡No hay suficiente espacio vertical para colocar un refrigerador! + +### television.lua ### +Small CRT Television = Pequeña Televisión CRT + +### signs_lib.lua ### +%s wrote "%s" to sign at %s = %s ha escrito "%s" en el letrero en %s +Reading cached character database. = Leyendo base de datos de catacteres. +Font seems to have changed. Rebuilding cache. = La fuente parece haber cambiado. Reconstruyendo información guardada. +Could not find font line height in cached DB. Trying brute force. = No se pudo encontrar la altura de línea en la base de datos. Intentando con fuerza bruta. +Registered %s and %s = Registrados %s y %s +signs loaded = letreros cargados diff --git a/mods/homedecor_modpack/homedecor/locale/fr.txt b/mods/homedecor_modpack/homedecor/locale/fr.txt new file mode 100644 index 00000000..2a17a282 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/locale/fr.txt @@ -0,0 +1,180 @@ + +# +# Language: Français +# Author: Calinou +# + +### kitchen_cabinet.lua ### +Kitchen Cabinet = Meuble de cuisine +## 1: Player name, 2: position +%s moves stuff in kitchen cabinet at %s = %s déplace des objets dans un meuble de cuisine à %s +%s moves stuff to kitchen cabinet at %s = %s édplace des objets vers un meuble de cuisine à %s +%s takes stuff from kitchen cabinet at %s = %s prend des objets d'un meuble de cuisine à %s +Half-height Kitchen Cabinet (on ceiling) = Meuble de cuisine réduit en hauteur (sur le plafond) +Under-sink cabinet = Meuble sous évier +Kitchen Cabinet with sink = Meuble de cuisine avec lavabo + +### door_models.lua ### +Mahogany Closet Door = Porte en bois d'acajou +Oak Closet Door = Porte en bois de chêne +Fancy Wood/Glass Door = Porte artistique en bois et verre +Glass Office Door = Porte en verre +Glass and Wood, Mahogany-colored = Porte couleur acajou en bois et verre +Glass and Wood, Oak-colored = Porte couleur chêne en bois et verre +Glass and Wood, White = Porte blanche en bois et verre +Plain Wooden Door = Porte en bois simple +left = gauche +right = droite +## 1: Side the doors opens to +(Top Half, %s-opening) = (partie supérieur, charnière à %s) +(%s-opening) = (charnière à %s) + +### door_nodes.lua ### +Not enough vertical space to place a door! = Pas assez d'espace vertical pour placer une porte ! + +### crafts.lua ### +Brass Ingot = Lingot de laiton +Bucket of white paint = Seau de peinture blanche +Legs for Small Utility table = Pieds pour table basse +Plastic sheet = Bout de plastique +Silicon lump = Silicone +Simple Integrated Circuit = Circuit intégré simple +Small Wooden Drawer = Petit tiroir en bois +Terracotta Roof Tile = Tuile de toit en terre cuite +Titanium Dioxide = Dioxide de titane +Uncooked Terracotta Base = Base de terre non cuite +Unprocessed Plastic base = Base de plastique non transformée + +### fences.lua ### +Barbed Wire Fence = Barrière en fil barbelé +Barbed Wire Fence Gate = Porte de barrière en fil barbelé +Brass Fence/railing = Barrière en laiton +Brass Fence/railing with sign = Barrière en laiton avec pancarte +Chainlink Fence = Grillage +Chainlink Fence Gate = Porte de grillage +Chainlink Fence Gate (open) = Porte de grillage (ouverte) +Unpainted Picket Fence = Barrière en piquets non peinte +Unpainted Picket Fence Gate = Porte de barrière en piquets non peinte +White Picket Fence = Barrière en piquets blanche +White Picket Fence Gate = Porte de barrière en piquets blanche +Wooden Privacy Fence = Barrière en bois +Wrought Iron Fence/railing = Barrière en fer forgé +Wrought Iron Fence/railing with sign = Barrière en fer forgé avec pancarte +want to simply place the wielded item like usual. = veut simplement placer l'objet comme d'habitude. + +### init.lua ### +Loaded! = Chargé ! +Asphalt Shingles = Bardeaux d'asphalte +Black Plastic Flower Pot = Pot de fleur en plastique noir +Brass Pole = Barre en laiton +Brass Table Legs = Pieds de table en laiton +red = rouges +green = vertes +blue = bleues +white = blanches +pink = roses +violet = violettes +## 1: Color name +Curtains (%s) = Volets (%s) +Drop-Ceiling Tile = Dalle suspendue au plafond +Glass Skylight = Verre +Glass Table (Small, Round) = Table en verre (petite, ronde) +Glass Table (Small, Square) = Table en verre (petite, carrée) +Green Plastic Flower Pot = Pot de fleur en plastique vert +Large Area Rug = Grande couverture +Large Glass Table Piece = Grand bout de verre de table +Large Stereo Speaker = Grand haut-parleur stéréo +Legs for Utility Table = Pieds pour table basse +Projection Screen Material = Matériel pour projecteur +Small Surround Speaker = Petit haut-parleur surround +Small Throw Rug = Petite couverture +Stereo Receiver = Récepteur stéréo +Terracotta Flower Pot = Pot de fleur en terre cuite +Terracotta Roofing = Tuile en terre cuite +Textured Ceiling Paint = Papier peint avec motif pour plafond +Utility Table = Table basse +Utility table mk2 = Table basse MK2 +Wooden Shutter (Black) = Volet en bois (noir) +Wooden Shutter (Dark Grey) = Volet en bois (gris foncé) +Wooden Shutter (Forest Green) = Volet en bois (vert foncé) +Wooden Shutter (Grey) = Volet en bois (gris) +Wooden Shutter (Light Blue) = Volet en bois (bleu clair) +Wooden Shutter (Purple) = Volet en bois (violet) +Wooden Shutter (Red) = Volet en bois (rouge) +Wooden Shutter (Unpainted Mahogany) = Volet en bois (acajou non peint) +Wooden Shutter (Unpainted Oak) = Volet en bois (chêne non peint) +Wooden Shutter (White) = Volet en bois (blanc) +Wooden Shutter (Yellow) = Volet en bois (jaune) +Wooden Tabletop piece = Bout de dessus de table +Wooden Tabletop (Small, Round) = Dessus de table (petit, rond) +Wooden Tabletop (Small, Square) = Dessus de table (petit, carré) +Wood Shingles = Bardeaux de bois +Wrought Iron Pole = Barre de fer forgé +someone = quelqu'un +## 1: Player name +Sorry, %s owns that spot. = Désolé, %s est propriétaire de cette zone. + +### lighting.lua ### +White Glowlight (small cube) = Lampe blanche (petit cube) +White Glowlight (small cube, on ceiling) = Lampe blanche (petit cube, sur le plafond) +White Glowlight (thick) = Lampe blanche (épaisse) +White Glowlight (thick, on wall) = Lampe blanche (épaisse, sur le mur) +White Glowlight (thin) = Lampe blanche (fine) +White Glowlight (thin, on wall) = Lampe blanche (fine, sur le mur) +Yellow Glowlight (small cube) = Lampe jaune (petit cube) +Yellow Glowlight (small cube, on ceiling) = Lampe jaune (petit cube, sur le plafond) +Yellow Glowlight (thick) = Lampe jaune (épaisse) +Yellow Glowlight (thick, on wall) = Lampe jaune (épaisse, sur le mur) +Yellow Glowlight (thin) = Lampe jaune (fine) +Yellow Glowlight (thin, on wall) = Lampe jaune (fine, sur le mur) + +### locked.lua ### +## 1: Item description, 2: Owner name +%s (owned by %s) = %s (propriété de %s) +## 1: Player name, 2: Item description, 3: Owner name, 4: Position +%s tried to access a %s belonging to %s at %s = %s a essayé d'accéder à %s qui est propriété de %s à %s +## 1: Item description +%s (Locked) = %s (verrouillé) +Locked Cabinet = Meuble verrouillé +Locked Nightstand = Table de chevet verrouillée +Locked Fridge = Réfrégirateur verrouillé +Locked Oven = Four verrouillé + +### nightstands.lua ### +Mahogany Nightstand with One Drawer = Table de chevet en acajou avec un tiroir +Mahogany Nightstand with Two Drawers = Table de chevet en acajou avec deux tiroirs +Oak Nightstand with One Drawer = Table de chevet en chêne avec un tiroir +Oak Nightstand with Two Drawers = Table de chevet en chêne avec deux tiroirs +## 1: Player name, 2: position +%s moves stuff in nightstand at %s = %s déplace des objets dans une table de chevet à %s +%s moves stuff to nightstand at %s = %s déplace des objets vers une table de chevet à %s +%s takes stuff from nightstand at %s = %s prend des objets d'une table de chevet à %s +One-drawer Nightstand = Table de chevet avec un tiroir +Two-drawer Nightstand = Table de chevet avec deux tiroirs + +### oven.lua ### +Oven = Four +## 1: Item name +Could not insert '%s' = Ne peut insérer '%s' +## 1: Percentage +Oven active: %d%% = Four actif : %d%% +Oven out of fuel = Four sans carburant +Oven is empty = Four vide + +### refrigerator.lua ### +Refrigerator = Réfrégirateur +## 1: Player name, 2: position +%s moves stuff in refrigerator at %s = %s déplace des objets dans un réfrégirateur à %s +%s moves stuff to refrigerator at %s = %s déplace des objets vers un réfrégirateur à %s +%s takes stuff from refrigerator at %s = %s prend des objets d'un réfrégirateur à %s +Not enough vertical space to place a refrigerator! = Pas assez d'espace vertical pour placer un réfrégirateur ! + +### television.lua ### +Small CRT Television = Petite télévision à tube cathodique + +### signs_lib.lua ### +E: character map file not found = E: fichier de table de caractère non trouvé +## 1: Full String, 2: pos in string, 3: current char at pos +W: unknown symbol in '%s' at %d (probably %s) = A: symbole inconnu dans '%s' dans %d (probablement %s) +%s wrote "%s" to sign at %s = +signs loaded = diff --git a/mods/homedecor_modpack/homedecor/locale/pt.txt b/mods/homedecor_modpack/homedecor/locale/pt.txt new file mode 100644 index 00000000..bd8e4351 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/locale/pt.txt @@ -0,0 +1,198 @@ + +# Brazilian Portuguese translation of homedecor +# Last update: 2013/11/10 +# Last translator: Aracnus + +### Special strings ### + +### kitchen_cabinet.lua ### +Kitchen Cabinet = Armário de cozinha +## 1: Player name, 2: position +%s moves stuff in kitchen cabinet at %s = %s moveu itens no armário de cozinha em %s +%s moves stuff to kitchen cabinet at %s = %s moveu itens para o armário de cozinha em %s +%s takes stuff from kitchen cabinet at %s = %s retirou itens do armário de cozinha em %s +Half-height Kitchen Cabinet (on ceiling) = Meio armário de cozinha (no teto) +Under-sink cabinet = Armário sob a pia +Kitchen Cabinet with sink = Armário de cozinha com pia + +### door_models.lua ### +Mahogany Closet Door = Porta do armário de mogno +Oak Closet Door = Porta do armário de carvalho +Fancy Wood/Glass Door = Porta de madeira/vidro trabalhada +Glass Office Door = Porta de escritório de vidro +Glass and Wood, Mahogany-colored = Vidro e madeira (mogno) +Glass and Wood, Oak-colored = Vidro e madeira (carvalho) +Glass and Wood, White = Vidro e madeira (branca) +Plain Wooden Door = Porta de madeira simples +left = esquerda +right = direita +## 1: Side the doors opens to +(Top Half, %s-opening) = (Metade superior, abre para %s) +(%s-opening) = (abre para %s) + + +### door_nodes.lua ### +Not enough vertical space to place a door! = Não existe espaço vertical suficiente para colocar uma porta. + +### crafts.lua ### +Brass Ingot = Lingote de bronze +Bucket of white paint = Balde de tinta branca +Legs for Small Utility table = Pernas para mesa pequena +Plastic sheet = Folha de plástico +Silicon lump = Massa de silício +Simple Integrated Circuit = Circuito integrado simples +Small Wooden Drawer = Gaveta pequena de madeira +Terracotta Roof Tile = Telha de terracota +Titanium Dioxide = Dióxido de titânio +Uncooked Terracotta Base = Base bruta de terracota +Unprocessed Plastic base = Base de plástico não processada + +### door_models.lua ### + +### door_nodes.lua ### + +### fences.lua ### +Barbed Wire Fence = Cerca de arame farpado +Barbed Wire Fence Gate = Portão da cerca de arame farpado +Brass Fence/railing = Cerca/corrimão de bronze +Brass Fence/railing with sign = Cerca/corrimão de bronze, com placa +Chainlink Fence = Cerca de tela de arame +Chainlink Fence Gate = Portão da cerca de tela de arame +Chainlink Fence Gate (open) = Portão da cerca de tela de arame (aberto) +Unpainted Picket Fence = Cerca de tábuas não pintada +Unpainted Picket Fence Gate = Portão da cerca de madeira não pintado +White Picket Fence = Cerca de madeira branca +White Picket Fence Gate = Portão da cerca de madeira branco +Wooden Privacy Fence = Cerca fechada de mandeira +Wrought Iron Fence/railing = Cerca/corrimão de ferro forjado +Wrought Iron Fence/railing with sign = Cerca/corrimão de ferro forjado, com placa +want to simply place the wielded item like usual. = quer somente colocar o item empunhado normalmente. + +### furniture_medieval.lua ### +Bars = Barras +Binding Bars = Barras do canto +Chains = Correntes +Wall Torch = Tocha de parede + +### furniture_bathroom.lua ### +Toilet = Vaso sanitário +Sink = Pia +Taps = Torneira +Shower Tray = Ralo do chuveiro +Shower Head = Chuveiro + +### init.lua ### +Loaded! = Carregado! +Asphalt Shingles = Telhas de asfalto +Black Plastic Flower Pot = Vaso de flor de plástico preto +Brass Pole = Poste de bronze +Brass Table Legs = Pernas da mesa de bronze +red = vermelho +green = verde +blue = azul +white = branco +pink = rosa +violet = violeta +## 1: Color name +Curtains (%s) = Cortina (%s) +Drop-Ceiling Tile = Placa de teto +Glass Skylight = Claraboia de vidro +Glass Table (Small, Round) = Mesa de vidro (pequena, redonda) +Glass Table (Small, Square) = Mesa de vidro (pequena, quadrada) +Green Plastic Flower Pot = Vaso de flor de plástico verde +Large Area Rug = Tapete grande +Large Glass Table Piece = Pedaço da mesa grande de vidro +Large Stereo Speaker = Auto-falante grande +Legs for Utility Table = Pernas para mesa +Projection Screen Material = Material de tela de projeção +Small Surround Speaker = Auto-falante pequeno +Small Throw Rug = Tapete pequeno +Stereo Receiver = Aparelho de som +Terracotta Flower Pot = Vaso de flor de terracota +Terracotta Roofing = Telhado de terracota +Textured Ceiling Paint = Pintura texturizada do teto +Utility Table = Mesa de trabalho +Utility table mk2 = Mesa de trabalho mk2 +Wooden Shutter (Black) = Persiana de madeira (preta) +Wooden Shutter (Dark Grey) = Persiana de madeira (cinza escura) +Wooden Shutter (Forest Green) = Persiana de madeira (verde) +Wooden Shutter (Grey) = Persiana de madeira (cinza) +Wooden Shutter (Light Blue) = Persiana de madeira (azul clara) +Wooden Shutter (Purple) = Persiana de madeira (roxa) +Wooden Shutter (Red) = Persiana de madeira (vermelha) +Wooden Shutter (Unpainted Mahogany) = Persiana de madeira (mogno) +Wooden Shutter (Unpainted Oak) = Persiana de madeira (carvalho) +Wooden Shutter (White) = Persiana de madeira (branca) +Wooden Shutter (Yellow) = Persiana de madeira (amarela) +Wooden Tabletop piece = Pedaço do tampo da mesa +Wooden Tabletop (Small, Round) = Tampo da mesa (pequeno, arredondado) +Wooden Tabletop (Small, Square) = Tampo da mesa (pequeno, quadrado) +Wood Shingles = Telhas de madeira +Wrought Iron Pole = Poste de ferro forjado +someone = alguém +## 1: Player name +Sorry, %s owns that spot. = Desculpe, mas esse local pertence a %s. + +### lighting.lua ### +White Glowlight (small cube) = Arandela branca (cubo pequeno) +White Glowlight (small cube, on ceiling) = Arandela branca (cubo pequeno, na parede) +White Glowlight (thick) = Arandela branca (grossa) +White Glowlight (thick, on wall) = Arandela branca (grossa, na parede) +White Glowlight (thin) = Arandela branca (fina) +White Glowlight (thin, on wall) = Arandela branca (fina, na parede) +Yellow Glowlight (small cube) = Arandela amarela (cubo pequeno) +Yellow Glowlight (small cube, on ceiling) = Arandela amarela (cubo pequeno, na parede) +Yellow Glowlight (thick) = Arandela amarela (grossa) +Yellow Glowlight (thick, on wall) = Arandela amarela (grossa, na parede) +Yellow Glowlight (thin) = Arandela amarela (fina) +Yellow Glowlight (thin, on wall) = Arandela amarela (fina, na parede) + +### locked.lua ### +## 1: Item description, 2: Owner name +%s (owned by %s) = %s (pertence a %s) +## 1: Player name, 2: Item description, 3: Owner name, 4: Position +%s tried to access a %s belonging to %s at %s = %s tentou acessar %s pertencente a %s em %s +## 1: Item description +%s (Locked) = %s (trancado) +Locked Cabinet = Armário trancado +Locked Nightstand = Criado-mudo trancado + +### nightstands.lua ### +Mahogany Nightstand with One Drawer = Criado-mudo de mogno, com uma gaveta +Mahogany Nightstand with Two Drawers = Criado-mudo de mogno, com duas gavetas +Oak Nightstand with One Drawer = Criado-mudo de carvalho, com uma gaveta +Oak Nightstand with Two Drawers = Criado-mudo de carvalho, com duas gavetas +## 1: Player name, 2: position +%s moves stuff in nightstand at %s = %s moveu item(ns) no criado-mudo em %s +%s moves stuff to nightstand at %s = %s moveu item(ns) para o criado-mudo em %s +%s takes stuff from nightstand at %s = %s tirou item(ns) do criado-mudo em %s +One-drawer Nightstand = Criado-mudo com uma gaveta +Two-drawer Nightstand = Criado-mudo com duas gavetas + +### oven.lua ### +Oven = Forno +## 1: Item name +Could not insert '%s' = Não foi possível inserir '%s' +## 1: Percentage +Oven active: %d%% = Forno ativo: %d%% +Oven out of fuel = O forno está sem combustível +Oven is empty = O forno está vazio + +### refrigerator.lua ### +Refrigerator = Geladeira +## 1: Player name, 2: position +%s moves stuff in refrigerator at %s = %s moveu item(ns) na geladeira em %s +%s moves stuff to refrigerator at %s = %s moveu item(ns) para a geladeira em %s +%s takes stuff from refrigerator at %s = %s tirou item(ns) da geladeira em %s +Not enough vertical space to place a refrigerator! = Não existe espaço vertical suficiente para adicionar uma geladeira. + +### television.lua ### +Small CRT Television = TV de tubo pequena + +### signs_lib.lua ### +%s wrote "%s" to sign at %s = %s escreveu "%s" na placa em %s +Reading cached character database. = Lendo banco de dados de caracteres no cache. +Font seems to have changed. Rebuilding cache. = Aparentemente as fontes foram alteradas. Reconstruindo o cache. +Could not find font line height in cached DB. Trying brute force. = Não foi possível encontrar a altura da linha da fonte no cache do BD. Tentando na marra. +Registered %s and %s = %s e %s registrados +signs loaded = placas carregadas diff --git a/mods/homedecor_modpack/homedecor/locale/template.txt b/mods/homedecor_modpack/homedecor/locale/template.txt new file mode 100644 index 00000000..76433a19 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/locale/template.txt @@ -0,0 +1,232 @@ +########################## +# Template language file # +########################## + +### Special strings ### + +### kitchen_cabinet.lua ### +Kitchen Cabinet = +## 1: Player name, 2: position +%s moves stuff in kitchen cabinet at %s = +%s moves stuff to kitchen cabinet at %s = +%s takes stuff from kitchen cabinet at %s = +Half-height Kitchen Cabinet (on ceiling) = +Under-sink cabinet = +Kitchen Cabinet with sink = + +### door_models.lua ### +Mahogany Closet Door = +Oak Closet Door = +Fancy Wood/Glass Door = +Glass Office Door = +Glass and Wood, Mahogany-colored = +Glass and Wood, Oak-colored = +Glass and Wood, White = +Plain Wooden Door = +left = +right = +## 1: Side the doors opens to +(Top Half, %s-opening) = +(%s-opening) = + + +### door_nodes.lua ### +Not enough space above that spot to place a door! = + +### crafts.lua ### +Brass Ingot = +Bucket of white paint = +Legs for Small Utility table = +Plastic sheet = +Silicon lump = +Simple Integrated Circuit = +Small Wooden Drawer = +Terracotta Roof Tile = +Titanium Dioxide = +Uncooked Terracotta Base = +Unprocessed Plastic base = + +### door_models.lua ### + +### door_nodes.lua ### + +### fences.lua ### +Barbed Wire Fence = +Barbed Wire Fence Corner = +Barbed Wire Fence Gate = +Brass Fence/railing = +Brass Fence/railing with sign = +Chainlink Fence = +Chainlink Fence Corner = +Chainlink Fence Gate = +Unpainted Picket Fence = +Unpainted Picket Fence Corner = +Unpainted Picket Fence Gate = +White Picket Fence = +White Picket Fence Corner = +White Picket Fence Gate = +Wooden Privacy Fence = +Wooden Privacy Fence Corner = +Wrought Iron Fence/railing = +Wrought Iron Fence/railing with sign = +want to simply place the wielded item like usual. = + +### furniture.lua ### +Table = +Chair = +Black = +Red = +Pink = +Violet = +Blue = +Dark Green = +## 1: Color name +Armchair (%s) = +Table Lamp = + +### furniture_medieval.lua ### +Bars = +Binding Bars = +Chains = +Wall Torch = + +### furniture_bathroom.lua ### +Toilet = +Sink = +Taps = +Shower Tray = +Shower Head = + +### init.lua ### +Loaded! = +Air Conditioner = +Asphalt Shingles = +Asphalt Shingles (outer corner) = +Asphalt Shingles (inner corner) = +Black Plastic Flower Pot = +Brass Pole = +Brass Table Legs = +Wrought Iron Table Legs = +red = +green = +blue = +white = +pink = +violet = +## 1: Color name +Curtains (%s) = +Drop-Ceiling Tile = +Glass Skylight = +Glass Skylight Frosted = +Glass Table (Small, Round) = +Glass Table (Small, Square) = +Glass Table Piece (large) = +Green Plastic Flower Pot = +Large Area Rug = +Glass Table Piece (large) = +Large Stereo Speaker = +Legs for Utility Table = +Projection Screen Material = +Small Surround Speaker = +Small Throw Rug = +Stereo Receiver = +Terracotta Flower Pot = +Terracotta Shingles = +Terracotta Shingles (outer corner) = +Terracotta Shingles (inner corner) = +Textured Ceiling Paint = +Utility Table = +Utility table mk2 = +Wooden Shutter (Black) = +Wooden Shutter (Dark grey) = +Wooden Shutter (Forest green) = +Wooden Shutter (Grey) = +Wooden Shutter (Light blue) = +Wooden Shutter (Violet) = +Wooden Shutter (Red) = +Wooden Shutter (Mahogany) = +Wooden Shutter (Unpainted oak) = +Wooden Shutter (White) = +Wooden Shutter (Yellow) = +Wood Table Piece (large)= +Wood Table (Small, Round) = +Wood Table (Small, Square) = +Wood Shingles = +Wood Shingles (outer corner) = +Wood Shingles (inner corner) = +Wrought Iron Pole = +someone = +## 1: Player name +Sorry, %s owns that spot. = + +### lighting.lua ### +White Glowlight (small cube) = +White Glowlight (small cube, on ceiling) = +White Glowlight (thick) = +White Glowlight (thick, on wall) = +White Glowlight (thin) = +White Glowlight (thin, on wall) = +Yellow Glowlight (small cube) = +Yellow Glowlight (small cube, on ceiling) = +Yellow Glowlight (thick) = +Yellow Glowlight (thick, on wall) = +Yellow Glowlight (thin) = +Yellow Glowlight (thin, on wall) = + +### locked.lua ### +## 1: Item description, 2: Owner name +%s (owned by %s) = +## 1: Player name, 2: Item description, 3: Owner name, 4: Position +%s tried to access a %s belonging to %s at %s = +## 1: Item description +%s (Locked) = +Locked Fridge = +Locked Cabinet = +Locked Nightstand = +Locked Oven = +Locked Oven (active) = +Locked Microwave Oven = +Locked Microwave Oven (active) = + +### nightstands.lua ### +Mahogany Nightstand with One Drawer = +Mahogany Nightstand with Two Drawers = +Oak Nightstand with One Drawer = +Oak Nightstand with Two Drawers = +## 1: Player name, 2: position +%s moves stuff in nightstand at %s = +%s moves stuff to nightstand at %s = +%s takes stuff from nightstand at %s = +One-drawer Nightstand = +Two-drawer Nightstand = + +### oven.lua ### +Oven = +Microwave Oven = +## 1: Item descrition +Could not insert '%s' = +## 1: Item description, 2: Percentage +%s active: %d%% = +## 1: Item description +%s is empty = +: Out of fuel = +: output bins are full = + +### refrigerator.lua ### +Refrigerator = +## 1: Player name, 2: position +%s moves stuff in refrigerator at %s = +%s moves stuff to refrigerator at %s = +%s takes stuff from refrigerator at %s = +Not enough vertical space to place a refrigerator! = + +### television.lua ### +Small CRT Television = + +### signs_lib.lua ### +%s wrote "%s" to sign at %s = +Reading cached character database. = +Font seems to have changed. Rebuilding cache. = +Could not find font line height in cached DB. Trying brute force. = +Registered %s and %s = +signs loaded = diff --git a/mods/homedecor_modpack/homedecor/locked.lua b/mods/homedecor_modpack/homedecor/locked.lua new file mode 100644 index 00000000..7476c01a --- /dev/null +++ b/mods/homedecor_modpack/homedecor/locked.lua @@ -0,0 +1,161 @@ +-- Locked Stuff for Home Decor mod, by Kaeza +-- +-- The code is mostly copypasta from default:chest_locked, with a few +-- tidbits to ease creation of new items, should need arise. + +local S = homedecor.gettext + +--[[ + | create_locked ( name, infotext ) + | + | Description: + | This function takes a base node name such as "homedecor:refrigerator", + | copies the definition from the original item into a new table, modifies + | it a bit, and registers a new node with a "_locked" suffix such as + | "homedecor:refrigerator_locked". The new node behaves identically to + | the base node, except that moving items to/from the node's inventory + | is only allowed for the original placer. In addition, it register a new + | shapeless recipe for the node, using the base node plus a steel ingot. + | + | Arguments: + | name The base node name + | infotext The infotext description (in case the name is too long). + | + | Example Usage: + | create_locked("homedecor:refrigerator", "Locked Fridge") + | ^ This generates a new "Locked Refrigerator" node, whose infotext is + | "Locked Fridge (owned by )". + | + | Notes: + | If is not specified (or is nil), the infotext will be the + | base node's description prefixed by "Locked ". + | + | The ABM for the locked oven is defined in oven.lua. + ]] +local function create_locked ( name, infotext ) + local def = { } + for k, v in pairs(minetest.registered_nodes[name]) do + def[k] = v + end + def.type = nil + def.name = nil + def.description = S("%s (Locked)"):format(def.description) + local after_place_node = def.after_place_node + def.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", S("%s (owned by %s)"):format(infotext,meta:get_string("owner"))) + if (after_place_node) then + return after_place_node(pos, placer) + end + end + local allow_metadata_inventory_move = def.allow_metadata_inventory_move; + def.allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.get_meta(pos) + if (player:get_player_name() ~= meta:get_string("owner")) then + minetest.log("action", S("%s tried to access a %s belonging to %s at %s"):format( + player:get_player_name(), + infotext, + meta:get_string("owner"), + minetest.pos_to_string(pos) + )) + return 0 + end + if (allow_metadata_inventory_move) then + return allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player) + else + return count + end + end + local allow_metadata_inventory_put = def.allow_metadata_inventory_put; + def.allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if (player:get_player_name() ~= meta:get_string("owner")) then + minetest.log("action", S("%s tried to access a %s belonging to %s at %s"):format( + player:get_player_name(), + infotext, + meta:get_string("owner"), + minetest.pos_to_string(pos) + )) + return 0 + end + if (allow_metadata_inventory_put) then + return allow_metadata_inventory_put(pos, listname, index, stack, player) + else + return stack:get_count() + end + end + local allow_metadata_inventory_take = def.allow_metadata_inventory_take; + def.allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if (player:get_player_name() ~= meta:get_string("owner")) then + minetest.log("action", S("%s tried to access a %s belonging to %s at %s"):format( + player:get_player_name(), + infotext, + meta:get_string("owner"), + minetest.pos_to_string(pos) + )) + return 0 + end + if (allow_metadata_inventory_take) then + return allow_metadata_inventory_take(pos, listname, index, stack, player) + else + return stack:get_count() + end + end + minetest.register_node(name.."_locked", def) + minetest.register_craft({ + output = name.."_locked", + type = "shapeless", + recipe = { + name, + "default:steel_ingot", + } + }) +end + +local items = { + { "refrigerator_white_bottom", + "Refrigerator" }, + { "refrigerator_steel_bottom", + "Refrigerator (stainless steel)" }, + { "kitchen_cabinet", + "Cabinet" }, + { "kitchen_cabinet_steel", + "Cabinet (stainless steel top)" }, + { "kitchen_cabinet_granite", + "Cabinet (granite top)" }, + { "kitchen_cabinet_marble", + "Cabinet (marble top)" }, + { "kitchen_cabinet_half", + "Cabinet" }, + { "kitchen_cabinet_with_sink", + "Cabinet" }, + { "nightstand_oak_one_drawer", + "Nightstand" }, + { "nightstand_oak_two_drawers", + "Nightstand" }, + { "nightstand_mahogany_one_drawer", + "Nightstand" }, + { "nightstand_mahogany_two_drawers", + "Nightstand" }, + { "filing_cabinet", + "Filing cabinet" }, + { "oven", + "Oven" }, + { "oven_active", + "Oven (active)" }, + { "oven_steel", + "Oven (stainless steel)" }, + { "oven_steel_active", + "Oven (stainless steel, active)" }, + { "microwave_oven", + "Microwave Oven" }, + { "microwave_oven_active", + "Microwave Oven (active)" }, +} + +for _,item in ipairs(items) do + local name, info = item[1], item[2]; + create_locked("homedecor:"..name, S("Locked "..info)); +end diff --git a/mods/homedecor_modpack/homedecor/misc-bathroom.lua b/mods/homedecor_modpack/homedecor/misc-bathroom.lua new file mode 100644 index 00000000..78b0d862 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/misc-bathroom.lua @@ -0,0 +1,185 @@ +local S = homedecor.gettext + +local bathroom_tile_colors = { + { "1", "white/grey" }, + { "2", "white/dark grey" }, + { "3", "white/black" }, + { "4", "black/dark grey" }, + { "red", "white/red" }, + { "green", "white/green" }, + { "blue", "white/blue" }, + { "yellow", "white/yellow" }, + { "tan", "white/tan" }, +} + +for i in ipairs(bathroom_tile_colors) do + local color = bathroom_tile_colors[i][1] + local shade = bathroom_tile_colors[i][2] + minetest.register_node("homedecor:tiles_"..color, { + description = "Bathroom/kitchen tiles ("..shade..")", + tiles = { + "homedecor_bathroom_tiles_"..color..".png", + "homedecor_bathroom_tiles_"..color..".png", + "homedecor_bathroom_tiles_"..color..".png", + "homedecor_bathroom_tiles_"..color..".png", + "homedecor_bathroom_tiles_"..color..".png^[transformR90", + "homedecor_bathroom_tiles_"..color..".png^[transformR90" + }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + }) +end + +minetest.register_node("homedecor:towel_rod", { + description = "Towel rod with towel", + drawtype = "nodebox", + tiles = { + "homedecor_towel_rod_top.png", + "homedecor_towel_rod_bottom.png", + "homedecor_towel_rod_sides.png", + "homedecor_towel_rod_sides.png^[transformFX", + "homedecor_towel_rod_fb.png", + "homedecor_towel_rod_fb.png" + }, + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.375, 0.1875, 0.25, -0.3125, 0.375, 0.5}, + { 0.3125, 0.1875, 0.25, 0.375, 0.375, 0.5}, + {-0.3125, 0.25, 0.3125, 0.3125, 0.375, 0.375}, + {-0.3125, 0, 0.375, 0.3125, 0.34375, 0.4375}, + {-0.3125, -0.3125, 0.25, 0.3125, 0.34375, 0.3125}, + } + }, + selection_box = { + type = "fixed", + fixed = { -0.375, -0.3125, 0.25, 0.375, 0.375, 0.5 } + }, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3}, + sounds = default.node_sound_defaults(), +}) + +minetest.register_node('homedecor:medicine_cabinet', { + drawtype = "nodebox", + description = S("Medicine Cabinet"), + tiles = { + 'homedecor_medicine_cabinet_tb.png', + 'homedecor_medicine_cabinet_tb.png', + 'homedecor_medicine_cabinet_sides.png', + 'homedecor_medicine_cabinet_sides.png', + 'homedecor_medicine_cabinet_back.png', + 'homedecor_medicine_cabinet_front.png' + }, + inventory_image = "homedecor_medicine_cabinet_inv.png", + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = {-0.3125, -0.1875, 0.3125, 0.3125, 0.5, 0.5} + }, + node_box = { + type = "fixed", + fixed = {-0.3125, -0.1875, 0.3125, 0.3125, 0.5, 0.5} + }, + groups = { snappy = 3 }, + sounds = default.node_sound_wood_defaults(), + on_punch = function(pos, node, puncher, pointed_thing) + local fdir = node.param2 + minetest.set_node(pos, { name = "homedecor:medicine_cabinet_open", param2 = fdir }) + end, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[8,7]".. + "list[current_name;main;1,0;6,1;]".. + "list[current_player;main;0,3;8,4;]") + meta:set_string("infotext", S("Medicine cabinet")) + local inv = meta:get_inventory() + inv:set_size("main", 16) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", S("%s moves stuff in medicine cabinet at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", S("%s moves stuff to medicine cabinet at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", S("%s takes stuff from medicine cabinet at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, +}) + +minetest.register_node("homedecor:medicine_cabinet_open", { + tiles = { + 'homedecor_medicine_cabinet_tb.png', + 'homedecor_medicine_cabinet_tb.png', + "homedecor_medicine_cabinet_open_right.png", + 'homedecor_medicine_cabinet_sides.png', + 'homedecor_medicine_cabinet_back.png', + "homedecor_medicine_cabinet_open_front.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy = 3, not_in_creative_inventory=1 }, + node_box = { + type = "fixed", + fixed = { + {-0.3125, -0.1875, 0.375, 0.3125, 0.5, 0.5}, -- NodeBox1 + {0.28, -0.1875, -0.1875, 0.3125, 0.5, 0.375}, -- NodeBox2 + } + }, + drop = "homedecor:medicine_cabinet", + on_punch = function(pos, node, puncher, pointed_thing) + local fdir = node.param2 + minetest.set_node(pos, { name = "homedecor:medicine_cabinet", param2 = fdir }) + end, +}) + +minetest.register_node("homedecor:toilet_paper", { + description = S("Toilet paper"), + tiles = { + "homedecor_toilet_paper_sides.png", + "homedecor_toilet_paper_sides.png", + "homedecor_toilet_paper_ends.png", + "homedecor_toilet_paper_ends.png", + "homedecor_toilet_paper_sides.png", + "homedecor_toilet_paper_sides.png" + }, + inventory_image = "homedecor_toilet_paper_inv.png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.25, 0.1875, 0.4375, -0.1875, 0.375, 0.5}, -- NodeBox1 + {0.125, 0.1875, 0.4375, 0.1875, 0.375, 0.5}, -- NodeBox2 + {-0.25, 0.25, 0.1875, -0.1875, 0.3125, 0.5}, -- NodeBox3 + {0.125, 0.25, 0.1875, 0.1875, 0.3125, 0.5}, -- NodeBox4 + {-0.1875, 0.125, 0.125, 0.125, 0.4375, 0.3125}, -- NodeBox5 + {-0.1875, 0.1875, 0.0625, 0.125, 0.375, 0.375}, -- NodeBox6 + } + }, + groups = {snappy=2,oddly_breakable_by_hand=3,flammable=3}, + sounds = default.node_sound_defaults(), +}) + diff --git a/mods/homedecor_modpack/homedecor/misc-electrical.lua b/mods/homedecor_modpack/homedecor/misc-electrical.lua new file mode 100644 index 00000000..a2616948 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/misc-electrical.lua @@ -0,0 +1,62 @@ +minetest.register_node("homedecor:power_outlet", { + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + description = "Power Outlet", + tiles = { + "homedecor_outlet_edges.png", + "homedecor_outlet_edges.png", + "homedecor_outlet_edges.png", + "homedecor_outlet_edges.png", + "homedecor_outlet_back.png", + "homedecor_outlet_front.png" + }, + inventory_image = "homedecor_outlet_inv.png", + node_box = { + type = "fixed", + fixed = { + { -0.125, -0.3125, 0.4375, 0.125, 0, 0.5}, + } + }, + selection_box = { + type = "fixed", + fixed = { + { -0.1875, -0.375, 0.375, 0.1875, 0.0625, 0.5}, + } + }, + groups = {cracky=3,dig_immediate=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("homedecor:light_switch", { + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + description = "Light switch", + tiles = { + "homedecor_light_switch_edges.png", + "homedecor_light_switch_edges.png", + "homedecor_light_switch_edges.png", + "homedecor_light_switch_edges.png", + "homedecor_light_switch_back.png", + "homedecor_light_switch_front.png" + }, + inventory_image = "homedecor_light_switch_inv.png", + node_box = { + type = "fixed", + fixed = { + { -0.125, -0.5, 0.4375, 0.125, -0.1875, 0.5 }, + { -0.03125, -0.3125, 0.40625, 0.03125, -0.25, 0.5 }, + + } + }, + selection_box = { + type = "fixed", + fixed = { + { -0.1875, -0.5625, 0.375, 0.1875, -0.1250, 0.5 }, + } + }, + groups = {cracky=3,dig_immediate=2}, + sounds = default.node_sound_stone_defaults() +}) + diff --git a/mods/homedecor_modpack/homedecor/misc-nodes.lua b/mods/homedecor_modpack/homedecor/misc-nodes.lua new file mode 100644 index 00000000..48f5335d --- /dev/null +++ b/mods/homedecor_modpack/homedecor/misc-nodes.lua @@ -0,0 +1,1961 @@ +-- Various misc. nodes + +local S = homedecor.gettext + +minetest.register_node('homedecor:ceiling_paint', { + description = S("Textured Ceiling Paint"), + drawtype = 'signlike', + tiles = { 'homedecor_ceiling_paint.png' }, + inventory_image = 'homedecor_ceiling_paint_roller.png', + wield_image = 'homedecor_ceiling_paint_roller.png', + sunlight_propagates = true, + paramtype = 'light', + walkable = false, + groups = { snappy = 3 }, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "wallmounted", + --wall_top = + --wall_bottom = + --wall_side = + }, +}) + +minetest.register_node('homedecor:ceiling_tile', { + description = S("Drop-Ceiling Tile"), + drawtype = 'signlike', + tiles = { 'homedecor_ceiling_tile.png' }, + wield_image = 'homedecor_ceiling_tile.png', + inventory_image = 'homedecor_ceiling_tile.png', + sunlight_propagates = true, + paramtype = 'light', + walkable = false, + groups = { snappy = 3 }, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "wallmounted", + --wall_top = + --wall_bottom = + --wall_side = + }, +}) + +minetest.register_node('homedecor:rug_small', { + description = S("Small Throw Rug"), + drawtype = 'signlike', + tiles = { 'homedecor_rug_small.png' }, + wield_image = 'homedecor_rug_small.png', + inventory_image = 'homedecor_rug_small.png', + sunlight_propagates = true, + paramtype = 'light', + paramtype2 = "wallmounted", + is_ground_content = true, + walkable = false, + groups = { snappy = 3 }, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "wallmounted", + --wall_top = + --wall_bottom = + --wall_side = + }, +}) + +minetest.register_node('homedecor:rug_large', { + description = S("Large Area Rug"), + drawtype = 'signlike', + tiles = { 'homedecor_rug_large.png' }, + wield_image = 'homedecor_rug_large.png', + inventory_image = 'homedecor_rug_large.png', + sunlight_propagates = true, + paramtype = 'light', + paramtype2 = "wallmounted", + is_ground_content = true, + walkable = false, + groups = { snappy = 3 }, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "wallmounted", + --wall_top = + --wall_bottom = + --wall_side = + }, + }) + +local flower_pot_model = { + type = "fixed", + fixed = { + {-0.1875, -0.5, -0.1875, 0.1875, -0.3125, 0.1875}, + {-0.25, -0.5, -0.0625, 0.25, -0.3125, 0.0625}, + {-0.0625, -0.5, -0.25, 0.0625, -0.25, 0.25}, + {-0.25, -0.3125, -0.25, 0.25, -0.125, 0.25}, + {-0.125, -0.3125, -0.3125, 0.125, -0.125, 0.3125}, + {-0.3125, -0.3125, -0.125, 0.3125, -0.125, 0.125}, + {-0.3125, -0.125, -0.25, 0.3125, 0.0625, 0.25}, + {-0.125, -0.125, -0.375, 0.125, 0.0625, 0.375}, + {-0.375, -0.125, -0.125, 0.375, 0.0625, 0.125}, + {-0.25, -0.125, -0.3125, 0.25, 0.0625, 0.3125}, + {-0.4375, 0.0625, -0.1875, 0.4375, 0.25, 0.1875}, + {-0.1875, 0.0625, -0.4375, 0.1875, 0.25, 0.4375}, + {-0.3125, 0.0625, -0.375, 0.3125, 0.25, 0.375}, + {-0.375, 0.0625, -0.3125, 0.375, 0.25, 0.3125}, + {-0.1875, 0.25, -0.5, 0.1875, 0.5, 0.5}, + {-0.5, 0.25, -0.1875, 0.5, 0.5, 0.1875}, + {-0.4375, 0.25, -0.3125, 0.4375, 0.5, 0.3125}, + {-0.3125, 0.25, -0.4375, 0.3125, 0.5, 0.4375}, + {-0.375, 0.25, -0.375, 0.375, 0.5, 0.375}, + } +} + +minetest.register_node('homedecor:flower_pot_terracotta', { + drawtype = "nodebox", + description = S("Terracotta Flower Pot"), + tiles = { 'homedecor_flower_pot_terracotta_top.png', + 'homedecor_flower_pot_terracotta_bottom.png', + 'homedecor_flower_pot_terracotta_sides.png', + 'homedecor_flower_pot_terracotta_sides.png', + 'homedecor_flower_pot_terracotta_sides.png', + 'homedecor_flower_pot_terracotta_sides.png'}, + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = { snappy = 3 }, + node_box = flower_pot_model, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node('homedecor:flower_pot_black', { + drawtype = "nodebox", + description = S("Black Plastic Flower Pot"), + tiles = { 'homedecor_flower_pot_black_top.png', + 'homedecor_flower_pot_black_bottom.png', + 'homedecor_flower_pot_black_sides.png', + 'homedecor_flower_pot_black_sides.png', + 'homedecor_flower_pot_black_sides.png', + 'homedecor_flower_pot_black_sides.png'}, + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = { snappy = 3 }, + node_box = flower_pot_model, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node('homedecor:flower_pot_green', { + drawtype = "nodebox", + description = S("Green Plastic Flower Pot"), + tiles = { 'homedecor_flower_pot_green_top.png', + 'homedecor_flower_pot_green_bottom.png', + 'homedecor_flower_pot_green_sides.png', + 'homedecor_flower_pot_green_sides.png', + 'homedecor_flower_pot_green_sides.png', + 'homedecor_flower_pot_green_sides.png'}, + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = { snappy = 3 }, + node_box = flower_pot_model, + sounds = default.node_sound_leaves_defaults(), +}) + +-- cylinder-shaped objects courtesy Jeija + +local cylbox = {} +local detail = 50 +local sehne +local size = 0.2 + +for i = 1, detail-1 do + sehne = math.sqrt(0.25 - (((i/detail)-0.5)^2)) + cylbox[i]={((i/detail)-0.5)*size, -0.5, -sehne*size, ((i/detail)+(1/detail)-0.5)*size, 0.5, sehne*size} +end + +minetest.register_node("homedecor:pole_brass", { + description = S("Brass Pole"), + drawtype = "nodebox", + tiles = {"homedecor_tile_brass2.png"}, + inventory_image = "homedecor_pole_brass2.png", + wield_image = "homedecor_pole_brass2.png", + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-size/2, -0.5, -size/2, size/2, 0.5, size/2}, + }, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + node_box = { + type = "fixed", + fixed = cylbox, + } +}) + +minetest.register_node("homedecor:pole_wrought_iron", { + description = S("Wrought Iron Pole"), + drawtype = "nodebox", + tiles = {"homedecor_tile_wrought_iron2.png"}, + inventory_image = "homedecor_pole_wrought_iron.png", + wield_image = "homedecor_pole_wrought_iron.png", + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.0625, -0.5, -0.0625, 0.0625, 0.5, 0.0625} + }, + node_box = { + type = "fixed", + fixed = {-0.0625, -0.5, -0.0625, 0.0625, 0.5, 0.0625} + }, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + walkable = true, +}) + +local welcome_mat_colors = { "green", "brown", "grey" } + +for _, color in ipairs(welcome_mat_colors) do + minetest.register_node("homedecor:welcome_mat_"..color, { + description = "Welcome Mat ("..color..")", + paramtype = "light", + paramtype2 = "facedir", + drawtype = "nodebox", + tiles = { + "homedecor_welcome_mat_"..color..".png", + "homedecor_welcome_mat_bottom.png", + "homedecor_welcome_mat_"..color..".png", + }, + groups = {crumbly=3}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.25}, + }), + node_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.375, 0.5, -0.46875, 0.375 } + } + }) +end + +minetest.register_node("homedecor:chimney", { + drawtype = "nodebox", + paramtype = "light", + description = "Chimney", + tiles = { + "homedecor_chimney_top.png", + "homedecor_chimney_bottom.png", + "homedecor_chimney_sides.png", + }, + node_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, 0.5, -0.1875}, + {-0.25, -0.5, 0.1875, 0.25, 0.5, 0.25}, + {-0.25, -0.5, -0.25, -0.1875, 0.5, 0.25}, + {0.1875, -0.5, -0.25, 0.25, 0.5, 0.25}, + } + }, + selection_box = { + type = "fixed", + fixed = { -0.25, -0.5, -0.25, 0.25, 0.5, 0.25 } + }, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("homedecor:fishtank", { + drawtype = "nodebox", + description = "Fishtank", + tiles = { + "homedecor_fishtank_top.png", + "homedecor_fishtank_bottom.png", + "homedecor_fishtank_right.png", + "homedecor_fishtank_left.png", + "homedecor_fishtank_back.png", + "homedecor_fishtank_front.png" + }, + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.375, 0.5, -0.4375, 0.375}, + {-0.4375, -0.4375, -0.3125, 0.4375, 0.1875, 0.3125}, + {-0.4375, 0.1875, -0.1875, 0.4375, 0.25, 0.1875}, + {-0.1875, 0.0625, 0.0625, 0.1875, 0.25, 0.375}, + { 0.125, -0.5, 0.25, 0.1875, 0.1875, 0.375}, + {-0.375, 0.25, -0.125, 0.375, 0.3125, 0.125}, + } + }, + use_texture_alpha = true, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.375, 0.5, 0.3125, 0.375 } + }, + sunlight_propagates = true, + groups = {cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults(), + on_rightclick = function(pos, node, clicker) + fdir = minetest.get_node(pos).param2 + minetest.add_node(pos, {name = "homedecor:fishtank_lighted", param2 = fdir}) + end +}) + +minetest.register_node("homedecor:fishtank_lighted", { + drawtype = "nodebox", + description = "Fishtank", + tiles = { + "homedecor_fishtank_top.png", + "homedecor_fishtank_bottom.png", + "homedecor_fishtank_right_lighted.png", + "homedecor_fishtank_left_lighted.png", + "homedecor_fishtank_back_lighted.png", + "homedecor_fishtank_front_lighted.png" + }, + paramtype = "light", + light_source = LIGHT_MAX-4, + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.375, 0.5, -0.4375, 0.375}, + {-0.4375, -0.4375, -0.3125, 0.4375, 0.1875, 0.3125}, + {-0.4375, 0.1875, -0.1875, 0.4375, 0.25, 0.1875}, + {-0.1875, 0.0625, 0.0625, 0.1875, 0.25, 0.375}, + { 0.125, -0.5, 0.25, 0.1875, 0.1875, 0.375}, + {-0.375, 0.25, -0.125, 0.375, 0.3125, 0.125}, + } + }, + use_texture_alpha = true, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.375, 0.5, 0.3125, 0.375 } + }, + sunlight_propagates = true, + groups = {cracky=3,oddly_breakable_by_hand=3,not_in_creative_inventory=1}, + sounds = default.node_sound_glass_defaults(), + on_rightclick = function(pos, node, clicker) + fdir = minetest.get_node(pos).param2 + minetest.add_node(pos, {name = "homedecor:fishtank", param2 = fdir}) + end +}) + +minetest.register_node('homedecor:cardboard_box', { + drawtype = "nodebox", + description = S("Cardboard box"), + tiles = { + 'homedecor_cardboard_box_tb.png', + 'homedecor_cardboard_box_tb.png', + 'homedecor_cardboard_box_sides.png' + }, + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 0, 0.5 } + }, + node_box = { + type = "fixed", + fixed = { + {0.1875, -0.5, -0.25, 0.25, 0, 0.25}, + {-0.25, -0.5, -0.25, -0.1875, 0, 0.25}, + {-0.25, -0.5, 0.1875, 0.25, 0, 0.25}, + {-0.25, -0.5, -0.25, 0.25, 0, -0.1875}, + {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, + {0.1875, -0.0625, -0.25, 0.5, 0, 0.25}, + {-0.5, -0.0625, -0.25, -0.1875, 0, 0.25}, + {-0.25, -0.0625, 0.1875, 0.25, 0, 0.5}, + {-0.25, -0.0625, -0.5, 0.25, 0, -0.1875}, + } + }, + groups = { snappy = 3 }, + sounds = default.node_sound_wood_defaults(), + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[8,6]".. + "list[current_name;main;2,0;4,1;]".. + "list[current_player;main;0,2;8,4;]") + meta:set_string("infotext", S("Cardboard box")) + local inv = meta:get_inventory() + inv:set_size("main", 8) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", S("%s moves stuff in cardboard box at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", S("%s moves stuff to cardboard box at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", S("%s takes stuff from cardboard box at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, +}) + +minetest.register_node("homedecor:dvd_cd_cabinet", { + description = "DVD/CD cabinet", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = { + "homedecor_dvdcd_cabinet_top.png", + "homedecor_dvdcd_cabinet_bottom.png", + "homedecor_dvdcd_cabinet_sides.png", + "homedecor_dvdcd_cabinet_sides.png^[transformFX", + "homedecor_dvdcd_cabinet_back.png", + "homedecor_dvdcd_cabinet_front.png", + }, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0, -0.4375, 0.5, 0.5}, + {0.4375, -0.5, 0, 0.5, 0.5, 0.5}, + {-0.0625, -0.5, 0, 0.0625, 0.5, 0.5}, + {-0.5, 0.4375, 0, 0.5, 0.5, 0.5}, + {-0.5, -0.5, 0, 0.5, -0.4375, 0.5}, + {-0.5, -0.5, 0.0625, 0.5, 0.5, 0.4375}, + {-0.375, -0.5, 0.02756, -0.125, 0.5, 0.5}, + {0.125, -0.5, 0.01217, 0.375, 0.5, 0.5}, + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, 0, 0.5, 0.5, 0.5 } + }, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node('homedecor:filing_cabinet', { + drawtype = "nodebox", + description = S("Filing Cabinet"), + tiles = { + 'homedecor_filing_cabinet_top.png', + 'homedecor_filing_cabinet_bottom.png', + 'homedecor_filing_cabinet_sides.png', + 'homedecor_filing_cabinet_sides.png^[transformFX', + 'homedecor_filing_cabinet_back.png', + 'homedecor_filing_cabinet_front.png' + }, + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 } + }, + node_box = { + type = "fixed", + fixed = { + { -8/16, -8/16, -30/64, 8/16, 8/16, 8/16 }, -- main body + { -7/16, -7/16, -8/16, 7/16, 7/16, 8/16 }, -- drawer + } + }, + groups = { snappy = 3 }, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[8,7]".. + "list[current_name;main;0,0;8,2;]".. + "list[current_player;main;0,3;8,4;]") + meta:set_string("infotext", S("Filing cabinet")) + local inv = meta:get_inventory() + inv:set_size("main", 16) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", S("%s moves stuff in filing cabinet at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", S("%s moves stuff to filing cabinet at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", S("%s takes stuff from filing cabinet at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, +}) + +minetest.register_node("homedecor:dishwasher", { + description = "Dishwasher", + drawtype = "nodebox", + tiles = { + "homedecor_dishwasher_top.png", + "homedecor_dishwasher_bottom.png", + "homedecor_dishwasher_sides.png", + "homedecor_dishwasher_sides.png^[transformFX", + "homedecor_dishwasher_back.png", + "homedecor_dishwasher_front.png" + }, + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, + {-0.5, -0.5, -0.5, 0.5, 0.5, -0.4375}, + {-0.5, -0.5, -0.5, 0.5, 0.1875, 0.1875}, + {-0.4375, -0.5, -0.5, 0.4375, 0.4375, 0.4375}, + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 } + }, + groups = { snappy = 3 }, +}) + +minetest.register_node("homedecor:dishwasher_wood", { + description = "Dishwasher", + tiles = { + "homedecor_kitchen_cabinet_top.png", + "homedecor_dishwasher_bottom.png", + "homedecor_dishwasher_sides.png", + "homedecor_dishwasher_sides.png^[transformFX", + "homedecor_dishwasher_back.png", + "homedecor_dishwasher_front.png" + }, + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy = 3 }, +}) + +minetest.register_node("homedecor:dishwasher_steel", { + description = "Dishwasher", + tiles = { + "homedecor_kitchen_cabinet_top_steel.png", + "homedecor_dishwasher_bottom.png", + "homedecor_dishwasher_sides.png", + "homedecor_dishwasher_sides.png^[transformFX", + "homedecor_dishwasher_back.png", + "homedecor_dishwasher_front.png" + }, + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy = 3 }, +}) + +minetest.register_node("homedecor:dishwasher_marble", { + description = "Dishwasher", + tiles = { + "homedecor_kitchen_cabinet_top_marble.png", + "homedecor_dishwasher_bottom.png", + "homedecor_dishwasher_sides.png", + "homedecor_dishwasher_sides.png^[transformFX", + "homedecor_dishwasher_back.png", + "homedecor_dishwasher_front.png" + }, + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy = 3 }, +}) + +minetest.register_node("homedecor:dishwasher_granite", { + description = "Dishwasher", + tiles = { + "homedecor_kitchen_cabinet_top_granite.png", + "homedecor_dishwasher_bottom.png", + "homedecor_dishwasher_sides.png", + "homedecor_dishwasher_sides.png^[transformFX", + "homedecor_dishwasher_back.png", + "homedecor_dishwasher_front.png" + }, + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy = 3 }, +}) + +-- doghouse and pool table, models contributed by jp + +minetest.register_node("homedecor:doghouse_base", { + tiles = { + "homedecor_doghouse_base_top.png", + "homedecor_doghouse_base_bottom.png", + "homedecor_doghouse_base_side.png", + "homedecor_doghouse_base_side.png", + "homedecor_doghouse_base_back.png", + "homedecor_doghouse_base_front.png" + }, + description = "Doghouse", + inventory_image = "homedecor_doghouse_inv.png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {0.3125, -0.5, -0.4375, 0.4375, -0.3125, -0.3125}, -- NodeBox1 + {0.3125, -0.5, 0.3125, 0.4375, -0.3125, 0.4375}, -- NodeBox2 + {-0.4375, -0.5, 0.3125, -0.3125, -0.3125, 0.4375}, -- NodeBox3 + {-0.4375, -0.5, -0.4375, -0.3125, -0.3125, -0.3125}, -- NodeBox4 + {-0.4375, -0.3125, -0.4375, -0.375, 0.5, 0.4375}, -- NodeBox5 + {-0.4375, 0.3125, -0.375, 0.4375, 0.5, -0.3125}, -- NodeBox6 + {-0.4375, -0.3125, -0.4375, 0.4375, -0.25, 0.4375}, -- NodeBox7 + {-0.375, -0.3125, -0.375, -0.1875, 0.4375, -0.3125}, -- NodeBox8 + {0.1875, -0.3125, -0.375, 0.4375, 0.5, -0.3125}, -- NodeBox9 + {0.375, -0.25, -0.4375, 0.4375, 0.5, 0.4375}, -- NodeBox10 + {-0.4375, -0.3125, 0.375, 0.4375, 0.5, 0.4375}, -- NodeBox11 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 1.0, 0.5 } + }, + groups = {snappy=3}, + on_place = function(itemstack, placer, pointed_thing) + return homedecor.stack_vertically(itemstack, placer, pointed_thing, + "homedecor:doghouse_base", "homedecor:doghouse_roof") + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local pos2 = { x = pos.x, y=pos.y + 1, z = pos.z } + if minetest.get_node(pos2).name == "homedecor:doghouse_roof" then + minetest.remove_node(pos2) + end + end +}) + +minetest.register_node("homedecor:doghouse_roof", { + tiles = { + "homedecor_doghouse_roof_top.png", + "homedecor_doghouse_roof_bottom.png", + "homedecor_doghouse_roof_side.png", + "homedecor_doghouse_roof_side.png", + "homedecor_doghouse_roof_back.png", + "homedecor_doghouse_roof_front.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, -0.4375, -0.4375, 0.5}, -- NodeBox17 + {-0.4375, -0.4375, -0.5, -0.375, -0.375, 0.5}, -- NodeBox18 + {-0.375, -0.375, -0.5, -0.3125, -0.3125, 0.5}, -- NodeBox19 + {-0.3125, -0.3125, -0.5, -0.25, -0.25, 0.5}, -- NodeBox20 + {-0.25, -0.25, -0.5, -0.1875, -0.1875, 0.5}, -- NodeBox21 + {-0.1875, -0.1875, -0.5, -0.125, -0.125, 0.5}, -- NodeBox22 + {-0.125, -0.125, -0.5, -0.0625, -0.0625, 0.5}, -- NodeBox23 + {-0.0625, -0.0625, -0.5, 0.0625, 0, 0.5}, -- NodeBox24 + {0.0625, -0.125, -0.5, 0.125, -0.0625, 0.5}, -- NodeBox25 + {0.125, -0.1875, -0.5, 0.1875, -0.125, 0.5}, -- NodeBox26 + {0.1875, -0.25, -0.5, 0.25, -0.1875, 0.5}, -- NodeBox27 + {0.25, -0.3125, -0.5, 0.3125, -0.25, 0.5}, -- NodeBox28 + {0.3125, -0.375, -0.5, 0.375, -0.3125, 0.5}, -- NodeBox29 + {0.375, -0.4375, -0.5, 0.4375, -0.375, 0.5}, -- NodeBox30 + {0.4375, -0.5, -0.5, 0.5, -0.4375, 0.5}, -- NodeBox31 + {-0.4375, -0.5, -0.375, 0.4375, -0.4375, 0.4375}, -- NodeBox32 + {-0.375, -0.4375, -0.375, 0.375, -0.375, 0.4375}, -- NodeBox33 + {-0.3125, -0.375, -0.375, 0.3125, -0.3125, 0.4375}, -- NodeBox34 + {-0.25, -0.3125, -0.375, 0.25, -0.25, 0.4375}, -- NodeBox35 + {-0.1875, -0.25, -0.375, 0.1875, -0.1875, 0.4375}, -- NodeBox36 + {-0.125, -0.1875, -0.375, 0.125, -0.125, 0.4375}, -- NodeBox37 + {0.0625, -0.125, -0.375, -0.0625, -0.0625, 0.4375}, -- NodeBox38 + } + }, + selection_box = { + type = "fixed", + fixed = { 0, 0, 0, 0, 0, 0 } + }, + groups = {snappy=3, not_in_creative_inventory=1}, +}) + +minetest.register_node("homedecor:pool_table", { + tiles = { + "homedecor_pool_table_top1.png", + "homedecor_pool_table_bottom1.png", + "homedecor_pool_table_sides1.png", + "homedecor_pool_table_sides2.png", + "homedecor_pool_table_end1.png", + "homedecor_pool_table_end2.png" + }, + description = "Pool Table", + inventory_image = "homedecor_pool_table_inv.png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {-0.375, -0.5, -0.375, -0.25, 0.1875, -0.25}, -- NodeBox1 + {0.25, -0.5, -0.375, 0.375, 0.1875, -0.25}, -- NodeBox2 + {-0.25, -0.125, -0.3125, 0.25, -0.0625, 0}, -- NodeBox3 + {-0.3125, -0.0625, -0.3125, -0.25, 0.1875, 0}, -- NodeBox4 + {0.25, -0.0625, -0.3125, 0.3125, 0.1875, 0}, -- NodeBox5 + {-0.3125, -0.125, 0, 0.3125, 0.1875, 0.0625}, -- NodeBox6 + {0.25, -0.125, -0.25, 0.3125, 0.1875, 0.5}, -- NodeBox7 + {-0.3125, -0.125, -0.25, -0.25, 0.1875, 0.5}, -- NodeBox8 + {-0.5, 0.1875, -0.5, -0.4375, 0.25, 0.5}, -- NodeBox9 + {-0.5, 0.1875, -0.5, 0.5, 0.25, -0.4375}, -- NodeBox10 + {0.4375, 0.1875, -0.5, 0.5, 0.25, 0.5}, -- NodeBox11 + {-0.3125, 0.1875, -0.3125, 0.3125, 0.25, 0.5}, -- NodeBox12 + {-0.4375, 0.1875, -0.3125, 0.4375, 0.25, 0.4375}, -- NodeBox13 + {-0.3125, 0.1875, -0.5, 0.3125, 0.25, -0.3125}, -- NodeBox14 + {-0.25, -0.125, -0.325, 0.25, 0, -0.3125}, -- NodeBox15 + {0.25, 0.125, -0.4375, 0.4375, 0.1875, 0.5}, -- NodeBox16 + {-0.4375, 0.125, -0.4375, -0.25, 0.1875, 0.5}, -- NodeBox17 + {-0.5, 0.25, -0.5, -0.4375, 0.3125, 0.5}, -- NodeBox18 + {-0.5, 0.25, -0.5, 0.5, 0.3125, -0.4375}, -- NodeBox19 + {0.4375, 0.25, -0.5, 0.5, 0.3125, 0.5}, -- NodeBox20 + {-0.4375, 0.25, -0.3125, -0.375, 0.3125, 0.4375}, -- NodeBox23 + {-0.3125, 0.25, -0.4375, 0.3125, 0.3125, -0.375}, -- NodeBox24 + {0.375, 0.25, -0.3125, 0.4375, 0.3125, 0.4375}, -- NodeBox25 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 0.3125, 1.5 } + }, + on_place = function(itemstack, placer, pointed_thing) + return homedecor.stack_sideways(itemstack, placer, pointed_thing, + "homedecor:pool_table", "homedecor:pool_table_2", false) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local fdir = oldnode.param2 + if not fdir or fdir > 3 then return end + local pos2 = { x = pos.x + homedecor.fdir_to_fwd[fdir+1][1], y=pos.y, z = pos.z + homedecor.fdir_to_fwd[fdir+1][2] } + if minetest.get_node(pos2).name == "homedecor:pool_table_2" then + minetest.remove_node(pos2) + end + end +}) + +minetest.register_node("homedecor:pool_table_2", { + tiles = { + "homedecor_pool_table_top2.png", + "homedecor_pool_table_bottom2.png", + "homedecor_pool_table_sides3.png", + "homedecor_pool_table_sides4.png", + "homedecor_pool_table_end3.png", + "homedecor_pool_table_end4.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3, not_in_creative_inventory=1}, + node_box = { + type = "fixed", + fixed = { + {-0.375, -0.5, 0.25, -0.25, 0.1875, 0.375}, -- NodeBox1 + {0.25, -0.5, 0.25, 0.375, 0.1875, 0.375}, -- NodeBox2 + {-0.25, -0.125, 0, 0.25, -0.0625, 0.3125}, -- NodeBox3 + {-0.3125, -0.0625, 0, -0.25, 0.1875, 0.3125}, -- NodeBox4 + {0.25, -0.0625, 0, 0.3125, 0.1875, 0.3125}, -- NodeBox5 + {-0.3125, -0.125, -0.0625, 0.3125, 0.1875, 0}, -- NodeBox6 + {0.25, -0.125, -0.5, 0.3125, 0.1875, 0.25}, -- NodeBox7 + {-0.3125, -0.125, -0.5, -0.25, 0.1875, 0.25}, -- NodeBox8 + {-0.5, 0.1875, -0.5, -0.4375, 0.25, 0.5}, -- NodeBox9 + {-0.5, 0.1875, 0.4375, 0.5, 0.25, 0.5}, -- NodeBox10 + {0.4375, 0.1875, -0.5, 0.5, 0.25, 0.5}, -- NodeBox11 + {-0.3125, 0.1875, -0.5, 0.3125, 0.25, 0.3125}, -- NodeBox12 + {-0.4375, 0.1875, -0.4375, 0.4375, 0.25, 0.3125}, -- NodeBox13 + {-0.3125, 0.1875, 0.3125, 0.3125, 0.25, 0.5}, -- NodeBox14 + {-0.25, -0.125, 0.3125, 0.25, 0, 0.325}, -- NodeBox15 + {0.25, 0.125, -0.5, 0.4375, 0.1875, 0.4375}, -- NodeBox16 + {-0.4375, 0.125, -0.5, -0.25, 0.1875, 0.4375}, -- NodeBox17 + {-0.5, 0.25, -0.5, -0.4375, 0.3125, 0.5}, -- NodeBox18 + {-0.5, 0.25, 0.4375, 0.5, 0.3125, 0.5}, -- NodeBox19 + {0.4375, 0.25, -0.5, 0.5, 0.3125, 0.5}, -- NodeBox20 + {-0.4375, 0.25, -0.4375, -0.375, 0.3125, 0.3125}, -- NodeBox23 + {-0.3125, 0.25, 0.375, 0.3125, 0.3125, 0.4375}, -- NodeBox24 + {0.375, 0.25, -0.4375, 0.4375, 0.3125, 0.3125}, -- NodeBox25 + } + }, + selection_box = { + type = "fixed", + fixed = { 0, 0, 0, 0, 0, 0 } + }, +}) + +minetest.register_node("homedecor:trash_can", { + tiles = { + "homedecor_trashcan_tb.png", + "homedecor_trashcan_tb.png", + "homedecor_trashcan_sides.png", + "homedecor_trashcan_sides.png", + "homedecor_trashcan_sides.png", + "homedecor_trashcan_sides.png" + }, + inventory_image = "homedecor_trashcan_inv.png", + description = "Trash Can", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.125, -0.1875, 0.125, 0.125}, -- NodeBox1 + {0.1875, -0.5, -0.125, 0.25, 0.125, 0.125}, -- NodeBox2 + {-0.125, -0.5, -0.25, 0.125, 0.125, -0.1875}, -- NodeBox3 + {-0.125, -0.5, 0.1875, 0.125, 0.125, 0.25}, -- NodeBox4 + {-0.1875, -0.5, 0.125, -0.125, 0.125, 0.1875}, -- NodeBox5 + {-0.1875, -0.5, -0.1875, -0.125, 0.125, -0.125}, -- NodeBox6 + {0.125, -0.5, -0.1875, 0.1875, 0.125, -0.125}, -- NodeBox7 + {0.125, -0.5, 0.125, 0.1875, 0.125, 0.1875}, -- NodeBox8 + {-0.1875, -0.5, -0.1875, 0.1875, -0.4375, 0.1875}, -- NodeBox9 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.25, -0.5, -0.25, 0.25, 0.125, 0.25 } + } +}) + +minetest.register_node("homedecor:well_base", { + tiles = { + "homedecor_well_base_top.png", + "default_cobble.png" + }, + inventory_image = "homedecor_well_inv.png", + description = "Water well", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy = 3 }, + node_box = { + type = "fixed", + fixed = { + {-0.3125, -0.5, -0.4375, 0.3125, 0.5, -0.3125}, -- NodeBox1 + {0.3125, -0.5, -0.3125, 0.4375, 0.5, 0.3125}, -- NodeBox2 + {-0.4375, -0.5, -0.3125, -0.3125, 0.5, 0.3125}, -- NodeBox3 + {-0.3125, -0.5, 0.3125, 0.3125, 0.5, 0.4375}, -- NodeBox4 + {0.25, -0.5, -0.375, 0.375, 0.5, -0.25}, -- NodeBox5 + {0.25, -0.5, 0.25, 0.375, 0.5, 0.375}, -- NodeBox6 + {-0.375, -0.5, -0.375, -0.25, 0.5, -0.25}, -- NodeBox7 + {-0.375, -0.5, 0.25, -0.25, 0.5, 0.375}, -- NodeBox8 + {-0.3125, -0.5, -0.5, 0.3125, -0.3125, -0.4375}, -- NodeBox9 + {0.4375, -0.5, -0.3125, 0.5, -0.3125, 0.3125}, -- NodeBox10 + {-0.3125, -0.5, 0.4375, 0.3125, -0.3125, 0.5}, -- NodeBox11 + {-0.5, -0.5, -0.3125, -0.4375, -0.3125, 0.3125}, -- NodeBox12 + {0.3125, -0.5, -0.4375, 0.4375, -0.3125, -0.3125}, -- NodeBox13 + {0.3125, -0.5, 0.3125, 0.4375, -0.3125, 0.4375}, -- NodeBox14 + {-0.4375, -0.5, 0.3125, -0.3125, -0.3125, 0.4375}, -- NodeBox15 + {-0.4375, -0.5, -0.4375, -0.3125, -0.3125, -0.3125}, -- NodeBox16 + {-0.3125, -0.5, -0.3125, 0.3125, 0, 0.3125}, -- NodeBox17 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 1.5, 0.5 } + }, + on_place = function(itemstack, placer, pointed_thing) + return homedecor.stack_vertically(itemstack, placer, pointed_thing, + "homedecor:well_base", "homedecor:well_top") + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local pos2 = { x = pos.x, y=pos.y + 1, z = pos.z } + if minetest.get_node(pos2).name == "homedecor:well_top" then + minetest.remove_node(pos2) + end + end +}) + +minetest.register_node("homedecor:well_top", { + tiles = { + "homedecor_well_roof_top.png", + "homedecor_well_roof_wood.png", + "homedecor_well_roof_side3.png", + "homedecor_well_roof_side3.png", + "homedecor_well_roof_side2.png", + "homedecor_well_roof_side1.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy = 3 }, + node_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, 0.375, 0.0625, 0.4375, 0.4375}, -- NodeBox1 + {-0.0625, -0.5, -0.4375, 0.0625, 0.4375, -0.375}, -- NodeBox2 + {-0.125, 0.375, -0.5, 0.125, 0.4375, 0.5}, -- NodeBox3 + {0.125, 0.3125, -0.5, 0.1875, 0.375, 0.5}, -- NodeBox4 + {-0.1875, 0.3125, -0.5, -0.125, 0.375, 0.5}, -- NodeBox5 + {0.1875, 0.25, -0.5, 0.25, 0.3125, 0.5}, -- NodeBox6 + {-0.25, 0.25, -0.5, -0.1875, 0.3125, 0.5}, -- NodeBox7 + {0.25, 0.1875, -0.5, 0.3125, 0.25, 0.5}, -- NodeBox8 + {-0.3125, 0.1875, -0.5, -0.25, 0.25, 0.5}, -- NodeBox9 + {0.3125, 0.125, -0.5, 0.375, 0.1875, 0.5}, -- NodeBox10 + {-0.375, 0.125, -0.5, -0.3125, 0.1875, 0.5}, -- NodeBox11 + {0.375, 0.0625, -0.5, 0.4375, 0.125, 0.5}, -- NodeBox12 + {-0.375, 0.0625, -0.5, -0.4375, 0.125, 0.5}, -- NodeBox13 + {0.4375, 0, -0.5, 0.5, 0.0625, 0.5}, -- NodeBox14 + {-0.5, 0, -0.5, -0.4375, 0.0625, 0.5}, -- NodeBox15 + {-0.0625, 0.4375, -0.5, 0.0625, 0.5, 0.5}, -- NodeBox16 + {-0.125, 0.125, -0.4375, 0.125, 0.1875, -0.375}, -- NodeBox17 + {0.125, 0.1875, -0.4375, 0.1875, 0.25, -0.375}, -- NodeBox18 + {-0.1875, 0.1875, -0.4375, -0.125, 0.25, -0.375}, -- NodeBox19 + {-0.125, 0.125, 0.375, 0.125, 0.1875, 0.4375}, -- NodeBox20 + {0.125, 0.1875, 0.375, 0.1875, 0.25, 0.4375}, -- NodeBox21 + {-0.1875, 0.1875, 0.375, -0.125, 0.25, 0.4375}, -- NodeBox22 + {-0.0165975, -0.159751, -0.375, 0.0165974, -0.125, 0.375}, -- NodeBox23 + {-0.00414942, -0.465, -0.008299, 0.008299, -0.159751, 0.004149}, -- NodeBox24 + {-0.0625, -0.0625, -0.5, 0.0625, 0, -0.4646}, -- NodeBox25 + {0.0625, -0.125, -0.5, 0.125, -0.0625, -0.4646}, -- NodeBox26 + {0.125, -0.25, -0.5, 0.1875, -0.125, -0.4646}, -- NodeBox27 + {0.0625, -0.3125, -0.5, 0.125, -0.25, -0.4646}, -- NodeBox28 + {-0.0625, -0.375, -0.5, 0.0625, -0.3125, -0.4646}, -- NodeBox29 + {-0.0625, -0.3125, -0.5, -0.125, -0.25, -0.4646}, -- NodeBox30 + {-0.1875, -0.25, -0.5, -0.125, -0.125, -0.4646}, -- NodeBox31 + {-0.125, -0.125, -0.5, -0.0625, -0.0625, -0.4646}, -- NodeBox32 + {-0.016598, -0.3125, -0.48, 0.020747, -0.0625, -0.49}, -- NodeBox33 + {-0.125, -0.209544, -0.48, 0.125, -0.172199, -0.49}, -- NodeBox34 + {-0.0165975, -0.200, -0.477178, 0.020747, -0.175349, -0.435685}, -- NodeBox35 + {0.1, -0.75, -0.125, 0.125, -0.5, 0.125}, -- NodeBox36 + {-0.125, -0.75, -0.125, -0.1, -0.5, 0.125}, -- NodeBox37 + {-0.125, -0.75, -0.125, 0.125, -0.729253, 0.125}, -- NodeBox38 + {-0.125, -0.75, -0.125, 0.125, -0.5, -0.1}, -- NodeBox39 + {-0.125, -0.75, 0.1, 0.125, -0.5, 0.125}, -- NodeBox40 + {-0.0165975,-0.465, -0.125, 0.0165974, -0.451245, 0.125}, -- NodeBox41 + {-0.0165975, -0.51, 0.112033, 0.0165974, -0.46, 0.125}, -- NodeBox42 + {-0.0165975, -0.51, -0.125, 0.0165974, -0.46, -0.112033}, -- NodeBox43 + } + }, + selection_box = { + type = "fixed", + fixed = { 0, 0, 0, 0, 0, 0 } + }, +}) + +minetest.register_node("homedecor:coatrack_wallmount", { + tiles = { "homedecor_coatrack_wood.png" }, + inventory_image = "homedecor_coatrack_wallmount_inv.png", + description = "Coatrack (wallmounted)", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {-0.375, 0, 0.4375, 0.375, 0.14, 0.5}, -- NodeBox1 + {-0.3025, 0.0475, 0.375, -0.26, 0.09, 0.4375}, -- NodeBox2 + {0.26, 0.0475, 0.375, 0.3025, 0.09, 0.4375}, -- NodeBox3 + {0.0725, 0.0475, 0.375, 0.115, 0.09, 0.4375}, -- NodeBox4 + {-0.115, 0.0475, 0.375, -0.0725, 0.09, 0.4375}, -- NodeBox5 + {0.24, 0.025, 0.352697, 0.3225, 0.115, 0.375}, -- NodeBox6 + {-0.3225, 0.025, 0.352697, -0.24, 0.115, 0.375}, -- NodeBox7 + {-0.135, 0.025, 0.352697, -0.0525, 0.115, 0.375}, -- NodeBox8 + {0.0525, 0.025, 0.352697, 0.135, 0.115, 0.375}, -- NodeBox9 + } + }, +}) + +minetest.register_node("homedecor:coat_tree", { + tiles = { "homedecor_coatrack_wood.png" }, + inventory_image = "homedecor_coatrack_inv.png", + description = "Coat tree", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {0, -0.5, 0, 0.0625, 1.5, 0.0625}, -- NodeBox1 + {-0.125, -0.5, -0.125, 0.1875, -0.4375, 0.1875}, -- NodeBox2 + {0.1875, -0.5, -0.0625, 0.22, -0.4375, 0.125}, -- NodeBox3 + {-0.0625, -0.5, 0.188, 0.125, -0.4375, 0.22}, -- NodeBox4 + {-0.16, -0.5, -0.0625, -0.125, -0.4375, 0.125}, -- NodeBox5 + {-0.0625, -0.5, -0.16, 0.125, -0.4375, -0.125}, -- NodeBox6 + {-0.25, 1.1875, 0, 0.3125, 1.25, 0.0625}, -- NodeBox7 + {0, 1.1875, -0.25, 0.0625, 1.25, 0.3125}, -- NodeBox8 + {-0.0207468, 1.4375, -0.0207468, 0.0829876, 1.5, 0.0829876}, -- NodeBox9 + } + }, +}) + +minetest.register_node("homedecor:doorbell", { + tiles = { "homedecor_doorbell.png" }, + inventory_image = "homedecor_doorbell_inv.png", + description = "Doorbell", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {-0.0625, 0, 0.46875, 0.0625, 0.1875, 0.5}, -- NodeBox1 + {-0.03125, 0.0625, 0.45, 0.03125, 0.125, 0.4675}, -- NodeBox2 + } + }, + on_punch = function(pos, node, puncher, pointed_thing) + minetest.sound_play("homedecor_doorbell", { + pos = pos, + gain = 1.0, + max_hear_distance = 15 + }) + end +}) + +minetest.register_node("homedecor:kitchen_faucet", { + tiles = { "homedecor_bright_metal.png" }, + inventory_image = "homedecor_kitchen_faucet_inv.png", + description = "Kitchen Faucet", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {0, -0.5, 0.375, 0.0625, -0.1875, 0.4375}, -- NodeBox1 + {0, -0.1875, 0.35, 0.0625, -0.15, 0.4375}, -- NodeBox2 + {0, -0.15, 0.32, 0.0625, -0.11, 0.41}, -- NodeBox3 + {0.007, -0.12, 0.17, 0.055, -0.11, 0.1285}, -- NodeBox4 + {0, -0.11, 0.125, 0.0625, -0.07, 0.37}, -- NodeBox5 + {-0.05, -0.48, 0.385, 0.115, -0.455, 0.43}, -- NodeBox6 + {-0.05, -0.49, 0.395, 0.115, -0.445, 0.42}, -- NodeBox7 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.055, -0.5, 0.125, 0.12, -0.065, 0.4375 } + }, +}) + +minetest.register_node("homedecor:cutlery_set", { + tiles = { + "homedecor_cutlery_set_top.png", + "homedecor_cutlery_set_bottom.png", + "homedecor_cutlery_set_sides.png" + }, + inventory_image = "homedecor_cutlery_set_inv.png", + description = "Cutlery set", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {-0.125, -0.5, -0.4375, 0.125, -0.49, -0.1875}, -- NodeBox1 + {0.035, -0.5, -0.12, 0.042, -0.375, -0.036}, -- NodeBox2 + {-0.042, -0.5, -0.12, -0.035, -0.375, -0.036}, -- NodeBox3 + {-0.042, -0.5, -0.12, 0.042, -0.375, -0.112}, -- NodeBox4 + {-0.042, -0.5, -0.044, 0.042, -0.375, -0.036}, -- NodeBox5 + {-0.042, -0.40, -0.12, 0.042, -0.5, -0.036}, -- NodeBox6 + {-0.22, -0.5, -0.45, -0.205, -0.49, -0.245}, -- NodeBox7 + {-0.23, -0.5, -0.245, -0.195, -0.49, -0.24}, -- NodeBox8 + {-0.23, -0.5, -0.24, -0.225, -0.49, -0.1875}, -- NodeBox9 + {-0.22, -0.5, -0.24, -0.215, -0.49, -0.1875}, -- NodeBox10 + {-0.21, -0.5, -0.24, -0.205, -0.49, -0.1875}, -- NodeBox11 + {-0.2, -0.5, -0.24, -0.195, -0.49, -0.1875}, -- NodeBox12 + {0.205, -0.5, -0.45, 0.22, -0.49, -0.3125}, -- NodeBox13 + {0.193, -0.5, -0.3125, 0.22, -0.49, -0.185839}, -- NodeBox14 + {0.2, -0.5, -0.322, 0.22, -0.49, -0.175}, -- NodeBox15 + {-0.1095, -0.5, -0.1875, 0.1095, -0.48, -0.172}, -- NodeBox16 + {-0.1095, -0.5, -0.453, 0.1095, -0.48, -0.4375}, -- NodeBox17 + {-0.14, -0.5, -0.422, -0.125, -0.48, -0.203}, -- NodeBox18 + {0.125, -0.5, -0.422, 0.14, -0.48, -0.203}, -- NodeBox19 + {-0.125, -0.5, -0.203, -0.1095, -0.48, -0.1875}, -- NodeBox20 + {0.1095, -0.5, -0.203, 0.125, -0.48, -0.1875}, -- NodeBox21 + {-0.125, -0.5, -0.4375, -0.1095, -0.48, -0.422}, -- NodeBox22 + {0.1095, -0.5, -0.4375, 0.125, -0.48, -0.422}, -- NodeBox23 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.25, -0.5, -0.5, 0.25, -0.375, 0 } + } +}) + +minetest.register_node("homedecor:bottle_brown", { + tiles = { + "homedecor_bottle_brown_top.png", + "homedecor_bottle_brown_sides.png" + }, + inventory_image = "homedecor_bottle_brown_inv.png", + description = "Brown bottle", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + use_texture_alpha = true, + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {-0.032, -0.50, -0.11, 0.032, -0.3, -0.046}, -- NodeBox1 + {-0.016, -0.30, -0.094, 0.016, -0.2, -0.062}, -- NodeBox2 + } + } +}) + +minetest.register_node("homedecor:bottle_green", { + tiles = { + "homedecor_bottle_green_top.png", + "homedecor_bottle_green_sides.png" + }, + inventory_image = "homedecor_bottle_green_inv.png", + description = "Green bottle", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + use_texture_alpha = true, + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {-0.032, -0.50, -0.11, 0.032, -0.3, -0.046}, -- NodeBox1 + {-0.016, -0.30, -0.094, 0.016, -0.2, -0.062}, -- NodeBox2 + } + } +}) + +minetest.register_node("homedecor:coffee_maker", { + tiles = { + "homedecor_coffeemaker_top.png", + "homedecor_coffeemaker_bottom.png", + "homedecor_coffeemaker_right.png", + "homedecor_coffeemaker_left.png", + "homedecor_coffeemaker_back.png", + "homedecor_coffeemaker_front.png" + }, + description = "Coffee Maker", + inventory_image = "homedecor_coffeemaker_inv.png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {0.0625, -0.5, -0.025, 0.375, -0.375, 0.5}, -- NodeBox1 + {0.0625, -0.375, 0.3125, 0.375, 0, 0.5}, -- NodeBox2 + {0.0625, -0.052, 0.02, 0.375, 0.19, 0.5}, -- NodeBox3 + {0.078, -0.375, 0, 0.36, -0.0625, 0.3125}, -- NodeBox4 + {0.1875, -0.098, -0.0525, 0.25, -0.078, 0}, -- NodeBox5 + {0.1875, -0.36, -0.090, 0.25, -0.078, -0.0525}, -- NodeBox6 + {0.1875, -0.36, -0.0525, 0.25, -0.34, 0}, -- NodeBox7 + {-0.1875, -0.5, -0.3125, -0.1, -0.4, -0.225}, -- NodeBox8 + {-0.1975, -0.5, -0.3225, -0.1, -0.375, -0.3125}, -- NodeBox9 + {-0.1975, -0.5, -0.235, -0.1, -0.375, -0.225}, -- NodeBox10 + {-0.1975, -0.5, -0.3225, -0.1875, -0.375, -0.225}, -- NodeBox11 + {-0.11, -0.5, -0.3225, -0.1, -0.375, -0.225}, -- NodeBox12 + {-0.1, -0.485, -0.2838, -0.06, -0.475, -0.2638}, -- NodeBox13 + {-0.1, -0.4, -0.2838, -0.06, -0.39, -0.2638}, -- NodeBox14 + {-0.075, -0.485, -0.2838, -0.06, -0.39, -0.2638}, -- NodeBox15 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.22, -0.5, -0.35, 0.4, 0.21, 0.5 } + } +}) + +minetest.register_node("homedecor:dartboard", { + description = "Dartboard", + drawtype = "signlike", + tiles = {"homedecor_dartboard.png"}, + inventory_image = "homedecor_dartboard.png", + wield_image = "homedecor_dartboard.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "wallmounted", + }, + groups = {choppy=2,dig_immediate=2,attached_node=1}, + legacy_wallmounted = true, + sounds = default.node_sound_defaults(), +}) + +minetest.register_node("homedecor:piano_left", { + tiles = { + "homedecor_piano_top_left.png", + "homedecor_piano_sides.png", + "homedecor_piano_sides.png", + "homedecor_piano_sides.png", + "homedecor_piano_sides.png", + "homedecor_piano_front_left.png", + }, + inventory_image = "homedecor_piano_inv.png", + description = "Piano", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy = 3 }, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0.1875, 0.5, 0.5, 0.5}, -- NodeBox1 + {-0.5, 0.0625, -0.125, -0.4375, 0.25, 0.1875}, -- NodeBox2 + {-0.5, -0.5, -0.125, -0.4375, -0.375, 0.1875}, -- NodeBox3 + {-0.5, -0.375, -0.0625, -0.4375, 0.0625, 0}, -- NodeBox4 + {-0.5, 0.0625, -0.0625, 0.5, 0.1875, 0.1875}, -- NodeBox5 + {-0.4375, 0.1875, 0.15, 0.5, 0.4375, 0.1875}, -- NodeBox6 + {0.3594, -0.5, 0, 0.4062, -0.46875, 0.25}, -- left-most pedal + {0.4844, -0.5, 0, 0.5, -0.46875, 0.25}, -- half of center pedal + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.125, 1.5, 0.5, 0.5 } + }, + on_place = function(itemstack, placer, pointed_thing) + return homedecor.stack_sideways(itemstack, placer, pointed_thing, + "homedecor:piano_left", "homedecor:piano_right", true) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local fdir = oldnode.param2 + if not fdir or fdir > 3 then return end + local pos2 = { x = pos.x + homedecor.fdir_to_right[fdir+1][1], y=pos.y, z = pos.z + homedecor.fdir_to_right[fdir+1][2] } + if minetest.get_node(pos2).name == "homedecor:piano_right" then + minetest.remove_node(pos2) + end + end +}) + +minetest.register_node("homedecor:piano_right", { + tiles = { + "homedecor_piano_top_right.png", + "homedecor_piano_sides.png", + "homedecor_piano_sides.png", + "homedecor_piano_sides.png", + "homedecor_piano_sides.png", + "homedecor_piano_front_right.png", + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy = 3, not_in_creative_inventory=1 }, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0.1875, 0.5, 0.5, 0.5}, -- NodeBox1 + {0.4375, -0.5, -0.125, 0.5, -0.375, 0.1875}, -- NodeBox2 + {0.4375, 0.0625, -0.125, 0.5, 0.25, 0.1875}, -- NodeBox3 + {0.4375, -0.375, -0.0625, 0.5, 0.0625, 0}, -- NodeBox4 + {-0.5, 0.0625, -0.0625, 0.4375, 0.1875, 0.1875}, -- NodeBox5 + {-0.5, 0.1875, 0.15, 0.4375, 0.4375, 0.1875}, -- NodeBox6 + {-0.5, -0.5, 0, -0.4688, -0.46875, 0.25}, -- half of center pedal + {-0.3905, -0.5, 0, -0.3438, -0.46875, 0.25}, -- right-most pedal + + } + }, + selection_box = { + type = "fixed", + fixed = { 0, 0, 0, 0, 0, 0 } + } +}) + +minetest.register_node("homedecor:toaster", { + description = "Toaster", + tiles = { + "homedecor_toaster_top.png", + "homedecor_toaster_sides.png", + "homedecor_toaster_sides.png", + "homedecor_toaster_sides.png", + "homedecor_toaster_sides.png", + "homedecor_toaster_sides.png" + }, + inventory_image = "homedecor_toaster_inv.png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + groups = { snappy=3 }, + node_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, -0.125, 0.125, -0.3125, 0.125}, -- NodeBox1 + }, + }, + on_rightclick = function(pos, node, clicker) + local fdir = node.param2 + minetest.set_node(pos, { name = "homedecor:toaster_loaf", param2 = fdir }) + minetest.sound_play("toaster", { + pos = pos, + gain = 1.0, + max_hear_distance = 5 + }) + end +}) + +minetest.register_node("homedecor:toaster_loaf", { + tiles = { + "homedecor_toaster_toploaf.png", + "homedecor_toaster_sides.png", + "homedecor_toaster_sides.png", + "homedecor_toaster_sides.png", + "homedecor_toaster_sides.png", + "homedecor_toaster_sides.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + groups = { snappy=3, not_in_creative_inventory=1 }, + node_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, -0.125, 0.125, -0.3125, 0.125}, -- NodeBox1 + {-0.03125, -0.3125, -0.0935, 0, -0.25, 0.0935}, -- NodeBox2 + {0.0625, -0.3125, -0.0935, 0.0935, -0.25, 0.0935}, -- NodeBox3 + }, + }, + on_rightclick = function(pos, node, clicker) + local fdir = node.param2 + minetest.set_node(pos, { name = "homedecor:toaster", param2 = fdir }) + end, + drop = "homedecor:toaster" +}) + +-- convert old pool tables into newer model + +minetest.register_abm({ + nodenames = { "homedecor:pool_table2" }, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local swap_fdir = { 2, 3, 0, 1 } + local fdir = swap_fdir[node.param2+1] + minetest.set_node(pos, {name = "homedecor:pool_table_2", param2 = fdir}) + end +}) + +minetest.register_node("homedecor:trophy", { + description = "Trophy", + tiles = { + "default_gold_block.png" + }, + inventory_image = "homedecor_trophy_inv.png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy=3 }, + node_box = { + type = "fixed", + fixed = { + {-0.125, -0.5, -0.125, 0.1875, -0.4375, 0.1875}, -- NodeBox1 + {-0.0625, -0.4375, -0.0625, 0.125, -0.375, 0.125}, -- NodeBox2 + {-0.02, -0.375, -0.02, 0.0825, -0.1875, 0.0825}, -- NodeBox3 + {-0.0625, -0.1875, -0.0625, 0.125, -0.125, 0.125}, -- NodeBox4 + {-0.125, -0.1875, -0.0625, -0.0625, 0.125, 0.125}, -- NodeBox5 + {0.125, -0.1875, -0.0625, 0.1875, 0.125, 0.125}, -- NodeBox6 + {-0.125, -0.1875, 0.125, 0.1875, 0.125, 0.1875}, -- NodeBox7 + {-0.125, -0.1875, -0.125, 0.1875, 0.125, -0.0625}, -- NodeBox8 + {-0.0625, -0.25, -0.0625, 0.125, -0.1875, 0.125}, -- NodeBox9 + {0.1875, 0.05, 0, 0.23, 0.0925, 0.0625}, -- NodeBox10 + {0.1875, -0.15, 0, 0.23, -0.11, 0.0625}, -- NodeBox11 + {0.23, -0.15, 0, 0.2725, 0.0925, 0.0625}, -- NodeBox12 + {-0.1675, -0.15, 0, -0.125, -0.11, 0.0625}, -- NodeBox13 + {-0.1675, 0.05, 0, -0.125, 0.0925, 0.0625}, -- NodeBox14 + {-0.21, -0.15, 0, -0.1675, 0.0925, 0.0625}, -- NodeBox15 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.21, -0.5, -0.125, 0.2725, 0.125, 0.1875 } + } +}) + +minetest.register_node("homedecor:sportbench", { + description = "Sport bench", + tiles = { + "homedecor_sportbench_top.png", + "wool_black.png", + "homedecor_sportbench_right.png", + "homedecor_sportbench_left.png", + "homedecor_sportbench_bottom.png", + "homedecor_sportbench_front.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy=3 }, + node_box = { + type = "fixed", + fixed = { + {-0.1875, -0.3125, -0.5, 0.1875, -0.25, 0.5}, -- NodeBox1 + {-0.1875, -0.5, -0.5, -0.125, -0.3125, -0.4375}, -- NodeBox2 + {0.125, -0.5, -0.5, 0.1875, -0.3125, -0.4375}, -- NodeBox3 + {0.1875, -0.5, 0.375, 0.25, 0.375, 0.4375}, -- NodeBox4 + {-0.25, -0.5, 0.375, -0.1875, 0.375, 0.4375}, -- NodeBox5 + {-0.5, 0.125, 0.36, 0.5, 0.14, 0.375}, -- NodeBox6 + {0.3125, 0, 0.225, 0.35, 0.285, 0.5}, -- NodeBox7 + {-0.35, 0, 0.225, -0.3125, 0.285, 0.5}, -- NodeBox8 + {-0.1875, -0.375, 0.375, 0.1875, -0.3125, 0.4375}, -- NodeBox9 + {-0.23, 0.11, 0.33, -0.2075, 0.125, 0.375}, -- NodeBox10 + {0.2075, 0.11, 0.33, 0.23, 0.125, 0.375}, -- NodeBox11 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.4, -0.5, -0.5, 0.4, 0.375, 0.5 } + } +}) + +minetest.register_node("homedecor:skateboard", { + description = "Skateboard", + tiles = { + "homedecor_skateboard_top.png", + "homedecor_skateboard_bottom.png", + "homedecor_skateboard_sides.png" + }, + inventory_image = "homedecor_skateboard_inv.png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy=3 }, + node_box = { + type = "fixed", + fixed = { + {-0.4375, -0.4375, -0.1875, 0.4375, -0.415, 0.125}, -- NodeBox1 + {-0.375, -0.5, 0.0625, -0.3125, -0.4375, 0.125}, -- NodeBox2 + {-0.375, -0.5, -0.1875, -0.3125, -0.4375, -0.125}, -- NodeBox3 + {0.3125, -0.5, 0.0625, 0.375, -0.4375, 0.125}, -- NodeBox4 + {0.3125, -0.5, -0.1875, 0.375, -0.4375, -0.125}, -- NodeBox5 + {-0.5, -0.4375, -0.16, -0.4375, -0.415, 0.0975}, -- NodeBox6 + {0.4375, -0.4375, -0.16, 0.5, -0.415, 0.0975}, -- NodeBox7 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.2, 0.5, -0.40, 0.125 } + }, + on_place = minetest.rotate_node +}) + +minetest.register_node("homedecor:copper_pans", { + description = "Copper pans", + tiles = { + "homedecor_polished_copper.png" + }, + inventory_image = "homedecor_copper_pans_inv.png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy=3 }, + node_box = { + type = "fixed", + fixed = { + {-0.375, -0.5, -0.1875, -0.0625, -0.48, 0.125}, -- NodeBox1 + {-0.375, -0.48, -0.1875, -0.36, -0.3125, 0.125}, -- NodeBox2 + {-0.0775, -0.48, -0.1875, -0.0625, -0.3125, 0.125}, -- NodeBox3 + {-0.375, -0.48, 0.11, -0.0625, -0.3125, 0.125}, -- NodeBox4 + {-0.375, -0.48, -0.1875, -0.0625, -0.3125, -0.1725}, -- NodeBox5 + {-0.25, -0.36, -0.5, -0.1875, -0.33, -0.1875}, -- NodeBox6 + {0.0625, -0.5, 0, 0.375, -0.48, 0.3125}, -- NodeBox7 + {0.0625, -0.48, 0, 0.0775, -0.3125, 0.3125}, -- NodeBox8 + {0.36, -0.48, 0, 0.375, -0.3125, 0.3125}, -- NodeBox9 + {0.0625, -0.48, 0, 0.375, -0.3125, 0.0175}, -- NodeBox10 + {0.0625, -0.48, 0.295, 0.375, -0.3125, 0.3125}, -- NodeBox11 + {0.1875, -0.36, -0.3125, 0.25, -0.33, 0}, -- NodeBox12 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.375, -0.5, -0.5, 0.375, -0.3125, 0.3125 } + }, + on_place = minetest.rotate_node +}) + +minetest.register_node("homedecor:paper_towel", { + tiles = { + "homedecor_paper_towel_sides.png", + "homedecor_paper_towel_sides.png", + "homedecor_paper_towel_ends.png", + "homedecor_paper_towel_ends.png", + "homedecor_paper_towel_sides.png", + "homedecor_paper_towel_sides.png" + }, + inventory_image = "homedecor_paper_towel_inv.png", + description = "Paper towels", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.4375, 0.1875, 0.4375, -0.375, 0.375, 0.5}, -- NodeBox1 + {0.375, 0.1875, 0.4375, 0.4375, 0.375, 0.5}, -- NodeBox2 + {-0.4375, 0.25, 0.1875, -0.375, 0.3125, 0.5}, -- NodeBox3 + {0.375, 0.25, 0.1875, 0.4375, 0.3125, 0.5}, -- NodeBox4 + {-0.375, 0.125, 0.125, 0.375, 0.4375, 0.3125}, -- NodeBox5 + {-0.375, 0.1875, 0.0625, 0.375, 0.375, 0.375}, -- NodeBox6 + } + }, + groups = { snappy=3 } +}) + +minetest.register_node("homedecor:stonepath", { + description = "Garden stone path", + tiles = { + "default_stone.png" + }, + inventory_image = "homedecor_stonepath_inv.png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy=3 }, + node_box = { + type = "fixed", + fixed = { + {-0.4375, -0.5, 0.3125, -0.3125, -0.48, 0.4375}, -- NodeBox1 + {-0.25, -0.5, 0.125, 0, -0.48, 0.375}, -- NodeBox2 + {0.125, -0.5, 0.125, 0.4375, -0.48, 0.4375}, -- NodeBox3 + {-0.4375, -0.5, -0.125, -0.25, -0.48, 0.0625}, -- NodeBox4 + {-0.0625, -0.5, -0.25, 0.25, -0.48, 0.0625}, -- NodeBox5 + {0.3125, -0.5, -0.25, 0.4375, -0.48, -0.125}, -- NodeBox6 + {-0.3125, -0.5, -0.375, -0.125, -0.48, -0.1875}, -- NodeBox7 + {0.125, -0.5, -0.4375, 0.25, -0.48, -0.3125}, -- NodeBox8 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.4375, -0.5, -0.4375, 0.4375, -0.4, 0.4375 } + } +}) + +minetest.register_node("homedecor:barbecue", { + description = "Barbecue", + tiles = { + {name="homedecor_barbecue_top.png", animation={type="vertical_frames", + aspect_w=16, aspect_h=16, length=2}}, + "forniture_black_metal.png", + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy=3 }, + light_source = 9, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0.25, -0.4375, 0.0625, 0.3125}, -- NodeBox1 + {0.4375, -0.5, 0.25, 0.5, 0.0625, 0.3125}, -- NodeBox2 + {-0.5, -0.5, -0.3125, -0.4375, 0.0625, -0.25}, -- NodeBox3 + {0.4375, -0.5, -0.3125, 0.5, 0.0625, -0.25}, -- NodeBox4 + {-0.5, 0.0625, -0.3125, 0.5, 0.375, 0.3125}, -- NodeBox5 + {-0.375, 0.5, -0.25, -0.313, 0.5, 0.251}, -- NodeBox6 + {-0.25, 0.5, -0.25, -0.188, 0.5, 0.251}, -- NodeBox7 + {-0.125, 0.5, -0.25, -0.063, 0.5, 0.251}, -- NodeBox8 + {0, 0.5, -0.25, 0.062, 0.5, 0.251}, -- NodeBox9 + {0.125, 0.5, -0.25, 0.187, 0.5, 0.251}, -- NodeBox10 + {0.25, 0.5, -0.25, 0.312, 0.5, 0.251}, -- NodeBox11 + {0.375, 0.5, -0.25, 0.437, 0.5, 0.251}, -- NodeBox12 + {-0.5, 0.375, 0.251, 0.5, 0.5, 0.3125}, -- NodeBox13 + {-0.5, 0.0625, -0.3125, 0.5, 0.5, -0.25}, -- NodeBox14 + {-0.5, 0.0625, -0.3125, -0.438, 0.5, 0.3125}, -- NodeBox15 + {0.4375, 0.0625, -0.3125, 0.5, 0.5, 0.3125}, -- NodeBox16 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.3125, 0.5, 0.625, 0.3125 } + }, + on_place = function(itemstack, placer, pointed_thing) + return homedecor.stack_vertically(itemstack, placer, pointed_thing, + "homedecor:barbecue", "homedecor:barbecue_meat") + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local pos2 = { x = pos.x, y=pos.y + 1, z = pos.z } + if minetest.get_node(pos2).name == "homedecor:barbecue_meat" then + minetest.remove_node(pos2) + end + end +}) + +minetest.register_node("homedecor:barbecue_meat", { + tiles = { + "homedecor_barbecue_meat.png", + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy=3, not_in_creative_inventory=1 }, + node_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.125, -0.0625, -0.4375, 0.125}, -- NodeBox1 + {0.125, -0.5, -0.125, 0.3125, -0.4375, 0.125}, -- NodeBox2 + } + }, + selection_box = { + type = "fixed", + fixed = { 0, 0, 0, 0, 0, 0 } + } +}) + +minetest.register_node("homedecor:beer_tap", { + description = "Beer tap", + tiles = { + "homedecor_beertap_front.png", + "homedecor_beertap_front.png", + "homedecor_beertap_right.png", + "homedecor_beertap_left.png", + "homedecor_beertap_front.png", + "homedecor_beertap_front.png" + }, + inventory_image = "homedecor_beertap_inv.png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy=3 }, + node_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.4375, 0.25, -0.48, 0}, -- NodeBox1 + {-0.0625, -0.48, -0.1875, 0.0625, 0.125, -0.0625}, -- NodeBox2 + {-0.1875, 0, -0.375, -0.125, 0.0315, -0.125}, -- NodeBox3 + {-0.1875, 0, -0.1875, 0.1875, 0.0315, -0.125}, -- NodeBox4 + {0.125, 0, -0.375, 0.1875, 0.0315, -0.125}, -- NodeBox5 + {0.135, 0.0315, -0.3225, 0.1775, 0.235, -0.29}, -- NodeBox6 + {-0.1775, 0.0315, -0.3225, -0.135, 0.235, -0.29}, -- NodeBox7 + {-0.1675, -0.0825, -0.355, -0.145, 0, -0.3325}, -- NodeBox8 + {0.145, -0.0825, -0.355, 0.1675, 0, -0.3325}, -- NodeBox9 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.25, -0.5, -0.4375, 0.25, 0.235, 0 } + }, + on_punch = function(pos, node, puncher, pointed_thing) + local wielditem = puncher:get_wielded_item() + local inv = puncher:get_inventory() + + local wieldname = wielditem:get_name() + if wieldname == "vessels:drinking_glass" then + if inv:room_for_item("main", "homedecor:beer_mug 1") then + wielditem:take_item() + puncher:set_wielded_item(wielditem) + inv:add_item("main", "homedecor:beer_mug 1") + minetest.chat_send_player(puncher:get_player_name(), "Ahh, a frosty cold beer - look in your inventory for it!") + else + minetest.chat_send_player(puncher:get_player_name(), "No room in your inventory to add a beer mug!") + end + end + end +}) + +minetest.register_node("homedecor:beer_mug", { + description = "Beer mug", + tiles = { + "homedecor_beer_top.png", + "homedecor_beer_bottom.png", + "homedecor_beer_right.png", + "homedecor_beer_left.png", + "homedecor_beer_back.png", + "homedecor_beer_front.png" + }, + inventory_image = "homedecor_beer_inv.png", + use_texture_alpha = true, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy=3, oddly_breakable_by_hand=3 }, + sounds = default.node_sound_glass_defaults(), + node_box = { + type = "fixed", + fixed = { + {-0.125, -0.5, -0.25, 0.0625, -0.25, -0.0625}, -- NodeBox1 + {0.0625, -0.3125, -0.18, 0.135, -0.285, -0.14}, -- NodeBox2 + {0.1, -0.465, -0.18, 0.135, -0.285, -0.14}, -- NodeBox3 + {0.0625, -0.465, -0.18, 0.135, -0.4375, -0.14}, -- NodeBox4 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.125, -0.5, -0.25, 0.135, -0.25, -0.0625 } + } +}) + +minetest.register_node("homedecor:tool_cabinet_bottom", { + description = "Metal tool cabinet and work table", + tiles = { + "homedecor_tool_cabinet_bottom_top.png", + "homedecor_tool_cabinet_bottom_sides.png", + "homedecor_tool_cabinet_bottom_sides.png", + "homedecor_tool_cabinet_bottom_sides.png", + "homedecor_tool_cabinet_bottom_sides.png", + "homedecor_tool_cabinet_bottom_front.png" + }, + inventory_image = "homedecor_tool_cabinet_inv.png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy=3 }, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0.4375, -0.4375, -0.375, 0.5}, -- NodeBox1 + {-0.5, -0.5, -0.5, -0.4375, -0.375, -0.4375}, -- NodeBox2 + {0.4375, -0.5, 0.4375, 0.5, -0.375, 0.5}, -- NodeBox3 + {0.4375, -0.5, -0.5, 0.5, -0.375, -0.4375}, -- NodeBox4 + {-0.5, -0.375, -0.5, 0.5, 0.5, 0.5}, -- NodeBox5 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 1.5, 0.5 } + }, + on_place = function(itemstack, placer, pointed_thing) + return homedecor.stack_vertically(itemstack, placer, pointed_thing, + "homedecor:tool_cabinet_bottom", "homedecor:tool_cabinet_top") + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local pos2 = { x = pos.x, y=pos.y + 1, z = pos.z } + if minetest.get_node(pos2).name == "homedecor:tool_cabinet_top" then + minetest.remove_node(pos2) + end + end +}) + +minetest.register_node("homedecor:tool_cabinet_top", { + tiles = { + "homedecor_tool_cabinet_top_top.png", + "homedecor_tool_cabinet_top_bottom.png", + "homedecor_tool_cabinet_top_right.png", + "homedecor_tool_cabinet_top_left.png", + "homedecor_tool_cabinet_top_back.png", + "homedecor_tool_cabinet_top_front.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy=3, not_in_creative_inventory=1 }, + node_box = { + type = "fixed", + fixed = { + {-0.1875, -0.5, 0.4375, 0.5, 0.5, 0.5}, -- NodeBox1 + {-0.5, -0.5, -0.4375, -0.1875, -0.4375, 0.125}, -- NodeBox2 + {-0.375, -0.4375, 0, -0.3125, 0.1875, 0.0625}, -- NodeBox3 + {-0.4375, -0.1875, -0.375, -0.25, 0.125, 0.125}, -- NodeBox4 + {-0.25, -0.0625, -0.3125, -0.22, 0.3125, -0.2825}, -- NodeBox5 + {-0.375, -0.1875, -0.25, -0.3125, -0.218, -0.3125}, -- NodeBox6 + {-0.35, -0.32, -0.285, -0.3375, -0.218, -0.2725}, -- NodeBox7 + {0, -0.3125, 0.375, 0.0625, 0.1875, 0.4375}, -- NodeBox8 + {0.125, 0.1875, 0.375, 0.1875, 0.25, 0.4375}, -- NodeBox9 + {-0.0625, 0.1875, 0.375, 0.125, 0.3125, 0.4375}, -- NodeBox10 + {0.343, -0.125, 0.42, 0.375, 0.125, 0.4375}, -- NodeBox11 + {0.3125, 0.095, 0.42, 0.343, 0.1575, 0.4375}, -- NodeBox12 + {0.375, 0.095, 0.42, 0.405, 0.1575, 0.4375}, -- NodeBox13 + {0.3125, -0.155, 0.42, 0.343, -0.093, 0.4375}, -- NodeBox14 + {0.375, -0.155, 0.42, 0.405, -0.093, 0.4375}, -- NodeBox15 + } + }, + selection_box = { + type = "fixed", + fixed = { 0, 0, 0, 0, 0, 0 } + } +}) + +minetest.register_node("homedecor:swing", { + description = "Tree's swing", + tiles = { + "homedecor_swing_top.png", + "homedecor_swing_bottom.png", + "homedecor_swing_sides.png" + }, + inventory_image = "homedecor_swing_inv.png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy=3, oddly_breakable_by_hand=3 }, + node_box = { + type = "fixed", + fixed = { + {-0.3125, 0.33, -0.125, 0.3125, 0.376, 0.1875}, -- NodeBox1 + {-0.3125, 0.376, 0.025, -0.3, 0.5, 0.0375}, -- NodeBox2 + { 0.3, 0.376, 0.025, 0.3125, 0.5, 0.0375}, -- NodeBox3 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.3125, 0.33, -0.125, 0.3125, 0.5, 0.1875 } + }, + on_place = function(itemstack, placer, pointed_thing) + isceiling, pos = homedecor.find_ceiling(itemstack, placer, pointed_thing) + if isceiling then + local height = 0 + + for i = 0, 4 do -- search up to 5 spaces downward from the ceiling for the first non-buildable-to node... + height = i + local testpos = { x=pos.x, y=pos.y-i-1, z=pos.z } + local testnode = minetest.get_node(testpos) + local testreg = core.registered_nodes[testnode.name] + + if not testreg.buildable_to then + if i < 1 then + minetest.chat_send_player(placer:get_player_name(), "No room under there to hang a swing.") + return + else + break + end + end + end + + for j = 0, height do -- then fill that space with ropes... + local testpos = { x=pos.x, y=pos.y-j, z=pos.z } + local testnode = minetest.get_node(testpos) + local testreg = core.registered_nodes[testnode.name] + minetest.set_node(testpos, { name = "homedecor:swing_rope", param2 = fdir }) + end + + minetest.set_node({ x=pos.x, y=pos.y-height, z=pos.z }, { name = "homedecor:swing", param2 = fdir }) + + if not homedecor.expect_infinite_stacks then + itemstack:take_item() + return itemstack + end + + else + minetest.chat_send_player(placer:get_player_name(), "You have to point at the bottom side of an overhanging object to place a swing.") + end + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + for i = 0, 4 do + local testpos = { x=pos.x, y=pos.y+i+1, z=pos.z } + if minetest.get_node(testpos).name == "homedecor:swing_rope" then + minetest.remove_node(testpos) + else + return + end + end + end +}) + +minetest.register_node("homedecor:swing_rope", { + tiles = { + "homedecor_swingrope_sides.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { not_in_creative_inventory=1 }, + node_box = { + type = "fixed", + fixed = { + {-0.3125, -0.5, 0.025, -0.3, 0.5, 0.0375}, -- NodeBox1 + {0.3, -0.5, 0.025, 0.3125, 0.5, 0.0375}, -- NodeBox2 + } + }, + selection_box = { + type = "fixed", + fixed = { 0, 0, 0, 0, 0, 0 } + } +}) + +local bookcolors = { + "red", + "green", + "blue" +} + +for c in ipairs(bookcolors) do + local color = bookcolors[c] + local color_d = S(bookcolors[c]) + +minetest.register_node("homedecor:book_"..color, { + description = S("Book (%s)"):format(color_d), + tiles = { + "homedecor_book_"..color.."_top.png", + "homedecor_book_"..color.."_bottom.png", + "homedecor_book_right.png", + "homedecor_book_"..color.."_left.png", + "homedecor_book_back.png", + "homedecor_book_front.png" + }, + inventory_image = "homedecor_book_"..color.."_inv.png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy=3, oddly_breakable_by_hand=3 }, + node_box = { + type = "fixed", + fixed = { + {0, -0.5, -0.375, 0.3125, -0.4375, 0.0625}, -- NodeBox1 + } + }, + on_punch = function(pos, node, puncher, pointed_thing) + local fdir = node.param2 + minetest.set_node(pos, { name = "homedecor:book_open_"..color, param2 = fdir }) + end, +}) + +minetest.register_node("homedecor:book_open_"..color, { + tiles = { + "homedecor_book_open_top.png", + "homedecor_book_open_"..color.."_bottom.png", + "homedecor_book_open_sides.png", + "homedecor_book_open_sides.png", + "homedecor_book_open_sides.png", + "homedecor_book_open_sides.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy=3, oddly_breakable_by_hand=3, not_in_creative_inventory=1 }, + node_box = { + type = "fixed", + fixed = { + {-0.3125, -0.5, -0.375, 0.3125, -0.47, 0.0625}, -- NodeBox1 + } + }, + drop = "homedecor:book_"..color, + on_punch = function(pos, node, puncher, pointed_thing) + local fdir = node.param2 + minetest.set_node(pos, { name = "homedecor:book_"..color, param2 = fdir }) + end, +}) + +end + +minetest.register_node("homedecor:calendar", { + description = "Calendar", + drawtype = "signlike", + tiles = {"homedecor_calendar.png"}, + inventory_image = "homedecor_calendar.png", + wield_image = "homedecor_calendar.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "wallmounted", + }, + groups = {choppy=2,dig_immediate=2,attached_node=1}, + legacy_wallmounted = true, + sounds = default.node_sound_defaults(), +}) diff --git a/mods/homedecor_modpack/homedecor/models/homedecor_desk_fan.b3d b/mods/homedecor_modpack/homedecor/models/homedecor_desk_fan.b3d new file mode 100644 index 00000000..d49e8b1f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/models/homedecor_desk_fan.b3d differ diff --git a/mods/homedecor_modpack/homedecor/models/homedecor_desk_fan_uv.png b/mods/homedecor_modpack/homedecor/models/homedecor_desk_fan_uv.png new file mode 100644 index 00000000..b6204e54 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/models/homedecor_desk_fan_uv.png differ diff --git a/mods/homedecor_modpack/homedecor/nightstands.lua b/mods/homedecor_modpack/homedecor/nightstands.lua new file mode 100644 index 00000000..96fba084 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/nightstands.lua @@ -0,0 +1,261 @@ +-- This file supplies nightstands + +local S = homedecor.gettext + +minetest.register_node('homedecor:nightstand_oak_one_drawer', { + drawtype = "nodebox", + description = S("Oak Nightstand with One Drawer"), + tiles = { 'homedecor_nightstand_oak_top.png', + 'homedecor_nightstand_oak_bottom.png', + 'homedecor_nightstand_oak_right.png', + 'homedecor_nightstand_oak_left.png', + 'homedecor_nightstand_oak_back.png', + 'homedecor_nightstand_oak_1_drawer_front.png'}, + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 } + }, + node_box = { + type = "fixed", + fixed = { + { -8/16, 0, -30/64, 8/16, 8/16, 8/16 }, -- top half + { -7/16, 1/16, -32/64, 7/16, 7/16, -29/64}, -- drawer face + { -8/16, -8/16, -30/64, -7/16, 0, 8/16 }, -- left + { 7/16, -8/16, -30/64, 8/16, 0, 8/16 }, -- right + { -8/16, -8/16, 7/16, 8/16, 0, 8/16 }, -- back + { -8/16, -8/16, -30/64, 8/16, -7/16, 8/16 } -- bottom + } + }, + groups = { snappy = 3 }, + sounds = default.node_sound_wood_defaults(), + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[8,6]".. + "list[current_name;main;0,0;8,1;]".. + "list[current_player;main;0,2;8,4;]") + meta:set_string("infotext", S("One-drawer Nightstand")) + local inv = meta:get_inventory() + inv:set_size("main", 8) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", S("%s moves stuff in nightstand at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", S("%s moves stuff to nightstand at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", S("%s takes stuff from nightstand at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, +}) + +minetest.register_node('homedecor:nightstand_oak_two_drawers', { + drawtype = "nodebox", + description = S("Oak Nightstand with Two Drawers"), + tiles = { 'homedecor_nightstand_oak_top.png', + 'homedecor_nightstand_oak_bottom.png', + 'homedecor_nightstand_oak_right.png', + 'homedecor_nightstand_oak_left.png', + 'homedecor_nightstand_oak_back.png', + 'homedecor_nightstand_oak_2_drawer_front.png'}, + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 } + }, + node_box = { + type = "fixed", + fixed = { + { -8/16, -8/16, -30/64, 8/16, 8/16, 8/16 }, -- main body + { -7/16, 1/16, -32/64, 7/16, 7/16, -29/64 }, -- top drawer face + { -7/16, -7/16, -32/64, 7/16, -1/16, -29/64 }, -- bottom drawer face + + } + }, + groups = { snappy = 3 }, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[8,7]".. + "list[current_name;main;0,0;8,2;]".. + "list[current_player;main;0,3;8,4;]") + meta:set_string("infotext", S("Two-drawer Nightstand")) + local inv = meta:get_inventory() + inv:set_size("main", 16) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", S("%s moves stuff in nightstand at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", S("%s moves stuff to nightstand at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", S("%s takes stuff from nightstand at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, +}) + +minetest.register_node('homedecor:nightstand_mahogany_one_drawer', { + drawtype = "nodebox", + description = S("Mahogany Nightstand with One Drawer"), + tiles = { 'homedecor_nightstand_mahogany_top.png', + 'homedecor_nightstand_mahogany_bottom.png', + 'homedecor_nightstand_mahogany_right.png', + 'homedecor_nightstand_mahogany_left.png', + 'homedecor_nightstand_mahogany_back.png', + 'homedecor_nightstand_mahogany_1_drawer_front.png'}, + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 } + }, + node_box = { + type = "fixed", + fixed = { + { -8/16, 0, -30/64, 8/16, 8/16, 8/16 }, -- top half + { -7/16, 1/16, -32/64, 7/16, 7/16, -29/64}, -- drawer face + { -8/16, -8/16, -30/64, -7/16, 0, 8/16 }, -- left + { 7/16, -8/16, -30/64, 8/16, 0, 8/16 }, -- right + { -8/16, -8/16, 7/16, 8/16, 0, 8/16 }, -- back + { -8/16, -8/16, -30/64, 8/16, -7/16, 8/16 } -- bottom + } + }, + groups = { snappy = 3 }, + sounds = default.node_sound_wood_defaults(), + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[8,6]".. + "list[current_name;main;0,0;8,1;]".. + "list[current_player;main;0,2;8,4;]") + meta:set_string("infotext", S("One-drawer Nightstand")) + local inv = meta:get_inventory() + inv:set_size("main", 8) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", S("%s moves stuff in nightstand at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", S("%s moves stuff to nightstand at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", S("%s takes stuff from nightstand at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, +}) + +minetest.register_node('homedecor:nightstand_mahogany_two_drawers', { + drawtype = "nodebox", + description = S("Mahogany Nightstand with Two Drawers"), + tiles = { 'homedecor_nightstand_mahogany_top.png', + 'homedecor_nightstand_mahogany_bottom.png', + 'homedecor_nightstand_mahogany_right.png', + 'homedecor_nightstand_mahogany_left.png', + 'homedecor_nightstand_mahogany_back.png', + 'homedecor_nightstand_mahogany_2_drawer_front.png'}, + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 } + }, + node_box = { + type = "fixed", + fixed = { + { -8/16, -8/16, -30/64, 8/16, 8/16, 8/16 }, -- main body + { -7/16, 1/16, -32/64, 7/16, 7/16, -29/64 }, -- top drawer face + { -7/16, -7/16, -32/64, 7/16, -1/16, -29/64 }, -- bottom drawer face + + } + }, + groups = { snappy = 3 }, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[8,7]".. + "list[current_name;main;0,0;8,2;]".. + "list[current_player;main;0,3;8,4;]") + meta:set_string("infotext", S("Two-drawer Nightstand")) + local inv = meta:get_inventory() + inv:set_size("main", 16) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", S("%s moves stuff in nightstand at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", S("%s moves stuff to nightstand at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", S("%s takes stuff from nightstand at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, +}) diff --git a/mods/homedecor_modpack/homedecor/paintings.lua b/mods/homedecor_modpack/homedecor/paintings.lua new file mode 100644 index 00000000..7e345282 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/paintings.lua @@ -0,0 +1,29 @@ +--Various kinds of paintings + +for i = 1,20 do + minetest.register_node("homedecor:painting_"..i, { + description = "Decorative painting #"..i, + drawtype = "nodebox", + tiles = { + "homedecor_painting_edges.png", + "homedecor_painting_edges.png", + "homedecor_painting_edges.png", + "homedecor_painting_edges.png", + "homedecor_painting_back.png", + "homedecor_painting"..i..".png" + }, + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + { -32/64, -32/64, 28/64, -30/64, 32/64, 32/64 }, -- left edge + { 30/64, -32/64, 28/64, 32/64, 32/64, 32/64 }, -- right edge + { -32/64, 30/64, 28/64, 32/64, 32/64, 32/64 }, -- top edge + { -32/64, -30/64, 28/64, 32/64, -32/64, 32/64 }, -- bottom edge + { -32/64, -32/64, 29/64, 32/64, 32/64, 29/64 } -- the canvas + } + }, + groups = {snappy=3}, + }) +end diff --git a/mods/homedecor_modpack/homedecor/refrigerator.lua b/mods/homedecor_modpack/homedecor/refrigerator.lua new file mode 100644 index 00000000..052a97c7 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/refrigerator.lua @@ -0,0 +1,323 @@ +-- This file supplies refrigerators + +local S = homedecor.gettext + +-- nodebox models + +local fridge_model_bottom = { + type = "fixed", + fixed = { + {0, -0.4375, -0.4375, 0.5, 0.5, 0.5}, -- NodeBox1 + {-0.5, -0.5, -0.42, 0.5, 0.5, 0.5}, -- NodeBox2 + {-0.5, -0.4375, -0.4375, -0.0625, 0.5, 0.5}, -- NodeBox3 + {0, 0.25, -0.5, 0.0625, 0.3125, -0.4375}, -- NodeBox4 + {-0.125, 0.25, -0.5, -0.0625, 0.3125, -0.4375}, -- NodeBox5 + {0, 0.25, -0.5, 0.0625, 0.5, -0.473029}, -- NodeBox6 + {-0.125, 0.25, -0.5, -0.0625, 0.5, -0.473029}, -- NodeBox7 + } +} + +local fridge_model_top = { + type = "fixed", + fixed = { + {0, -0.5, -0.4375, 0.5, 0.5, 0.5}, -- NodeBox1 + {-0.0625, -0.5, -0.42, 0, 0.5, 0.5}, -- NodeBox2 + {-0.5, -0.5, -0.4375, -0.0625, -0.4375, 0.5}, -- NodeBox3 + {-0.5, -0.5, -0.4375, -0.4375, 0.5, 0.5}, -- NodeBox4 + {-0.5, -0.1875, -0.4375, -0.0625, 0.5, 0.5}, -- NodeBox5 + {-0.4375, -0.4375, -0.125, -0.0625, -0.1875, 0.5}, -- NodeBox6 + {-0.125, -0.4375, -0.4375, -0.0625, -0.1875, -0.125}, -- NodeBox7 + {-0.3125, -0.3125, -0.307054, -0.25, -0.1875, -0.286307}, -- NodeBox8 + {-0.125, 0, -0.5, -0.0625, 0.0625, -0.4375}, -- NodeBox9 + {0, 0, -0.5, 0.0625, 0.0625, -0.4375}, -- NodeBox10 + {0, -0.5, -0.5, 0.0625, 0.0625, -0.473029}, -- NodeBox11 + {-0.125, -0.5, -0.5, -0.0625, 0.0625, -0.473029}, -- NodeBox12 + } +} + +-- steel-textured fridge + +minetest.register_node("homedecor:refrigerator_steel_bottom", { + tiles = { + "default_steel_block.png", + "homedecor_refrigerator_steel_bottom.png", + "homedecor_refrigerator_steel_sides2.png", + "homedecor_refrigerator_steel_sides2.png^[transformFX", + "homedecor_refrigerator_steel_back2.png", + "homedecor_refrigerator_steel_front2.png" + }, + inventory_image = "homedecor_refrigerator_steel_inv.png", + description = S("Refrigerator (stainless steel)"), + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3}, + node_box = fridge_model_bottom, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 1.5, 0.5 } + }, + on_place = function(itemstack, placer, pointed_thing) + local pos = pointed_thing.under + local pnode = minetest.get_node(pointed_thing.under) + local rnodedef = minetest.registered_nodes[pnode.name] + + if not rnodedef["buildable_to"] then + pos = pointed_thing.above + end + + local fdir = minetest.dir_to_facedir(placer:get_look_dir()) + local pos2 = { x = pos.x, y=pos.y + 1, z = pos.z } + + local tnode = minetest.get_node(pos) + local tnode2 = minetest.get_node(pos2) + + if homedecor.get_nodedef_field(tnode.name, "buildable_to") + and homedecor.get_nodedef_field(tnode2.name, "buildable_to") + and not minetest.is_protected(pos, placer:get_player_name()) + and not minetest.is_protected(pos2, placer:get_player_name()) then + local nodename = itemstack:get_name() + minetest.add_node(pos, { name = nodename, param2 = fdir }) + minetest.add_node(pos2, { name = "homedecor:refrigerator_steel_top", param2 = fdir }) + + if string.find(nodename, "_locked") then + local meta = minetest.get_meta(pos) + meta:set_string("owner", placer:get_player_name() or "") + meta:set_string("infotext", S("Locked Refrigerator (owned by %s)"):format(meta:get_string("owner"))) + end + + if not homedecor.expect_infinite_stacks then + itemstack:take_item() + return itemstack + end + end + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local pos2 = { x = pos.x, y=pos.y + 1, z = pos.z } + if minetest.get_node(pos2).name == "homedecor:refrigerator_steel_top" then + minetest.remove_node(pos2) + end + end, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[10,10]".. + "list[current_name;main;0,0;10,5;]".. + "list[current_player;main;1,6;8,4;]") + meta:set_string("infotext", S("Refrigerator")) + local inv = meta:get_inventory() + inv:set_size("main",50) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", S("%s moves stuff in refrigerator at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", S("%s moves stuff to refrigerator at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", S("%s takes stuff from refrigerator at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, +}) + +minetest.register_node("homedecor:refrigerator_steel_top", { + tiles = { + "homedecor_refrigerator_steel_top.png", + "default_steel_block.png", + "homedecor_refrigerator_steel_sides1.png", + "homedecor_refrigerator_steel_sides1.png^[transformFX", + "homedecor_refrigerator_steel_back1.png", + "homedecor_refrigerator_steel_front1.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3}, + node_box = fridge_model_top, + selection_box = { + type = "fixed", + fixed = { 0, 0, 0, 0, 0, 0 } + }, +}) + +-- white, enameled fridge + +minetest.register_node("homedecor:refrigerator_white_bottom", { + tiles = { + "default_steel_block.png", + "homedecor_refrigerator_white_bottom.png", + "homedecor_refrigerator_white_sides2.png", + "homedecor_refrigerator_white_sides2.png^[transformFX", + "homedecor_refrigerator_white_back2.png", + "homedecor_refrigerator_white_front2.png" + }, + inventory_image = "homedecor_refrigerator_white_inv.png", + description = S("Refrigerator"), + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3}, + node_box = fridge_model_bottom, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 1.5, 0.5 } + }, + on_place = function(itemstack, placer, pointed_thing) + local pos = pointed_thing.under + local pnode = minetest.get_node(pointed_thing.under) + local rnodedef = minetest.registered_nodes[pnode.name] + + if not rnodedef["buildable_to"] then + pos = pointed_thing.above + end + + local fdir = minetest.dir_to_facedir(placer:get_look_dir()) + local pos2 = { x = pos.x, y=pos.y + 1, z = pos.z } + + local tnode = minetest.get_node(pos) + local tnode2 = minetest.get_node(pos2) + + if homedecor.get_nodedef_field(tnode.name, "buildable_to") + and homedecor.get_nodedef_field(tnode2.name, "buildable_to") + and not minetest.is_protected(pos, placer:get_player_name()) + and not minetest.is_protected(pos2, placer:get_player_name()) then + local nodename = itemstack:get_name() + minetest.add_node(pos, { name = nodename, param2 = fdir }) + minetest.add_node(pos2, { name = "homedecor:refrigerator_white_top", param2 = fdir }) + + if string.find(nodename, "_locked") then + local meta = minetest.get_meta(pos) + meta:set_string("owner", placer:get_player_name() or "") + meta:set_string("infotext", S("Locked Refrigerator (owned by %s)"):format(meta:get_string("owner"))) + end + + if not homedecor.expect_infinite_stacks then + itemstack:take_item() + return itemstack + end + end + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local pos2 = { x = pos.x, y=pos.y + 1, z = pos.z } + if minetest.get_node(pos2).name == "homedecor:refrigerator_white_top" then + minetest.remove_node(pos2) + end + end, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[10,10]".. + "list[current_name;main;0,0;10,5;]".. + "list[current_player;main;1,6;8,4;]") + meta:set_string("infotext", S("Refrigerator")) + local inv = meta:get_inventory() + inv:set_size("main",50) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", S("%s moves stuff in refrigerator at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", S("%s moves stuff to refrigerator at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", S("%s takes stuff from refrigerator at %s"):format( + player:get_player_name(), + minetest.pos_to_string(pos) + )) + end, +}) + +minetest.register_node("homedecor:refrigerator_white_top", { + tiles = { + "homedecor_refrigerator_white_top.png", + "default_steel_block.png", + "homedecor_refrigerator_white_sides1.png", + "homedecor_refrigerator_white_sides1.png^[transformFX", + "homedecor_refrigerator_white_back1.png", + "homedecor_refrigerator_white_front1.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3}, + node_box = fridge_model_top, + selection_box = { + type = "fixed", + fixed = { 0, 0, 0, 0, 0, 0 } + }, +}) + +-- convert the old single-node fridges to the new two-node models + +minetest.register_abm({ + nodenames = { "homedecor:refrigerator" }, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local fdir = node.param2 + local p_top = { x=pos.x, y=pos.y+1, z=pos.z } + minetest.swap_node(pos, { name = "homedecor:refrigerator_white_bottom", param2 = fdir }) + minetest.set_node(p_top, { name = "homedecor:refrigerator_white_top", param2 = fdir }) + end +}) + +minetest.register_abm({ + nodenames = { "homedecor:refrigerator_locked" }, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local fdir = node.param2 + local p_top = { x=pos.x, y=pos.y+1, z=pos.z } + minetest.swap_node(pos, { name = "homedecor:refrigerator_white_bottom_locked", param2 = fdir }) + minetest.set_node(p_top, { name = "homedecor:refrigerator_white_top", param2 = fdir }) + end +}) + +minetest.register_abm({ + nodenames = { "homedecor:refrigerator_steel" }, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local fdir = node.param2 + local p_top = { x=pos.x, y=pos.y+1, z=pos.z } + minetest.swap_node(pos, { name = "homedecor:refrigerator_steel_bottom", param2 = fdir }) + minetest.set_node(p_top, { name = "homedecor:refrigerator_steel_top", param2 = fdir }) + end +}) + +minetest.register_abm({ + nodenames = { "homedecor:refrigerator_steel_locked" }, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local fdir = node.param2 + local p_top = { x=pos.x, y=pos.y+1, z=pos.z } + minetest.swap_node(pos, { name = "homedecor:refrigerator_steel_bottom_locked", param2 = fdir }) + minetest.set_node(p_top, { name = "homedecor:refrigerator_steel_top", param2 = fdir }) + end +}) + diff --git a/mods/homedecor_modpack/homedecor/shingles.lua b/mods/homedecor_modpack/homedecor/shingles.lua new file mode 100644 index 00000000..db0c6df1 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/shingles.lua @@ -0,0 +1,90 @@ +-- Various kidns of shingles + +local S = homedecor.gettext + +minetest.register_node("homedecor:skylight", { + description = S("Glass Skylight"), + drawtype = "raillike", + tiles = { "default_glass.png" }, + wield_image = "default_glass.png", + inventory_image = "homedecor_skylight_inv.png", + paramtype = "light", + sunlight_propagates = true, + walkable = true, + groups = { snappy = 3 }, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, -0.4, 0.5 } + } +}) + +minetest.register_node("homedecor:skylight_frosted", { + description = S("Glass Skylight Frosted"), + drawtype = "raillike", + tiles = { "homedecor_skylight_frosted.png" }, + wield_image = "homedecor_skylight_frosted.png", + inventory_image = "homedecor_skylight_frosted_inv.png", + paramtype = "light", + sunlight_propagates = true, + use_texture_alpha = true, + walkable = true, + groups = { snappy = 3 }, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, -0.4, 0.5 } + } +}) + +minetest.register_node("homedecor:shingles_wood", { + description = S("Wood Shingles"), + drawtype = "raillike", + tiles = { "homedecor_shingles_wood.png" }, + wield_image = "homedecor_shingles_wood.png", + inventory_image = "homedecor_shingles_wood_inv.png", + paramtype = "light", + sunlight_propagates = false, + walkable = false, + groups = { snappy = 3 }, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, -0.4, 0.5 } + } +}) + +minetest.register_node("homedecor:shingles_asphalt", { + description = S("Asphalt Shingles"), + drawtype = "raillike", + tiles = { "homedecor_shingles_asphalt.png" }, + wield_image = "homedecor_shingles_asphalt.png", + inventory_image = "homedecor_shingles_asphalt_inv.png", + paramtype = "light", + sunlight_propagates = false, + walkable = false, + groups = { snappy = 3 }, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, -0.4, 0.5 } + } +}) + +minetest.register_node("homedecor:shingles_terracotta", { + description = S("Terracotta Shingles"), + drawtype = "raillike", + tiles = { "homedecor_shingles_terracotta.png" }, + wield_image = "homedecor_shingles_terracotta.png", + inventory_image = "homedecor_shingles_terracotta_inv.png", + paramtype = "light", + sunlight_propagates = false, + walkable = false, + groups = { snappy = 3 }, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, -0.4, 0.5 } + } +}) + diff --git a/mods/homedecor_modpack/homedecor/shutters.lua b/mods/homedecor_modpack/homedecor/shutters.lua new file mode 100644 index 00000000..d052c93f --- /dev/null +++ b/mods/homedecor_modpack/homedecor/shutters.lua @@ -0,0 +1,54 @@ +-- Various kinds of window shutters + +local S = homedecor.gettext + +local shutters = { + {"oak", "Unpainted oak"}, + {"mahogany", "Mahogany"}, + {"red", "Red"}, + {"yellow", "Yellow"}, + {"forest_green", "Forest green"}, + {"light_blue", "Light blue"}, + {"violet", "Violet"}, + {"black", "Black"}, + {"dark_grey", "Dark grey"}, + {"grey", "Grey"}, + {"white", "White"}, +} + +for i in ipairs(shutters) do + local name = shutters[i][1] + local desc = shutters[i][2] + +minetest.register_node("homedecor:shutter_"..name, { + description = S("Wooden Shutter ("..desc..")"), + tiles = { "homedecor_window_shutter_"..name..".png" }, + inventory_image = "homedecor_window_shutter_"..name..".png", + wield_image = "homedecor_window_shutter_"..name..".png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy = 3 }, + sounds = default.node_sound_wood_defaults(), + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0.44, 0.5, -0.3125, 0.5}, -- NodeBox1 + {-0.5, -0.5, 0.44, -0.3125, 0.5, 0.5}, -- NodeBox2 + {-0.5, 0.3125, 0.44, 0.5, 0.5, 0.5}, -- NodeBox3 + {0.3125, -0.5, 0.44, 0.5, 0.5, 0.5}, -- NodeBox4 + {-0.3125, 0.1875, 0.46, 0.3125, 0.25, 0.48}, -- NodeBox5 + {-0.3125, 0.0625, 0.46, 0.3125, 0.125, 0.48}, -- NodeBox6 + {-0.3125, -0.0625, 0.46, 0.3125, 0, 0.48}, -- NodeBox7 + {-0.3125, -0.1875, 0.46, 0.3125, -0.125, 0.48}, -- NodeBox8 + {-0.3125, -0.3125, 0.46, 0.3125, -0.25, 0.48}, -- NodeBox9 + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, 0.44, 0.5, 0.5, 0.5 } + }, +}) +end + +minetest.register_alias("homedecor:shutter_purple", "homedecor:shutter_violet") diff --git a/mods/homedecor_modpack/homedecor/slopes.lua b/mods/homedecor_modpack/homedecor/slopes.lua new file mode 100644 index 00000000..e9de9380 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/slopes.lua @@ -0,0 +1,303 @@ +-- Various kinds of shingles + +local S = homedecor.gettext + +-- Corner shingle nodes, courtesy Bas080 + +homedecor.register_outer_corner = function(modname, subname, groups, images, description) + local slopeboxedge = {} + local detail = homedecor.detail_level + for i = 0, detail-1 do + slopeboxedge[i+1]={-0.5, -0.5, (i/detail)-0.5, 0.5-(i/detail), (i/detail)-0.5+(1.25/detail), 0.5} + end + minetest.register_node(modname..":shingle_outer_corner_" .. subname, { + description = S(description.. " (outer corner)"), + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, + {-0.5, -0.25, -0.25, 0.25, 0, 0.5}, + {-0.5, 0, 0, 0, 0.25, 0.5}, + {-0.5, 0.25, 0.25, -0.25, 0.5, 0.5} + } + }, + node_box = { + type = "fixed", + fixed = slopeboxedge + }, + groups = groups, + }) +end + +homedecor.register_inner_corner = function(modname, subname, groups, images, description) + local slopeboxedge = {} + local detail = homedecor.detail_level + for i = 0, detail-1 do + slopeboxedge[i+1]={-0.5, -0.5, -0.5, 0.5-(i/detail), (i/detail)-0.5+(1.25/detail), 0.5} + slopeboxedge[i+detail+1]={-0.5, -0.5, (i/detail)-0.5, 0.5, (i/detail)-0.5+(1.25/detail), 0.5} + end + minetest.register_node(modname..":shingle_inner_corner_" .. subname, { + description = S(description.. " (inner corner)"), + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5} + }, + node_box = { + type = "fixed", + fixed = slopeboxedge + }, + groups = groups, + }) +end + +homedecor.register_slope = function(modname, subname, recipeitem, groups, images, description) + local slopeboxedge = {} + local detail = homedecor.detail_level + for i = 0, detail-1 do + slopeboxedge[i+1]={-0.5, -0.5, (i/detail)-0.5, 0.5, (i/detail)-0.5+(1.25/detail), 0.5} + end + minetest.register_node(modname..":shingle_side_" .. subname, { + description = S(description), + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, + {-0.5, -0.25, -0.25, 0.5, 0, 0.5}, + {-0.5, 0, 0, 0.5, 0.25, 0.5}, + {-0.5, 0.25, 0.25, 0.5, 0.5, 0.5} + } + }, + node_box = { + type = "fixed", + fixed = slopeboxedge, + }, + groups = groups, + }) + + -- convert between flat shingles and slopes + + minetest.register_craft({ + output = modname..":shingle_side_"..subname.." 3", + recipe = { + {recipeitem, recipeitem, recipeitem} + } + }) + + minetest.register_craft({ + output = recipeitem.." 3", + recipe = { + {modname..":shingle_side_"..subname, modname..":shingle_side_"..subname, modname..":shingle_side_"..subname}, + } + }) + + -- craft outer corners + + minetest.register_craft({ + output = modname..":shingle_outer_corner_"..subname.." 3", + recipe = { + { "", recipeitem, "" }, + { recipeitem, "", recipeitem } + } + }) + + minetest.register_craft({ + output = modname..":shingle_outer_corner_"..subname.." 3", + recipe = { + { "", modname..":shingle_side_"..subname, "" }, + { modname..":shingle_side_"..subname, "", modname..":shingle_side_"..subname }, + } + }) + + -- craft inner corners + + minetest.register_craft({ + output = modname..":shingle_inner_corner_"..subname.." 3", + recipe = { + {recipeitem, recipeitem}, + {"", recipeitem} + } + }) + + minetest.register_craft({ + output = modname..":shingle_inner_corner_"..subname.." 3", + recipe = { + {modname..":shingle_side_"..subname, modname..":shingle_side_"..subname}, + {"", modname..":shingle_side_"..subname} + } + }) + -- convert between flat shingles and inner/outer corners + + minetest.register_craft({ + type = "shapeless", + output = recipeitem.." 1", + recipe = { modname..":shingle_outer_corner_"..subname } + }) + + minetest.register_craft({ + type = "shapeless", + output = recipeitem.." 1", + recipe = { modname..":shingle_inner_corner_"..subname } + }) +end + +minetest.register_craft( { + output = "homedecor:shingle_side_glass", + recipe = { + { "homedecor:skylight", "homedecor:skylight", "homedecor:skylight" } + } +}) + +minetest.register_craft( { + output = "homedecor:roof_tile_terracotta 8", + recipe = { + { "homedecor:shingle_outer_corner_terracotta", "homedecor:shingle_outer_corner_terracotta" } + } +}) + +minetest.register_craft( { + output = "homedecor:roof_tile_terracotta 8", + recipe = { + { "homedecor:shingle_inner_corner_terracotta", "homedecor:shingle_inner_corner_terracotta" } + } +}) + +minetest.register_craft( { + output = "homedecor:roof_tile_terracotta 8", + recipe = { + { "homedecor:shingle_side_terracotta", "homedecor:shingle_side_terracotta" } + } +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:shingle_inner_corner_wood", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:shingle_outer_corner_wood", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:shingle_side_wood", + burntime = 30, +}) + +homedecor.register_roof = function(modname, subname, groups, images , description) + homedecor.register_outer_corner(modname, subname, groups, images, description) + homedecor.register_inner_corner(modname, subname, groups, images, description) +end + +-- corners + +homedecor.register_roof("homedecor", "wood", + { snappy = 3 }, + { + "homedecor_shingles_wood_c_t.png", + "homedecor_shingles_wood_c_x.png", + "homedecor_shingles_wood_c_x.png", + "homedecor_shingles_wood_c_x.png", + "homedecor_shingles_wood_c_z.png", + "homedecor_shingles_wood_c_z.png", + }, + "Wood Shingles" +) + +homedecor.register_roof("homedecor", "asphalt", + { snappy = 3 }, + { + "homedecor_shingles_asphalt_c_t.png", + "homedecor_shingles_asphalt_c_x.png", + "homedecor_shingles_asphalt_c_x.png", + "homedecor_shingles_asphalt_c_x.png", + "homedecor_shingles_asphalt_c_z.png", + "homedecor_shingles_asphalt_c_z.png", + }, + "Asphalt Shingles" +) + +homedecor.register_roof("homedecor", "terracotta", + { snappy = 3 }, + { + "homedecor_shingles_terracotta_c_t.png", + "homedecor_shingles_terracotta_c_x.png", + "homedecor_shingles_terracotta_c_x.png", + "homedecor_shingles_terracotta_c_x.png", + "homedecor_shingles_terracotta_c_z.png", + "homedecor_shingles_terracotta_c_z.png", + }, + "Terracotta Shingles" +) + +-- register just the slopes + +homedecor.register_slope("homedecor", "wood", + "homedecor:shingles_wood", + { snappy = 3 }, + { + "homedecor_shingles_wood_s_t.png", + "homedecor_shingles_wood_s_z.png", + "homedecor_shingles_wood_s_z.png", + "homedecor_shingles_wood_s_z.png", + "homedecor_shingles_wood_s_z.png", + "homedecor_shingles_wood_s_z.png", + }, + "Wood Shingles" +) + +homedecor.register_slope("homedecor", "asphalt", + "homedecor:shingles_asphalt", + { snappy = 3 }, + { + "homedecor_shingles_asphalt_s_t.png", + "homedecor_shingles_asphalt_s_z.png", + "homedecor_shingles_asphalt_s_z.png", + "homedecor_shingles_asphalt_s_z.png", + "homedecor_shingles_asphalt_s_z.png", + "homedecor_shingles_asphalt_s_z.png", + }, + "Asphalt Shingles" +) + +homedecor.register_slope("homedecor", "terracotta", + "homedecor:shingles_terracotta", + { snappy = 3 }, + { + "homedecor_shingles_terracotta_s_t.png", + "homedecor_shingles_terracotta_s_z.png", + "homedecor_shingles_terracotta_s_z.png", + "homedecor_shingles_terracotta_s_z.png", + "homedecor_shingles_terracotta_s_z.png", + "homedecor_shingles_terracotta_s_z.png", + }, + "Terracotta Shingles" +) + +homedecor.register_slope("homedecor", "glass", + "homedecor:shingles_glass", + { snappy = 3 }, + { + "homedecor_shingles_glass_top.png", + "homedecor_shingles_glass.png" + }, + "Glass Shingles" +) + diff --git a/mods/homedecor_modpack/homedecor/sounds/homedecor_door_close.ogg b/mods/homedecor_modpack/homedecor/sounds/homedecor_door_close.ogg new file mode 100644 index 00000000..c85b915f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/sounds/homedecor_door_close.ogg differ diff --git a/mods/homedecor_modpack/homedecor/sounds/homedecor_door_open.ogg b/mods/homedecor_modpack/homedecor/sounds/homedecor_door_open.ogg new file mode 100644 index 00000000..16198d93 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/sounds/homedecor_door_open.ogg differ diff --git a/mods/homedecor_modpack/homedecor/sounds/homedecor_doorbell.ogg b/mods/homedecor_modpack/homedecor/sounds/homedecor_doorbell.ogg new file mode 100644 index 00000000..bdf4cea7 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/sounds/homedecor_doorbell.ogg differ diff --git a/mods/homedecor_modpack/homedecor/sounds/homedecor_gate_open_close.ogg b/mods/homedecor_modpack/homedecor/sounds/homedecor_gate_open_close.ogg new file mode 100644 index 00000000..d5f1d961 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/sounds/homedecor_gate_open_close.ogg differ diff --git a/mods/homedecor_modpack/homedecor/sounds/homedecor_toilet_flush.ogg b/mods/homedecor_modpack/homedecor/sounds/homedecor_toilet_flush.ogg new file mode 100644 index 00000000..e15a5837 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/sounds/homedecor_toilet_flush.ogg differ diff --git a/mods/homedecor_modpack/homedecor/sounds/toaster.ogg b/mods/homedecor_modpack/homedecor/sounds/toaster.ogg new file mode 100644 index 00000000..c3d5a80b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/sounds/toaster.ogg differ diff --git a/mods/homedecor_modpack/homedecor/tables.lua b/mods/homedecor_modpack/homedecor/tables.lua new file mode 100644 index 00000000..f4c2ab17 --- /dev/null +++ b/mods/homedecor_modpack/homedecor/tables.lua @@ -0,0 +1,482 @@ +-- Various kinds of tables + +local S = homedecor.gettext + +local materials = { + {"glass","Glass"}, + {"wood","Wood"} +} + +for i in ipairs(materials) do + local m = materials[i][1] + local d = materials[i][2] + local s = nil + + if m == "glass" then + s = default.node_sound_glass_defaults() + else + s = default.node_sound_wood_defaults() + end + +-- small square tables + + minetest.register_node("homedecor:"..m.."_table_small_square_b", { + description = S(d.." Table (Small, Square)"), + drawtype = 'nodebox', + tiles = { + 'homedecor_'..m..'_table_small_square_tb.png', + 'homedecor_'..m..'_table_small_square_tb.png', + 'homedecor_'..m..'_table_small_square_edges.png', + 'homedecor_'..m..'_table_small_square_edges.png', + 'homedecor_'..m..'_table_small_square_edges.png', + 'homedecor_'..m..'_table_small_square_edges.png' + }, + wield_image = 'homedecor_'..m..'_table_small_square_tb.png', + inventory_image = 'homedecor_'..m..'_table_small_square_tb.png', + sunlight_propagates = true, + paramtype = 'light', + walkable = true, + groups = { snappy = 3 }, + sounds = s, + paramtype2 = "facedir", + + node_box = { + type = "fixed", + fixed = { + { -0.4375, -0.5, -0.5, 0.4375, -0.4375, 0.5 }, + { -0.5, -0.5, -0.4375, 0.5, -0.4375, 0.4375 } + }, + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 }, + }, + on_place = minetest.rotate_node + }) + + minetest.register_node('homedecor:'..m..'_table_small_square_t', { + description = S(d.." Table (Small, Square)"), + drawtype = 'nodebox', + tiles = { + 'homedecor_'..m..'_table_small_square_tb.png', + 'homedecor_'..m..'_table_small_square_tb.png', + 'homedecor_'..m..'_table_small_square_edges.png', + 'homedecor_'..m..'_table_small_square_edges.png', + 'homedecor_'..m..'_table_small_square_edges.png', + 'homedecor_'..m..'_table_small_square_edges.png' + }, + sunlight_propagates = true, + paramtype = 'light', + walkable = true, + groups = { snappy = 3, not_in_creative_inventory=1 }, + sounds = s, + paramtype2 = "facedir", + + node_box = { + type = "fixed", + fixed = { + { -0.4375, 0.4375, -0.5, 0.4375, 0.5, 0.5 }, + { -0.5, 0.4375, -0.4375, 0.5, 0.5, 0.4375 } + }, + }, + selection_box = { + type = "fixed", + fixed = { -0.5, 0.4375, -0.5, 0.5, 0.5, 0.5 }, + }, + drop = 'homedecor:'..m..'_table_small_square_b' + }) + + minetest.register_node('homedecor:'..m..'_table_small_square_s', { + description = S(d.." Table (Small, Square)"), + drawtype = 'nodebox', + tiles = { + 'homedecor_'..m..'_table_small_square_edges.png', + 'homedecor_'..m..'_table_small_square_edges.png', + 'homedecor_'..m..'_table_small_square_edges.png', + 'homedecor_'..m..'_table_small_square_edges.png', + 'homedecor_'..m..'_table_small_square_tb.png', + 'homedecor_'..m..'_table_small_square_tb.png', + }, + sunlight_propagates = true, + paramtype = 'light', + walkable = true, + groups = { snappy = 3, not_in_creative_inventory=1 }, + sounds = s, + paramtype2 = "facedir", + + node_box = { + type = "fixed", + fixed = { + { -0.4375, -0.5, 0.4375, 0.4375, 0.5, 0.5 }, + { -0.5, -0.4375, 0.4375, 0.5, 0.4375, 0.5 } + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, 0.4375, 0.5, 0.5, 0.5 }, + }, + drop = 'homedecor:'..m..'_table_small_square_b' + }) + +-- small round tables + + minetest.register_node('homedecor:'..m..'_table_small_round_b', { + description = S(d.." Table (Small, Round)"), + drawtype = 'nodebox', + tiles = { + 'homedecor_'..m..'_table_small_round_tb.png', + 'homedecor_'..m..'_table_small_round_tb.png', + 'homedecor_'..m..'_table_small_round_edges.png', + 'homedecor_'..m..'_table_small_round_edges.png', + 'homedecor_'..m..'_table_small_round_edges.png', + 'homedecor_'..m..'_table_small_round_edges.png' + }, + wield_image = 'homedecor_'..m..'_table_small_round_tb.png', + inventory_image = 'homedecor_'..m..'_table_small_round_tb.png', + sunlight_propagates = true, + paramtype = 'light', + walkable = true, + groups = { snappy = 3 }, + sounds = s, + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + { -0.25, -0.5, -0.5, 0.25, -0.4375, 0.5 }, + { -0.375, -0.5, -0.4375, 0.375, -0.4375, 0.4375 }, + { -0.5, -0.5, -0.25, 0.5, -0.4375, 0.25 }, + { -0.4375, -0.5, -0.375, 0.4375, -0.4375, 0.375 }, + { -0.25, -0.5, -0.5, 0.25, -0.4375, 0.5 }, + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 }, + }, + on_place = minetest.rotate_node + }) + + minetest.register_node('homedecor:'..m..'_table_small_round_t', { + description = S(d.." Table (Small, Round)"), + drawtype = 'nodebox', + tiles = { + 'homedecor_'..m..'_table_small_round_tb.png', + 'homedecor_'..m..'_table_small_round_tb.png', + 'homedecor_'..m..'_table_small_round_edges.png', + 'homedecor_'..m..'_table_small_round_edges.png', + 'homedecor_'..m..'_table_small_round_edges.png', + 'homedecor_'..m..'_table_small_round_edges.png' + }, + sunlight_propagates = true, + paramtype = 'light', + walkable = true, + groups = { snappy = 3, not_in_creative_inventory=1 }, + sounds = s, + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + { -0.25, 0.4375, -0.5, 0.25, 0.5, 0.5 }, + { -0.375, 0.4375, -0.4375, 0.375, 0.5, 0.4375 }, + { -0.5, 0.4375, -0.25, 0.5, 0.5, 0.25 }, + { -0.4375, 0.4375, -0.375, 0.4375, 0.5, 0.375 }, + { -0.25, 0.4375, -0.5, 0.25, 0.5, 0.5 }, + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, 0.4375, -0.5, 0.5, 0.5, 0.5 }, + }, + drop = 'homedecor:'..m..'_table_small_round_b' + }) + + minetest.register_node('homedecor:'..m..'_table_small_round_s', { + description = S(d.." Table (Small, Round)"), + drawtype = 'nodebox', + tiles = { + 'homedecor_'..m..'_table_small_round_edges.png', + 'homedecor_'..m..'_table_small_round_edges.png', + 'homedecor_'..m..'_table_small_round_edges.png', + 'homedecor_'..m..'_table_small_round_edges.png', + 'homedecor_'..m..'_table_small_round_tb.png', + 'homedecor_'..m..'_table_small_round_tb.png', + }, + sunlight_propagates = true, + paramtype = 'light', + walkable = true, + groups = { snappy = 3, not_in_creative_inventory=1 }, + sounds = s, + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + { -0.25, -0.5, 0.4375, 0.25, 0.5, 0.5 }, + { -0.375, -0.4375, 0.4375, 0.375, 0.4375, 0.5 }, + { -0.5, -0.25, 0.4375, 0.5, 0.25, 0.5 }, + { -0.4375, -0.375, 0.4375, 0.4375, 0.375, 0.5 }, + { -0.25, -0.5, 0.4375, 0.25, 0.5, 0.5 }, + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, 0.4375, 0.5, 0.5, 0.5 }, + }, + drop = 'homedecor:'..m..'_table_small_round_b' + }) + +-- Large square table pieces + + minetest.register_node('homedecor:'..m..'_table_large_b', { + description = S(d.." Table Piece (large)"), + drawtype = 'nodebox', + tiles = { + 'homedecor_'..m..'_table_large_tb.png', + 'homedecor_'..m..'_table_large_tb.png', + 'homedecor_'..m..'_table_large_edges.png', + 'homedecor_'..m..'_table_large_edges.png', + 'homedecor_'..m..'_table_large_edges.png', + 'homedecor_'..m..'_table_large_edges.png' + }, + wield_image = 'homedecor_'..m..'_table_large_tb.png', + inventory_image = 'homedecor_'..m..'_table_large_tb.png', + sunlight_propagates = true, + paramtype = 'light', + walkable = true, + groups = { snappy = 3 }, + sounds = s, + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 }, + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 }, + }, + on_place = minetest.rotate_node + }) + + minetest.register_node('homedecor:'..m..'_table_large_t', { + description = S(d.." Table Piece (large)"), + drawtype = 'nodebox', + tiles = { + 'homedecor_'..m..'_table_large_tb.png', + 'homedecor_'..m..'_table_large_tb.png', + 'homedecor_'..m..'_table_large_edges.png', + 'homedecor_'..m..'_table_large_edges.png', + 'homedecor_'..m..'_table_large_edges.png', + 'homedecor_'..m..'_table_large_edges.png' + }, + wield_image = 'homedecor_'..m..'_table_large_tb.png', + inventory_image = 'homedecor_'..m..'_table_large_tb.png', + sunlight_propagates = true, + paramtype = 'light', + walkable = true, + groups = { snappy = 3, not_in_creative_inventory=1 }, + sounds = s, + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { -0.5, 0.4375, -0.5, 0.5, 0.5, 0.5 }, + }, + selection_box = { + type = "fixed", + fixed = { -0.5, 0.4375, -0.5, 0.5, 0.5, 0.5 }, + }, + drop = 'homedecor:'..m..'_table_large_b' + }) + + minetest.register_node('homedecor:'..m..'_table_large_s', { + description = S(d.." Table Piece (large)"), + drawtype = 'nodebox', + tiles = { + 'homedecor_'..m..'_table_large_edges.png', + 'homedecor_'..m..'_table_large_edges.png', + 'homedecor_'..m..'_table_large_edges.png', + 'homedecor_'..m..'_table_large_edges.png', + 'homedecor_'..m..'_table_large_tb.png', + 'homedecor_'..m..'_table_large_tb.png', + }, + wield_image = 'homedecor_'..m..'_table_large_tb.png', + inventory_image = 'homedecor_'..m..'_table_large_tb.png', + sunlight_propagates = true, + paramtype = 'light', + walkable = true, + groups = { snappy = 3, not_in_creative_inventory=1 }, + sounds = s, + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { -0.5, -0.5, 0.4375, 0.5, 0.5, 0.5 }, + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, 0.4375, 0.5, 0.5, 0.5 }, + }, + drop = 'homedecor:'..m..'_table_large_b' + }) + + minetest.register_alias('homedecor:'..m..'_table_large', 'homedecor:'..m..'_table_large_b') + minetest.register_alias('homedecor:'..m..'_table_small_square', 'homedecor:'..m..'_table_small_square_b') + minetest.register_alias('homedecor:'..m..'_table_small_round', 'homedecor:'..m..'_table_small_round_b') + +end + +minetest.register_node('homedecor:utility_table_top', { + description = S("Utility Table"), + tiles = { + 'homedecor_utility_table_tb.png', + 'homedecor_utility_table_tb.png', + 'homedecor_utility_table_edges.png', + 'homedecor_utility_table_edges.png', + 'homedecor_utility_table_edges.png', + 'homedecor_utility_table_edges.png' + }, + wield_image = 'homedecor_utility_table_tb.png', + inventory_image = 'homedecor_utility_table_tb.png', + drawtype = "nodebox", + sunlight_propagates = false, + paramtype = "light", + walkable = true, + groups = { snappy = 3 }, + sounds = default.node_sound_wood_defaults(), + paramtype2 = "wallmounted", + node_box = { + type = "wallmounted", + wall_bottom = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 }, + wall_top = { -0.5, 0.4375, -0.5, 0.5, 0.5, 0.5 }, + wall_side = { -0.5, -0.5, -0.5, -0.4375, 0.5, 0.5 }, + }, + selection_box = { + type = "wallmounted", + wall_bottom = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 }, + wall_top = { -0.5, 0.4375, -0.5, 0.5, 0.5, 0.5 }, + wall_side = { -0.5, -0.5, -0.5, -0.4375, 0.5, 0.5 }, + }, +}) + +-- Various kinds of table legs + +minetest.register_node("homedecor:table_legs_brass", { + description = S("Brass Table Legs"), + drawtype = "plantlike", + tiles = {"homedecor_table_legs_brass.png"}, + inventory_image = "homedecor_table_legs_brass.png", + wield_image = "homedecor_table_legs_brass.png", + paramtype = "light", + walkable = false, + groups = {snappy=3}, + sounds = default.node_sound_leaves_defaults(), + walkable = true, + selection_box = { + type = "fixed", + fixed = { -0.37, -0.5, -0.37, 0.37, 0.5, 0.37 } + }, +}) + +minetest.register_node("homedecor:table_legs_wrought_iron", { + description = S("Wrought Iron Table Legs"), + drawtype = "plantlike", + tiles = {"homedecor_table_legs_wrought_iron.png"}, + inventory_image = "homedecor_table_legs_wrought_iron.png", + wield_image = "homedecor_table_legs_wrought_iron.png", + paramtype = "light", + walkable = false, + groups = {snappy=3}, + sounds = default.node_sound_leaves_defaults(), + walkable = true, + selection_box = { + type = "fixed", + fixed = { -0.37, -0.5, -0.37, 0.37, 0.5, 0.37 } + }, +}) + +minetest.register_node('homedecor:utility_table_legs', { + description = S("Legs for Utility Table"), + drawtype = "plantlike", + tiles = { 'homedecor_utility_table_legs.png' }, + inventory_image = 'homedecor_utility_table_legs_inv.png', + wield_image = 'homedecor_utility_table_legs.png', + sunlight_propagates = true, + paramtype = "light", + walkable = false, + groups = { snappy = 3 }, + sounds = default.node_sound_wood_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.37, -0.5, -0.37, 0.37, 0.5, 0.37 } + }, +}) + +minetest.register_node("homedecor:desk", { + drawtype = "nodebox", + description = "Desk", + tiles = { + "homedecor_desk_top_l.png", + "homedecor_desk_bottom_l.png", + "homedecor_desk_rside_l.png", + "homedecor_desk_lside_l.png", + "homedecor_desk_back_l.png", + "homedecor_desk_front_l.png" + }, + inventory_image = "homedecor_desk_inv.png", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.4375, 0.375, 0.5, 0.5}, + {-0.5, 0.4375, -0.4375, 0.5, 0.5, 0.5}, + {-0.4375, -0.4375, -0.5, 0.3125, -0.0625, -0.4375}, + {-0.4375, 0, -0.5, 0.3125, 0.375, 0.5}, + {0.3125, -0.375, 0.4375, 0.5, 0.25, 0.5}, + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 1.5, 0.5, 0.5 } + }, + groups = { snappy = 3 }, + on_place = function(itemstack, placer, pointed_thing) + return homedecor.stack_sideways(itemstack, placer, pointed_thing, + "homedecor:desk", "homedecor:desk_r", true) + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local fdir = oldnode.param2 + if not fdir or fdir > 3 then return end + local pos2 = { x = pos.x + homedecor.fdir_to_right[fdir+1][1], y=pos.y, z = pos.z + homedecor.fdir_to_right[fdir+1][2] } + if minetest.get_node(pos2).name == "homedecor:desk_r" then + minetest.remove_node(pos2) + end + end +}) + +minetest.register_node("homedecor:desk_r", { + drawtype = "nodebox", + tiles = { + "homedecor_desk_top_r.png", + "homedecor_desk_bottom_r.png", + "homedecor_desk_rside_r.png", + "homedecor_desk_lside_r.png", + "homedecor_desk_back_r.png", + "homedecor_desk_front_r.png" + }, + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.5, 0.4375, -0.4375, 0.5, 0.5, 0.5}, + {0.375, -0.5, -0.4375, 0.5, 0.5, 0.5}, + {-0.5, 0.3125, -0.4375, 0.5, 0.375, 0.5}, + {-0.5, 0.3125, -0.4375, -0.4375, 0.5, 0.5}, + {-0.5, -0.375, 0.4375, 0.4375, 0.25, 0.5}, + } + }, + selection_box = { + type = "fixed", + fixed = { 0,0,0,0,0,0 } + }, + groups = { snappy = 3, not_in_creative_inventory=1 } +}) + diff --git a/mods/homedecor_modpack/homedecor/textures/3dbookshelf_openframe_back.png b/mods/homedecor_modpack/homedecor/textures/3dbookshelf_openframe_back.png new file mode 100644 index 00000000..7535173e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/3dbookshelf_openframe_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/3dbookshelf_openframe_bottom.png b/mods/homedecor_modpack/homedecor/textures/3dbookshelf_openframe_bottom.png new file mode 100644 index 00000000..8f708e58 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/3dbookshelf_openframe_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/3dbookshelf_openframe_front.png b/mods/homedecor_modpack/homedecor/textures/3dbookshelf_openframe_front.png new file mode 100644 index 00000000..6a18aea8 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/3dbookshelf_openframe_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/3dbookshelf_openframe_left.png b/mods/homedecor_modpack/homedecor/textures/3dbookshelf_openframe_left.png new file mode 100644 index 00000000..fa713327 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/3dbookshelf_openframe_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/3dbookshelf_openframe_right.png b/mods/homedecor_modpack/homedecor/textures/3dbookshelf_openframe_right.png new file mode 100644 index 00000000..897560b1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/3dbookshelf_openframe_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/3dbookshelf_openframe_top.png b/mods/homedecor_modpack/homedecor/textures/3dbookshelf_openframe_top.png new file mode 100644 index 00000000..f9082b1a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/3dbookshelf_openframe_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/3dforniture_inv_chains.png b/mods/homedecor_modpack/homedecor/textures/3dforniture_inv_chains.png new file mode 100644 index 00000000..3b7d7380 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/3dforniture_inv_chains.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/3dforniture_inv_shower_head.png b/mods/homedecor_modpack/homedecor/textures/3dforniture_inv_shower_head.png new file mode 100644 index 00000000..3effdf28 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/3dforniture_inv_shower_head.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/3dforniture_inv_sink.png b/mods/homedecor_modpack/homedecor/textures/3dforniture_inv_sink.png new file mode 100644 index 00000000..b634d825 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/3dforniture_inv_sink.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/3dforniture_inv_taps.png b/mods/homedecor_modpack/homedecor/textures/3dforniture_inv_taps.png new file mode 100644 index 00000000..e12dd128 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/3dforniture_inv_taps.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/3dforniture_inv_torch_wall.png b/mods/homedecor_modpack/homedecor/textures/3dforniture_inv_torch_wall.png new file mode 100644 index 00000000..dfb6cecd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/3dforniture_inv_torch_wall.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat1_black.png b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat1_black.png new file mode 100644 index 00000000..37f04ea6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat1_black.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat1_blue.png b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat1_blue.png new file mode 100644 index 00000000..ba8957b5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat1_blue.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat1_dark_green.png b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat1_dark_green.png new file mode 100644 index 00000000..51bb9bf3 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat1_dark_green.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat1_pink.png b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat1_pink.png new file mode 100644 index 00000000..203e6542 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat1_pink.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat1_red.png b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat1_red.png new file mode 100644 index 00000000..b4051bc8 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat1_red.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat1_violet.png b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat1_violet.png new file mode 100644 index 00000000..2f6c0077 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat1_violet.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat2_black.png b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat2_black.png new file mode 100644 index 00000000..7d83b6a1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat2_black.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat2_blue.png b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat2_blue.png new file mode 100644 index 00000000..07ec010e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat2_blue.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat2_dark_green.png b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat2_dark_green.png new file mode 100644 index 00000000..bd5d2a6e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat2_dark_green.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat2_pink.png b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat2_pink.png new file mode 100644 index 00000000..17b57773 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat2_pink.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat2_red.png b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat2_red.png new file mode 100644 index 00000000..8f17f0b1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat2_red.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat2_violet.png b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat2_violet.png new file mode 100644 index 00000000..1ee129c1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_lat2_violet.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_armchair_top_black.png b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_top_black.png new file mode 100644 index 00000000..e4f91466 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_top_black.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_armchair_top_blue.png b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_top_blue.png new file mode 100644 index 00000000..ab68246c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_top_blue.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_armchair_top_dark_green.png b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_top_dark_green.png new file mode 100644 index 00000000..f7948671 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_top_dark_green.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_armchair_top_pink.png b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_top_pink.png new file mode 100644 index 00000000..51f9eccd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_top_pink.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_armchair_top_red.png b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_top_red.png new file mode 100644 index 00000000..5f413bce Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_top_red.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_armchair_top_violet.png b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_top_violet.png new file mode 100644 index 00000000..dcebd386 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_armchair_top_violet.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_black_metal.png b/mods/homedecor_modpack/homedecor/textures/forniture_black_metal.png new file mode 100644 index 00000000..57f09c88 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_black_metal.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_back.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_back.png new file mode 100644 index 00000000..7e44cea5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_back_black.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_back_black.png new file mode 100644 index 00000000..178c71b5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_back_black.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_back_blue.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_back_blue.png new file mode 100644 index 00000000..4aa7149a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_back_blue.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_back_dark_green.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_back_dark_green.png new file mode 100644 index 00000000..26134d2d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_back_dark_green.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_back_pink.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_back_pink.png new file mode 100644 index 00000000..f3638255 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_back_pink.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_back_red.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_back_red.png new file mode 100644 index 00000000..55cddbf9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_back_red.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_back_violet.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_back_violet.png new file mode 100644 index 00000000..b7d851ed Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_back_violet.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_front.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_front.png new file mode 100644 index 00000000..7e44cea5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_front_black.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_front_black.png new file mode 100644 index 00000000..74f76a24 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_front_black.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_front_blue.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_front_blue.png new file mode 100644 index 00000000..b8f60b32 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_front_blue.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_front_dark_green.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_front_dark_green.png new file mode 100644 index 00000000..2cc15c24 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_front_dark_green.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_front_pink.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_front_pink.png new file mode 100644 index 00000000..700003a0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_front_pink.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_front_red.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_front_red.png new file mode 100644 index 00000000..62df06d8 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_front_red.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_front_violet.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_front_violet.png new file mode 100644 index 00000000..4a73c8d6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_front_violet.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_sides.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_sides.png new file mode 100644 index 00000000..7e44cea5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_sides_black.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_sides_black.png new file mode 100644 index 00000000..eb9daf45 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_sides_black.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_sides_blue.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_sides_blue.png new file mode 100644 index 00000000..d490f5e7 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_sides_blue.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_sides_dark_green.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_sides_dark_green.png new file mode 100644 index 00000000..5be16b9d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_sides_dark_green.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_sides_pink.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_sides_pink.png new file mode 100644 index 00000000..87571442 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_sides_pink.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_sides_red.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_sides_red.png new file mode 100644 index 00000000..cc98a5a4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_sides_red.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_sides_violet.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_sides_violet.png new file mode 100644 index 00000000..0a29d446 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_sides_violet.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_top.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_top.png new file mode 100644 index 00000000..7e44cea5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_top_black.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_top_black.png new file mode 100644 index 00000000..cfc8d4e4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_top_black.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_top_blue.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_top_blue.png new file mode 100644 index 00000000..05bbe0fd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_top_blue.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_top_dark_green.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_top_dark_green.png new file mode 100644 index 00000000..6eee721b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_top_dark_green.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_top_pink.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_top_pink.png new file mode 100644 index 00000000..65046d99 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_top_pink.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_top_red.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_top_red.png new file mode 100644 index 00000000..6eb483b7 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_top_red.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_top_violet.png b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_top_violet.png new file mode 100644 index 00000000..abf5d7b4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_kitchen_chair_top_violet.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_marble.png b/mods/homedecor_modpack/homedecor/textures/forniture_marble.png new file mode 100644 index 00000000..9aca475f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_marble.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_marble_base_ducha_top.png b/mods/homedecor_modpack/homedecor/textures/forniture_marble_base_ducha_top.png new file mode 100644 index 00000000..5a24c79d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_marble_base_ducha_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_marble_top_sink.png b/mods/homedecor_modpack/homedecor/textures/forniture_marble_top_sink.png new file mode 100644 index 00000000..9527980f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_marble_top_sink.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_marble_top_toilet.png b/mods/homedecor_modpack/homedecor/textures/forniture_marble_top_toilet.png new file mode 100644 index 00000000..0a8d19c4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_marble_top_toilet.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_metal.png b/mods/homedecor_modpack/homedecor/textures/forniture_metal.png new file mode 100644 index 00000000..33f252ae Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_metal.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_papyrus.png b/mods/homedecor_modpack/homedecor/textures/forniture_papyrus.png new file mode 100644 index 00000000..50802ab2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_papyrus.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_papyrus_s1.png b/mods/homedecor_modpack/homedecor/textures/forniture_papyrus_s1.png new file mode 100644 index 00000000..2be35588 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_papyrus_s1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_papyrus_s2.png b/mods/homedecor_modpack/homedecor/textures/forniture_papyrus_s2.png new file mode 100644 index 00000000..c26353e0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_papyrus_s2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_blue_l.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_blue_l.png new file mode 100644 index 00000000..d7718918 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_blue_l.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_blue_lh.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_blue_lh.png new file mode 100644 index 00000000..63e14290 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_blue_lh.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_blue_ll.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_blue_ll.png new file mode 100644 index 00000000..84f1b0e8 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_blue_ll.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_blue_lm.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_blue_lm.png new file mode 100644 index 00000000..332a3041 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_blue_lm.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_blue_lx.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_blue_lx.png new file mode 100644 index 00000000..c68d883d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_blue_lx.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_green_l.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_green_l.png new file mode 100644 index 00000000..1603938e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_green_l.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_green_lh.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_green_lh.png new file mode 100644 index 00000000..e90b2453 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_green_lh.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_green_ll.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_green_ll.png new file mode 100644 index 00000000..acae6991 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_green_ll.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_green_lm.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_green_lm.png new file mode 100644 index 00000000..c4657e9d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_green_lm.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_green_lx.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_green_lx.png new file mode 100644 index 00000000..f6470548 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_green_lx.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_l.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_l.png new file mode 100644 index 00000000..c6a4fd43 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_l.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_lh.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_lh.png new file mode 100644 index 00000000..77efa615 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_lh.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_ll.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_ll.png new file mode 100644 index 00000000..a82b00b9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_ll.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_lm.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_lm.png new file mode 100644 index 00000000..028d6514 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_lm.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_lx.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_lx.png new file mode 100644 index 00000000..6d3d4a8b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_lx.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_pink_l.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_pink_l.png new file mode 100644 index 00000000..f5ab7b3a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_pink_l.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_pink_lh.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_pink_lh.png new file mode 100644 index 00000000..576cfae0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_pink_lh.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_pink_ll.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_pink_ll.png new file mode 100644 index 00000000..1a937622 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_pink_ll.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_pink_lm.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_pink_lm.png new file mode 100644 index 00000000..35993418 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_pink_lm.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_pink_lx.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_pink_lx.png new file mode 100644 index 00000000..fbebd045 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_pink_lx.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_red_l.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_red_l.png new file mode 100644 index 00000000..450b19a2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_red_l.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_red_lh.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_red_lh.png new file mode 100644 index 00000000..0c5e5deb Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_red_lh.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_red_ll.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_red_ll.png new file mode 100644 index 00000000..5273e92f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_red_ll.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_red_lm.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_red_lm.png new file mode 100644 index 00000000..b3da888d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_red_lm.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_red_lx.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_red_lx.png new file mode 100644 index 00000000..7746c4b6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_red_lx.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_violet_l.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_violet_l.png new file mode 100644 index 00000000..42c0fa4c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_violet_l.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_violet_lh.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_violet_lh.png new file mode 100644 index 00000000..178e0a78 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_violet_lh.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_violet_ll.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_violet_ll.png new file mode 100644 index 00000000..11ca0fa9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_violet_ll.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_violet_lm.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_violet_lm.png new file mode 100644 index 00000000..3bf36ae6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_violet_lm.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_violet_lx.png b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_violet_lx.png new file mode 100644 index 00000000..438e44de Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_standing_lamp_violet_lx.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_blue_l.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_blue_l.png new file mode 100644 index 00000000..de8b5ada Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_blue_l.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_blue_lh.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_blue_lh.png new file mode 100644 index 00000000..cc5eda27 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_blue_lh.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_blue_ll.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_blue_ll.png new file mode 100644 index 00000000..b4e45655 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_blue_ll.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_blue_lm.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_blue_lm.png new file mode 100644 index 00000000..e4749656 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_blue_lm.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_blue_lx.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_blue_lx.png new file mode 100644 index 00000000..9810dd79 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_blue_lx.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_green_l.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_green_l.png new file mode 100644 index 00000000..bbcd5604 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_green_l.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_green_lh.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_green_lh.png new file mode 100644 index 00000000..3edc6a4f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_green_lh.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_green_ll.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_green_ll.png new file mode 100644 index 00000000..b1202875 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_green_ll.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_green_lm.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_green_lm.png new file mode 100644 index 00000000..1974d181 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_green_lm.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_green_lx.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_green_lx.png new file mode 100644 index 00000000..dc4c574f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_green_lx.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_l.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_l.png new file mode 100644 index 00000000..96211d50 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_l.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_lh.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_lh.png new file mode 100644 index 00000000..f96ab6ee Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_lh.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_ll.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_ll.png new file mode 100644 index 00000000..1b642e84 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_ll.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_lm.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_lm.png new file mode 100644 index 00000000..3ce02c94 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_lm.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_lx.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_lx.png new file mode 100644 index 00000000..a3f932e9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_lx.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_pink_l.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_pink_l.png new file mode 100644 index 00000000..491aed75 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_pink_l.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_pink_lh.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_pink_lh.png new file mode 100644 index 00000000..b64a4c6f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_pink_lh.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_pink_ll.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_pink_ll.png new file mode 100644 index 00000000..107b55fe Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_pink_ll.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_pink_lm.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_pink_lm.png new file mode 100644 index 00000000..d9b103c2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_pink_lm.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_pink_lx.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_pink_lx.png new file mode 100644 index 00000000..0c274750 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_pink_lx.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_red_l.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_red_l.png new file mode 100644 index 00000000..6eb894bf Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_red_l.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_red_lh.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_red_lh.png new file mode 100644 index 00000000..7b5daa12 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_red_lh.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_red_ll.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_red_ll.png new file mode 100644 index 00000000..3ef66970 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_red_ll.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_red_lm.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_red_lm.png new file mode 100644 index 00000000..6a4b1e5a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_red_lm.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_red_lx.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_red_lx.png new file mode 100644 index 00000000..92698276 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_red_lx.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_s.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_s.png new file mode 100644 index 00000000..281869f8 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_s.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_sh.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_sh.png new file mode 100644 index 00000000..1566d635 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_sh.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_sl.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_sl.png new file mode 100644 index 00000000..f2e0f9d8 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_sl.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_sm.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_sm.png new file mode 100644 index 00000000..19966dfd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_sm.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_sx.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_sx.png new file mode 100644 index 00000000..9afb916c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_sx.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_violet_l.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_violet_l.png new file mode 100644 index 00000000..23d5c48c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_violet_l.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_violet_lh.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_violet_lh.png new file mode 100644 index 00000000..d0d205f1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_violet_lh.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_violet_ll.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_violet_ll.png new file mode 100644 index 00000000..06daa7d6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_violet_ll.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_violet_lm.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_violet_lm.png new file mode 100644 index 00000000..e746ee20 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_violet_lm.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_violet_lx.png b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_violet_lx.png new file mode 100644 index 00000000..9887f7c2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_table_lamp_violet_lx.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_torch_wall_anim.png b/mods/homedecor_modpack/homedecor/textures/forniture_torch_wall_anim.png new file mode 100644 index 00000000..f9c47290 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_torch_wall_anim.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_torch_wall_i.png b/mods/homedecor_modpack/homedecor/textures/forniture_torch_wall_i.png new file mode 100644 index 00000000..689fea04 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_torch_wall_i.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_torch_wall_s.png b/mods/homedecor_modpack/homedecor/textures/forniture_torch_wall_s.png new file mode 100644 index 00000000..00fb0c98 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_torch_wall_s.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_wood.png b/mods/homedecor_modpack/homedecor/textures/forniture_wood.png new file mode 100644 index 00000000..7e44cea5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_wood.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_wood_mahogany.png b/mods/homedecor_modpack/homedecor/textures/forniture_wood_mahogany.png new file mode 100644 index 00000000..25ab29fb Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_wood_mahogany.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/forniture_wood_white.png b/mods/homedecor_modpack/homedecor/textures/forniture_wood_white.png new file mode 100644 index 00000000..1089b65e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/forniture_wood_white.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_ac_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_ac_back.png new file mode 100644 index 00000000..9a1e976a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_ac_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_ac_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_ac_front.png new file mode 100644 index 00000000..f377bb58 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_ac_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_ac_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_ac_sides.png new file mode 100644 index 00000000..f95b9d13 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_ac_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_ac_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_ac_tb.png new file mode 100644 index 00000000..76da113e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_ac_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_alarm_clock_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_alarm_clock_back.png new file mode 100644 index 00000000..faee42dc Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_alarm_clock_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_alarm_clock_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_alarm_clock_bottom.png new file mode 100644 index 00000000..136e39ee Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_alarm_clock_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_alarm_clock_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_alarm_clock_front.png new file mode 100644 index 00000000..1dffdf33 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_alarm_clock_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_alarm_clock_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_alarm_clock_inv.png new file mode 100644 index 00000000..ebb882cc Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_alarm_clock_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_alarm_clock_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_alarm_clock_sides.png new file mode 100644 index 00000000..372e77e4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_alarm_clock_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_alarm_clock_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_alarm_clock_top.png new file mode 100644 index 00000000..f6335f1a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_alarm_clock_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_plastic_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_plastic_back.png new file mode 100644 index 00000000..92761cc3 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_plastic_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_plastic_edges.png b/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_plastic_edges.png new file mode 100644 index 00000000..9cda9c35 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_plastic_edges.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_plastic_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_plastic_front.png new file mode 100644 index 00000000..17d82ab0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_plastic_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_plastic_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_plastic_inv.png new file mode 100644 index 00000000..f1b360b5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_plastic_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_wood_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_wood_back.png new file mode 100644 index 00000000..0f7ea8fd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_wood_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_wood_edges.png b/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_wood_edges.png new file mode 100644 index 00000000..3920796f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_wood_edges.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_wood_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_wood_front.png new file mode 100644 index 00000000..2094c5bf Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_wood_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_wood_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_wood_inv.png new file mode 100644 index 00000000..b115fade Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_analog_clock_wood_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_barbecue_meat.png b/mods/homedecor_modpack/homedecor/textures/homedecor_barbecue_meat.png new file mode 100644 index 00000000..3140967e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_barbecue_meat.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_barbecue_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_barbecue_top.png new file mode 100644 index 00000000..f300b929 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_barbecue_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_1.png new file mode 100644 index 00000000..2bb992bf Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_2.png new file mode 100644 index 00000000..2268be8c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_3.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_3.png new file mode 100644 index 00000000..c57533b6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_3.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_4.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_4.png new file mode 100644 index 00000000..f70fa657 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_4.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_blue.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_blue.png new file mode 100644 index 00000000..6d5d37db Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_blue.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_green.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_green.png new file mode 100644 index 00000000..8e010614 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_green.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_red.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_red.png new file mode 100644 index 00000000..0e903842 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_red.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_tan.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_tan.png new file mode 100644 index 00000000..1e7803d1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_tan.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_yellow.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_yellow.png new file mode 100644 index 00000000..1839b935 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bathroom_tiles_yellow.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_foot1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_foot1.png new file mode 100644 index 00000000..8c461a46 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_foot1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_foot1ext.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_foot1ext.png new file mode 100644 index 00000000..26ae73ca Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_foot1ext.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_head2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_head2.png new file mode 100644 index 00000000..fb1bd49f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_head2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_inv.png new file mode 100644 index 00000000..5179254d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_side1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_side1.png new file mode 100644 index 00000000..d15abab5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_side1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_side2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_side2.png new file mode 100644 index 00000000..46c0376d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_side2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_side2ext.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_side2ext.png new file mode 100644 index 00000000..f023a076 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_side2ext.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_top1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_top1.png new file mode 100644 index 00000000..2d470d72 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_top1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_top2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_top2.png new file mode 100644 index 00000000..5f9a729a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_blue_top2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_bottom1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_bottom1.png new file mode 100644 index 00000000..0de90df1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_bottom1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_bottom2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_bottom2.png new file mode 100644 index 00000000..0366882b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_bottom2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_foot1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_foot1.png new file mode 100644 index 00000000..f6231e8a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_foot1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_foot1ext.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_foot1ext.png new file mode 100644 index 00000000..5ccb72a6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_foot1ext.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_head2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_head2.png new file mode 100644 index 00000000..d5e9306c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_head2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_inv.png new file mode 100644 index 00000000..5171ee20 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_side1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_side1.png new file mode 100644 index 00000000..4cefd745 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_side1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_side2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_side2.png new file mode 100644 index 00000000..cd78cf7f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_side2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_side2ext.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_side2ext.png new file mode 100644 index 00000000..a03189af Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_side2ext.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_top1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_top1.png new file mode 100644 index 00000000..6055a460 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_top1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_top2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_top2.png new file mode 100644 index 00000000..4450cbec Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_brown_top2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_foot1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_foot1.png new file mode 100644 index 00000000..22a5b0f8 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_foot1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_foot1ext.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_foot1ext.png new file mode 100644 index 00000000..ef4cde3a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_foot1ext.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_head2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_head2.png new file mode 100644 index 00000000..3b7f4e04 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_head2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_inv.png new file mode 100644 index 00000000..db10cc30 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_side1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_side1.png new file mode 100644 index 00000000..90f78ecf Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_side1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_side2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_side2.png new file mode 100644 index 00000000..8438a851 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_side2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_side2ext.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_side2ext.png new file mode 100644 index 00000000..84167145 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_side2ext.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_top1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_top1.png new file mode 100644 index 00000000..7a824bcd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_top1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_top2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_top2.png new file mode 100644 index 00000000..0584b251 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_darkgrey_top2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_foot2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_foot2.png new file mode 100644 index 00000000..f8da3f03 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_foot2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_foot2ext.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_foot2ext.png new file mode 100644 index 00000000..1afeb97a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_foot2ext.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_foot1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_foot1.png new file mode 100644 index 00000000..ecaaf347 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_foot1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_foot1ext.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_foot1ext.png new file mode 100644 index 00000000..7f8358e6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_foot1ext.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_head2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_head2.png new file mode 100644 index 00000000..1fd943e1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_head2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_inv.png new file mode 100644 index 00000000..069b45b2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_side1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_side1.png new file mode 100644 index 00000000..26839c2b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_side1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_side2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_side2.png new file mode 100644 index 00000000..80dbc3fe Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_side2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_side2ext.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_side2ext.png new file mode 100644 index 00000000..9e87c478 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_side2ext.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_top1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_top1.png new file mode 100644 index 00000000..f97f89da Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_top1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_top2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_top2.png new file mode 100644 index 00000000..96a7a0ed Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_green_top2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_head1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_head1.png new file mode 100644 index 00000000..334aaa4e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_head1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_foot1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_foot1.png new file mode 100644 index 00000000..44dc9f6e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_foot1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_foot1ext.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_foot1ext.png new file mode 100644 index 00000000..15ad22d9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_foot1ext.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_head2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_head2.png new file mode 100644 index 00000000..95658e9b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_head2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_inv.png new file mode 100644 index 00000000..13a00d50 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_side1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_side1.png new file mode 100644 index 00000000..cdb2c2d9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_side1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_side2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_side2.png new file mode 100644 index 00000000..37b34fe9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_side2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_side2ext.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_side2ext.png new file mode 100644 index 00000000..bcd1e962 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_side2ext.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_top1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_top1.png new file mode 100644 index 00000000..977b113b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_top1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_top2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_top2.png new file mode 100644 index 00000000..c58b89a9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_orange_top2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_foot1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_foot1.png new file mode 100644 index 00000000..fe135106 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_foot1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_foot1ext.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_foot1ext.png new file mode 100644 index 00000000..92f65951 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_foot1ext.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_head2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_head2.png new file mode 100644 index 00000000..0d82955b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_head2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_inv.png new file mode 100644 index 00000000..8bb75daa Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_side1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_side1.png new file mode 100644 index 00000000..cc459310 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_side1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_side2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_side2.png new file mode 100644 index 00000000..fd437132 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_side2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_side2ext.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_side2ext.png new file mode 100644 index 00000000..cb5bde04 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_side2ext.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_top1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_top1.png new file mode 100644 index 00000000..c49200fa Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_top1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_top2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_top2.png new file mode 100644 index 00000000..225d443b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_pink_top2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_foot1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_foot1.png new file mode 100644 index 00000000..1e3a8f4a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_foot1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_foot1ext.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_foot1ext.png new file mode 100644 index 00000000..d62fe469 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_foot1ext.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_head2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_head2.png new file mode 100644 index 00000000..e8cf8a20 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_head2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_inv.png new file mode 100644 index 00000000..7e5a4f37 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_side1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_side1.png new file mode 100644 index 00000000..50880188 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_side1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_side2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_side2.png new file mode 100644 index 00000000..4f192f0b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_side2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_side2ext.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_side2ext.png new file mode 100644 index 00000000..927e19a6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_side2ext.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_top1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_top1.png new file mode 100644 index 00000000..40d34b97 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_top1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_top2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_top2.png new file mode 100644 index 00000000..b0563576 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_red_top2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_foot1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_foot1.png new file mode 100644 index 00000000..4267958b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_foot1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_foot1ext.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_foot1ext.png new file mode 100644 index 00000000..5169b9f9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_foot1ext.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_head2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_head2.png new file mode 100644 index 00000000..b02590f9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_head2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_inv.png new file mode 100644 index 00000000..f9ec5144 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_side1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_side1.png new file mode 100644 index 00000000..de24c8e1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_side1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_side2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_side2.png new file mode 100644 index 00000000..2681fc99 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_side2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_side2ext.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_side2ext.png new file mode 100644 index 00000000..cc1bff3b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_side2ext.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_top1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_top1.png new file mode 100644 index 00000000..890b14e3 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_top1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_top2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_top2.png new file mode 100644 index 00000000..161896ea Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_violet_top2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_foot1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_foot1.png new file mode 100644 index 00000000..33483885 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_foot1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_foot1ext.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_foot1ext.png new file mode 100644 index 00000000..fd27b689 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_foot1ext.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_head2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_head2.png new file mode 100644 index 00000000..f8f5917b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_head2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_inv.png new file mode 100644 index 00000000..efdb6428 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_side1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_side1.png new file mode 100644 index 00000000..fcb982af Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_side1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_side2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_side2.png new file mode 100644 index 00000000..cd8df8f9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_side2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_side2ext.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_side2ext.png new file mode 100644 index 00000000..c47b6fba Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_side2ext.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_top1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_top1.png new file mode 100644 index 00000000..5faffe8d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_top1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_top2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_top2.png new file mode 100644 index 00000000..bfb40b32 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bed_yellow_top2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_beer_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_beer_back.png new file mode 100644 index 00000000..8b5add66 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_beer_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_beer_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_beer_bottom.png new file mode 100644 index 00000000..850b3a6e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_beer_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_beer_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_beer_front.png new file mode 100644 index 00000000..853cf582 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_beer_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_beer_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_beer_inv.png new file mode 100644 index 00000000..89e69deb Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_beer_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_beer_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_beer_left.png new file mode 100644 index 00000000..5df7b468 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_beer_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_beer_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_beer_right.png new file mode 100644 index 00000000..00a701b7 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_beer_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_beer_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_beer_top.png new file mode 100644 index 00000000..7943b599 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_beer_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_beertap_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_beertap_front.png new file mode 100644 index 00000000..1e2e6f73 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_beertap_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_beertap_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_beertap_inv.png new file mode 100644 index 00000000..84307de1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_beertap_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_beertap_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_beertap_left.png new file mode 100644 index 00000000..e5e51c86 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_beertap_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_beertap_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_beertap_right.png new file mode 100644 index 00000000..07aacfac Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_beertap_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_ends.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_ends.png new file mode 100644 index 00000000..1264c39e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_ends.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_inv.png new file mode 100644 index 00000000..347c6816 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_left_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_left_back.png new file mode 100644 index 00000000..8bf7f906 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_left_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_left_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_left_bottom.png new file mode 100644 index 00000000..7b2b6614 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_left_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_left_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_left_front.png new file mode 100644 index 00000000..a33bc58f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_left_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_left_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_left_top.png new file mode 100644 index 00000000..01e7a147 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_left_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_right_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_right_back.png new file mode 100644 index 00000000..518c78bd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_right_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_right_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_right_bottom.png new file mode 100644 index 00000000..6940536b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_right_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_right_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_right_front.png new file mode 100644 index 00000000..2a70270a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_right_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_right_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_right_top.png new file mode 100644 index 00000000..3f8a3364 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_1_right_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_2_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_2_inv.png new file mode 100644 index 00000000..61dd7c14 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_2_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_2_left_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_2_left_back.png new file mode 100644 index 00000000..975c63d2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_2_left_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_2_left_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_2_left_front.png new file mode 100644 index 00000000..f68483f2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_2_left_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_2_right_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_2_right_back.png new file mode 100644 index 00000000..15ee02a3 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_2_right_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_2_right_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_2_right_front.png new file mode 100644 index 00000000..f500f9de Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bench_large_2_right_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_blank_canvas.png b/mods/homedecor_modpack/homedecor/textures/homedecor_blank_canvas.png new file mode 100644 index 00000000..abbad1f6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_blank_canvas.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_blanktile.png b/mods/homedecor_modpack/homedecor/textures/homedecor_blanktile.png new file mode 100644 index 00000000..c22f319c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_blanktile.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_book_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_book_back.png new file mode 100644 index 00000000..c5c2ff90 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_book_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_book_blue_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_book_blue_bottom.png new file mode 100644 index 00000000..a04f6736 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_book_blue_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_book_blue_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_book_blue_inv.png new file mode 100644 index 00000000..6ecb297f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_book_blue_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_book_blue_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_book_blue_left.png new file mode 100644 index 00000000..ca5cbb20 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_book_blue_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_book_blue_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_book_blue_top.png new file mode 100644 index 00000000..0e0a0f59 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_book_blue_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_book_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_book_front.png new file mode 100644 index 00000000..ac8c0f2c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_book_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_book_green_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_book_green_bottom.png new file mode 100644 index 00000000..b62b1e0d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_book_green_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_book_green_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_book_green_inv.png new file mode 100644 index 00000000..aeadf9fb Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_book_green_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_book_green_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_book_green_left.png new file mode 100644 index 00000000..034bfbf2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_book_green_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_book_green_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_book_green_top.png new file mode 100644 index 00000000..1256ab5c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_book_green_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_book_open_blue_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_book_open_blue_bottom.png new file mode 100644 index 00000000..7b5b7e93 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_book_open_blue_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_book_open_green_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_book_open_green_bottom.png new file mode 100644 index 00000000..8159c9f9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_book_open_green_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_book_open_red_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_book_open_red_bottom.png new file mode 100644 index 00000000..4ec57384 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_book_open_red_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_book_open_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_book_open_sides.png new file mode 100644 index 00000000..84317ca6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_book_open_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_book_open_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_book_open_top.png new file mode 100644 index 00000000..ef9b085c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_book_open_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_book_red_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_book_red_bottom.png new file mode 100644 index 00000000..d1e552f3 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_book_red_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_book_red_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_book_red_inv.png new file mode 100644 index 00000000..e5eb68e9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_book_red_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_book_red_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_book_red_left.png new file mode 100644 index 00000000..c2425c35 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_book_red_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_book_red_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_book_red_top.png new file mode 100644 index 00000000..0262502d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_book_red_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_book_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_book_right.png new file mode 100644 index 00000000..ee6358ba Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_book_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bottle_brown_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bottle_brown_inv.png new file mode 100644 index 00000000..6c96f6ee Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bottle_brown_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bottle_brown_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bottle_brown_sides.png new file mode 100644 index 00000000..66e42787 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bottle_brown_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bottle_brown_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bottle_brown_top.png new file mode 100644 index 00000000..16f0a84d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bottle_brown_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bottle_green_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bottle_green_inv.png new file mode 100644 index 00000000..dee38843 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bottle_green_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bottle_green_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bottle_green_sides.png new file mode 100644 index 00000000..448a5c0a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bottle_green_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bottle_green_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bottle_green_top.png new file mode 100644 index 00000000..192d19e0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bottle_green_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_brass_ingot.png b/mods/homedecor_modpack/homedecor/textures/homedecor_brass_ingot.png new file mode 100644 index 00000000..9941ba6c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_brass_ingot.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_bright_metal.png b/mods/homedecor_modpack/homedecor/textures/homedecor_bright_metal.png new file mode 100644 index 00000000..20bef6f6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_bright_metal.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_calendar.png b/mods/homedecor_modpack/homedecor/textures/homedecor_calendar.png new file mode 100644 index 00000000..d35a870d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_calendar.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_candle.png b/mods/homedecor_modpack/homedecor/textures/homedecor_candle.png new file mode 100644 index 00000000..eaa7faf2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_candle.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_candle_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_candle_bottom.png new file mode 100644 index 00000000..cfeeb579 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_candle_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_candle_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_candle_inv.png new file mode 100644 index 00000000..f8a45219 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_candle_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_candle_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_candle_sides.png new file mode 100644 index 00000000..2161a7b7 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_candle_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_candle_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_candle_top.png new file mode 100644 index 00000000..cfeeb579 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_candle_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_cardboard_box.png b/mods/homedecor_modpack/homedecor/textures/homedecor_cardboard_box.png new file mode 100644 index 00000000..68322897 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_cardboard_box.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_cardboard_box_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_cardboard_box_sides.png new file mode 100644 index 00000000..68322897 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_cardboard_box_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_cardboard_box_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_cardboard_box_tb.png new file mode 100644 index 00000000..120b2d91 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_cardboard_box_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_ceiling_fan_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_ceiling_fan_bottom.png new file mode 100644 index 00000000..04434a66 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_ceiling_fan_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_ceiling_fan_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_ceiling_fan_inv.png new file mode 100644 index 00000000..fff00e4c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_ceiling_fan_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_ceiling_fan_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_ceiling_fan_sides.png new file mode 100644 index 00000000..272b7066 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_ceiling_fan_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_ceiling_fan_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_ceiling_fan_top.png new file mode 100644 index 00000000..54819a2f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_ceiling_fan_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_ceiling_paint.png b/mods/homedecor_modpack/homedecor/textures/homedecor_ceiling_paint.png new file mode 100644 index 00000000..edb094b8 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_ceiling_paint.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_ceiling_paint_roller.png b/mods/homedecor_modpack/homedecor/textures/homedecor_ceiling_paint_roller.png new file mode 100644 index 00000000..cecc3bcc Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_ceiling_paint_roller.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_ceiling_tile.png b/mods/homedecor_modpack/homedecor/textures/homedecor_ceiling_tile.png new file mode 100644 index 00000000..3e29f95c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_ceiling_tile.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_chainlink_brass.png b/mods/homedecor_modpack/homedecor/textures/homedecor_chainlink_brass.png new file mode 100644 index 00000000..a5f323e1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_chainlink_brass.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_chainlink_steel.png b/mods/homedecor_modpack/homedecor/textures/homedecor_chainlink_steel.png new file mode 100644 index 00000000..d7132c32 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_chainlink_steel.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_chimney_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_chimney_bottom.png new file mode 100644 index 00000000..80161e6b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_chimney_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_chimney_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_chimney_sides.png new file mode 100644 index 00000000..1426927d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_chimney_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_chimney_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_chimney_top.png new file mode 100644 index 00000000..884045b3 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_chimney_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_coatrack_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_coatrack_inv.png new file mode 100644 index 00000000..f3126620 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_coatrack_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_coatrack_wallmount_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_coatrack_wallmount_inv.png new file mode 100644 index 00000000..f0868ad1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_coatrack_wallmount_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_coatrack_wood.png b/mods/homedecor_modpack/homedecor/textures/homedecor_coatrack_wood.png new file mode 100644 index 00000000..7e44cea5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_coatrack_wood.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_cobweb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_cobweb.png new file mode 100644 index 00000000..2bb58a51 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_cobweb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_cobweb_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_cobweb_inv.png new file mode 100644 index 00000000..2bb58a51 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_cobweb_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_cobweb_plantlike.png b/mods/homedecor_modpack/homedecor/textures/homedecor_cobweb_plantlike.png new file mode 100644 index 00000000..9cce2a22 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_cobweb_plantlike.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_cobweb_torchlike.png b/mods/homedecor_modpack/homedecor/textures/homedecor_cobweb_torchlike.png new file mode 100644 index 00000000..4f1d12dc Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_cobweb_torchlike.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_coffeemaker_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_coffeemaker_back.png new file mode 100644 index 00000000..fd8b1517 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_coffeemaker_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_coffeemaker_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_coffeemaker_bottom.png new file mode 100644 index 00000000..0d404933 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_coffeemaker_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_coffeemaker_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_coffeemaker_front.png new file mode 100644 index 00000000..87ff4407 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_coffeemaker_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_coffeemaker_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_coffeemaker_inv.png new file mode 100644 index 00000000..7db60435 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_coffeemaker_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_coffeemaker_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_coffeemaker_left.png new file mode 100644 index 00000000..17e1c502 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_coffeemaker_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_coffeemaker_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_coffeemaker_right.png new file mode 100644 index 00000000..afe3f277 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_coffeemaker_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_coffeemaker_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_coffeemaker_top.png new file mode 100644 index 00000000..010b1bb9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_coffeemaker_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_copper_pans_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_copper_pans_inv.png new file mode 100644 index 00000000..c0fcd74e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_copper_pans_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_copper_strip.png b/mods/homedecor_modpack/homedecor/textures/homedecor_copper_strip.png new file mode 100644 index 00000000..22e572a1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_copper_strip.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_copper_wire.png b/mods/homedecor_modpack/homedecor/textures/homedecor_copper_wire.png new file mode 100644 index 00000000..e33eb220 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_copper_wire.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_blue.png b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_blue.png new file mode 100644 index 00000000..0783cae5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_blue.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_green.png b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_green.png new file mode 100644 index 00000000..e98bc618 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_green.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_open_blue.png b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_open_blue.png new file mode 100644 index 00000000..3cd4c556 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_open_blue.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_open_green.png b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_open_green.png new file mode 100644 index 00000000..4be8adcf Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_open_green.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_open_pink.png b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_open_pink.png new file mode 100644 index 00000000..b601c182 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_open_pink.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_open_red.png b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_open_red.png new file mode 100644 index 00000000..32561433 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_open_red.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_open_violet.png b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_open_violet.png new file mode 100644 index 00000000..ad3bbc7f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_open_violet.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_open_white.png b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_open_white.png new file mode 100644 index 00000000..85b07c2b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_open_white.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_pink.png b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_pink.png new file mode 100644 index 00000000..0b2b67d2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_pink.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_red.png b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_red.png new file mode 100644 index 00000000..72c8c0a9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_red.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_violet.png b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_violet.png new file mode 100644 index 00000000..333121bd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_violet.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_white.png b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_white.png new file mode 100644 index 00000000..c2c22dcf Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_curtain_white.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_curtainrod_brass_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_curtainrod_brass_inv.png new file mode 100644 index 00000000..2ce1622e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_curtainrod_brass_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_curtainrod_wood_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_curtainrod_wood_inv.png new file mode 100644 index 00000000..739ce857 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_curtainrod_wood_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_curtainrod_wrought_iron_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_curtainrod_wrought_iron_inv.png new file mode 100644 index 00000000..1c8fcd5e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_curtainrod_wrought_iron_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_cutlery_set_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_cutlery_set_bottom.png new file mode 100644 index 00000000..6cb658d6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_cutlery_set_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_cutlery_set_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_cutlery_set_inv.png new file mode 100644 index 00000000..9c668e58 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_cutlery_set_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_cutlery_set_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_cutlery_set_sides.png new file mode 100644 index 00000000..c27c7e59 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_cutlery_set_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_cutlery_set_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_cutlery_set_top.png new file mode 100644 index 00000000..a2a99e1c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_cutlery_set_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dartboard.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dartboard.png new file mode 100644 index 00000000..ba5117bb Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dartboard.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_deckchair_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_deckchair_back.png new file mode 100644 index 00000000..7657666b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_deckchair_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_deckchair_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_deckchair_bottom.png new file mode 100644 index 00000000..d70ab9cc Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_deckchair_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_deckchair_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_deckchair_front.png new file mode 100644 index 00000000..437ec1fd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_deckchair_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_deckchair_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_deckchair_inv.png new file mode 100644 index 00000000..1f67b57a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_deckchair_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_deckchair_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_deckchair_sides.png new file mode 100644 index 00000000..b1f6ede2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_deckchair_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_deckchair_top_c1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_deckchair_top_c1.png new file mode 100644 index 00000000..9ec1b269 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_deckchair_top_c1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_deckchair_top_c2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_deckchair_top_c2.png new file mode 100644 index 00000000..a103643b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_deckchair_top_c2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_desk_back_l.png b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_back_l.png new file mode 100644 index 00000000..7e44cea5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_back_l.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_desk_back_r.png b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_back_r.png new file mode 100644 index 00000000..2c7763b4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_back_r.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_desk_bottom_l.png b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_bottom_l.png new file mode 100644 index 00000000..7e44cea5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_bottom_l.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_desk_bottom_r.png b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_bottom_r.png new file mode 100644 index 00000000..7e44cea5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_bottom_r.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_desk_fan_body.png b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_fan_body.png new file mode 100644 index 00000000..7e3c579c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_fan_body.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_desk_fan_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_fan_inv.png new file mode 100644 index 00000000..2e991979 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_fan_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_desk_front_l.png b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_front_l.png new file mode 100644 index 00000000..0a2d3891 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_front_l.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_desk_front_r.png b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_front_r.png new file mode 100644 index 00000000..7b9076c6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_front_r.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_desk_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_inv.png new file mode 100644 index 00000000..477f58ed Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_desk_lside_l.png b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_lside_l.png new file mode 100644 index 00000000..7e44cea5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_lside_l.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_desk_lside_r.png b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_lside_r.png new file mode 100644 index 00000000..7e44cea5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_lside_r.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_desk_rside_l.png b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_rside_l.png new file mode 100644 index 00000000..7e44cea5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_rside_l.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_desk_rside_r.png b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_rside_r.png new file mode 100644 index 00000000..7e44cea5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_rside_r.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_desk_top_l.png b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_top_l.png new file mode 100644 index 00000000..7e44cea5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_top_l.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_desk_top_r.png b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_top_r.png new file mode 100644 index 00000000..7e44cea5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_desk_top_r.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_digital_clock_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_digital_clock_back.png new file mode 100644 index 00000000..f4ddf498 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_digital_clock_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_digital_clock_edges.png b/mods/homedecor_modpack/homedecor/textures/homedecor_digital_clock_edges.png new file mode 100644 index 00000000..692287a4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_digital_clock_edges.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_digital_clock_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_digital_clock_front.png new file mode 100644 index 00000000..02c02cf9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_digital_clock_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_digital_clock_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_digital_clock_inv.png new file mode 100644 index 00000000..ad9a6574 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_digital_clock_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dishwasher_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dishwasher_back.png new file mode 100644 index 00000000..0851d62a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dishwasher_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dishwasher_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dishwasher_bottom.png new file mode 100644 index 00000000..db93ccf9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dishwasher_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dishwasher_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dishwasher_front.png new file mode 100644 index 00000000..a8cd657c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dishwasher_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dishwasher_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dishwasher_sides.png new file mode 100644 index 00000000..9d68bec7 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dishwasher_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dishwasher_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dishwasher_top.png new file mode 100644 index 00000000..1f737309 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dishwasher_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_base_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_base_back.png new file mode 100644 index 00000000..e8841f7a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_base_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_base_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_base_bottom.png new file mode 100644 index 00000000..d6de8fe8 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_base_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_base_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_base_front.png new file mode 100644 index 00000000..0efe9478 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_base_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_base_side.png b/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_base_side.png new file mode 100644 index 00000000..02cc8375 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_base_side.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_base_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_base_top.png new file mode 100644 index 00000000..dcf75c94 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_base_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_inv.png new file mode 100644 index 00000000..89301817 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_roof_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_roof_back.png new file mode 100644 index 00000000..fa1bf1ed Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_roof_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_roof_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_roof_bottom.png new file mode 100644 index 00000000..4091ec04 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_roof_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_roof_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_roof_front.png new file mode 100644 index 00000000..fa1bf1ed Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_roof_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_roof_side.png b/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_roof_side.png new file mode 100644 index 00000000..078c8b94 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_roof_side.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_roof_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_roof_top.png new file mode 100644 index 00000000..a230904d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_doghouse_roof_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_left_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_left_bottom.png new file mode 100644 index 00000000..e473d817 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_left_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_left_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_left_inv.png new file mode 100644 index 00000000..bbebaed4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_left_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_left_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_left_top.png new file mode 100644 index 00000000..f2edbab2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_left_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_lrb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_lrb.png new file mode 100644 index 00000000..bac3772a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_lrb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_lrt.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_lrt.png new file mode 100644 index 00000000..06d517f0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_lrt.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_right_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_right_bottom.png new file mode 100644 index 00000000..ae781744 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_right_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_right_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_right_inv.png new file mode 100644 index 00000000..086811b0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_right_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_right_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_right_top.png new file mode 100644 index 00000000..6596461c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_right_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_tb.png new file mode 100644 index 00000000..9b7cdfe2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_bedroom_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_left_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_left_bottom.png new file mode 100644 index 00000000..7a78c707 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_left_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_left_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_left_inv.png new file mode 100644 index 00000000..401138b1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_left_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_left_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_left_top.png new file mode 100644 index 00000000..4a7b7801 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_left_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_lrb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_lrb.png new file mode 100644 index 00000000..76d9784d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_lrb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_lrt.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_lrt.png new file mode 100644 index 00000000..76d9784d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_lrt.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_right_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_right_bottom.png new file mode 100644 index 00000000..7562476d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_right_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_right_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_right_inv.png new file mode 100644 index 00000000..b2324d15 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_right_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_right_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_right_top.png new file mode 100644 index 00000000..53d1b47a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_right_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_tb.png new file mode 100644 index 00000000..ea98dda1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_mahogany_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_left_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_left_bottom.png new file mode 100644 index 00000000..b9930a4f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_left_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_left_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_left_inv.png new file mode 100644 index 00000000..9ae0be4d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_left_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_left_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_left_top.png new file mode 100644 index 00000000..8f3c4e2b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_left_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_lrb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_lrb.png new file mode 100644 index 00000000..76d46c72 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_lrb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_lrt.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_lrt.png new file mode 100644 index 00000000..76d46c72 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_lrt.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_right_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_right_bottom.png new file mode 100644 index 00000000..1f0ee7bd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_right_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_right_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_right_inv.png new file mode 100644 index 00000000..dd1ec069 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_right_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_right_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_right_top.png new file mode 100644 index 00000000..19b88759 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_right_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_tb.png new file mode 100644 index 00000000..ba9e4832 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_closet_oak_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_left_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_left_bottom.png new file mode 100644 index 00000000..2a5362bd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_left_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_left_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_left_inv.png new file mode 100644 index 00000000..8d56a327 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_left_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_left_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_left_top.png new file mode 100644 index 00000000..35aa70fd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_left_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_lrb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_lrb.png new file mode 100644 index 00000000..2871d4a4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_lrb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_lrt.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_lrt.png new file mode 100644 index 00000000..2871d4a4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_lrt.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_right_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_right_bottom.png new file mode 100644 index 00000000..27d93f6c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_right_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_right_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_right_inv.png new file mode 100644 index 00000000..78e28dd0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_right_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_right_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_right_top.png new file mode 100644 index 00000000..798154fa Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_right_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_tb.png new file mode 100644 index 00000000..90805bb0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_exterior_fancy_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_bottom_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_bottom_left.png new file mode 100644 index 00000000..1a1864af Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_bottom_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_bottom_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_bottom_right.png new file mode 100644 index 00000000..7acdd4d9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_bottom_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_left_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_left_bottom.png new file mode 100644 index 00000000..72ec2995 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_left_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_left_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_left_inv.png new file mode 100644 index 00000000..0b5b2cc8 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_left_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_left_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_left_top.png new file mode 100644 index 00000000..7fad89c5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_left_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_lrb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_lrb.png new file mode 100644 index 00000000..79de5bd1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_lrb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_lrt.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_lrt.png new file mode 100644 index 00000000..79de5bd1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_lrt.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_right_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_right_bottom.png new file mode 100644 index 00000000..817828fb Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_right_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_right_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_right_inv.png new file mode 100644 index 00000000..716ae2f3 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_right_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_right_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_right_top.png new file mode 100644 index 00000000..b473cf9f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_right_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_tb.png new file mode 100644 index 00000000..b15a3883 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_top_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_top_left.png new file mode 100644 index 00000000..8871c92b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_top_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_top_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_top_right.png new file mode 100644 index 00000000..3582274d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_glass_top_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_inv.png new file mode 100644 index 00000000..1f6107cd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_left_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_left_bottom.png new file mode 100644 index 00000000..ab6f8977 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_left_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_left_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_left_inv.png new file mode 100644 index 00000000..ca631d0e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_left_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_left_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_left_top.png new file mode 100644 index 00000000..58a456eb Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_left_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_lrb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_lrb.png new file mode 100644 index 00000000..a604d057 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_lrb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_lrt.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_lrt.png new file mode 100644 index 00000000..a604d057 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_lrt.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_inv.png new file mode 100644 index 00000000..dbd7d9ee Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_left_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_left_bottom.png new file mode 100644 index 00000000..844a1f79 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_left_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_left_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_left_inv.png new file mode 100644 index 00000000..64807a42 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_left_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_left_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_left_top.png new file mode 100644 index 00000000..39523889 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_left_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_lrb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_lrb.png new file mode 100644 index 00000000..fd0b22af Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_lrb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_lrt.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_lrt.png new file mode 100644 index 00000000..fd0b22af Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_lrt.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_right_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_right_bottom.png new file mode 100644 index 00000000..f71859e9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_right_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_right_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_right_inv.png new file mode 100644 index 00000000..f9e118fb Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_right_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_right_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_right_top.png new file mode 100644 index 00000000..aef4300d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_right_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_tb.png new file mode 100644 index 00000000..7ce4e72a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_mahogany_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_right_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_right_bottom.png new file mode 100644 index 00000000..dfe129a5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_right_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_right_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_right_inv.png new file mode 100644 index 00000000..b068b58d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_right_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_right_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_right_top.png new file mode 100644 index 00000000..7e37f20b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_right_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_tb.png new file mode 100644 index 00000000..1e483e46 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_inv.png new file mode 100644 index 00000000..eeb6524c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_left_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_left_bottom.png new file mode 100644 index 00000000..39d5799b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_left_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_left_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_left_inv.png new file mode 100644 index 00000000..e8868e2e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_left_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_left_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_left_top.png new file mode 100644 index 00000000..a841a84f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_left_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_lrb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_lrb.png new file mode 100644 index 00000000..86e3fbee Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_lrb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_lrt.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_lrt.png new file mode 100644 index 00000000..86e3fbee Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_lrt.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_right_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_right_bottom.png new file mode 100644 index 00000000..c99eae8c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_right_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_right_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_right_inv.png new file mode 100644 index 00000000..96557355 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_right_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_right_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_right_top.png new file mode 100644 index 00000000..bb4b7542 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_right_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_tb.png new file mode 100644 index 00000000..6d31f6a4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_glass_white_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_left_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_left_bottom.png new file mode 100644 index 00000000..1db0a8fc Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_left_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_left_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_left_inv.png new file mode 100644 index 00000000..0e9e7a03 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_left_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_left_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_left_top.png new file mode 100644 index 00000000..e824e577 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_left_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_lrb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_lrb.png new file mode 100644 index 00000000..06062dff Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_lrb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_lrt.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_lrt.png new file mode 100644 index 00000000..06062dff Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_lrt.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_right_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_right_bottom.png new file mode 100644 index 00000000..acfc4d41 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_right_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_right_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_right_inv.png new file mode 100644 index 00000000..b1bbd964 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_right_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_right_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_right_top.png new file mode 100644 index 00000000..03d33ddc Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_right_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_tb.png new file mode 100644 index 00000000..fcd5c3f0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wood_plain_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_left_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_left_bottom.png new file mode 100644 index 00000000..ea12017b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_left_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_left_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_left_inv.png new file mode 100644 index 00000000..15a97978 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_left_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_left_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_left_top.png new file mode 100644 index 00000000..01970e6a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_left_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_lrb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_lrb.png new file mode 100644 index 00000000..d03c99ba Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_lrb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_lrt.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_lrt.png new file mode 100644 index 00000000..54ebda35 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_lrt.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_right_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_right_bottom.png new file mode 100644 index 00000000..7b9c0895 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_right_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_right_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_right_top.png new file mode 100644 index 00000000..0f311471 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_right_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_tb.png new file mode 100644 index 00000000..91626c5e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_woodglass_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_left_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_left_bottom.png new file mode 100644 index 00000000..2a1e681f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_left_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_left_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_left_inv.png new file mode 100644 index 00000000..9fbd6f46 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_left_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_left_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_left_top.png new file mode 100644 index 00000000..6cfca1e8 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_left_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_lrb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_lrb.png new file mode 100644 index 00000000..136d0b14 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_lrb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_lrt.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_lrt.png new file mode 100644 index 00000000..50662c75 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_lrt.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_right_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_right_bottom.png new file mode 100644 index 00000000..e45bc192 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_right_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_right_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_right_inv.png new file mode 100644 index 00000000..7b4b2700 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_right_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_right_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_right_top.png new file mode 100644 index 00000000..1a7b045c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_right_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_tb.png new file mode 100644 index 00000000..09de596e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_door_wrought_iron_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_doorbell.png b/mods/homedecor_modpack/homedecor/textures/homedecor_doorbell.png new file mode 100644 index 00000000..2c028d97 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_doorbell.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_doorbell_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_doorbell_inv.png new file mode 100644 index 00000000..99cdd15f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_doorbell_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_drawer_small.png b/mods/homedecor_modpack/homedecor/textures/homedecor_drawer_small.png new file mode 100644 index 00000000..693806db Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_drawer_small.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dryer_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dryer_back.png new file mode 100644 index 00000000..b085c63f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dryer_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dryer_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dryer_bottom.png new file mode 100644 index 00000000..25f7416e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dryer_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dryer_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dryer_front.png new file mode 100644 index 00000000..2fc8d8e6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dryer_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dryer_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dryer_sides.png new file mode 100644 index 00000000..6cb3c8fa Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dryer_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dryer_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dryer_top.png new file mode 100644 index 00000000..f416845a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dryer_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dvd_player.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dvd_player.png new file mode 100644 index 00000000..357a28df Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dvd_player.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dvdcd_cabinet_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dvdcd_cabinet_back.png new file mode 100644 index 00000000..31208fad Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dvdcd_cabinet_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dvdcd_cabinet_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dvdcd_cabinet_bottom.png new file mode 100644 index 00000000..b39923d6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dvdcd_cabinet_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dvdcd_cabinet_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dvdcd_cabinet_front.png new file mode 100644 index 00000000..0b63194a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dvdcd_cabinet_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dvdcd_cabinet_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dvdcd_cabinet_sides.png new file mode 100644 index 00000000..4f1def9e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dvdcd_cabinet_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dvdcd_cabinet_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dvdcd_cabinet_top.png new file mode 100644 index 00000000..15f3423a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dvdcd_cabinet_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dvdvcr_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dvdvcr_back.png new file mode 100644 index 00000000..231bd6f7 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dvdvcr_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dvdvcr_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dvdvcr_bottom.png new file mode 100644 index 00000000..839bd9ef Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dvdvcr_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dvdvcr_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dvdvcr_front.png new file mode 100644 index 00000000..c955ff53 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dvdvcr_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dvdvcr_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dvdvcr_inv.png new file mode 100644 index 00000000..025b5851 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dvdvcr_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dvdvcr_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dvdvcr_sides.png new file mode 100644 index 00000000..19983fb5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dvdvcr_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_dvdvcr_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_dvdvcr_top.png new file mode 100644 index 00000000..390b2f60 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_dvdvcr_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fan_blades.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fan_blades.png new file mode 100644 index 00000000..bdab408e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fan_blades.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_barbed_wire.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_barbed_wire.png new file mode 100644 index 00000000..1fd22a7b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_barbed_wire.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_brass.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_brass.png new file mode 100644 index 00000000..ac18b0da Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_brass.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_corner_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_corner_back.png new file mode 100644 index 00000000..74ba14c0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_corner_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_corner_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_corner_bottom.png new file mode 100644 index 00000000..fa357f93 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_corner_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_corner_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_corner_front.png new file mode 100644 index 00000000..74ba14c0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_corner_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_corner_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_corner_left.png new file mode 100644 index 00000000..74ba14c0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_corner_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_corner_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_corner_right.png new file mode 100644 index 00000000..74ba14c0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_corner_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_corner_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_corner_top.png new file mode 100644 index 00000000..fa357f93 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_corner_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_fb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_fb.png new file mode 100644 index 00000000..29d92202 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_fb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_sides.png new file mode 100644 index 00000000..994882e2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_tb.png new file mode 100644 index 00000000..a80ef543 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_chainlink_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_corner_wrought_iron_2_fb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_corner_wrought_iron_2_fb.png new file mode 100644 index 00000000..6170fb5d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_corner_wrought_iron_2_fb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_corner_wrought_iron_2_lr.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_corner_wrought_iron_2_lr.png new file mode 100644 index 00000000..8d8bc348 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_corner_wrought_iron_2_lr.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_corner_wrought_iron_2_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_corner_wrought_iron_2_tb.png new file mode 100644 index 00000000..74fccd43 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_corner_wrought_iron_2_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_picket.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_picket.png new file mode 100644 index 00000000..7c98218a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_picket.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_picket_backside.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_picket_backside.png new file mode 100644 index 00000000..4bc274c7 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_picket_backside.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_picket_white.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_picket_white.png new file mode 100644 index 00000000..d0d3509f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_picket_white.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_picket_white_backside.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_picket_white_backside.png new file mode 100644 index 00000000..f385add2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_picket_white_backside.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_backside.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_backside.png new file mode 100644 index 00000000..fef1f0cb Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_backside.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_backside2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_backside2.png new file mode 100644 index 00000000..fef1f0cb Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_backside2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_corner_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_corner_bottom.png new file mode 100644 index 00000000..16d04e16 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_corner_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_corner_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_corner_front.png new file mode 100644 index 00000000..cc34e1b0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_corner_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_corner_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_corner_right.png new file mode 100644 index 00000000..f1f0e25f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_corner_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_corner_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_corner_top.png new file mode 100644 index 00000000..fa048ad5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_corner_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_front.png new file mode 100644 index 00000000..a7a8652e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_sides.png new file mode 100644 index 00000000..9f452998 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_tb.png new file mode 100644 index 00000000..076dba65 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_privacy_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_wrought_iron.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_wrought_iron.png new file mode 100644 index 00000000..dd795fb8 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_wrought_iron.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_wrought_iron_2_fb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_wrought_iron_2_fb.png new file mode 100644 index 00000000..9a26288a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_wrought_iron_2_fb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_wrought_iron_2_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_wrought_iron_2_sides.png new file mode 100644 index 00000000..50662c75 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_wrought_iron_2_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fence_wrought_iron_2_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_wrought_iron_2_tb.png new file mode 100644 index 00000000..09de596e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fence_wrought_iron_2_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_filing_cabinet_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_filing_cabinet_back.png new file mode 100644 index 00000000..c6c0fcf5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_filing_cabinet_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_filing_cabinet_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_filing_cabinet_bottom.png new file mode 100644 index 00000000..a896a307 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_filing_cabinet_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_filing_cabinet_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_filing_cabinet_front.png new file mode 100644 index 00000000..b434932a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_filing_cabinet_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_filing_cabinet_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_filing_cabinet_sides.png new file mode 100644 index 00000000..dda03d15 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_filing_cabinet_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_filing_cabinet_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_filing_cabinet_top.png new file mode 100644 index 00000000..a7257d46 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_filing_cabinet_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_back.png new file mode 100644 index 00000000..b8770a73 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_back_lighted.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_back_lighted.png new file mode 100644 index 00000000..772ed350 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_back_lighted.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_bottom.png new file mode 100644 index 00000000..0eb0753b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_front.png new file mode 100644 index 00000000..6b8d6f3d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_front_lighted.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_front_lighted.png new file mode 100644 index 00000000..e01c71d3 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_front_lighted.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_left.png new file mode 100644 index 00000000..6f96c7d1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_left_lighted.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_left_lighted.png new file mode 100644 index 00000000..aa53183c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_left_lighted.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_right.png new file mode 100644 index 00000000..730e33e4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_right_lighted.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_right_lighted.png new file mode 100644 index 00000000..cac03c50 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_right_lighted.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_top.png new file mode 100644 index 00000000..c8c91670 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_fishtank_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_black_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_black_bottom.png new file mode 100644 index 00000000..ca96c9fd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_black_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_black_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_black_sides.png new file mode 100644 index 00000000..88f56e6c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_black_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_black_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_black_top.png new file mode 100644 index 00000000..dc7e02c6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_black_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_green_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_green_bottom.png new file mode 100644 index 00000000..e13e99fc Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_green_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_green_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_green_sides.png new file mode 100644 index 00000000..20de089d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_green_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_green_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_green_top.png new file mode 100644 index 00000000..db2a5c65 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_green_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_terracotta_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_terracotta_bottom.png new file mode 100644 index 00000000..0c86c2a5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_terracotta_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_terracotta_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_terracotta_sides.png new file mode 100644 index 00000000..8f786f74 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_terracotta_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_terracotta_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_terracotta_top.png new file mode 100644 index 00000000..78238b25 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_flower_pot_terracotta_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_flowerbox_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_flowerbox_bottom.png new file mode 100644 index 00000000..af1c27df Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_flowerbox_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_flowerbox_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_flowerbox_inv.png new file mode 100644 index 00000000..31226c59 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_flowerbox_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_flowerbox_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_flowerbox_sides.png new file mode 100644 index 00000000..4792f011 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_flowerbox_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_flowerbox_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_flowerbox_top.png new file mode 100644 index 00000000..06620aaf Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_flowerbox_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_barbed_wire_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_barbed_wire_back.png new file mode 100644 index 00000000..3139da8c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_barbed_wire_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_barbed_wire_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_barbed_wire_bottom.png new file mode 100644 index 00000000..000185ae Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_barbed_wire_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_barbed_wire_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_barbed_wire_front.png new file mode 100644 index 00000000..8f938bb6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_barbed_wire_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_barbed_wire_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_barbed_wire_left.png new file mode 100644 index 00000000..000185ae Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_barbed_wire_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_barbed_wire_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_barbed_wire_right.png new file mode 100644 index 00000000..000185ae Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_barbed_wire_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_barbed_wire_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_barbed_wire_top.png new file mode 100644 index 00000000..000185ae Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_barbed_wire_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_chainlink_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_chainlink_back.png new file mode 100644 index 00000000..af62ad72 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_chainlink_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_chainlink_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_chainlink_bottom.png new file mode 100644 index 00000000..fa357f93 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_chainlink_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_chainlink_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_chainlink_front.png new file mode 100644 index 00000000..856e8baa Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_chainlink_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_chainlink_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_chainlink_left.png new file mode 100644 index 00000000..ac231808 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_chainlink_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_chainlink_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_chainlink_right.png new file mode 100644 index 00000000..ac231808 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_chainlink_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_chainlink_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_chainlink_top.png new file mode 100644 index 00000000..fa357f93 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_chainlink_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_back.png new file mode 100644 index 00000000..8ab5c9c3 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_bottom.png new file mode 100644 index 00000000..c22f319c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_front.png new file mode 100644 index 00000000..858da6b4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_left.png new file mode 100644 index 00000000..c22f319c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_right.png new file mode 100644 index 00000000..c22f319c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_top.png new file mode 100644 index 00000000..c22f319c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_white_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_white_back.png new file mode 100644 index 00000000..b88e0cf4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_white_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_white_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_white_bottom.png new file mode 100644 index 00000000..c22f319c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_white_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_white_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_white_front.png new file mode 100644 index 00000000..dbe54628 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_white_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_white_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_white_left.png new file mode 100644 index 00000000..c22f319c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_white_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_white_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_white_right.png new file mode 100644 index 00000000..c22f319c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_white_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_white_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_white_top.png new file mode 100644 index 00000000..c22f319c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gate_picket_white_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_generic_wood.png b/mods/homedecor_modpack/homedecor/textures/homedecor_generic_wood.png new file mode 100644 index 00000000..85a344c3 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_generic_wood.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glass_face_clean.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glass_face_clean.png new file mode 100644 index 00000000..e960d346 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glass_face_clean.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glass_table_large_edges.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glass_table_large_edges.png new file mode 100644 index 00000000..3225bf7c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glass_table_large_edges.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glass_table_large_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glass_table_large_tb.png new file mode 100644 index 00000000..8cf953ca Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glass_table_large_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glass_table_small_round_edges.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glass_table_small_round_edges.png new file mode 100644 index 00000000..29cc270c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glass_table_small_round_edges.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glass_table_small_round_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glass_table_small_round_tb.png new file mode 100644 index 00000000..68b813b3 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glass_table_small_round_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glass_table_small_square_edges.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glass_table_small_square_edges.png new file mode 100644 index 00000000..29cc270c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glass_table_small_square_edges.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glass_table_small_square_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glass_table_small_square_tb.png new file mode 100644 index 00000000..c4119f66 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glass_table_small_square_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_cube_white_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_cube_white_sides.png new file mode 100644 index 00000000..a640db81 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_cube_white_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_cube_white_sides_ceiling.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_cube_white_sides_ceiling.png new file mode 100644 index 00000000..e9819dc7 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_cube_white_sides_ceiling.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_cube_white_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_cube_white_tb.png new file mode 100644 index 00000000..1a17ad32 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_cube_white_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_cube_yellow_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_cube_yellow_sides.png new file mode 100644 index 00000000..b79be077 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_cube_yellow_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_cube_yellow_sides_ceiling.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_cube_yellow_sides_ceiling.png new file mode 100644 index 00000000..a9d397af Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_cube_yellow_sides_ceiling.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_cube_yellow_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_cube_yellow_tb.png new file mode 100644 index 00000000..daf03ab4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_cube_yellow_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thick_white_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thick_white_sides.png new file mode 100644 index 00000000..44c2b360 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thick_white_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thick_white_wall_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thick_white_wall_sides.png new file mode 100644 index 00000000..937999ea Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thick_white_wall_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thick_yellow_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thick_yellow_sides.png new file mode 100644 index 00000000..847f75e7 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thick_yellow_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thick_yellow_wall_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thick_yellow_wall_sides.png new file mode 100644 index 00000000..57820f10 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thick_yellow_wall_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thin_white_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thin_white_sides.png new file mode 100644 index 00000000..ab347445 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thin_white_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thin_white_wall_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thin_white_wall_sides.png new file mode 100644 index 00000000..13c8bb88 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thin_white_wall_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thin_yellow_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thin_yellow_sides.png new file mode 100644 index 00000000..0a93a700 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thin_yellow_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thin_yellow_wall_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thin_yellow_wall_sides.png new file mode 100644 index 00000000..4b28a27c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_thin_yellow_wall_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_white_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_white_bottom.png new file mode 100644 index 00000000..571e77a4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_white_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_white_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_white_top.png new file mode 100644 index 00000000..12af83c9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_white_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_yellow_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_yellow_bottom.png new file mode 100644 index 00000000..4c749576 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_yellow_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_yellow_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_yellow_top.png new file mode 100644 index 00000000..7317e9df Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_glowlight_yellow_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_gold_block.png b/mods/homedecor_modpack/homedecor/textures/homedecor_gold_block.png new file mode 100644 index 00000000..dee4cdbe Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_gold_block.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_grandfather_clock_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_grandfather_clock_bottom.png new file mode 100644 index 00000000..55ffe5f8 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_grandfather_clock_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_grandfather_clock_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_grandfather_clock_inv.png new file mode 100644 index 00000000..84f9ed98 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_grandfather_clock_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_grandfather_clock_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_grandfather_clock_sides.png new file mode 100644 index 00000000..27a5f791 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_grandfather_clock_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_grandfather_clock_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_grandfather_clock_top.png new file mode 100644 index 00000000..1783c46d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_grandfather_clock_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_heater_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_heater_back.png new file mode 100644 index 00000000..61165d33 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_heater_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_heater_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_heater_front.png new file mode 100644 index 00000000..8ea94001 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_heater_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_heater_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_heater_inv.png new file mode 100644 index 00000000..d10ade70 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_heater_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_heater_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_heater_sides.png new file mode 100644 index 00000000..7ce3ebf4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_heater_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_heater_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_heater_tb.png new file mode 100644 index 00000000..ed398c66 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_heater_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_heating_element.png b/mods/homedecor_modpack/homedecor/textures/homedecor_heating_element.png new file mode 100644 index 00000000..42e00b7a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_heating_element.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_ic.png b/mods/homedecor_modpack/homedecor/textures/homedecor_ic.png new file mode 100644 index 00000000..4c888945 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_ic.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_japanese_door_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_japanese_door_bottom.png new file mode 100644 index 00000000..b5bf5567 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_japanese_door_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_japanese_door_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_japanese_door_top.png new file mode 100644 index 00000000..ccdee506 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_japanese_door_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_japanese_wall_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_japanese_wall_bottom.png new file mode 100644 index 00000000..adcaf79a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_japanese_wall_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_japanese_wall_edges.png b/mods/homedecor_modpack/homedecor/textures/homedecor_japanese_wall_edges.png new file mode 100644 index 00000000..cefc6764 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_japanese_wall_edges.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_japanese_wall_middle.png b/mods/homedecor_modpack/homedecor/textures/homedecor_japanese_wall_middle.png new file mode 100644 index 00000000..96dcae98 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_japanese_wall_middle.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_japanese_wall_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_japanese_wall_top.png new file mode 100644 index 00000000..ed8af435 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_japanese_wall_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_jpn_door_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_jpn_door_inv.png new file mode 100644 index 00000000..9e6a2766 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_jpn_door_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_bottom.png new file mode 100644 index 00000000..cd5c4715 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_front.png new file mode 100644 index 00000000..1021b2d3 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_front_half.png b/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_front_half.png new file mode 100644 index 00000000..bd211e6a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_front_half.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_sides.png new file mode 100644 index 00000000..08da10d7 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_sinktop.png b/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_sinktop.png new file mode 100644 index 00000000..7e5666ef Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_sinktop.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_top.png new file mode 100644 index 00000000..983f4828 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_top_granite.png b/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_top_granite.png new file mode 100644 index 00000000..7f4d6b73 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_top_granite.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_top_marble.png b/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_top_marble.png new file mode 100644 index 00000000..7f5c1a39 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_top_marble.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_top_steel.png b/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_top_steel.png new file mode 100644 index 00000000..9cc6c7b9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_cabinet_top_steel.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_faucet_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_faucet_inv.png new file mode 100644 index 00000000..a4e9cdd5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_kitchen_faucet_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_lattice_lantern_large.png b/mods/homedecor_modpack/homedecor/textures/homedecor_lattice_lantern_large.png new file mode 100644 index 00000000..769fca58 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_lattice_lantern_large.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_lattice_lantern_small_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_lattice_lantern_small_sides.png new file mode 100644 index 00000000..ba6868d1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_lattice_lantern_small_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_lattice_lantern_small_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_lattice_lantern_small_tb.png new file mode 100644 index 00000000..d5cf07b2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_lattice_lantern_small_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_light_switch_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_light_switch_back.png new file mode 100644 index 00000000..e0c17f32 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_light_switch_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_light_switch_edges.png b/mods/homedecor_modpack/homedecor/textures/homedecor_light_switch_edges.png new file mode 100644 index 00000000..99277a84 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_light_switch_edges.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_light_switch_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_light_switch_front.png new file mode 100644 index 00000000..7999677b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_light_switch_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_light_switch_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_light_switch_inv.png new file mode 100644 index 00000000..80bf972b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_light_switch_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_medicine_cabinet_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_medicine_cabinet_back.png new file mode 100644 index 00000000..0e862e47 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_medicine_cabinet_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_medicine_cabinet_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_medicine_cabinet_front.png new file mode 100644 index 00000000..c76f5c11 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_medicine_cabinet_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_medicine_cabinet_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_medicine_cabinet_inv.png new file mode 100644 index 00000000..6aa39d00 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_medicine_cabinet_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_medicine_cabinet_open_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_medicine_cabinet_open_front.png new file mode 100644 index 00000000..de7b249c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_medicine_cabinet_open_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_medicine_cabinet_open_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_medicine_cabinet_open_right.png new file mode 100644 index 00000000..0ef44c29 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_medicine_cabinet_open_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_medicine_cabinet_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_medicine_cabinet_sides.png new file mode 100644 index 00000000..e8646915 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_medicine_cabinet_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_medicine_cabinet_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_medicine_cabinet_tb.png new file mode 100644 index 00000000..7b0407d4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_medicine_cabinet_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_microwave_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_microwave_back.png new file mode 100644 index 00000000..5d277653 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_microwave_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_microwave_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_microwave_bottom.png new file mode 100644 index 00000000..2baa0a27 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_microwave_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_microwave_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_microwave_front.png new file mode 100644 index 00000000..e9d6dd9d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_microwave_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_microwave_front_active.png b/mods/homedecor_modpack/homedecor/textures/homedecor_microwave_front_active.png new file mode 100644 index 00000000..0682e75f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_microwave_front_active.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_microwave_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_microwave_left.png new file mode 100644 index 00000000..a0605eff Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_microwave_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_microwave_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_microwave_right.png new file mode 100644 index 00000000..b7a86525 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_microwave_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_microwave_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_microwave_top.png new file mode 100644 index 00000000..8f5c3ff0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_microwave_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_motor.png b/mods/homedecor_modpack/homedecor/textures/homedecor_motor.png new file mode 100644 index 00000000..f19ec0a0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_motor.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_mahogany_1_drawer_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_mahogany_1_drawer_front.png new file mode 100644 index 00000000..a040d45b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_mahogany_1_drawer_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_mahogany_2_drawer_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_mahogany_2_drawer_front.png new file mode 100644 index 00000000..c27b60e1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_mahogany_2_drawer_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_mahogany_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_mahogany_back.png new file mode 100644 index 00000000..d7a4017c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_mahogany_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_mahogany_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_mahogany_bottom.png new file mode 100644 index 00000000..06b95802 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_mahogany_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_mahogany_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_mahogany_left.png new file mode 100644 index 00000000..5b765cbf Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_mahogany_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_mahogany_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_mahogany_right.png new file mode 100644 index 00000000..e66e5b92 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_mahogany_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_mahogany_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_mahogany_top.png new file mode 100644 index 00000000..553a17ed Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_mahogany_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_oak_1_drawer_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_oak_1_drawer_front.png new file mode 100644 index 00000000..5eaad8bc Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_oak_1_drawer_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_oak_2_drawer_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_oak_2_drawer_front.png new file mode 100644 index 00000000..fa28b738 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_oak_2_drawer_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_oak_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_oak_back.png new file mode 100644 index 00000000..d1ba23f7 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_oak_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_oak_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_oak_bottom.png new file mode 100644 index 00000000..762b492d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_oak_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_oak_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_oak_left.png new file mode 100644 index 00000000..1edc06e6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_oak_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_oak_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_oak_right.png new file mode 100644 index 00000000..c16430ed Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_oak_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_oak_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_oak_top.png new file mode 100644 index 00000000..019cf93b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_nightstand_oak_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_oil_extract.png b/mods/homedecor_modpack/homedecor/textures/homedecor_oil_extract.png new file mode 100644 index 00000000..48e6dffd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_oil_extract.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_oil_lamp.png b/mods/homedecor_modpack/homedecor/textures/homedecor_oil_lamp.png new file mode 100644 index 00000000..47185b5a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_oil_lamp.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_outlet_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_outlet_back.png new file mode 100644 index 00000000..f600731d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_outlet_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_outlet_edges.png b/mods/homedecor_modpack/homedecor/textures/homedecor_outlet_edges.png new file mode 100644 index 00000000..5135dd94 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_outlet_edges.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_outlet_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_outlet_front.png new file mode 100644 index 00000000..c75d9069 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_outlet_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_outlet_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_outlet_inv.png new file mode 100644 index 00000000..0cf5efd2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_outlet_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_oven_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_oven_bottom.png new file mode 100644 index 00000000..ec6e6ce3 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_oven_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_oven_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_oven_front.png new file mode 100644 index 00000000..8059aedd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_oven_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_oven_front_active.png b/mods/homedecor_modpack/homedecor/textures/homedecor_oven_front_active.png new file mode 100644 index 00000000..49865274 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_oven_front_active.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_oven_side.png b/mods/homedecor_modpack/homedecor/textures/homedecor_oven_side.png new file mode 100644 index 00000000..be890ee8 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_oven_side.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_oven_steel_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_oven_steel_bottom.png new file mode 100644 index 00000000..ec6e6ce3 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_oven_steel_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_oven_steel_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_oven_steel_front.png new file mode 100644 index 00000000..d94f464c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_oven_steel_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_oven_steel_front_active.png b/mods/homedecor_modpack/homedecor/textures/homedecor_oven_steel_front_active.png new file mode 100644 index 00000000..29fa783c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_oven_steel_front_active.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_oven_steel_side.png b/mods/homedecor_modpack/homedecor/textures/homedecor_oven_steel_side.png new file mode 100644 index 00000000..88ad1446 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_oven_steel_side.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_oven_steel_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_oven_steel_top.png new file mode 100644 index 00000000..ba955b36 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_oven_steel_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_oven_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_oven_top.png new file mode 100644 index 00000000..4f32438f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_oven_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_painting1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_painting1.png new file mode 100644 index 00000000..63c17828 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_painting1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_painting10.png b/mods/homedecor_modpack/homedecor/textures/homedecor_painting10.png new file mode 100644 index 00000000..b7b3d573 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_painting10.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_painting11.png b/mods/homedecor_modpack/homedecor/textures/homedecor_painting11.png new file mode 100644 index 00000000..e417aa72 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_painting11.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_painting12.png b/mods/homedecor_modpack/homedecor/textures/homedecor_painting12.png new file mode 100644 index 00000000..66eadb7c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_painting12.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_painting13.png b/mods/homedecor_modpack/homedecor/textures/homedecor_painting13.png new file mode 100644 index 00000000..c2384d86 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_painting13.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_painting14.png b/mods/homedecor_modpack/homedecor/textures/homedecor_painting14.png new file mode 100644 index 00000000..1b612ec0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_painting14.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_painting15.png b/mods/homedecor_modpack/homedecor/textures/homedecor_painting15.png new file mode 100644 index 00000000..ebb1d746 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_painting15.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_painting16.png b/mods/homedecor_modpack/homedecor/textures/homedecor_painting16.png new file mode 100644 index 00000000..c6537973 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_painting16.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_painting17.png b/mods/homedecor_modpack/homedecor/textures/homedecor_painting17.png new file mode 100644 index 00000000..7f1b836e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_painting17.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_painting18.png b/mods/homedecor_modpack/homedecor/textures/homedecor_painting18.png new file mode 100644 index 00000000..24176a21 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_painting18.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_painting19.png b/mods/homedecor_modpack/homedecor/textures/homedecor_painting19.png new file mode 100644 index 00000000..e5054b2b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_painting19.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_painting2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_painting2.png new file mode 100644 index 00000000..e29329b2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_painting2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_painting20.png b/mods/homedecor_modpack/homedecor/textures/homedecor_painting20.png new file mode 100644 index 00000000..ca5a3e2b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_painting20.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_painting3.png b/mods/homedecor_modpack/homedecor/textures/homedecor_painting3.png new file mode 100644 index 00000000..9e756e4e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_painting3.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_painting4.png b/mods/homedecor_modpack/homedecor/textures/homedecor_painting4.png new file mode 100644 index 00000000..b1ab638a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_painting4.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_painting5.png b/mods/homedecor_modpack/homedecor/textures/homedecor_painting5.png new file mode 100644 index 00000000..aef95ff5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_painting5.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_painting6.png b/mods/homedecor_modpack/homedecor/textures/homedecor_painting6.png new file mode 100644 index 00000000..2d3e0e4b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_painting6.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_painting7.png b/mods/homedecor_modpack/homedecor/textures/homedecor_painting7.png new file mode 100644 index 00000000..227849dd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_painting7.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_painting8.png b/mods/homedecor_modpack/homedecor/textures/homedecor_painting8.png new file mode 100644 index 00000000..0c13b613 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_painting8.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_painting9.png b/mods/homedecor_modpack/homedecor/textures/homedecor_painting9.png new file mode 100644 index 00000000..40e7dece Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_painting9.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_painting_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_painting_back.png new file mode 100644 index 00000000..4257cedf Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_painting_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_painting_edges.png b/mods/homedecor_modpack/homedecor/textures/homedecor_painting_edges.png new file mode 100644 index 00000000..07a7be72 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_painting_edges.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_paper_towel_ends.png b/mods/homedecor_modpack/homedecor/textures/homedecor_paper_towel_ends.png new file mode 100644 index 00000000..6e94efbe Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_paper_towel_ends.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_paper_towel_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_paper_towel_inv.png new file mode 100644 index 00000000..9b7adefd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_paper_towel_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_paper_towel_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_paper_towel_sides.png new file mode 100644 index 00000000..e84d042c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_paper_towel_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_paraffin.png b/mods/homedecor_modpack/homedecor/textures/homedecor_paraffin.png new file mode 100644 index 00000000..8ade16e0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_paraffin.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_piano_front_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_piano_front_left.png new file mode 100644 index 00000000..ce4de0a7 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_piano_front_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_piano_front_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_piano_front_right.png new file mode 100644 index 00000000..735d9e9c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_piano_front_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_piano_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_piano_inv.png new file mode 100644 index 00000000..956c4914 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_piano_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_piano_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_piano_sides.png new file mode 100644 index 00000000..ee42a27e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_piano_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_piano_top_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_piano_top_left.png new file mode 100644 index 00000000..4968db60 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_piano_top_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_piano_top_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_piano_top_right.png new file mode 100644 index 00000000..97a59e2f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_piano_top_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_plasma_storm.png b/mods/homedecor_modpack/homedecor/textures/homedecor_plasma_storm.png new file mode 100644 index 00000000..42b7ca48 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_plasma_storm.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_plastic_sheeting.png b/mods/homedecor_modpack/homedecor/textures/homedecor_plastic_sheeting.png new file mode 100644 index 00000000..034dcc2f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_plastic_sheeting.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_plastic_strips.png b/mods/homedecor_modpack/homedecor/textures/homedecor_plastic_strips.png new file mode 100644 index 00000000..6ec83a83 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_plastic_strips.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_pole_brass.png b/mods/homedecor_modpack/homedecor/textures/homedecor_pole_brass.png new file mode 100644 index 00000000..0c0063d5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_pole_brass.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_pole_brass2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_pole_brass2.png new file mode 100644 index 00000000..b2f807c6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_pole_brass2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_pole_wrought_iron.png b/mods/homedecor_modpack/homedecor/textures/homedecor_pole_wrought_iron.png new file mode 100644 index 00000000..eef82d3e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_pole_wrought_iron.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_polished_copper.png b/mods/homedecor_modpack/homedecor/textures/homedecor_polished_copper.png new file mode 100644 index 00000000..1d0d7dca Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_polished_copper.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_bottom1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_bottom1.png new file mode 100644 index 00000000..5251f5d0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_bottom1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_bottom2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_bottom2.png new file mode 100644 index 00000000..cf3c5fe2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_bottom2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_end1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_end1.png new file mode 100644 index 00000000..7b992354 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_end1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_end2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_end2.png new file mode 100644 index 00000000..7b992354 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_end2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_end3.png b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_end3.png new file mode 100644 index 00000000..7b992354 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_end3.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_end4.png b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_end4.png new file mode 100644 index 00000000..7b992354 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_end4.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_inv.png new file mode 100644 index 00000000..05e6df29 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_sides1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_sides1.png new file mode 100644 index 00000000..67628e55 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_sides1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_sides2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_sides2.png new file mode 100644 index 00000000..b42b3b16 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_sides2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_sides3.png b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_sides3.png new file mode 100644 index 00000000..3c73d557 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_sides3.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_sides4.png b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_sides4.png new file mode 100644 index 00000000..719455cd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_sides4.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_top1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_top1.png new file mode 100644 index 00000000..19216fab Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_top1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_top2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_top2.png new file mode 100644 index 00000000..3d3ff6e1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_pool_table_top2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_power_crystal.png b/mods/homedecor_modpack/homedecor/textures/homedecor_power_crystal.png new file mode 100644 index 00000000..f1c28e80 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_power_crystal.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_projection_screen.png b/mods/homedecor_modpack/homedecor/textures/homedecor_projection_screen.png new file mode 100644 index 00000000..1c87c00b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_projection_screen.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_projection_screen_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_projection_screen_inv.png new file mode 100644 index 00000000..bc626998 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_projection_screen_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_radiator_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_radiator_inv.png new file mode 100644 index 00000000..2ca084ea Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_radiator_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_back1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_back1.png new file mode 100644 index 00000000..e3294492 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_back1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_back2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_back2.png new file mode 100644 index 00000000..e3294492 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_back2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_bottom.png new file mode 100644 index 00000000..7f3fb753 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_front1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_front1.png new file mode 100644 index 00000000..9799e3d5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_front1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_front2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_front2.png new file mode 100644 index 00000000..90b687e8 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_front2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_inv.png new file mode 100644 index 00000000..f6ec088f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_sides1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_sides1.png new file mode 100644 index 00000000..811a6f88 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_sides1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_sides2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_sides2.png new file mode 100644 index 00000000..811a6f88 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_sides2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_top.png new file mode 100644 index 00000000..b4bf48a3 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_steel_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_back1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_back1.png new file mode 100644 index 00000000..135eeab7 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_back1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_back2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_back2.png new file mode 100644 index 00000000..135eeab7 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_back2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_bottom.png new file mode 100644 index 00000000..1dd2013a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_front1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_front1.png new file mode 100644 index 00000000..80179fde Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_front1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_front2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_front2.png new file mode 100644 index 00000000..747b42c2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_front2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_inv.png new file mode 100644 index 00000000..a611746a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_sides1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_sides1.png new file mode 100644 index 00000000..1f68ea23 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_sides1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_sides2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_sides2.png new file mode 100644 index 00000000..1f68ea23 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_sides2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_top.png new file mode 100644 index 00000000..7078fa7e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_refrigerator_white_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_roof_tile_terracotta.png b/mods/homedecor_modpack/homedecor/textures/homedecor_roof_tile_terracotta.png new file mode 100644 index 00000000..e57a135b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_roof_tile_terracotta.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_rug_large.png b/mods/homedecor_modpack/homedecor/textures/homedecor_rug_large.png new file mode 100644 index 00000000..b2a441d6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_rug_large.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_rug_small.png b/mods/homedecor_modpack/homedecor/textures/homedecor_rug_small.png new file mode 100644 index 00000000..5a648d10 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_rug_small.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_asphalt.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_asphalt.png new file mode 100644 index 00000000..9912a7de Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_asphalt.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_asphalt_c_t.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_asphalt_c_t.png new file mode 100644 index 00000000..9ed80930 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_asphalt_c_t.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_asphalt_c_x.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_asphalt_c_x.png new file mode 100644 index 00000000..34b06641 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_asphalt_c_x.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_asphalt_c_z.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_asphalt_c_z.png new file mode 100644 index 00000000..537760ac Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_asphalt_c_z.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_asphalt_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_asphalt_inv.png new file mode 100644 index 00000000..f1de9b94 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_asphalt_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_asphalt_s_t.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_asphalt_s_t.png new file mode 100644 index 00000000..9ed80930 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_asphalt_s_t.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_asphalt_s_z.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_asphalt_s_z.png new file mode 100644 index 00000000..537760ac Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_asphalt_s_z.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_glass.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_glass.png new file mode 100644 index 00000000..cf6b19e6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_glass.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_glass_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_glass_top.png new file mode 100644 index 00000000..cf6b19e6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_glass_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_terracotta.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_terracotta.png new file mode 100644 index 00000000..90c21c12 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_terracotta.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_terracotta_c_t.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_terracotta_c_t.png new file mode 100644 index 00000000..f99e9aae Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_terracotta_c_t.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_terracotta_c_x.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_terracotta_c_x.png new file mode 100644 index 00000000..e0403667 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_terracotta_c_x.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_terracotta_c_z.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_terracotta_c_z.png new file mode 100644 index 00000000..69bd47ed Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_terracotta_c_z.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_terracotta_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_terracotta_inv.png new file mode 100644 index 00000000..f5aaa5da Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_terracotta_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_terracotta_s_t.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_terracotta_s_t.png new file mode 100644 index 00000000..f99e9aae Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_terracotta_s_t.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_terracotta_s_z.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_terracotta_s_z.png new file mode 100644 index 00000000..69bd47ed Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_terracotta_s_z.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_wood.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_wood.png new file mode 100644 index 00000000..44ce9758 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_wood.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_wood_c_t.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_wood_c_t.png new file mode 100644 index 00000000..44ce9758 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_wood_c_t.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_wood_c_x.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_wood_c_x.png new file mode 100644 index 00000000..3e9d5043 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_wood_c_x.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_wood_c_z.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_wood_c_z.png new file mode 100644 index 00000000..8cc4adb4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_wood_c_z.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_wood_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_wood_inv.png new file mode 100644 index 00000000..df0e6778 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_wood_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_wood_s_t.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_wood_s_t.png new file mode 100644 index 00000000..44ce9758 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_wood_s_t.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_wood_s_z.png b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_wood_s_z.png new file mode 100644 index 00000000..8cc4adb4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_shingles_wood_s_z.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_sign_brass_post.png b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_brass_post.png new file mode 100644 index 00000000..3a5836ab Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_brass_post.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_sign_brass_post_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_brass_post_back.png new file mode 100644 index 00000000..22622e2e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_brass_post_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_sign_brass_post_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_brass_post_bottom.png new file mode 100644 index 00000000..c302326d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_brass_post_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_sign_brass_post_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_brass_post_front.png new file mode 100644 index 00000000..0671d3aa Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_brass_post_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_sign_brass_post_side.png b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_brass_post_side.png new file mode 100644 index 00000000..f9d71c3a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_brass_post_side.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_sign_brass_post_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_brass_post_top.png new file mode 100644 index 00000000..8b31bb7d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_brass_post_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_sign_wrought_iron_post.png b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_wrought_iron_post.png new file mode 100644 index 00000000..21fe113b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_wrought_iron_post.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_sign_wrought_iron_post_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_wrought_iron_post_back.png new file mode 100644 index 00000000..9777cfa9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_wrought_iron_post_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_sign_wrought_iron_post_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_wrought_iron_post_bottom.png new file mode 100644 index 00000000..6f9981ac Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_wrought_iron_post_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_sign_wrought_iron_post_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_wrought_iron_post_front.png new file mode 100644 index 00000000..0f037b8a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_wrought_iron_post_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_sign_wrought_iron_post_side.png b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_wrought_iron_post_side.png new file mode 100644 index 00000000..8a181403 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_wrought_iron_post_side.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_sign_wrought_iron_post_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_wrought_iron_post_top.png new file mode 100644 index 00000000..917eb7a8 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_sign_wrought_iron_post_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_silicon.png b/mods/homedecor_modpack/homedecor/textures/homedecor_silicon.png new file mode 100644 index 00000000..847b366c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_silicon.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_skateboard_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_skateboard_bottom.png new file mode 100644 index 00000000..ea5a229f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_skateboard_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_skateboard_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_skateboard_inv.png new file mode 100644 index 00000000..b3705add Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_skateboard_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_skateboard_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_skateboard_sides.png new file mode 100644 index 00000000..8b0b3163 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_skateboard_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_skateboard_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_skateboard_top.png new file mode 100644 index 00000000..b6ccb86f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_skateboard_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_skylight_frosted.png b/mods/homedecor_modpack/homedecor/textures/homedecor_skylight_frosted.png new file mode 100644 index 00000000..810b63c4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_skylight_frosted.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_skylight_frosted_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_skylight_frosted_inv.png new file mode 100644 index 00000000..e00585be Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_skylight_frosted_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_skylight_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_skylight_inv.png new file mode 100644 index 00000000..c4370525 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_skylight_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_speaker_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_speaker_back.png new file mode 100644 index 00000000..9f664870 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_speaker_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_speaker_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_speaker_bottom.png new file mode 100644 index 00000000..ed65f660 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_speaker_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_speaker_driver.png b/mods/homedecor_modpack/homedecor/textures/homedecor_speaker_driver.png new file mode 100644 index 00000000..729c1d68 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_speaker_driver.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_speaker_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_speaker_front.png new file mode 100644 index 00000000..689e7c08 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_speaker_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_speaker_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_speaker_left.png new file mode 100644 index 00000000..04a028fb Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_speaker_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_speaker_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_speaker_right.png new file mode 100644 index 00000000..2066676e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_speaker_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_speaker_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_speaker_top.png new file mode 100644 index 00000000..ecd6f1ea Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_speaker_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_sportbench_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_sportbench_bottom.png new file mode 100644 index 00000000..8d68fa06 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_sportbench_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_sportbench_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_sportbench_front.png new file mode 100644 index 00000000..7593bf8e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_sportbench_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_sportbench_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_sportbench_left.png new file mode 100644 index 00000000..cc92a5a7 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_sportbench_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_sportbench_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_sportbench_right.png new file mode 100644 index 00000000..0e7d5353 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_sportbench_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_sportbench_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_sportbench_top.png new file mode 100644 index 00000000..f75ebb18 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_sportbench_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_standing_lamp_blue_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_standing_lamp_blue_inv.png new file mode 100644 index 00000000..d552c525 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_standing_lamp_blue_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_standing_lamp_bottom_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_standing_lamp_bottom_sides.png new file mode 100644 index 00000000..e85886f1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_standing_lamp_bottom_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_standing_lamp_green_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_standing_lamp_green_inv.png new file mode 100644 index 00000000..1d7239f9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_standing_lamp_green_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_standing_lamp_pink_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_standing_lamp_pink_inv.png new file mode 100644 index 00000000..822016bd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_standing_lamp_pink_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_standing_lamp_red_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_standing_lamp_red_inv.png new file mode 100644 index 00000000..88b37008 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_standing_lamp_red_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_standing_lamp_violet_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_standing_lamp_violet_inv.png new file mode 100644 index 00000000..659606f6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_standing_lamp_violet_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_standing_lamp_white_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_standing_lamp_white_inv.png new file mode 100644 index 00000000..0c7114ab Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_standing_lamp_white_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_steel_strip.png b/mods/homedecor_modpack/homedecor/textures/homedecor_steel_strip.png new file mode 100644 index 00000000..c8c85160 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_steel_strip.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_steel_wire.png b/mods/homedecor_modpack/homedecor/textures/homedecor_steel_wire.png new file mode 100644 index 00000000..6534de0f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_steel_wire.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_stereo_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_stereo_back.png new file mode 100644 index 00000000..319e88da Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_stereo_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_stereo_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_stereo_bottom.png new file mode 100644 index 00000000..c52580ea Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_stereo_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_stereo_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_stereo_front.png new file mode 100644 index 00000000..1ba3b99d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_stereo_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_stereo_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_stereo_left.png new file mode 100644 index 00000000..857f16a6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_stereo_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_stereo_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_stereo_right.png new file mode 100644 index 00000000..7863417c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_stereo_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_stereo_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_stereo_top.png new file mode 100644 index 00000000..90b908d2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_stereo_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_stonepath_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_stonepath_inv.png new file mode 100644 index 00000000..73804cdf Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_stonepath_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_swing_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_swing_bottom.png new file mode 100644 index 00000000..68d30b0a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_swing_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_swing_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_swing_inv.png new file mode 100644 index 00000000..295c34c2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_swing_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_swing_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_swing_sides.png new file mode 100644 index 00000000..1a82832b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_swing_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_swing_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_swing_top.png new file mode 100644 index 00000000..dc829e2f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_swing_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_swingrope_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_swingrope_sides.png new file mode 100644 index 00000000..314fb50c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_swingrope_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_table_legs_brass.png b/mods/homedecor_modpack/homedecor/textures/homedecor_table_legs_brass.png new file mode 100644 index 00000000..1a1654c2 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_table_legs_brass.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_table_legs_wrought_iron.png b/mods/homedecor_modpack/homedecor/textures/homedecor_table_legs_wrought_iron.png new file mode 100644 index 00000000..ddf5c612 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_table_legs_wrought_iron.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_tatami.png b/mods/homedecor_modpack/homedecor/textures/homedecor_tatami.png new file mode 100644 index 00000000..adc22ebd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_tatami.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_telephone_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_telephone_bottom.png new file mode 100644 index 00000000..37f503c9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_telephone_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_telephone_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_telephone_inv.png new file mode 100644 index 00000000..bde3b3df Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_telephone_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_telephone_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_telephone_sides.png new file mode 100644 index 00000000..37f503c9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_telephone_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_telephone_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_telephone_top.png new file mode 100644 index 00000000..643000c8 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_telephone_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_television_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_television_back.png new file mode 100644 index 00000000..33bb786e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_television_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_television_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_television_bottom.png new file mode 100644 index 00000000..1e9c9fe7 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_television_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_television_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_television_front.png new file mode 100644 index 00000000..c8d76e70 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_television_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_television_front_animated.png b/mods/homedecor_modpack/homedecor/textures/homedecor_television_front_animated.png new file mode 100644 index 00000000..45994273 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_television_front_animated.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_television_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_television_left.png new file mode 100644 index 00000000..03bdfd6b Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_television_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_television_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_television_right.png new file mode 100644 index 00000000..31c1440e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_television_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_television_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_television_top.png new file mode 100644 index 00000000..4c018445 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_television_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_terracotta_base.png b/mods/homedecor_modpack/homedecor/textures/homedecor_terracotta_base.png new file mode 100644 index 00000000..9f04aad5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_terracotta_base.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_tile_brass.png b/mods/homedecor_modpack/homedecor/textures/homedecor_tile_brass.png new file mode 100644 index 00000000..7743fa94 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_tile_brass.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_tile_brass2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_tile_brass2.png new file mode 100644 index 00000000..e8f1f34f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_tile_brass2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_tile_wrought_iron.png b/mods/homedecor_modpack/homedecor/textures/homedecor_tile_wrought_iron.png new file mode 100644 index 00000000..c2d62cd9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_tile_wrought_iron.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_tile_wrought_iron2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_tile_wrought_iron2.png new file mode 100644 index 00000000..eef6fb77 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_tile_wrought_iron2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_titanium_dioxide.png b/mods/homedecor_modpack/homedecor/textures/homedecor_titanium_dioxide.png new file mode 100644 index 00000000..3f24cba8 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_titanium_dioxide.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_toaster_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_toaster_inv.png new file mode 100644 index 00000000..f5df038d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_toaster_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_toaster_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_toaster_sides.png new file mode 100644 index 00000000..33729b82 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_toaster_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_toaster_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_toaster_top.png new file mode 100644 index 00000000..7f6b198c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_toaster_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_toaster_toploaf.png b/mods/homedecor_modpack/homedecor/textures/homedecor_toaster_toploaf.png new file mode 100644 index 00000000..fbcdd7ce Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_toaster_toploaf.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_toilet_paper_ends.png b/mods/homedecor_modpack/homedecor/textures/homedecor_toilet_paper_ends.png new file mode 100644 index 00000000..65a4c44d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_toilet_paper_ends.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_toilet_paper_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_toilet_paper_inv.png new file mode 100644 index 00000000..e1c1d667 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_toilet_paper_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_toilet_paper_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_toilet_paper_sides.png new file mode 100644 index 00000000..86e95fb1 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_toilet_paper_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_bottom_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_bottom_front.png new file mode 100644 index 00000000..77fc7c7d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_bottom_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_bottom_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_bottom_sides.png new file mode 100644 index 00000000..7b41a7a4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_bottom_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_bottom_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_bottom_top.png new file mode 100644 index 00000000..b9e22e9e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_bottom_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_inv.png new file mode 100644 index 00000000..aa9e1ef6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_top_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_top_back.png new file mode 100644 index 00000000..ee252a06 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_top_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_top_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_top_bottom.png new file mode 100644 index 00000000..7eca3a63 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_top_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_top_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_top_front.png new file mode 100644 index 00000000..e9e55be0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_top_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_top_left.png b/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_top_left.png new file mode 100644 index 00000000..488b5367 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_top_left.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_top_right.png b/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_top_right.png new file mode 100644 index 00000000..579b5371 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_top_right.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_top_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_top_top.png new file mode 100644 index 00000000..02d0fc5c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_tool_cabinet_top_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_towel_rod_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_towel_rod_bottom.png new file mode 100644 index 00000000..a03bf900 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_towel_rod_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_towel_rod_fb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_towel_rod_fb.png new file mode 100644 index 00000000..7e101915 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_towel_rod_fb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_towel_rod_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_towel_rod_sides.png new file mode 100644 index 00000000..44e28bb6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_towel_rod_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_towel_rod_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_towel_rod_top.png new file mode 100644 index 00000000..60bb34da Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_towel_rod_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_trashcan_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_trashcan_inv.png new file mode 100644 index 00000000..213738cd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_trashcan_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_trashcan_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_trashcan_sides.png new file mode 100644 index 00000000..102e9284 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_trashcan_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_trashcan_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_trashcan_tb.png new file mode 100644 index 00000000..e4970731 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_trashcan_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_trophy_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_trophy_inv.png new file mode 100644 index 00000000..c76768f5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_trophy_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_utility_table_edges.png b/mods/homedecor_modpack/homedecor/textures/homedecor_utility_table_edges.png new file mode 100644 index 00000000..b4b8a1d9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_utility_table_edges.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_utility_table_legs.png b/mods/homedecor_modpack/homedecor/textures/homedecor_utility_table_legs.png new file mode 100644 index 00000000..3fad5771 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_utility_table_legs.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_utility_table_legs_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_utility_table_legs_inv.png new file mode 100644 index 00000000..7df29656 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_utility_table_legs_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_utility_table_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_utility_table_tb.png new file mode 100644 index 00000000..7a134e75 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_utility_table_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_vcr.png b/mods/homedecor_modpack/homedecor/textures/homedecor_vcr.png new file mode 100644 index 00000000..964464bb Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_vcr.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_wall_lantern.png b/mods/homedecor_modpack/homedecor/textures/homedecor_wall_lantern.png new file mode 100644 index 00000000..c660df4f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_wall_lantern.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_back1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_back1.png new file mode 100644 index 00000000..89abfc32 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_back1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_back2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_back2.png new file mode 100644 index 00000000..59c00188 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_back2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_bottom.png new file mode 100644 index 00000000..22f76ffa Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_frontb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_frontb.png new file mode 100644 index 00000000..05cd043f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_frontb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_frontt.png b/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_frontt.png new file mode 100644 index 00000000..66d214c4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_frontt.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_inv.png new file mode 100644 index 00000000..62d801c0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_sides1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_sides1.png new file mode 100644 index 00000000..89abfc32 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_sides1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_sides2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_sides2.png new file mode 100644 index 00000000..89abfc32 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_sides2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_top.png new file mode 100644 index 00000000..84f67ca9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_wardrobe_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_washing_machine_back.png b/mods/homedecor_modpack/homedecor/textures/homedecor_washing_machine_back.png new file mode 100644 index 00000000..cca307aa Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_washing_machine_back.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_washing_machine_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_washing_machine_bottom.png new file mode 100644 index 00000000..9aea7abe Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_washing_machine_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_washing_machine_front.png b/mods/homedecor_modpack/homedecor/textures/homedecor_washing_machine_front.png new file mode 100644 index 00000000..42af474c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_washing_machine_front.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_washing_machine_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_washing_machine_sides.png new file mode 100644 index 00000000..e52d5e3d Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_washing_machine_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_washing_machine_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_washing_machine_top.png new file mode 100644 index 00000000..8fb23ac0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_washing_machine_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_welcome_mat_bottom.png b/mods/homedecor_modpack/homedecor/textures/homedecor_welcome_mat_bottom.png new file mode 100644 index 00000000..ec37ebbb Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_welcome_mat_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_welcome_mat_brown.png b/mods/homedecor_modpack/homedecor/textures/homedecor_welcome_mat_brown.png new file mode 100644 index 00000000..3bd005da Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_welcome_mat_brown.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_welcome_mat_green.png b/mods/homedecor_modpack/homedecor/textures/homedecor_welcome_mat_green.png new file mode 100644 index 00000000..bbce65e3 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_welcome_mat_green.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_welcome_mat_grey.png b/mods/homedecor_modpack/homedecor/textures/homedecor_welcome_mat_grey.png new file mode 100644 index 00000000..8fa9dd2f Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_welcome_mat_grey.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_well_base_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_well_base_top.png new file mode 100644 index 00000000..50ce70a8 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_well_base_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_well_inv.png b/mods/homedecor_modpack/homedecor/textures/homedecor_well_inv.png new file mode 100644 index 00000000..77cb80f0 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_well_inv.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_well_roof_side1.png b/mods/homedecor_modpack/homedecor/textures/homedecor_well_roof_side1.png new file mode 100644 index 00000000..4d1e2892 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_well_roof_side1.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_well_roof_side2.png b/mods/homedecor_modpack/homedecor/textures/homedecor_well_roof_side2.png new file mode 100644 index 00000000..1ca3df76 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_well_roof_side2.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_well_roof_side3.png b/mods/homedecor_modpack/homedecor/textures/homedecor_well_roof_side3.png new file mode 100644 index 00000000..92e3bf66 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_well_roof_side3.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_well_roof_top.png b/mods/homedecor_modpack/homedecor/textures/homedecor_well_roof_top.png new file mode 100644 index 00000000..d6fb9386 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_well_roof_top.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_well_roof_wood.png b/mods/homedecor_modpack/homedecor/textures/homedecor_well_roof_wood.png new file mode 100644 index 00000000..d6fb9386 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_well_roof_wood.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_white_metal.png b/mods/homedecor_modpack/homedecor/textures/homedecor_white_metal.png new file mode 100644 index 00000000..faae38cc Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_white_metal.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_white_paint.png b/mods/homedecor_modpack/homedecor/textures/homedecor_white_paint.png new file mode 100644 index 00000000..c77abc15 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_white_paint.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_window_frame.png b/mods/homedecor_modpack/homedecor/textures/homedecor_window_frame.png new file mode 100644 index 00000000..7209ace4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_window_frame.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_window_quartered.png b/mods/homedecor_modpack/homedecor/textures/homedecor_window_quartered.png new file mode 100644 index 00000000..6d42b95c Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_window_quartered.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_black.png b/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_black.png new file mode 100644 index 00000000..cc29ebcd Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_black.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_dark_grey.png b/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_dark_grey.png new file mode 100644 index 00000000..52c4c784 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_dark_grey.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_forest_green.png b/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_forest_green.png new file mode 100644 index 00000000..51a261e8 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_forest_green.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_grey.png b/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_grey.png new file mode 100644 index 00000000..906ce714 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_grey.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_light_blue.png b/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_light_blue.png new file mode 100644 index 00000000..9e2a87f3 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_light_blue.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_mahogany.png b/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_mahogany.png new file mode 100644 index 00000000..a31a97e7 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_mahogany.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_oak.png b/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_oak.png new file mode 100644 index 00000000..952fb40a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_oak.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_red.png b/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_red.png new file mode 100644 index 00000000..9d731a7a Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_red.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_violet.png b/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_violet.png new file mode 100644 index 00000000..2323c848 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_violet.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_white.png b/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_white.png new file mode 100644 index 00000000..575dfbf5 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_white.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_yellow.png b/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_yellow.png new file mode 100644 index 00000000..5ed128fb Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_window_shutter_yellow.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_window_sides.png b/mods/homedecor_modpack/homedecor/textures/homedecor_window_sides.png new file mode 100644 index 00000000..722dc4f4 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_window_sides.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_windowblinds.png b/mods/homedecor_modpack/homedecor/textures/homedecor_windowblinds.png new file mode 100644 index 00000000..8e49eed6 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_windowblinds.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_wood_table_large_edges.png b/mods/homedecor_modpack/homedecor/textures/homedecor_wood_table_large_edges.png new file mode 100644 index 00000000..b4b8a1d9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_wood_table_large_edges.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_wood_table_large_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_wood_table_large_tb.png new file mode 100644 index 00000000..e3615c86 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_wood_table_large_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_wood_table_small_round_edges.png b/mods/homedecor_modpack/homedecor/textures/homedecor_wood_table_small_round_edges.png new file mode 100644 index 00000000..b4b8a1d9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_wood_table_small_round_edges.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_wood_table_small_round_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_wood_table_small_round_tb.png new file mode 100644 index 00000000..79ace231 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_wood_table_small_round_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_wood_table_small_square_edges.png b/mods/homedecor_modpack/homedecor/textures/homedecor_wood_table_small_square_edges.png new file mode 100644 index 00000000..b4b8a1d9 Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_wood_table_small_square_edges.png differ diff --git a/mods/homedecor_modpack/homedecor/textures/homedecor_wood_table_small_square_tb.png b/mods/homedecor_modpack/homedecor/textures/homedecor_wood_table_small_square_tb.png new file mode 100644 index 00000000..f7f4bd6e Binary files /dev/null and b/mods/homedecor_modpack/homedecor/textures/homedecor_wood_table_small_square_tb.png differ diff --git a/mods/homedecor_modpack/homedecor/window_treatments.lua b/mods/homedecor_modpack/homedecor/window_treatments.lua new file mode 100644 index 00000000..f1f9244d --- /dev/null +++ b/mods/homedecor_modpack/homedecor/window_treatments.lua @@ -0,0 +1,314 @@ + +local S = homedecor.gettext + +minetest.register_node("homedecor:window_quartered", { + description = "Window", + tiles = { + "homedecor_window_sides.png", + "homedecor_window_sides.png", + "homedecor_window_sides.png", + "homedecor_window_sides.png", + "homedecor_window_quartered.png", + "homedecor_window_quartered.png" + }, + paramtype = "light", + paramtype2 = "facedir", + use_texture_alpha = true, + is_ground_content = true, + groups = {crumbly=3}, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0.025, 0.5, 0.5, 0}, -- NodeBox1 + {-0.5, 0.4375, -0.0625, 0.5, 0.5, 0.0625}, -- NodeBox2 + {-0.5, -0.5, -0.0625, 0.5, -0.4375, 0.0625}, -- NodeBox3 + {-0.5, 0, -0.0625, 0.5, 0.0625, 0.0625}, -- NodeBox4 + {0.4375, -0.5, -0.0625, 0.5, 0.5, 0.0625}, -- NodeBox5 + {-0.5, -0.5, -0.0625, -0.4375, 0.5, 0.0625}, -- NodeBox6 + {0, -0.5, -0.0625, 0.0625, 0.5, 0.0625}, -- NodeBox7 + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0.025, 0.5, 0.5, 0}, -- NodeBox1 + {-0.5, 0.4375, -0.0625, 0.5, 0.5, 0.0625}, -- NodeBox2 + {-0.5, -0.5, -0.0625, 0.5, -0.4375, 0.0625}, -- NodeBox3 + {0.4375, -0.5, -0.0625, 0.5, 0.5, 0.0625}, -- NodeBox5 + {-0.5, -0.5, -0.0625, -0.4375, 0.5, 0.0625}, -- NodeBox6 + }, + }, +}) + +minetest.register_node("homedecor:window_plain", { + description = "Window", + tiles = { + "homedecor_window_sides.png", + "homedecor_window_sides.png", + "homedecor_window_sides.png", + "homedecor_window_sides.png", + "homedecor_window_frame.png", + "homedecor_window_frame.png" + }, + paramtype = "light", + paramtype2 = "facedir", + use_texture_alpha = true, + is_ground_content = true, + groups = {crumbly=3}, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0.025, 0.5, 0.5, 0}, -- NodeBox1 + {-0.5, 0.4375, -0.0625, 0.5, 0.5, 0.0625}, -- NodeBox2 + {-0.5, -0.5, -0.0625, 0.5, -0.4375, 0.0625}, -- NodeBox3 + {0.4375, -0.5, -0.0625, 0.5, 0.5, 0.0625}, -- NodeBox5 + {-0.5, -0.5, -0.0625, -0.4375, 0.5, 0.0625}, -- NodeBox6 + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0.025, 0.5, 0.5, 0}, -- NodeBox1 + {-0.5, 0.4375, -0.0625, 0.5, 0.5, 0.0625}, -- NodeBox2 + {-0.5, -0.5, -0.0625, 0.5, -0.4375, 0.0625}, -- NodeBox3 + {0.4375, -0.5, -0.0625, 0.5, 0.5, 0.0625}, -- NodeBox5 + {-0.5, -0.5, -0.0625, -0.4375, 0.5, 0.0625}, -- NodeBox6 + }, + }, +}) + +minetest.register_node("homedecor:blinds_thick", { + description = "Window Blinds (thick)", + tiles = { "homedecor_windowblinds.png" }, + paramtype = "light", + paramtype2 = "facedir", + --use_texture_alpha = true, + walkable = false, + is_ground_content = true, + groups = {crumbly=3}, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.527123, 0.375, 0.3125, 0.523585, 0.5, 0.5}, -- NodeBox1 + {-0.5, 0.304245, 0.3125, 0.5, 0.3125, 0.5}, -- NodeBox2 + {-0.5, 0.244104, 0.3125, 0.5, 0.25, 0.5}, -- NodeBox3 + {-0.5, 0.180424, 0.3125, 0.5, 0.1875, 0.5}, -- NodeBox4 + {-0.5, 0.116745, 0.3125, 0.5, 0.125, 0.5}, -- NodeBox5 + {-0.5, 0.0566037, 0.3125, 0.5, 0.0625, 0.5}, -- NodeBox6 + {-0.5, -0.00707551, 0.3125, 0.5, 0, 0.5}, -- NodeBox7 + {-0.5, -0.0707547, 0.3125, 0.5, -0.0625, 0.5}, -- NodeBox8 + {-0.5, -0.130896, 0.3125, 0.5, -0.125, 0.5}, -- NodeBox9 + {-0.5, -0.194576, 0.3125, 0.5, -0.1875, 0.5}, -- NodeBox10 + {-0.5, -0.258255, 0.3125, 0.5, -0.25, 0.5}, -- NodeBox11 + {-0.5, -0.318396, 0.3125, 0.5, -0.3125, 0.5}, -- NodeBox12 + {-0.5, -0.5, 0.3125, 0.5, -0.4375, 0.5}, -- NodeBox13 + {-0.5, -0.378538, 0.3125, 0.5, -0.375, 0.5}, -- NodeBox14 + {-0.375, -0.5, 0.367925, -0.367925, 0.4375, 0.445755}, -- NodeBox15 + {0.367924, -0.5, 0.367925, 0.375, 0.5, 0.445755}, -- NodeBox16 + {0.375, 0.375, 0.25, 0.4375, 0.4375, 0.3125}, -- NodeBox17 + {0.396226, -0.325, 0.268868, 0.417453, 0.375, 0.290094}, -- NodeBox18 + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.527123, 0.375, 0.3125, 0.523585, 0.5, 0.5}, -- NodeBox1 + {-0.5, 0.304245, 0.3125, 0.5, 0.3125, 0.5}, -- NodeBox2 + {-0.5, 0.244104, 0.3125, 0.5, 0.25, 0.5}, -- NodeBox3 + {-0.5, 0.180424, 0.3125, 0.5, 0.1875, 0.5}, -- NodeBox4 + {-0.5, 0.116745, 0.3125, 0.5, 0.125, 0.5}, -- NodeBox5 + {-0.5, 0.0566037, 0.3125, 0.5, 0.0625, 0.5}, -- NodeBox6 + {-0.5, -0.00707551, 0.3125, 0.5, 0, 0.5}, -- NodeBox7 + {-0.5, -0.0707547, 0.3125, 0.5, -0.0625, 0.5}, -- NodeBox8 + {-0.5, -0.130896, 0.3125, 0.5, -0.125, 0.5}, -- NodeBox9 + {-0.5, -0.194576, 0.3125, 0.5, -0.1875, 0.5}, -- NodeBox10 + {-0.5, -0.258255, 0.3125, 0.5, -0.25, 0.5}, -- NodeBox11 + {-0.5, -0.318396, 0.3125, 0.5, -0.3125, 0.5}, -- NodeBox12 + {-0.5, -0.5, 0.3125, 0.5, -0.4375, 0.5}, -- NodeBox13 + {-0.5, -0.378538, 0.3125, 0.5, -0.375, 0.5}, -- NodeBox14 + {-0.375, -0.5, 0.367925, -0.367925, 0.4375, 0.445755}, -- NodeBox15 + {0.367924, -0.5, 0.367925, 0.375, 0.5, 0.445755}, -- NodeBox16 + }, + }, +}) + +minetest.register_node("homedecor:blinds_thin", { + description = "Window Blinds (thin)", + tiles = { "homedecor_windowblinds.png" }, + paramtype = "light", + paramtype2 = "facedir", + --use_texture_alpha = true, + walkable = false, + is_ground_content = true, + groups = {crumbly=3}, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.52, 0.375, 0.4375, 0.52, 0.5, 0.5}, -- NodeBox1 + {-0.5, 0.304245, 0.4375, 0.5, 0.3125, 0.5}, -- NodeBox2 + {-0.5, 0.244104, 0.4375, 0.5, 0.25, 0.5}, -- NodeBox3 + {-0.5, 0.180424, 0.43755, 0.5, 0.1875, 0.5}, -- NodeBox4 + {-0.5, 0.116745, 0.4375, 0.5, 0.125, 0.5}, -- NodeBox5 + {-0.5, 0.0566037, 0.4375, 0.5, 0.0625, 0.5}, -- NodeBox6 + {-0.5, -0.00707551, 0.4375, 0.5, 0, 0.5}, -- NodeBox7 + {-0.5, -0.0707547, 0.4375, 0.5, -0.0625, 0.5}, -- NodeBox8 + {-0.5, -0.130896, 0.4375, 0.5, -0.125, 0.5}, -- NodeBox9 + {-0.5, -0.194576, 0.4375, 0.5, -0.1875, 0.5}, -- NodeBox10 + {-0.5, -0.258255, 0.4375, 0.5, -0.25, 0.5}, -- NodeBox11 + {-0.5, -0.318396, 0.4375, 0.5, -0.3125, 0.5}, -- NodeBox12 + {-0.5, -0.5, 0.4375, 0.5, -0.4375, 0.5}, -- NodeBox13 + {-0.5, -0.378538, 0.4375, 0.5, -0.375, 0.5}, -- NodeBox14 + {-0.375, -0.49, 0.4575, -0.367925, 0.4375, 0.48}, -- NodeBox15 + {0.367924, -0.49, 0.4575, 0.375, 0.5, 0.48}, -- NodeBox16 + {0.375, 0.375, 0.375, 0.4375, 0.4375, 0.4375}, -- NodeBox17 + {0.396226, -0.325, 0.4, 0.417453, 0.375, 0.42}, -- NodeBox18 + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.52, 0.375, 0.4375, 0.52, 0.5, 0.5}, -- NodeBox1 + {-0.5, 0.304245, 0.4375, 0.5, 0.3125, 0.5}, -- NodeBox2 + {-0.5, 0.244104, 0.4375, 0.5, 0.25, 0.5}, -- NodeBox3 + {-0.5, 0.180424, 0.43755, 0.5, 0.1875, 0.5}, -- NodeBox4 + {-0.5, 0.116745, 0.4375, 0.5, 0.125, 0.5}, -- NodeBox5 + {-0.5, 0.0566037, 0.4375, 0.5, 0.0625, 0.5}, -- NodeBox6 + {-0.5, -0.00707551, 0.4375, 0.5, 0, 0.5}, -- NodeBox7 + {-0.5, -0.0707547, 0.4375, 0.5, -0.0625, 0.5}, -- NodeBox8 + {-0.5, -0.130896, 0.4375, 0.5, -0.125, 0.5}, -- NodeBox9 + {-0.5, -0.194576, 0.4375, 0.5, -0.1875, 0.5}, -- NodeBox10 + {-0.5, -0.258255, 0.4375, 0.5, -0.25, 0.5}, -- NodeBox11 + {-0.5, -0.318396, 0.4375, 0.5, -0.3125, 0.5}, -- NodeBox12 + {-0.5, -0.5, 0.4375, 0.5, -0.4375, 0.5}, -- NodeBox13 + {-0.5, -0.378538, 0.4375, 0.5, -0.375, 0.5}, -- NodeBox14 + {-0.375, -0.49, 0.4575, -0.367925, 0.4375, 0.48}, -- NodeBox15 + {0.367924, -0.49, 0.4575, 0.375, 0.49, 0.48}, -- NodeBox16 + }, + }, +}) + +local curtaincolors = { + "red", + "green", + "blue", + "white", + "pink", + "violet" +} + +for c in ipairs(curtaincolors) do + local color = curtaincolors[c] + local color_d = S(curtaincolors[c]) + + minetest.register_node("homedecor:curtain_"..color, { + description = S("Curtains (%s)"):format(color_d), + tiles = { "homedecor_curtain_"..color..".png" }, + inventory_image = "homedecor_curtain_"..color..".png", + wield_image = "homedecor_curtain_"..color..".png", + drawtype = 'signlike', + sunlight_propagates = true, + use_texture_alpha = true, + paramtype = "light", + paramtype2 = "facedir", + walkable = false, + groups = { snappy = 3 }, + sounds = default.node_sound_leaves_defaults(), + paramtype2 = 'wallmounted', + selection_box = { + type = "wallmounted", + }, + -- Open the curtains + on_rightclick = function(pos, node, clicker, itemstack) + local topnode = minetest.get_node({x=pos.x, y=pos.y+1.0, z=pos.z}) + if string.find(topnode.name, "homedecor:curtainrod") then + local fdir = node.param2 + minetest.set_node(pos, { name = "homedecor:curtain_open_"..color, param2 = fdir }) + end + end + }) + + minetest.register_node("homedecor:curtain_open_"..color, { + description = S("Curtains (%s)"):format(color_d), + tiles = { "homedecor_curtain_open_"..color..".png" }, + inventory_image = "homedecor_curtain_open_"..color..".png", + wield_image = "homedecor_curtain_open_"..color..".png", + drawtype = 'signlike', + sunlight_propagates = true, + use_texture_alpha = true, + paramtype = "light", + paramtype2 = "facedir", + walkable = false, + groups = { snappy = 3 }, + sounds = default.node_sound_leaves_defaults(), + paramtype2 = 'wallmounted', + selection_box = { + type = "wallmounted", + }, + -- Close the curtains + on_rightclick = function(pos, node, clicker, itemstack) + local topnode = minetest.get_node({x=pos.x, y=pos.y+1.0, z=pos.z}) + if string.find(topnode.name, "homedecor:curtainrod") then + local fdir = node.param2 + minetest.set_node(pos, { name = "homedecor:curtain_"..color, param2 = fdir }) + end + end + }) + +end + +local mats = { + { "brass", "Brass", "homedecor_tile_brass2.png" }, + { "wrought_iron", "Wrought iron", "homedecor_tile_wrought_iron2.png" }, + { "wood", "Wooden", "default_wood.png" } +} + +for i in ipairs(mats) do + local material = mats[i][1] + local mat_name = mats[i][2] + local texture = mats[i][3] + minetest.register_node("homedecor:curtainrod_"..material, { + tiles = { texture }, + inventory_image = "homedecor_curtainrod_"..material.."_inv.png", + description = "Curtain Rod ("..mat_name..")", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + groups = { snappy = 3 }, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0.375, 0.5, -0.4375, 0.4375}, + {-0.4375, -0.5, 0.4375, -0.375, -0.4375, 0.5}, + {0.375, -0.5, 0.4375, 0.4375, -0.4375, 0.5} + } + } + }) +end + +minetest.register_node("homedecor:window_flowerbox", { + description = "Window flowerbow", + tiles = { + "homedecor_flowerbox_top.png", + "homedecor_flowerbox_bottom.png", + "homedecor_flowerbox_sides.png" + }, + inventory_image = "homedecor_flowerbox_inv.png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy = 3 }, + node_box = { + type = "fixed", + fixed = { + {-0.375, 0.25, -0.125, 0.375, 0.5, 0.375}, -- NodeBox1 + {-0.3125, 0.4375, 0.375, -0.25, 0.4875, 0.5}, -- NodeBox2 + {0.25, 0.4375, 0.375, 0.3125, 0.4875, 0.5}, -- NodeBox3 + } + } +}) + diff --git a/mods/homedecor_modpack/homedecor_3d_extras/LICENSE b/mods/homedecor_modpack/homedecor_3d_extras/LICENSE new file mode 100644 index 00000000..65c5ca88 --- /dev/null +++ b/mods/homedecor_modpack/homedecor_3d_extras/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER 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. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser 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 +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/mods/homedecor_modpack/homedecor_3d_extras/copyright.txt b/mods/homedecor_modpack/homedecor_3d_extras/copyright.txt new file mode 100644 index 00000000..690bdc52 --- /dev/null +++ b/mods/homedecor_modpack/homedecor_3d_extras/copyright.txt @@ -0,0 +1,12 @@ +Most code and all textures by Vanessa Ezekowitz. + +Some code copied and modified from the game's default mods (especially +doors) and ironzorg's flowers mod. + +Licenses: +* For the lua code, LGPL. +* For the door open/close sound, CC-By-SA 3.0 by Slanesh on freesound.org + http://freesound.org/people/Slanesh/sounds/31768/ +* For the gate open/close sound, CC0, by j1987 on freesound.org + http://freesound.org/people/j1987/sounds/106116/ +* For all images and everything else, WTFPL. diff --git a/mods/homedecor_modpack/homedecor_3d_extras/depends.txt b/mods/homedecor_modpack/homedecor_3d_extras/depends.txt new file mode 100644 index 00000000..2daa1313 --- /dev/null +++ b/mods/homedecor_modpack/homedecor_3d_extras/depends.txt @@ -0,0 +1,3 @@ +default +moreblocks? + diff --git a/mods/homedecor_modpack/homedecor_3d_extras/init.lua b/mods/homedecor_modpack/homedecor_3d_extras/init.lua new file mode 100644 index 00000000..bd5a241d --- /dev/null +++ b/mods/homedecor_modpack/homedecor_3d_extras/init.lua @@ -0,0 +1,93 @@ +minetest.override_item("default:bookshelf", { + drawtype = "nodebox", + tiles = { + "3dbookshelf_top.png", + "3dbookshelf_bottom.png", + "3dbookshelf_sides.png", + "3dbookshelf_sides.png", + "3dbookshelf_fb.png", + "3dbookshelf_fb.png" + }, + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.1875, 0.5, 0.5, 0.1875}, + {-0.5, -0.5, -0.5, -0.4375, 0.5, 0.5}, + {0.4375, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-0.5, 0.4375, -0.5, 0.5, 0.5, 0.5}, + {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, + {-0.5, -0.0625, -0.5, 0.5, 0.0625, 0.5}, + {-0.4375, 0.0625, -0.486, -0.3125, 0.375, -0.125}, + {-0.3125, 0.0625, -0.420, -0.25, 0.3125, -0.125}, + {-0.25, 0.0625, -0.456, -0.1875, 0.375, -0.125}, + {-0.125, 0.0625, -0.481, 0, 0.4375, -0.125}, + {0, 0.0625, -0.4375, 0.0625, 0.3125, -0.125}, + {0.0625, 0.0625, -0.461, 0.125, 0.375, -0.125}, + {0.125, 0.0625, -0.425, 0.1875, 0.25, -0.125}, + {0.1875, 0.0625, -0.456, 0.25, 0.3125, -0.125}, + {0.25, 0.0625, -0.430, 0.3125, 0.25, -0.125}, + {0.3125, 0.0625, -0.456, 0.4375, 0.375, -0.125}, + {-0.4375, -0.4375, -0.456, -0.25, -0.125, -0.125}, + {-0.25, -0.4375, -0.435, -0.125, -0.1875, -0.125}, + {-0.125, -0.4375, -0.466, -0.0625, -0.125, -0.125}, + {-0.0625, -0.4375, -0.476, 0, -0.1875, -0.125}, + {0.25, -0.4375, -0.471, 0.375, -0.125, -0.125}, + {0.375, -0.4375, -0.445, 0.4375, -0.1875, -0.125}, + {0.3125, 0.0625, 0.125, 0.4375, 0.375, 0.471}, + {0.25, 0.0625, 0.125, 0.3125, 0.3125, 0.461}, + {0.1875, 0.0625, 0.125, 0.25, 0.375, 0.430}, + {0, 0.0625, 0.125, 0.125, 0.4375, 0.497}, + {-0.0625, 0.0625, 0.125, 0, 0.3125, 0.435}, + {-0.125, 0.0625, 0.125, -0.0625, 0.375, 0.437}, + {-0.1875, 0.0625, 0.125, -0.125, 0.25, 0.379}, + {-0.25, 0.0625, 0.125, -0.1875, 0.3125, 0.445}, + {-0.3125, 0.0625, 0.125, -0.25, 0.25, 0.425}, + {-0.4375, 0.0625, 0.125, -0.3125, 0.375, 0.458}, + {0.25, -0.4375, 0.125, 0.4375, -0.125, 0.437}, + {0.125, -0.4375, 0.125, 0.25, -0.1875, 0.461}, + {0.0625, -0.4375, 0.125, 0.125, -0.125, 0.435}, + {-0.0625, -0.4375, 0.1875, 0, -0.1875, 0.456}, + {-0.25, -0.4375, 0.125, -0.1875, -0.125, 0.394}, + {-0.375, -0.4375, 0.125, -0.25, -0.0625, 0.430}, + {-0.4375, -0.4375, 0.125, -0.375, -0.125, 0.394}, + {-0.125, -0.4375, 0.125, -0.0625, -0.1875, 0.437}, + {0.125, -0.4375, -0.435, 0.25, -0.1875, -0.125}, + {0, -0.4375, -0.430, 0.0625, -0.1875, -0.125}, + {0.0625, -0.4375, -0.461, 0.125, -0.1875, -0.125}, + {-0.1875, 0.0625, -0.4375, -0.125, 0.375, -0.125}, + {0.125, 0.0625, 0.125, 0.1875, 0.375, 0.448}, + {0, -0.4375, 0.125, 0.0625, -0.1875, 0.471}, + {-0.1875, -0.4375, 0.125, -0.125, -0.1875, 0.466}, + } + } +}) + +if minetest.get_modpath("moreblocks") then + minetest.override_item("moreblocks:empty_bookshelf", { + drawtype = "nodebox", + tiles = { + "3dbookshelf_top.png", + "3dbookshelf_bottom.png", + "3dbookshelf_sides.png", + "3dbookshelf_sides.png", + "3dbookshelf_fb_empty.png", + "3dbookshelf_fb_empty.png" + }, + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.1875, 0.5, 0.5, 0.1875}, + {-0.5, -0.5, -0.5, -0.4375, 0.5, 0.5}, + {0.4375, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-0.5, 0.4375, -0.5, 0.5, 0.5, 0.5}, + {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, + {-0.5, -0.0625, -0.5, 0.5, 0.0625, 0.5}, + } + } + }) +end + diff --git a/mods/homedecor_modpack/homedecor_3d_extras/textures/3dbookshelf_bottom.png b/mods/homedecor_modpack/homedecor_3d_extras/textures/3dbookshelf_bottom.png new file mode 100644 index 00000000..51a39d2b Binary files /dev/null and b/mods/homedecor_modpack/homedecor_3d_extras/textures/3dbookshelf_bottom.png differ diff --git a/mods/homedecor_modpack/homedecor_3d_extras/textures/3dbookshelf_fb.png b/mods/homedecor_modpack/homedecor_3d_extras/textures/3dbookshelf_fb.png new file mode 100644 index 00000000..3154b264 Binary files /dev/null and b/mods/homedecor_modpack/homedecor_3d_extras/textures/3dbookshelf_fb.png differ diff --git a/mods/homedecor_modpack/homedecor_3d_extras/textures/3dbookshelf_fb_empty.png b/mods/homedecor_modpack/homedecor_3d_extras/textures/3dbookshelf_fb_empty.png new file mode 100644 index 00000000..351e1553 Binary files /dev/null and b/mods/homedecor_modpack/homedecor_3d_extras/textures/3dbookshelf_fb_empty.png differ diff --git a/mods/homedecor_modpack/homedecor_3d_extras/textures/3dbookshelf_sides.png b/mods/homedecor_modpack/homedecor_3d_extras/textures/3dbookshelf_sides.png new file mode 100644 index 00000000..51a39d2b Binary files /dev/null and b/mods/homedecor_modpack/homedecor_3d_extras/textures/3dbookshelf_sides.png differ diff --git a/mods/homedecor_modpack/homedecor_3d_extras/textures/3dbookshelf_top.png b/mods/homedecor_modpack/homedecor_3d_extras/textures/3dbookshelf_top.png new file mode 100644 index 00000000..51a39d2b Binary files /dev/null and b/mods/homedecor_modpack/homedecor_3d_extras/textures/3dbookshelf_top.png differ diff --git a/mods/homedecor_modpack/inbox/depends.txt b/mods/homedecor_modpack/inbox/depends.txt new file mode 100644 index 00000000..4ad96d51 --- /dev/null +++ b/mods/homedecor_modpack/inbox/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/homedecor_modpack/inbox/init.lua b/mods/homedecor_modpack/inbox/init.lua new file mode 100644 index 00000000..7e334882 --- /dev/null +++ b/mods/homedecor_modpack/inbox/init.lua @@ -0,0 +1,109 @@ +local inbox = {} + +--[[ +TODO +* Different node_box and texture for empty mailbox +]] + +minetest.register_craft({ + output ="inbox:empty", + recipe = { + {"","default:steel_ingot",""}, + {"default:steel_ingot","","default:steel_ingot"}, + {"default:steel_ingot","default:steel_ingot","default:steel_ingot"} + } +}) + +minetest.register_node("inbox:empty", { + paramtype = "light", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-4/12, -6/12, -6/12, 4/12, 0/12, 6/12}, + {-3/12, 0/12, -6/12, 3/12, 2/12, 6/12}, + {3/12, 0/12, -4/12, 4/12, 5/12, -2/12}, + {3/12, 3/12, -2/12, 4/12, 5/12, 0/12} + } + }, + description = "Mailbox", + tiles = {"inbox_top.png", "inbox_bottom.png", "inbox_east.png", + "inbox_west.png", "inbox_back.png", "inbox_front.png"}, + paramtype2 = "facedir", + groups = {choppy=2,oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), + after_place_node = function(pos, placer, itemstack) + local meta = minetest.get_meta(pos) + local owner = placer:get_player_name() + meta:set_string("owner", owner) + meta:set_string("infotext", owner.."'s Mailbox") + local inv = meta:get_inventory() + inv:set_size("main", 8*4) + inv:set_size("drop", 1) + end, + on_rightclick = function(pos, node, clicker, itemstack) + local meta = minetest.get_meta(pos) + local player = clicker:get_player_name() + local owner = meta:get_string("owner") + local meta = minetest.get_meta(pos) + if owner == player then + minetest.show_formspec( + clicker:get_player_name(), + "default:chest_locked", + inbox.get_inbox_formspec(pos)) + else + minetest.show_formspec( + clicker:get_player_name(), + "default:chest_locked", + inbox.get_inbox_insert_formspec(pos)) + end + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local owner = meta:get_string("owner") + local inv = meta:get_inventory() + return player:get_player_name() == owner and inv:is_empty("main") + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if listname == "drop" and inv:room_for_item("main", stack) then + inv:remove_item("drop", stack) + inv:add_item("main", stack) + end + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + if listname == "main" then + return 0 + end + if listname == "drop" then + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if inv:room_for_item("main", stack) then + return -1 + else + return 0 + end + end + end, +}) + +function inbox.get_inbox_formspec(pos) + local spos = pos.x .. "," .. pos.y .. "," ..pos.z + local formspec = + "size[8,9]".. + "list[nodemeta:".. spos .. ";main;0,0;8,4;]".. + "list[current_player;main;0,5;8,4;]" + return formspec +end + +function inbox.get_inbox_insert_formspec(pos) + local spos = pos.x .. "," .. pos.y .. "," ..pos.z + local formspec = + "size[8,9]".. + "list[nodemeta:".. spos .. ";drop;3.5,2;1,1;]".. + "list[current_player;main;0,5;8,4;]" + return formspec +end + +print("[Mod]Inbox Loaded!") diff --git a/mods/homedecor_modpack/inbox/textures/inbox_back.png b/mods/homedecor_modpack/inbox/textures/inbox_back.png new file mode 100644 index 00000000..d9116330 Binary files /dev/null and b/mods/homedecor_modpack/inbox/textures/inbox_back.png differ diff --git a/mods/homedecor_modpack/inbox/textures/inbox_bottom.png b/mods/homedecor_modpack/inbox/textures/inbox_bottom.png new file mode 100644 index 00000000..658396f9 Binary files /dev/null and b/mods/homedecor_modpack/inbox/textures/inbox_bottom.png differ diff --git a/mods/homedecor_modpack/inbox/textures/inbox_east.png b/mods/homedecor_modpack/inbox/textures/inbox_east.png new file mode 100644 index 00000000..35ed4878 Binary files /dev/null and b/mods/homedecor_modpack/inbox/textures/inbox_east.png differ diff --git a/mods/homedecor_modpack/inbox/textures/inbox_front.png b/mods/homedecor_modpack/inbox/textures/inbox_front.png new file mode 100644 index 00000000..b6bd9967 Binary files /dev/null and b/mods/homedecor_modpack/inbox/textures/inbox_front.png differ diff --git a/mods/homedecor_modpack/inbox/textures/inbox_side_and_back.png b/mods/homedecor_modpack/inbox/textures/inbox_side_and_back.png new file mode 100644 index 00000000..62f2d7c5 Binary files /dev/null and b/mods/homedecor_modpack/inbox/textures/inbox_side_and_back.png differ diff --git a/mods/homedecor_modpack/inbox/textures/inbox_top.png b/mods/homedecor_modpack/inbox/textures/inbox_top.png new file mode 100644 index 00000000..962c0098 Binary files /dev/null and b/mods/homedecor_modpack/inbox/textures/inbox_top.png differ diff --git a/mods/homedecor_modpack/inbox/textures/inbox_west.png b/mods/homedecor_modpack/inbox/textures/inbox_west.png new file mode 100644 index 00000000..dc2a5439 Binary files /dev/null and b/mods/homedecor_modpack/inbox/textures/inbox_west.png differ diff --git a/mods/homedecor_modpack/itemframes/depends.txt b/mods/homedecor_modpack/itemframes/depends.txt new file mode 100644 index 00000000..4ad96d51 --- /dev/null +++ b/mods/homedecor_modpack/itemframes/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/homedecor_modpack/itemframes/init.lua b/mods/homedecor_modpack/itemframes/init.lua new file mode 100644 index 00000000..f5c8ce06 --- /dev/null +++ b/mods/homedecor_modpack/itemframes/init.lua @@ -0,0 +1,216 @@ +local tmp = {} + +minetest.register_entity("itemframes:item",{ + hp_max = 1, + visual="wielditem", + visual_size={x=.33,y=.33}, + collisionbox = {0,0,0,0,0,0}, + physical=false, + textures={"air"}, + on_activate = function(self, staticdata) + if tmp.nodename ~= nil and tmp.texture ~= nil then + self.nodename = tmp.nodename + tmp.nodename = nil + self.texture = tmp.texture + tmp.texture = nil + else + if staticdata ~= nil and staticdata ~= "" then + local data = staticdata:split(';') + if data and data[1] and data[2] then + self.nodename = data[1] + self.texture = data[2] + end + end + end + if self.texture ~= nil then + self.object:set_properties({textures={self.texture}}) + end + if self.nodename == "itemframes:pedestal" then + self.object:set_properties({automatic_rotate=1}) + end + end, + get_staticdata = function(self) + if self.nodename ~= nil and self.texture ~= nil then + return self.nodename .. ';' .. self.texture + end + return "" + end, +}) + + +local facedir = {} +facedir[0] = {x=0,y=0,z=1} +facedir[1] = {x=1,y=0,z=0} +facedir[2] = {x=0,y=0,z=-1} +facedir[3] = {x=-1,y=0,z=0} + +local remove_item = function(pos, node) + local objs = nil + if node.name == "itemframes:frame" then + objs = minetest.env:get_objects_inside_radius(pos, .5) + elseif node.name == "itemframes:pedestal" then + objs = minetest.env:get_objects_inside_radius({x=pos.x,y=pos.y+1,z=pos.z}, .5) + end + if objs then + for _, obj in ipairs(objs) do + if obj and obj:get_luaentity() and obj:get_luaentity().name == "itemframes:item" then + obj:remove() + end + end + end +end + +local update_item = function(pos, node) + remove_item(pos, node) + local meta = minetest.env:get_meta(pos) + if meta:get_string("item") ~= "" then + if node.name == "itemframes:frame" then + local posad = facedir[node.param2] + if not posad then return end + pos.x = pos.x + posad.x*6.5/16 + pos.y = pos.y + posad.y*6.5/16 + pos.z = pos.z + posad.z*6.5/16 + elseif node.name == "itemframes:pedestal" then + pos.y = pos.y + 12/16+.33 + end + tmp.nodename = node.name + tmp.texture = ItemStack(meta:get_string("item")):get_name() + local e = minetest.env:add_entity(pos,"itemframes:item") + if node.name == "itemframes:frame" then + local yaw = math.pi*2 - node.param2 * math.pi/2 + e:setyaw(yaw) + end + end +end + +local drop_item = function(pos, node) + local meta = minetest.env:get_meta(pos) + if meta:get_string("item") ~= "" then + if node.name == "itemframes:frame" then + minetest.env:add_item(pos, meta:get_string("item")) + elseif node.name == "itemframes:pedestal" then + minetest.env:add_item({x=pos.x,y=pos.y+1,z=pos.z}, meta:get_string("item")) + end + meta:set_string("item","") + end + remove_item(pos, node) +end + +minetest.register_node("itemframes:frame",{ + description = "Item frame", + drawtype = "nodebox", + node_box = { type = "fixed", fixed = {-0.5, -0.5, 7/16, 0.5, 0.5, 0.5} }, + selection_box = { type = "fixed", fixed = {-0.5, -0.5, 7/16, 0.5, 0.5, 0.5} }, + tiles = {"itemframes_frame.png"}, + inventory_image = "itemframes_frame.png", + wield_image = "itemframes_frame.png", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + groups = { choppy=2,dig_immediate=2 }, + legacy_wallmounted = true, + sounds = default.node_sound_defaults(), + after_place_node = function(pos, placer, itemstack) + local meta = minetest.env:get_meta(pos) + meta:set_string("owner",placer:get_player_name()) + meta:set_string("infotext","Item frame (owned by "..placer:get_player_name()..")") + end, + on_rightclick = function(pos, node, clicker, itemstack) + if not itemstack then return end + local meta = minetest.env:get_meta(pos) + if clicker:get_player_name() == meta:get_string("owner") then + drop_item(pos,node) + local s = itemstack:take_item() + meta:set_string("item",s:to_string()) + update_item(pos,node) + end + return itemstack + end, + on_punch = function(pos,node,puncher) + local meta = minetest.env:get_meta(pos) + if puncher:get_player_name() == meta:get_string("owner") then + drop_item(pos, node) + end + end, + can_dig = function(pos,player) + + local meta = minetest.env:get_meta(pos) + return player:get_player_name() == meta:get_string("owner") + end, +}) + + +minetest.register_node("itemframes:pedestal",{ + description = "Pedestal", + drawtype = "nodebox", + node_box = { type = "fixed", fixed = { + {-7/16, -8/16, -7/16, 7/16, -7/16, 7/16}, -- bottom plate + {-6/16, -7/16, -6/16, 6/16, -6/16, 6/16}, -- bottom plate (upper) + {-0.25, -6/16, -0.25, 0.25, 11/16, 0.25}, -- pillar + {-7/16, 11/16, -7/16, 7/16, 12/16, 7/16}, -- top plate + } }, + --selection_box = { type = "fixed", fixed = {-7/16, -0.5, -7/16, 7/16, 12/16, 7/16} }, + tiles = {"itemframes_pedestal.png"}, + paramtype = "light", + groups = { cracky=3 }, + sounds = default.node_sound_defaults(), + after_place_node = function(pos, placer, itemstack) + local meta = minetest.env:get_meta(pos) + meta:set_string("owner",placer:get_player_name()) + meta:set_string("infotext","Pedestal (owned by "..placer:get_player_name()..")") + end, + on_rightclick = function(pos, node, clicker, itemstack) + if not itemstack then return end + local meta = minetest.env:get_meta(pos) + if clicker:get_player_name() == meta:get_string("owner") then + drop_item(pos,node) + local s = itemstack:take_item() + meta:set_string("item",s:to_string()) + update_item(pos,node) + end + return itemstack + end, + on_punch = function(pos,node,puncher) + local meta = minetest.env:get_meta(pos) + if puncher:get_player_name() == meta:get_string("owner") then + drop_item(pos,node) + end + end, + can_dig = function(pos,player) + + local meta = minetest.env:get_meta(pos) + return player:get_player_name() == meta:get_string("owner") + end, +}) + +-- automatically restore entities lost from frames/pedestals +-- due to /clearobjects or similar + +minetest.register_abm({ + nodenames = { "itemframes:frame", "itemframes:pedestal" }, + interval = 15, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + if #minetest.get_objects_inside_radius(pos, 0.5) > 0 then return end + update_item(pos, node) + end +}) + +-- crafts + +minetest.register_craft({ + output = 'itemframes:frame', + recipe = { + {'default:stick', 'default:stick', 'default:stick'}, + {'default:stick', 'default:paper', 'default:stick'}, + {'default:stick', 'default:stick', 'default:stick'}, + } +}) +minetest.register_craft({ + output = 'itemframes:pedestal', + recipe = { + {'default:stone', 'default:stone', 'default:stone'}, + {'', 'default:stone', ''}, + {'default:stone', 'default:stone', 'default:stone'}, + } +}) diff --git a/mods/homedecor_modpack/itemframes/textures/itemframes_frame.png b/mods/homedecor_modpack/itemframes/textures/itemframes_frame.png new file mode 100644 index 00000000..9ea9a302 Binary files /dev/null and b/mods/homedecor_modpack/itemframes/textures/itemframes_frame.png differ diff --git a/mods/homedecor_modpack/itemframes/textures/itemframes_pedestal.png b/mods/homedecor_modpack/itemframes/textures/itemframes_pedestal.png new file mode 100644 index 00000000..e39abd30 Binary files /dev/null and b/mods/homedecor_modpack/itemframes/textures/itemframes_pedestal.png differ diff --git a/mods/homedecor_modpack/lrfurn/README.txt b/mods/homedecor_modpack/lrfurn/README.txt new file mode 100644 index 00000000..de8ee8d3 --- /dev/null +++ b/mods/homedecor_modpack/lrfurn/README.txt @@ -0,0 +1,85 @@ +Living Room Furniture (lrfurn) mod for Minetest + + +by thefamilygrog66 + +Description: +Coloured Long Sofas (3 blocks wide), Sofas (2 blocks wide), Armchairs, Coffee Tables and End Tables, loosely based on PilzAdam's beds mod. There are 9 colours in all: red, orange, yellow, green, blue, violet, black, grey and white. + +When you right-click on a long sofa, sofa or armchair, it transports you onto it, and replenishes your HP. Good if you've just escaped nasty mobs, didn't fare so well in battle, or just had a bad fall. The coffee table - which isn't coloured, just wooden - is pretty much just for decoration. It stands half a block high and nearly 2 blocks long. The end table is similar to the coffee table, though roughly half the length (i.e. only one block) and square. + +Recipes: + + Long Sofa + + +---------------+---------------+---------------+ + | coloured wool | coloured wool | coloured wool | + +---------------+---------------+---------------+ + | wood slab | wood slab | wood slab | + +---------------+---------------+---------------+ + | stick | stick | stick | + +---------------+---------------+---------------+ + + Sofa + + +---------------+---------------+-------+ + | coloured wool | coloured wool | | + +---------------+---------------+-------+ + | wood slab | wood slab | | + +---------------+---------------+-------+ + | stick | stick | | + +---------------+---------------+-------+ + + Armchair + + +---------------+-------+-------+ + | coloured wool | | | + +---------------+-------+-------+ + | wood slab | | | + +---------------+-------+-------+ + | stick | | | + +---------------+-------+-------+ + + Coffee Table (only wood texture) + + +-----------+-----------+-----------+ + | | | | + +-----------+-----------+-----------+ + | wood slab | wood slab | wood slab | + +-----------+-----------+-----------+ + | stick | | stick | + +-----------+-----------+-----------+ + + End Table (only wood texture) + + +-----------+-----------+-----------+ + | | | | + +-----------+-----------+-----------+ + | wood slab | wood slab | | + +-----------+-----------+-----------+ + | stick | stick | | + +-----------+-----------+-----------+ + + +Mod dependencies: default, wool + +License: +Sourcecode: WTFPL (see below) +Graphics: 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/homedecor_modpack/lrfurn/armchairs.lua b/mods/homedecor_modpack/lrfurn/armchairs.lua new file mode 100644 index 00000000..c5b1dc0e --- /dev/null +++ b/mods/homedecor_modpack/lrfurn/armchairs.lua @@ -0,0 +1,94 @@ +local armchairs_list = { + { "Red Armchair", "red"}, + { "Orange Armchair", "orange"}, + { "Yellow Armchair", "yellow"}, + { "Green Armchair", "green"}, + { "Blue Armchair", "blue"}, + { "Violet Armchair", "violet"}, + { "Black Armchair", "black"}, + { "Grey Armchair", "grey"}, + { "White Armchair", "white"}, +} + +for i in ipairs(armchairs_list) do + local armchairdesc = armchairs_list[i][1] + local colour = armchairs_list[i][2] + + minetest.register_node("lrfurn:armchair_"..colour, { + description = armchairdesc, + drawtype = "nodebox", + tiles = {"lrfurn_armchair_top_"..colour..".png", "lrfurn_coffeetable_back.png", "lrfurn_sofa_left_side_"..colour..".png", "lrfurn_sofa_right_side_"..colour..".png", "lrfurn_sofa_back_"..colour..".png", "lrfurn_armchair_front_"..colour..".png"}, + paramtype = "light", + paramtype2 = "facedir", + stack_max = 1, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + sounds = default.node_sound_wood_defaults(), + node_box = { + type = "fixed", + fixed = { + --legs + {-0.4375, -0.5, -0.4375, -0.375, -0.375, -0.375}, + {0.375, -0.5, -0.4375, 0.4375, -0.375, -0.375}, + {-0.4375, -0.5, 0.375, -0.375, -0.375, 0.4375}, + {0.375, -0.5, 0.375, 0.4375, -0.375, 0.4375}, + + --base/cushion + {-0.5, -0.375, -0.5, 0.5, 0, 0.5}, + + --back + {-0.5, 0, 0.3125, 0.5, 0.5, 0.5}, + + --arms + {-0.5, 0, -0.5, -0.3125, 0.25, 0.3125}, + {0.3125, 0, -0.5, 0.5, 0.25, 0.3125}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + } + }, + + on_rightclick = function(pos, node, clicker) + if not clicker:is_player() then + return + end + pos.y = pos.y-0.5 + clicker:setpos(pos) + clicker:set_hp(20) + end + }) + + minetest.register_craft({ + output = "lrfurn:armchair_"..colour, + recipe = { + {"wool:"..colour, "", "", }, + {"stairs:slab_wood", "", "", }, + {"group:stick", "", "", } + } + }) + + minetest.register_craft({ + output = "lrfurn:armchair_"..colour, + recipe = { + {"wool:"..colour, "", "", }, + {"moreblocks:slab_wood", "", "", }, + {"group:stick", "", "", } + } + }) + + minetest.register_craft({ + output = "lrfurn:armchair_"..colour, + recipe = { + {"wool:"..colour, "", "", }, + {"group:wood_slab", "", "", }, + {"group:stick", "", "", } + } + }) + +end + +if minetest.setting_get("log_mods") then + minetest.log("action", "armchairs loaded") +end diff --git a/mods/homedecor_modpack/lrfurn/coffeetable.lua b/mods/homedecor_modpack/lrfurn/coffeetable.lua new file mode 100644 index 00000000..a2cfba4c --- /dev/null +++ b/mods/homedecor_modpack/lrfurn/coffeetable.lua @@ -0,0 +1,123 @@ +minetest.register_node("lrfurn:coffeetable_back", { + description = "Coffee Table", + drawtype = "nodebox", + tiles = {"lrfurn_coffeetable_back.png", "lrfurn_coffeetable_back.png", "lrfurn_coffeetable_back.png", "lrfurn_coffeetable_back.png", "lrfurn_coffeetable_back.png", "lrfurn_coffeetable_back.png"}, + paramtype = "light", + paramtype2 = "facedir", + stack_max = 1, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + sounds = default.node_sound_wood_defaults(), + node_box = { + type = "fixed", + fixed = { + --legs + {-0.375, -0.5, -0.375, -0.3125, -0.0625, -0.3125}, + {0.3125, -0.5, -0.375, 0.375, -0.0625, -0.3125}, + + --tabletop + {-0.4375, -0.0625, -0.4375, 0.4375, 0, 0.5}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.4375, -0.5, -0.4375, 0.4375, 0.0, 1.4375}, + } + }, + + on_construct = function(pos) + local node = minetest.env:get_node(pos) + local param2 = node.param2 + node.name = "lrfurn:coffeetable_front" + if param2 == 0 then + pos.z = pos.z+1 + elseif param2 == 1 then + pos.x = pos.x+1 + elseif param2 == 2 then + pos.z = pos.z-1 + elseif param2 == 3 then + pos.x = pos.x-1 + end + if( minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z}).name == "air" ) then + minetest.env:set_node(pos, node) + end + end, + + on_destruct = function(pos) + local node = minetest.env:get_node(pos) + local param2 = node.param2 + if param2 == 0 then + pos.z = pos.z+1 + elseif param2 == 1 then + pos.x = pos.x+1 + elseif param2 == 2 then + pos.z = pos.z-1 + elseif param2 == 3 then + pos.x = pos.x-1 + end + if( minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z}).name == "lrfurn:coffeetable_front" ) then + if( minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z}).param2 == param2 ) then + minetest.env:remove_node(pos) + end + end + end, +}) + +minetest.register_node("lrfurn:coffeetable_front", { + drawtype = "nodebox", + tiles = {"lrfurn_coffeetable_front.png", "lrfurn_coffeetable_front.png", "lrfurn_coffeetable_front.png", "lrfurn_coffeetable_front.png", "lrfurn_coffeetable_front.png", "lrfurn_coffeetable_front.png"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + sounds = default.node_sound_wood_defaults(), + node_box = { + type = "fixed", + fixed = { + --legs + {-0.375, -0.5, 0.3125, -0.3125, -0.0625, 0.375}, + {0.3125, -0.5, 0.3125, 0.375, -0.0625, 0.375}, + + --tabletop + {-0.4375, -0.0625, -0.5, 0.4375, 0, 0.4375}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0}, + } + }, +}) + +minetest.register_alias("lrfurn:coffeetable", "lrfurn:coffeetable_back") + +minetest.register_craft({ + output = "lrfurn:coffeetable", + recipe = { + {"", "", "", }, + {"stairs:slab_wood", "stairs:slab_wood", "stairs:slab_wood", }, + {"group:stick", "", "group:stick", } + } +}) + +minetest.register_craft({ + output = "lrfurn:coffeetable", + recipe = { + {"", "", "", }, + {"moreblocks:slab_wood", "moreblocks:slab_wood", "moreblocks:slab_wood", }, + {"group:stick", "", "group:stick", } + } +}) + +minetest.register_craft({ + output = "lrfurn:coffeetable", + recipe = { + {"", "", "", }, + {"group:wood_slab", "group:wood_slab", "group:wood_slab", }, + {"group:stick", "", "group:stick", } + } +}) + +if minetest.setting_get("log_mods") then + minetest.log("action", "coffeetable loaded") +end diff --git a/mods/homedecor_modpack/lrfurn/depends.txt b/mods/homedecor_modpack/lrfurn/depends.txt new file mode 100644 index 00000000..470ec30b --- /dev/null +++ b/mods/homedecor_modpack/lrfurn/depends.txt @@ -0,0 +1,2 @@ +default +wool diff --git a/mods/homedecor_modpack/lrfurn/endtable.lua b/mods/homedecor_modpack/lrfurn/endtable.lua new file mode 100644 index 00000000..4212037d --- /dev/null +++ b/mods/homedecor_modpack/lrfurn/endtable.lua @@ -0,0 +1,60 @@ +minetest.register_node("lrfurn:endtable", { + description = "End Table", + drawtype = "nodebox", + tiles = {"lrfurn_coffeetable_back.png", "lrfurn_coffeetable_back.png", "lrfurn_coffeetable_back.png", "lrfurn_coffeetable_back.png", "lrfurn_coffeetable_back.png", "lrfurn_coffeetable_back.png"}, + paramtype = "light", + paramtype2 = "facedir", + stack_max = 1, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + sounds = default.node_sound_wood_defaults(), + node_box = { + type = "fixed", + fixed = { + --legs + {-0.375, -0.5, -0.375, -0.3125, -0.0625, -0.3125}, + {0.3125, -0.5, -0.375, 0.375, -0.0625, -0.3125}, + {-0.375, -0.5, 0.3125, -0.3125, -0.0625, 0.375}, + {0.3125, -0.5, 0.3125, 0.375, -0.0625, 0.375}, + + --tabletop + {-0.4375, -0.0625, -0.4375, 0.4375, 0, 0.4375}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.4375, -0.5, -0.4375, 0.4375, 0.0, 0.4375}, + } + }, +}) + +minetest.register_craft({ + output = "lrfurn:endtable", + recipe = { + {"", "", "", }, + {"stairs:slab_wood", "stairs:slab_wood", "", }, + {"group:stick", "group:stick", "", } + } +}) + +minetest.register_craft({ + output = "lrfurn:endtable", + recipe = { + {"", "", "", }, + {"moreblocks:slab_wood", "moreblocks:slab_wood", "", }, + {"group:stick", "group:stick", "", } + } +}) + +minetest.register_craft({ + output = "lrfurn:endtable", + recipe = { + {"", "", "", }, + {"group:wood_slab", "group:wood_slab", "", }, + {"group:stick", "group:stick", "", } + } +}) + +if minetest.setting_get("log_mods") then + minetest.log("action", "endtable loaded") +end diff --git a/mods/homedecor_modpack/lrfurn/init.lua b/mods/homedecor_modpack/lrfurn/init.lua new file mode 100644 index 00000000..a54b9233 --- /dev/null +++ b/mods/homedecor_modpack/lrfurn/init.lua @@ -0,0 +1,5 @@ +dofile(minetest.get_modpath("lrfurn").."/longsofas.lua") +dofile(minetest.get_modpath("lrfurn").."/sofas.lua") +dofile(minetest.get_modpath("lrfurn").."/armchairs.lua") +dofile(minetest.get_modpath("lrfurn").."/coffeetable.lua") +dofile(minetest.get_modpath("lrfurn").."/endtable.lua") diff --git a/mods/homedecor_modpack/lrfurn/longsofas.lua b/mods/homedecor_modpack/lrfurn/longsofas.lua new file mode 100644 index 00000000..794b81d3 --- /dev/null +++ b/mods/homedecor_modpack/lrfurn/longsofas.lua @@ -0,0 +1,218 @@ +local longsofas_list = { + { "Red Long Sofa", "red"}, + { "Orange Long Sofa", "orange"}, + { "Yellow Long Sofa", "yellow"}, + { "Green Long Sofa", "green"}, + { "Blue Long Sofa", "blue"}, + { "Violet Long Sofa", "violet"}, + { "Black Long Sofa", "black"}, + { "Grey Long Sofa", "grey"}, + { "White Long Sofa", "white"}, +} + +for i in ipairs(longsofas_list) do + local longsofadesc = longsofas_list[i][1] + local colour = longsofas_list[i][2] + + minetest.register_node("lrfurn:longsofa_right_"..colour, { + description = longsofadesc, + drawtype = "nodebox", + tiles = {"lrfurn_sofa_right_top_"..colour..".png", "lrfurn_coffeetable_back.png", "lrfurn_sofa_right_front_"..colour..".png", "lrfurn_sofa_back_"..colour..".png", "lrfurn_sofa_left_side_"..colour..".png", "lrfurn_sofa_right_side_"..colour..".png"}, + paramtype = "light", + paramtype2 = "facedir", + stack_max = 1, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + sounds = default.node_sound_wood_defaults(), + node_box = { + type = "fixed", + fixed = { + --legs + {-0.4375, -0.5, -0.4375, -0.375, -0.375, -0.375}, + {0.375, -0.5, -0.4375, 0.4375, -0.375, -0.375}, + + --base/cushion + {-0.5, -0.375, -0.5, 0.5, 0, 0.5}, + + --back + {-0.5, 0, -0.5, -0.3125, 0.5, 0.5}, + + --arm + {-0.3125, 0, -0.5, 0.5, 0.25, -0.3125}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 2.5}, + } + }, + + on_construct = function(pos) + local node = minetest.env:get_node(pos) + local param2 = node.param2 + node.name = "lrfurn:longsofa_middle_"..colour + if param2 == 0 then + pos.z = pos.z+1 + elseif param2 == 1 then + pos.x = pos.x+1 + elseif param2 == 2 then + pos.z = pos.z-1 + elseif param2 == 3 then + pos.x = pos.x-1 + end + if( minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z}).name == "air" ) then + minetest.env:set_node(pos, node) + node.name = "lrfurn:longsofa_left_"..colour + if param2 == 0 then + pos.z = pos.z+1 + elseif param2 == 1 then + pos.x = pos.x+1 + elseif param2 == 2 then + pos.z = pos.z-1 + elseif param2 == 3 then + pos.x = pos.x-1 + end + if( minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z}).name == "air" ) then + minetest.env:set_node(pos, node) + end + end + end, + + on_destruct = function(pos) + local node = minetest.env:get_node(pos) + local param2 = node.param2 + if param2 == 0 then + pos.z = pos.z+1 + elseif param2 == 1 then + pos.x = pos.x+1 + elseif param2 == 2 then + pos.z = pos.z-1 + elseif param2 == 3 then + pos.x = pos.x-1 + end + if( minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z}).name == "lrfurn:longsofa_middle_"..colour ) then + if( minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z}).param2 == param2 ) then + minetest.env:remove_node(pos) + if param2 == 0 then + pos.z = pos.z+1 + elseif param2 == 1 then + pos.x = pos.x+1 + elseif param2 == 2 then + pos.z = pos.z-1 + elseif param2 == 3 then + pos.x = pos.x-1 + end + if( minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z}).name == "lrfurn:longsofa_left_"..colour ) then + if( minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z}).param2 == param2 ) then + minetest.env:remove_node(pos) + end + end + end + end + end, + + on_rightclick = function(pos, node, clicker) + if not clicker:is_player() then + return + end + pos.y = pos.y-0.5 + clicker:setpos(pos) + clicker:set_hp(20) + end + }) + + minetest.register_node("lrfurn:longsofa_middle_"..colour, { + drawtype = "nodebox", + tiles = {"lrfurn_longsofa_middle_top_"..colour..".png", "lrfurn_coffeetable_back.png", "lrfurn_longsofa_middle_front_"..colour..".png", "lrfurn_sofa_back_"..colour..".png", "lrfurn_sofa_left_side_"..colour..".png", "lrfurn_sofa_right_side_"..colour..".png"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + sounds = default.node_sound_wood_defaults(), + node_box = { + type = "fixed", + fixed = { + --legs + {-0.4375, -0.5, -0.03125, -0.375, -0.375, 0.03125}, + {0.375, -0.5, -0.03125, 0.4375, -0.375, 0.03125}, + + --base/cushion + {-0.5, -0.375, -0.5, 0.5, 0, 0.5}, + + --back + {-0.5, 0, -0.5, -0.3125, 0.5, 0.5}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0}, + } + }, + }) + + minetest.register_node("lrfurn:longsofa_left_"..colour, { + drawtype = "nodebox", + tiles = {"lrfurn_sofa_left_top_"..colour..".png", "lrfurn_coffeetable_back.png", "lrfurn_sofa_left_front_"..colour..".png", "lrfurn_sofa_back_"..colour..".png", "lrfurn_sofa_left_side_"..colour..".png", "lrfurn_sofa_right_side_"..colour..".png"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + sounds = default.node_sound_wood_defaults(), + node_box = { + type = "fixed", + fixed = { + --legs + {-0.4375, -0.5, 0.375, -0.375, -0.375, 0.4375}, + {0.375, -0.5, 0.375, 0.4375, -0.375, 0.4375}, + + --base/cushion + {-0.5, -0.375, -0.5, 0.5, 0, 0.5}, + + --back + {-0.5, 0, -0.5, -0.3125, 0.5, 0.5}, + + --arm + {-0.3125, 0, 0.3125, 0.5, 0.25, 0.5}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0}, + } + }, + }) + + minetest.register_alias("lrfurn:longsofa_"..colour, "lrfurn:longsofa_right_"..colour) + + minetest.register_craft({ + output = "lrfurn:longsofa_"..colour, + recipe = { + {"wool:"..colour, "wool:"..colour, "wool:"..colour, }, + {"stairs:slab_wood", "stairs:slab_wood", "stairs:slab_wood", }, + {"group:stick", "group:stick", "group:stick", } + } + }) + + minetest.register_craft({ + output = "lrfurn:longsofa_"..colour, + recipe = { + {"wool:"..colour, "wool:"..colour, "wool:"..colour, }, + {"moreblocks:slab_wood", "moreblocks:slab_wood", "moreblocks:slab_wood", }, + {"group:stick", "group:stick", "group:stick", } + } + }) + + minetest.register_craft({ + output = "lrfurn:longsofa_"..colour, + recipe = { + {"wool:"..colour, "wool:"..colour, "wool:"..colour, }, + {"group:wood_slab", "group:wood_slab", "group:wood_slab", }, + {"group:stick", "group:stick", "group:stick", } + } + }) + +end + +if minetest.setting_get("log_mods") then + minetest.log("action", "long sofas loaded") +end diff --git a/mods/homedecor_modpack/lrfurn/sofas.lua b/mods/homedecor_modpack/lrfurn/sofas.lua new file mode 100644 index 00000000..0de9865b --- /dev/null +++ b/mods/homedecor_modpack/lrfurn/sofas.lua @@ -0,0 +1,162 @@ +local sofas_list = { + { "Red Sofa", "red"}, + { "Orange Sofa", "orange"}, + { "Yellow Sofa", "yellow"}, + { "Green Sofa", "green"}, + { "Blue Sofa", "blue"}, + { "Violet Sofa", "violet"}, + { "Black Sofa", "black"}, + { "Grey Sofa", "grey"}, + { "White Sofa", "white"}, +} + +for i in ipairs(sofas_list) do + local sofadesc = sofas_list[i][1] + local colour = sofas_list[i][2] + + minetest.register_node("lrfurn:sofa_right_"..colour, { + description = sofadesc, + drawtype = "nodebox", + tiles = {"lrfurn_sofa_right_top_"..colour..".png", "lrfurn_coffeetable_back.png", "lrfurn_sofa_right_front_"..colour..".png", "lrfurn_sofa_back_"..colour..".png", "lrfurn_sofa_left_side_"..colour..".png", "lrfurn_sofa_right_side_"..colour..".png"}, + paramtype = "light", + paramtype2 = "facedir", + stack_max = 1, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + sounds = default.node_sound_wood_defaults(), + node_box = { + type = "fixed", + fixed = { + --legs + {-0.4375, -0.5, -0.4375, -0.375, -0.375, -0.375}, + {0.375, -0.5, -0.4375, 0.4375, -0.375, -0.375}, + + --base/cushion + {-0.5, -0.375, -0.5, 0.5, 0, 0.5}, + + --back + {-0.5, 0, -0.5, -0.3125, 0.5, 0.5}, + + --arm + {-0.3125, 0, -0.5, 0.5, 0.25, -0.3125}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 1.5}, + } + }, + + on_construct = function(pos) + local node = minetest.env:get_node(pos) + local param2 = node.param2 + node.name = "lrfurn:sofa_left_"..colour + if param2 == 0 then + pos.z = pos.z+1 + elseif param2 == 1 then + pos.x = pos.x+1 + elseif param2 == 2 then + pos.z = pos.z-1 + elseif param2 == 3 then + pos.x = pos.x-1 + end + if( minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z}).name == "air" ) then + minetest.env:set_node(pos, node) + end + end, + + on_destruct = function(pos) + local node = minetest.env:get_node(pos) + local param2 = node.param2 + if param2 == 0 then + pos.z = pos.z+1 + elseif param2 == 1 then + pos.x = pos.x+1 + elseif param2 == 2 then + pos.z = pos.z-1 + elseif param2 == 3 then + pos.x = pos.x-1 + end + if( minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z}).name == "lrfurn:sofa_left_"..colour ) then + if( minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z}).param2 == param2 ) then + minetest.env:remove_node(pos) + end + end + end, + + on_rightclick = function(pos, node, clicker) + if not clicker:is_player() then + return + end + pos.y = pos.y-0.5 + clicker:setpos(pos) + clicker:set_hp(20) + end + }) + + minetest.register_node("lrfurn:sofa_left_"..colour, { + drawtype = "nodebox", + tiles = {"lrfurn_sofa_left_top_"..colour..".png", "lrfurn_coffeetable_back.png", "lrfurn_sofa_left_front_"..colour..".png", "lrfurn_sofa_back_"..colour..".png", "lrfurn_sofa_left_side_"..colour..".png", "lrfurn_sofa_right_side_"..colour..".png"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + sounds = default.node_sound_wood_defaults(), + node_box = { + type = "fixed", + fixed = { + --legs + {-0.4375, -0.5, 0.375, -0.375, -0.375, 0.4375}, + {0.375, -0.5, 0.375, 0.4375, -0.375, 0.4375}, + + --base/cushion + {-0.5, -0.375, -0.5, 0.5, 0, 0.5}, + + --back + {-0.5, 0, -0.5, -0.3125, 0.5, 0.5}, + + --arm + {-0.3125, 0, 0.3125, 0.5, 0.25, 0.5}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0}, + } + }, + }) + + minetest.register_alias("lrfurn:sofa_"..colour, "lrfurn:sofa_right_"..colour) + + minetest.register_craft({ + output = "lrfurn:sofa_"..colour, + recipe = { + {"wool:"..colour, "wool:"..colour, "", }, + {"stairs:slab_wood", "stairs:slab_wood", "", }, + {"group:stick", "group:stick", "", } + } + }) + + minetest.register_craft({ + output = "lrfurn:sofa_"..colour, + recipe = { + {"wool:"..colour, "wool:"..colour, "", }, + {"moreblocks:slab_wood", "moreblocks:slab_wood", "", }, + {"group:stick", "group:stick", "", } + } + }) + + minetest.register_craft({ + output = "lrfurn:sofa_"..colour, + recipe = { + {"wool:"..colour, "wool:"..colour, "", }, + {"group:wood_slab", "group:wood_slab", "", }, + {"group:stick", "group:stick", "", } + } + }) + +end + +if minetest.setting_get("log_mods") then + minetest.log("action", "sofas loaded") +end diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_black.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_black.png new file mode 100644 index 00000000..b97baad3 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_black.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_blue.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_blue.png new file mode 100644 index 00000000..7298fbff Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_blue.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_green.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_green.png new file mode 100644 index 00000000..e51608f4 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_green.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_grey.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_grey.png new file mode 100644 index 00000000..a4f85ffb Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_grey.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_orange.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_orange.png new file mode 100644 index 00000000..7de9e1f0 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_orange.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_red.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_red.png new file mode 100644 index 00000000..0f2e52f0 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_red.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_violet.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_violet.png new file mode 100644 index 00000000..9a7b1e07 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_violet.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_white.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_white.png new file mode 100644 index 00000000..6e821328 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_white.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_yellow.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_yellow.png new file mode 100644 index 00000000..b5c37763 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_front_yellow.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_black.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_black.png new file mode 100644 index 00000000..4b1c7c48 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_black.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_blue.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_blue.png new file mode 100644 index 00000000..6e40ebda Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_blue.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_green.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_green.png new file mode 100644 index 00000000..435e7e49 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_green.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_grey.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_grey.png new file mode 100644 index 00000000..fe64f5e7 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_grey.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_orange.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_orange.png new file mode 100644 index 00000000..7936fe4f Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_orange.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_red.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_red.png new file mode 100644 index 00000000..5aef6f52 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_red.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_violet.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_violet.png new file mode 100644 index 00000000..2ad2a863 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_violet.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_white.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_white.png new file mode 100644 index 00000000..46a49bec Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_white.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_yellow.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_yellow.png new file mode 100644 index 00000000..a82f313d Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_armchair_top_yellow.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_coffeetable_back.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_coffeetable_back.png new file mode 100644 index 00000000..ef07fd51 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_coffeetable_back.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_coffeetable_front.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_coffeetable_front.png new file mode 100644 index 00000000..91b91273 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_coffeetable_front.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_black.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_black.png new file mode 100644 index 00000000..ebc76873 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_black.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_blue.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_blue.png new file mode 100644 index 00000000..175bb5e2 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_blue.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_green.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_green.png new file mode 100644 index 00000000..84bf237e Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_green.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_grey.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_grey.png new file mode 100644 index 00000000..ecb84b68 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_grey.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_orange.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_orange.png new file mode 100644 index 00000000..4e6b04bb Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_orange.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_red.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_red.png new file mode 100644 index 00000000..861b00e6 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_red.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_violet.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_violet.png new file mode 100644 index 00000000..c0fe2d67 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_violet.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_white.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_white.png new file mode 100644 index 00000000..32eb2a6e Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_white.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_yellow.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_yellow.png new file mode 100644 index 00000000..70c0526e Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_front_yellow.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_black.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_black.png new file mode 100644 index 00000000..6b00f4be Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_black.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_blue.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_blue.png new file mode 100644 index 00000000..aafcaba6 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_blue.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_green.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_green.png new file mode 100644 index 00000000..849187aa Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_green.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_grey.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_grey.png new file mode 100644 index 00000000..f89aa8e9 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_grey.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_orange.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_orange.png new file mode 100644 index 00000000..854285fb Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_orange.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_red.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_red.png new file mode 100644 index 00000000..ebd7548c Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_red.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_violet.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_violet.png new file mode 100644 index 00000000..d8946bc1 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_violet.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_white.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_white.png new file mode 100644 index 00000000..72133db9 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_white.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_yellow.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_yellow.png new file mode 100644 index 00000000..94fd16d4 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_longsofa_middle_top_yellow.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_black.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_black.png new file mode 100644 index 00000000..59d566ad Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_black.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_blue.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_blue.png new file mode 100644 index 00000000..4feb74b0 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_blue.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_green.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_green.png new file mode 100644 index 00000000..603c6510 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_green.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_grey.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_grey.png new file mode 100644 index 00000000..90a17d7b Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_grey.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_orange.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_orange.png new file mode 100644 index 00000000..069006db Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_orange.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_red.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_red.png new file mode 100644 index 00000000..dfe6eb36 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_red.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_violet.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_violet.png new file mode 100644 index 00000000..87ee6cb4 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_violet.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_white.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_white.png new file mode 100644 index 00000000..212fa00f Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_white.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_yellow.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_yellow.png new file mode 100644 index 00000000..7091a665 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_back_yellow.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_black.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_black.png new file mode 100644 index 00000000..93d2dcfd Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_black.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_blue.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_blue.png new file mode 100644 index 00000000..9376230a Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_blue.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_green.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_green.png new file mode 100644 index 00000000..5b57f933 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_green.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_grey.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_grey.png new file mode 100644 index 00000000..783e8d30 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_grey.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_orange.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_orange.png new file mode 100644 index 00000000..9cfd3451 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_orange.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_red.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_red.png new file mode 100644 index 00000000..5ec6a831 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_red.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_violet.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_violet.png new file mode 100644 index 00000000..a822cde9 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_violet.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_white.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_white.png new file mode 100644 index 00000000..30918e8c Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_white.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_yellow.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_yellow.png new file mode 100644 index 00000000..414cb937 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_front_yellow.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_black.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_black.png new file mode 100644 index 00000000..df73a848 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_black.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_blue.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_blue.png new file mode 100644 index 00000000..904bcb2b Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_blue.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_green.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_green.png new file mode 100644 index 00000000..732720b3 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_green.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_grey.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_grey.png new file mode 100644 index 00000000..d15ff63c Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_grey.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_orange.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_orange.png new file mode 100644 index 00000000..3ed66371 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_orange.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_red.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_red.png new file mode 100644 index 00000000..e900e3ed Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_red.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_violet.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_violet.png new file mode 100644 index 00000000..9b1fe876 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_violet.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_white.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_white.png new file mode 100644 index 00000000..63ed1190 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_white.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_yellow.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_yellow.png new file mode 100644 index 00000000..8501590a Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_side_yellow.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_black.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_black.png new file mode 100644 index 00000000..f02c70c8 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_black.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_blue.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_blue.png new file mode 100644 index 00000000..71d44b72 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_blue.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_green.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_green.png new file mode 100644 index 00000000..12bc37ae Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_green.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_grey.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_grey.png new file mode 100644 index 00000000..caacd61f Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_grey.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_orange.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_orange.png new file mode 100644 index 00000000..a0687d72 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_orange.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_red.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_red.png new file mode 100644 index 00000000..cb014ae4 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_red.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_violet.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_violet.png new file mode 100644 index 00000000..6adbccf9 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_violet.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_white.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_white.png new file mode 100644 index 00000000..6712f6b5 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_white.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_yellow.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_yellow.png new file mode 100644 index 00000000..318af904 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_left_top_yellow.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_black.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_black.png new file mode 100644 index 00000000..ae2a9221 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_black.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_blue.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_blue.png new file mode 100644 index 00000000..52acc1e8 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_blue.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_green.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_green.png new file mode 100644 index 00000000..8e28179a Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_green.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_grey.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_grey.png new file mode 100644 index 00000000..8d991d41 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_grey.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_orange.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_orange.png new file mode 100644 index 00000000..b0d732a9 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_orange.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_red.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_red.png new file mode 100644 index 00000000..323395cb Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_red.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_violet.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_violet.png new file mode 100644 index 00000000..8d8b796d Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_violet.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_white.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_white.png new file mode 100644 index 00000000..003eec41 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_white.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_yellow.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_yellow.png new file mode 100644 index 00000000..a44b11d3 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_front_yellow.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_black.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_black.png new file mode 100644 index 00000000..1ce51fe1 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_black.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_blue.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_blue.png new file mode 100644 index 00000000..03ee4bf5 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_blue.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_green.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_green.png new file mode 100644 index 00000000..316eae02 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_green.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_grey.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_grey.png new file mode 100644 index 00000000..2012f59d Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_grey.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_orange.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_orange.png new file mode 100644 index 00000000..ab22c315 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_orange.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_red.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_red.png new file mode 100644 index 00000000..88d0c4c1 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_red.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_violet.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_violet.png new file mode 100644 index 00000000..034b7c58 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_violet.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_white.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_white.png new file mode 100644 index 00000000..905d73bd Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_white.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_yellow.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_yellow.png new file mode 100644 index 00000000..ca0c9388 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_side_yellow.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_black.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_black.png new file mode 100644 index 00000000..b5b0ad55 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_black.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_blue.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_blue.png new file mode 100644 index 00000000..1dc2cb3d Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_blue.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_green.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_green.png new file mode 100644 index 00000000..df0ea198 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_green.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_grey.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_grey.png new file mode 100644 index 00000000..9764280c Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_grey.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_orange.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_orange.png new file mode 100644 index 00000000..377d64e3 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_orange.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_red.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_red.png new file mode 100644 index 00000000..2876c608 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_red.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_violet.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_violet.png new file mode 100644 index 00000000..6cf390c4 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_violet.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_white.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_white.png new file mode 100644 index 00000000..c4c261db Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_white.png differ diff --git a/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_yellow.png b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_yellow.png new file mode 100644 index 00000000..27c288c4 Binary files /dev/null and b/mods/homedecor_modpack/lrfurn/textures/lrfurn_sofa_right_top_yellow.png differ diff --git a/mods/homedecor_modpack/modpack.txt b/mods/homedecor_modpack/modpack.txt new file mode 100644 index 00000000..e69de29b diff --git a/mods/homedecor_modpack/plasmascreen/README.md b/mods/homedecor_modpack/plasmascreen/README.md new file mode 100644 index 00000000..a4f46d33 --- /dev/null +++ b/mods/homedecor_modpack/plasmascreen/README.md @@ -0,0 +1,7 @@ +PLASMASCREEN +============ + +Mod adding a plasma screen TV for Minetest. + +This mod adds a 2x3 plasma screen TV consisting of 6 nodeboxes. +Code and textures are WTFPL. diff --git a/mods/homedecor_modpack/plasmascreen/depends.txt b/mods/homedecor_modpack/plasmascreen/depends.txt new file mode 100644 index 00000000..331d858c --- /dev/null +++ b/mods/homedecor_modpack/plasmascreen/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/mods/homedecor_modpack/plasmascreen/init.lua b/mods/homedecor_modpack/plasmascreen/init.lua new file mode 100644 index 00000000..4cb0d1c1 --- /dev/null +++ b/mods/homedecor_modpack/plasmascreen/init.lua @@ -0,0 +1,472 @@ +--Mod adding a plasma screen television by qwrwed + + +minetest.register_node("plasmascreen:stand", { + description = "Plasma Screen TV Stand", + tiles = {"plasmascreen_back.png"}, + paramtype = "light", + paramtype2 = "facedir", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {0.5000,-0.5000,0.0625,-0.5000,-0.4375,-0.5000}, --NodeBox 1 + {-0.1875,-0.5000,-0.3750,0.1875,0.1250,-0.1250}, --NodeBox 2 + {-0.5000,-0.2500,-0.5000,0.5000,0.5000,-0.3750}, --NodeBox 3 + {-0.3750,-0.1875,-0.3750,0.3750,0.3125,-0.2500}, --NodeBox 4 + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5000, -0.5000, -0.5000, 0.5000, 0.5000, 0.0000}, + } + }, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, +}) + +minetest.register_node("plasmascreen:screen1", { + description = "Plasma Screen 1", + tiles = { + "plasmascreen_back.png", + "plasmascreen_screen.png", + "plasmascreen_screen.png", + "plasmascreen_back.png", + "plasmascreen_back.png", + { name="plasmascreen_screen1.png", + animation={ + type="vertical_frames", + aspect_w=16, + aspect_h=16, + length=44 + } + } + + }, + paramtype = "light", + paramtype2 = "facedir", + drop = "", + light_source = 10, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5000, -0.5000, 0.4375, 0.5000, 0.5000, 0.5000}, + {-0.5000, 0.5000, 0.3750, 0.5000, 0.3125, 0.4375}, + {-0.5000, -0.5000, 0.5000, -0.3125, 0.5000, 0.3750}, + } + }, + selection_box = { + type = "fixed", + fixed = {-0.2500, -0.2500, 0.4500, 0.2500, 0.2500, 0.4500} + }, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1}, +}) +minetest.register_node("plasmascreen:screen2", { + description = "Plasma Screen 2", + tiles = { + "plasmascreen_back.png", + "plasmascreen_screen.png", + "plasmascreen_screen.png", + "plasmascreen_back.png", + "plasmascreen_back.png", + { name="plasmascreen_screen2.png", + animation={ + type="vertical_frames", + aspect_w=16, + aspect_h=16, + length=44 + } + } + + }, + paramtype = "light", + paramtype2 = "facedir", + drop = "", + light_source = 10, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5000, -0.5000, 0.4375, 0.5000, 0.5000, 0.5000}, + {-0.5000, 0.5000, 0.3750, 0.5000, 0.3125, 0.4375}, + } + }, + selection_box = { + type = "fixed", + fixed = {-0.2500, -0.2500, 0.4500, 0.2500, 0.2500, 0.4500} + }, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1}, +}) +minetest.register_node("plasmascreen:screen3", { + description = "Plasma Screen 3", + tiles = { + "plasmascreen_back.png", + "plasmascreen_screen.png", + "plasmascreen_screen.png", + "plasmascreen_back.png", + "plasmascreen_back.png", + { name="plasmascreen_screen3.png", + animation={ + type="vertical_frames", + aspect_w=16, + aspect_h=16, + length=44 + } + } + + }, + paramtype = "light", + paramtype2 = "facedir", + drop = "", + light_source = 10, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5000, -0.5000, 0.4375, 0.5000, 0.5000, 0.5000}, + {-0.5000, 0.5000, 0.3750, 0.5000, 0.3125, 0.4375}, + {0.3125, -0.5000, 0.5000, 0.5000, 0.5000, 0.3750}, + } + }, + selection_box = { + type = "fixed", + fixed = {-0.2500, -0.2500, 0.4500, 0.2500, 0.2500, 0.4500} + }, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1}, +}) +minetest.register_node("plasmascreen:screen4", { + description = "Plasma Screen 4", + tiles = { + "plasmascreen_back.png", + "plasmascreen_screen.png", + "plasmascreen_screen.png", + "plasmascreen_back.png", + "plasmascreen_back.png", + { name="plasmascreen_screen4.png", + animation={ + type="vertical_frames", + aspect_w=16, + aspect_h=16, + length=44 + } + } + + }, + paramtype = "light", + paramtype2 = "facedir", + drop = "", + light_source = 10, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5000, -0.3125, 0.4375, 0.5000, 0.5000, 0.5000}, + {-0.5000, -0.3125, 0.3750, 0.5000, -0.1250, 0.4375}, + {-0.5000, -0.3125, 0.5000, -0.3125, 0.5000, 0.3750}, + } + }, + selection_box = { + type = "fixed", + fixed = {-0.2500, -0.2500, 0.4500, 0.2500, 0.2500, 0.4500} + }, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1}, +}) + +minetest.register_node("plasmascreen:screen5", { + description = "Plasma TV", + tiles = { + "plasmascreen_back.png", + "plasmascreen_screen.png", + "plasmascreen_screen.png", + "plasmascreen_back.png", + "plasmascreen_back.png", + { name="plasmascreen_screen5.png", + animation={ + type="vertical_frames", + aspect_w=16, + aspect_h=16, + length=44 + } + } + + }, + inventory_image = "plasmascreen_tv_inv.png", + wield_image = "plasmascreen_tv_inv.png", + paramtype = "light", + paramtype2 = "facedir", + light_source = 10, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5000, -0.3125, 0.4375, 0.5000, 0.5000, 0.5000}, + {-0.5000, -0.3125, 0.3750, 0.5000, -0.1250, 0.4375}, + } + }, + selection_box = { + type = "fixed", + fixed = {-1.5050, -0.3125, 0.3700, 1.5050, 1.5050, 0.5050} + }, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, + +after_place_node = function(pos,placer,itemstack) + local param2 = minetest.get_node(pos).param2 + local p = {x=pos.x, y=pos.y, z=pos.z} + if param2 == 0 then + pos.x = pos.x-1 + if minetest.registered_nodes[minetest.env:get_node(pos).name].buildable_to then + minetest.set_node(pos,{name="plasmascreen:screen4", param2=minetest.dir_to_facedir(placer:get_look_dir())}) + else + minetest.env:remove_node(p) + return true + end + pos.x = pos.x+2 + if minetest.registered_nodes[minetest.env:get_node(pos).name].buildable_to then + minetest.set_node(pos,{name="plasmascreen:screen6", param2=minetest.dir_to_facedir(placer:get_look_dir())}) + else + minetest.env:remove_node(p) + return true + end + pos.y = pos.y+1 + if minetest.registered_nodes[minetest.env:get_node(pos).name].buildable_to then + minetest.set_node(pos,{name="plasmascreen:screen3", param2=minetest.dir_to_facedir(placer:get_look_dir())}) + else + minetest.env:remove_node(p) + return true + end + pos.x = pos.x-1 + if minetest.registered_nodes[minetest.env:get_node(pos).name].buildable_to then + minetest.set_node(pos,{name="plasmascreen:screen2", param2=minetest.dir_to_facedir(placer:get_look_dir())}) + else + minetest.env:remove_node(p) + return true + end + pos.x = pos.x-1 + if minetest.registered_nodes[minetest.env:get_node(pos).name].buildable_to then + minetest.set_node(pos,{name="plasmascreen:screen1", param2=minetest.dir_to_facedir(placer:get_look_dir())}) + else + minetest.env:remove_node(p) + return true + end + elseif param2 == 1 then + pos.z = pos.z+1 + if minetest.registered_nodes[minetest.env:get_node(pos).name].buildable_to then + minetest.set_node(pos,{name="plasmascreen:screen4", param2=minetest.dir_to_facedir(placer:get_look_dir())}) + else + minetest.env:remove_node(p) + return true + end + pos.z = pos.z-2 + if minetest.registered_nodes[minetest.env:get_node(pos).name].buildable_to then + minetest.set_node(pos,{name="plasmascreen:screen6", param2=minetest.dir_to_facedir(placer:get_look_dir())}) + else + minetest.env:remove_node(p) + return true + end + pos.y = pos.y+1 + if minetest.registered_nodes[minetest.env:get_node(pos).name].buildable_to then + minetest.set_node(pos,{name="plasmascreen:screen3", param2=minetest.dir_to_facedir(placer:get_look_dir())}) + else + minetest.env:remove_node(p) + return true + end + pos.z = pos.z+1 + if minetest.registered_nodes[minetest.env:get_node(pos).name].buildable_to then + minetest.set_node(pos,{name="plasmascreen:screen2", param2=minetest.dir_to_facedir(placer:get_look_dir())}) + else + minetest.env:remove_node(p) + return true + end + pos.z = pos.z+1 + if minetest.registered_nodes[minetest.env:get_node(pos).name].buildable_to then + minetest.set_node(pos,{name="plasmascreen:screen1", param2=minetest.dir_to_facedir(placer:get_look_dir())}) + else + minetest.env:remove_node(p) + return true + end + elseif param2 == 2 then + pos.x = pos.x+1 + if minetest.registered_nodes[minetest.env:get_node(pos).name].buildable_to then + minetest.set_node(pos,{name="plasmascreen:screen4", param2=minetest.dir_to_facedir(placer:get_look_dir())}) + else + minetest.env:remove_node(p) + return true + end + pos.x = pos.x-2 + if minetest.registered_nodes[minetest.env:get_node(pos).name].buildable_to then + minetest.set_node(pos,{name="plasmascreen:screen6", param2=minetest.dir_to_facedir(placer:get_look_dir())}) + else + minetest.env:remove_node(p) + return true + end + pos.y = pos.y+1 + if minetest.registered_nodes[minetest.env:get_node(pos).name].buildable_to then + minetest.set_node(pos,{name="plasmascreen:screen3", param2=minetest.dir_to_facedir(placer:get_look_dir())}) + else + minetest.env:remove_node(p) + return true + end + pos.x = pos.x+1 + if minetest.registered_nodes[minetest.env:get_node(pos).name].buildable_to then + minetest.set_node(pos,{name="plasmascreen:screen2", param2=minetest.dir_to_facedir(placer:get_look_dir())}) + else + minetest.env:remove_node(p) + return true + end + pos.x = pos.x+1 + if minetest.registered_nodes[minetest.env:get_node(pos).name].buildable_to then + minetest.set_node(pos,{name="plasmascreen:screen1", param2=minetest.dir_to_facedir(placer:get_look_dir())}) + else + minetest.env:remove_node(p) + return true + end + elseif param2 == 3 then + pos.z = pos.z-1 + if minetest.registered_nodes[minetest.env:get_node(pos).name].buildable_to then + minetest.set_node(pos,{name="plasmascreen:screen4", param2=minetest.dir_to_facedir(placer:get_look_dir())}) + else + minetest.env:remove_node(p) + return true + end + pos.z = pos.z+2 + if minetest.registered_nodes[minetest.env:get_node(pos).name].buildable_to then + minetest.set_node(pos,{name="plasmascreen:screen6", param2=minetest.dir_to_facedir(placer:get_look_dir())}) + else + minetest.env:remove_node(p) + return true + end + pos.y = pos.y+1 + if minetest.registered_nodes[minetest.env:get_node(pos).name].buildable_to then + minetest.set_node(pos,{name="plasmascreen:screen3", param2=minetest.dir_to_facedir(placer:get_look_dir())}) + else + minetest.env:remove_node(p) + return true + end + pos.z = pos.z-1 + if minetest.registered_nodes[minetest.env:get_node(pos).name].buildable_to then + minetest.set_node(pos,{name="plasmascreen:screen2", param2=minetest.dir_to_facedir(placer:get_look_dir())}) + else + minetest.env:remove_node(p) + return true + end + pos.z = pos.z-1 + if minetest.registered_nodes[minetest.env:get_node(pos).name].buildable_to then + minetest.set_node(pos,{name="plasmascreen:screen1", param2=minetest.dir_to_facedir(placer:get_look_dir())}) + else + minetest.env:remove_node(p) + return true + end + end + end, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + if oldnode.param2 == 0 then + pos.x = pos.x-1 + minetest.remove_node(pos) + pos.x = pos.x+2 + minetest.remove_node(pos) + pos.y = pos.y+1 + minetest.remove_node(pos) + pos.x = pos.x-1 + minetest.remove_node(pos) + pos.x = pos.x-1 + minetest.remove_node(pos) + elseif oldnode.param2 == 1 then + pos.z = pos.z+1 + minetest.remove_node(pos) + pos.z = pos.z-2 + minetest.remove_node(pos) + pos.y = pos.y+1 + minetest.remove_node(pos) + pos.z = pos.z+1 + minetest.remove_node(pos) + pos.z = pos.z+1 + minetest.remove_node(pos) + elseif oldnode.param2 == 2 then + pos.x = pos.x+1 + minetest.remove_node(pos) + pos.x = pos.x-2 + minetest.remove_node(pos) + pos.y = pos.y+1 + minetest.remove_node(pos) + pos.x = pos.x+1 + minetest.remove_node(pos) + pos.x = pos.x+1 + minetest.remove_node(pos) + elseif oldnode.param2 == 3 then + pos.z = pos.z-1 + minetest.remove_node(pos) + pos.z = pos.z+2 + minetest.remove_node(pos) + pos.y = pos.y+1 + minetest.remove_node(pos) + pos.z = pos.z-1 + minetest.remove_node(pos) + pos.z = pos.z-1 + minetest.remove_node(pos) + end + end +}) + +minetest.register_node("plasmascreen:screen6", { + description = "Plasma Screen 6", + tiles = { + "plasmascreen_back.png", + "plasmascreen_screen.png", + "plasmascreen_screen.png", + "plasmascreen_back.png", + "plasmascreen_back.png", + { name="plasmascreen_screen6.png", + animation={ + type="vertical_frames", + aspect_w=16, + aspect_h=16, + length=44 + } + } + + }, + paramtype = "light", + paramtype2 = "facedir", + drop = "", + light_source = 10, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5000, -0.3125, 0.4375, 0.5000, 0.5000, 0.5000}, + {-0.5000, -0.3125, 0.3750, 0.5000, -0.1250, 0.4375}, + {0.3125, -0.3125, 0.5000, 0.5000, 0.5000, 0.3750}, + } + }, + selection_box = { + type = "fixed", + fixed = {-0.2500, -0.2500, 0.4500, 0.2500, 0.2500, 0.4500} + }, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1}, +}) + +minetest.register_craft({ + output = "plasmascreen:screen5", + recipe = { + {'default:glass', 'default:coal_lump', 'default:glass'}, + {'default:steel_ingot', 'default:copper_ingot', 'default:steel_ingot'}, + {'default:glass', 'default:glass', 'default:glass'}, + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "plasmascreen:screen5", + recipe = {'homedecor:television', 'homedecor:television'}, +}) + +minetest.register_craft({ + output = "plasmascreen:stand", + recipe = { + {'', '', ''}, + {'', 'default:steel_ingot', ''}, + {'group:stick', 'default:coal_lump', 'group:stick'}, + } +}) diff --git a/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_all_together.png b/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_all_together.png new file mode 100644 index 00000000..a3bbf950 Binary files /dev/null and b/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_all_together.png differ diff --git a/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_back.png b/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_back.png new file mode 100644 index 00000000..733a43ad Binary files /dev/null and b/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_back.png differ diff --git a/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_screen.png b/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_screen.png new file mode 100644 index 00000000..e398a5b6 Binary files /dev/null and b/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_screen.png differ diff --git a/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_screen1.png b/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_screen1.png new file mode 100644 index 00000000..01e7ca03 Binary files /dev/null and b/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_screen1.png differ diff --git a/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_screen2.png b/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_screen2.png new file mode 100644 index 00000000..21d54b19 Binary files /dev/null and b/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_screen2.png differ diff --git a/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_screen3.png b/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_screen3.png new file mode 100644 index 00000000..dfc06d18 Binary files /dev/null and b/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_screen3.png differ diff --git a/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_screen4.png b/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_screen4.png new file mode 100644 index 00000000..b3609c7b Binary files /dev/null and b/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_screen4.png differ diff --git a/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_screen5.png b/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_screen5.png new file mode 100644 index 00000000..e76582e0 Binary files /dev/null and b/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_screen5.png differ diff --git a/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_screen6.png b/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_screen6.png new file mode 100644 index 00000000..bb0aeabd Binary files /dev/null and b/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_screen6.png differ diff --git a/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_tv_inv.png b/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_tv_inv.png new file mode 100644 index 00000000..7bd73954 Binary files /dev/null and b/mods/homedecor_modpack/plasmascreen/textures/plasmascreen_tv_inv.png differ diff --git a/mods/homedecor_modpack/signs_lib/LICENSE b/mods/homedecor_modpack/signs_lib/LICENSE new file mode 100644 index 00000000..65c5ca88 --- /dev/null +++ b/mods/homedecor_modpack/signs_lib/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER 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. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser 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 +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/mods/homedecor_modpack/signs_lib/copyright.txt b/mods/homedecor_modpack/signs_lib/copyright.txt new file mode 100644 index 00000000..690bdc52 --- /dev/null +++ b/mods/homedecor_modpack/signs_lib/copyright.txt @@ -0,0 +1,12 @@ +Most code and all textures by Vanessa Ezekowitz. + +Some code copied and modified from the game's default mods (especially +doors) and ironzorg's flowers mod. + +Licenses: +* For the lua code, LGPL. +* For the door open/close sound, CC-By-SA 3.0 by Slanesh on freesound.org + http://freesound.org/people/Slanesh/sounds/31768/ +* For the gate open/close sound, CC0, by j1987 on freesound.org + http://freesound.org/people/j1987/sounds/106116/ +* For all images and everything else, WTFPL. diff --git a/mods/homedecor_modpack/signs_lib/depends.txt b/mods/homedecor_modpack/signs_lib/depends.txt new file mode 100644 index 00000000..4ad96d51 --- /dev/null +++ b/mods/homedecor_modpack/signs_lib/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_20.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_20.png new file mode 100644 index 00000000..f2e24f46 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_20.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_21.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_21.png new file mode 100644 index 00000000..71aa8ac8 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_21.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_22.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_22.png new file mode 100644 index 00000000..0628c47b Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_22.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_23.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_23.png new file mode 100644 index 00000000..e0cd93bc Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_23.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_24.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_24.png new file mode 100644 index 00000000..f6ba4e96 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_24.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_25.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_25.png new file mode 100644 index 00000000..337c67b4 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_25.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_26.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_26.png new file mode 100644 index 00000000..66a36400 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_26.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_27.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_27.png new file mode 100644 index 00000000..c2de587d Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_27.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_28.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_28.png new file mode 100644 index 00000000..45726731 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_28.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_29.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_29.png new file mode 100644 index 00000000..15d2d8c4 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_29.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_2a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_2a.png new file mode 100644 index 00000000..5ef6d178 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_2a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_2b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_2b.png new file mode 100644 index 00000000..f2d0e845 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_2b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_2c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_2c.png new file mode 100644 index 00000000..edbc209a Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_2c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_2d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_2d.png new file mode 100644 index 00000000..0482fec8 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_2d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_2e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_2e.png new file mode 100644 index 00000000..6e1b5a0d Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_2e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_2f.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_2f.png new file mode 100644 index 00000000..a6f8fb5e Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_2f.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_30.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_30.png new file mode 100644 index 00000000..0f664bc1 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_30.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_31.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_31.png new file mode 100644 index 00000000..0149aa58 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_31.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_32.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_32.png new file mode 100644 index 00000000..9d60707a Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_32.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_33.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_33.png new file mode 100644 index 00000000..31caea45 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_33.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_34.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_34.png new file mode 100644 index 00000000..9c3b2d10 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_34.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_35.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_35.png new file mode 100644 index 00000000..b0b6a4b1 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_35.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_36.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_36.png new file mode 100644 index 00000000..82e4c6f0 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_36.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_37.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_37.png new file mode 100644 index 00000000..d9998a37 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_37.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_38.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_38.png new file mode 100644 index 00000000..addb0193 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_38.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_39.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_39.png new file mode 100644 index 00000000..a19db552 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_39.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_3a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_3a.png new file mode 100644 index 00000000..44c88a8d Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_3a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_3b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_3b.png new file mode 100644 index 00000000..c7679284 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_3b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_3c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_3c.png new file mode 100644 index 00000000..a6b5e9a2 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_3c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_3d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_3d.png new file mode 100644 index 00000000..5cfff81a Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_3d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_3e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_3e.png new file mode 100644 index 00000000..f8b73c0a Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_3e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_3f.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_3f.png new file mode 100644 index 00000000..936191da Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_3f.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_40.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_40.png new file mode 100644 index 00000000..1aed18fb Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_40.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_41.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_41.png new file mode 100644 index 00000000..a48a88fd Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_41.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_42.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_42.png new file mode 100644 index 00000000..55028733 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_42.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_43.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_43.png new file mode 100644 index 00000000..c9d7f25f Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_43.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_44.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_44.png new file mode 100644 index 00000000..51b29b52 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_44.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_45.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_45.png new file mode 100644 index 00000000..f985a77e Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_45.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_46.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_46.png new file mode 100644 index 00000000..692fdca0 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_46.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_47.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_47.png new file mode 100644 index 00000000..2dded731 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_47.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_48.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_48.png new file mode 100644 index 00000000..460849c5 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_48.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_49.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_49.png new file mode 100644 index 00000000..4a0f2201 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_49.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_4a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_4a.png new file mode 100644 index 00000000..ade9ce91 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_4a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_4b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_4b.png new file mode 100644 index 00000000..6bee89d2 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_4b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_4c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_4c.png new file mode 100644 index 00000000..ac89737c Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_4c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_4d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_4d.png new file mode 100644 index 00000000..ba95c6ee Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_4d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_4e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_4e.png new file mode 100644 index 00000000..f4d26521 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_4e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_4f.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_4f.png new file mode 100644 index 00000000..1cdfa04e Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_4f.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_50.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_50.png new file mode 100644 index 00000000..8db450b1 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_50.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_51.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_51.png new file mode 100644 index 00000000..3d75c3e9 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_51.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_52.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_52.png new file mode 100644 index 00000000..b63e3ca2 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_52.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_53.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_53.png new file mode 100644 index 00000000..c10d27c3 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_53.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_54.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_54.png new file mode 100644 index 00000000..dd3f29cf Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_54.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_55.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_55.png new file mode 100644 index 00000000..427a7225 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_55.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_56.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_56.png new file mode 100644 index 00000000..8322a55f Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_56.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_57.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_57.png new file mode 100644 index 00000000..8087239b Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_57.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_58.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_58.png new file mode 100644 index 00000000..dba95350 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_58.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_59.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_59.png new file mode 100644 index 00000000..3e9ff957 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_59.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_5a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_5a.png new file mode 100644 index 00000000..e5e5f4b9 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_5a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_5b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_5b.png new file mode 100644 index 00000000..caa62c64 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_5b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_5c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_5c.png new file mode 100644 index 00000000..2952f08d Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_5c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_5d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_5d.png new file mode 100644 index 00000000..2ccfb85c Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_5d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_5e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_5e.png new file mode 100644 index 00000000..049d1dd9 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_5e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_5f.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_5f.png new file mode 100644 index 00000000..4bcbcab6 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_5f.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_60.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_60.png new file mode 100644 index 00000000..f19e8854 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_60.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_61.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_61.png new file mode 100644 index 00000000..8d5e09c5 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_61.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_62.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_62.png new file mode 100644 index 00000000..3c736158 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_62.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_63.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_63.png new file mode 100644 index 00000000..c412a926 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_63.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_64.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_64.png new file mode 100644 index 00000000..07098489 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_64.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_65.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_65.png new file mode 100644 index 00000000..30cb8fa3 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_65.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_66.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_66.png new file mode 100644 index 00000000..3e8911c2 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_66.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_67.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_67.png new file mode 100644 index 00000000..19cdc361 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_67.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_68.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_68.png new file mode 100644 index 00000000..2c0bb43c Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_68.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_69.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_69.png new file mode 100644 index 00000000..feb31ebe Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_69.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_6a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_6a.png new file mode 100644 index 00000000..9b146888 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_6a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_6b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_6b.png new file mode 100644 index 00000000..4d88afb3 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_6b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_6c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_6c.png new file mode 100644 index 00000000..4a0f2201 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_6c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_6d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_6d.png new file mode 100644 index 00000000..08629f2b Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_6d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_6e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_6e.png new file mode 100644 index 00000000..9ce95ab8 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_6e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_6f.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_6f.png new file mode 100644 index 00000000..77f4cefa Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_6f.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_70.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_70.png new file mode 100644 index 00000000..ee40d17f Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_70.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_71.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_71.png new file mode 100644 index 00000000..6eb8d8cd Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_71.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_72.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_72.png new file mode 100644 index 00000000..8df26589 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_72.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_73.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_73.png new file mode 100644 index 00000000..0201d368 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_73.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_74.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_74.png new file mode 100644 index 00000000..b2b9f9ed Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_74.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_75.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_75.png new file mode 100644 index 00000000..e1a2fb12 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_75.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_76.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_76.png new file mode 100644 index 00000000..6632ed9b Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_76.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_77.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_77.png new file mode 100644 index 00000000..c1c126cd Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_77.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_78.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_78.png new file mode 100644 index 00000000..b3ec0af8 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_78.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_79.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_79.png new file mode 100644 index 00000000..173612df Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_79.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_7a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_7a.png new file mode 100644 index 00000000..2ee23531 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_7a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_7b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_7b.png new file mode 100644 index 00000000..1ee4af19 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_7b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_7c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_7c.png new file mode 100644 index 00000000..b12a7905 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_7c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_7d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_7d.png new file mode 100644 index 00000000..06f6692a Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_7d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_7e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_7e.png new file mode 100644 index 00000000..13e957da Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/11px/hdf_7e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_20.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_20.png new file mode 100644 index 00000000..05fab409 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_20.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_21.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_21.png new file mode 100644 index 00000000..d5540b60 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_21.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_22.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_22.png new file mode 100644 index 00000000..12476c60 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_22.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_23.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_23.png new file mode 100644 index 00000000..ae77104b Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_23.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_24.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_24.png new file mode 100644 index 00000000..9e02d51f Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_24.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_25.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_25.png new file mode 100644 index 00000000..b0a55090 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_25.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_26.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_26.png new file mode 100644 index 00000000..c3e3f140 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_26.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_27.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_27.png new file mode 100644 index 00000000..f0c34e45 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_27.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_28.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_28.png new file mode 100644 index 00000000..cef2dac7 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_28.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_29.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_29.png new file mode 100644 index 00000000..ab55a99d Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_29.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_2a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_2a.png new file mode 100644 index 00000000..137583dd Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_2a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_2b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_2b.png new file mode 100644 index 00000000..f000d89d Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_2b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_2c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_2c.png new file mode 100644 index 00000000..b2230117 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_2c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_2d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_2d.png new file mode 100644 index 00000000..7b3bf021 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_2d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_2e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_2e.png new file mode 100644 index 00000000..b5b5409e Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_2e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_2f.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_2f.png new file mode 100644 index 00000000..d310d871 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_2f.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_30.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_30.png new file mode 100644 index 00000000..647a4c48 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_30.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_31.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_31.png new file mode 100644 index 00000000..aa43a2a5 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_31.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_32.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_32.png new file mode 100644 index 00000000..7d434bec Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_32.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_33.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_33.png new file mode 100644 index 00000000..5efa4646 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_33.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_34.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_34.png new file mode 100644 index 00000000..0581320b Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_34.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_35.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_35.png new file mode 100644 index 00000000..fd0d4ac7 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_35.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_36.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_36.png new file mode 100644 index 00000000..3e58fbdb Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_36.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_37.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_37.png new file mode 100644 index 00000000..331de831 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_37.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_38.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_38.png new file mode 100644 index 00000000..9540e45c Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_38.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_39.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_39.png new file mode 100644 index 00000000..90f9eea5 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_39.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_3a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_3a.png new file mode 100644 index 00000000..cbf5523b Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_3a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_3b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_3b.png new file mode 100644 index 00000000..c4e8bfb2 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_3b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_3c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_3c.png new file mode 100644 index 00000000..caac4e1e Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_3c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_3d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_3d.png new file mode 100644 index 00000000..fb8deaa6 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_3d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_3e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_3e.png new file mode 100644 index 00000000..aa32fe97 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_3e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_3f.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_3f.png new file mode 100644 index 00000000..f7d9c5fe Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_3f.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_40.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_40.png new file mode 100644 index 00000000..017c3090 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_40.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_41.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_41.png new file mode 100644 index 00000000..eacf25e8 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_41.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_42.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_42.png new file mode 100644 index 00000000..4ca8dd53 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_42.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_43.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_43.png new file mode 100644 index 00000000..e8292649 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_43.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_44.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_44.png new file mode 100644 index 00000000..fd604998 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_44.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_45.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_45.png new file mode 100644 index 00000000..136f42fb Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_45.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_46.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_46.png new file mode 100644 index 00000000..d27bcab1 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_46.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_47.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_47.png new file mode 100644 index 00000000..bf0f2e9c Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_47.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_48.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_48.png new file mode 100644 index 00000000..d2d9e5fd Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_48.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_49.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_49.png new file mode 100644 index 00000000..3ffa0197 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_49.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_4a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_4a.png new file mode 100644 index 00000000..261cb4de Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_4a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_4b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_4b.png new file mode 100644 index 00000000..2593a0b8 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_4b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_4c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_4c.png new file mode 100644 index 00000000..1c71068b Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_4c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_4d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_4d.png new file mode 100644 index 00000000..a0553f50 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_4d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_4e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_4e.png new file mode 100644 index 00000000..eb57cb44 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_4e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_4f.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_4f.png new file mode 100644 index 00000000..1db98744 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_4f.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_50.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_50.png new file mode 100644 index 00000000..7b450793 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_50.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_51.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_51.png new file mode 100644 index 00000000..195c6574 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_51.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_52.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_52.png new file mode 100644 index 00000000..65fca560 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_52.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_53.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_53.png new file mode 100644 index 00000000..d9bc6711 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_53.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_54.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_54.png new file mode 100644 index 00000000..85aedf47 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_54.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_55.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_55.png new file mode 100644 index 00000000..428fba80 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_55.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_56.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_56.png new file mode 100644 index 00000000..a5fa313d Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_56.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_57.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_57.png new file mode 100644 index 00000000..6cb063bf Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_57.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_58.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_58.png new file mode 100644 index 00000000..0f72fce1 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_58.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_59.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_59.png new file mode 100644 index 00000000..dbf2d857 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_59.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_5a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_5a.png new file mode 100644 index 00000000..2f9f2f2d Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_5a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_5b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_5b.png new file mode 100644 index 00000000..a39b2a96 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_5b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_5c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_5c.png new file mode 100644 index 00000000..d27e25ef Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_5c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_5d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_5d.png new file mode 100644 index 00000000..b938efdd Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_5d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_5e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_5e.png new file mode 100644 index 00000000..a49a4031 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_5e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_5f.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_5f.png new file mode 100644 index 00000000..700bd7bf Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_5f.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_60.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_60.png new file mode 100644 index 00000000..667dcc26 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_60.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_61.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_61.png new file mode 100644 index 00000000..d606dd53 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_61.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_62.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_62.png new file mode 100644 index 00000000..7cecc0a9 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_62.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_63.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_63.png new file mode 100644 index 00000000..2998aeb3 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_63.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_64.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_64.png new file mode 100644 index 00000000..9ca950e9 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_64.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_65.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_65.png new file mode 100644 index 00000000..423c244d Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_65.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_66.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_66.png new file mode 100644 index 00000000..ffc677d4 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_66.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_67.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_67.png new file mode 100644 index 00000000..5324a356 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_67.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_68.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_68.png new file mode 100644 index 00000000..2e2410d4 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_68.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_69.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_69.png new file mode 100644 index 00000000..d9f1ef77 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_69.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_6a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_6a.png new file mode 100644 index 00000000..3d460c17 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_6a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_6b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_6b.png new file mode 100644 index 00000000..3e8c7b01 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_6b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_6c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_6c.png new file mode 100644 index 00000000..3ffa0197 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_6c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_6d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_6d.png new file mode 100644 index 00000000..3c58cafc Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_6d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_6e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_6e.png new file mode 100644 index 00000000..5fa80bc9 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_6e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_6f.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_6f.png new file mode 100644 index 00000000..8cdf8d0a Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_6f.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_70.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_70.png new file mode 100644 index 00000000..f3ab3111 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_70.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_71.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_71.png new file mode 100644 index 00000000..07cfb197 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_71.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_72.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_72.png new file mode 100644 index 00000000..58674ecc Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_72.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_73.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_73.png new file mode 100644 index 00000000..1c34e89d Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_73.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_74.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_74.png new file mode 100644 index 00000000..42ef0573 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_74.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_75.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_75.png new file mode 100644 index 00000000..bb50db18 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_75.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_76.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_76.png new file mode 100644 index 00000000..b93ee7cf Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_76.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_77.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_77.png new file mode 100644 index 00000000..6940916b Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_77.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_78.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_78.png new file mode 100644 index 00000000..6aba4851 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_78.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_79.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_79.png new file mode 100644 index 00000000..d920fe11 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_79.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_7a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_7a.png new file mode 100644 index 00000000..45aa6c97 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_7a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_7b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_7b.png new file mode 100644 index 00000000..49ac515a Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_7b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_7c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_7c.png new file mode 100644 index 00000000..91d40a06 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_7c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_7d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_7d.png new file mode 100644 index 00000000..ef119247 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_7d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_7e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_7e.png new file mode 100644 index 00000000..9c1be1e5 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/17px/hdf_7e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_20.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_20.png new file mode 100644 index 00000000..ee99ff58 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_20.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_21.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_21.png new file mode 100644 index 00000000..3658b563 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_21.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_22.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_22.png new file mode 100644 index 00000000..c58aa463 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_22.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_23.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_23.png new file mode 100644 index 00000000..52cfc47a Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_23.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_24.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_24.png new file mode 100644 index 00000000..77432539 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_24.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_25.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_25.png new file mode 100644 index 00000000..6896b4ea Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_25.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_26.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_26.png new file mode 100644 index 00000000..1b10a840 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_26.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_27.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_27.png new file mode 100644 index 00000000..9cbc7ec1 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_27.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_28.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_28.png new file mode 100644 index 00000000..cc5307f7 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_28.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_29.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_29.png new file mode 100644 index 00000000..f59088bd Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_29.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_2a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_2a.png new file mode 100644 index 00000000..07358c01 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_2a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_2b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_2b.png new file mode 100644 index 00000000..f680f96c Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_2b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_2c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_2c.png new file mode 100644 index 00000000..48a77223 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_2c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_2d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_2d.png new file mode 100644 index 00000000..7e01a949 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_2d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_2e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_2e.png new file mode 100644 index 00000000..732ae829 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_2e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_2f.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_2f.png new file mode 100644 index 00000000..9457afdc Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_2f.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_30.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_30.png new file mode 100644 index 00000000..98393ccb Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_30.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_31.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_31.png new file mode 100644 index 00000000..ef1912fa Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_31.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_32.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_32.png new file mode 100644 index 00000000..7fb07589 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_32.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_33.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_33.png new file mode 100644 index 00000000..e1f00e0e Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_33.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_34.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_34.png new file mode 100644 index 00000000..0854fb51 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_34.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_35.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_35.png new file mode 100644 index 00000000..4eaca38d Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_35.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_36.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_36.png new file mode 100644 index 00000000..d5a28410 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_36.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_37.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_37.png new file mode 100644 index 00000000..eede7d34 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_37.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_38.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_38.png new file mode 100644 index 00000000..4ceaf7ef Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_38.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_39.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_39.png new file mode 100644 index 00000000..28906735 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_39.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_3a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_3a.png new file mode 100644 index 00000000..8024d0af Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_3a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_3b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_3b.png new file mode 100644 index 00000000..4a1df19f Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_3b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_3c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_3c.png new file mode 100644 index 00000000..7cf9beff Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_3c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_3d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_3d.png new file mode 100644 index 00000000..2a4cbb9c Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_3d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_3e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_3e.png new file mode 100644 index 00000000..644ebbd7 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_3e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_3f.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_3f.png new file mode 100644 index 00000000..24685076 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_3f.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_40.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_40.png new file mode 100644 index 00000000..b010d414 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_40.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_41.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_41.png new file mode 100644 index 00000000..64100990 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_41.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_42.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_42.png new file mode 100644 index 00000000..545b78df Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_42.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_43.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_43.png new file mode 100644 index 00000000..2ee2e272 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_43.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_44.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_44.png new file mode 100644 index 00000000..4037a4c3 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_44.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_45.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_45.png new file mode 100644 index 00000000..7b435ea0 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_45.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_46.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_46.png new file mode 100644 index 00000000..7ec2fc99 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_46.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_47.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_47.png new file mode 100644 index 00000000..952a1d9c Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_47.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_48.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_48.png new file mode 100644 index 00000000..cd93d022 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_48.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_49.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_49.png new file mode 100644 index 00000000..5e64cc10 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_49.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_4a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_4a.png new file mode 100644 index 00000000..321174e3 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_4a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_4b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_4b.png new file mode 100644 index 00000000..6ce47556 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_4b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_4c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_4c.png new file mode 100644 index 00000000..addd14dc Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_4c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_4d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_4d.png new file mode 100644 index 00000000..d2e30f25 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_4d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_4e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_4e.png new file mode 100644 index 00000000..dde664cf Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_4e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_4f.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_4f.png new file mode 100644 index 00000000..412ba831 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_4f.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_50.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_50.png new file mode 100644 index 00000000..d07165c2 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_50.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_51.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_51.png new file mode 100644 index 00000000..2e00e2a9 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_51.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_52.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_52.png new file mode 100644 index 00000000..16aa811c Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_52.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_53.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_53.png new file mode 100644 index 00000000..18778631 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_53.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_54.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_54.png new file mode 100644 index 00000000..bedfe168 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_54.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_55.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_55.png new file mode 100644 index 00000000..016ec385 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_55.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_56.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_56.png new file mode 100644 index 00000000..7879c505 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_56.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_57.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_57.png new file mode 100644 index 00000000..94952b5b Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_57.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_58.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_58.png new file mode 100644 index 00000000..b8af859f Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_58.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_59.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_59.png new file mode 100644 index 00000000..e049481b Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_59.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_5a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_5a.png new file mode 100644 index 00000000..dc4324da Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_5a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_5b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_5b.png new file mode 100644 index 00000000..047036e6 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_5b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_5c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_5c.png new file mode 100644 index 00000000..6eb1bcbc Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_5c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_5d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_5d.png new file mode 100644 index 00000000..ca46194a Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_5d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_5e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_5e.png new file mode 100644 index 00000000..4766a031 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_5e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_5f.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_5f.png new file mode 100644 index 00000000..ab07bee3 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_5f.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_60.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_60.png new file mode 100644 index 00000000..ed3d01ae Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_60.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_61.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_61.png new file mode 100644 index 00000000..14fbcabf Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_61.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_62.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_62.png new file mode 100644 index 00000000..d6682aa2 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_62.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_63.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_63.png new file mode 100644 index 00000000..e08b19c4 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_63.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_64.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_64.png new file mode 100644 index 00000000..e0fb32db Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_64.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_65.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_65.png new file mode 100644 index 00000000..f87b3036 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_65.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_66.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_66.png new file mode 100644 index 00000000..d6580061 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_66.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_67.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_67.png new file mode 100644 index 00000000..5c56378c Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_67.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_68.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_68.png new file mode 100644 index 00000000..1d0a82df Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_68.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_69.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_69.png new file mode 100644 index 00000000..d05d212d Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_69.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_6a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_6a.png new file mode 100644 index 00000000..8a6a9d0e Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_6a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_6b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_6b.png new file mode 100644 index 00000000..cca1092c Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_6b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_6c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_6c.png new file mode 100644 index 00000000..5e64cc10 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_6c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_6d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_6d.png new file mode 100644 index 00000000..c2bf3900 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_6d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_6e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_6e.png new file mode 100644 index 00000000..6108d173 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_6e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_6f.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_6f.png new file mode 100644 index 00000000..76ea728d Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_6f.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_70.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_70.png new file mode 100644 index 00000000..7f6d79cd Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_70.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_71.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_71.png new file mode 100644 index 00000000..9ad16dc1 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_71.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_72.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_72.png new file mode 100644 index 00000000..b80dc656 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_72.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_73.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_73.png new file mode 100644 index 00000000..e2a8ac0b Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_73.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_74.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_74.png new file mode 100644 index 00000000..58ecb68d Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_74.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_75.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_75.png new file mode 100644 index 00000000..96a2f37a Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_75.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_76.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_76.png new file mode 100644 index 00000000..449ed5c8 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_76.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_77.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_77.png new file mode 100644 index 00000000..d5719d84 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_77.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_78.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_78.png new file mode 100644 index 00000000..68efd4d9 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_78.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_79.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_79.png new file mode 100644 index 00000000..d138722c Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_79.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_7a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_7a.png new file mode 100644 index 00000000..9c7b7668 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_7a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_7b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_7b.png new file mode 100644 index 00000000..33cf85de Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_7b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_7c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_7c.png new file mode 100644 index 00000000..d1f0ccfa Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_7c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_7d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_7d.png new file mode 100644 index 00000000..45a49fdd Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_7d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_7e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_7e.png new file mode 100644 index 00000000..6a9bdf14 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/25px/hdf_7e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_20.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_20.png new file mode 100644 index 00000000..7ac4dcab Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_20.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_21.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_21.png new file mode 100644 index 00000000..243abc35 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_21.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_22.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_22.png new file mode 100644 index 00000000..0161b074 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_22.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_23.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_23.png new file mode 100644 index 00000000..96ee76ba Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_23.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_24.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_24.png new file mode 100644 index 00000000..6243c6e2 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_24.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_25.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_25.png new file mode 100644 index 00000000..310ada4d Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_25.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_26.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_26.png new file mode 100644 index 00000000..d591c9d8 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_26.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_27.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_27.png new file mode 100644 index 00000000..30ac7f93 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_27.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_28.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_28.png new file mode 100644 index 00000000..8976cd14 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_28.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_29.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_29.png new file mode 100644 index 00000000..42c45c64 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_29.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_2a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_2a.png new file mode 100644 index 00000000..9cebf8a8 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_2a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_2b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_2b.png new file mode 100644 index 00000000..27193c61 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_2b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_2c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_2c.png new file mode 100644 index 00000000..47cf1f29 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_2c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_2d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_2d.png new file mode 100644 index 00000000..d7495602 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_2d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_2e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_2e.png new file mode 100644 index 00000000..e8e23a98 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_2e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_2f.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_2f.png new file mode 100644 index 00000000..fcd595e5 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_2f.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_30.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_30.png new file mode 100644 index 00000000..14147b3c Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_30.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_31.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_31.png new file mode 100644 index 00000000..21bfd7b8 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_31.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_32.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_32.png new file mode 100644 index 00000000..469cf357 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_32.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_33.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_33.png new file mode 100644 index 00000000..e8961372 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_33.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_34.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_34.png new file mode 100644 index 00000000..a90f0857 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_34.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_35.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_35.png new file mode 100644 index 00000000..6b0244b7 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_35.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_36.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_36.png new file mode 100644 index 00000000..4e743b66 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_36.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_37.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_37.png new file mode 100644 index 00000000..896ca7e8 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_37.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_38.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_38.png new file mode 100644 index 00000000..835fc15b Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_38.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_39.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_39.png new file mode 100644 index 00000000..c0070170 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_39.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_3a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_3a.png new file mode 100644 index 00000000..0899bef2 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_3a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_3b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_3b.png new file mode 100644 index 00000000..93bf9ee1 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_3b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_3c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_3c.png new file mode 100644 index 00000000..3fecdf35 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_3c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_3d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_3d.png new file mode 100644 index 00000000..6c48699d Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_3d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_3e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_3e.png new file mode 100644 index 00000000..fbbe4c85 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_3e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_3f.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_3f.png new file mode 100644 index 00000000..926d0218 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_3f.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_40.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_40.png new file mode 100644 index 00000000..2458a680 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_40.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_41.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_41.png new file mode 100644 index 00000000..58298847 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_41.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_42.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_42.png new file mode 100644 index 00000000..839d9198 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_42.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_43.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_43.png new file mode 100644 index 00000000..21c6b503 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_43.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_44.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_44.png new file mode 100644 index 00000000..95663db8 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_44.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_45.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_45.png new file mode 100644 index 00000000..92fcc862 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_45.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_46.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_46.png new file mode 100644 index 00000000..39472fb3 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_46.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_47.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_47.png new file mode 100644 index 00000000..558de75a Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_47.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_48.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_48.png new file mode 100644 index 00000000..ed67a483 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_48.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_49.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_49.png new file mode 100644 index 00000000..7d5a0a10 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_49.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_4a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_4a.png new file mode 100644 index 00000000..a841eb4c Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_4a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_4b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_4b.png new file mode 100644 index 00000000..750672a6 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_4b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_4c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_4c.png new file mode 100644 index 00000000..55bafa19 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_4c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_4d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_4d.png new file mode 100644 index 00000000..aa57dfb2 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_4d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_4e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_4e.png new file mode 100644 index 00000000..4bd92c49 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_4e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_4f.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_4f.png new file mode 100644 index 00000000..22262750 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_4f.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_50.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_50.png new file mode 100644 index 00000000..803f0092 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_50.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_51.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_51.png new file mode 100644 index 00000000..83ad4237 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_51.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_52.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_52.png new file mode 100644 index 00000000..36ebb0eb Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_52.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_53.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_53.png new file mode 100644 index 00000000..0d8585a7 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_53.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_54.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_54.png new file mode 100644 index 00000000..9da71a31 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_54.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_55.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_55.png new file mode 100644 index 00000000..ba4df667 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_55.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_56.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_56.png new file mode 100644 index 00000000..316ad34a Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_56.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_57.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_57.png new file mode 100644 index 00000000..bb1f7572 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_57.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_58.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_58.png new file mode 100644 index 00000000..058cc755 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_58.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_59.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_59.png new file mode 100644 index 00000000..db94ca98 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_59.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_5a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_5a.png new file mode 100644 index 00000000..9e786f26 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_5a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_5b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_5b.png new file mode 100644 index 00000000..7b83123b Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_5b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_5c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_5c.png new file mode 100644 index 00000000..22a58fd7 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_5c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_5d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_5d.png new file mode 100644 index 00000000..42fd6b02 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_5d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_5e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_5e.png new file mode 100644 index 00000000..8cc04ec1 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_5e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_5f.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_5f.png new file mode 100644 index 00000000..bc0745f5 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_5f.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_60.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_60.png new file mode 100644 index 00000000..404a5b9e Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_60.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_61.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_61.png new file mode 100644 index 00000000..1f9c6232 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_61.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_62.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_62.png new file mode 100644 index 00000000..ac011d88 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_62.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_63.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_63.png new file mode 100644 index 00000000..201c022f Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_63.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_64.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_64.png new file mode 100644 index 00000000..27f9383c Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_64.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_65.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_65.png new file mode 100644 index 00000000..8bdee2d9 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_65.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_66.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_66.png new file mode 100644 index 00000000..6f4391bb Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_66.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_67.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_67.png new file mode 100644 index 00000000..7550088e Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_67.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_68.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_68.png new file mode 100644 index 00000000..5eaf5307 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_68.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_69.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_69.png new file mode 100644 index 00000000..6cc95a59 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_69.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_6a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_6a.png new file mode 100644 index 00000000..97a69be3 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_6a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_6b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_6b.png new file mode 100644 index 00000000..7e74403f Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_6b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_6c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_6c.png new file mode 100644 index 00000000..db76ae24 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_6c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_6d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_6d.png new file mode 100644 index 00000000..8e1e0534 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_6d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_6e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_6e.png new file mode 100644 index 00000000..d9624115 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_6e.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_6f.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_6f.png new file mode 100644 index 00000000..7334aa6d Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_6f.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_70.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_70.png new file mode 100644 index 00000000..a9060ece Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_70.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_71.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_71.png new file mode 100644 index 00000000..32b47729 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_71.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_72.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_72.png new file mode 100644 index 00000000..88ffb456 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_72.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_73.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_73.png new file mode 100644 index 00000000..5fd89f23 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_73.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_74.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_74.png new file mode 100644 index 00000000..d313c644 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_74.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_75.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_75.png new file mode 100644 index 00000000..5b0417a0 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_75.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_76.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_76.png new file mode 100644 index 00000000..781fa1bd Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_76.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_77.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_77.png new file mode 100644 index 00000000..9f4430b5 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_77.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_78.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_78.png new file mode 100644 index 00000000..ebd20d7f Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_78.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_79.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_79.png new file mode 100644 index 00000000..ce4f0e23 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_79.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_7a.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_7a.png new file mode 100644 index 00000000..656a0d0b Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_7a.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_7b.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_7b.png new file mode 100644 index 00000000..58b0964b Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_7b.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_7c.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_7c.png new file mode 100644 index 00000000..f928379a Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_7c.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_7d.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_7d.png new file mode 100644 index 00000000..441c888a Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_7d.png differ diff --git a/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_7e.png b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_7e.png new file mode 100644 index 00000000..33d329e0 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/extra_fonts/34px/hdf_7e.png differ diff --git a/mods/homedecor_modpack/signs_lib/init.lua b/mods/homedecor_modpack/signs_lib/init.lua new file mode 100644 index 00000000..5cec8da7 --- /dev/null +++ b/mods/homedecor_modpack/signs_lib/init.lua @@ -0,0 +1,1078 @@ +-- This mod provides the visible text on signs library used by Home Decor +-- and perhaps other mods at some point in the future. Forked from thexyz's/ +-- PilzAdam's original text-on-signs mod and rewritten by Vanessa Ezekowitz +-- and Diego Martinez + +signs_lib = {} + +signs_lib.modpath = minetest.get_modpath("signs_lib") +signs_lib.intllib_modpath = minetest.get_modpath("intllib") + +signs_lib.wall_sign_model = { + nodebox = { + type = "fixed", + fixed = {-0.4375, -0.25, 0.4375, 0.4375, 0.375, 0.5} + }, + textpos = { + {delta = {x = 0, y = 0.07, z = 0.436}, yaw = 0}, + {delta = {x = 0.436, y = 0.07, z = 0 }, yaw = math.pi / -2}, + {delta = {x = 0, y = 0.07, z = -0.436}, yaw = math.pi}, + {delta = {x = -0.436, y = 0.07, z = 0 }, yaw = math.pi / 2}, + } +} + +signs_lib.yard_sign_model = { + nodebox = { + type = "fixed", + fixed = { + {-0.4375, -0.25, -0.0625, 0.4375, 0.375, 0}, + {-0.0625, -0.5, -0.0625, 0.0625, -0.1875, 0}, + } + }, + textpos = { + {delta = {x = 0, y = 0.07, z = -0.063}, yaw = 0}, + {delta = {x = -0.063, y = 0.07, z = 0 }, yaw = math.pi / -2}, + {delta = {x = 0, y = 0.07, z = 0.063}, yaw = math.pi}, + {delta = {x = 0.063, y = 0.07, z = 0 }, yaw = math.pi / 2}, + } +} + +signs_lib.hanging_sign_model = { + nodebox = { + type = "fixed", + fixed = { + {-0.4375, -0.3125, -0.0625, 0.4375, 0.3125, 0}, + {-0.4375, 0.25, -0.03125, 0.4375, 0.5, -0.03125}, + } + }, + textpos = { + {delta = {x = 0, y = -0.02, z = -0.063}, yaw = 0}, + {delta = {x = -0.063, y = -0.02, z = 0 }, yaw = math.pi / -2}, + {delta = {x = 0, y = -0.02, z = 0.063}, yaw = math.pi}, + {delta = {x = 0.063, y = -0.02, z = 0 }, yaw = math.pi / 2}, + } +} + +signs_lib.sign_post_model = { + nodebox = { + type = "fixed", + fixed = { + {-0.4375, -0.25, -0.1875, 0.4375, 0.375, -0.125}, + {-0.125, -0.5, -0.125, 0.125, 0.5, 0.125}, + } + }, + textpos = { + {delta = {x = 0, y = 0.07, z = -0.188}, yaw = 0}, + {delta = {x = -0.188, y = 0.07, z = 0 }, yaw = math.pi / -2}, + {delta = {x = 0, y = 0.07, z = 0.188 }, yaw = math.pi}, + {delta = {x = 0.188, y = 0.07, z = 0 }, yaw = math.pi / 2}, + } +} + +local S +if signs_lib.intllib_modpath then + dofile(signs_lib.intllib_modpath.."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) +else + S = function ( s ) return s end +end +signs_lib.gettext = S + +-- the list of standard sign nodes + +signs_lib.sign_node_list = { + "default:sign_wall", + "signs:sign_yard", + "signs:sign_hanging", + "signs:sign_wall_green", + "signs:sign_wall_yellow", + "signs:sign_wall_red", + "signs:sign_wall_white_red", + "signs:sign_wall_white_black", + "locked_sign:sign_wall_locked" +} + +--table copy + +function signs_lib.table_copy(t) + local nt = { }; + for k, v in pairs(t) do + if type(v) == "table" then + nt[k] = signs_lib.table_copy(v) + else + nt[k] = v + end + end + return nt +end + +-- infinite stacks + +if minetest.get_modpath("unified_inventory") or not minetest.setting_getbool("creative_mode") then + signs_lib.expect_infinite_stacks = false +else + signs_lib.expect_infinite_stacks = true +end + +-- CONSTANTS + +local MP = minetest.get_modpath("signs_lib") + +-- Used by `build_char_db' to locate the file. +local FONT_FMT = "%s/hdf_%02x.png" + +-- Simple texture name for building text texture. +local FONT_FMT_SIMPLE = "hdf_%02x.png" + +-- Path to the textures. +local TP = MP.."/textures" + +local TEXT_SCALE = {x=0.8, y=0.5} + +-- Lots of overkill here. KISS advocates, go away, shoo! ;) -- kaeza + +local PNG_HDR = string.char(0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A) + +-- Read the image size from a PNG file. +-- Returns image_w, image_h. +-- Only the LSB is read from each field! +local function read_char_size(c) + local filename = FONT_FMT:format(TP, c) + local f = io.open(filename, "rb") + f:seek("set", 0x0) + local hdr = f:read(8) + if hdr ~= PNG_HDR then + f:close() + return + end + f:seek("set", 0x13) + local ws = f:read(1) + f:seek("set", 0x17) + local hs = f:read(1) + f:close() + return ws:byte(), hs:byte() +end + +-- Set by build_char_db() +local LINE_HEIGHT +local SIGN_WIDTH + +-- Size of the canvas, in characters. +-- Please note that CHARS_PER_LINE is multiplied by the average character +-- width to get the total width of the canvas, so for proportional fonts, +-- either more or fewer characters may fit on a line. +local CHARS_PER_LINE = 30 +local NUMBER_OF_LINES = 6 + +-- 6 rows, max 80 chars per, plus a bit of fudge to +-- avoid excess trimming (e.g. due to color codes) + +local MAX_INPUT_CHARS = 600 + +-- This holds the individual character widths. +-- Indexed by the actual character (e.g. charwidth["A"]) +local charwidth = { } + +-- File to cache the font size to. +local CHARDB_FILE = minetest.get_worldpath().."/signs_lib_chardb" + +-- helper functions to trim sign text input/output + +local function trim_input(text) + local txt_len = string.len(text) + text_trimmed = string.sub(text, 1, math.min(MAX_INPUT_CHARS, txt_len)) + return text_trimmed +end + +-- Returns true if any file differs from cached one. +local function check_random_chars() + for i = 1, 5 do + local c = math.random(32, 126) + local w, h = read_char_size(c) + + -- File is not a PNG... wut? + if not (w and h) then return true end + + local ch = string.char(c) + if (not charwidth[ch]) -- Char is not cached. + or (charwidth[ch] ~= w) -- Width differs. + or (LINE_HEIGHT and (LINE_HEIGHT ~= h)) -- Height differs + then + -- In any case, file is different; rebuild cache. + return true + end + end + -- OK, our superficial check passed. If the textures are messed up, + -- it's not our problem. + return false +end + +local function build_char_db() + + LINE_HEIGHT = nil + SIGN_WIDTH = nil + + -- To calculate average char width. + local total_width = 0 + local char_count = 0 + + -- Try to load cached data to avoid heavy disk I/O. + + local cdbf = io.open(CHARDB_FILE, "rt") + + if cdbf then + minetest.log("info", "[signs_lib] "..S("Reading cached character database.")) + for line in cdbf:lines() do + local ch, w = line:match("(0x[0-9A-Fa-f]+)%s+([0-9][0-9]*)") + if ch and w then + local c = tonumber(ch) + w = tonumber(w) + if c and w then + if c == 0 then + LINE_HEIGHT = w + elseif (c >= 32) and (c < 127) then + charwidth[string.char(c)] = w + total_width = total_width + w + char_count = char_count + 1 + end + end + end + end + cdbf:close() + if LINE_HEIGHT then + -- Check some random characters to see if the file on disk differs + -- from the cached one. If so, then ditch cached data and rebuild + -- (font probably was changed). + if check_random_chars() then + LINE_HEIGHT = nil + minetest.log("info", "[signs_lib] " + ..S("Font seems to have changed. Rebuilding cache.") + ) + end + else + minetest.log("warning", "[signs_lib] " + ..S("Could not find font line height in cached DB. Trying brute force.") + ) + end + end + + if not LINE_HEIGHT then + -- OK, something went wrong... try brute force loading from texture files. + + charwidth = { } + + total_width = 0 + char_count = 0 + + for c = 32, 126 do + local w, h = read_char_size(c) + if w and h then + local ch = string.char(c) + charwidth[ch] = w + total_width = total_width + w + char_count = char_count + 1 + if not LINE_HEIGHT then LINE_HEIGHT = h end + end + end + + if not LINE_HEIGHT then + error("Could not find font line height.") + end + + end + + -- XXX: Is there a better way to calc this? + SIGN_WIDTH = math.floor((total_width / char_count) * CHARS_PER_LINE) + + -- Try to save cached list back to disk. + + local e -- Note: `cdbf' is already declared local above. + cdbf, e = io.open(CHARDB_FILE, "wt") + if not cdbf then + minetest.log("warning", "[signs_lib] Could not save cached char DB: "..(e or "")) + return + end + + cdbf:write(("0x00 %d\n"):format(LINE_HEIGHT)) + for c = 32, 126 do + local w = charwidth[string.char(c)] + if w then + cdbf:write(("0x%02X %d\n"):format(c, w)) + end + end + cdbf:close() + +end + +local sign_groups = {choppy=2, dig_immediate=2} + +local fences_with_sign = { } + +-- some local helper functions + +local function split_lines_and_words_old(text) + local lines = { } + local line = { } + if not text then return end + for word in text:gmatch("%S+") do + if word == "|" then + table.insert(lines, line) + if #lines >= NUMBER_OF_LINES then break end + line = { } + elseif word == "\\|" then + table.insert(line, "|") + else + table.insert(line, word) + end + end + table.insert(lines, line) + return lines +end + +local function split_lines_and_words(text) + if not text then return end + local lines = { } + for _, line in ipairs(text:split("\n")) do + table.insert(lines, line:split(" ")) + end + return lines +end + +local math_max = math.max + +local function fill_line(x, y, w, c) + c = c or "0" + local tex = { } + for xx = 0, math.max(0, w-16), 16 do + table.insert(tex, (":%d,%d=slc_%s.png"):format(x + xx, y, c)) + end + if ((w % 16) > 0) and (w > 16) then + table.insert(tex, (":%d,%d=slc_%s.png"):format(x + w - 16, y, c)) + end + return table.concat(tex) +end + +local function make_line_texture(line, lineno) + + local width = 0 + local maxw = 0 + + local words = { } + + local cur_color = 0 + + -- We check which chars are available here. + for word_i, word in ipairs(line) do + local chars = { } + local ch_offs = 0 + local word_l = #word + local i = 1 + while i <= word_l do + local c = word:sub(i, i) + if c == "#" then + local cc = tonumber(word:sub(i+1, i+1), 16) + if cc then + i = i + 1 + cur_color = cc + end + else + local w = charwidth[c] + if w then + width = width + w + 1 + if width >= (SIGN_WIDTH - charwidth[" "]) then + width = 0 + else + maxw = math_max(width, maxw) + end + if #chars < MAX_INPUT_CHARS then + table.insert(chars, { + off=ch_offs, + tex=FONT_FMT_SIMPLE:format(c:byte()), + col=("%X"):format(cur_color), + }) + end + ch_offs = ch_offs + w + end + end + i = i + 1 + end + width = width + charwidth[" "] + 1 + maxw = math_max(width, maxw) + table.insert(words, { chars=chars, w=ch_offs }) + end + + -- Okay, we actually build the "line texture" here. + + local texture = { } + + local start_xpos = math.floor((SIGN_WIDTH - maxw) / 2) + + local xpos = start_xpos + local ypos = (LINE_HEIGHT * lineno) + + cur_color = nil + + for word_i, word in ipairs(words) do + local xoffs = (xpos - start_xpos) + if (xoffs > 0) and ((xoffs + word.w) > maxw) then + table.insert(texture, fill_line(xpos, ypos, maxw, "n")) + xpos = start_xpos + ypos = ypos + LINE_HEIGHT + lineno = lineno + 1 + if lineno >= NUMBER_OF_LINES then break end + table.insert(texture, fill_line(xpos, ypos, maxw, cur_color)) + end + for ch_i, ch in ipairs(word.chars) do + if ch.col ~= cur_color then + cur_color = ch.col + table.insert(texture, fill_line(xpos + ch.off, ypos, maxw, cur_color)) + end + table.insert(texture, (":%d,%d=%s"):format(xpos + ch.off, ypos, ch.tex)) + end + table.insert(texture, (":%d,%d=hdf_20.png"):format(xpos + word.w, ypos)) + xpos = xpos + word.w + charwidth[" "] + if xpos >= (SIGN_WIDTH + charwidth[" "]) then break end + end + + table.insert(texture, fill_line(xpos, ypos, maxw, "n")) + table.insert(texture, fill_line(start_xpos, ypos + LINE_HEIGHT, maxw, "n")) + + return table.concat(texture), lineno +end + +local function make_sign_texture(lines) + local texture = { ("[combine:%dx%d"):format(SIGN_WIDTH, LINE_HEIGHT * NUMBER_OF_LINES) } + local lineno = 0 + for i = 1, #lines do + if lineno >= NUMBER_OF_LINES then break end + local linetex, ln = make_line_texture(lines[i], lineno) + table.insert(texture, linetex) + lineno = ln + 1 + end + table.insert(texture, "^[makealpha:0,0,0") + return table.concat(texture, "") +end + +local function set_obj_text(obj, text, new) + local split = new and split_lines_and_words or split_lines_and_words_old + obj:set_properties({ + textures={make_sign_texture(split(text))}, + visual_size = TEXT_SCALE, + }) +end + +signs_lib.construct_sign = function(pos, locked) + local meta = minetest.get_meta(pos) + meta:set_string( + "formspec", + "size[6,4]".. + "textarea[0,-0.3;6.5,3;text;;${text}]".. + "button_exit[2,3.4;2,1;ok;Write]".. + "background[-0.5,-0.5;7,5;bg_signs_lib.jpg]") + meta:set_string("infotext", "") +end + +signs_lib.destruct_sign = function(pos) + local objects = minetest.get_objects_inside_radius(pos, 0.5) + for _, v in ipairs(objects) do + local e = v:get_luaentity() + if e and e.name == "signs:text" then + v:remove() + end + end +end + +local function make_infotext(text) + text = trim_input(text) + local lines = split_lines_and_words(text) or {} + local lines2 = { } + for _, line in ipairs(lines) do + table.insert(lines2, (table.concat(line, " "):gsub("#[0-9a-fA-F]", ""):gsub("##", "#"))) + end + return table.concat(lines2, "\n") +end + +signs_lib.update_sign = function(pos, fields, owner) + local meta = minetest.get_meta(pos) + + local new + if fields then + + fields.text = trim_input(fields.text) + + local ownstr = "" + if owner then ownstr = "Locked sign, owned by "..owner.."\n" end + + meta:set_string("infotext", ownstr..make_infotext(fields.text).." ") + meta:set_string("text", fields.text) + meta:set_int("__signslib_new_format", 1) + new = true + else + new = (meta:get_int("__signslib_new_format") ~= 0) + end + local text = meta:get_string("text") + if text == nil then return end + local objects = minetest.get_objects_inside_radius(pos, 0.5) + local found + for _, v in ipairs(objects) do + local e = v:get_luaentity() + if e and e.name == "signs:text" then + if found then + v:remove() + else + set_obj_text(v, text, new) + found = true + end + end + end + if found then + return + end + + -- if there is no entity + local sign_info + local signnode = minetest.get_node(pos) + if signnode.name == "signs:sign_yard" then + sign_info = signs_lib.yard_sign_model.textpos[minetest.get_node(pos).param2 + 1] + elseif signnode.name == "signs:sign_hanging" then + sign_info = signs_lib.hanging_sign_model.textpos[minetest.get_node(pos).param2 + 1] + elseif string.find(signnode.name, "sign_wall") then + sign_info = signs_lib.wall_sign_model.textpos[minetest.get_node(pos).param2 + 1] + else -- ...it must be a sign on a fence post. + sign_info = signs_lib.sign_post_model.textpos[minetest.get_node(pos).param2 + 1] + end + if sign_info == nil then + return + end + local text = minetest.add_entity({x = pos.x + sign_info.delta.x, + y = pos.y + sign_info.delta.y, + z = pos.z + sign_info.delta.z}, "signs:text") + text:setyaw(sign_info.yaw) +end + +-- What kind of sign do we need to place, anyway? + +function signs_lib.determine_sign_type(itemstack, placer, pointed_thing, locked) + local name + name = minetest.get_node(pointed_thing.under).name + if fences_with_sign[name] then + if minetest.is_protected(pointed_thing.under, placer:get_player_name()) then + minetest.record_protection_violation(pointed_thing.under, + placer:get_player_name()) + return itemstack + end + else + name = minetest.get_node(pointed_thing.above).name + local def = minetest.registered_nodes[name] + if not def.buildable_to then + return itemstack + end + if minetest.is_protected(pointed_thing.above, placer:get_player_name()) then + minetest.record_protection_violation(pointed_thing.above, + placer:get_player_name()) + return itemstack + end + end + + local node=minetest.get_node(pointed_thing.under) + + if minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].on_rightclick then + return minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, placer, itemstack) + else + local above = pointed_thing.above + local under = pointed_thing.under + local dir = {x = under.x - above.x, + y = under.y - above.y, + z = under.z - above.z} + + local wdir = minetest.dir_to_wallmounted(dir) + + local placer_pos = placer:getpos() + if placer_pos then + dir = { + x = above.x - placer_pos.x, + y = above.y - placer_pos.y, + z = above.z - placer_pos.z + } + end + + local fdir = minetest.dir_to_facedir(dir) + + local pt_name = minetest.get_node(under).name + print(dump(pt_name)) + local signname = itemstack:get_name() + + if fences_with_sign[pt_name] and signname == "default:sign_wall" then + minetest.add_node(under, {name = fences_with_sign[pt_name], param2 = fdir}) + elseif wdir == 0 and signname == "default:sign_wall" then + minetest.add_node(above, {name = "signs:sign_hanging", param2 = fdir}) + elseif wdir == 1 and signname == "default:sign_wall" then + minetest.add_node(above, {name = "signs:sign_yard", param2 = fdir}) + else -- it must be a wooden or metal wall sign. + minetest.add_node(above, {name = signname, param2 = fdir}) + if locked then + local meta = minetest.get_meta(above) + local owner = placer:get_player_name() + meta:set_string("owner", owner) + end + end + + if not signs_lib.expect_infinite_stacks then + itemstack:take_item() + end + return itemstack + end +end + +function signs_lib.receive_fields(pos, formname, fields, sender, lock) + if minetest.is_protected(pos, sender:get_player_name()) then + minetest.record_protection_violation(pos, + sender:get_player_name()) + return + end + lockstr = "" + if lock then lockstr = "locked " end + if fields and fields.text and fields.ok then + minetest.log("action", S("%s wrote \"%s\" to "..lockstr.."sign at %s"):format( + (sender:get_player_name() or ""), + fields.text, + minetest.pos_to_string(pos) + )) + if lock then + signs_lib.update_sign(pos, fields, sender:get_player_name()) + else + signs_lib.update_sign(pos, fields) + end + end +end + +minetest.register_node(":default:sign_wall", { + description = S("Sign"), + inventory_image = "default_sign_wall.png", + wield_image = "default_sign_wall.png", + node_placement_prediction = "", + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + drawtype = "nodebox", + node_box = signs_lib.wall_sign_model.nodebox, + tiles = {"signs_top.png", "signs_bottom.png", "signs_side.png", "signs_side.png", "signs_back.png", "signs_front.png"}, + groups = sign_groups, + + on_place = function(itemstack, placer, pointed_thing) + return signs_lib.determine_sign_type(itemstack, placer, pointed_thing) + end, + on_construct = function(pos) + signs_lib.construct_sign(pos) + end, + on_destruct = function(pos) + signs_lib.destruct_sign(pos) + end, + on_receive_fields = function(pos, formname, fields, sender) + signs_lib.receive_fields(pos, formname, fields, sender) + end, + on_punch = function(pos, node, puncher) + signs_lib.update_sign(pos) + end, +}) + +minetest.register_node(":signs:sign_yard", { + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + drawtype = "nodebox", + node_box = signs_lib.yard_sign_model.nodebox, + selection_box = { + type = "fixed", + fixed = {-0.4375, -0.5, -0.0625, 0.4375, 0.375, 0} + }, + tiles = {"signs_top.png", "signs_bottom.png", "signs_side.png", "signs_side.png", "signs_back.png", "signs_front.png"}, + groups = {choppy=2, dig_immediate=2}, + drop = "default:sign_wall", + + on_construct = function(pos) + signs_lib.construct_sign(pos) + end, + on_destruct = function(pos) + signs_lib.destruct_sign(pos) + end, + on_receive_fields = function(pos, formname, fields, sender) + signs_lib.receive_fields(pos, formname, fields, sender) + end, + on_punch = function(pos, node, puncher) + signs_lib.update_sign(pos) + end, +}) + +minetest.register_node(":signs:sign_hanging", { + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + drawtype = "nodebox", + node_box = signs_lib.hanging_sign_model.nodebox, + selection_box = { + type = "fixed", + fixed = {-0.45, -0.275, -0.049, 0.45, 0.5, 0.049} + }, + tiles = { + "signs_hanging_top.png", + "signs_hanging_bottom.png", + "signs_hanging_side.png", + "signs_hanging_side.png", + "signs_hanging_back.png", + "signs_hanging_front.png" + }, + groups = {choppy=2, dig_immediate=2}, + drop = "default:sign_wall", + + on_construct = function(pos) + signs_lib.construct_sign(pos) + end, + on_destruct = function(pos) + signs_lib.destruct_sign(pos) + end, + on_receive_fields = function(pos, formname, fields, sender) + signs_lib.receive_fields(pos, formname, fields, sender) + end, + on_punch = function(pos, node, puncher) + signs_lib.update_sign(pos) + end, +}) + +minetest.register_node(":signs:sign_post", { + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + drawtype = "nodebox", + node_box = signs_lib.sign_post_model.nodebox, + tiles = { + "signs_post_top.png", + "signs_post_bottom.png", + "signs_post_side.png", + "signs_post_side.png", + "signs_post_back.png", + "signs_post_front.png", + }, + groups = {choppy=2, dig_immediate=2}, + drop = { + max_items = 2, + items = { + { items = { "default:sign_wall" }}, + { items = { "default:fence_wood" }}, + }, + }, +}) + +-- Locked wall sign + +minetest.register_privilege("sign_editor", "Can edit all locked signs") + +minetest.register_node(":locked_sign:sign_wall_locked", { + description = S("Sign"), + inventory_image = "signs_locked_inv.png", + wield_image = "signs_locked_inv.png", + node_placement_prediction = "", + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + drawtype = "nodebox", + node_box = signs_lib.wall_sign_model.nodebox, + tiles = { + "signs_top_locked.png", + "signs_bottom_locked.png", + "signs_side_locked.png", + "signs_side.png", + "signs_back.png", + "signs_front_locked.png" + }, + groups = sign_groups, + on_place = function(itemstack, placer, pointed_thing) + return signs_lib.determine_sign_type(itemstack, placer, pointed_thing, true) + end, + on_construct = function(pos) + signs_lib.construct_sign(pos, true) + end, + on_destruct = function(pos) + signs_lib.destruct_sign(pos) + end, + on_receive_fields = function(pos, formname, fields, sender) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + local pname = sender:get_player_name() or "" + if pname ~= owner and pname ~= minetest.setting_get("name") + and not minetest.check_player_privs(pname, {sign_editor=true}) then + return + end + signs_lib.receive_fields(pos, formname, fields, sender, true) + end, + on_punch = function(pos, node, puncher) + signs_lib.update_sign(pos) + end, + can_dig = function(pos, player) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + local pname = player:get_player_name() + return pname == owner or pname == minetest.setting_get("name") + or minetest.check_player_privs(pname, {sign_editor=true}) + end, +}) + +-- metal, colored signs + +local sign_colors = { "green", "yellow", "red", "white_red", "white_black" } + +for _, color in ipairs(sign_colors) do + minetest.register_node(":signs:sign_wall_"..color, { + description = S("Sign ("..color..", metal)"), + inventory_image = "signs_"..color.."_inv.png", + wield_image = "signs_"..color.."_inv.png", + node_placement_prediction = "", + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + drawtype = "nodebox", + node_box = signs_lib.wall_sign_model.nodebox, + tiles = { + "signs_metal_tb.png", + "signs_metal_tb.png", + "signs_metal_sides.png", + "signs_metal_sides.png", + "signs_metal_back.png", + "signs_"..color.."_front.png" + }, + groups = sign_groups, + on_place = function(itemstack, placer, pointed_thing) + return signs_lib.determine_sign_type(itemstack, placer, pointed_thing) + end, + on_construct = function(pos) + signs_lib.construct_sign(pos) + end, + on_destruct = function(pos) + signs_lib.destruct_sign(pos) + end, + on_receive_fields = function(pos, formname, fields, sender) + signs_lib.receive_fields(pos, formname, fields, sender) + end, + on_punch = function(pos, node, puncher) + signs_lib.update_sign(pos) + end, + }) +end + +local signs_text_on_activate + +signs_text_on_activate = function(self) + local meta = minetest.get_meta(self.object:getpos()) + local text = meta:get_string("text") + local new = (meta:get_int("__signslib_new_format") ~= 0) + if text then + text = trim_input(text) + set_obj_text(self.object, text, new) + end +end + +minetest.register_entity(":signs:text", { + collisionbox = { 0, 0, 0, 0, 0, 0 }, + visual = "upright_sprite", + textures = {}, + + on_activate = signs_text_on_activate, +}) + +-- And the good stuff here! :-) + +function signs_lib.register_fence_with_sign(fencename, fencewithsignname) + local def = minetest.registered_nodes[fencename] + local def_sign = minetest.registered_nodes[fencewithsignname] + if not (def and def_sign) then + minetest.log("warning", "[signs_lib] Attempt to register unknown node as fence") + return + end + def = signs_lib.table_copy(def) + def_sign = signs_lib.table_copy(def_sign) + fences_with_sign[fencename] = fencewithsignname + + def.on_place = function(itemstack, placer, pointed_thing, ...) + local node_above = minetest.get_node(pointed_thing.above) + local node_under = minetest.get_node(pointed_thing.under) + local def_above = minetest.registered_nodes[node_above.name] + local def_under = minetest.registered_nodes[node_under.name] + local fdir = minetest.dir_to_facedir(placer:get_look_dir()) + local playername = placer:get_player_name() + + if minetest.is_protected(pointed_thing.under, playername) then + minetest.record_protection_violation(pointed_thing.under, playername) + return + end + + if minetest.is_protected(pointed_thing.above, playername) then + minetest.record_protection_violation(pointed_thing.above, playername) + return + end + + if def_under and def_under.on_rightclick then + return def_under.on_rightclick(pointed_thing.under, node_under, placer, itemstack) or itemstack + elseif def_under and def_under.buildable_to then + minetest.add_node(pointed_thing.under, {name = fencename, param2 = fdir}) + if not signs_lib.expect_infinite_stacks then + itemstack:take_item() + end + placer:set_wielded_item(itemstack) + return itemstack + elseif not def_above or def_above.buildable_to then + minetest.add_node(pointed_thing.above, {name = fencename, param2 = fdir}) + if not signs_lib.expect_infinite_stacks then + itemstack:take_item() + end + placer:set_wielded_item(itemstack) + return itemstack + end + end + def_sign.on_construct = function(pos, ...) + signs_lib.construct_sign(pos) + end + def_sign.on_destruct = function(pos, ...) + signs_lib.destruct_sign(pos) + end + def_sign.on_receive_fields = function(pos, formname, fields, sender) + signs_lib.receive_fields(pos, formname, fields, sender) + end + def_sign.on_punch = function(pos, node, puncher, ...) + signs_lib.update_sign(pos) + end + local fencename = fencename + def_sign.after_dig_node = function(pos, node, ...) + node.name = fencename + minetest.add_node(pos, node) + end + def_sign.drop = "default:sign_wall" + minetest.register_node(":"..fencename, def) + minetest.register_node(":"..fencewithsignname, def_sign) + table.insert(signs_lib.sign_node_list, fencewithsignname) + print(S("Registered %s and %s"):format(fencename, fencewithsignname)) +end + +build_char_db() + +minetest.register_alias("homedecor:fence_wood_with_sign", "signs:sign_post") +minetest.register_alias("sign_wall_locked", "locked_sign:sign_wall_locked") + +signs_lib.register_fence_with_sign("default:fence_wood", "signs:sign_post") + +-- restore signs' text after /clearobjects and the like + +minetest.register_abm({ + nodenames = signs_lib.sign_node_list, + interval = 15, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + signs_lib.update_sign(pos) + end +}) + +-- locked sign + +minetest.register_craft({ + output = "locked_sign:sign_wall_locked", + recipe = { + {"group:wood", "group:wood", "group:wood"}, + {"group:wood", "group:wood", "default:steel_ingot"}, + {"", "group:stick", ""}, + } +}) + +--Alternate recipe. + +minetest.register_craft({ + output = "locked_sign:sign_wall_locked", + recipe = { + {"default:sign_wall"}, + {"default:steel_ingot"}, + }, +}) + +-- craft recipes for the metal signs + +minetest.register_craft( { + output = "signs:sign_wall_green 4", + recipe = { + { "dye:dark_green", "dye:white", "dye:dark_green" }, + { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" } + }, +}) + +minetest.register_craft( { + output = "signs:sign_wall_green 2", + recipe = { + { "dye:dark_green", "dye:white", "dye:dark_green" }, + { "steel:sheet_metal", "steel:sheet_metal", "steel:sheet_metal" } + }, +}) + +minetest.register_craft( { + output = "signs:sign_wall_yellow 4", + recipe = { + { "dye:yellow", "dye:black", "dye:yellow" }, + { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" } + }, +}) + +minetest.register_craft( { + output = "signs:sign_wall_yellow 2", + recipe = { + { "dye:yellow", "dye:black", "dye:yellow" }, + { "steel:sheet_metal", "steel:sheet_metal", "steel:sheet_metal" } + }, +}) + +minetest.register_craft( { + output = "signs:sign_wall_red 4", + recipe = { + { "dye:red", "dye:white", "dye:red" }, + { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" } + }, +}) + +minetest.register_craft( { + output = "signs:sign_wall_red 2", + recipe = { + { "dye:red", "dye:white", "dye:red" }, + { "steel:sheet_metal", "steel:sheet_metal", "steel:sheet_metal" } + }, +}) + +minetest.register_craft( { + output = "signs:sign_wall_white_red 4", + recipe = { + { "dye:white", "dye:red", "dye:white" }, + { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" } + }, +}) + +minetest.register_craft( { + output = "signs:sign_wall_white_red 2", + recipe = { + { "dye:white", "dye:red", "dye:white" }, + { "steel:sheet_metal", "steel:sheet_metal", "steel:sheet_metal" } + }, +}) + +minetest.register_craft( { + output = "signs:sign_wall_white_black 4", + recipe = { + { "dye:white", "dye:black", "dye:white" }, + { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" } + }, +}) + +minetest.register_craft( { + output = "signs:sign_wall_white_black 2", + recipe = { + { "dye:white", "dye:black", "dye:white" }, + { "steel:sheet_metal", "steel:sheet_metal", "steel:sheet_metal" } + }, +}) + +if minetest.setting_get("log_mods") then + minetest.log("action", S("signs loaded")) +end diff --git a/mods/homedecor_modpack/signs_lib/locale/de.txt b/mods/homedecor_modpack/signs_lib/locale/de.txt new file mode 100644 index 00000000..8d43f777 --- /dev/null +++ b/mods/homedecor_modpack/signs_lib/locale/de.txt @@ -0,0 +1,9 @@ +# Translation by Xanthin + +Reading cached character database. = Lese zwischengespeicherte Buchstabendatenbank. +Font seems to have changed. Rebuilding cache. = Schriftart scheint sich geaendert zu haben. Wiederaufbau des Zwischenspeichers. +Could not find font line height in cached DB. Trying brute force. = Konnte die Schriftzeilenhoehe nicht in der zwischengespeicherten DB finden. Versuche Brute-Force. +Sign = Schild +%s wrote "%s" to sign at %s = %s schrieb "%s" auf das Schild bei %s +Registered %s and %s = Registrierte %s und %s +signs loaded = signs geladen diff --git a/mods/homedecor_modpack/signs_lib/locale/template.txt b/mods/homedecor_modpack/signs_lib/locale/template.txt new file mode 100644 index 00000000..c1851a82 --- /dev/null +++ b/mods/homedecor_modpack/signs_lib/locale/template.txt @@ -0,0 +1,9 @@ +#Template + +Reading cached character database. = +Font seems to have changed. Rebuilding cache. = +Could not find font line height in cached DB. Trying brute force. = +Sign = +%s wrote "%s" to sign at %s = +Registered %s and %s = +signs loaded = diff --git a/mods/homedecor_modpack/signs_lib/textures/bg_signs_lib.jpg b/mods/homedecor_modpack/signs_lib/textures/bg_signs_lib.jpg new file mode 100644 index 00000000..4b72268b Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/bg_signs_lib.jpg differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_20.png b/mods/homedecor_modpack/signs_lib/textures/hdf_20.png new file mode 100644 index 00000000..465982d6 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_20.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_21.png b/mods/homedecor_modpack/signs_lib/textures/hdf_21.png new file mode 100644 index 00000000..01929d48 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_21.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_22.png b/mods/homedecor_modpack/signs_lib/textures/hdf_22.png new file mode 100644 index 00000000..2acde25d Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_22.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_23.png b/mods/homedecor_modpack/signs_lib/textures/hdf_23.png new file mode 100644 index 00000000..ace14376 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_23.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_24.png b/mods/homedecor_modpack/signs_lib/textures/hdf_24.png new file mode 100644 index 00000000..909b015e Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_24.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_25.png b/mods/homedecor_modpack/signs_lib/textures/hdf_25.png new file mode 100644 index 00000000..30a78295 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_25.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_26.png b/mods/homedecor_modpack/signs_lib/textures/hdf_26.png new file mode 100644 index 00000000..d29936c7 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_26.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_27.png b/mods/homedecor_modpack/signs_lib/textures/hdf_27.png new file mode 100644 index 00000000..9844e922 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_27.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_28.png b/mods/homedecor_modpack/signs_lib/textures/hdf_28.png new file mode 100644 index 00000000..4810d75a Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_28.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_29.png b/mods/homedecor_modpack/signs_lib/textures/hdf_29.png new file mode 100644 index 00000000..e5ff2b76 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_29.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_2a.png b/mods/homedecor_modpack/signs_lib/textures/hdf_2a.png new file mode 100644 index 00000000..54088977 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_2a.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_2b.png b/mods/homedecor_modpack/signs_lib/textures/hdf_2b.png new file mode 100644 index 00000000..9ad7d9ef Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_2b.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_2c.png b/mods/homedecor_modpack/signs_lib/textures/hdf_2c.png new file mode 100644 index 00000000..cb3eae05 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_2c.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_2d.png b/mods/homedecor_modpack/signs_lib/textures/hdf_2d.png new file mode 100644 index 00000000..c252f37d Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_2d.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_2e.png b/mods/homedecor_modpack/signs_lib/textures/hdf_2e.png new file mode 100644 index 00000000..d3aab5be Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_2e.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_2f.png b/mods/homedecor_modpack/signs_lib/textures/hdf_2f.png new file mode 100644 index 00000000..48c25f2e Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_2f.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_30.png b/mods/homedecor_modpack/signs_lib/textures/hdf_30.png new file mode 100644 index 00000000..56ec3e79 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_30.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_31.png b/mods/homedecor_modpack/signs_lib/textures/hdf_31.png new file mode 100644 index 00000000..c526e867 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_31.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_32.png b/mods/homedecor_modpack/signs_lib/textures/hdf_32.png new file mode 100644 index 00000000..339d9332 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_32.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_33.png b/mods/homedecor_modpack/signs_lib/textures/hdf_33.png new file mode 100644 index 00000000..aba5466e Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_33.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_34.png b/mods/homedecor_modpack/signs_lib/textures/hdf_34.png new file mode 100644 index 00000000..9e71d102 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_34.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_35.png b/mods/homedecor_modpack/signs_lib/textures/hdf_35.png new file mode 100644 index 00000000..c12370ff Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_35.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_36.png b/mods/homedecor_modpack/signs_lib/textures/hdf_36.png new file mode 100644 index 00000000..bebb32a8 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_36.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_37.png b/mods/homedecor_modpack/signs_lib/textures/hdf_37.png new file mode 100644 index 00000000..73d9bb98 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_37.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_38.png b/mods/homedecor_modpack/signs_lib/textures/hdf_38.png new file mode 100644 index 00000000..baf7f6f8 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_38.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_39.png b/mods/homedecor_modpack/signs_lib/textures/hdf_39.png new file mode 100644 index 00000000..95729472 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_39.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_3a.png b/mods/homedecor_modpack/signs_lib/textures/hdf_3a.png new file mode 100644 index 00000000..23ba0cd0 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_3a.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_3b.png b/mods/homedecor_modpack/signs_lib/textures/hdf_3b.png new file mode 100644 index 00000000..c4b467fa Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_3b.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_3c.png b/mods/homedecor_modpack/signs_lib/textures/hdf_3c.png new file mode 100644 index 00000000..566ba496 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_3c.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_3d.png b/mods/homedecor_modpack/signs_lib/textures/hdf_3d.png new file mode 100644 index 00000000..50e6c6f0 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_3d.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_3e.png b/mods/homedecor_modpack/signs_lib/textures/hdf_3e.png new file mode 100644 index 00000000..090f8ca3 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_3e.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_3f.png b/mods/homedecor_modpack/signs_lib/textures/hdf_3f.png new file mode 100644 index 00000000..dce47276 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_3f.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_40.png b/mods/homedecor_modpack/signs_lib/textures/hdf_40.png new file mode 100644 index 00000000..65533fdc Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_40.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_41.png b/mods/homedecor_modpack/signs_lib/textures/hdf_41.png new file mode 100644 index 00000000..e30c27ca Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_41.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_42.png b/mods/homedecor_modpack/signs_lib/textures/hdf_42.png new file mode 100644 index 00000000..28d480b7 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_42.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_43.png b/mods/homedecor_modpack/signs_lib/textures/hdf_43.png new file mode 100644 index 00000000..db57d8dc Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_43.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_44.png b/mods/homedecor_modpack/signs_lib/textures/hdf_44.png new file mode 100644 index 00000000..cca9575b Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_44.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_45.png b/mods/homedecor_modpack/signs_lib/textures/hdf_45.png new file mode 100644 index 00000000..07e772b8 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_45.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_46.png b/mods/homedecor_modpack/signs_lib/textures/hdf_46.png new file mode 100644 index 00000000..24de187a Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_46.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_47.png b/mods/homedecor_modpack/signs_lib/textures/hdf_47.png new file mode 100644 index 00000000..0deef839 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_47.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_48.png b/mods/homedecor_modpack/signs_lib/textures/hdf_48.png new file mode 100644 index 00000000..f85b4aec Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_48.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_49.png b/mods/homedecor_modpack/signs_lib/textures/hdf_49.png new file mode 100644 index 00000000..1f027283 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_49.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_4a.png b/mods/homedecor_modpack/signs_lib/textures/hdf_4a.png new file mode 100644 index 00000000..b2f7befc Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_4a.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_4b.png b/mods/homedecor_modpack/signs_lib/textures/hdf_4b.png new file mode 100644 index 00000000..e8d52d60 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_4b.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_4c.png b/mods/homedecor_modpack/signs_lib/textures/hdf_4c.png new file mode 100644 index 00000000..94d7d480 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_4c.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_4d.png b/mods/homedecor_modpack/signs_lib/textures/hdf_4d.png new file mode 100644 index 00000000..0ee8eb4b Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_4d.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_4e.png b/mods/homedecor_modpack/signs_lib/textures/hdf_4e.png new file mode 100644 index 00000000..8ff83d66 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_4e.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_4f.png b/mods/homedecor_modpack/signs_lib/textures/hdf_4f.png new file mode 100644 index 00000000..b278ccc5 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_4f.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_50.png b/mods/homedecor_modpack/signs_lib/textures/hdf_50.png new file mode 100644 index 00000000..33b52fd6 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_50.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_51.png b/mods/homedecor_modpack/signs_lib/textures/hdf_51.png new file mode 100644 index 00000000..892747c7 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_51.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_52.png b/mods/homedecor_modpack/signs_lib/textures/hdf_52.png new file mode 100644 index 00000000..acb395ed Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_52.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_53.png b/mods/homedecor_modpack/signs_lib/textures/hdf_53.png new file mode 100644 index 00000000..028f2841 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_53.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_54.png b/mods/homedecor_modpack/signs_lib/textures/hdf_54.png new file mode 100644 index 00000000..3bd0a2b9 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_54.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_55.png b/mods/homedecor_modpack/signs_lib/textures/hdf_55.png new file mode 100644 index 00000000..81643f94 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_55.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_56.png b/mods/homedecor_modpack/signs_lib/textures/hdf_56.png new file mode 100644 index 00000000..8726f5bc Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_56.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_57.png b/mods/homedecor_modpack/signs_lib/textures/hdf_57.png new file mode 100644 index 00000000..5e8d9d0f Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_57.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_58.png b/mods/homedecor_modpack/signs_lib/textures/hdf_58.png new file mode 100644 index 00000000..2abbda39 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_58.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_59.png b/mods/homedecor_modpack/signs_lib/textures/hdf_59.png new file mode 100644 index 00000000..ff450930 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_59.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_5a.png b/mods/homedecor_modpack/signs_lib/textures/hdf_5a.png new file mode 100644 index 00000000..5c706ce1 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_5a.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_5b.png b/mods/homedecor_modpack/signs_lib/textures/hdf_5b.png new file mode 100644 index 00000000..2592f1ff Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_5b.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_5c.png b/mods/homedecor_modpack/signs_lib/textures/hdf_5c.png new file mode 100644 index 00000000..406d6342 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_5c.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_5d.png b/mods/homedecor_modpack/signs_lib/textures/hdf_5d.png new file mode 100644 index 00000000..a5efa37d Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_5d.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_5e.png b/mods/homedecor_modpack/signs_lib/textures/hdf_5e.png new file mode 100644 index 00000000..7f610d87 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_5e.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_5f.png b/mods/homedecor_modpack/signs_lib/textures/hdf_5f.png new file mode 100644 index 00000000..07cce5a1 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_5f.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_60.png b/mods/homedecor_modpack/signs_lib/textures/hdf_60.png new file mode 100644 index 00000000..cd4e0fb3 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_60.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_61.png b/mods/homedecor_modpack/signs_lib/textures/hdf_61.png new file mode 100644 index 00000000..dc019ba5 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_61.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_62.png b/mods/homedecor_modpack/signs_lib/textures/hdf_62.png new file mode 100644 index 00000000..285d0b2f Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_62.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_63.png b/mods/homedecor_modpack/signs_lib/textures/hdf_63.png new file mode 100644 index 00000000..8781b8a8 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_63.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_64.png b/mods/homedecor_modpack/signs_lib/textures/hdf_64.png new file mode 100644 index 00000000..16c9a286 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_64.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_65.png b/mods/homedecor_modpack/signs_lib/textures/hdf_65.png new file mode 100644 index 00000000..810d9c93 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_65.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_66.png b/mods/homedecor_modpack/signs_lib/textures/hdf_66.png new file mode 100644 index 00000000..411ca573 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_66.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_67.png b/mods/homedecor_modpack/signs_lib/textures/hdf_67.png new file mode 100644 index 00000000..d8820dd1 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_67.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_68.png b/mods/homedecor_modpack/signs_lib/textures/hdf_68.png new file mode 100644 index 00000000..5b51d05a Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_68.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_69.png b/mods/homedecor_modpack/signs_lib/textures/hdf_69.png new file mode 100644 index 00000000..55f1a229 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_69.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_6a.png b/mods/homedecor_modpack/signs_lib/textures/hdf_6a.png new file mode 100644 index 00000000..c20e222f Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_6a.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_6b.png b/mods/homedecor_modpack/signs_lib/textures/hdf_6b.png new file mode 100644 index 00000000..fc34fc50 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_6b.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_6c.png b/mods/homedecor_modpack/signs_lib/textures/hdf_6c.png new file mode 100644 index 00000000..1f027283 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_6c.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_6d.png b/mods/homedecor_modpack/signs_lib/textures/hdf_6d.png new file mode 100644 index 00000000..6c0ae93f Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_6d.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_6e.png b/mods/homedecor_modpack/signs_lib/textures/hdf_6e.png new file mode 100644 index 00000000..4f4dec70 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_6e.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_6f.png b/mods/homedecor_modpack/signs_lib/textures/hdf_6f.png new file mode 100644 index 00000000..921c6119 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_6f.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_70.png b/mods/homedecor_modpack/signs_lib/textures/hdf_70.png new file mode 100644 index 00000000..8202199d Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_70.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_71.png b/mods/homedecor_modpack/signs_lib/textures/hdf_71.png new file mode 100644 index 00000000..c02171f0 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_71.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_72.png b/mods/homedecor_modpack/signs_lib/textures/hdf_72.png new file mode 100644 index 00000000..757b9c85 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_72.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_73.png b/mods/homedecor_modpack/signs_lib/textures/hdf_73.png new file mode 100644 index 00000000..e38497d9 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_73.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_74.png b/mods/homedecor_modpack/signs_lib/textures/hdf_74.png new file mode 100644 index 00000000..10f9cfa9 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_74.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_75.png b/mods/homedecor_modpack/signs_lib/textures/hdf_75.png new file mode 100644 index 00000000..377416ba Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_75.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_76.png b/mods/homedecor_modpack/signs_lib/textures/hdf_76.png new file mode 100644 index 00000000..dc558d3a Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_76.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_77.png b/mods/homedecor_modpack/signs_lib/textures/hdf_77.png new file mode 100644 index 00000000..6a142984 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_77.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_78.png b/mods/homedecor_modpack/signs_lib/textures/hdf_78.png new file mode 100644 index 00000000..38b4be03 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_78.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_79.png b/mods/homedecor_modpack/signs_lib/textures/hdf_79.png new file mode 100644 index 00000000..8859fb41 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_79.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_7a.png b/mods/homedecor_modpack/signs_lib/textures/hdf_7a.png new file mode 100644 index 00000000..c42c84a3 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_7a.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_7b.png b/mods/homedecor_modpack/signs_lib/textures/hdf_7b.png new file mode 100644 index 00000000..c0ee072c Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_7b.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_7c.png b/mods/homedecor_modpack/signs_lib/textures/hdf_7c.png new file mode 100644 index 00000000..6e9949de Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_7c.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_7d.png b/mods/homedecor_modpack/signs_lib/textures/hdf_7d.png new file mode 100644 index 00000000..6162caa2 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_7d.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/hdf_7e.png b/mods/homedecor_modpack/signs_lib/textures/hdf_7e.png new file mode 100644 index 00000000..ec762d55 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/hdf_7e.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_back.png b/mods/homedecor_modpack/signs_lib/textures/signs_back.png new file mode 100644 index 00000000..db33dee5 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_back.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_bottom.png b/mods/homedecor_modpack/signs_lib/textures/signs_bottom.png new file mode 100644 index 00000000..38961f0c Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_bottom.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_bottom_locked.png b/mods/homedecor_modpack/signs_lib/textures/signs_bottom_locked.png new file mode 100644 index 00000000..9b3d40ef Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_bottom_locked.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_front.png b/mods/homedecor_modpack/signs_lib/textures/signs_front.png new file mode 100644 index 00000000..2e614355 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_front.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_front_locked.png b/mods/homedecor_modpack/signs_lib/textures/signs_front_locked.png new file mode 100644 index 00000000..5858c2ab Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_front_locked.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_green_front.png b/mods/homedecor_modpack/signs_lib/textures/signs_green_front.png new file mode 100644 index 00000000..45c6e0f0 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_green_front.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_green_inv.png b/mods/homedecor_modpack/signs_lib/textures/signs_green_inv.png new file mode 100644 index 00000000..24ca5a8f Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_green_inv.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_hanging_back.png b/mods/homedecor_modpack/signs_lib/textures/signs_hanging_back.png new file mode 100644 index 00000000..7cf39a24 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_hanging_back.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_hanging_bottom.png b/mods/homedecor_modpack/signs_lib/textures/signs_hanging_bottom.png new file mode 100644 index 00000000..7b2af4dd Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_hanging_bottom.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_hanging_front.png b/mods/homedecor_modpack/signs_lib/textures/signs_hanging_front.png new file mode 100644 index 00000000..bdc745e7 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_hanging_front.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_hanging_side.png b/mods/homedecor_modpack/signs_lib/textures/signs_hanging_side.png new file mode 100644 index 00000000..8498d67f Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_hanging_side.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_hanging_top.png b/mods/homedecor_modpack/signs_lib/textures/signs_hanging_top.png new file mode 100644 index 00000000..1c08f911 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_hanging_top.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_locked_inv.png b/mods/homedecor_modpack/signs_lib/textures/signs_locked_inv.png new file mode 100644 index 00000000..b87a3559 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_locked_inv.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_metal_back.png b/mods/homedecor_modpack/signs_lib/textures/signs_metal_back.png new file mode 100644 index 00000000..48420b2f Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_metal_back.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_metal_sides.png b/mods/homedecor_modpack/signs_lib/textures/signs_metal_sides.png new file mode 100644 index 00000000..b7b4526c Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_metal_sides.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_metal_tb.png b/mods/homedecor_modpack/signs_lib/textures/signs_metal_tb.png new file mode 100644 index 00000000..9a264f0b Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_metal_tb.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_post_back.png b/mods/homedecor_modpack/signs_lib/textures/signs_post_back.png new file mode 100644 index 00000000..829b8441 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_post_back.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_post_bottom.png b/mods/homedecor_modpack/signs_lib/textures/signs_post_bottom.png new file mode 100644 index 00000000..bea83e38 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_post_bottom.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_post_front.png b/mods/homedecor_modpack/signs_lib/textures/signs_post_front.png new file mode 100644 index 00000000..02a0e593 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_post_front.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_post_side.png b/mods/homedecor_modpack/signs_lib/textures/signs_post_side.png new file mode 100644 index 00000000..95d7a69a Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_post_side.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_post_top.png b/mods/homedecor_modpack/signs_lib/textures/signs_post_top.png new file mode 100644 index 00000000..6b251f63 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_post_top.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_red_front.png b/mods/homedecor_modpack/signs_lib/textures/signs_red_front.png new file mode 100644 index 00000000..dce72ce8 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_red_front.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_red_inv.png b/mods/homedecor_modpack/signs_lib/textures/signs_red_inv.png new file mode 100644 index 00000000..12b9ed1c Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_red_inv.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_side.png b/mods/homedecor_modpack/signs_lib/textures/signs_side.png new file mode 100644 index 00000000..ab6db9ea Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_side.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_side_locked.png b/mods/homedecor_modpack/signs_lib/textures/signs_side_locked.png new file mode 100644 index 00000000..0d3ee791 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_side_locked.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_top.png b/mods/homedecor_modpack/signs_lib/textures/signs_top.png new file mode 100644 index 00000000..aa86aa8a Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_top.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_top_locked.png b/mods/homedecor_modpack/signs_lib/textures/signs_top_locked.png new file mode 100644 index 00000000..6f948bcf Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_top_locked.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_white_black_front.png b/mods/homedecor_modpack/signs_lib/textures/signs_white_black_front.png new file mode 100644 index 00000000..10ecca00 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_white_black_front.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_white_black_inv.png b/mods/homedecor_modpack/signs_lib/textures/signs_white_black_inv.png new file mode 100644 index 00000000..e370dad9 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_white_black_inv.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_white_red_front.png b/mods/homedecor_modpack/signs_lib/textures/signs_white_red_front.png new file mode 100644 index 00000000..f1fb05e8 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_white_red_front.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_white_red_inv.png b/mods/homedecor_modpack/signs_lib/textures/signs_white_red_inv.png new file mode 100644 index 00000000..4ed8d93d Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_white_red_inv.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_yellow_front.png b/mods/homedecor_modpack/signs_lib/textures/signs_yellow_front.png new file mode 100644 index 00000000..4ce90825 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_yellow_front.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/signs_yellow_inv.png b/mods/homedecor_modpack/signs_lib/textures/signs_yellow_inv.png new file mode 100644 index 00000000..86af53d1 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/signs_yellow_inv.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/slc_0.png b/mods/homedecor_modpack/signs_lib/textures/slc_0.png new file mode 100644 index 00000000..385ed402 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/slc_0.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/slc_1.png b/mods/homedecor_modpack/signs_lib/textures/slc_1.png new file mode 100644 index 00000000..19abd178 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/slc_1.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/slc_2.png b/mods/homedecor_modpack/signs_lib/textures/slc_2.png new file mode 100644 index 00000000..eaed359c Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/slc_2.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/slc_3.png b/mods/homedecor_modpack/signs_lib/textures/slc_3.png new file mode 100644 index 00000000..62bee4bd Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/slc_3.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/slc_4.png b/mods/homedecor_modpack/signs_lib/textures/slc_4.png new file mode 100644 index 00000000..22250a42 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/slc_4.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/slc_5.png b/mods/homedecor_modpack/signs_lib/textures/slc_5.png new file mode 100644 index 00000000..b227c844 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/slc_5.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/slc_6.png b/mods/homedecor_modpack/signs_lib/textures/slc_6.png new file mode 100644 index 00000000..359d52c8 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/slc_6.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/slc_7.png b/mods/homedecor_modpack/signs_lib/textures/slc_7.png new file mode 100644 index 00000000..115b2464 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/slc_7.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/slc_8.png b/mods/homedecor_modpack/signs_lib/textures/slc_8.png new file mode 100644 index 00000000..bad51772 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/slc_8.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/slc_9.png b/mods/homedecor_modpack/signs_lib/textures/slc_9.png new file mode 100644 index 00000000..69d41e47 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/slc_9.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/slc_A.png b/mods/homedecor_modpack/signs_lib/textures/slc_A.png new file mode 100644 index 00000000..3ff5d7e0 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/slc_A.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/slc_B.png b/mods/homedecor_modpack/signs_lib/textures/slc_B.png new file mode 100644 index 00000000..5ee2f1d4 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/slc_B.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/slc_C.png b/mods/homedecor_modpack/signs_lib/textures/slc_C.png new file mode 100644 index 00000000..bd59f28a Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/slc_C.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/slc_D.png b/mods/homedecor_modpack/signs_lib/textures/slc_D.png new file mode 100644 index 00000000..66ac7558 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/slc_D.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/slc_E.png b/mods/homedecor_modpack/signs_lib/textures/slc_E.png new file mode 100644 index 00000000..0e2363cd Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/slc_E.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/slc_F.png b/mods/homedecor_modpack/signs_lib/textures/slc_F.png new file mode 100644 index 00000000..edcd74a0 Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/slc_F.png differ diff --git a/mods/homedecor_modpack/signs_lib/textures/slc_n.png b/mods/homedecor_modpack/signs_lib/textures/slc_n.png new file mode 100644 index 00000000..733a43ad Binary files /dev/null and b/mods/homedecor_modpack/signs_lib/textures/slc_n.png differ diff --git a/mods/hud/.gitattributes b/mods/hud/.gitattributes new file mode 100644 index 00000000..412eeda7 --- /dev/null +++ b/mods/hud/.gitattributes @@ -0,0 +1,22 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp +*.sln merge=union +*.csproj merge=union +*.vbproj merge=union +*.fsproj merge=union +*.dbproj merge=union + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain diff --git a/mods/hud/.gitignore b/mods/hud/.gitignore new file mode 100644 index 00000000..b9d6bd92 --- /dev/null +++ b/mods/hud/.gitignore @@ -0,0 +1,215 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml +*.pubxml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + +############# +## Windows detritus +############# + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac crap +.DS_Store + + +############# +## Python +############# + +*.py[co] + +# Packages +*.egg +*.egg-info +dist/ +build/ +eggs/ +parts/ +var/ +sdist/ +develop-eggs/ +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg diff --git a/mods/hud/README.txt b/mods/hud/README.txt new file mode 100644 index 00000000..4a9474d1 --- /dev/null +++ b/mods/hud/README.txt @@ -0,0 +1,88 @@ +Minetest mod "Better HUD" +========================= +Version: 1.4 + +License of source code: WTFPL +----------------------------- +(c) Copyright BlockMen (2013-2014) + + + +Using the mod: +-------------- +This mod changes the HUD of Minetest. +It improves the apperance of the health and breath bar and adds a more fancy hotbar. Furthermore it adds a +custom crosshair, an armor bar (only for 3darmor mod) and a hunger bar. It includes also a mechanic for hunger. + +You can create a "hud.conf" file to customize the positions of health, hunger, armor and breath bar. Take a look at "hud.conf.example" to get more infos. + + +!!IMPORTANT !!: +Keep in mind if running a server with this mod, that the custom position should be displayed correct on every screen size!! + + +=Hunger= +======== +This mod adds a hunger mechanic to the game. Player actions like digging, placing and walking causes exhausion, +that lowers players saturation. Also every 800 seconds you lose 1 saturation point without doing anything. +If you are hungry (empty hunger bar) you will get damage and die in case you don't eat something. + + +Notice: +------- +You can disable this by setting "HUD_HUNGER_ENABLE = false" in "hud.conf", or "hud_hunger_enable = false" in minetest.conf. +In case of conflict hud.conf configuration is dominant. + + +Currently supported food: +------------------------- +- Apples (default) +- Animalmaterials (mobf modpack) +- Bread (default) +- Bushes +- bushes_classic +- Creatures +- Dwarves (beer and such) +- Docfarming +- Fishing +- Farming plus +- Farming (default and Tenplus1's fork) +- Food +- fruit +- Glooptest +- JKMod +- kpgmobs +- Mobfcooking +- Mooretrees +- Mtfoods +- mushroom +- mush45 +- Seaplants (sea) +- Simple mobs + +Example: 1 apple fills up the hunger bar by 1 bread, 1 bread (from farming) 2 breads in bar. + +Although it show 20 hunger points (10 breads) in hunger bar, +you can fill it up to 30 points.(5 breads not shown then) + + + +License of textures: +-------------------- +hud_heart_fg.png - celeron55 (CC BY-SA 3.0), modified by BlockMen +hud_heart_bg.png - celeron55 (CC BY-SA 3.0), modified by BlockMen +hud_hunger_fg.png - PilzAdam (WTFPL), modified by BlockMen +hud_hunger_bg.png - PilzAdam (WTFPL), modified by BlockMen +wieldhand.png (from character.png) - Jordach (CC BY-SA 3.0), modified by BlockMen +hud_air_fg.png - kaeza (WTFPL), modified by BlockMen +hud_armor_fg.png - Stu (CC BY-SA 3.0), modified by BlockMen +hud_armor_bg.png - Stu (CC BY-SA 3.0), modified by BlockMen + +everything else is WTFPL: +(c) Copyright BlockMen (2013-2014) + +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/hud/armor.lua b/mods/hud/armor.lua new file mode 100644 index 00000000..7f0d0cff --- /dev/null +++ b/mods/hud/armor.lua @@ -0,0 +1,34 @@ +minetest.after(0, function() + if not armor.def then + minetest.after(2,minetest.chat_send_all,"#Better HUD: Please update your version of 3darmor") + HUD_SHOW_ARMOR = false + end +end) + +function hud.get_armor(player) + if not player or not armor.def then + return + end + local name = player:get_player_name() + local def = armor.def[name] or nil + if def and def.state and def.count then + hud.set_armor(name, def.state, def.count) + end +end + +function hud.set_armor(player_name, ges_state, items) + local max_items = 4 + if items == 5 then + max_items = items + end + local max = max_items * 65535 + local lvl = max - ges_state + lvl = lvl/max + if ges_state == 0 and items == 0 then + lvl = 0 + end + + hud.armor[player_name] = lvl* (items * (20 / max_items)) + + +end \ No newline at end of file diff --git a/mods/hud/changelog.txt b/mods/hud/changelog.txt new file mode 100644 index 00000000..4eac6c52 --- /dev/null +++ b/mods/hud/changelog.txt @@ -0,0 +1,88 @@ +0.2 Beta +-------- +- added support of custom config files +- you can eat max. 50% more than before (although it isnt shown in hunger bar) +- you get healed with 8 breads and more (in hunger bar) now +- a bread (from farming) == 2 breads in hunger bar + +0.2.1 Beta +---------- +- tweaked override of food +- added support for food of dwares, moretrees and simple mobs + +0.2.2 Beta +---------- +- added support for food of animalmaterials (mobf modpack),fishing + +0.2.3 Beta +---------- +- added support for food of glooptest and bushes (commit by CheeseKeg) + +0.3 Beta +---------- +- added fancy borders of hud inventory bar (only for screenheight <= 800) + +0.4 Beta +---------- +- enabled drowning + +0.5 Beta +---------- +- removed the fancy borders of hud inventory bar and moved to new native support +- moved crosshair to native support too + +1.0 +--- +- hunger is reset after death +- health and hunger bar is shown correct on all screen resolutions now +- switched to changed native hotbar image support +- fixed revival of player when drown +- hunger bar is not shown anymore if hunger is disabled +- hunger can be disabled by minetest.conf ("hud_hunger_enable = false") + +1.1 +--- +- added support for stu's 3darmor mod +- restructured and cleaned up code +- added support for poisen food (damages player, but does not kill) + +1.2 +--- +- Send statbar values only to client when changed +- Hide armor bar if not wearing armor +- More reliable food overrides (by CiaranG) +- Support for bushes_classic foods (plantlife modpack) (by CiaranG) +- Add support for mushroom mod food/poison (by CiaranG) +- Add support for mods: fruit and mush45 +- New images for hotbar, smaller armor icons + +1.3 +--- +- New way hunger is saved (all old files in world dirctory can get deleted [e.g. hud_BlockMen_hunger]) +- Fixed healing (not while drowning, fix after death) +- Add support for mods: seaplants[sea] and mobfcooking (by Xanthin) +- Tweaked hand image +- Player can die caus of starving now + +1.3.1 +----- +- Add compatibility for statbar scaling +- Fix typo in depends.txt +- Lower maintimer tick + +1.3.2 +----- +- Fix dependecies (by Chris Beelby) +- Add support for creatures mod +- Add optional healing for food (by TenPlus1) + +1.3.3 +----- +- Prevent crash with armor mod and missing player +- Add support for ethereal mod (by TenPlus1) + +1.4 +--- +- New hunger mechanics/added experimental player-action based hunger +- Better crosshair texture, switched to "new" default hand +- Added support for farming redo mod, kpgmobs and jkmod diff --git a/mods/hud/depends.txt b/mods/hud/depends.txt new file mode 100644 index 00000000..98f29d14 --- /dev/null +++ b/mods/hud/depends.txt @@ -0,0 +1,25 @@ +default +animalmaterials? +bucket? +bushes? +bushes_classic? +creatures? +docfarming? +dwarves? +ethereal? +farming? +farming_plus? +fishing? +fruit? +glooptest? +jkanimals? +jkfarming? +jkwine? +kpgmobs? +mobfcooking? +mobs? +moretrees? +mtfoods? +mush45? +mushroom? +seaplants? diff --git a/mods/hud/hud.conf b/mods/hud/hud.conf new file mode 100644 index 00000000..722aee85 --- /dev/null +++ b/mods/hud/hud.conf @@ -0,0 +1,14 @@ +--##Better HUD example config file## +------------------------------------ + +HUD_ENABLE_HUNGER = true +HUD_HUNGER_TICK = 300 + +HUD_ARMOR_POS = {x=0.5,y=1} +HUD_ARMOR_OFFSET= {x=-320, y=-154} +HUD_HEALTH_POS = {x=0.5,y=1} +HUD_HEALTH_OFFSET = {x=-320, y=-122} +HUD_HUNGER_POS = {x=0.5,y=1} +HUD_HUNGER_OFFSET = {x=80, y=-122} +HUD_AIR_POS= {x=0.5,y=1} +HUD_AIR_OFFSET = {x=80, y=-154} diff --git a/mods/hud/hud.conf.example b/mods/hud/hud.conf.example new file mode 100644 index 00000000..ffa4cd76 --- /dev/null +++ b/mods/hud/hud.conf.example @@ -0,0 +1,33 @@ +--##Better HUD example config file## +------------------------------------ +-- This example moves the health bar in the top left corner and the hunger bar in the top right corner + + +-- +-- general settings +-- +HUD_ENABLE_HUNGER = true --enables/disables hunger +HUD_HUNGER_TICK = 300 --sets time for loosing 1/2 bread (of 10) (in seconds) + + +--!NOTICE!-- +-- >>if damage is disabled neither health bar nor hunger bar or breath bar is shown + +-- +-- health bar +-- +HUD_HEALTH_POS = {x=0,y=0} --min 0, max 1 +HUD_HEALTH_OFFSET = {x=5,y=30} --offset in pixel + +-- +-- hunger bar +-- +HUD_HUNGER_POS = {x=1,y=0} --min 0, max 1 +HUD_HUNGER_OFFSET = {x=-175,y=30} --offset in pixel + +-- +-- breath bar +-- +HUD_AIR_POS = {x=0.5,y=1} --min 0, max 1 +HUD_AIR_OFFSET = {x=15,y=-75} --offset in pixel + diff --git a/mods/hud/hud.conf.old b/mods/hud/hud.conf.old new file mode 100644 index 00000000..e919ae47 --- /dev/null +++ b/mods/hud/hud.conf.old @@ -0,0 +1,33 @@ +--##Better HUD example config file## +------------------------------------ +-- This example moves the health bar in the top left corner and the hunger bar in the top right corner + + +-- +-- general settings +-- +HUD_ENABLE_HUNGER = true --enables/disables hunger +HUD_HUNGER_TICK = 300 --sets time for loosing 1/2 bread (of 10) (in seconds) + + +--!NOTICE!-- +-- >>if damage is disabled neither health bar nor hunger bar or breath bar is shown + +-- +-- health bar +-- +HUD_HEALTH_POS = {x=0.5,y=0.9} --min 0, max 1 +HUD_HEALTH_OFFSET = {x=-262, y=-50} --offset in pixel + +-- +-- hunger bar +-- +HUD_HUNGER_POS = {x=0.5,y=0.9} --min 0, max 1 +HUD_HUNGER_OFFSET = {x=25, y=-50} --offset in pixel + +-- +-- breath bar +-- +HUD_AIR_POS = {x=0.5,y=0.9} --min 0, max 1 +HUD_AIR_OFFSET = {x=25,y=-10} --offset in pixel + diff --git a/mods/hud/hunger.lua b/mods/hud/hunger.lua new file mode 100644 index 00000000..edc32462 --- /dev/null +++ b/mods/hud/hunger.lua @@ -0,0 +1,363 @@ +-- Keep these for backwards compatibility +function hud.save_hunger(player) + hud.set_hunger(player) +end +function hud.load_hunger(player) + hud.get_hunger(player) +end + +-- Poison player +local function poisenp(tick, time, time_left, player) + time_left = time_left + tick + if time_left < time then + minetest.after(tick, poisenp, tick, time, time_left, player) + else + --reset hud image + end + if player:get_hp()-1 > 0 then + player:set_hp(player:get_hp()-1) + end + +end + +function hud.item_eat(hunger_change, replace_with_item, poisen, heal) + return function(itemstack, user, pointed_thing) + if itemstack:take_item() ~= nil and user ~= nil then + local name = user:get_player_name() + local h = tonumber(hud.hunger[name]) + local hp = user:get_hp() + + -- Saturation + if h < 30 and hunger_change then + h = h + hunger_change + if h > 30 then h = 30 end + hud.hunger[name] = h + hud.set_hunger(user) + end + -- Healing + if hp < 20 and heal then + hp = hp + heal + if hp > 20 then hp = 20 end + user:set_hp(hp) + end + -- Poison + if poisen then + --set hud-img + poisenp(1.0, poisen, 0, user) + end + + --sound:eat + itemstack:add_item(replace_with_item) + end + return itemstack + end +end + +local function overwrite(name, hunger_change, replace_with_item, poisen, heal) + local tab = minetest.registered_items[name] + if tab == nil then return end + tab.on_use = hud.item_eat(hunger_change, replace_with_item, poisen, heal) + minetest.registered_items[name] = tab +end + +overwrite("default:apple", 2) +if minetest.get_modpath("farming") ~= nil then + overwrite("farming:bread", 4) +end + +if minetest.get_modpath("moretrees") ~= nil then + overwrite("moretrees:coconut_milk", 1) + overwrite("moretrees:raw_coconut", 2) + overwrite("moretrees:acorn_muffin", 3) + overwrite("moretrees:spruce_nuts", 1) + overwrite("moretrees:pine_nuts", 1) + overwrite("moretrees:fir_nuts", 1) +end + +if minetest.get_modpath("dwarves") ~= nil then + overwrite("dwarves:beer", 2) + overwrite("dwarves:apple_cider", 1) + overwrite("dwarves:midus", 2) + overwrite("dwarves:tequila", 2) + overwrite("dwarves:tequila_with_lime", 2) + overwrite("dwarves:sake", 2) +end + +if minetest.get_modpath("animalmaterials") ~= nil then + overwrite("animalmaterials:milk", 2) + overwrite("animalmaterials:meat_raw", 3) + overwrite("animalmaterials:meat_pork", 3) + overwrite("animalmaterials:meat_beef", 3) + overwrite("animalmaterials:meat_chicken", 3) + overwrite("animalmaterials:meat_lamb", 3) + overwrite("animalmaterials:meat_venison", 3) + overwrite("animalmaterials:meat_undead", 3, "", 3) + overwrite("animalmaterials:meat_toxic", 3, "", 5) + overwrite("animalmaterials:meat_ostrich", 3) + overwrite("animalmaterials:fish_bluewhite", 2) + overwrite("animalmaterials:fish_clownfish", 2) +end + +if minetest.get_modpath("fishing") ~= nil then + overwrite("fishing:fish_raw", 2) + overwrite("fishing:fish_cooked", 5) + overwrite("fishing:sushi", 6) + overwrite("fishing:shark", 4) + overwrite("fishing:shark_cooked", 8) + overwrite("fishing:pike", 4) + overwrite("fishing:pike_cooked", 8) +end + +if minetest.get_modpath("glooptest") ~= nil then + overwrite("glooptest:kalite_lump", 1) +end + +if minetest.get_modpath("bushes") ~= nil then + overwrite("bushes:sugar", 1) + overwrite("bushes:strawberry", 2) + overwrite("bushes:berry_pie_raw", 3) + overwrite("bushes:berry_pie_cooked", 4) + overwrite("bushes:basket_pies", 15) +end + +if minetest.get_modpath("bushes_classic") then + -- bushes_classic mod, as found in the plantlife modpack + local berries = { + "strawberry", + "blackberry", + "blueberry", + "raspberry", + "gooseberry", + "mixed_berry"} + for _, berry in ipairs(berries) do + if berry ~= "mixed_berry" then + overwrite("bushes:"..berry, 1) + end + overwrite("bushes:"..berry.."_pie_raw", 2) + overwrite("bushes:"..berry.."_pie_cooked", 5) + overwrite("bushes:basket_"..berry, 15) + end +end + +if minetest.get_modpath("mushroom") ~= nil then + overwrite("mushroom:brown", 1) + overwrite("mushroom:red", 1, "", 3) +end + +if minetest.get_modpath("docfarming") ~= nil then + overwrite("docfarming:carrot", 3) + overwrite("docfarming:cucumber", 2) + overwrite("docfarming:corn", 3) + overwrite("docfarming:potato", 4) + overwrite("docfarming:bakedpotato", 5) + overwrite("docfarming:raspberry", 3) +end + +if minetest.get_modpath("farming_plus") ~= nil then + overwrite("farming_plus:carrot_item", 3) + overwrite("farming_plus:banana", 2) + overwrite("farming_plus:orange_item", 2) + overwrite("farming:pumpkin_bread", 4) + overwrite("farming_plus:strawberry_item", 2) + overwrite("farming_plus:tomato_item", 2) + overwrite("farming_plus:potato_item", 4) + overwrite("farming_plus:rhubarb_item", 2) +end + +if minetest.get_modpath("mtfoods") ~= nil then + overwrite("mtfoods:dandelion_milk", 1) + overwrite("mtfoods:sugar", 1) + overwrite("mtfoods:short_bread", 4) + overwrite("mtfoods:cream", 1) + overwrite("mtfoods:chocolate", 2) + overwrite("mtfoods:cupcake", 2) + overwrite("mtfoods:strawberry_shortcake", 2) + overwrite("mtfoods:cake", 3) + overwrite("mtfoods:chocolate_cake", 3) + overwrite("mtfoods:carrot_cake", 3) + overwrite("mtfoods:pie_crust", 3) + overwrite("mtfoods:apple_pie", 3) + overwrite("mtfoods:rhubarb_pie", 2) + overwrite("mtfoods:banana_pie", 3) + overwrite("mtfoods:pumpkin_pie", 3) + overwrite("mtfoods:cookies", 2) + overwrite("mtfoods:mlt_burger", 5) + overwrite("mtfoods:potato_slices", 2) + overwrite("mtfoods:potato_chips", 3) + --mtfoods:medicine + overwrite("mtfoods:casserole", 3) + overwrite("mtfoods:glass_flute", 2) + overwrite("mtfoods:orange_juice", 2) + overwrite("mtfoods:apple_juice", 2) + overwrite("mtfoods:apple_cider", 2) + overwrite("mtfoods:cider_rack", 2) +end + +if minetest.get_modpath("fruit") ~= nil then + overwrite("fruit:apple", 2) + overwrite("fruit:pear", 2) + overwrite("fruit:bananna", 3) + overwrite("fruit:orange", 2) +end + +if minetest.get_modpath("mush45") ~= nil then + overwrite("mush45:meal", 4) +end + +if minetest.get_modpath("seaplants") ~= nil then + overwrite("seaplants:kelpgreen", 1) + overwrite("seaplants:kelpbrown", 1) + overwrite("seaplants:seagrassgreen", 1) + overwrite("seaplants:seagrassred", 1) + overwrite("seaplants:seasaladmix", 6) + overwrite("seaplants:kelpgreensalad", 1) + overwrite("seaplants:kelpbrownsalad", 1) + overwrite("seaplants:seagrassgreensalad", 1) + overwrite("seaplants:seagrassgreensalad", 1) +end + +if minetest.get_modpath("mobfcooking") ~= nil then + overwrite("mobfcooking:cooked_pork", 6) + overwrite("mobfcooking:cooked_ostrich", 6) + overwrite("mobfcooking:cooked_beef", 6) + overwrite("mobfcooking:cooked_chicken", 6) + overwrite("mobfcooking:cooked_lamb", 6) + overwrite("mobfcooking:cooked_venison", 6) + overwrite("mobfcooking:cooked_fish", 6) +end + +if minetest.get_modpath("creatures") ~= nil then + overwrite("creatures:meat", 6) + overwrite("creatures:flesh", 3) + overwrite("creatures:rotten_flesh", 3, "", 3) +end + +if minetest.get_modpath("ethereal") then + overwrite("ethereal:strawberry", 1) + overwrite("ethereal:banana", 4) + overwrite("ethereal:pine_nuts", 1) + overwrite("ethereal:bamboo_sprout", 0, "", 3) + overwrite("ethereal:fern_tubers", 1) + overwrite("ethereal:banana_bread", 7) + overwrite("ethereal:mushroom_plant", 2) + overwrite("ethereal:coconut_slice", 2) + overwrite("ethereal:golden_apple", 4, "", nil, 10) + overwrite("ethereal:wild_onion_plant", 2) + overwrite("ethereal:mushroom_soup", 4, "ethereal:bowl") + overwrite("ethereal:mushroom_soup_cooked", 6, "ethereal:bowl") + overwrite("ethereal:hearty_stew", 6, "ethereal:bowl", 3) + overwrite("ethereal:hearty_stew_cooked", 10, "ethereal:bowl") + if minetest.get_modpath("bucket") then + overwrite("ethereal:bucket_cactus", 2, "bucket:bucket_empty") + end + overwrite("ethereal:fish_raw", 2) + overwrite("ethereal:fish_cooked", 5) + overwrite("ethereal:seaweed", 1) + overwrite("ethereal:yellowleaves", 1, "", nil, 1) + overwrite("ethereal:sashimi", 4) +end + +--- mes modifs /début --- + +if minetest.get_modpath("farming") and farming.mod == "redo" then + overwrite("farming:bread", 6) + overwrite("farming:potato", 1) + overwrite("farming:baked_potato", 6) + overwrite("farming:cucumber", 4) + overwrite("farming:tomato", 4) + overwrite("farming:carrot", 3) + overwrite("farming:carrot_gold", 6, "", nil, 10) + overwrite("farming:corn", 3) + overwrite("farming:corn_cob", 5) + overwrite("farming:melon_slice", 2) + overwrite("farming:pumpkin_slice", 1) + overwrite("farming:pumpkin_bread", 9) + overwrite("farming:coffee_cup", 2, "farming:drinking_cup") + overwrite("farming:coffee_cup_hot", 3, "farming:drinking_cup", nil, 2) + overwrite("farming:cookie", 2) + overwrite("farming:chocolate_dark", 3) + overwrite("farming:donut", 4) + overwrite("farming:donut_chocolate", 6) + overwrite("farming:donut_apple", 6) + overwrite("farming:raspberries", 1) + if minetest.get_modpath("vessels") then + overwrite("farming:smoothie_raspberry", 2, "vessels:drinking_glass") + end + overwrite("farming:rhubarb", 1) + overwrite("farming:rhubarb_pie", 6) +end + +if minetest.get_modpath("maptools") then + overwrite("maptools:superapple", 10, "", nil, 20) -- valeur perso pour "Super Apple" => 10 coeurs, 5 pains +end + +if minetest.get_modpath("mobs") ~= nil then + overwrite("mobs:meat", 6) + overwrite("mobs:meat_raw", 3) + overwrite("mobs:rat_cooked", 5) + overwrite("mobs:pork_raw", 4) + overwrite("mobs:pork_cooked", 8) + overwrite("mobs:chicken_raw", 2) + overwrite("mobs:chicken_cooked", 4) + overwrite("mobs:egg", 1) + overwrite("mobs:chicken_egg_fried", 2) +end + +--- mes modifs /fin --- + +if minetest.get_modpath("kpgmobs") ~= nil then + overwrite("kpgmobs:uley", 3) + overwrite("kpgmobs:meat", 6) + overwrite("kpgmobs:rat_cooked", 5) + overwrite("kpgmobs:med_cooked", 4) + if minetest.get_modpath("bucket") then + overwrite("kpgmobs:bucket_milk", 4, "bucket:bucket_empty") + end +end + +if minetest.get_modpath("jkfarming") ~= nil then + overwrite("jkfarming:carrot", 3) + overwrite("jkfarming:corn", 3) + overwrite("jkfarming:melon_part", 2) + overwrite("jkfarming:cake", 3) +end + +if minetest.get_modpath("jkanimals") ~= nil then + overwrite("jkanimals:meat", 6) +end + +if minetest.get_modpath("jkwine") ~= nil then + overwrite("jkwine:grapes", 2) + overwrite("jkwine:winebottle", 1) +end + +-- player-action based hunger changes +function hud.handle_node_actions(pos, oldnode, player, ext) + if not player or not player:is_player() then + return + end + local name = player:get_player_name() + local exhaus = hud.exhaustion[name] + local new = HUD_HUNGER_EXHAUST_PLACE + -- placenode event + if not ext then + new = HUD_HUNGER_EXHAUST_DIG + end + -- assume its send by main timer when movement detected + if not pos and not oldnode then + new = HUD_HUNGER_EXHAUST_MOVE + end + exhaus = exhaus + new + if exhaus > HUD_HUNGER_EXHAUST_LVL then + exhaus = 0 + local h = tonumber(hud.hunger[name]) + h = h - 1 + if h < 0 then h = 0 end + hud.hunger[name] = h + hud.set_hunger(player) + end + hud.exhaustion[name] = exhaus +end + +minetest.register_on_placenode(hud.handle_node_actions) +minetest.register_on_dignode(hud.handle_node_actions) diff --git a/mods/hud/init.lua b/mods/hud/init.lua new file mode 100644 index 00000000..8204aa89 --- /dev/null +++ b/mods/hud/init.lua @@ -0,0 +1,339 @@ +hud = {} + +-- HUD statbar values +hud.health = {} +hud.hunger = {} +hud.air = {} +hud.armor = {} +hud.hunger_out = {} +hud.armor_out = {} + +-- HUD item ids +local health_hud = {} +local hunger_hud = {} +local air_hud = {} +local armor_hud = {} +local armor_hud_bg = {} + +-- default settings + +HUD_SCALEABLE = false +HUD_SIZE = "" + + -- statbar positions +HUD_HEALTH_POS = {x=0.5,y=0.9} +HUD_HEALTH_OFFSET = {x=-175, y=-2} +HUD_HUNGER_POS = {x=0.5,y=0.9} +HUD_HUNGER_OFFSET = {x=15, y=-2} +HUD_AIR_POS = {x=0.5,y=0.9} +HUD_AIR_OFFSET = {x=15,y=-2} +HUD_ARMOR_POS = {x=0.5,y=0.9} +HUD_ARMOR_OFFSET = {x=-175, y=-15} + +-- dirty way to check for new statbars +if dump(minetest.hud_replace_builtin) ~= "nil" then + HUD_SCALEABLE = true + HUD_SIZE = {x=24, y=24} + HUD_HEALTH_POS = {x=0.5,y=1} + HUD_HEALTH_OFFSET = {x=-262, y=-87} + HUD_HUNGER_POS = {x=0.5,y=1} + HUD_HUNGER_OFFSET = {x=15, y=-87} + HUD_AIR_POS = {x=0.5,y=1} + HUD_AIR_OFFSET = {x=15,y=-110} + HUD_ARMOR_POS = {x=0.5,y=1} + HUD_ARMOR_OFFSET = {x=-262, y=-110} +end + +HUD_TICK = 0.1 + +--Some hunger settings +hud.exhaustion = {} -- Exhaustion is experimental! + +HUD_HUNGER_TICK = 800 -- time in seconds after that 1 hunger point is taken +HUD_HUNGER_EXHAUST_DIG = 3 -- exhaustion increased this value after digged node +HUD_HUNGER_EXHAUST_PLACE = 1 -- exhaustion increased this value after placed +HUD_HUNGER_EXHAUST_MOVE = 0.3 -- exhaustion increased this value if player movement detected +HUD_HUNGER_EXHAUST_LVL = 60 -- at what exhaustion player saturation gets lowerd + + + +HUD_ENABLE_HUNGER = minetest.setting_getbool("hud_hunger_enable") +if HUD_ENABLE_HUNGER == nil then + HUD_ENABLE_HUNGER = minetest.setting_getbool("enable_damage") +end + +HUD_SHOW_ARMOR = false +if minetest.get_modpath("3d_armor") ~= nil then + HUD_SHOW_ARMOR = true +end + +--load custom settings +local set = io.open(minetest.get_modpath("hud").."/hud.conf", "r") +if set then + dofile(minetest.get_modpath("hud").."/hud.conf") + set:close() +else + if not HUD_ENABLE_HUNGER then + HUD_AIR_OFFSET = HUD_HUNGER_OFFSET + end +end + +local function hide_builtin(player) + player:hud_set_flags({crosshair = true, hotbar = true, healthbar = false, wielditem = true, breathbar = false}) +end + + +local function custom_hud(player) + local name = player:get_player_name() + +-- fancy hotbar (only when no crafting mod present) + if minetest.get_modpath("crafting") == nil then + player:hud_set_hotbar_image("hud_hotbar.png") + player:hud_set_hotbar_selected_image("hud_hotbar_selected.png") + end + + if minetest.setting_getbool("enable_damage") then + --hunger + if HUD_ENABLE_HUNGER then + player:hud_add({ + hud_elem_type = "statbar", + position = HUD_HUNGER_POS, + size = HUD_SIZE, + text = "hud_hunger_bg.png", + number = 20, + alignment = {x=-1,y=-1}, + offset = HUD_HUNGER_OFFSET, + }) + local h = hud.hunger[name] + if h == nil or h > 20 then h = 20 end + hunger_hud[name] = player:hud_add({ + hud_elem_type = "statbar", + position = HUD_HUNGER_POS, + size = HUD_SIZE, + text = "hud_hunger_fg.png", + number = h, + alignment = {x=-1,y=-1}, + offset = HUD_HUNGER_OFFSET, + }) + end + --health + player:hud_add({ + hud_elem_type = "statbar", + position = HUD_HEALTH_POS, + size = HUD_SIZE, + text = "hud_heart_bg.png", + number = 20, + alignment = {x=-1,y=-1}, + offset = HUD_HEALTH_OFFSET, + }) + health_hud[name] = player:hud_add({ + hud_elem_type = "statbar", + position = HUD_HEALTH_POS, + size = HUD_SIZE, + text = "hud_heart_fg.png", + number = player:get_hp(), + alignment = {x=-1,y=-1}, + offset = HUD_HEALTH_OFFSET, + }) + + --air + air_hud[name] = player:hud_add({ + hud_elem_type = "statbar", + position = HUD_AIR_POS, + size = HUD_SIZE, + text = "hud_air_fg.png", + number = 0, + alignment = {x=-1,y=-1}, + offset = HUD_AIR_OFFSET, + }) + + --armor + if HUD_SHOW_ARMOR then + armor_hud_bg[name] = player:hud_add({ + hud_elem_type = "statbar", + position = HUD_ARMOR_POS, + size = HUD_SIZE, + text = "hud_armor_bg.png", + number = 0, + alignment = {x=-1,y=-1}, + offset = HUD_ARMOR_OFFSET, + }) + armor_hud[name] = player:hud_add({ + hud_elem_type = "statbar", + position = HUD_ARMOR_POS, + size = HUD_SIZE, + text = "hud_armor_fg.png", + number = 0, + alignment = {x=-1,y=-1}, + offset = HUD_ARMOR_OFFSET, + }) + end + end +end + +--needs to be defined for older version of 3darmor +function hud.set_armor() +end + + +if HUD_ENABLE_HUNGER then dofile(minetest.get_modpath("hud").."/hunger.lua") end +if HUD_SHOW_ARMOR then dofile(minetest.get_modpath("hud").."/armor.lua") end + +-- update hud elemtens if value has changed +local function update_hud(player) + local name = player:get_player_name() + --air + local air = tonumber(hud.air[name]) + if player:get_breath() ~= air then + air = player:get_breath() + hud.air[name] = air + if air > 10 then air = 0 end + player:hud_change(air_hud[name], "number", air*2) + end + --health + local hp = tonumber(hud.health[name]) + if player:get_hp() ~= hp then + hp = player:get_hp() + hud.health[name] = hp + player:hud_change(health_hud[name], "number", hp) + end + --armor + local arm_out = tonumber(hud.armor_out[name]) + if not arm_out then arm_out = 0 end + local arm = tonumber(hud.armor[name]) + if not arm then arm = 0 end + if arm_out ~= arm then + hud.armor_out[name] = arm + player:hud_change(armor_hud[name], "number", arm) + -- hide armor bar completely when there is none + if (not armor.def[name].count or armor.def[name].count == 0) and arm == 0 then + player:hud_change(armor_hud_bg[name], "number", 0) + else + player:hud_change(armor_hud_bg[name], "number", 20) + end + end + --hunger + local h_out = tonumber(hud.hunger_out[name]) + local h = tonumber(hud.hunger[name]) + if h_out ~= h then + hud.hunger_out[name] = h + -- bar should not have more than 10 icons + if h>20 then h=20 end + player:hud_change(hunger_hud[name], "number", h) + end +end + +hud.get_hunger = function(player) + local inv = player:get_inventory() + if not inv then return nil end + local hgp = inv:get_stack("hunger", 1):get_count() + if hgp == 0 then + hgp = 21 + inv:set_stack("hunger", 1, ItemStack({name=":", count=hgp})) + else + hgp = hgp + end + return hgp-1 +end + +hud.set_hunger = function(player) + local inv = player:get_inventory() + local name = player:get_player_name() + local value = hud.hunger[name] + if not inv or not value then return nil end + if value > 30 then value = 30 end + if value < 0 then value = 0 end + + inv:set_stack("hunger", 1, ItemStack({name=":", count=value+1})) + + return true +end + +minetest.register_on_joinplayer(function(player) + local name = player:get_player_name() + local inv = player:get_inventory() + inv:set_size("hunger",1) + hud.health[name] = player:get_hp() + if HUD_ENABLE_HUNGER then + hud.hunger[name] = hud.get_hunger(player) + hud.hunger_out[name] = hud.hunger[name] + hud.exhaustion[name] = 0 + end + hud.armor[name] = 0 + hud.armor_out[name] = 0 + local air = player:get_breath() + hud.air[name] = air + minetest.after(0.5, function() + hide_builtin(player) + custom_hud(player) + if HUD_ENABLE_HUNGER then hud.set_hunger(player) end + end) +end) + +minetest.register_on_respawnplayer(function(player) + -- reset player breath since the engine doesnt + player:set_breath(11) + -- reset hunger (and save) + local name = player:get_player_name() + hud.hunger[name] = 20 + if HUD_ENABLE_HUNGER then + minetest.after(0.5, hud.set_hunger, player) + hud.exhaustion[name] = 0 + end +end) + +local main_timer = 0 +local timer = 0 +local timer2 = 0 +minetest.after(2.5, function() + minetest.register_globalstep(function(dtime) + main_timer = main_timer + dtime + timer = timer + dtime + timer2 = timer2 + dtime + if main_timer > HUD_TICK or timer > 4 or timer2 > HUD_HUNGER_TICK then + if main_timer > HUD_TICK then main_timer = 0 end + for _,player in ipairs(minetest.get_connected_players()) do + local name = player:get_player_name() + + -- only proceed if damage is enabled + if minetest.setting_getbool("enable_damage") then + local h = tonumber(hud.hunger[name]) + local hp = player:get_hp() + if HUD_ENABLE_HUNGER and timer > 4 then + -- heal player by 1 hp if not dead and saturation is > 15 (of 30) + if h > 15 and hp > 0 and hud.air[name] > 0 then + player:set_hp(hp+1) + -- or damage player by 1 hp if saturation is < 2 (of 30) + elseif h <= 1 and minetest.setting_getbool("enable_damage") then + if hp-1 >= 0 then player:set_hp(hp-1) end + end + end + -- lower saturation by 1 point after xx seconds + if HUD_ENABLE_HUNGER and timer2 > HUD_HUNGER_TICK then + if h > 0 then + h = h-1 + hud.hunger[name] = h + hud.set_hunger(player) + end + end + -- update current armor level + if HUD_SHOW_ARMOR then hud.get_armor(player) end + + -- update all hud elements + update_hud(player) + + if HUD_ENABLE_HUNGER then + local controls = player:get_player_control() + -- Determine if the player is walking + if controls.up or controls.down or controls.left or controls.right then + hud.handle_node_actions(nil, nil, player) + end + end + end + end + + end + if timer > 4 then timer = 0 end + if timer2 > HUD_HUNGER_TICK then timer2 = 0 end + end) +end) diff --git a/mods/hud/textures/crosshair.png b/mods/hud/textures/crosshair.png new file mode 100644 index 00000000..5822e713 Binary files /dev/null and b/mods/hud/textures/crosshair.png differ diff --git a/mods/hud/textures/hud_air_fg.png b/mods/hud/textures/hud_air_fg.png new file mode 100644 index 00000000..b62c9b02 Binary files /dev/null and b/mods/hud/textures/hud_air_fg.png differ diff --git a/mods/hud/textures/hud_armor_bg.png b/mods/hud/textures/hud_armor_bg.png new file mode 100644 index 00000000..32401003 Binary files /dev/null and b/mods/hud/textures/hud_armor_bg.png differ diff --git a/mods/hud/textures/hud_armor_fg.png b/mods/hud/textures/hud_armor_fg.png new file mode 100644 index 00000000..374f1a9a Binary files /dev/null and b/mods/hud/textures/hud_armor_fg.png differ diff --git a/mods/hud/textures/hud_heart_bg.png b/mods/hud/textures/hud_heart_bg.png new file mode 100644 index 00000000..e2be2768 Binary files /dev/null and b/mods/hud/textures/hud_heart_bg.png differ diff --git a/mods/hud/textures/hud_heart_fg.png b/mods/hud/textures/hud_heart_fg.png new file mode 100644 index 00000000..dc213d84 Binary files /dev/null and b/mods/hud/textures/hud_heart_fg.png differ diff --git a/mods/hud/textures/hud_hotbar.png b/mods/hud/textures/hud_hotbar.png new file mode 100644 index 00000000..cec2ae09 Binary files /dev/null and b/mods/hud/textures/hud_hotbar.png differ diff --git a/mods/hud/textures/hud_hotbar_selected.png b/mods/hud/textures/hud_hotbar_selected.png new file mode 100644 index 00000000..d961f1ae Binary files /dev/null and b/mods/hud/textures/hud_hotbar_selected.png differ diff --git a/mods/hud/textures/hud_hunger_bg.png b/mods/hud/textures/hud_hunger_bg.png new file mode 100644 index 00000000..07e21e7b Binary files /dev/null and b/mods/hud/textures/hud_hunger_bg.png differ diff --git a/mods/hud/textures/hud_hunger_fg.png b/mods/hud/textures/hud_hunger_fg.png new file mode 100644 index 00000000..a5cc2a12 Binary files /dev/null and b/mods/hud/textures/hud_hunger_fg.png differ diff --git a/mods/hud/textures/wieldhand.png b/mods/hud/textures/wieldhand.png new file mode 100644 index 00000000..2307ba4e Binary files /dev/null and b/mods/hud/textures/wieldhand.png differ diff --git a/mods/intweak/README.txt b/mods/intweak/README.txt new file mode 100755 index 00000000..7283cf7d --- /dev/null +++ b/mods/intweak/README.txt @@ -0,0 +1,30 @@ +Minetest mod "Inventory Tweak" +============================== +version: 1.2.2 + +License of source code: WTFPL +----------------------------- +Written 2013 by BlockMen + +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 sounds: +------------------ +intweak_break_tool.ogg by EdgardEdition (CC BY 3.0), http://www.freesound.org/people/EdgardEdition + + +--USING the mod-- +------------------ + +This mod implements two new functions to the players inventory. First is a breaking sound of any tool, +that is played when a tool breakes after the specific number of uses. + +The second new function is Auto-refill. This function replaces broken tools or emptied stacks with others from your inventory. + + +!! +You can disable the auto-refill by changing first line of init.lua to "local auto_refill = false" \ No newline at end of file diff --git a/mods/intweak/depends.txt b/mods/intweak/depends.txt new file mode 100755 index 00000000..331d858c --- /dev/null +++ b/mods/intweak/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/mods/intweak/init.lua b/mods/intweak/init.lua new file mode 100755 index 00000000..faf23562 --- /dev/null +++ b/mods/intweak/init.lua @@ -0,0 +1,65 @@ +local auto_refill = true -- set to false if you dont want get refilled your stack automatic + +function refill(player, stck_name, index) + local inv = player:get_inventory() + for i,stack in ipairs(inv:get_list("main")) do + if stack:get_name() == stck_name then + inv:set_stack("main", index, stack) + stack:clear() + inv:set_stack("main", i, stack) + minetest.log("action", "intweak-mod: refilled stack of" .. player:get_player_name() ) + return + end + end +end + +if auto_refill == true then + minetest.register_on_placenode(function(pos, newnode, placer, oldnode) + if not placer then return end + local index = placer:get_wield_index() + local cnt = placer:get_wielded_item():get_count()-1 + if minetest.setting_getbool("creative_mode") then + return true + else + if cnt == 0 then + minetest.after(0.01, refill, placer, newnode.name, index) + end + end + end) +end + + +local ttyp = {} +local tools = {} + +minetest.register_on_punchnode(function(pos, node, puncher) + if not puncher then return end + if minetest.setting_getbool("creative_mode") then return end + local pn = puncher:get_player_name() + tools[pn] = puncher:get_wielded_item():get_name() + ttyp[pn] = minetest.registered_items[tools[pn]].type + local left = puncher:get_wielded_item():get_wear() + 65535/65--) + local tab = minetest.registered_tools[tools[pn]] + if tab == nil then return end + local left = tonumber(dump(tab["uses"])) + if left == nil then return end + left = puncher:get_wielded_item():get_wear() + 65535/left + if ttyp[pn] == "tool" and left >= 65535 then + minetest.sound_play("intweak_tool_break", {pos = puncher:getpos(), gain = 1, max_hear_distance = 5}) + if auto_refill == true then minetest.after(0.01, refill, puncher, tools[pn], puncher:get_wield_index()) end + end +end) + +minetest.register_on_dignode(function(pos, oldnode, digger) + if not digger then return end + if minetest.setting_getbool("creative_mode") then return end + local pn = digger:get_player_name() + local num = digger:get_wielded_item():get_wear() + local index = digger:get_wield_index() + if num == 0 and ttyp[pn] == "tool" and digger:get_wielded_item():get_name() == "" then + minetest.sound_play("intweak_tool_break", {pos = digger:getpos(),gain = 1, max_hear_distance = 5}) + if auto_refill == true then minetest.after(0.01, refill, digger, tools[pn], index) end + end +end) + +print("[Mod] Inventory Tweak _loaded") diff --git a/mods/intweak/sounds/intweak_tool_break.ogg b/mods/intweak/sounds/intweak_tool_break.ogg new file mode 100755 index 00000000..c68522cd Binary files /dev/null and b/mods/intweak/sounds/intweak_tool_break.ogg differ diff --git a/mods/irc/.gitignore b/mods/irc/.gitignore new file mode 100644 index 00000000..5236e1e4 --- /dev/null +++ b/mods/irc/.gitignore @@ -0,0 +1,2 @@ +*~ + diff --git a/mods/irc/.gitmodules b/mods/irc/.gitmodules new file mode 100644 index 00000000..e56fee3d --- /dev/null +++ b/mods/irc/.gitmodules @@ -0,0 +1,3 @@ +[submodule "src/LuaIRC"] + path = irc + url = https://github.com/ShadowNinja/LuaIRC.git diff --git a/mods/irc/API.md b/mods/irc/API.md new file mode 100644 index 00000000..e518f22b --- /dev/null +++ b/mods/irc/API.md @@ -0,0 +1,90 @@ +IRC Mod API +=========== + +This file documents the Minetest IRC mod API. + +Basics +------ + +In order to allow your mod to interface with this mod, you must add `irc` +to your mod's `depends.txt` file. + + +Reference +--------- + +irc:say([name,] message) +Sends to either the channel (if is nil or not specified), +or to the given user (if is specified). +Example: + irc:say("Hello, Channel!") + irc:say("john1234", "How are you?") + +irc:register_bot_command(name, cmdDef) + Registers a new bot command named . + When an user sends a private message to the bot with the command name, the + command's function is called. + Here's the format of a command definition (): + cmdDef = { + params = " ...", -- A description of the command's parameters + description = "My command", -- A description of what the command does. (one-liner) + func = function(user, args) + -- This function gets called when the command is invoked. + -- is a user table for the user that ran the command. + -- (See the LuaIRC documentation for details.) + -- It contains fields such as 'nick' and 'ident' + -- is a string of arguments to the command (may be "") + -- This function should return boolean success and a message. + end, + }; + Example: + irc:register_bot_command("hello", { + params = "", + description = "Greet user", + func = function(user, param) + return true, "Hello!" + end, + }); + +irc.joined_players[name] + This table holds the players who are currently on the channel (may be less + than the players in the game). It is modified by the /part and /join chat + commands. + Example: + if irc.joined_players["joe"] then + -- Joe is talking on IRC + end + +irc:register_hook(name, func) + Registers a function to be called when an event happens. is the name + of the event, and is the function to be called. See HOOKS below + for more information + Example: + irc:register_hook("OnSend", function(line) + print("SEND: "..line) + end) + +This mod also supplies some utility functions: + +string.expandvars(string, vars) + Expands all occurrences of the pattern "$(varname)" with the value of + 'varname' in the table. Variable names not found on the table + are left verbatim in the string. + Example: + local tpl = "$(foo) $(bar) $(baz)" + local s = tpl:expandvars({foo=1, bar="Hello"}) + assert(s == "1 Hello $(baz)") + +In addition, all the configuration options decribed in `README.txt` are +available to other mods, though they should be considered read-only. Do +not modify these settings at runtime or you might crash the server! + + +Hooks +----- + +The `irc:register_hook` function can register functions to be called +when some events happen. The events supported are the same as the LuaIRC +ones with a few added (mostly for internal use). +See src/LuaIRC/doc/irc.luadoc for more information. + diff --git a/mods/irc/LICENSE.txt b/mods/irc/LICENSE.txt new file mode 100644 index 00000000..b1840321 --- /dev/null +++ b/mods/irc/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright (c) 2013, Diego Martinez (kaeza) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/mods/irc/README.md b/mods/irc/README.md new file mode 100644 index 00000000..414b6e08 --- /dev/null +++ b/mods/irc/README.md @@ -0,0 +1,160 @@ +IRC Mod for Minetest +==================== + +Introduction +------------ +This mod is just a glue between IRC and Minetest. It provides two-way + communication between the in-game chat, and an arbitrary IRC channel. + +The forum topic is at http://minetest.net/forum/viewtopic.php?id=3905 + + +Installing +---------- + +Quick one line install for linux: + + cd && git clone https://github.com/kaeza/minetest-irc.git irc && cd irc && git submodule update --init + +Please change `` to fit your installation of minetest. +For more information, see [the wiki](http://wiki.minetest.net/Installing_mods). + +The Minetest IRC mod uses submodules, therefore you will have to run +`git submodule init` when first installing the mod, and `git submodule update` +every time that a submodule is updated. These steps can be combined as +`git submodule update --init`. + +The Minetest IRC mod also requires LuaSocket. This can be installed using your +package manager on many distributions, for example on Arch Linux: + + # pacman -S lua51-socket + + +Settings +-------- +All settings are changed in `minetest.conf`. If any of these settings +are not set, the default value is used. + + * `irc.server` (string, default "irc.freenode.net") + This is the IRC server the mod connects to. + + * `irc.channel` (string, default "##mt-irc-mod") + The IRC channel to join. + + * `irc.interval` (number, default 2.0) + This prevents the server from flooding. It should be at + least 2.0 but can be higher. After four messages this much + time must pass between folowing messages. + + * `irc.nick` (string, default "MT-FFFFFF") + Nickname used as "proxy" for the in-game chat. + 'F' stands for a random base-16 number. + + * `irc.password` (string, default "") + Password to use when connecting to the server. + + * `irc.NSPass` (string, default nil) + NickServ password. Don't use this if you use SASL authentication. + + * `irc.sasl.pass` (string, default nil) + SASL password, same as nickserv password. + You should use this instead of NickServ authentication + if the server supports it. + + * `irc.sasl.user` (string, default `irc.nick`) + The SASL username. This should normaly be set to your main NickServ account name. + + * `irc.debug` (boolean, default false) + Whether to output debug information. + + * `irc.disable_auto_connect` (boolean, default false) + If false, the bot is connected by default. If true, a player with + the 'irc_admin' privilege has to use the /irc_connect command to + connect to the server. + + * `irc.disable_auto_join` (boolean, default false) + If false, players join the channel automatically upon entering the + game. If true, each user must manually use the /join command to + join the channel. In any case, the players may use the /part + command to opt-out of being in the channel. + + * `irc.send_join_part` (boolean, default true) + Determines whether to send player join and part messages to the channel. + +Usage +----- + +Once the game is connected to the IRC channel, chatting using the 'T' or +F10 hotkeys will send the messages to the channel, and will be visible +by anyone. Also, when someone sends a message to the channel, that text +will be visible in-game. + +Messages that begin with `[off]` from in-game or IRC are not sent to the +other side. + +This mod also adds a few chat commands: + + * `/irc_msg ` + Sends a private message to a IRC user. + + * `/join` + Join the IRC chat. + + * `/part` + Part the IRC chat. + + * `/irc_connect` + Connect the bot manually to the IRC network. + + * `/irc_disconnect` + Disconnect the bot manually from the IRC network (this does not + shutdown the game). + + * `/irc_reconnect` + Equivilant to `/irc_disconnect` followed by `/irc_connect`. + +You can also send private messages from IRC to in-game players. + +To do it, you must send a private message to the bot (set with +the `irc.nick` option above), in the following format: + + @playername message + +For example, if there's a player named `mtuser`, you can send him/her +a private message from IRC with: + + /msg server_nick @mtuser Hello! + +To avoid possible misunderstandings (since all in-game players use the +same IRC user to converse with you), the "proxy" user will reject any +private messages that are not in that format, and will send back a +nice reminder as a private message. + +The bot also supports some basic commands, which are invoked by sending +a private message to it. Use `!list` to get a list of commands, and +`!help ` to get help about a specific command. + + +Thanks +------ + +I'd like to thank the users who supported this mod both on the Minetest +Forums and on the #minetest channel. In no particular order: + +0gb.us, ShadowNinja, Shaun/kizeren, RAPHAEL, DARGON, Calinou, Exio, +vortexlabs/mrtux, marveidemanis, marktraceur, jmf/john\_minetest, +sdzen/Muadtralk, VanessaE, PilzAdam, sfan5, celeron55, KikaRz, +OldCoder, RealBadAngel, and all the people who commented in the +forum topic. Thanks to you all! + + +License +------- + +(C) 2012-2013 Diego Martínez + +See LICENSE.txt for licensing information. + +The files in the irc directory are part of the LuaIRC project. +See irc/LICENSE.txt for licensing information. + diff --git a/mods/irc/botcmds.lua b/mods/irc/botcmds.lua new file mode 100644 index 00000000..42ff8b06 --- /dev/null +++ b/mods/irc/botcmds.lua @@ -0,0 +1,154 @@ + +irc.bot_commands = {} + +function irc:check_botcmd(msg) + local prefix = irc.config.command_prefix + local nick = irc.conn.nick:lower() + local text = msg.args[2] + local nickpart = text:sub(1, #nick + 2):lower() + + -- First check for a nick prefix + if nickpart == nick..": " or + nickpart == nick..", " then + self:bot_command(msg, text:sub(#nick + 3)) + return true + -- Then check for the configured prefix + elseif prefix and text:sub(1, #prefix):lower() == prefix:lower() then + self:bot_command(msg, text:sub(#prefix + 1)) + return true + end + return false +end + + +function irc:bot_command(msg, text) + if text:sub(1, 1) == "@" then + local found, _, player_to, message = text:find("^.([^%s]+)%s(.+)$") + if not minetest.get_player_by_name(player_to) then + irc:reply("User '"..player_to.."' is not in the game.") + return + elseif not irc.joined_players[player_to] then + irc:reply("User '"..player_to.."' is not using IRC.") + return + end + minetest.chat_send_player(player_to, + "PM from "..msg.user.nick.."@IRC: "..message, false) + irc:reply("Message sent!") + return + end + local pos = text:find(" ", 1, true) + local cmd, args + if pos then + cmd = text:sub(1, pos - 1) + args = text:sub(pos + 1) + else + cmd = text + args = "" + end + + if not self.bot_commands[cmd] then + self:reply("Unknown command '"..cmd.."'. Try 'list'." + .." Or use @playername to send a private message") + return + end + + local success, message = self.bot_commands[cmd].func(msg.user, args) + if message then + self:reply(message) + end +end + + +function irc:register_bot_command(name, def) + if (not def.func) or (type(def.func) ~= "function") then + error("Erroneous bot command definition. def.func missing.", 2) + elseif name:sub(1, 1) == "@" then + error("Erroneous bot command name. Command name begins with '@'.", 2) + end + self.bot_commands[name] = def +end + + +irc:register_bot_command("help", { + params = "", + description = "Get help about a command", + func = function(user, args) + if args == "" then + return false, "No command name specified. Use 'list' for a list of commands." + end + + local cmd = irc.bot_commands[args] + if not cmd then + return false, "Unknown command '"..cmdname.."'." + end + + return true, ("Usage: %c%s %s -- %s"):format( + irc.config.command_prefix, + args, + cmd.params or "", + cmd.description or "") + end +}) + + +irc:register_bot_command("list", { + params = "", + description = "List available commands.", + func = function(user, args) + local cmdlist = "Available commands: " + for name, cmd in pairs(irc.bot_commands) do + cmdlist = cmdlist..name..", " + end + return true, cmdlist.." -- Use 'help ' to get" + .." help about a specific command." + end +}) + + +irc:register_bot_command("whereis", { + params = "", + description = "Tell the location of ", + func = function(user, args) + if args == "" then + return false, "Player name required." + end + local player = minetest.get_player_by_name(args) + if not player then + return false, "There is no player named '"..args.."'" + end + local fmt = "Player %s is at (%.2f,%.2f,%.2f)" + local pos = player:getpos() + return true, fmt:format(args, pos.x, pos.y, pos.z) + end +}) + + +local starttime = os.time() +irc:register_bot_command("uptime", { + description = "Tell how much time the server has been up", + func = function(user, args) + local cur_time = os.time() + local diff = os.difftime(cur_time, starttime) + local fmt = "Server has been running for %d:%02d:%02d" + return true, fmt:format( + math.floor(diff / 60 / 60), + math.floor(diff / 60) % 60, + math.floor(diff) % 60 + ) + end +}) + + +irc:register_bot_command("players", { + description = "List the players on the server", + func = function(user, args) + local players = minetest.get_connected_players() + local names = {} + for _, player in pairs(players) do + table.insert(names, player:get_player_name()) + end + return true, "Connected players: " + ..table.concat(names, ", ") + end +}) + diff --git a/mods/irc/callback.lua b/mods/irc/callback.lua new file mode 100644 index 00000000..0356f914 --- /dev/null +++ b/mods/irc/callback.lua @@ -0,0 +1,40 @@ +-- This file is licensed under the terms of the BSD 2-clause license. +-- See LICENSE.txt for details. + + +minetest.register_on_joinplayer(function(player) + local name = player:get_player_name() + if irc.connected and irc.config.send_join_part then + irc:say("*** "..name.." joined the game") + end +end) + + +minetest.register_on_leaveplayer(function(player) + local name = player:get_player_name() + if irc.connected and irc.config.send_join_part then + irc:say("*** "..name.." left the game") + end +end) + + +minetest.register_on_chat_message(function(name, message) + if not irc.connected + or message:sub(1, 1) == "/" + or message:sub(1, 5) == "[off]" + or not irc.joined_players[name] + or (not minetest.check_player_privs(name, {shout=true})) then + return + end + local nl = message:find("\n", 1, true) + if nl then + message = message:sub(1, nl - 1) + end + irc:say(irc:playerMessage(name, message)) +end) + + +minetest.register_on_shutdown(function() + irc:disconnect("Game shutting down.") +end) + diff --git a/mods/irc/chatcmds.lua b/mods/irc/chatcmds.lua new file mode 100644 index 00000000..03599e9c --- /dev/null +++ b/mods/irc/chatcmds.lua @@ -0,0 +1,122 @@ +-- This file is licensed under the terms of the BSD 2-clause license. +-- See LICENSE.txt for details. + +-- Note: This file does NOT conatin every chat command, only general ones. +-- Feature-specific commands (like /join) are in their own files. + + +minetest.register_chatcommand("irc_msg", { + params = " ", + description = "Send a private message to an IRC user", + privs = {shout=true}, + func = function(name, param) + if not irc.connected then + minetest.chat_send_player(name, "Not connected to IRC. Use /irc_connect to connect.") + return + end + local found, _, toname, message = param:find("^([^%s]+)%s(.+)") + if not found then + minetest.chat_send_player(name, "Invalid usage, see /help irc_msg.") + return + end + local toname_l = toname:lower() + local validNick = false + for nick, user in pairs(irc.conn.channels[irc.config.channel].users) do + if nick:lower() == toname_l then + validNick = true + break + end + end + if toname_l:find("serv$") or toname_l:find("bot$") then + validNick = false + end + if not validNick then + minetest.chat_send_player(name, + "You can not message that user. (Hint: They have to be in the channel)") + return + end + irc:say(toname, irc:playerMessage(name, message)) + minetest.chat_send_player(name, "Message sent!") + end +}) + + +minetest.register_chatcommand("irc_names", { + params = "", + description = "List the users in IRC.", + func = function(name, params) + local users = { } + for k, v in pairs(irc.conn.channels[irc.config.channel].users) do + table.insert(users, k) + end + minetest.chat_send_player(name, "Users in IRC: "..table.concat(users, ", ")) + end +}) + + +minetest.register_chatcommand("irc_connect", { + description = "Connect to the IRC server.", + privs = {irc_admin=true}, + func = function(name, param) + if irc.connected then + minetest.chat_send_player(name, "You are already connected to IRC.") + return + end + minetest.chat_send_player(name, "IRC: Connecting...") + irc:connect() + end +}) + + +minetest.register_chatcommand("irc_disconnect", { + params = "[message]", + description = "Disconnect from the IRC server.", + privs = {irc_admin=true}, + func = function(name, param) + if not irc.connected then + minetest.chat_send_player(name, "You are not connected to IRC.") + return + end + if params == "" then + params = "Manual disconnect by "..name + end + irc:disconnect(param) + end +}) + + +minetest.register_chatcommand("irc_reconnect", { + description = "Reconnect to the IRC server.", + privs = {irc_admin=true}, + func = function(name, param) + if not irc.connected then + minetest.chat_send_player(name, "You are not connected to IRC.") + return + end + irc:disconnect("Reconnecting...") + irc:connect() + end +}) + + +minetest.register_chatcommand("irc_quote", { + params = "", + description = "Send a raw command to the IRC server.", + privs = {irc_admin=true}, + func = function(name, param) + if not irc.connected then + minetest.chat_send_player(name, "You are not connected to IRC.") + return + end + irc:queue(param) + minetest.chat_send_player(name, "Command sent!") + end +}) + + +local oldme = minetest.chatcommands["me"].func +minetest.chatcommands["me"].func = function(name, param, ...) + oldme(name, param, ...) + irc:say(("* %s %s"):format(name, param)) +end + diff --git a/mods/irc/config.lua b/mods/irc/config.lua new file mode 100644 index 00000000..8dfd3817 --- /dev/null +++ b/mods/irc/config.lua @@ -0,0 +1,59 @@ +-- This file is licensed under the terms of the BSD 2-clause license. +-- See LICENSE.txt for details. + + +irc.config = {} + +local function setting(stype, name, default) + local value + if stype == "bool" then + value = minetest.setting_getbool("irc."..name) + elseif stype == "string" then + value = minetest.setting_get("irc."..name) + elseif stype == "number" then + value = tonumber(minetest.setting_get("irc."..name)) + end + if value == nil then + value = default + end + irc.config[name] = value +end + +------------------------- +-- BASIC USER SETTINGS -- +------------------------- + +setting("string", "nick") -- Nickname (default "MT-", 6 random hexidecimal characters) +setting("string", "server", "irc.freenode.net") -- Server to connect on joinplayer +setting("number", "port", 6667) -- Port to connect on joinplayer +setting("string", "NSPass") -- NickServ password +setting("string", "sasl.user", irc.config.nick) -- SASL username +setting("string", "sasl.pass") -- SASL password +setting("string", "channel", "##mt-irc-mod") -- Channel to join +setting("string", "key") -- Key for the channel +setting("bool", "send_join_part", true) -- Whether to send player join and part messages to the channel + +----------------------- +-- ADVANCED SETTINGS -- +----------------------- + +setting("string", "password") -- Server password +setting("bool", "secure", false) -- Enable a TLS connection, requires LuaSEC +setting("number", "timeout", 60) -- Underlying socket timeout in seconds. +setting("string", "command_prefix") -- Prefix to use for bot commands +setting("bool", "debug", false) -- Enable debug output +setting("bool", "enable_player_part", true) -- Whether to enable players joining and parting the channel +setting("bool", "auto_join", true) -- Whether to automatically show players in the channel when they join +setting("bool", "auto_connect", true) -- Whether to automatically connect to the server on mod load + +-- Generate a random nickname if one isn't specified. +if not irc.config.nick then + local pr = PseudoRandom(os.time()) + -- Workaround for bad distribution in minetest PRNG implementation. + irc.config.nick = ("MT-%02X%02X%02X"):format( + pr:next(0, 255), + pr:next(0, 255), + pr:next(0, 255) + ) +end + diff --git a/mods/irc/hooks.lua b/mods/irc/hooks.lua new file mode 100644 index 00000000..975c89cb --- /dev/null +++ b/mods/irc/hooks.lua @@ -0,0 +1,254 @@ +-- This file is licensed under the terms of the BSD 2-clause license. +-- See LICENSE.txt for details. + +-- MIME is part of LuaSocket +local b64e = require("mime").b64 + +irc.hooks = {} +irc.registered_hooks = {} + + +-- TODO: Add proper conversion from CP1252 to UTF-8. +local stripped_chars = {"\2", "\31"} +for c = 127, 255 do + table.insert(stripped_chars, string.char(c)) +end +stripped_chars = "["..table.concat(stripped_chars, "").."]" + +local function normalize(text) + -- Strip colors + text = text:gsub("\3[0-9][0-9,]*", "") + + return text:gsub(stripped_chars, "") +end + + +function irc:doHook(conn) + for name, hook in pairs(self.registered_hooks) do + for _, func in pairs(hook) do + conn:hook(name, func) + end + end +end + + +function irc:register_hook(name, func) + self.registered_hooks[name] = self.registered_hooks[name] or {} + table.insert(self.registered_hooks[name], func) +end + + +function irc.hooks.raw(line) + if irc.config.debug then + print("RECV: "..line) + end +end + + +function irc.hooks.send(line) + if irc.config.debug then + print("SEND: "..line) + end +end + + +function irc.hooks.chat(msg) + local channel, text = msg.args[1], msg.args[2] + if text:sub(1, 1) == string.char(1) then + irc.conn:invoke("OnCTCP", msg) + return + end + + if channel == irc.conn.nick then + irc.last_from = msg.user.nick + irc.conn:invoke("PrivateMessage", msg) + else + irc.last_from = channel + irc.conn:invoke("OnChannelChat", msg) + end +end + + +local function get_core_version() + local status = minetest.get_server_status() + local start_pos = select(2, status:find("version=", 1, true)) + local end_pos = status:find(",", start_pos, true) + return status:sub(start_pos + 1, end_pos - 1) +end + + +function irc.hooks.ctcp(msg) + local text = msg.args[2]:sub(2, -2) -- Remove ^C + local args = text:split(' ') + local command = args[1]:upper() + + local function reply(s) + irc:queue(irc.msgs.notice(msg.user.nick, + ("\1%s %s\1"):format(command, s))) + end + + if command == "ACTION" and msg.args[1] == irc.config.channel then + local action = text:sub(8, -1) + irc:sendLocal(("* %s@IRC %s"):format(msg.user.nick, action)) + elseif command == "VERSION" then + reply(("Minetest version %s, IRC mod version %s.") + :format(get_core_version(), irc.version)) + elseif command == "PING" then + reply(args[2]) + elseif command == "TIME" then + reply(os.date()) + end +end + + +function irc.hooks.channelChat(msg) + local text = normalize(msg.args[2]) + + -- Support multiple servers in a channel better by converting: + -- " message" into " message" + -- " *** player joined/left the game" into "*** player joined/left server" + -- and " * player orders a pizza" into "* player@server orders a pizza" + local foundchat, _, chatnick, chatmessage = + text:find("^<([^>]+)> (.*)$") + local foundjoin, _, joinnick = + text:find("^%*%*%* ([^%s]+) joined the game$") + local foundleave, _, leavenick = + text:find("^%*%*%* ([^%s]+) left the game$") + local foundaction, _, actionnick, actionmessage = + text:find("^%* ([^%s]+) (.*)$") + + irc:check_botcmd(msg) + + if text:sub(1, 5) == "[off]" then + return + elseif foundchat then + irc:sendLocal(("<%s@%s> %s") + :format(chatnick, msg.user.nick, chatmessage)) + elseif foundjoin then + irc:sendLocal(("*** %s joined %s") + :format(joinnick, msg.user.nick)) + elseif foundleave then + irc:sendLocal(("*** %s left %s") + :format(leavenick, msg.user.nick)) + elseif foundaction then + irc:sendLocal(("* %s@%s %s") + :format(actionnick, msg.user.nick, actionmessage)) + else + irc:sendLocal(("<%s@IRC> %s"):format(msg.user.nick, text)) + end +end + + +function irc.hooks.pm(msg) + -- Trim prefix if it is found + local text = msg.args[2] + local prefix = irc.config.command_prefix + if prefix and text:sub(1, #prefix) == prefix then + text = text:sub(#prefix + 1) + end + irc:bot_command(msg, text) +end + + +function irc.hooks.kick(channel, target, prefix, reason) + if target == irc.conn.nick then + minetest.chat_send_all("IRC: kicked from "..channel.." by "..prefix.nick..".") + irc:disconnect("Kicked") + else + irc:sendLocal(("-!- %s was kicked from %s by %s [%s]") + :format(target, channel, prefix.nick, reason)) + end +end + + +function irc.hooks.notice(user, target, message) + if user.nick and target == irc.config.channel then + irc:sendLocal("-"..user.nick.."@IRC- "..message) + end +end + + +function irc.hooks.mode(user, target, modes, ...) + local by = "" + if user.nick then + by = " by "..user.nick + end + local options = "" + if select("#", ...) > 0 then + options = " " + end + options = options .. table.concat({...}, " ") + minetest.chat_send_all(("-!- mode/%s [%s%s]%s") + :format(target, modes, options, by)) +end + + +function irc.hooks.nick(user, newNick) + irc:sendLocal(("-!- %s is now known as %s") + :format(user.nick, newNick)) +end + + +function irc.hooks.join(user, channel) + irc:sendLocal(("-!- %s joined %s") + :format(user.nick, channel)) +end + + +function irc.hooks.part(user, channel, reason) + reason = reason or "" + irc:sendLocal(("-!- %s has left %s [%s]") + :format(user.nick, channel, reason)) +end + + +function irc.hooks.quit(user, reason) + irc:sendLocal(("-!- %s has quit [%s]") + :format(user.nick, reason)) +end + + +function irc.hooks.disconnect(message, isError) + irc.connected = false + if isError then + minetest.log("error", "IRC: Error: Disconnected, reconnecting in one minute.") + minetest.chat_send_all("IRC: Error: Disconnected, reconnecting in one minute.") + minetest.after(60, irc.connect, irc) + else + minetest.log("action", "IRC: Disconnected.") + minetest.chat_send_all("IRC: Disconnected.") + end +end + + +function irc.hooks.preregister(conn) + if not (irc.config["sasl.user"] and irc.config["sasl.pass"]) then return end + local authString = b64e( + ("%s\x00%s\x00%s"):format( + irc.config["sasl.user"], + irc.config["sasl.user"], + irc.config["sasl.pass"]) + ) + conn:send("CAP REQ sasl") + conn:send("AUTHENTICATE PLAIN") + conn:send("AUTHENTICATE "..authString) + --LuaIRC will send CAP END +end + + +irc:register_hook("PreRegister", irc.hooks.preregister) +irc:register_hook("OnRaw", irc.hooks.raw) +irc:register_hook("OnSend", irc.hooks.send) +irc:register_hook("DoPrivmsg", irc.hooks.chat) +irc:register_hook("OnPart", irc.hooks.part) +irc:register_hook("OnKick", irc.hooks.kick) +irc:register_hook("OnJoin", irc.hooks.join) +irc:register_hook("OnQuit", irc.hooks.quit) +irc:register_hook("NickChange", irc.hooks.nick) +irc:register_hook("OnCTCP", irc.hooks.ctcp) +irc:register_hook("PrivateMessage", irc.hooks.pm) +irc:register_hook("OnNotice", irc.hooks.notice) +irc:register_hook("OnChannelChat", irc.hooks.channelChat) +irc:register_hook("OnModeChange", irc.hooks.mode) +irc:register_hook("OnDisconnect", irc.hooks.disconnect) + diff --git a/mods/irc/init.lua b/mods/irc/init.lua new file mode 100644 index 00000000..8a6ab85f --- /dev/null +++ b/mods/irc/init.lua @@ -0,0 +1,153 @@ +-- This file is licensed under the terms of the BSD 2-clause license. +-- See LICENSE.txt for details. + +local modpath = minetest.get_modpath(minetest.get_current_modname()) + +package.path = + -- To find LuaIRC's init.lua + modpath.."/?/init.lua;" + -- For LuaIRC to find its files + ..modpath.."/?.lua;" + ..package.path + +-- The build of Lua that Minetest comes with only looks for libraries under +-- /usr/local/share and /usr/local/lib but LuaSocket is often installed under +-- /usr/share and /usr/lib. +if not jit and package.config:sub(1, 1) == "/" then + package.path = package.path.. + ";/usr/share/lua/5.1/?.lua".. + ";/usr/share/lua/5.1/?/init.lua" + package.cpath = package.cpath.. + ";/usr/lib/lua/5.1/?.so" +end + +irc = { + version = "0.2.0", + connected = false, + cur_time = 0, + message_buffer = {}, + recent_message_count = 0, + joined_players = {}, + modpath = modpath, + lib = require("irc"), +} + +-- Compatibility +mt_irc = irc + +dofile(modpath.."/config.lua") +dofile(modpath.."/messages.lua") +dofile(modpath.."/hooks.lua") +dofile(modpath.."/callback.lua") +dofile(modpath.."/chatcmds.lua") +dofile(modpath.."/botcmds.lua") +if irc.config.enable_player_part then + dofile(modpath.."/player_part.lua") +else + setmetatable(irc.joined_players, {__index = function(index) return true end}) +end + +minetest.register_privilege("irc_admin", { + description = "Allow IRC administrative tasks to be performed.", + give_to_singleplayer = true +}) + +local stepnum = 0 + +minetest.register_globalstep(function(dtime) return irc:step(dtime) end) + +function irc:step(dtime) + if stepnum == 3 then + if self.config.auto_connect then + self:connect() + end + end + stepnum = stepnum + 1 + + if not self.connected then return end + + -- Hooks will manage incoming messages and errors + local good, err = xpcall(function() self.conn:think() end, debug.traceback) + if not good then + print(err) + return + end +end + + +function irc:connect() + if self.connected then + minetest.log("error", "IRC: Ignoring attempt to connect when already connected.") + return + end + self.conn = irc.lib.new({ + nick = self.config.nick, + username = "Minetest", + realname = "Minetest", + }) + self:doHook(self.conn) + local good, message = pcall(function() + self.conn:connect({ + host = self.config.server, + port = self.config.port, + password = self.config.password, + timeout = self.config.timeout, + secure = self.config.secure + }) + end) + + if not good then + minetest.log("error", ("IRC: Connection error: %s: %s -- Reconnecting in ten minutes...") + :format(self.config.server, message)) + minetest.after(600, function() self:connect() end) + return + end + + if self.config.NSPass then + self:say("NickServ", "IDENTIFY "..self.config.NSPass) + end + + self.conn:join(self.config.channel, self.config.key) + self.connected = true + minetest.log("action", "IRC: Connected!") + minetest.chat_send_all("IRC: Connected!") +end + + +function irc:disconnect(message) + if self.connected then + --The OnDisconnect hook will clear self.connected and print a disconnect message + self.conn:disconnect(message) + end +end + + +function irc:say(to, message) + if not message then + message = to + to = self.config.channel + end + to = to or self.config.channel + + self:queue(irc.msgs.privmsg(to, message)) +end + + +function irc:reply(message) + if not self.last_from then + return + end + message = message:gsub("[\r\n%z]", " \\n ") + self:say(self.last_from, message) +end + +function irc:send(msg) + if not self.connected then return end + self.conn:send(msg) +end + +function irc:queue(msg) + if not self.connected then return end + self.conn:queue(msg) +end + diff --git a/mods/irc/irc/.gitignore b/mods/irc/irc/.gitignore new file mode 100644 index 00000000..b25c15b8 --- /dev/null +++ b/mods/irc/irc/.gitignore @@ -0,0 +1 @@ +*~ diff --git a/mods/irc/irc/LICENSE.txt b/mods/irc/irc/LICENSE.txt new file mode 100644 index 00000000..0a68ca1f --- /dev/null +++ b/mods/irc/irc/LICENSE.txt @@ -0,0 +1,26 @@ +--[[ + Lua IRC library + + Copyright (c) 2010 Jakob Ovrum + + 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.]] + diff --git a/mods/irc/irc/README.markdown b/mods/irc/irc/README.markdown new file mode 100644 index 00000000..d7c77149 --- /dev/null +++ b/mods/irc/irc/README.markdown @@ -0,0 +1,18 @@ +LuaIRC +============ + +IRC library for Lua. + +Dependencies +------------- + + * [LuaSocket](http://w3.impa.br/~diego/software/luasocket/) + +**Only required if you want to make use of the TLS support** + + * [LuaSec](http://www.inf.puc-rio.br/~brunoos/luasec/) + +Documentation +------------- +Documentation can be automatically generated by passing irc.luadoc (in doc/) to [LuaDoc](http://luadoc.luaforge.net/), or pre-generated documentation can be found in the 'gh-pages' branch, which can also be browsed [online](http://jakobovrum.github.com/LuaIRC/doc/modules/irc.html). + diff --git a/mods/irc/irc/asyncoperations.lua b/mods/irc/irc/asyncoperations.lua new file mode 100644 index 00000000..127d170f --- /dev/null +++ b/mods/irc/irc/asyncoperations.lua @@ -0,0 +1,90 @@ +local irc = require("irc.main") + +local meta = irc.meta + +function meta:send(msg, ...) + if type(msg) == "table" then + msg = msg:toRFC1459() + else + if select("#", ...) > 0 then + msg = msg:format(...) + end + end + self:invoke("OnSend", msg) + + local bytes, err = self.socket:send(msg .. "\r\n") + + if not bytes and err ~= "timeout" and err ~= "wantwrite" then + self:invoke("OnDisconnect", err, true) + self:shutdown() + error(err, errlevel) + end +end + +function meta:queue(msg) + table.insert(self.messageQueue, msg) +end + +local function verify(str, errLevel) + if str:find("^:") or str:find("%s%z") then + error(("malformed parameter '%s' to irc command"):format(str), errLevel) + end + + return str +end + +function meta:sendChat(target, msg) + -- Split the message into segments if it includes newlines. + for line in msg:gmatch("([^\r\n]+)") do + self:queue(irc.msgs.privmsg(verify(target, 3), line)) + end +end + +function meta:sendNotice(target, msg) + -- Split the message into segments if it includes newlines. + for line in msg:gmatch("([^\r\n]+)") do + self:queue(irc.msgs.notice(verify(target, 3), line)) + end +end + +function meta:join(channel, key) + self:queue(irc.msgs.join( + verify(channel, 3), + key and verify(key, 3) or nil)) +end + +function meta:part(channel, reason) + channel = verify(channel, 3) + self:queue(irc.msgs.part(channel, reason)) + if self.track_users then + self.channels[channel] = nil + end +end + +function meta:trackUsers(b) + self.track_users = b + if not b then + for k,v in pairs(self.channels) do + self.channels[k] = nil + end + end +end + +function meta:setMode(t) + local target = t.target or self.nick + local mode = "" + local add, rem = t.add, t.remove + + assert(add or rem, "table contains neither 'add' nor 'remove'") + + if add then + mode = table.concat{"+", verify(add, 3)} + end + + if rem then + mode = table.concat{mode, "-", verify(rem, 3)} + end + + self:queue(irc.msgs.mode(verify(target, 3), mode)) +end + diff --git a/mods/irc/irc/doc/irc.luadoc b/mods/irc/irc/doc/irc.luadoc new file mode 100644 index 00000000..7bf638e6 --- /dev/null +++ b/mods/irc/irc/doc/irc.luadoc @@ -0,0 +1,184 @@ +--- LuaIRC is a low-level IRC library for Lua. +-- All functions raise Lua exceptions on error. +-- +-- Use new to create a new IRC object.
+-- Example:

+-- +--require "irc"
+--local sleep = require "socket".sleep
+--
+--local s = irc.new{nick = "example"}
+--
+--s:hook("OnChat", function(user, channel, message)
+-- print(("[%s] %s: %s"):format(channel, user.nick, message))
+--end)
+--
+--s:connect("irc.example.net")
+--s:join("#example")
+--
+--while true do
+-- s:think()
+-- sleep(0.5)
+--end
+--
+ +module "irc" + +--- Create a new IRC object. Use irc:connect to connect to a server. +-- @param user Table with fields nick, username and realname. +-- The nick field is required. +-- +-- @return Returns a new irc object. +function new(user) + +--- Hook a function to an event. +-- @param name Name of event. +-- @param id Unique tag. +-- @param f Callback function. [defaults to id] +-- @see Hooks +function irc:hook(name, id, f) + +--- Remove previous hooked callback. +-- @param name Name of event. +-- @param id Unique tag. +function irc:unhook(name, id) + +--- Connect irc to an IRC server. +-- @param host Host address. +-- @param port Server port. [default 6667] +function irc:connect(server, port) + +-- @param table Table of connection details +-- @see Connection +function irc:connect(table) + +--- Disconnect irc from the server. +-- @param message Quit message. +function irc:disconnect(message) + +--- Handle incoming data for irc, and invoke previously hooked callbacks based on new server input. +-- You should call this in some kind of main loop, or at least often enough to not time out. +function irc:think() + +--- Look up user info. +-- @param nick Nick of user to query. +-- @return Table with fields userinfo, node, channels and account. +function irc:whois(nick) + +--- Look up topic. +-- Use this to invoke the hooks OnTopic and OnTopicInfo at any time. +-- @param channel Channel to query. +function irc:topic(channel) + +--- Send a IRC message to the server. +-- @param msg Message or raw line to send, excluding newline characters. +-- @param ... Format parameters for msg, with string.format semantics. [optional] +function irc:send(msg, ...) + +--- Queue Message to be sent to the server. +-- @param msg Message to be sent. +function irc:queue(msg) + +--- Send a message to a channel or user. +-- @param target Nick or channel to send to. +-- @param message Message text. +function irc:sendChat(target, message) + +--- Send a notice to a channel or user. +-- @param target Nick or channel to send to. +-- @param message Notice text. +function irc:sendNotice(target, message) + +--- Join a channel. +-- @param channel Channel to join. +-- @param key Channel key. [optional] +function irc:join(channel, key) + +--- Leave a channel. +-- @param channel Channel to leave. +function irc:part(channel) + +--- Turn user information tracking on or off. User tracking is enabled by default. +-- @param b Boolean whether or not to track user information. +function irc:trackUsers(b) + +--- Add/remove modes for a channel or nick. +-- @param t Table with fields target, nick, add and/or rem. target or nick +-- specifies the user or channel to add/remove modes. add is a list of modes to add to the user or channel. +-- rem is a list of modes to remove from the user or channel. +-- @usage Example which sets +m (moderated) for #channel:
+-- irc:setMode{target = "#channel", add = "m"} +function irc:setMode(t) + +--internal +function irc:invoke(name, ...) +function irc:handle(msg) +function irc:shutdown() + +--- Table with connection information. +--
    +--
  • host - Server host name.
  • +--
  • port - Server port. [defaults to 6667]
  • +--
  • timeout - Connect timeout. [defaults to 30]
  • +--
  • password - Server password.
  • +--
  • secure - Boolean to enable TLS connection, pass a params table (described, [luasec]) to control
  • +--
+-- [luasec]: http://www.inf.puc-rio.br/~brunoos/luasec/reference.html +-- @name Connection +-- @class table + +--- Class representing an IRC message. +-- @name Message +-- @class table +-- @field args A list of the command arguments +-- @field command The IRC command +-- @field prefix The prefix of the message +-- @field raw A raw IRC line for this message +-- @field tags A table of IRCv3 tags +-- @field user A User object describing the sender of the message +-- Fields may be missing. +-- Messages have the following methods: +--
    +--
  • toRFC1459() - Returns the message serialized in RFC 1459 format.
  • +--
+ +--- List of hooks you can use with irc:hook. +-- The parameter list describes the parameters passed to the callback function. +--
    +--
  • PreRegister(connection)Useful for CAP commands and SASL.
  • +--
  • OnRaw(line) - (any non false/nil return value assumes line handled and will not be further processed)
  • +--
  • OnSend(line)
  • +--
  • OnDisconnect(message, errorOccurred)
  • +--
  • OnChat(user, channel, message)
  • +--
  • OnNotice(user, channel, message)
  • +--
  • OnJoin(user, channel)*
  • +--
  • OnPart(user, channel)*
  • +--
  • OnQuit(user, message)
  • +--
  • NickChange(user, newnick, channel)*
  • +--
  • NameList(channel, names)
  • +--
  • OnTopic(channel, topic)
  • +--
  • OnTopicInfo(channel, creator, timeCreated)
  • +--
  • OnKick(channel, nick, kicker, reason)* (kicker is a user table)
  • +--
  • OnUserMode(modes)
  • +--
  • OnChannelMode(user, channel, modes)
  • +--
  • OnModeChange(user, target, modes, ...)* ('...' contains mode options such as banmasks)
  • +--
  • DoX(msg)'X' is any IRC command or numeric with the first letter capitalized (eg, DoPing and Do001)
  • +--
+-- * Event also invoked for yourself. +-- Channel passed only when user tracking is enabled +-- @name Hooks +-- @class table + +--- Table with information about a user. +--
    +--
  • server - Server name.
  • +--
  • nick - User nickname.
  • +--
  • username - User username.
  • +--
  • host - User hostname.
  • +--
  • realname - User real name.
  • +--
  • access - User access, available in channel-oriented callbacks. A table containing boolean fields for each access mode that the server supports. Eg: 'o', and 'v'.
  • +--
+-- Fields may be missing. To fill them in, enable user tracking and use irc:whois. +-- @name User +-- @class table + diff --git a/mods/irc/irc/handlers.lua b/mods/irc/irc/handlers.lua new file mode 100644 index 00000000..6af5d107 --- /dev/null +++ b/mods/irc/irc/handlers.lua @@ -0,0 +1,207 @@ +local irc = require("irc.main") + +irc.handlers = {} +local handlers = irc.handlers + +handlers["PING"] = function(conn, msg) + conn:send(irc.Message({command="PONG", args=msg.args})) +end + +handlers["001"] = function(conn, msg) + conn.authed = true + conn.nick = msg.args[1] +end + +handlers["PRIVMSG"] = function(conn, msg) + conn:invoke("OnChat", msg.user, msg.args[1], msg.args[2]) +end + + +handlers["NOTICE"] = function(conn, msg) + conn:invoke("OnNotice", msg.user, msg.args[1], msg.args[2]) +end + +handlers["JOIN"] = function(conn, msg) + local channel = msg.args[1] + if conn.track_users then + if msg.user.nick == conn.nick then + conn.channels[channel] = {users = {}} + else + conn.channels[channel].users[msg.user.nick] = msg.user + end + end + + conn:invoke("OnJoin", msg.user, msg.args[1]) +end + +handlers["PART"] = function(conn, msg) + local channel = msg.args[1] + if conn.track_users then + if msg.user.nick == conn.nick then + conn.channels[channel] = nil + else + conn.channels[channel].users[msg.user.nick] = nil + end + end + conn:invoke("OnPart", msg.user, msg.args[1], msg.args[2]) +end + +handlers["QUIT"] = function(conn, msg) + if conn.track_users then + for chanName, chan in pairs(conn.channels) do + chan.users[msg.user.nick] = nil + end + end + conn:invoke("OnQuit", msg.user, msg.args[1], msg.args[2]) +end + +handlers["NICK"] = function(conn, msg) + local newNick = msg.args[1] + if conn.track_users then + for chanName, chan in pairs(conn.channels) do + local users = chan.users + local oldinfo = users[msg.user.nick] + if oldinfo then + users[newNick] = oldinfo + users[msg.user.nick] = nil + conn:invoke("NickChange", msg.user, newNick, chanName) + end + end + else + conn:invoke("NickChange", msg.user, newNick) + end + if msg.user.nick == conn.nick then + conn.nick = newnick + end +end + +local function needNewNick(conn, msg) + local newnick = conn.nickGenerator(msg.args[2]) + conn:queue(msgs.nick(newnick)) +end + +-- ERR_ERRONEUSNICKNAME (Misspelt but remains for historical reasons) +handlers["432"] = needNewNick + +-- ERR_NICKNAMEINUSE +handlers["433"] = needNewNick + +-- RPL_ISUPPORT +handlers["005"] = function(conn, msg) + local arglen = #msg.args + -- Skip first and last parameters (nick and info) + for i = 2, arglen - 1 do + local item = msg.args[i] + local pos = item:find("=") + if pos then + conn.supports[item:sub(1, pos - 1)] = item:sub(pos + 1) + else + conn.supports[item] = true + end + end +end + +-- RPL_MOTDSTART +handlers["375"] = function(conn, msg) + conn.motd = "" +end + +-- RPL_MOTD +handlers["372"] = function(conn, msg) + -- MOTD lines have a "- " prefix, strip it. + conn.motd = conn.motd .. msg.args[2]:sub(3) .. '\n' +end + +-- NAMES list +handlers["353"] = function(conn, msg) + local chanType = msg.args[2] + local channel = msg.args[3] + local names = msg.args[4] + if conn.track_users then + conn.channels[channel] = conn.channels[channel] or {users = {}, type = chanType} + + local users = conn.channels[channel].users + for nick in names:gmatch("(%S+)") do + local access, name = irc.parseNick(conn, nick) + users[name] = {access = access} + end + end +end + +-- End of NAMES list +handlers["366"] = function(conn, msg) + if conn.track_users then + conn:invoke("NameList", msg.args[2], msg.args[3]) + end +end + +-- No topic +handlers["331"] = function(conn, msg) + conn:invoke("OnTopic", msg.args[2], nil) +end + +handlers["TOPIC"] = function(conn, msg) + conn:invoke("OnTopic", msg.args[1], msg.args[2]) +end + +handlers["332"] = function(conn, msg) + conn:invoke("OnTopic", msg.args[2], msg.args[3]) +end + +-- Topic creation info +handlers["333"] = function(conn, msg) + conn:invoke("OnTopicInfo", msg.args[2], msg.args[3], tonumber(msg.args[4])) +end + +handlers["KICK"] = function(conn, msg) + conn:invoke("OnKick", msg.args[1], msg.args[2], msg.user, msg.args[3]) +end + +-- RPL_UMODEIS +-- To answer a query about a client's own mode, RPL_UMODEIS is sent back +handlers["221"] = function(conn, msg) + conn:invoke("OnUserMode", msg.args[2]) +end + +-- RPL_CHANNELMODEIS +-- The result from common irc servers differs from that defined by the rfc +handlers["324"] = function(conn, msg) + conn:invoke("OnChannelMode", msg.args[2], msg.args[3]) +end + +handlers["MODE"] = function(conn, msg) + local target = msg.args[1] + local modes = msg.args[2] + local optList = {} + for i = 3, #msg.args do + table.insert(optList, msg.args[i]) + end + if conn.track_users and target ~= conn.nick then + local add = true + local argNum = 1 + irc.updatePrefixModes(conn) + for c in modes:gmatch(".") do + if c == "+" then add = true + elseif c == "-" then add = false + elseif conn.modeprefix[c] then + local nick = optList[argNum] + argNum = argNum + 1 + local user = conn.channels[target].users[nick] + user.access = user.access or {} + local access = user.access + access[c] = add + if c == "o" then access.op = add + elseif c == "v" then access.voice = add + end + end + end + end + conn:invoke("OnModeChange", msg.user, target, modes, unpack(optList)) +end + +handlers["ERROR"] = function(conn, msg) + conn:invoke("OnDisconnect", msg.args[1], true) + conn:shutdown() + error(msg.args[1], 3) +end + diff --git a/mods/irc/irc/init.lua b/mods/irc/irc/init.lua new file mode 100644 index 00000000..e2eb71e8 --- /dev/null +++ b/mods/irc/irc/init.lua @@ -0,0 +1,9 @@ + +local irc = require("irc.main") +require("irc.util") +require("irc.asyncoperations") +require("irc.handlers") +require("irc.messages") + +return irc + diff --git a/mods/irc/irc/main.lua b/mods/irc/irc/main.lua new file mode 100644 index 00000000..c3a7c8f6 --- /dev/null +++ b/mods/irc/irc/main.lua @@ -0,0 +1,241 @@ +local socket = require "socket" + +-- Module table +local irc = {} + +local meta = {} +meta.__index = meta +irc.meta = meta + +local meta_preconnect = {} +function meta_preconnect.__index(o, k) + local v = rawget(meta_preconnect, k) + + if not v and meta[k] then + error(("field '%s' is not accessible before connecting"):format(k), 2) + end + return v +end + +function irc.new(data) + local o = { + nick = assert(data.nick, "Field 'nick' is required"); + username = data.username or "lua"; + realname = data.realname or "Lua owns"; + nickGenerator = data.nickGenerator or irc.defaultNickGenerator; + hooks = {}; + track_users = true; + supports = {}; + messageQueue = {}; + lastThought = 0; + recentMessages = 0; + } + assert(irc.checkNick(o.nick), "Erroneous nickname passed to irc.new") + return setmetatable(o, meta_preconnect) +end + +function meta:hook(name, id, f) + f = f or id + self.hooks[name] = self.hooks[name] or {} + self.hooks[name][id] = f + return id or f +end +meta_preconnect.hook = meta.hook + + +function meta:unhook(name, id) + local hooks = self.hooks[name] + + assert(hooks, "no hooks exist for this event") + assert(hooks[id], "hook ID not found") + + hooks[id] = nil +end +meta_preconnect.unhook = meta.unhook + +function meta:invoke(name, ...) + local hooks = self.hooks[name] + if hooks then + for id, f in pairs(hooks) do + if f(...) then + return true + end + end + end +end + +function meta_preconnect:connect(_host, _port) + local host, port, password, secure, timeout + + if type(_host) == "table" then + host = _host.host + port = _host.port + timeout = _host.timeout + password = _host.password + secure = _host.secure + else + host = _host + port = _port + end + + host = host or error("host name required to connect", 2) + port = port or 6667 + + local s = socket.tcp() + + s:settimeout(timeout or 30) + assert(s:connect(host, port)) + + if secure then + local work, ssl = pcall(require, "ssl") + if not work then + error("LuaSec required for secure connections", 2) + end + + local params + if type(secure) == "table" then + params = secure + else + params = {mode = "client", protocol = "tlsv1"} + end + + s = ssl.wrap(s, params) + local success, errmsg = s:dohandshake() + if not success then + error(("could not make secure connection: %s"):format(errmsg), 2) + end + end + + self.socket = s + setmetatable(self, meta) + + self:queue(irc.Message({command="CAP", args={"REQ", "multi-prefix"}})) + + self:invoke("PreRegister", self) + self:queue(irc.Message({command="CAP", args={"END"}})) + + if password then + self:queue(irc.Message({command="PASS", args={password}})) + end + + self:queue(irc.msgs.nick(self.nick)) + self:queue(irc.Message({command="USER", args={self.username, "0", "*", self.realname}})) + + self.channels = {} + + s:settimeout(0) + + repeat + self:think() + socket.sleep(0.1) + until self.authed +end + +function meta:disconnect(message) + message = message or "Bye!" + + self:invoke("OnDisconnect", message, false) + self:send(irc.msgs.quit(message)) + + self:shutdown() +end + +function meta:shutdown() + self.socket:close() + setmetatable(self, nil) +end + +local function getline(self, errlevel) + local line, err = self.socket:receive("*l") + + if not line and err ~= "timeout" and err ~= "wantread" then + self:invoke("OnDisconnect", err, true) + self:shutdown() + error(err, errlevel) + end + + return line +end + +function meta:think() + while true do + local line = getline(self, 3) + if line and #line > 0 then + if not self:invoke("OnRaw", line) then + self:handle(irc.Message({raw=line})) + end + else + break + end + end + + -- Handle outgoing message queue + local diff = socket.gettime() - self.lastThought + self.recentMessages = self.recentMessages - (diff * 2) + if self.recentMessages < 0 then + self.recentMessages = 0 + end + for i = 1, #self.messageQueue do + if self.recentMessages > 4 then + break + end + self:send(table.remove(self.messageQueue, 1)) + self.recentMessages = self.recentMessages + 1 + end + self.lastThought = socket.gettime() +end + +local handlers = handlers + +function meta:handle(msg) + local handler = irc.handlers[msg.command] + if handler then + handler(self, msg) + end + self:invoke("Do" .. irc.capitalize(msg.command), msg) +end + +local whoisHandlers = { + ["311"] = "userinfo"; + ["312"] = "node"; + ["319"] = "channels"; + ["330"] = "account"; -- Freenode + ["307"] = "registered"; -- Unreal +} + +function meta:whois(nick) + self:send(irc.msgs.whois(nick)) + + local result = {} + + while true do + local line = getline(self, 3) + if line then + local msg = irc.Message({raw=line}) + + local handler = whoisHandlers[msg.command] + if handler then + result[handler] = msg.args + elseif msg.command == "318" then + break + else + self:handle(msg) + end + end + end + + if result.account then + result.account = result.account[3] + elseif result.registered then + result.account = result.registered[2] + end + + return result +end + +function meta:topic(channel) + self:queue(irc.msgs.topic(channel)) +end + +return irc + diff --git a/mods/irc/irc/messages.lua b/mods/irc/irc/messages.lua new file mode 100644 index 00000000..2f753edc --- /dev/null +++ b/mods/irc/irc/messages.lua @@ -0,0 +1,200 @@ +local irc = require("irc.main") + +irc.msgs = {} +local msgs = irc.msgs + +local msg_meta = {} +msg_meta.__index = msg_meta + +function irc.Message(opts) + opts = opts or {} + setmetatable(opts, msg_meta) + if opts.raw then + opts:fromRFC1459(opts.raw) + end + return opts +end + +local tag_escapes = { + [";"] = "\\:", + [" "] = "\\s", + ["\0"] = "\\0", + ["\\"] = "\\\\", + ["\r"] = "\\r", + ["\n"] = "\\n", +} + +local tag_unescapes = {} +for x, y in pairs(tag_escapes) do tag_unescapes[y] = x end + +function msg_meta:toRFC1459() + local s = "" + + if self.tags then + s = s.."@" + for key, value in pairs(self.tags) do + s = s..key + if value ~= true then + value = value:gsub("[; %z\\\r\n]", tag_escapes) + s = s.."="..value + end + s = s..";" + end + -- Strip trailing semicolon + s = s:sub(1, -2) + s = s.." " + end + + s = s..self.command + + local argnum = #self.args + for i = 1, argnum do + local arg = self.args[i] + local startsWithColon = (arg:sub(1, 1) == ":") + local hasSpace = arg:find(" ") + if i == argnum and (hasSpace or startsWithColon) then + s = s.." :" + else + assert(not hasSpace and not startsWithColon, + "Message arguments can not be " + .."serialized to RFC1459 format") + s = s.." " + end + s = s..arg + end + + return s +end + +local function parsePrefix(prefix) + local user = {} + user.nick, user.username, user.host = prefix:match("^(.+)!(.+)@(.+)$") + if not user.nick and prefix:find(".", 1, true) then + user.server = prefix + end + return user +end + +function msg_meta:fromRFC1459(line) + -- IRCv3 tags + if line:sub(1, 1) == "@" then + self.tags = {} + local space = line:find(" ", 1, true) + -- For each semicolon-delimited section from after + -- the @ character to before the space character. + for tag in line:sub(2, space - 1):gmatch("([^;]+)") do + local eq = tag:find("=", 1, true) + if eq then + self.tags[tag:sub(1, eq - 1)] = + tag:sub(eq + 1):gsub("\\([:s0\\rn])", tag_unescapes) + else + self.tags[tag] = true + end + end + line = line:sub(space + 1) + end + + if line:sub(1, 1) == ":" then + local space = line:find(" ", 1, true) + self.prefix = line:sub(2, space - 1) + self.user = parsePrefix(self.prefix) + line = line:sub(space + 1) + end + + local pos + self.command, pos = line:match("(%S+)()") + line = line:sub(pos) + + self.args = self.args or {} + for pos, param in line:gmatch("()(%S+)") do + if param:sub(1, 1) == ":" then + param = line:sub(pos + 1) + table.insert(self.args, param) + break + end + table.insert(self.args, param) + end +end + +function msgs.privmsg(to, text) + return irc.Message({command="PRIVMSG", args={to, text}}) +end + +function msgs.notice(to, text) + return irc.Message({command="NOTICE", args={to, text}}) +end + +function msgs.action(to, text) + return irc.Message({command="PRIVMSG", args={to, ("\x01ACTION %s\x01"):format(text)}}) +end + +function msgs.ctcp(command, to, args) + s = "\x01"..command + if args then + s = ' '..args + end + s = s..'\x01' + return irc.Message({command="PRIVMSG", args={to, s}}) +end + +function msgs.kick(channel, target, reason) + return irc.Message({command="KICK", args={channel, target, reason}}) +end + +function msgs.join(channel, key) + return irc.Message({command="JOIN", args={channel, key}}) +end + +function msgs.part(channel, reason) + return irc.Message({command="PART", args={channel, reason}}) +end + +function msgs.quit(reason) + return irc.Message({command="QUIT", args={reason}}) +end + +function msgs.kill(target, reason) + return irc.Message({command="KILL", args={target, reason}}) +end + +function msgs.kline(time, mask, reason, operreason) + local args = nil + if time then + args = {time, mask, reason..'|'..operreason} + else + args = {mask, reason..'|'..operreason} + end + return irc.Message({command="KLINE", args=args}) +end + +function msgs.whois(nick, server) + local args = nil + if server then + args = {server, nick} + else + args = {nick} + end + return irc.Message({command="WHOIS", args=args}) +end + +function msgs.topic(channel, text) + return irc.Message({command="TOPIC", args={channel, text}}) +end + +function msgs.invite(channel, target) + return irc.Message({command="INVITE", args={channel, target}}) +end + +function msgs.nick(nick) + return irc.Message({command="NICK", args={nick}}) +end + +function msgs.mode(target, modes) + -- We have to split the modes parameter because the mode string and + -- each parameter are seperate arguments (The first command is incorrect) + -- MODE foo :+ov Nick1 Nick2 + -- MODE foo +ov Nick1 Nick2 + local mt = irc.split(modes) + return irc.Message({command="MODE", args={target, unpack(mt)}}) +end + diff --git a/mods/irc/irc/set.lua b/mods/irc/irc/set.lua new file mode 100644 index 00000000..feec00dc --- /dev/null +++ b/mods/irc/irc/set.lua @@ -0,0 +1,52 @@ +local select = require "socket".select + +local m = {} +local set = {} +set.__index = set + +function m.new(t) + t.connections = {} + t.sockets = {} + return setmetatable(t, set) +end + +function set:add(connection) + local socket = connection.socket + insert(self.sockets, socket) + + self.connections[socket] = connection + insert(self.connections, connection) +end + +function set:remove(connection) + local socket = connection.socket + self.connections[socket] = nil + for k, s in ipairs(self.sockets) do + if socket == s then + remove(self.sockets, k) + remove(self.connections, k) + break + end + end +end + +function set:select() + local read, write, err = select(self.sockets, nil, self.timeout) + + if read then + for k, socket in ipairs(read) do + read[k] = self.connections[socket] + end + end + + return read, err +end + +-- Select - but if it times out, it returns all connections. +function set:poll() + local read, err = self:select() + return err == "timeout" and self.connections or read +end + +return m + diff --git a/mods/irc/irc/util.lua b/mods/irc/irc/util.lua new file mode 100644 index 00000000..92bb76de --- /dev/null +++ b/mods/irc/irc/util.lua @@ -0,0 +1,116 @@ +local irc = require("irc.main") + +function irc.parseNick(conn, nick) + local access = {} + irc.updatePrefixModes(conn) + local namestart = 1 + for i = 1, #nick - 1 do + local c = nick:sub(i, i) + if conn.prefixmode[c] then + access[conn.prefixmode[c]] = true + else + namestart = i + break + end + end + access.op = access.o + access.voice = access.v + local name = nick:sub(namestart) + return access, name +end + +function irc.updatePrefixModes(conn) + if conn.prefixmode and conn.modeprefix then + return + end + conn.prefixmode = {} + conn.modeprefix = {} + if conn.supports.PREFIX then + local modes, prefixes = conn.supports.PREFIX:match("%(([^%)]*)%)(.*)") + for i = 1, #modes do + conn.prefixmode[prefixes:sub(i, i)] = modes:sub(i, i) + conn.modeprefix[ modes:sub(i, i)] = prefixes:sub(i, i) + end + else + conn.prefixmode['@'] = 'o' + conn.prefixmode['+'] = 'v' + conn.modeprefix['o'] = '@' + conn.modeprefix['v'] = '+' + end +end + +-- mIRC markup scheme (de-facto standard) +irc.color = { + black = 1, + blue = 2, + green = 3, + red = 4, + lightred = 5, + purple = 6, + brown = 7, + yellow = 8, + lightgreen = 9, + navy = 10, + cyan = 11, + lightblue = 12, + violet = 13, + gray = 14, + lightgray = 15, + white = 16 +} + +local colByte = string.char(3) +setmetatable(irc.color, {__call = function(_, text, colornum) + colornum = (type(colornum) == "string" and + assert(irc.color[colornum], "Invalid color '"..colornum.."'") or + colornum) + return table.concat{colByte, tostring(colornum), text, colByte} +end}) + +local boldByte = string.char(2) +function irc.bold(text) + return boldByte..text..boldByte +end + +local underlineByte = string.char(31) +function irc.underline(text) + return underlineByte..text..underlineByte +end + +function irc.checkNick(nick) + return nick:find("^[a-zA-Z_%-%[|%]%^{|}`][a-zA-Z0-9_%-%[|%]%^{|}`]*$") ~= nil +end + +function irc.defaultNickGenerator(nick) + -- LuaBot -> LuaCot -> LuaCou -> ... + -- We change a random character rather than appending to the + -- nickname as otherwise the new nick could exceed the ircd's + -- maximum nickname length. + local randindex = math.random(1, #nick) + local randchar = string.sub(nick, randindex, randindex) + local b = string.byte(randchar) + b = b + 1 + if b < 65 or b > 125 then + b = 65 + end + -- Get the halves before and after the changed character + local first = string.sub(nick, 1, randindex - 1) + local last = string.sub(nick, randindex + 1, #nick) + nick = first .. string.char(b) .. last -- Insert the new charachter + return nick +end + +function irc.capitalize(text) + -- Converts first character to upercase and the rest to lowercase. + -- "PING" -> "Ping" | "hello" -> "Hello" | "123" -> "123" + return text:sub(1, 1):upper()..text:sub(2):lower() +end + +function irc.split(str, sep) + local t = {} + for s in str:gmatch("%S+") do + table.insert(t, s) + end + return t +end + diff --git a/mods/irc/messages.lua b/mods/irc/messages.lua new file mode 100644 index 00000000..45ef4c41 --- /dev/null +++ b/mods/irc/messages.lua @@ -0,0 +1,13 @@ +-- This file is licensed under the terms of the BSD 2-clause license. +-- See LICENSE.txt for details. + +irc.msgs = irc.lib.msgs + +function irc:sendLocal(message) + minetest.chat_send_all(message) +end + +function irc:playerMessage(name, message) + return ("<%s> %s"):format(name, message) +end + diff --git a/mods/irc/player_part.lua b/mods/irc/player_part.lua new file mode 100644 index 00000000..d39d2abd --- /dev/null +++ b/mods/irc/player_part.lua @@ -0,0 +1,69 @@ +-- This file is licensed under the terms of the BSD 2-clause license. +-- See LICENSE.txt for details. + + +function irc:player_part(name) + if not self.joined_players[name] then + minetest.chat_send_player(name, "IRC: You are not in the channel.") + return + end + self.joined_players[name] = nil + minetest.chat_send_player(name, "IRC: You are now out of the channel.") +end + +function irc:player_join(name) + if self.joined_players[name] then + minetest.chat_send_player(name, "IRC: You are already in the channel.") + return + end + self.joined_players[name] = true + minetest.chat_send_player(name, "IRC: You are now in the channel.") +end + + +minetest.register_chatcommand("join", { + description = "Join the IRC channel", + privs = {shout=true}, + func = function(name, param) + irc:player_join(name) + end +}) + +minetest.register_chatcommand("part", { + description = "Part the IRC channel", + privs = {shout=true}, + func = function(name, param) + irc:player_part(name) + end +}) + +minetest.register_chatcommand("who", { + description = "Tell who is currently on the channel", + privs = {}, + func = function(name, param) + local s = "" + for name, _ in pairs(irc.joined_players) do + s = s..", "..name + end + minetest.chat_send_player(name, "Players On Channel:"..s) + end +}) + + +minetest.register_on_joinplayer(function(player) + local name = player:get_player_name() + irc.joined_players[name] = irc.config.auto_join +end) + + +minetest.register_on_leaveplayer(function(player) + local name = player:get_player_name() + irc.joined_players[name] = nil +end) + +function irc:sendLocal(message) + for name, _ in pairs(self.joined_players) do + minetest.chat_send_player(name, message) + end +end + diff --git a/mods/item_drop/README.txt b/mods/item_drop/README.txt new file mode 100644 index 00000000..fe43054d --- /dev/null +++ b/mods/item_drop/README.txt @@ -0,0 +1,42 @@ +===ITEM_DROP MOD for MINETEST-C55=== +by PilzAdam + +Introduction: +This mod adds Minecraft like drop/pick up of items to Minetest. + +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: +Just install it an everything works. + +For developers: +You dont have to use get_drops() anymore because of changes in the +builtin files of minetest. + +License: +Sourcecode: WTFPL (see below) +Sound: 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/item_drop/init.lua b/mods/item_drop/init.lua new file mode 100644 index 00000000..619f9b83 --- /dev/null +++ b/mods/item_drop/init.lua @@ -0,0 +1,109 @@ +minetest.register_globalstep(function(dtime) + for _,player in ipairs(minetest.get_connected_players()) do + if player:get_hp() > 0 or not minetest.setting_getbool("enable_damage") then + local pos = player:getpos() + local inv = player:get_inventory() + + for _,object in ipairs(minetest.get_objects_inside_radius(pos, 1)) do + if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "__builtin:item" then + if inv and inv:room_for_item("main", ItemStack(object:get_luaentity().itemstring)) then + inv:add_item("main", ItemStack(object:get_luaentity().itemstring)) + if object:get_luaentity().itemstring ~= "" then + minetest.sound_play("item_drop_pickup", {pos = pos, gain = 0.5, max_hear_distance = 16}) + end + object:get_luaentity().itemstring = "" + object:remove() + end + end + end + + for _,object in ipairs(minetest.get_objects_inside_radius(pos, 1)) do + if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "__builtin:item" then + if object:get_luaentity().collect then + if inv and inv:room_for_item("main", ItemStack(object:get_luaentity().itemstring)) then + local pos1 = pos + pos1.y = pos1.y+0.2 + local pos2 = object:getpos() + local vec = {x=pos1.x-pos2.x, y=pos1.y-pos2.y, z=pos1.z-pos2.z} + vec.x = vec.x*3 + vec.y = vec.y*3 + vec.z = vec.z*3 + object:setvelocity(vec) + object:get_luaentity().physical_state = false + object:get_luaentity().object:set_properties({ + physical = false + }) + + minetest.after(1, function(args) + local lua = object:get_luaentity() + if object == nil or lua == nil or lua.itemstring == nil then + return + end + if inv:room_for_item("main", ItemStack(object:get_luaentity().itemstring)) then + inv:add_item("main", ItemStack(object:get_luaentity().itemstring)) + if object:get_luaentity().itemstring ~= "" then + minetest.sound_play("item_drop_pickup", {pos = pos, gain = 0.3, max_hear_distance = 16}) + end + object:get_luaentity().itemstring = "" + object:remove() + else + object:setvelocity({x = 0,y = 0,z = 0}) + object:get_luaentity().physical_state = true + object:get_luaentity().object:set_properties({ + physical = true + }) + end + end, {player, object}) + + end + end + end + end + end + end +end) + +function minetest.handle_node_drops(pos, drops, digger) + local inv + if minetest.setting_getbool("creative_mode") and digger and digger:is_player() then + inv = digger:get_inventory() + end + for _,item in ipairs(drops) do + local count, name + if type(item) == "string" then + count = 1 + name = item + else + count = item:get_count() + name = item:get_name() + end + if not inv or not inv:contains_item("main", ItemStack(name)) then + for i=1,count do + local obj = minetest.add_item(pos, name) + if obj ~= nil then + obj:get_luaentity().collect = true + local x = math.random(1, 5) + if math.random(1,2) == 1 then + x = -x + end + local z = math.random(1, 5) + if math.random(1,2) == 1 then + z = -z + end + obj:setvelocity({x=1/x, y=obj:getvelocity().y, z=1/z}) + + -- FIXME this doesnt work for deactiveted objects + if minetest.setting_get("remove_items") and tonumber(minetest.setting_get("remove_items")) then + minetest.after(tonumber(minetest.setting_get("remove_items")), function(obj) + obj:remove() + end, obj) + end + end + end + end + end +end + +if minetest.setting_getbool("log_mods") then + minetest.log("action", "[item_drop] loaded.") +end diff --git a/mods/item_drop/init.lua~ b/mods/item_drop/init.lua~ new file mode 100644 index 00000000..e4bce006 --- /dev/null +++ b/mods/item_drop/init.lua~ @@ -0,0 +1,116 @@ +minetest.register_globalstep(function(dtime) + for _,player in ipairs(minetest.get_connected_players()) do + if player:get_hp() > 0 or not minetest.setting_getbool("enable_damage") then + local pos = player:getpos() + pos.y = pos.y+0.5 + local inv = player:get_inventory() + + for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 1)) do + if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "__builtin:item" then + if inv and inv:room_for_item("main", ItemStack(object:get_luaentity().itemstring)) then + inv:add_item("main", ItemStack(object:get_luaentity().itemstring)) + if object:get_luaentity().itemstring ~= "" then + minetest.sound_play("item_drop_pickup", { + to_player = player:get_player_name(), + gain = 0.4, + }) + end + object:get_luaentity().itemstring = "" + object:remove() + end + end + end + + for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 2)) do + if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "__builtin:item" then + if object:get_luaentity().collect then + if inv and inv:room_for_item("main", ItemStack(object:get_luaentity().itemstring)) then + local pos1 = pos + pos1.y = pos1.y+0.2 + local pos2 = object:getpos() + local vec = {x=pos1.x-pos2.x, y=pos1.y-pos2.y, z=pos1.z-pos2.z} + vec.x = vec.x*3 + vec.y = vec.y*3 + vec.z = vec.z*3 + object:setvelocity(vec) + object:get_luaentity().physical_state = false + object:get_luaentity().object:set_properties({ + physical = false + }) + + minetest.after(1, function(args) + local lua = object:get_luaentity() + if object == nil or lua == nil or lua.itemstring == nil then + return + end + if inv:room_for_item("main", ItemStack(object:get_luaentity().itemstring)) then + inv:add_item("main", ItemStack(object:get_luaentity().itemstring)) + if object:get_luaentity().itemstring ~= "" then + minetest.sound_play("item_drop_pickup", { + to_player = player:get_player_name(), + gain = 0.4, + }) + end + object:get_luaentity().itemstring = "" + object:remove() + else + object:setvelocity({x=0,y=0,z=0}) + object:get_luaentity().physical_state = true + object:get_luaentity().object:set_properties({ + physical = true + }) + end + end, {player, object}) + + end + end + end + end + end + end +end) + +function minetest.handle_node_drops(pos, drops, digger) + local inv + if minetest.setting_getbool("creative_mode") and digger and digger:is_player() then + inv = digger:get_inventory() + end + for _,item in ipairs(drops) do + local count, name + if type(item) == "string" then + count = 1 + name = item + else + count = item:get_count() + name = item:get_name() + end + if not inv or not inv:contains_item("main", ItemStack(name)) then + for i=1,count do + local obj = minetest.env:add_item(pos, name) + if obj ~= nil then + obj:get_luaentity().collect = true + local x = math.random(1, 5) + if math.random(1,2) == 1 then + x = -x + end + local z = math.random(1, 5) + if math.random(1,2) == 1 then + z = -z + end + obj:setvelocity({x=1/x, y=obj:getvelocity().y, z=1/z}) + + -- FIXME this doesnt work for deactiveted objects + if minetest.setting_get("remove_items") and tonumber(minetest.setting_get("remove_items")) then + minetest.after(tonumber(minetest.setting_get("remove_items")), function(obj) + obj:remove() + end, obj) + end + end + end + end + end +end + +if minetest.setting_get("log_mods") then + minetest.log("action", "item_drop loaded") +end diff --git a/mods/item_drop/sounds/item_drop_pickup.1.ogg b/mods/item_drop/sounds/item_drop_pickup.1.ogg new file mode 100644 index 00000000..2ae432d5 Binary files /dev/null and b/mods/item_drop/sounds/item_drop_pickup.1.ogg differ diff --git a/mods/item_drop/sounds/item_drop_pickup.2.ogg b/mods/item_drop/sounds/item_drop_pickup.2.ogg new file mode 100644 index 00000000..f58bf08e Binary files /dev/null and b/mods/item_drop/sounds/item_drop_pickup.2.ogg differ diff --git a/mods/item_drop/sounds/item_drop_pickup.3.ogg b/mods/item_drop/sounds/item_drop_pickup.3.ogg new file mode 100644 index 00000000..cf57c94c Binary files /dev/null and b/mods/item_drop/sounds/item_drop_pickup.3.ogg differ diff --git a/mods/item_drop/sounds/item_drop_pickup.4.ogg b/mods/item_drop/sounds/item_drop_pickup.4.ogg new file mode 100644 index 00000000..bfe99d9a Binary files /dev/null and b/mods/item_drop/sounds/item_drop_pickup.4.ogg differ diff --git a/mods/itemframes/depends.txt b/mods/itemframes/depends.txt new file mode 100755 index 00000000..4ad96d51 --- /dev/null +++ b/mods/itemframes/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/itemframes/init.lua b/mods/itemframes/init.lua new file mode 100755 index 00000000..fbbfe642 --- /dev/null +++ b/mods/itemframes/init.lua @@ -0,0 +1,206 @@ +local tmp = {} + +minetest.register_entity("itemframes:item",{ + hp_max = 1, + visual="wielditem", + visual_size = {x = 0.3333, y = 0.3333}, + collisionbox = {0,0,0,0,0,0}, + physical = false, + textures = {"air"}, + on_activate = function(self, staticdata) + if tmp.nodename ~= nil and tmp.texture ~= nil then + self.nodename = tmp.nodename + tmp.nodename = nil + self.texture = tmp.texture + tmp.texture = nil + else + if staticdata ~= nil and staticdata ~= "" then + local data = staticdata:split(";") + if data and data[1] and data[2] then + self.nodename = data[1] + self.texture = data[2] + end + end + end + if self.texture ~= nil then + self.object:set_properties({textures = {self.texture}}) + end + if self.nodename == "itemframes:pedestal" then + self.object:set_properties({automatic_rotate = 0.5}) + end + end, + get_staticdata = function(self) + if self.nodename ~= nil and self.texture ~= nil then + return self.nodename .. ";" .. self.texture + end + return "" + end, +}) + + +local facedir = {} +facedir[0] = {x = 0, y = 0, z = 1} +facedir[1] = {x = 1, y = 0, z = 0} +facedir[2] = {x = 0, y = 0, z = -1} +facedir[3] = {x = -1, y = 0, z = 0} + +local remove_item = function(pos, node) + local objs = nil + if node.name == "itemframes:frame" then + objs = minetest.env:get_objects_inside_radius(pos, 0.5) + elseif node.name == "itemframes:pedestal" then + objs = minetest.env:get_objects_inside_radius({x = pos.x, y = pos.y + 1, z = pos.z}, 0.5) + end + if objs then + for _, obj in ipairs(objs) do + if obj and obj:get_luaentity() and obj:get_luaentity().name == "itemframes:item" then + obj:remove() + end + end + end +end + +local update_item = function(pos, node) + remove_item(pos, node) + local meta = minetest.env:get_meta(pos) + if meta:get_string("item") ~= "" then + if node.name == "itemframes:frame" then + local posad = facedir[node.param2] + pos.x = pos.x + posad.x * 6.5 / 16 + pos.y = pos.y + posad.y * 6.5 / 16 + pos.z = pos.z + posad.z * 6.5 / 16 + elseif node.name == "itemframes:pedestal" then + pos.y = pos.y + 0.5 + 0.3333 + end + tmp.nodename = node.name + tmp.texture = ItemStack(meta:get_string("item")):get_name() + local e = minetest.env:add_entity(pos,"itemframes:item") + if node.name == "itemframes:frame" then + local yaw = math.pi*2 - node.param2 * math.pi/2 + e:setyaw(yaw) + end + end +end + +local drop_item = function(pos, node) + local meta = minetest.env:get_meta(pos) + if meta:get_string("item") ~= "" then + if node.name == "itemframes:frame" then + minetest.env:add_item(pos, meta:get_string("item")) + elseif node.name == "itemframes:pedestal" then + minetest.env:add_item({x=pos.x,y=pos.y+1,z=pos.z}, meta:get_string("item")) + end + meta:set_string("item","") + end + remove_item(pos, node) +end + +minetest.register_node("itemframes:frame",{ + description = "Item frame", + drawtype = "nodebox", + node_box = { type = "fixed", fixed = {-0.5, -0.5, 7/16, 0.5, 0.5, 0.5} }, + tiles = {"itemframes_frame.png"}, + inventory_image = "itemframes_frame.png", + wield_image = "itemframes_frame.png", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + groups = { choppy = 2, dig_immediate = 2}, + legacy_wallmounted = true, + sounds = default.node_sound_defaults(), + after_place_node = function(pos, placer, itemstack) + local meta = minetest.env:get_meta(pos) + meta:set_string("owner",placer:get_player_name()) + meta:set_string("infotext","Item frame (owned by "..placer:get_player_name()..")") + end, + on_rightclick = function(pos, node, clicker, itemstack) + if not itemstack then return end + local meta = minetest.env:get_meta(pos) + if clicker:get_player_name() == meta:get_string("owner") then + drop_item(pos,node) + local s = itemstack:take_item() + meta:set_string("item",s:to_string()) + update_item(pos,node) + end + return itemstack + end, + on_punch = function(pos,node,puncher) + local meta = minetest.env:get_meta(pos) + if puncher:get_player_name() == meta:get_string("owner") then + drop_item(pos, node) + end + end, + can_dig = function(pos,player) + + local meta = minetest.env:get_meta(pos) + return player:get_player_name() == meta:get_string("owner") + end, +}) + + +minetest.register_node("itemframes:pedestal",{ + description = "Pedestal", + drawtype = "nodebox", + node_box = { type = "fixed", fixed = { + {-7/16, -8/16, -7/16, 7/16, -7/16, 7/16}, -- Bottom plate + {-6/16, -7/16, -6/16, 6/16, -6/16, 6/16}, -- Bottom plate (upper) + {-0.25, -6/16, -0.25, 0.25, 7/16, 0.25}, -- Pillar + {-7/16, 7/16, -7/16, 7/16, 8/16, 7/16}, -- Top plate + } }, + tiles = {"itemframes_pedestal.png"}, + paramtype = "light", + groups = {cracky = 2}, + sounds = default.node_sound_defaults(), + + after_place_node = function(pos, placer, itemstack) + local meta = minetest.env:get_meta(pos) + meta:set_string("owner",placer:get_player_name()) + meta:set_string("infotext","Pedestal (owned by "..placer:get_player_name()..")") + end, + + on_rightclick = function(pos, node, clicker, itemstack) + if not itemstack then return end + local meta = minetest.env:get_meta(pos) + if clicker:get_player_name() == meta:get_string("owner") then + drop_item(pos,node) + local s = itemstack:take_item() + meta:set_string("item",s:to_string()) + update_item(pos,node) + end + return itemstack + end, + + on_punch = function(pos,node,puncher) + local meta = minetest.env:get_meta(pos) + if puncher:get_player_name() == meta:get_string("owner") then + drop_item(pos,node) + end + end, + + can_dig = function(pos,player) + local meta = minetest.env:get_meta(pos) + return player:get_player_name() == meta:get_string("owner") + end, +}) + +minetest.register_craft({ + output = "itemframes:frame", + recipe = { + {"default:stick", "default:stick", "default:stick"}, + {"default:stick", "default:paper", "default:stick"}, + {"default:stick", "default:stick", "default:stick"}, + } +}) + +minetest.register_craft({ + output = "itemframes:pedestal", + recipe = { + {"default:stone", "default:stone", "default:stone"}, + {" ", "default:stone", " "}, + {"default:stone", "default:stone", "default:stone"}, + } +}) + +if minetest.setting_getbool("log_mods") then + minetest.log("action", "Carbone: [itemframes] loaded.") +end diff --git a/mods/itemframes/textures/itemframes_frame.png b/mods/itemframes/textures/itemframes_frame.png new file mode 100755 index 00000000..884f9a6c Binary files /dev/null and b/mods/itemframes/textures/itemframes_frame.png differ diff --git a/mods/itemframes/textures/itemframes_pedestal.png b/mods/itemframes/textures/itemframes_pedestal.png new file mode 100755 index 00000000..bc30cf9b Binary files /dev/null and b/mods/itemframes/textures/itemframes_pedestal.png differ diff --git a/mods/jumping/README.md b/mods/jumping/README.md new file mode 100755 index 00000000..17e3a09b --- /dev/null +++ b/mods/jumping/README.md @@ -0,0 +1,7 @@ +Jumping + +Jumping is a mod for minetest that adds trampolines, cushions, ... + +License: GPLv3 + +Creator: Jeija diff --git a/mods/jumping/init.lua b/mods/jumping/init.lua new file mode 100755 index 00000000..60212c69 --- /dev/null +++ b/mods/jumping/init.lua @@ -0,0 +1,79 @@ +local trampolinebox = { + type = "fixed", + fixed = { + {-0.5, -0.2, -0.5, 0.5, 0, 0.5}, + + {-0.5, -0.5, -0.5, -0.4, -0.2, -0.4}, + { 0.4, -0.5, -0.5, 0.5, -0.2, -0.4}, + { 0.4, -0.5, 0.4, 0.5, -0.2, 0.5}, + {-0.5, -0.5, 0.4, -0.4, -0.2, 0.5}, + } +} + +local cushionbox = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.3, 0.5}, + } +} + +local trampoline_punch = function(pos, node) + local id = string.sub(node.name, #node.name) + id = id + 1 + if id == 7 then id = 1 end + minetest.env:add_node(pos, {name = string.sub(node.name, 1, #node.name - 1)..id}) +end + +for i = 1, 6 do + minetest.register_node("jumping:trampoline_" .. i, { + description = "Trampoline", + drawtype = "nodebox", + node_box = trampolinebox, + selection_box = trampolinebox, + paramtype = "light", + on_punch = trampoline_punch, + tiles = { + "jumping_trampoline_top.png", + "jumping_trampoline_bottom.png", + "jumping_trampoline_sides.png^jumping_trampoline_sides_overlay_" .. i .. ".png", + }, + drop = "jumping:trampoline_1", + groups = {dig_immediate = 2, bouncy = 16 + i * 16, fall_damage_add_percent = -65, disable_jump = 1}, + }) +end + +minetest.register_node("jumping:cushion", { + description = "Cushion", + drawtype = "nodebox", + node_box = cushionbox, + selection_box = cushionbox, + paramtype = "light", + tiles = { + "jumping_cushion_tb.png", + "jumping_cushion_tb.png", + "jumping_cushion_sides.png", + }, + groups = {dig_immediate = 2, disable_jump = 1, fall_damage_add_percent = -100}, +}) + +minetest.register_craft({ + output = "jumping:trampoline_1", + recipe = { + {"group:ingot", "group:ingot", "group:ingot"}, + {"default:leaves", "default:leaves", "default:leaves"}, + {"default:stick", "default:stick", "default:stick"}, + } +}) + +minetest.register_craft({ + output = "jumping:cushion", + recipe = { + {"default:junglegrass", "default:junglegrass", "default:junglegrass"}, + {"default:leaves", "default:leaves", "default:leaves"}, + {"default:stick", "default:stick", "default:stick"}, + } +}) + +if minetest.setting_getbool("log_mods") then + minetest.log("action", "Carbone: [jumping] loaded.") +end diff --git a/mods/jumping/textures/jumping_cushion_sides.png b/mods/jumping/textures/jumping_cushion_sides.png new file mode 100755 index 00000000..9d65797d Binary files /dev/null and b/mods/jumping/textures/jumping_cushion_sides.png differ diff --git a/mods/jumping/textures/jumping_cushion_tb.png b/mods/jumping/textures/jumping_cushion_tb.png new file mode 100755 index 00000000..1cc91c8f Binary files /dev/null and b/mods/jumping/textures/jumping_cushion_tb.png differ diff --git a/mods/jumping/textures/jumping_trampoline_bottom.png b/mods/jumping/textures/jumping_trampoline_bottom.png new file mode 100755 index 00000000..7ade61ef Binary files /dev/null and b/mods/jumping/textures/jumping_trampoline_bottom.png differ diff --git a/mods/jumping/textures/jumping_trampoline_sides.png b/mods/jumping/textures/jumping_trampoline_sides.png new file mode 100755 index 00000000..ff3f6e43 Binary files /dev/null and b/mods/jumping/textures/jumping_trampoline_sides.png differ diff --git a/mods/jumping/textures/jumping_trampoline_sides_overlay_1.png b/mods/jumping/textures/jumping_trampoline_sides_overlay_1.png new file mode 100755 index 00000000..1119f46a Binary files /dev/null and b/mods/jumping/textures/jumping_trampoline_sides_overlay_1.png differ diff --git a/mods/jumping/textures/jumping_trampoline_sides_overlay_2.png b/mods/jumping/textures/jumping_trampoline_sides_overlay_2.png new file mode 100755 index 00000000..3853953f Binary files /dev/null and b/mods/jumping/textures/jumping_trampoline_sides_overlay_2.png differ diff --git a/mods/jumping/textures/jumping_trampoline_sides_overlay_3.png b/mods/jumping/textures/jumping_trampoline_sides_overlay_3.png new file mode 100755 index 00000000..7c3ae249 Binary files /dev/null and b/mods/jumping/textures/jumping_trampoline_sides_overlay_3.png differ diff --git a/mods/jumping/textures/jumping_trampoline_sides_overlay_4.png b/mods/jumping/textures/jumping_trampoline_sides_overlay_4.png new file mode 100755 index 00000000..f1ba54d1 Binary files /dev/null and b/mods/jumping/textures/jumping_trampoline_sides_overlay_4.png differ diff --git a/mods/jumping/textures/jumping_trampoline_sides_overlay_5.png b/mods/jumping/textures/jumping_trampoline_sides_overlay_5.png new file mode 100755 index 00000000..fde0ad00 Binary files /dev/null and b/mods/jumping/textures/jumping_trampoline_sides_overlay_5.png differ diff --git a/mods/jumping/textures/jumping_trampoline_sides_overlay_6.png b/mods/jumping/textures/jumping_trampoline_sides_overlay_6.png new file mode 100755 index 00000000..b1a93fe3 Binary files /dev/null and b/mods/jumping/textures/jumping_trampoline_sides_overlay_6.png differ diff --git a/mods/jumping/textures/jumping_trampoline_top.png b/mods/jumping/textures/jumping_trampoline_top.png new file mode 100755 index 00000000..c5df874c Binary files /dev/null and b/mods/jumping/textures/jumping_trampoline_top.png differ diff --git a/mods/lantern/.gitattributes b/mods/lantern/.gitattributes new file mode 100755 index 00000000..412eeda7 --- /dev/null +++ b/mods/lantern/.gitattributes @@ -0,0 +1,22 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp +*.sln merge=union +*.csproj merge=union +*.vbproj merge=union +*.fsproj merge=union +*.dbproj merge=union + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain diff --git a/mods/lantern/.gitignore b/mods/lantern/.gitignore new file mode 100755 index 00000000..b9d6bd92 --- /dev/null +++ b/mods/lantern/.gitignore @@ -0,0 +1,215 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml +*.pubxml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + +############# +## Windows detritus +############# + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac crap +.DS_Store + + +############# +## Python +############# + +*.py[co] + +# Packages +*.egg +*.egg-info +dist/ +build/ +eggs/ +parts/ +var/ +sdist/ +develop-eggs/ +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg diff --git a/mods/lantern/README.txt b/mods/lantern/README.txt new file mode 100755 index 00000000..537d03a6 --- /dev/null +++ b/mods/lantern/README.txt @@ -0,0 +1,28 @@ +============== [Mod] Lantern [lantern] [v140527] ================================ +This is a mod for Minetest 0.49 created by RHR. +License of code: WTFPL +License of textures: WTFPL + +More informations at: +https://forum.minetest.net/viewtopic.php?id=8718 +--------------------------------- + +This Mod adds following nodes: +*black fence +*animated candle +*lantern +*lamp +*4 lampposts (=6 node lamppost models, one lamppost in each direction) + +----------Changelog [v140318 --> v140527]------------ +*fixed candle (can be digged immediately without tools) +*black fence recipe is now shapeless +*changed lamppost1 recipe +*removed lamppost2, lamppost3, lamppost4 recipes (they are shapless craftable from lamppost1) +*added two new recipes for lamp and lantern +*removed the recipe picture folder + +----------Changelog [1st release --> v140318]------------ +*rebalancing of recipies +*added philipbenr's lamppost suggestion +*added candle animation diff --git a/mods/lantern/depends.txt b/mods/lantern/depends.txt new file mode 100755 index 00000000..4ad96d51 --- /dev/null +++ b/mods/lantern/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/lantern/init.lua b/mods/lantern/init.lua new file mode 100755 index 00000000..1c2fbc94 --- /dev/null +++ b/mods/lantern/init.lua @@ -0,0 +1,351 @@ +-- Lantern-Mod by RHR for Minetest 0.49 -- +--=========================================== + +-- +-- register nodes: +-- +minetest.register_node("lantern:lantern", { + description = "Lantern", + drawtype = "nodebox", + tiles = {"lantern_tb.png","lantern_tb.png","lantern.png","lantern.png","lantern.png","lantern.png"}, + paramtype = "light", + sunlight_propagates = true, + light_source = LIGHT_MAX-1, + paramtype2 = "wallmounted", + walkable = false, + groups = {snappy = 2, cracky = 2, dig_immediate = 3}, + sounds = default.node_sound_glass_defaults(), + node_box = { + type = "wallmounted", + wall_top = {-1/6, 1/6, -1/6, 1/6, 0.5, 1/6}, + wall_bottom = {-1/6, -0.5, -1/6, 1/6, -1/6, 1/6}, + wall_side = {-1/6, -1/6, -1/6, -0.5, 1/6, 1/6}, + }, +}) + +minetest.register_node("lantern:fence_black", { + description = "Black Fence", + drawtype = "fencelike", + tiles = {"default_obsidian.png"}, + paramtype = "light", + is_ground_content = true, + walkable = true, + groups = {choppy = 2, flammable = 1, oddly_breakable_by_hand = 3}, + sounds = default.node_sound_defaults(), + selection_box = { + type = "fixed", + fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, + }, +}) + +minetest.register_node("lantern:candle", { + description = "Candle", + drawtype = "plantlike", + inventory_image = "candle_inv.png", + tiles = { + {name="candle.png", animation={type = "vertical_frames", aspect_w = 32, aspect_h = 32, length = 0.8}}, + }, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + light_source = LIGHT_MAX - 1, + groups = {dig_immediate = 3, attached_node = 1}, + sounds = default.node_sound_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 }, + }, +}) + +minetest.register_node("lantern:lamp", { + description = "Lamp", + tiles = {"default_obsidian.png", "default_obsidian.png", "lantern_lamp.png", "lantern_lamp.png", "lantern_lamp.png", "lantern_lamp.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = true, + light_source = LIGHT_MAX - 1, + groups = {snappy = 2, cracky = 2, oddly_breakable_by_hand = 3}, + sounds = default.node_sound_glass_defaults(), +}) + +-- +-- register lampposts in all 4 directions +-- +minetest.register_node("lantern:lantern_lampost1", { + description = "Lampost 1", + drawtype = "fencelike", + tiles = {"default_obsidian.png"}, + inventory_image = "lamppost1.png", + wield_image = "lamppost_inv.png", + paramtype = "light", + is_ground_content = true, + walkable = true, + groups = {choppy = 2, dig_immediate = 2, flammable = 1}, + sounds = default.node_sound_defaults(), + after_place_node = function(pos) + minetest.set_node({x = pos.x, y = pos.y + 1, z = pos.z},{name = "lantern:fence_lampost"}) + minetest.set_node({x = pos.x, y = pos.y + 2, z = pos.z},{name = "lantern:fence_lampost"}) + minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z},{name = "lantern:fence_lampost"}) + minetest.set_node({x = pos.x - 1, y = pos.y + 3, z = pos.z },{name = "lantern:fence_lampost"}) + minetest.set_node({x = pos.x - 1, y = pos.y + 2, z = pos.z },{name = "lantern:lamp1"}) + end +}) + + +minetest.register_node("lantern:lantern_lampost2", { + description = "Lampost 2", + drawtype = "fencelike", + tiles = {"default_obsidian.png"}, + inventory_image = "lamppost2.png", + wield_image = "lamppost_inv.png", + paramtype = "light", + is_ground_content = true, + walkable = true, + groups = {choppy = 2, dig_immediate = 2, flammable = 1}, + sounds = default.node_sound_defaults(), + after_place_node = function(pos) + minetest.set_node({x = pos.x, y = pos.y + 1, z = pos.z},{name = "lantern:fence_lampost"}) + minetest.set_node({x = pos.x, y = pos.y + 2, z = pos.z},{name = "lantern:fence_lampost"}) + minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z},{name = "lantern:fence_lampost"}) + minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z - 1},{name = "lantern:fence_lampost"}) + minetest.set_node({x = pos.x, y = pos.y + 2, z = pos.z - 1},{name = "lantern:lamp2"}) + end +}) + + +minetest.register_node("lantern:lantern_lampost3", { + description = "Lampost 3", + drawtype = "fencelike", + tiles = {"default_obsidian.png"}, + inventory_image = "lamppost3.png", + wield_image = "lamppost_inv.png", + paramtype = "light", + is_ground_content = true, + walkable = true, + groups = {choppy = 2, dig_immediate = 2, flammable = 1}, + sounds = default.node_sound_defaults(), + after_place_node = function(pos) + minetest.set_node({x = pos.x, y = pos.y + 1, z = pos.z},{name = "lantern:fence_lampost"}) + minetest.set_node({x = pos.x, y = pos.y + 2, z = pos.z},{name = "lantern:fence_lampost"}) + minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z},{name = "lantern:fence_lampost"}) + minetest.set_node({x = pos.x + 1, y = pos.y + 3, z = pos.z},{name = "lantern:fence_lampost"}) + minetest.set_node({x = pos.x + 1, y = pos.y + 2, z = pos.z},{name = "lantern:lamp3"}) + end + }) + + +minetest.register_node("lantern:lantern_lampost4", { + description = "Lampost 4", + drawtype = "fencelike", + tiles = {"default_obsidian.png"}, + inventory_image = "lamppost4.png", + wield_image = "lamppost_inv.png", + paramtype = "light", + is_ground_content = true, + walkable = true, + groups = {choppy = 2, dig_immediate = 2, flammable = 1}, + sounds = default.node_sound_defaults(), + after_place_node = function(pos) + minetest.set_node({x = pos.x, y = pos.y + 1, z = pos.z},{name = "lantern:fence_lampost"}) + minetest.set_node({x = pos.x, y = pos.y + 2, z = pos.z},{name = "lantern:fence_lampost"}) + minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z},{name = "lantern:fence_lampost"}) + minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z + 1},{name = "lantern:fence_lampost"}) + minetest.set_node({x = pos.x, y = pos.y + 2, z = pos.z + 1},{name = "lantern:lamp4"}) + end +}) + +-- +-- this node is only used for lampost and can't be crafted/used by the player +-- +minetest.register_node("lantern:fence_lampost", { + description = "Fence Lamppost", + drawtype = "fencelike", + tiles = {"default_obsidian.png"}, + paramtype = "light", + is_ground_content = true, + walkable = true, + groups = {choppy = 2, not_in_creative_inventory = 1}, + sounds = default.node_sound_defaults(), +}) + +-- +-- the nodes lantern:lamp1, lamp2, lamp3 and lamp4 are only used for the lamposts and can't be crafted/used by the player +-- these nodes are also removing the lantern with "after_dig_node" +-- +minetest.register_node("lantern:lamp1", { + description = "Lamp1", + drop = 'lantern:lantern_lampost1', + tiles = {"default_obsidian.png", "default_obsidian.png", "lantern_lamp.png", "lantern_lamp.png", "lantern_lamp.png", "lantern_lamp.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = true, + light_source = LIGHT_MAX - 1, + groups = {snappy = 2, cracky = 2, oddly_breakable_by_hand = 3, not_in_creative_inventory = 1}, + sounds = default.node_sound_glass_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.5, -2.5, -0.5, 1.5, 1.5, 0.5}, + }, + after_dig_node = function(pos) + minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) + minetest.remove_node({x = pos.x + 1, y = pos.y + 1, z = pos.z }) + minetest.remove_node({x = pos.x + 1, y = pos.y , z = pos.z }) + minetest.remove_node({x = pos.x + 1, y = pos.y - 1, z = pos.z }) + minetest.remove_node({x = pos.x + 1, y = pos.y - 2, z = pos.z }) + end +}) + +minetest.register_node("lantern:lamp2", { + description = "Lamp2", + drop = 'lantern:lantern_lampost2', + tiles = {"default_obsidian.png", "default_obsidian.png", "lantern_lamp.png", "lantern_lamp.png", "lantern_lamp.png", "lantern_lamp.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = true, + light_source = LIGHT_MAX - 1, + groups = {snappy = 2, cracky = 2, oddly_breakable_by_hand = 3, not_in_creative_inventory = 1}, + sounds = default.node_sound_glass_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.5, -2.5, -0.5, 0.5, 1.5, 1.5}, + }, + after_dig_node = function(pos) + minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) + minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z + 1}) + minetest.remove_node({x = pos.x, y = pos.y , z = pos.z + 1}) + minetest.remove_node({x = pos.x, y = pos.y - 1, z = pos.z + 1}) + minetest.remove_node({x = pos.x, y = pos.y - 2, z = pos.z + 1}) + end +}) + +minetest.register_node("lantern:lamp3", { + description = "Lamp3", + drop = 'lantern:lantern_lampost3', + tiles = {"default_obsidian.png", "default_obsidian.png", "lantern_lamp.png", "lantern_lamp.png", "lantern_lamp.png", "lantern_lamp.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = true, + light_source = LIGHT_MAX - 1, + groups = {snappy = 2, cracky = 2, oddly_breakable_by_hand = 3, not_in_creative_inventory = 1}, + sounds = default.node_sound_glass_defaults(), + selection_box = { + type = "fixed", + fixed = {-1.5, -2.5, -0.5, 0.5, 1.5, 0.5}, + }, + after_dig_node = function(pos) + minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) + minetest.remove_node({x = pos.x - 1, y = pos.y + 1, z = pos.z}) + minetest.remove_node({x = pos.x - 1, y = pos.y , z = pos.z}) + minetest.remove_node({x = pos.x - 1, y = pos.y - 1, z = pos.z}) + minetest.remove_node({x = pos.x - 1, y = pos.y - 2, z = pos.z}) + end +}) + +minetest.register_node("lantern:lamp4", { + description = "Lamp4", + drop = 'lantern:lantern_lampost4', + tiles = {"default_obsidian.png", "default_obsidian.png", "lantern_lamp.png", "lantern_lamp.png", "lantern_lamp.png", "lantern_lamp.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = true, + light_source = LIGHT_MAX - 1, + groups = {snappy = 2, cracky = 2, oddly_breakable_by_hand = 3, not_in_creative_inventory = 1}, + sounds = default.node_sound_glass_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.5, -2.5, -1.5, 0.5, 1.5, 0.5}, + }, + after_dig_node = function(pos) + minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) + minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z - 1}) + minetest.remove_node({x = pos.x, y = pos.y , z = pos.z - 1}) + minetest.remove_node({x = pos.x, y = pos.y - 1, z = pos.z - 1}) + minetest.remove_node({x = pos.x, y = pos.y - 2, z = pos.z - 1}) + end +}) + +-- +-- register crafting recipes: +-- +minetest.register_craft({ + output = 'lantern:candle 12', + recipe = { + {'default:coal_lump','default:coal_lump'}, + {'group:stick','group:stick'}, + } +}) + +minetest.register_craft({ + output = 'lantern:lantern 4', + recipe = { + {'','group:stick',''}, + {'group:stick','lantern:candle','group:stick'}, + {'','group:stick',''}, + } +}) + +minetest.register_craft({ + output = 'lantern:lantern 4', + recipe = { + {'group:stick','','group:stick'}, + {'','lantern:candle',''}, + {'group:stick','','group:stick'}, + } +}) + +minetest.register_craft({ + type = "shapeless", + output = 'lantern:fence_black', + recipe = {'default:coal_lump', 'default:fence_wood'}, +}) + +minetest.register_craft({ + output = 'lantern:lamp 4', + recipe = { + {'','default:steel_ingot',''}, + {'default:steel_ingot','lantern:candle','default:steel_ingot'}, + {'','default:steel_ingot',''}, + } +}) + +minetest.register_craft({ + output = 'lantern:lamp 4', + recipe = { + {'default:steel_ingot','','default:steel_ingot'}, + {'','lantern:candle',''}, + {'default:steel_ingot','','default:steel_ingot'}, + } +}) + +minetest.register_craft({ + output = 'lantern:lantern_lampost1', + recipe = { + {'lantern:fence_black','lantern:fence_black',''}, + {'lantern:fence_black','lantern:lamp',''}, + {'lantern:fence_black','',''}, + } +}) + +minetest.register_craft({ + type = "shapeless", + output = 'lantern:lantern_lampost2', + recipe = {"lantern:lantern_lampost1"} +}) + +minetest.register_craft({ + type = "shapeless", + output = 'lantern:lantern_lampost3', + recipe = {"lantern:lantern_lampost2"} +}) + +minetest.register_craft({ + type = "shapeless", + output = 'lantern:lantern_lampost4', + recipe = {"lantern:lantern_lampost3"} +}) + +minetest.register_craft({ + type = "shapeless", + output = 'lantern:lantern_lampost1', + recipe = {"lantern:lantern_lampost4"} +}) \ No newline at end of file diff --git a/mods/lantern/textures/candle.png b/mods/lantern/textures/candle.png new file mode 100755 index 00000000..067c1744 Binary files /dev/null and b/mods/lantern/textures/candle.png differ diff --git a/mods/lantern/textures/candle_inv.png b/mods/lantern/textures/candle_inv.png new file mode 100755 index 00000000..df46f19f Binary files /dev/null and b/mods/lantern/textures/candle_inv.png differ diff --git a/mods/lantern/textures/lamppost1.png b/mods/lantern/textures/lamppost1.png new file mode 100755 index 00000000..f337c0ef Binary files /dev/null and b/mods/lantern/textures/lamppost1.png differ diff --git a/mods/lantern/textures/lamppost2.png b/mods/lantern/textures/lamppost2.png new file mode 100755 index 00000000..beacb959 Binary files /dev/null and b/mods/lantern/textures/lamppost2.png differ diff --git a/mods/lantern/textures/lamppost3.png b/mods/lantern/textures/lamppost3.png new file mode 100755 index 00000000..e30f37a8 Binary files /dev/null and b/mods/lantern/textures/lamppost3.png differ diff --git a/mods/lantern/textures/lamppost4.png b/mods/lantern/textures/lamppost4.png new file mode 100755 index 00000000..64b75602 Binary files /dev/null and b/mods/lantern/textures/lamppost4.png differ diff --git a/mods/lantern/textures/lamppost_inv.png b/mods/lantern/textures/lamppost_inv.png new file mode 100755 index 00000000..9c53d4cc Binary files /dev/null and b/mods/lantern/textures/lamppost_inv.png differ diff --git a/mods/lantern/textures/lantern.png b/mods/lantern/textures/lantern.png new file mode 100755 index 00000000..63c3aef0 Binary files /dev/null and b/mods/lantern/textures/lantern.png differ diff --git a/mods/lantern/textures/lantern_lamp.png b/mods/lantern/textures/lantern_lamp.png new file mode 100755 index 00000000..98ebc494 Binary files /dev/null and b/mods/lantern/textures/lantern_lamp.png differ diff --git a/mods/lantern/textures/lantern_tb.png b/mods/lantern/textures/lantern_tb.png new file mode 100755 index 00000000..4bc155d1 Binary files /dev/null and b/mods/lantern/textures/lantern_tb.png differ diff --git a/mods/lavalamp/.gitattributes b/mods/lavalamp/.gitattributes new file mode 100755 index 00000000..412eeda7 --- /dev/null +++ b/mods/lavalamp/.gitattributes @@ -0,0 +1,22 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp +*.sln merge=union +*.csproj merge=union +*.vbproj merge=union +*.fsproj merge=union +*.dbproj merge=union + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain diff --git a/mods/lavalamp/.gitignore b/mods/lavalamp/.gitignore new file mode 100755 index 00000000..5ebd21a1 --- /dev/null +++ b/mods/lavalamp/.gitignore @@ -0,0 +1,163 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results +[Dd]ebug/ +[Rr]elease/ +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.vspscc +.builds +*.dotCover + +## TODO: If you have NuGet Package Restore enabled, uncomment this +#packages/ + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf + +# Visual Studio profiler +*.psess +*.vsp + +# ReSharper is a .NET coding add-in +_ReSharper* + +# Installshield output folder +[Ee]xpress + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish + +# Others +[Bb]in +[Oo]bj +sql +TestResults +*.Cache +ClientBin +stylecop.* +~$* +*.dbmdl +Generated_Code #added for RIA/Silverlight projects + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML + + + +############ +## Windows +############ + +# Windows image file caches +Thumbs.db + +# Folder config file +Desktop.ini + + +############# +## Python +############# + +*.py[co] + +# Packages +*.egg +*.egg-info +dist +build +eggs +parts +bin +var +sdist +develop-eggs +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg + +# Mac crap +.DS_Store diff --git a/mods/lavalamp/README.txt b/mods/lavalamp/README.txt new file mode 100755 index 00000000..c192e25d --- /dev/null +++ b/mods/lavalamp/README.txt @@ -0,0 +1,42 @@ +Lava Lamps (lavalamp) mod for Minetest + + +by thefamilygrog66 + +Description: +Coloured Lava Lamps, loosely based on Tonyka's wall torches from the 3dforniture/homedecor mod. There are 6 colours in all: red, orange, yellow, green, blue, violet. + +After placing a lava lamp, the player can turn it off/on again by right-clicking on it. + +Recipe: + ++---------------+ +| coloured wool | ++---------------+ +| water bucket | ++---------------+ +| black wool | ++---------------+ + +Mod dependencies: wool, bucket + +License: +Sourcecode: WTFPL (see below) +Graphics: 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/lavalamp/depends.txt b/mods/lavalamp/depends.txt new file mode 100755 index 00000000..29a8e95c --- /dev/null +++ b/mods/lavalamp/depends.txt @@ -0,0 +1,2 @@ +wool +bucket \ No newline at end of file diff --git a/mods/lavalamp/init.lua b/mods/lavalamp/init.lua new file mode 100755 index 00000000..1e7c2530 --- /dev/null +++ b/mods/lavalamp/init.lua @@ -0,0 +1,118 @@ +local lavalamps_list = { + { "Red Lava Lamp", "red"}, + { "Orange Lava Lamp", "orange"}, + { "Yellow Lava Lamp", "yellow"}, + { "Green Lava Lamp", "green"}, + { "Blue Lava Lamp", "blue"}, + { "Violet Lava Lamp", "violet"}, +} + +for i in ipairs(lavalamps_list) do + local lavalampdesc = lavalamps_list[i][1] + local colour = lavalamps_list[i][2] + + minetest.register_node("lavalamp:"..colour, { + description = lavalampdesc, + drawtype = "nodebox", + tiles = { + "lavalamp_lamp_top.png", + "lavalamp_lamp_bottom.png", + { + name="lavalamp_lamp_anim_"..colour..".png", + animation={ + type="vertical_frames", + aspect_w=40, + aspect_h=40, + length=3.0, + }, + }, + }, + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + -- base + { -0.1875, -0.5, -0.1875, 0.1875, -0.3125, 0.1875, }, + { -0.125, -0.5, -0.25, 0.125, -0.3125, -0.1875, }, + { -0.25, -0.5, -0.125, -0.1875, -0.3125, 0.125, }, + { 0.1875, -0.5, -0.125, 0.25, -0.3125, 0.125, }, + { -0.125, -0.5, 0.1875, 0.125, -0.3125, 0.25, }, + -- lamp + { -0.125, -0.3125, -0.125, 0.125, 0.5, 0.125, }, + { -0.0625, -0.3125, -0.1875, 0.0625, 0.5, -0.125, }, + { -0.0625, -0.3125, 0.125, 0.0625, 0.5, 0.1875, }, + { -0.1875, -0.3125, -0.0625, 0.125, 0.5, 0.0625, }, + { 0.125, -0.3125, -0.0625, 0.1875, 0.5, 0.0625, }, + }, + }, + sunlight_propagates = true, + walkable = false, + light_source = 14, + selection_box = { + type = "fixed", + fixed = { -0.25, -0.5, -0.25, 0.25,0.5, 0.25 }, + }, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + on_rightclick = function(pos, node, clicker) + node.name = "lavalamp:"..colour.."_off" + minetest.env:set_node(pos, node) + end, + }) + + minetest.register_node("lavalamp:"..colour.."_off", { + description = lavalampdesc.." off", + drawtype = "nodebox", + tiles = { + "lavalamp_lamp_top.png", + "lavalamp_lamp_bottom.png", + "lavalamp_lamp_off_sides.png", + }, + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + -- base + { -0.1875, -0.5, -0.1875, 0.1875, -0.3125, 0.1875, }, + { -0.125, -0.5, -0.25, 0.125, -0.3125, -0.1875, }, + { -0.25, -0.5, -0.125, -0.1875, -0.3125, 0.125, }, + { 0.1875, -0.5, -0.125, 0.25, -0.3125, 0.125, }, + { -0.125, -0.5, 0.1875, 0.125, -0.3125, 0.25, }, + -- lamp + { -0.125, -0.3125, -0.125, 0.125, 0.5, 0.125, }, + { -0.0625, -0.3125, -0.1875, 0.0625, 0.5, -0.125, }, + { -0.0625, -0.3125, 0.125, 0.0625, 0.5, 0.1875, }, + { -0.1875, -0.3125, -0.0625, 0.125, 0.5, 0.0625, }, + { 0.125, -0.3125, -0.0625, 0.1875, 0.5, 0.0625, }, + }, + }, + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = { -0.25, -0.5, -0.25, 0.25,0.5, 0.25 }, + }, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + drop = "lavalamp:"..colour, + on_rightclick = function(pos, node, clicker) + node.name = "lavalamp:"..colour + minetest.env:set_node(pos, node) + end, + }) + + minetest.register_craft({ + output = "lavalamp:"..colour, + recipe = { + {"", "wool:"..colour, "", }, + {"", "bucket:bucket_water", "", }, + {"", "wool:black", "", } + } + }) + +end + + + + + diff --git a/mods/lavalamp/textures/lavalamp_lamp_anim_blue.png b/mods/lavalamp/textures/lavalamp_lamp_anim_blue.png new file mode 100755 index 00000000..03f0a657 Binary files /dev/null and b/mods/lavalamp/textures/lavalamp_lamp_anim_blue.png differ diff --git a/mods/lavalamp/textures/lavalamp_lamp_anim_green.png b/mods/lavalamp/textures/lavalamp_lamp_anim_green.png new file mode 100755 index 00000000..80542b73 Binary files /dev/null and b/mods/lavalamp/textures/lavalamp_lamp_anim_green.png differ diff --git a/mods/lavalamp/textures/lavalamp_lamp_anim_orange.png b/mods/lavalamp/textures/lavalamp_lamp_anim_orange.png new file mode 100755 index 00000000..23ebac3e Binary files /dev/null and b/mods/lavalamp/textures/lavalamp_lamp_anim_orange.png differ diff --git a/mods/lavalamp/textures/lavalamp_lamp_anim_red.png b/mods/lavalamp/textures/lavalamp_lamp_anim_red.png new file mode 100755 index 00000000..dc3c25dc Binary files /dev/null and b/mods/lavalamp/textures/lavalamp_lamp_anim_red.png differ diff --git a/mods/lavalamp/textures/lavalamp_lamp_anim_violet.png b/mods/lavalamp/textures/lavalamp_lamp_anim_violet.png new file mode 100755 index 00000000..0ce98768 Binary files /dev/null and b/mods/lavalamp/textures/lavalamp_lamp_anim_violet.png differ diff --git a/mods/lavalamp/textures/lavalamp_lamp_anim_yellow.png b/mods/lavalamp/textures/lavalamp_lamp_anim_yellow.png new file mode 100755 index 00000000..33914f62 Binary files /dev/null and b/mods/lavalamp/textures/lavalamp_lamp_anim_yellow.png differ diff --git a/mods/lavalamp/textures/lavalamp_lamp_bottom.png b/mods/lavalamp/textures/lavalamp_lamp_bottom.png new file mode 100755 index 00000000..48e3d737 Binary files /dev/null and b/mods/lavalamp/textures/lavalamp_lamp_bottom.png differ diff --git a/mods/lavalamp/textures/lavalamp_lamp_off_sides.png b/mods/lavalamp/textures/lavalamp_lamp_off_sides.png new file mode 100755 index 00000000..4afc5285 Binary files /dev/null and b/mods/lavalamp/textures/lavalamp_lamp_off_sides.png differ diff --git a/mods/lavalamp/textures/lavalamp_lamp_top.png b/mods/lavalamp/textures/lavalamp_lamp_top.png new file mode 100755 index 00000000..e50f10c0 Binary files /dev/null and b/mods/lavalamp/textures/lavalamp_lamp_top.png differ diff --git a/mods/lavatemple/dagger.lua b/mods/lavatemple/dagger.lua new file mode 100755 index 00000000..bdd3c5d1 --- /dev/null +++ b/mods/lavatemple/dagger.lua @@ -0,0 +1,69 @@ +-- Based on compass mod by Echo + +minetest.register_globalstep(function(dtime) + local players = minetest.get_connected_players() + for i,player in ipairs(players) do + target = lavatemple.mapgen_data.pos; + if not target then return end + pos = player:getpos() + dir = player:get_look_yaw() + local angle_north = math.deg(math.atan2(target.x - pos.x, target.z - pos.z)) + if angle_north < 0 then angle_north = angle_north + 360 end + angle_dir = 90 - math.deg(dir) + local angle_relative = (angle_north - angle_dir) % 360 + local compass_image = math.floor((angle_relative/30) + 0.5)%12 + + local wielded_item = player:get_wielded_item():get_name() + if string.sub(wielded_item, 0, 18) == "lavatemple:dagger_" then + player:set_wielded_item("lavatemple:dagger_"..compass_image) + else + if player:get_inventory() then + for i,stack in ipairs(player:get_inventory():get_list("main")) do + if string.sub(stack:get_name(), 0, 18) == "lavatemple:dagger_" and + stack:get_name() ~= "lavatemple:dagger_"..compass_image then + player:get_inventory():set_stack("main", i, ItemStack("lavatemple:dagger_"..compass_image)) + end + end + end + end + end +end) + +local images = { + "lavatemple_dagger_0.png", + "lavatemple_dagger_1.png", + "lavatemple_dagger_2.png", + "lavatemple_dagger_3.png", + "lavatemple_dagger_4.png", + "lavatemple_dagger_5.png", + "lavatemple_dagger_6.png", + "lavatemple_dagger_5.png", + "lavatemple_dagger_4.png", + "lavatemple_dagger_3.png", + "lavatemple_dagger_2.png", + "lavatemple_dagger_1.png", +} + +local i +for i,img in ipairs(images) do + local inv = 1 + if i == 1 then + inv = 0 + end + minetest.register_tool("lavatemple:dagger_"..(i-1), { + description = "Lava dagger", + inventory_image = img, + wield_image = img, + groups = {not_in_creative_inventory=inv}, + }) +end + +minetest.register_craft({ + output = 'lavatemple:dagger_1', + recipe = { + {'zmobs:lava_orb', 'default:steel_ingot', 'zmobs:lava_orb'}, + {'zmobs:lava_orb', 'default:steel_ingot', 'zmobs:lava_orb'}, + {'zmobs:lava_orb', 'default:stick', 'zmobs:lava_orb'} + } +}) + diff --git a/mods/lavatemple/depends.txt b/mods/lavatemple/depends.txt new file mode 100755 index 00000000..c2421e34 --- /dev/null +++ b/mods/lavatemple/depends.txt @@ -0,0 +1,4 @@ +default +stairs +zmobs +worldedit diff --git a/mods/lavatemple/init.lua b/mods/lavatemple/init.lua new file mode 100755 index 00000000..281a057e --- /dev/null +++ b/mods/lavatemple/init.lua @@ -0,0 +1,7 @@ +lavatemple = {} +local MODPATH = minetest.get_modpath("lavatemple") +dofile(MODPATH.."/nodes.lua") +dofile(MODPATH.."/items.lua") +dofile(MODPATH.."/mapgen.lua") +dofile(MODPATH.."/dagger.lua") + diff --git a/mods/lavatemple/items.lua b/mods/lavatemple/items.lua new file mode 100755 index 00000000..bfaa5ee5 --- /dev/null +++ b/mods/lavatemple/items.lua @@ -0,0 +1,21 @@ + +minetest.register_tool("lavatemple:darkpick", { + description = "Dark Pickaxe", + inventory_image = "lavatemple_tool_darkpick.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=0, + groupcaps={ + dark = {times={[1]=0.25}, uses=0, maxlevel=1}, + }, + damage_groups = {}, + }, +}) + +minetest.register_craftitem("lavatemple:teleport_orb", { + description = "Teleport'orb (does nothing yet)", + inventory_image = "lavatemple_teleport_orb.png", + on_place = function(itemstack, placer, pointed_thing) + end, +}) + diff --git a/mods/lavatemple/mapgen.lua b/mods/lavatemple/mapgen.lua new file mode 100755 index 00000000..d40a3327 --- /dev/null +++ b/mods/lavatemple/mapgen.lua @@ -0,0 +1,56 @@ +lavatemple.mapgen_data = {} +lavatemple.file = minetest.get_worldpath()..'/lavatemple.mt' + +-- try to load the data from file +local f = io.open(lavatemple.file, "r") +if f then + local contents = f:read() + io.close(f) + if contents ~= nil then + lavatemple.mapgen_data = minetest.deserialize(contents) + end +end + +-- generate position of the temple (if not done already) +if type (lavatemple.mapgen_data) ~= "table" or + lavatemple.mapgen_data.pos == nil or + lavatemple.mapgen_data.pos.x == nil or + lavatemple.mapgen_data.pos.y == nil or + lavatemple.mapgen_data.pos.z == nil then + + -- generate the temple position + math.randomseed(os.time()) + lavatemple.mapgen_data.pos = { + x=math.random(-2000,2000), + y=math.random(-500,-50), + z=math.random(-2000,2000) + } + + -- save data + local f = io.open(lavatemple.file, "w") + f:write(minetest.serialize(lavatemple.mapgen_data)) + io.close(f) +end + +minetest.register_on_generated(function(minp,maxp,seed) + local ltp = lavatemple.mapgen_data.pos + if ltp.x > minp.x and ltp.x < maxp.x and + ltp.y > minp.y and ltp.y < maxp.y and + ltp.z > minp.z and ltp.z < maxp.z then + local f = io.open(minetest.get_modpath("lavatemple").."/schems/lavatemple.we", "r") + if not f then return end + local contents = f:read() + io.close(f) + if not contents then return end + -- Clear the area since worldedit doesn't save "air" nodes + pos1, pos2, count = worldedit.allocate(ltp, contents) + for x=pos1.x,pos2.x do + for y=pos1.y,pos2.y do + for z=pos1.z,pos2.z do + minetest.env:remove_node({x=x,y=y,z=z}) + end end end + -- Deserialize the temple + worldedit.deserialize(ltp, contents, minetest.env) + end +end) + diff --git a/mods/lavatemple/nodes.lua b/mods/lavatemple/nodes.lua new file mode 100755 index 00000000..98d3e5ee --- /dev/null +++ b/mods/lavatemple/nodes.lua @@ -0,0 +1,42 @@ + +minetest.register_node("lavatemple:brick", { + description = "Darkbrick", + tiles = {"lavatemple_brick.png"}, + groups = {dark=1}, + sounds = default.node_sound_stone_defaults(), +}) + +stairs.register_stair_and_slab( + "lavatemple_brick", + "lavatemple:brick", + {dark=1}, + {"lavatemple_brick.png"}, + "Darkbrick Stair", + "Darkbrick Slab", + default.node_sound_stone_defaults() +) + +minetest.register_node("lavatemple:ladder", { + description = "Darkbrick Ladder", + drawtype = "signlike", + tiles = {"lavatemple_ladder.png"}, + inventory_image = "lavatemple_ladder.png", + wield_image = "lavatemple_ladder.png", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + climbable = true, + selection_box = {type = "wallmounted"}, + groups = {dark=1}, + legacy_wallmounted = true, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("lavatemple:fence_brick", { + description = "Darkbrick fence", + drawtype = "fencelike", + paramtype = "light", + tiles = {"lavatemple_brick.png"}, + groups = {dark=1}, + sounds = default.node_sound_stone_defaults(), +}) diff --git a/mods/lavatemple/schems/lavatemple.we b/mods/lavatemple/schems/lavatemple.we new file mode 100755 index 00000000..45670cac --- /dev/null +++ b/mods/lavatemple/schems/lavatemple.we @@ -0,0 +1 @@ +return { { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 0, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 1, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 2, ["name"] = "default:lava_source" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 3, ["name"] = "default:lava_source" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 4, ["name"] = "default:lava_source" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 5, ["name"] = "default:lava_source" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 6, ["name"] = "default:lava_source" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 7, ["name"] = "default:lava_source" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 8, ["name"] = "default:lava_source" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 2, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { ["infotext"] = "Chest", ["formspec"] = "size[8,9]list[current_name;main;0,0;8,4;]list[current_player;main;0,5;8,4;]" }, ["inventory"] = { ["main"] = { "lavatemple:teleport_orb", "", "", "", "", "", "", "lavatemple:teleport_orb", "", "", "default:mese", "default:mese 3", "default:diamondblock 3", "default:diamondblock 7", "", "", "", "", "", "", "", "", "", "", "lavatemple:teleport_orb", "", "", "", "", "", "", "lavatemple:teleport_orb" } } }, ["param2"] = 3, ["y"] = 1, ["param1"] = 0, ["z"] = 5, ["name"] = "default:chest" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 2, ["name"] = "default:lava_source" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 3, ["name"] = "default:lava_source" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 4, ["name"] = "default:lava_source" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 5, ["name"] = "default:lava_source" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 6, ["name"] = "default:lava_source" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 7, ["name"] = "default:lava_source" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 8, ["name"] = "default:lava_source" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 2, ["y"] = 4, ["param1"] = 204, ["z"] = 5, ["name"] = "lavatemple:ladder" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 2, ["y"] = 5, ["param1"] = 187, ["z"] = 5, ["name"] = "lavatemple:ladder" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 3, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 170, ["z"] = 3, ["name"] = "lavatemple:fence_brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 187, ["z"] = 4, ["name"] = "lavatemple:fence_brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 170, ["z"] = 5, ["name"] = "lavatemple:fence_brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 170, ["z"] = 6, ["name"] = "lavatemple:fence_brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 153, ["z"] = 7, ["name"] = "lavatemple:fence_brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 4, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 2, ["y"] = 2, ["param1"] = 204, ["z"] = 4, ["name"] = "stairs:stair_lavatemple_brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 1, ["y"] = 2, ["param1"] = 187, ["z"] = 5, ["name"] = "lavatemple:ladder" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 187, ["z"] = 6, ["name"] = "stairs:stair_lavatemple_brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 2, ["y"] = 3, ["param1"] = 187, ["z"] = 3, ["name"] = "stairs:stair_lavatemple_brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 153, ["z"] = 7, ["name"] = "stairs:stair_lavatemple_brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 5, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 3, ["y"] = 1, ["param1"] = 187, ["z"] = 5, ["name"] = "stairs:stair_lavatemple_brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 3, ["name"] = "default:lava_source" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 204, ["z"] = 4, ["name"] = "default:obsidian_glass" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 204, ["z"] = 6, ["name"] = "default:obsidian_glass" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 7, ["name"] = "default:lava_source" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 6, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 3, ["name"] = "default:lava_source" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 204, ["z"] = 4, ["name"] = "default:obsidian_glass" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 204, ["z"] = 6, ["name"] = "default:obsidian_glass" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 7, ["name"] = "default:lava_source" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 4, ["name"] = "default:lava_source" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 6, ["name"] = "default:lava_source" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 7, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 2, ["name"] = "default:lava_source" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 8, ["name"] = "default:lava_source" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 2, ["name"] = "default:lava_source" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 8, ["name"] = "default:lava_source" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 2, ["name"] = "default:lava_source" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 8, ["name"] = "default:lava_source" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 3, ["name"] = "default:lava_source" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 7, ["name"] = "default:lava_source" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 4, ["name"] = "default:lava_source" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 6, ["name"] = "default:lava_source" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { ["infotext"] = "Chest", ["formspec"] = "size[8,9]list[current_name;main;0,0;8,4;]list[current_player;main;0,5;8,4;]" }, ["inventory"] = { ["main"] = { "", "", "", "", "", "", "", "", "", "", "", "lavatemple:darkpick", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" } } }, ["param2"] = 1, ["y"] = 6, ["param1"] = 0, ["z"] = 5, ["name"] = "default:chest" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 8, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 204, ["z"] = 2, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 187, ["z"] = 3, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 170, ["z"] = 4, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 153, ["z"] = 5, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 170, ["z"] = 6, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 187, ["z"] = 7, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 204, ["z"] = 8, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 204, ["z"] = 2, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 187, ["z"] = 3, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 170, ["z"] = 4, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 153, ["z"] = 5, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 170, ["z"] = 6, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 187, ["z"] = 7, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 204, ["z"] = 8, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 204, ["z"] = 2, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 187, ["z"] = 3, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 170, ["z"] = 4, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 153, ["z"] = 5, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 170, ["z"] = 6, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 187, ["z"] = 7, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 204, ["z"] = 8, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 204, ["z"] = 3, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 187, ["z"] = 4, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 170, ["z"] = 5, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 187, ["z"] = 6, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 204, ["z"] = 7, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 204, ["z"] = 4, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 187, ["z"] = 5, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 204, ["z"] = 6, ["name"] = "default:obsidian_glass" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 0, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 1, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 9, ["name"] = "lavatemple:brick" }, { ["x"] = 9, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 10, ["name"] = "lavatemple:brick" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 2, ["name"] = "lavatemple:brick" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 8, ["name"] = "lavatemple:brick" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 4, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 5, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 6, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 4, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 5, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 6, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 10, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 3, ["name"] = "lavatemple:brick" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 7, ["name"] = "lavatemple:brick" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 4, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 5, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 6, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 4, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 5, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 6, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 4, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 5, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 6, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 11, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 4, ["name"] = "lavatemple:brick" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 5, ["name"] = "lavatemple:brick" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 6, ["name"] = "lavatemple:brick" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 4, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 5, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 6, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 4, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 5, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 6, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 4, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 5, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 6, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 4, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 5, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 6, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 12, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 4, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 5, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 6, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 0, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 4, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 6, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 1, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 4, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 6, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 2, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 4, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 5, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 6, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 3, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 4, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 5, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 6, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 4, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 4, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 5, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 6, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 5, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 4, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 5, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 6, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 6, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 4, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 5, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 6, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 7, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 0, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 1, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 2, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 3, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 4, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 5, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 6, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 7, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 8, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 9, ["name"] = "default:stone" }, { ["x"] = 13, ["meta"] = { ["fields"] = { }, ["inventory"] = { } }, ["param2"] = 0, ["y"] = 8, ["param1"] = 0, ["z"] = 10, ["name"] = "default:stone" } } \ No newline at end of file diff --git a/mods/lavatemple/sounds/default_dig_dark.ogg b/mods/lavatemple/sounds/default_dig_dark.ogg new file mode 100755 index 00000000..bbbc3a34 Binary files /dev/null and b/mods/lavatemple/sounds/default_dig_dark.ogg differ diff --git a/mods/lavatemple/textures/lavatemple_brick.png b/mods/lavatemple/textures/lavatemple_brick.png new file mode 100755 index 00000000..3ec3c380 Binary files /dev/null and b/mods/lavatemple/textures/lavatemple_brick.png differ diff --git a/mods/lavatemple/textures/lavatemple_dagger_0.png b/mods/lavatemple/textures/lavatemple_dagger_0.png new file mode 100755 index 00000000..eb5f06c0 Binary files /dev/null and b/mods/lavatemple/textures/lavatemple_dagger_0.png differ diff --git a/mods/lavatemple/textures/lavatemple_dagger_1.png b/mods/lavatemple/textures/lavatemple_dagger_1.png new file mode 100755 index 00000000..c91fd68c Binary files /dev/null and b/mods/lavatemple/textures/lavatemple_dagger_1.png differ diff --git a/mods/lavatemple/textures/lavatemple_dagger_2.png b/mods/lavatemple/textures/lavatemple_dagger_2.png new file mode 100755 index 00000000..46584225 Binary files /dev/null and b/mods/lavatemple/textures/lavatemple_dagger_2.png differ diff --git a/mods/lavatemple/textures/lavatemple_dagger_3.png b/mods/lavatemple/textures/lavatemple_dagger_3.png new file mode 100755 index 00000000..55f81221 Binary files /dev/null and b/mods/lavatemple/textures/lavatemple_dagger_3.png differ diff --git a/mods/lavatemple/textures/lavatemple_dagger_4.png b/mods/lavatemple/textures/lavatemple_dagger_4.png new file mode 100755 index 00000000..b98f3331 Binary files /dev/null and b/mods/lavatemple/textures/lavatemple_dagger_4.png differ diff --git a/mods/lavatemple/textures/lavatemple_dagger_5.png b/mods/lavatemple/textures/lavatemple_dagger_5.png new file mode 100755 index 00000000..f5959f53 Binary files /dev/null and b/mods/lavatemple/textures/lavatemple_dagger_5.png differ diff --git a/mods/lavatemple/textures/lavatemple_dagger_6.png b/mods/lavatemple/textures/lavatemple_dagger_6.png new file mode 100755 index 00000000..36d58765 Binary files /dev/null and b/mods/lavatemple/textures/lavatemple_dagger_6.png differ diff --git a/mods/lavatemple/textures/lavatemple_ladder.png b/mods/lavatemple/textures/lavatemple_ladder.png new file mode 100755 index 00000000..46a045a3 Binary files /dev/null and b/mods/lavatemple/textures/lavatemple_ladder.png differ diff --git a/mods/lavatemple/textures/lavatemple_teleport_orb.png b/mods/lavatemple/textures/lavatemple_teleport_orb.png new file mode 100755 index 00000000..619f95a4 Binary files /dev/null and b/mods/lavatemple/textures/lavatemple_teleport_orb.png differ diff --git a/mods/lavatemple/textures/lavatemple_tool_darkpick.png b/mods/lavatemple/textures/lavatemple_tool_darkpick.png new file mode 100755 index 00000000..e531dd88 Binary files /dev/null and b/mods/lavatemple/textures/lavatemple_tool_darkpick.png differ diff --git a/mods/locked_sign/README.txt b/mods/locked_sign/README.txt new file mode 100755 index 00000000..6afbf454 --- /dev/null +++ b/mods/locked_sign/README.txt @@ -0,0 +1,33 @@ +Minetest 0.4 mod: locked_sign +============================= + +This can be found in: + https://github.com/kotolegokot/minetest-mod-locked_sign + +License of source code +---------------------- +Copyright (C) 2012 kotolegokot, Oleg Matveev +See README.txt in each mod directory for information about other authors. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 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, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +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 +----------------------- +Copyright (C) 2012 kotolegokot, Oleg Matveev \ No newline at end of file diff --git a/mods/locked_sign/depends.txt b/mods/locked_sign/depends.txt new file mode 100755 index 00000000..4ad96d51 --- /dev/null +++ b/mods/locked_sign/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/locked_sign/init.lua b/mods/locked_sign/init.lua new file mode 100755 index 00000000..d886454b --- /dev/null +++ b/mods/locked_sign/init.lua @@ -0,0 +1,67 @@ +--[[ + Mod by kotolegokot + Version 2012.8.13.0 +]] +minetest.register_privilege("sign_editor", "Can edit all locked signs") +minetest.register_node("locked_sign:sign_wall_locked", { + description = "Locked Sign", + drawtype = "signlike", + tiles = {"locked_sign_sign_wall_lock.png"}, + inventory_image = "locked_sign_sign_wall_lock.png", + wield_image = "locked_sign_sign_wall_lock.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + metadata_name = "sign", + selection_box = { + type = "wallmounted", + }, + groups = {choppy=2,dig_immediate=2}, + legacy_wallmounted = true, + sounds = default.node_sound_defaults(), + after_place_node = function(pos, placer) + local meta = minetest.env:get_meta(pos) + meta:set_string("owner", placer:get_player_name() or "") + meta:set_string("infotext", "\"\" (owned by " .. placer:get_player_name() .. ")") + end, + on_construct = function(pos) + --local n = minetest.env:get_node(pos) + local meta = minetest.env:get_meta(pos) + meta:set_string("formspec", "hack:sign_text_input") + meta:set_string("infotext", "\"\"") + end, + can_dig = function(pos,player) + local meta = minetest.env:get_meta(pos); + local owner = meta:get_string("owner") + local pname = player:get_player_name() + return pname == owner or pname == minetest.setting_get("name") + or minetest.check_player_privs(pname, {sign_editor=true}) + end, + on_receive_fields = function(pos, formname, fields, sender) + local meta = minetest.env:get_meta(pos) + local owner = meta:get_string("owner") + local pname = sender:get_player_name() + if pname ~= owner and pname ~= minetest.setting_get("name") + and not minetest.check_player_privs(pname, {sign_editor=true}) then + return + end + local meta = minetest.env:get_meta(pos) + fields.text = fields.text or "" + print((sender:get_player_name() or "").." wrote \""..fields.text.. + "\" to sign at "..minetest.pos_to_string(pos)) + meta:set_string("text", fields.text) + meta:set_string("infotext", "\"" .. fields.text .. "\" (owned by " .. sender:get_player_name() .. ")") + end, +}) + +minetest.register_craft({ + output = "locked_sign:sign_wall_locked", + recipe = { + {"default:wood", "default:wood", "default:wood"}, + {"default:wood", "default:wood", "default:steel_ingot"}, + {"", "default:stick", ""}, + } +}) + +minetest.register_alias("sign_wall_locked", "locked_sign:sign_wall_locked") diff --git a/mods/locked_sign/textures/MineToon/locked_sign_sign_wall_lock.png b/mods/locked_sign/textures/MineToon/locked_sign_sign_wall_lock.png new file mode 100755 index 00000000..6199a43e Binary files /dev/null and b/mods/locked_sign/textures/MineToon/locked_sign_sign_wall_lock.png differ diff --git a/mods/locked_sign/textures/locked_sign_sign_wall_lock.png b/mods/locked_sign/textures/locked_sign_sign_wall_lock.png new file mode 100755 index 00000000..9318b82b Binary files /dev/null and b/mods/locked_sign/textures/locked_sign_sign_wall_lock.png differ diff --git a/mods/maptools/LICENSE.txt b/mods/maptools/LICENSE.txt new file mode 100755 index 00000000..f42bd647 --- /dev/null +++ b/mods/maptools/LICENSE.txt @@ -0,0 +1,13 @@ ++---- zlib/libpng license ----+ + +Copyright (c) 2013 Calinou + +This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source distribution. diff --git a/mods/maptools/README.txt b/mods/maptools/README.txt new file mode 100755 index 00000000..4c155813 --- /dev/null +++ b/mods/maptools/README.txt @@ -0,0 +1,22 @@ +Calinou's Minetest Mods +===================== + +Calinou's Mods for Minetest [http://minetest.net], a free and opensource Minecraft-like game. + +This Git repository is mostly made for servers; it allows easy updating. + +To install, just clone this repository somewhere, then copy the "calinou_mods" folder in the "mods/minetest" folder of Minetest's installation folder. + + + +Misc stuff +===================== + +All these mods' source codes, except More Ores are under the zlib/libpng license. More Ores is under the GNU GPLv3; the mods' textures are under the CC BY-SA 3.0 Unported. + +Mods' forum threads: +More Blocks: http://minetest.net/forum/viewtopic.php?id=509 +More Ores: http://minetest.net/forum/viewtopic.php?id=549 +Map Tools: http://minetest.net/forum/viewtopic.php?id=1882 +Doors+: http://minetest.net/forum/viewtopic.php?id=2059 +Stairs+: http://minetest.net/forum/viewtopic.php?id=2092 diff --git a/mods/maptools/_README.txt b/mods/maptools/_README.txt new file mode 100755 index 00000000..cfbe0b2e --- /dev/null +++ b/mods/maptools/_README.txt @@ -0,0 +1,53 @@ +*** Item names for spawning the items using /give or /giveme *** + +Items: + +- admin_pick +Purple pickaxe, infinite durability, mines everything including unbreakable blocks instantly. Don't put this pickaxe in the hands of a griefer, of course. :) + +- infinitefuel +Fuel lasting for a (near)-infinite time. Don't worry about the "near" - it lasts for about 50 in-real-life years. + +- superapple +An apple which heals all 10 hearts. + +- copper_coin +- silver_coin +- gold_coin +These have nothing to do with the More Ores mod; they can be used as a currency for trading, or as an universal currency for mods that add shops. + +Blocks: +A /!\ denotes an unpointable, unbreakable block; be very careful with them, they cannot be removed by hand (they can only be removed with WorldEdit). + +- (insert block name here)_u -- example: stone_u +Unbreakable, non-flammable, non-falling, non-decaying blocks, most common blocks have their unbreakable form (examples: maptools:stone or maptools:wood for unbreakable stone/wood). + +- fullgrass +Unbrakable block with the "grass" texture on all sides. + +- playerclip +/!\ Invisible block, not pointable. + +- fullclip +Invisible block, pointable. + +- smoke_block +Some smoke (does not harm players or entities). + +- nobuild +/!\ Very basic building prevention. + +- nointeract +Prevents interacting through the block (interacting as in opening chests, furnaces, attacking entities...). + +- damage_(insert damage in half hearts here) +/!\ Damaging blocks. The damage is in half hearts and ranges from 1 to 5 (0.5 to 2.5 hearts damage every second). + +- killblock +/!\ Instant kill (deals 10 heart damage) blocks. + +- lightblock +/!\ Invisible non-solid block, prevents light from passing through. + +- lightbulb +/!\ Invisible non-solid block, emitting a good amount of light. diff --git a/mods/maptools/aliases.lua b/mods/maptools/aliases.lua new file mode 100755 index 00000000..8742f44e --- /dev/null +++ b/mods/maptools/aliases.lua @@ -0,0 +1,93 @@ +-- Aliases + +minetest.register_alias("adminpick", "maptools:pick_admin") +minetest.register_alias("adminpickaxe", "maptools:pick_admin") +minetest.register_alias("admin_pick", "maptools:pick_admin") +minetest.register_alias("admin_pickaxe", "maptools:pick_admin") +minetest.register_alias("pick_admin", "maptools:pick_admin") +minetest.register_alias("pickaxe_admin", "maptools:pick_admin") +minetest.register_alias("pickadmin", "maptools:pick_admin") +minetest.register_alias("pickaxeadmin", "maptools:pick_admin") +minetest.register_alias("adminpickdrops", "maptools:pick_admin_with_drops") +minetest.register_alias("adminpickaxedrops", "maptools:pick_admin_with_drops") +minetest.register_alias("admin_pick_drops", "maptools:pick_admin_with_drops") +minetest.register_alias("admin_pickaxe_drops", "maptools:pick_admin_with_drops") +minetest.register_alias("pick_admin_drops", "maptools:pick_admin_with_drops") +minetest.register_alias("pickaxe_admin_drops", "maptools:pick_admin_with_drops") +minetest.register_alias("pickadmindrops", "maptools:pick_admin_with_drops") +minetest.register_alias("pickaxeadmindrops", "maptools:pick_admin_with_drops") +minetest.register_alias("infinitefuel", "maptools:infinitefuel") +minetest.register_alias("infinite_fuel", "maptools:infinitefuel") +minetest.register_alias("ifuel", "maptools:infinitefuel") +minetest.register_alias("superapple", "maptools:superapple") +minetest.register_alias("super_apple", "maptools:superapple") +minetest.register_alias("sapple", "maptools:superapple") +minetest.register_alias("nobuild", "maptools:nobuild") +minetest.register_alias("nointeract", "maptools:nointeract") +minetest.register_alias("damage_1", "maptools:damage_1") +minetest.register_alias("damage_2", "maptools:damage_2") +minetest.register_alias("damage_3", "maptools:damage_3") +minetest.register_alias("damage_4", "maptools:damage_4") +minetest.register_alias("damage_5", "maptools:damage_5") +minetest.register_alias("pusher_1", "maptools:pusher_1") +minetest.register_alias("pusher_2", "maptools:pusher_2") +minetest.register_alias("pusher_3", "maptools:pusher_3") +minetest.register_alias("pusher_4", "maptools:pusher_4") +minetest.register_alias("pusher_5", "maptools:pusher_5") +minetest.register_alias("pusher_6", "maptools:pusher_6") +minetest.register_alias("pusher_7", "maptools:pusher_7") +minetest.register_alias("pusher_8", "maptools:pusher_8") +minetest.register_alias("pusher_9", "maptools:pusher_9") +minetest.register_alias("pusher_10", "maptools:pusher_10") +minetest.register_alias("killblock", "maptools:kill") +minetest.register_alias("kill_block", "maptools:kill") +minetest.register_alias("lightblock", "maptools:lightblock") +minetest.register_alias("light_block", "maptools:lightblock") +minetest.register_alias("lightbulb", "maptools:lightbulb") +minetest.register_alias("light_bulb", "maptools:lightbulb") +minetest.register_alias("playerclip", "maptools:playerclip") +minetest.register_alias("player_clip", "maptools:playerclip") +minetest.register_alias("pclip", "maptools:playerclip") +minetest.register_alias("fullclip", "maptools:fullclip") +minetest.register_alias("full_clip", "maptools:fullclip") +minetest.register_alias("fclip", "maptools:fullclip") +minetest.register_alias("full_clip", "maptools:fullclip") +minetest.register_alias("full_clip_face", "maptools:fullclip_face") +minetest.register_alias("fullclip_face", "maptools:fullclip_face") +minetest.register_alias("fullclipface", "maptools:fullclip_face") +minetest.register_alias("player_clip_bottom", "maptools:playerclip_bottom") +minetest.register_alias("playerclip_bottom", "maptools:playerclip_bottom") +minetest.register_alias("playerclipbottom", "maptools:playerclip_bottom") +minetest.register_alias("player_clip_top", "maptools:playerclip_top") +minetest.register_alias("playerclip_top", "maptools:playerclip_top") +minetest.register_alias("playercliptop", "maptools:playerclip_top") +minetest.register_alias("permanentfire", "maptools:permanent_fire") +minetest.register_alias("permanent_fire", "maptools:permanent_fire") +minetest.register_alias("pfire", "maptools:permanent_fire") +minetest.register_alias("fakefire", "maptools:fake_fire") +minetest.register_alias("fake_fire", "maptools:fake_fire") +minetest.register_alias("ffire", "maptools:fake_fire") +minetest.register_alias("igniter", "maptools:igniter") + +-- Unbreakable block aliases + +minetest.register_alias("stone_u", "maptools:stone") +minetest.register_alias("tree_u", "maptools:tree") +minetest.register_alias("cobble_u", "maptools:cobble") +minetest.register_alias("wood_u", "maptools:wood") +minetest.register_alias("sand_u", "maptools:sand") +minetest.register_alias("gravel_u", "maptools:gravel") +minetest.register_alias("brick_u", "maptools:brick") +minetest.register_alias("dirt_u", "maptools:dirt") +minetest.register_alias("glass_u", "maptools:glass") +minetest.register_alias("sandstone_u", "maptools:sandstone") +minetest.register_alias("desert_stone_u", "maptools:desert_stone") +minetest.register_alias("desertstone_u", "maptools:desert_stone") +minetest.register_alias("desert_sand_u", "maptools:desert_sand") +minetest.register_alias("desertsand_u", "maptools:desert_sand") +minetest.register_alias("leaves_u", "maptools:leaves") +minetest.register_alias("grass_u", "maptools:grass") +minetest.register_alias("fullgrass", "maptools:fullgrass") +minetest.register_alias("fullgrass_u", "maptools:fullgrass") +minetest.register_alias("mossycobble_u", "maptools:mossycobble") +minetest.register_alias("mossy_cobble_u", "maptools:mossycobble") diff --git a/mods/maptools/default_nodes.lua b/mods/maptools/default_nodes.lua new file mode 100755 index 00000000..fd02fda8 --- /dev/null +++ b/mods/maptools/default_nodes.lua @@ -0,0 +1,386 @@ +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) + else + S = function ( s ) return s end +end + +minetest.register_node("maptools:stone", { + description = S("Unbreakable Stone"), + range = 12, + stack_max = 10000, + tiles = {"default_stone.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:stonebrick", { + description = S("Unbreakable Stone Brick"), + range = 12, + stack_max = 10000, + tiles = {"default_stone_brick.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:tree", { + description = S("Unbreakable Tree"), + range = 12, + stack_max = 10000, + tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node +}) + +minetest.register_node("maptools:jungletree", { + description = S("Unbreakable Jungle Tree"), + range = 12, + stack_max = 10000, + tiles = {"default_jungletree_top.png", "default_jungletree_top.png", "default_jungletree.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node +}) + +minetest.register_node("maptools:cactus", { + description = S("Unbreakable Cactus"), + range = 12, + stack_max = 10000, + tiles = {"default_cactus_top.png", "default_cactus_top.png", "default_cactus_side.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node +}) + +minetest.register_node("maptools:papyrus", { + description = S("Unbreakable Papyrus"), + drawtype = "plantlike", + range = 12, + stack_max = 10000, + tiles = {"default_papyrus.png"}, + inventory_image = "default_papyrus.png", + wield_image = "default_papyrus.png", + walkable = false, + paramtype = "light", + sunlight_propagates = true, + drop = "", + selection_box = { + type = "fixed", + fixed = {-0.375, -0.5, -0.375, 0.375, 0.5, 0.375} + }, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("maptools:dirt", { + description = S("Unbreakable Dirt"), + range = 12, + stack_max = 10000, + tiles = {"default_dirt.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("maptools:wood", { + description = S("Unbreakable Wooden Planks"), + range = 12, + stack_max = 10000, + tiles = {"default_wood.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("maptools:junglewood", { + description = S("Unbreakable Junglewood Planks"), + range = 12, + stack_max = 10000, + tiles = {"default_junglewood.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("maptools:glass", { + description = S("Unbreakable Glass"), + range = 12, + stack_max = 10000, + drawtype = "glasslike", + tiles = {"default_glass.png"}, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("maptools:leaves", { + description = S("Unbreakable Leaves"), + range = 12, + stack_max = 10000, + drawtype = "allfaces_optional", + tiles = {"default_leaves.png"}, + paramtype = "light", + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("maptools:sand", { + description = S("Unbreakable Sand"), + range = 12, + stack_max = 10000, + tiles = {"default_sand.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("maptools:gravel", { + description = S("Unbreakable Gravel"), + range = 12, + stack_max = 10000, + tiles = {"default_gravel.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_gravel_footstep", gain=0.35}, + dug = {name="default_gravel_footstep", gain=0.6}, + }), +}) + +minetest.register_node("maptools:clay", { + description = S("Unbreakable Clay"), + range = 12, + stack_max = 10000, + tiles = {"default_clay.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("maptools:desert_sand", { + description = S("Unbreakable Desert Sand"), + range = 12, + stack_max = 10000, + tiles = {"default_desert_sand.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("maptools:sandstone", { + description = S("Unbreakable Sandstone"), + range = 12, + stack_max = 10000, + tiles = {"default_sandstone.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:sandstone_brick", { + description = S("Unbreakable Sandstone Brick"), + range = 12, + stack_max = 10000, + tiles = {"default_sandstone_brick.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:desert_stone", { + description = S("Unbreakable Desert Stone"), + range = 12, + stack_max = 10000, + tiles = {"default_desert_stone.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:desert_cobble", { + description = S("Unbreakable Desert Cobble"), + range = 12, + stack_max = 10000, + tiles = {"default_desert_cobble.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:desert_stonebrick", { + description = S("Unbreakable Desert Stone Brick"), + range = 12, + stack_max = 10000, + tiles = {"default_desert_stone_brick.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:grass", { + description = S("Unbreakable Dirt with Grass"), + range = 12, + stack_max = 10000, + tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, + paramtype2 = "facedir", + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain = 0.4}, + }), +}) + +minetest.register_node("maptools:fullgrass", { + description = S("Unbreakable Full Grass"), + range = 12, + stack_max = 10000, + tiles = {"default_grass.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.4}, + }), +}) + +for slab_num = 1,3,1 do + minetest.register_node("maptools:slab_grass_" .. slab_num * 4, { + description = S("Grass Slab"), + range = 12, + stack_max = 10000, + tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^maptools_grass_side_" .. slab_num * 4 .. ".png"}, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.5 + slab_num * 0.25, 0.5}, + }, + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_dirt_defaults({footstep = {name="default_grass_footstep", gain = 0.4}}), + }) +end + +minetest.register_node("maptools:cobble", { + description = S("Unbreakable Cobblestone"), + range = 12, + stack_max = 10000, + tiles = {"default_cobble.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:mossycobble", { + description = S("Unbreakable Mossy Cobblestone"), + range = 12, + stack_max = 10000, + tiles = {"default_mossycobble.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:brick", { + description = S("Unbreakable Brick"), + range = 12, + stack_max = 10000, + tiles = {"default_brick.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:coalblock", { + description = S("Unbreakable Coal Block"), + range = 12, + stack_max = 10000, + tiles = {"default_coal_block.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_stone_defaults(), +}) + + +minetest.register_node("maptools:steelblock", { + description = S("Unbreakable Steel Block"), + range = 12, + stack_max = 10000, + tiles = {"default_steel_block.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:goldblock", { + description = S("Unbreakable Gold Block"), + range = 12, + stack_max = 10000, + tiles = {"default_gold_block.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:copperblock", { + description = S("Unbreakable Copper Block"), + range = 12, + stack_max = 10000, + tiles = {"default_copper_block.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:bronzeblock", { + description = S("Unbreakable Bronze Block"), + range = 12, + stack_max = 10000, + tiles = {"default_bronze_block.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:diamondblock", { + description = S("Unbreakable Diamond Block"), + range = 12, + stack_max = 10000, + tiles = {"default_steel_block.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_stone_defaults(), +}) + +-- Farming: + +minetest.register_node("maptools:soil_wet", { + description = "Wet Soil", + range = 12, + stack_max = 10000, + tiles = {"farming_soil_wet.png", "farming_soil_wet_side.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative, soil = 3, wet = 1, grassland = 1}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("maptools:desert_sand_soil_wet", { + description = "Wet Desert Sand Soil", + range = 12, + stack_max = 10000, + drop = "", + tiles = {"farming_desert_sand_soil_wet.png", "farming_desert_sand_soil_wet_side.png"}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative, soil = 3, wet = 1, desert = 1}, + sounds = default.node_sound_sand_defaults(), +}) diff --git a/mods/maptools/depends.txt b/mods/maptools/depends.txt new file mode 100755 index 00000000..4ad96d51 --- /dev/null +++ b/mods/maptools/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/maptools/init.lua b/mods/maptools/init.lua new file mode 100755 index 00000000..712d2d78 --- /dev/null +++ b/mods/maptools/init.lua @@ -0,0 +1,536 @@ +MAPTOOLS_CREATIVE = 1 -- Set this to 0 if you want Map Tools nodes and items to appear in the creative inventory. + +-- Load translation library if intllib is installed + +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) + else + S = function ( s ) return s end +end + +dofile(minetest.get_modpath("maptools").."/aliases.lua") +dofile(minetest.get_modpath("maptools").."/default_nodes.lua") + +--[[ +Map Tools by Calinou +Licensed under the zlib license for code and CC BY-SA 3.0 for textures, see LICENSE.txt for info. +--]] + +-- Redefine cloud so that the admin pickaxe can mine it. + +minetest.register_node(":default:cloud", { + description = S("Cloud"), + tiles = {"default_cloud.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + sounds = default.node_sound_defaults(), +}) + +-- Items + +minetest.register_craft({ + type = "fuel", + recipe = "maptools:infinitefuel", + burntime = 1000000000, +}) + +-- Nodes + +minetest.register_node("maptools:black", { + description = S("Black"), + range = 12, + stack_max = 10000, + tiles = {"black.png"}, + drop = "", + post_effect_color = {a=255, r=0, g=0, b=0}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:white", { + description = S("White"), + range = 12, + stack_max = 10000, + tiles = {"white.png"}, + drop = "", + post_effect_color = {a=255, r=128, g=128, b=128}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:playerclip", { + description = S("Player Clip"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_green.png", + drawtype = "airlike", + paramtype = "light", + pointable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:fake_walkable", { + description = S("Player Clip"), + drawtype = "nodebox", + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_green.png", + drawtype = "airlike", + paramtype = "light", + pointable = false, + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0}, + }, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:fullclip", { + description = S("Full Clip"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_blue.png", + drawtype = "airlike", + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:fake_walkable_pointable", { + description = S("Player Clip"), + drawtype = "nodebox", + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_green.png", + drawtype = "airlike", + paramtype = "light", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0}, + }, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:ignore_like", { + description = S("Ignore-like"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_pink.png", + tiles = {"invisible.png"}, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:ignore_like_no_clip", { + description = S("Ignore-like (no clip)"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_purple.png", + tiles = {"invisible.png"}, + paramtype = "light", + walkable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + + +minetest.register_node("maptools:ignore_like_no_point", { + description = S("Ignore-like (no point)"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_purple.png", + tiles = {"invisible.png"}, + paramtype = "light", + pointable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:ignore_like_no_clip_no_point", { + description = S("Ignore-like (no clip, no point)"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_pink.png", + tiles = {"invisible.png"}, + paramtype = "light", + walkable = false, + pointable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:fullclip_face", { + description = S("Full Clip Face"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_white.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100}, +}) + +minetest.register_node("maptools:playerclip_bottom", { + description = S("Player Clip Bottom Face"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_orange.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100}, +}) + +minetest.register_node("maptools:playerclip_top", { + description = S("Player Clip Top Face"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_yellow.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, 0.4999, -0.5, 0.5, 0.5, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100}, +}) + +for pusher_num=1,10,1 do +minetest.register_node("maptools:pusher_" .. pusher_num, { + description = S("Pusher (%s)"):format(pusher_num), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_apple.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100, bouncy=pusher_num*100}, +}) +end + +minetest.register_node("maptools:lightbulb", { + description = S("Light Bulb"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_mese_crystal_fragment.png", + drawtype = "airlike", + walkable = false, + pointable = false, + light_source = 15, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:nobuild", { + description = S("Build Prevention"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^bones_bones.png", + drawtype = "airlike", + walkable = false, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:nointeract", { + description = S("Interact Prevention"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_scorched_stuff.png", + drawtype = "airlike", + walkable = false, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:climb", { + description = S("Climb Block"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_ladder.png", + drawtype = "airlike", + walkable = false, + climbable = true, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +for damage_num=1,5,1 do +minetest.register_node("maptools:damage_" .. damage_num, { + description = S("Damaging Block (%s)"):format(damage_num), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^farming_cotton_" .. damage_num .. ".png", + drawtype = "airlike", + walkable = false, + pointable = false, + damage_per_second = damage_num, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) +end + +minetest.register_node("maptools:kill", { + description = S("Kill Block"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_black.png", + drawtype = "airlike", + walkable = false, + pointable = false, + damage_per_second = 20, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:smoke", { + description = S("Smoke Block"), + range = 12, + stack_max = 10000, + tiles = {"maptools_smoke.png"}, + drawtype = "allfaces_optional", + walkable = false, + paramtype = "light", + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + post_effect_color = {a=192, r=96, g=96, b=96}, +}) + +minetest.register_node("maptools:ladder", { + description = S("Fake Ladder"), + range = 12, + stack_max = 10000, + drawtype = "signlike", + tiles = {"default_ladder.png"}, + inventory_image = "default_ladder.png", + wield_image = "default_ladder.png", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + sunlight_propagates = true, + selection_box = { + type = "wallmounted", + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("maptools:permanent_fire", { + description = S("Permanent Fire"), + range = 12, + stack_max = 10000, + drawtype = "plantlike", + paramtype = "light", + tiles = {{ + name="fire_basic_flame_animated.png", + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, + }}, + inventory_image = "fire_basic_flame.png", + light_source = 14, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + sunlight_propagates = true, + walkable = false, + damage_per_second = 4, +}) + +minetest.register_node("maptools:fake_fire", { + description = S("Fake Fire"), + range = 12, + stack_max = 10000, + drawtype = "plantlike", + paramtype = "light", + tiles = {{ + name="fire_basic_flame_animated.png", + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, + }}, + inventory_image = "fire_basic_flame.png", + light_source = 14, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + sunlight_propagates = true, + walkable = false, +}) + +minetest.register_node("maptools:igniter", { + drawtype = "airlike", + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^crosshair.png", + description = S("Igniter"), + paramtype = "light", + inventory_image = "fire_basic_flame.png", + drop = "", + groups = {igniter=2, unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + sunlight_propagates = true, + pointable = false, + walkable = false, +}) + +minetest.register_node("maptools:superapple", { + description = S("Super Apple"), + range = 12, + stack_max = 10000, + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"maptools_superapple.png"}, + inventory_image = "maptools_superapple.png", + paramtype = "light", + sunlight_propagates = true, + selection_box = { + type = "fixed", + fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2} + }, + walkable = false, + groups = {fleshy=3, dig_immediate=3, not_in_creative_inventory = 0}, + on_use = minetest.item_eat(20), + sounds = default.node_sound_defaults(), +}) + +-- Items + +minetest.register_craftitem("maptools:copper_coin", { + description = S("Copper Coin"), + inventory_image = "maptools_copper_coin.png", + wield_scale = {x = 0.5, y = 0.5, z = 0.25}, + stack_max = 10000, + groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_craftitem("maptools:silver_coin", { + description = S("Silver Coin"), + inventory_image = "maptools_silver_coin.png", + wield_scale = {x = 0.5, y = 0.5, z = 0.25}, + stack_max = 10000, + groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_craftitem("maptools:gold_coin", { + description = S("Gold Coin"), + inventory_image = "maptools_gold_coin.png", + wield_scale = {x = 0.5, y = 0.5, z = 0.25}, + stack_max = 10000, + groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_craftitem("maptools:infinitefuel", { + description = S("Infinite Fuel"), + inventory_image = "maptools_infinitefuel.png", + stack_max = 10000, + groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +-- Tools + +minetest.register_tool("maptools:pick_admin", { + description = S("Admin Pickaxe"), + range = 12, + inventory_image = "maptools_adminpick.png", + groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, + tool_capabilities = { + full_punch_interval = 0.1, + max_drop_level = 3, + groupcaps= { + unbreakable = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + fleshy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + choppy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + bendy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + cracky = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + crumbly = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + snappy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + }, + damage_groups = {fleshy = 1000}, + }, +}) + +minetest.register_tool("maptools:pick_admin_with_drops", { + description = S("Admin Pickaxe with Drops"), + range = 12, + inventory_image = "maptools_adminpick_with_drops.png", + groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, + tool_capabilities = { + full_punch_interval = 0.35, + max_drop_level = 3, + groupcaps = { + unbreakable = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + fleshy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + choppy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + bendy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + cracky = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + crumbly = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + snappy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + }, + damage_groups = {fleshy = 1000}, + }, +}) + +minetest.register_on_punchnode(function(pos, node, puncher) + if puncher:get_wielded_item():get_name() == "maptools:pick_admin" + and minetest.get_node(pos).name ~= "air" then + minetest.log("action", puncher:get_player_name() .. " digs " .. minetest.get_node(pos).name .. " at " .. minetest.pos_to_string(pos) .. " using an Admin Pickaxe.") + minetest.remove_node(pos) -- The node is removed directly, which means it even works on non-empty containers and group-less nodes. + nodeupdate(pos) -- Run node update actions like falling nodes. + end +end) + +if minetest.setting_getbool("log_mods") then + minetest.log("action", "Carbone: [maptools] loaded.") +end diff --git a/mods/maptools/locale/es.txt b/mods/maptools/locale/es.txt new file mode 100755 index 00000000..1bc96f25 --- /dev/null +++ b/mods/maptools/locale/es.txt @@ -0,0 +1,39 @@ +# Translation by kaeza + +[maptools] loaded. = [maptools] cargado. + +Cloud = Nube +Infinite Fuel = Combustible Infinito +Admin Pickaxe = Pico de Administrador +Copper Coin = Moneda de Cobre +Silver Coin = Moneda de Plata +Gold Coin = Moneda de Oro +Super Apple = Super Manzana +Fake Ladder = Escalera Falsa +Smoke Block = Bloque de Humo +Damaging Block: %s = Bloque Dañino: %s +Kill Block = Bloque Mortal +Build Prevention = Bloqueador de Construcción +Interact Prevention = Bloqueador de Interacción +Climb Block = Bloque Escalable +Light Block = Bloqueador de Luz +Light Bulb = Lamparilla +Player Clip = Bloqueo de Jugador +Full Clip = Bloqueo Total + +Unbreakable Stone = Piedra Irrompible +Unbreakable Sand = Arena Irrompible +Unbreakable Desert Stone = Piedra Desértica Irrompible +Unbreakable Desert Sand = Arena Desértica Irrompible +Unbreakable Gravel = Gravilla Irrompible +Unbreakable Dirt = Tierra Irrompible +Unbreakable Dirt with Grass = Hierba Irrompible +Unbreakable Full Grass= Bloque de Hierba Irrompible +Unbreakable Brick = Ladrillos Irrompibles +Unbreakable Wooden Planks = Planchas de Madera Irrompibles +Unbreakable Tree = Tronco de Árbol Irrompible +Unbreakable Glass = Cristal Irrompible +Unbreakable Sandstone = Arenisca Irrompible +Unbreakable Leaves = Foliaje Irrompible +Unbreakable Cobblestone = Guijarros Irrompibles +Unbreakable Mossy Cobblestone = Guijarros Enmohecidos Irrompibles diff --git a/mods/maptools/locale/fr.txt b/mods/maptools/locale/fr.txt new file mode 100755 index 00000000..d1378712 --- /dev/null +++ b/mods/maptools/locale/fr.txt @@ -0,0 +1,47 @@ +# Translation by Calinou + +[maptools] loaded. = [maptools] a été chargé. + +Cloud = Nuage +Infinite Fuel = Carburant infini +Admin Pickaxe = Pioche d'administrateur +Admin Pickaxe With Drops = Pioche d'administrateur qui donne des objets +Copper Coin = Pièce de cuivre +Silver Coin = Pièce d'argent +Gold Coin = Pièce d'or +Super Apple = Super pomme +Fake Ladder = Fausse échelle +Smoke Block = Bloc de fumée +Damaging Block: %s = Bloc de dégâts : %s +Kill Block = Bloc qui tue +Build Prevention = Prévention de construction +Interact Prevention = Prévention d'interaction +Climb Block = Bloc à grimper +Light Block = Bloqueur de lumière +Light Bulb = Bloc lumineux +Player Clip = Bloque-joueurs +Player Clip Bottom Face = Face inférieure de bloque-joueurs +Player Clip Top Face = Face supérieure de bloque-joueurs +Full Clip = Bloque-tout +Full Clip Face = Face de bloque-tout +Permanent Fire = Feu permanent +Fake Fire = Faux feu +Igniter = Incendieur +Pusher: %s = Pousseur : %s + +Unbreakable Stone = Pierre incassable +Unbreakable Sand = Sable incassable +Unbreakable Desert Stone = Pierre de désert incassable +Unbreakable Desert Sand = Sable de désert incassable +Unbreakable Gravel = Gravier incassable +Unbreakable Dirt = Terre incassable +Unbreakable Dirt with Grass = Herbe incassable +Unbreakable Full Grass= Bloc d'herbe incassable +Unbreakable Brick = Briques incassables +Unbreakable Wooden Planks = Planches de bois incassables +Unbreakable Tree = Tronc d'arbre incassable +Unbreakable Glass = Verre incassable +Unbreakable Sandstone = Grès incassable +Unbreakable Leaves = Feuillage incassable +Unbreakable Cobblestone = Pierre taillée incassable +Unbreakable Mossy Cobblestone = Pierre taillée mousseusse incassable diff --git a/mods/maptools/textures/black.png b/mods/maptools/textures/black.png new file mode 100755 index 00000000..aac403db Binary files /dev/null and b/mods/maptools/textures/black.png differ diff --git a/mods/maptools/textures/fire_basic_flame.png b/mods/maptools/textures/fire_basic_flame.png new file mode 100755 index 00000000..e3c52b0d Binary files /dev/null and b/mods/maptools/textures/fire_basic_flame.png differ diff --git a/mods/maptools/textures/fire_basic_flame_animated.png b/mods/maptools/textures/fire_basic_flame_animated.png new file mode 100755 index 00000000..6f5f8ac6 Binary files /dev/null and b/mods/maptools/textures/fire_basic_flame_animated.png differ diff --git a/mods/maptools/textures/invisible.png b/mods/maptools/textures/invisible.png new file mode 100755 index 00000000..4b5b3029 Binary files /dev/null and b/mods/maptools/textures/invisible.png differ diff --git a/mods/maptools/textures/maptools_adminpick.png b/mods/maptools/textures/maptools_adminpick.png new file mode 100755 index 00000000..04824eb0 Binary files /dev/null and b/mods/maptools/textures/maptools_adminpick.png differ diff --git a/mods/maptools/textures/maptools_adminpick_with_drops.png b/mods/maptools/textures/maptools_adminpick_with_drops.png new file mode 100755 index 00000000..8f7cf7b3 Binary files /dev/null and b/mods/maptools/textures/maptools_adminpick_with_drops.png differ diff --git a/mods/maptools/textures/maptools_copper_coin.png b/mods/maptools/textures/maptools_copper_coin.png new file mode 100755 index 00000000..26d22a88 Binary files /dev/null and b/mods/maptools/textures/maptools_copper_coin.png differ diff --git a/mods/maptools/textures/maptools_gold_coin.png b/mods/maptools/textures/maptools_gold_coin.png new file mode 100755 index 00000000..40f14a96 Binary files /dev/null and b/mods/maptools/textures/maptools_gold_coin.png differ diff --git a/mods/maptools/textures/maptools_grass_side_12.png b/mods/maptools/textures/maptools_grass_side_12.png new file mode 100755 index 00000000..6b264356 Binary files /dev/null and b/mods/maptools/textures/maptools_grass_side_12.png differ diff --git a/mods/maptools/textures/maptools_grass_side_4.png b/mods/maptools/textures/maptools_grass_side_4.png new file mode 100755 index 00000000..ea87a38e Binary files /dev/null and b/mods/maptools/textures/maptools_grass_side_4.png differ diff --git a/mods/maptools/textures/maptools_grass_side_8.png b/mods/maptools/textures/maptools_grass_side_8.png new file mode 100755 index 00000000..6db2502d Binary files /dev/null and b/mods/maptools/textures/maptools_grass_side_8.png differ diff --git a/mods/maptools/textures/maptools_infinitefuel.png b/mods/maptools/textures/maptools_infinitefuel.png new file mode 100755 index 00000000..163f1715 Binary files /dev/null and b/mods/maptools/textures/maptools_infinitefuel.png differ diff --git a/mods/maptools/textures/maptools_silver_coin.png b/mods/maptools/textures/maptools_silver_coin.png new file mode 100755 index 00000000..284c6711 Binary files /dev/null and b/mods/maptools/textures/maptools_silver_coin.png differ diff --git a/mods/maptools/textures/maptools_smoke.png b/mods/maptools/textures/maptools_smoke.png new file mode 100755 index 00000000..c50b7e34 Binary files /dev/null and b/mods/maptools/textures/maptools_smoke.png differ diff --git a/mods/maptools/textures/maptools_superapple.png b/mods/maptools/textures/maptools_superapple.png new file mode 100755 index 00000000..68338270 Binary files /dev/null and b/mods/maptools/textures/maptools_superapple.png differ diff --git a/mods/maptools/textures/white.png b/mods/maptools/textures/white.png new file mode 100755 index 00000000..2d8d70f2 Binary files /dev/null and b/mods/maptools/textures/white.png differ diff --git a/mods/markers/README.md b/mods/markers/README.md new file mode 100755 index 00000000..ffa3179d --- /dev/null +++ b/mods/markers/README.md @@ -0,0 +1,3 @@ + +This is work in progress. + diff --git a/mods/markers/areas.lua b/mods/markers/areas.lua new file mode 100755 index 00000000..5a7feb75 --- /dev/null +++ b/mods/markers/areas.lua @@ -0,0 +1,833 @@ + +-- TODO: offer teleport button? + +-- taken from mobf +local COLOR_RED = "#FF0000"; +local COLOR_GREEN = "#00FF00"; +local COLOR_WHITE = "#FFFFFF"; + + +-- we need to store which list we present to which player +markers.menu_data_by_player = {} + + +markers.get_area_by_pos = function(pos) + + local found_areas = {}; + for id, area in pairs(areas.areas) do + if( pos.x >= area.pos1.x and pos.x <= area.pos2.x and + pos.y >= area.pos1.y and pos.y <= area.pos2.y and + pos.z >= area.pos1.z and pos.z <= area.pos2.z )then + + area[ 'id' ] = id; + table.insert(found_areas, area ); + end + end + return found_areas; +end + + + +-- mode: can be pos, player, all, subarea, main_areas +-- mode_data: content depends on mode +-- selected: display information about the area the player single-clicked on +markers.get_area_list_formspec = function( player, mode, pos, mode_data, selected ) + + + local id_list = {}; + local title = '???'; + local tlabel = ''; + + -- expects a position in mode_data + if( mode=='pos' ) then + -- title would be too long for a label + title = 'All areas which contain position..'; + tlabel = '<'..minetest.pos_to_string( mode_data )..'>:'; + + for id, area in pairs(areas.areas) do + + if( mode_data.x >= area.pos1.x and mode_data.x <= area.pos2.x and + mode_data.y >= area.pos1.y and mode_data.y <= area.pos2.y and + mode_data.z >= area.pos1.z and mode_data.z <= area.pos2.z )then + + table.insert( id_list, id ); + end + end + + -- expects a playername in mode_data + elseif( mode=='player' ) then + + title = 'All areas owned by player..'; + tlabel = '<'..tostring( mode_data )..'>:'; + + for id, area in pairs(areas.areas) do + + if( area.owner == mode_data ) then + table.insert( id_list, id ); + end + end + + -- expects an area_id in mode_data + elseif( mode=='subareas' ) then + + title = 'All subareas of area..'; + tlabel = '<'..tostring( areas.areas[ mode_data ].name )..'> ['..tostring( mode_data )..']:'; + + for id, area in pairs(areas.areas) do + + if( area.parent and area.parent == mode_data ) then + table.insert( id_list, id ); + end + end + + -- show only areas that do not have parents + elseif( mode=='main_areas' ) then + title = 'All main areas:'; + tlabel = '*all main areas*'; + for id, area in pairs(areas.areas) do + + if( not( area.parent )) then + table.insert( id_list, id ); + end + end + + + elseif( mode=='all' ) then + title = 'All areas:'; + tlabel = '*all areas*'; + + for id, area in pairs(areas.areas) do + table.insert( id_list, id ); + end + end + + + local formspec = 'size[10,9]'; + + title = minetest.formspec_escape( title ); + tlabel = minetest.formspec_escape( tlabel ); + + formspec = formspec.. + "label[0.5,0;"..title.."]".. + "label[4.7,0;"..tlabel.."]".. + "label[0.5,8.5;Doubleclick to select area.]".. + "label[4.7,8.5;Areas found: "..tostring( #id_list )..".]".. + "textlist[0.5,0.5;7,8;markers_area_list_selection;"; + + local liste = ''; + for i,v in ipairs( id_list ) do + if( liste ~= '' ) then + liste = liste..','; + end + liste = liste..minetest.formspec_escape( areas:toString( v ) ); + + end + + -- highlight selected entry + if( selected ) then + formspec = formspec..liste..';'..selected..';false]'; + else + formspec = formspec..liste..';]'; + end + + local pname = player:get_player_name(); + if( not( markers.menu_data_by_player[ pname ] )) then + markers.menu_data_by_player[ pname ] = {}; + end + + -- display information about the location of the area the player clicked on + if( selected + and id_list[ selected ] + and areas.areas[ id_list[ selected ]] ) then + + local this_area = areas.areas[ id_list[ selected ]]; + + local subareas = {}; + for i,v in pairs( areas.areas ) do + if( v.parent and v.parent == id_list[ selected ]) then + table.insert( subareas, i ); + end + end + + formspec = formspec.. + markers.show_compass_marker( 8.5, 3.0, false, pos, this_area.pos1, this_area.pos2 ); + + + if( this_area.parent) then + formspec = formspec.. + 'button[8.0,0.5;2,0.5;show_parent;'.. + minetest.formspec_escape( areas.areas[ this_area.parent ].name )..']'; + end + + if( #subareas > 0 ) then + formspec = formspec.. + 'button[8.0,1.0;2,0.5;list_subareas;'.. + minetest.formspec_escape( 'List subareas ('..tostring( #subareas )..')')..']'; + end + + + if( mode=='player' ) then + formspec = formspec.. + 'label[8.0,1.5;'.. + minetest.formspec_escape( this_area.owner..'\'s areas')..']'; + else + formspec = formspec.. + 'button[8.0,1.5;2,0.5;list_player_areas;'.. + minetest.formspec_escape( this_area.owner..'\'s areas')..']'; + end + + end + + formspec = formspec.. + 'button[8.0,8.5;2,0.5;list_main_areas;List all main areas]'; + + -- we need to remember especially the id_list - else it would be impossible to know what the + -- player selected + markers.menu_data_by_player[ pname ] = { + typ = 'area_list', + mode = mode, + pos = pos, + mode_data = mode_data, + list = id_list, + + selected = id_list[ selected ], + }; + + + return formspec; +end + + + + +-- shows a formspec with information about a particular area +-- pos is the position of the marker stone or place where the player clicked +-- with the land title register; it is used for relative display of coordinates +markers.get_area_desc_formspec = function( id, player, pos ) + + if( not( areas.areas ) or not( id ) or not( areas.areas[ id ] )) then + return 'field[info;Error:;Area not found.]'; + end + local this_area = areas.areas[ id ]; + + local pname = player:get_player_name(); + + -- show some buttons only if area is owned by the player + local is_owner = false; + + if( this_area.owner == pname ) then + is_owner = true; + end + + local formspec = 'size[10,9]'.. + 'label[2.5,0.0;Area information and management]'.. + 'button_exit[4.7,7.0;1,0.5;abort;OK]'; + + -- general information about the area + formspec = formspec.. + 'label[0.5,1.0;This is area number ]'.. + 'label[4.7,1.0;'..tostring( id )..']'.. + + 'label[0.5,1.5;The area is called ]'.. + 'label[4.7,1.5;'..minetest.formspec_escape( this_area.name or '-not set-')..']'.. + + 'label[0.5,2.0;It is owned by ]'.. + 'label[4.7,2.0;'..minetest.formspec_escape( this_area.owner)..']'; + + + -- these functions are only available to the owner of the area + if( is_owner ) then + formspec = formspec.. + 'button_exit[8.0,0.0;2,0.5;change_owner;Change owner]'.. + 'button_exit[8.0,1.0;2,0.5;delete;Delete]'.. + 'button_exit[8.0,1.5;2,0.5;rename;Rename]'.. + 'button_exit[8.0,2.0;2,0.5;list_player_areas;My areas]'; + + -- subareas of own areas can be deleted (but not renamed) + elseif( not( is_owner ) + and this_area.parent + and areas.areas[ this_area.parent ] + and areas.areas[ this_area.parent ].owner == pname ) then + + formspec = formspec.. + 'button_exit[8.0,1.0;2,0.5;delete;Delete subarea]'.. + 'button_exit[8.0,2.0;2,0.5;list_player_areas;Player\'s areas]'; + + else + formspec = formspec.. + 'button_exit[8.0,2.0;2,0.5;list_player_areas;Player\'s areas]'; + end + + + -- players with the areas priv get an extra menu + if( minetest.check_player_privs(pname, {areas=true})) then + formspec = formspec.. + 'label[8.0,6.0;Admin commands:]'.. + 'button_exit[8.0,6.5;2,0.5;change_owner;Change owner]'.. + 'button_exit[8.0,7.0;2,0.5;delete;Delete]'.. + 'button_exit[8.0,7.5;2,0.5;rename;Rename]'; + end + + + -- show subowners and areas with the same coordinates + formspec = formspec.. + 'label[0.5,2.5;Further owners of the entire area:]'; + local further_owners = {}; + for i, area in pairs(areas.areas) do + if( i ~= id and + this_area.pos1.x == area.pos1.x and this_area.pos2.x == area.pos2.x and + this_area.pos1.y == area.pos1.y and this_area.pos2.y == area.pos2.y and + this_area.pos1.z == area.pos1.z and this_area.pos2.z == area.pos2.z )then + + table.insert( further_owners, area.owner ); + end + end + if( #further_owners > 0 ) then + + formspec = formspec.. + 'label[4.7,2.5;'..minetest.formspec_escape( table.concat( further_owners, ', '))..'.]'; + + -- deleting subowners is done by deleting their areas + if( is_owner ) then + formspec = formspec.. + 'button_exit[8.0,2.5;2,0.5;add_owner;Add]'; + end + else + formspec = formspec.. + 'label[4.7,2.5;-none-]'; + + if( is_owner ) then + formspec = formspec.. + 'button_exit[8.0,2.5;2,0.5;add_owner;Add]'; + end + end + + + -- is the area a subarea? + if( this_area.parent ) then + formspec = formspec.. + 'label[0.5,3.0;This area is a sub-area of area]'.. + 'label[4.7,3.0;'..minetest.formspec_escape( areas.areas[ this_area.parent ].name..' ['..this_area.parent..']' )..']'.. + 'button_exit[8.0,3.0;2,0.5;show_parent;Show main area]'; + end + + + -- does the area have subareas, i.e. is it a parent area for others? + local sub_areas = {}; + for i, area in pairs(areas.areas) do + if( i ~= id and + area.parent == id ) then + + table.insert( sub_areas, i ); + end + end + if( #sub_areas > 0 ) then + + formspec = formspec.. + 'label[0.5,4.0;Number of defined subareas:]'.. + 'label[4.7,4.0;'..tostring( #sub_areas )..']'.. + 'button_exit[8.0,4.0;2,0.5;list_subareas;List subareas]'; + else + formspec = formspec.. + 'label[0.5,4.0;There are no subareas defined.]'; + end + + + -- give information about the size of the area + local length_x = (math.abs( this_area.pos2.x - this_area.pos1.x )+1); + local length_y = (math.abs( this_area.pos2.y - this_area.pos1.y )+1); + local length_z = (math.abs( this_area.pos2.z - this_area.pos1.z )+1); + + formspec = formspec.. + 'label[0.5,4.5;The area extends from]'.. + 'label[4.7,4.5;'..minetest.pos_to_string( this_area.pos1 )..' to '..minetest.pos_to_string( this_area.pos2 )..'.]'.. + 'label[4.7,4.75;It spans '..tostring( length_x ).. + ' x '..tostring( length_z ).. + ' = '..tostring( length_x * length_z ).. + ' m^2. Height: '..tostring( length_y )..' m.]'; + + + formspec = formspec.. + markers.show_compass_marker( 2.0, 7.0, true, pos, this_area.pos1, this_area.pos2 ); + +-- TODO: buy / sell button + + local pname = player:get_player_name(); + if( not( markers.menu_data_by_player[ pname ] )) then + markers.menu_data_by_player[ pname ] = {}; + end + + -- we need to remember especially the id_list - else it would be impossible to know what the + -- player selected + markers.menu_data_by_player[ pname ] = + { typ = 'show_area', + mode = nil, + pos = pos, + mode_data = nil, + list = nil, + + selected = id, + }; + + return formspec; +end + + + +-- shows where the area (defined by pos1/pos2) is located relative to the given position pos +-- row_offset/col_offset are offsets for the formspec +markers.show_compass_marker = function( col_offset, row_offset, with_text, pos, pos1, pos2 ) + + local formspec = ''; +-- TODO: show up/down information somehow +-- TODO: what if checked with a land claim register? + + -- if possible, show how far the area streches into each direction relative to pos + if( pos.x >= pos1.x and pos.x <= pos2.x + and pos.y >= pos1.y and pos.y <= pos2.y + and pos.z >= pos1.z and pos.z <= pos2.z ) then + + if( with_text ) then + formspec = formspec.. + 'label[0.5,5.5;Dimensions of the area in relation to..]'.. +-- TODO: check if there is a marker; else write 'position you clicked on' + 'label[4.7,5.5;the marker at '..minetest.pos_to_string( pos )..':]'.. + 'button_exit[8.0,5.5;2,0.5;list_areas_at;Local areas]'; + end + formspec = formspec.. + 'image['..col_offset..','..row_offset..';1,1;markers_stone.png]'.. + 'label['..(col_offset-0.8)..','..(row_offset+0.05)..';'..tostring( pos.x - pos1.x )..' m W]'.. + 'label['..(col_offset+1.0)..','..(row_offset+0.05)..';'..tostring( pos2.x - pos.x )..' m E]'.. + 'label['..(col_offset+0.1)..','..(row_offset+0.80)..';'..tostring( pos.z - pos1.z )..' m S]'.. + 'label['..(col_offset+0.1)..','..(row_offset-0.80)..';'..tostring( pos2.z - pos.z )..' m N]'; + + -- else show how far the area is away + else + + local starts_north = ''; + local starts_south = ''; + local starts_east = ''; + local starts_west = ''; + if( pos.z > pos2.z ) then + starts_north = ''; + starts_south = tostring( pos.z - pos2.z )..' m S'; + else + starts_north = tostring( pos1.z - pos.z )..' m N'; + starts_south = ''; + end + if( pos.x > pos2.x ) then + starts_east = ''; + starts_west = tostring( pos.x - pos2.x )..' m W'; + else + starts_east = tostring( pos1.x - pos.x )..' m E'; + starts_west = ''; + end + + + if( with_text ) then + formspec = formspec.. + 'label[0.5,5.5;Position of the area in relation to..]'.. +-- TODO: check if there is a marker; else write 'position you clicked on' + 'label[4.7,5.5;the marker at '..minetest.pos_to_string( pos )..':]'.. + 'button_exit[8.0,5.5;2,0.5;list_areas_at;Local areas]'; + end + formspec = formspec.. + 'image['..col_offset..','..row_offset..';1,1;compass_side_top.png]'.. + 'label['..(col_offset-0.8)..','..(row_offset+0.05)..';'..starts_west..']'.. + 'label['..(col_offset+1.0)..','..(row_offset+0.05)..';'..starts_east..']'.. + 'label['..(col_offset+0.1)..','..(row_offset-0.80)..';'..starts_north..']'.. + 'label['..(col_offset+0.1)..','..(row_offset+0.80)..';'..starts_south..']'; + end + + return formspec; +end + + + +-- formspec input needs to be handled diffrently +markers.form_input_handler_areas = function( player, formname, fields) + + local pname = player:get_player_name(); + + if( formname ~= "markers:info" + or not( player ) + or not( markers.menu_data_by_player[ pname ] )) then + + return false; + end + + local menu_data = markers.menu_data_by_player[ pname ]; + local formspec = ''; + + + -- rename an area + if( fields.rename + and menu_data.selected + and areas.areas[ menu_data.selected ] + and areas.areas[ menu_data.selected ].owner == pname ) then + + local area = areas.areas[ menu_data.selected ]; + if( not( area.name )) then + area.name = '-enter area name-'; + end + formspec = 'field[rename_new_name;Enter new name for area:;'..minetest.formspec_escape( area.name )..']'; + + elseif( fields.rename_new_name + and menu_data.selected + and areas.areas[ menu_data.selected ] + and ((areas.areas[ menu_data.selected ].owner == pname ) + or minetest.check_player_privs(pname, {areas=true}))) then + + local area = areas.areas[ menu_data.selected ]; + + -- actually rename the area + areas.areas[ menu_data.selected ].name = fields.rename_new_name; + areas:save(); + + minetest.chat_send_player( pname, 'Area successfully renamed.'); + -- shwo the renamed area + formspec = markers.get_area_desc_formspec( menu_data.selected, player, menu_data.pos ); + + + + -- change owner the area + elseif( fields.change_owner + and menu_data.selected + and areas.areas[ menu_data.selected ] ) then + + -- there are no checks here - those happen when the area is transferred + local area = areas.areas[ menu_data.selected ]; + formspec = 'field[change_owner_name;Give area \"'..minetest.formspec_escape( area.name )..'\" to player:;-enter name of NEW OWNER-]'; + + elseif( fields.change_owner_name + and menu_data.selected + and areas.areas[ menu_data.selected ] ) then + + local area = areas.areas[ menu_data.selected ]; + + -- only own areas can be transfered to another player (or if the areas priv is there) + if( area.owner ~= pname + and not( minetest.check_player_privs(pname, {areas=true}))) then + + minetest.chat_send_player( pname, 'Permission denied. You do not own the area.'); + + elseif( not( areas:player_exists( fields.change_owner_name ))) then + + minetest.chat_send_player( pname, 'That player does not exist.'); + + else + -- actually change the owner + areas.areas[ menu_data.selected ].owner = fields.change_owner_name; + areas:save() + + minetest.chat_send_player( pname, 'Your area '..tostring( area.name )..' has been transfered to '..tostring( fields.change_owner_name )..'.'); + + minetest.chat_send_player( fields.change_owner_name, pname..'" has given you control over an area.') + end + + formspec = markers.get_area_desc_formspec( menu_data.selected, player, menu_data.pos ); + + + -- add an owner to the entire area + elseif( fields.add_owner + and menu_data.selected + and areas.areas[ menu_data.selected ] + and areas.areas[ menu_data.selected ].owner == pname ) then + + local area = areas.areas[ menu_data.selected ]; + formspec = 'field[add_owner_name;Grant access to area \"'..minetest.formspec_escape( area.name )..'\" to player:;-enter player name-]'; + + elseif( fields.add_owner_name + -- the player has to own the area already; we need a diffrent name here + and fields.add_owner_name ~= pname + and menu_data.selected + and areas.areas[ menu_data.selected ] + and areas.areas[ menu_data.selected ].owner == pname ) then + + local area = areas.areas[ menu_data.selected ]; + + -- does the player exist? + if( not( areas:player_exists( fields.add_owner_name ))) then + minetest.chat_send_player( pname, 'That player does not exist.'); + -- show the formspec + formspec = markers.get_area_desc_formspec( menu_data.selected, player, menu_data.pos ); + + else + -- log the creation of the new area + minetest.log("action", pname.." runs /add_owner through the markers-mod. Owner = "..fields.add_owner_name.. + " AreaName = "..area.name.." ParentID = "..menu_data.selected.. + " StartPos = "..area.pos1.x..","..area.pos1.y..","..area.pos1.z.. + " EndPos = " ..area.pos2.x..","..area.pos2.y..","..area.pos2.z) + + -- take the name from the old/parent area + local new_id = areas:add( fields.add_owner_name, area.name, area.pos1, area.pos2, menu_data.selected ); + areas:save() + + + minetest.chat_send_player( fields.add_owner_name, + "You have been granted control over area #".. + new_id..". Type /list_areas to show your areas.") + + minetest.chat_send_player( pname, 'The player may now build and dig in your area.'); + -- shwo the new area + markers.menu_data_by_player[ pname ].selected = new_id; + formspec = markers.get_area_desc_formspec( new_id, player, menu_data.pos ); + end + + + + -- delete area + elseif( fields.delete + and menu_data.selected + and areas.areas[ menu_data.selected ] ) then + + local area = areas.areas[ menu_data.selected ]; + + -- a player can only delete own areas or subareas of own areas + if( area.owner ~= pname + and not( area.parent + and areas.areas[ area.parent ] + and areas.areas[ area.parent ].owner + and areas.areas[ area.parent ].owner == pname ) + and not( minetest.check_player_privs(pname, {areas=true}))) then + + minetest.chat_send_player( pname, 'Permission denied. You own neither the area itshelf nor its parent area.'); + -- shwo the area where the renaming failed + formspec = markers.get_area_desc_formspec( menu_data.selected, player, menu_data.pos ); + + else + + formspec = 'field[rename_new_name;Enter new name for area:;'..minetest.formspec_escape( area.name )..']'; + formspec = 'field[delete_confirm;'..minetest.formspec_escape( 'Really delete area \"'..area.name.. + '\" (owned by '..area.owner..')? Confirm with YES:')..';-type yes in capitals to confirm-]'; + + end + + elseif( fields.delete_confirm + and menu_data.selected + and areas.areas[ menu_data.selected ] ) then + + local area = areas.areas[ menu_data.selected ]; + local old_owner = area.owner; + + local subareas = {}; + for i,v in pairs( areas.areas ) do + if( v.parent and v.parent == menu_data.selected ) then + table.insert( subareas, i ); + end + end + + -- a player can only delete own areas or subareas of own areas + if( area.owner ~= pname + and not( area.parent + and areas.areas[ area.parent ] + and areas.areas[ area.parent ].owner + and areas.areas[ area.parent ].owner == pname ) + and not( minetest.check_player_privs(pname, {areas=true}))) then + + minetest.chat_send_player( pname, 'Permission denied. You own neither the area itshelf nor its parent area.'); + -- shwo the renamed area + formspec = markers.get_area_desc_formspec( menu_data.selected, player, menu_data.pos ); + + -- avoid accidents + elseif( fields.delete_confirm ~= 'YES' ) then + minetest.chat_send_player( pname, 'Delition of area \"'..tostring( area.name )..'\" (owned by '..old_owner..') aborted.'); + formspec = markers.get_area_desc_formspec( menu_data.selected, player, menu_data.pos ); + + -- only areas without subareas can be deleted + elseif( #subareas > 0 ) then + minetest.chat_send_player( pname, 'The area has '..tostring( #subareas )..' subarea(s). Please delete those first!'); + formspec = markers.get_area_desc_formspec( menu_data.selected, player, menu_data.pos ); + + else + + minetest.chat_send_player( pname, 'Area \"'..tostring( area.name )..'\" (owned by '..old_owner..') deleted.'); + -- really delete + areas:remove( menu_data.selected, false ); -- no recursive delete + areas:save(); + -- show the list of areas owned by the previous owner + formspec = markers.get_area_list_formspec( player, 'player', menu_data.pos, old_owner, nil ); + end + + + + elseif( fields.show_parent + and menu_data.selected + and areas.areas[ menu_data.selected ] + and areas.areas[ menu_data.selected ].parent ) then + + formspec = markers.get_area_desc_formspec( areas.areas[ menu_data.selected ].parent, player, menu_data.pos ); + + + elseif( fields.list_player_areas + and menu_data.selected + and areas.areas[ menu_data.selected ] ) then + + formspec = markers.get_area_list_formspec( player, 'player', menu_data.pos, areas.areas[ menu_data.selected ].owner, nil ); + + + elseif( fields.list_subareas + and menu_data.selected + and areas.areas[ menu_data.selected ] ) then + + formspec = markers.get_area_list_formspec( player, 'subareas', menu_data.pos, menu_data.selected, nil ); + + + elseif( fields.list_main_areas ) then + + formspec = markers.get_area_list_formspec( player, 'main_areas', menu_data.pos, nil, nil ); + + elseif( fields.list_areas_at + and menu_data.pos ) then + + formspec = markers.get_area_list_formspec( player, 'pos', menu_data.pos, menu_data.pos, nil ); + + + elseif( fields.markers_area_list_selection + and menu_data.typ + and menu_data.typ == 'area_list' + and menu_data.list + and #menu_data.list > 0 ) then + + + local field_data = fields.markers_area_list_selection:split( ':' ); + if( not( field_data ) or #field_data < 2 ) then + field_data = { '', '' }; + end + + local selected = tonumber( field_data[ 2 ] ); + if( field_data[1]=='DCL' ) then + + -- on doubleclick, show detailed area information + formspec = markers.get_area_desc_formspec( tonumber( menu_data.list[ selected ] ), player, menu_data.pos ); + else + + -- on single click, just show the position of that particular area + formspec = markers.get_area_list_formspec( player, menu_data.mode, menu_data.pos, menu_data.mode_data, selected ); + end + + else + return false; + end + + + minetest.show_formspec( pname, "markers:info", formspec ) + return true; +end + + + +-- search the area at the given position pos that might be of most intrest to the player +markers.show_marker_stone_formspec = function( player, pos ) + + local pname = player:get_player_name(); + + -- this table stores the list the player may have selected from; at the beginning, there is no list + if( not( markers.menu_data_by_player[ pname ] )) then + markers.menu_data_by_player[ pname ] = { + typ = 'area_list', + mode = 'main_areas', + pos = pos, + mode_data = pos, + list = {}, + + selected = nil, + }; + end + + + local formspec = ''; + + local found_areas = {}; + local min_area_size = 100000000000; + + for id, area in pairs(areas.areas) do + if( pos.x >= area.pos1.x and pos.x <= area.pos2.x and + pos.y >= area.pos1.y and pos.y <= area.pos2.y and + pos.z >= area.pos1.z and pos.z <= area.pos2.z )then + + -- ignore y (height) value because some areas may go from bottom to top + local area_size = math.abs( area.pos2.x - area.pos1.x ) + * math.abs( area.pos2.z - area.pos1.z ); + + -- collect subareas that have the same size + if( area_size == min_area_size ) then + table.insert(found_areas, id ); + -- we have found a smaller area - that is more intresting here + elseif( area_size <= min_area_size ) then + found_areas = {}; + min_area_size = area_size; + table.insert(found_areas, id ); + end + end + end + + -- no areas found; display error message and selection menu + if( #found_areas < 1 ) then + + formspec = 'size[4,3]'.. + 'label[0.5,0.5;This position is not protected.]'.. + 'button[1.0,1.5;2,0.5;list_main_areas;List all main areas]'.. + 'button_exit[3.0,1.5;1,0.5;abort;OK]'; + + -- found exactly one areaa - display it + elseif( #found_areas == 1 ) then + + formspec = markers.get_area_desc_formspec( found_areas[ 1 ], player, pos ); + + -- found more than one area; we have saved only those with the smallest size + else + + local own_area = 0; + local parent_area = 0; + local upper_area = 0; + for i,v in ipairs( found_areas ) do + + local area = areas.areas[ v ]; + + -- owned by player? + if( area.owner == pname ) then + own_area = v; + + -- parentless area? + elseif( not( area.parent )) then + parent_area = v; + + -- the parent has diffrent coordinates? + elseif( areas.areas[ area.parent ].pos1.x ~= area.pos1.x + or areas.areas[ area.parent ].pos1.y ~= area.pos1.y + or areas.areas[ area.parent ].pos1.z ~= area.pos1.z + or areas.areas[ area.parent ].pos2.x ~= area.pos2.x + or areas.areas[ area.parent ].pos2.y ~= area.pos2.y + or areas.areas[ area.parent ].pos2.z ~= area.pos2.z ) then + upper_area = v; + end + end + + -- the area owned by the player is most intresting + if( own_area > 0 ) then + + formspec = markers.get_area_desc_formspec( own_area, player, pos ); + + -- if the player owns none of these areas, show the topmost (parentless) area + elseif( parent_area > 0 ) then + + formspec = markers.get_area_desc_formspec( parent_area, player, pos ); + + -- an area which has a parent with diffrent coordinates from its child may (or may not) be the + -- parent of all these subareas we've found here; there is no guarantee, but it's a best guess. + -- If it is not good enough, then the player can still search for himshelf. + elseif( upper_area > 0 ) then + + formspec = markers.get_area_desc_formspec( upper_area, player, pos ); + + -- our superficial analysis of the structure of the areas failed; it is up to the player to + -- find out which of the candidates he is intrested in; we list them all + else + + formspec = markers.get_area_list_formspec( player, 'pos', pos, pos, nil ); + end + end + + minetest.show_formspec( player:get_player_name(), "markers:info", formspec ); +end diff --git a/mods/markers/depends.txt b/mods/markers/depends.txt new file mode 100755 index 00000000..a18cd910 --- /dev/null +++ b/mods/markers/depends.txt @@ -0,0 +1 @@ +areas diff --git a/mods/markers/init.lua b/mods/markers/init.lua new file mode 100755 index 00000000..a21c9136 --- /dev/null +++ b/mods/markers/init.lua @@ -0,0 +1,612 @@ + +-- markers are useful for measuring distances and for marking areas +-- markers are protected from digging by other players for one day +-- (the protection for the *marker* auto-expires then, and it can be digged) + +markers = {} + +-- stores up to 4 marker positions for each player +markers.positions = {} + +-- store the positions of that many markers for each player (until server restart) +markers.MAX_MARKERS = 10; + +-- the protection against digging of the marker by other players expires after this time +markers.EXPIRE_AFTER = 60*60*24; + +-- self-protected areas can not get higher than 100 blocks +markers.MAX_HEIGHT = 100; + +-- only areas up to this size (in square meters) can be protected +markers.MAX_SIZE = 1024; -- 32m * 32m = 1024 m^2 + + +dofile(minetest.get_modpath("markers").."/areas.lua"); + +dofile(minetest.get_modpath("markers").."/marker_stone.lua"); + +dofile(minetest.get_modpath("markers").."/land_title_register.lua"); + + +-- returns the first area found +markers.get_area_by_pos1_pos2 = function(pos1, pos2) + for id, area in pairs(areas.areas) do + + if( ((area.pos1.x == pos1.x and area.pos1.z == pos1.z ) + or (area.pos1.x == pos1.x and area.pos1.z == pos2.z ) + or (area.pos1.x == pos2.x and area.pos1.z == pos1.z ) + or (area.pos1.x == pos2.x and area.pos1.z == pos2.z )) + + and((area.pos2.x == pos1.x and area.pos2.z == pos1.z ) + or (area.pos2.x == pos1.x and area.pos2.z == pos2.z ) + or (area.pos2.x == pos2.x and area.pos2.z == pos1.z ) + or (area.pos2.x == pos2.x and area.pos2.z == pos2.z ))) then + + -- at least pos1 needs to have a hight value that fits in + if( (area.pos1.y <= pos1.y and area.pos2.y >= pos1.y) + or (area.pos1.y >= pos1.y and area.pos2.y <= pos1.y)) then + + local found = area; + found[ 'id' ] = id; + return found; + + end + end + end + return nil; +end + + + + + + +-- this function is supposed to return a text string describing the price of the land between po1 and pos2 +-- You can return somethiing like "for free" or "the promise to build anything good" as well as any +-- real prices in credits or materials - it's really just a text here. +-- Make sure you do not charge the player more than what you ask here. +markers.calculate_area_price_text = function( pos1, pos2, playername ) + + local price = ( math.abs( pos1.x - pos2.x )+1 ) + * ( math.abs( pos1.z - pos2.z )+1 ); + +-- * math.ceil( ( math.abs( pos1.y - pos2.y )+1 )/10); + + return tostring( price )..' credits'; +end + + + + +markers.marker_placed = function( pos, placer, itemstack ) + + if( not( pos ) or not( placer )) then + return; + end + + local meta = minetest.env:get_meta( pos ); + local name = placer:get_player_name(); + + meta:set_string( 'infotext', 'Marker at '..minetest.pos_to_string( pos ).. + ' (placed by '..tostring( name )..'). '.. + 'Right-click to update.'); + meta:set_string( 'owner', name ); + -- this allows protection of this particular marker to expire + meta:set_string( 'time', tostring( os.time()) ); + + local txt = ''; + + if( not( markers.positions[ name ] ) or #markers.positions[name]<1) then + markers.positions[ name ] = {}; + markers.positions[ name ][ 1 ] = pos; + + minetest.chat_send_player( name, + 'First marker set to position '.. + minetest.pos_to_string( markers.positions[ name ][ 1 ] ).. + '. Please place a second marker to measure distance. '.. + 'Place four markers in a square to define an area.'); + else + table.insert( markers.positions[ name ], pos ); + + local n = #markers.positions[ name ]; + + local dx = markers.positions[ name ][ n ].x - markers.positions[ name ][ n-1 ].x; + local dy = markers.positions[ name ][ n ].y - markers.positions[ name ][ n-1 ].y; + local dz = markers.positions[ name ][ n ].z - markers.positions[ name ][ n-1 ].z; + + local dir_name = "unknown"; + local d = 0; + if( dx == 0 and dz > 0 ) then dir_name = "north"; d = math.abs(dz); + elseif( dx == 0 and dz < 0 ) then dir_name = "south"; d = math.abs(dz); + elseif( dz == 0 and dx > 0 ) then dir_name = "east"; d = math.abs(dx); + elseif( dz == 0 and dx < 0 ) then dir_name = "west"; d = math.abs(dx); + elseif( dx == 0 and dz == 0 and dy > 0 ) then dir_name = "above"; d = math.abs(dy); + elseif( dx == 0 and dz == 0 and dy < 0 ) then dir_name = "below"; d = math.abs(dy); + else + + local area = (math.abs( dx )+1) + * (math.abs( dz )+1); + local volume = area * (math.abs( dy )+1); + + minetest.chat_send_player( name, 'This marker is at '.. + minetest.pos_to_string( markers.positions[ name ][ n ] )..', while the last one is at '.. + minetest.pos_to_string( markers.positions[ name ][ n-1 ] )..'. Distance (x/y/z): '.. + tostring(math.abs(dx))..'/'.. + tostring(math.abs(dy))..'/'.. + tostring(math.abs(dz)).. + '. Area: '..tostring( area )..' m^2. Volume: '..tostring( volume )..' m^3.'); + end + + -- this marker is aligned to the last one + if( d > 0 ) then + minetest.chat_send_player( name, 'Marker placed at '..minetest.pos_to_string( pos ).. + '. Relative to the marker you placed before, this one is '.. + tostring( d )..' m '..dir_name..'.'); + end + + -- do the last 4 markers placed form an area? + if( #markers.positions[ name ] > 3 ) then + local count_x_coord = {}; + local count_z_coord = {}; + local anz_x_coord = 0; + local anz_z_coord = 0; + local check_failed = 0; + for i=0,3 do + + local v = markers.positions[ name ][ n-i ].x; + + if( not( count_x_coord[ v ] )) then + count_x_coord[ v ] = 1; + anz_x_coord = anz_x_coord + 1; + elseif( count_x_coord[ v ] == 2 ) then + check_failed = 1; + else + count_x_coord[ v ] = count_x_coord[ v ] + 1; + end + + v = markers.positions[ name ][ n-i ].z; + if( not( count_z_coord[ v ] )) then + count_z_coord[ v ] = 1; + anz_z_coord = anz_z_coord + 1; + elseif( count_z_coord[ v ] == 2 ) then + check_failed = 1; + else + count_z_coord[ v ] = count_z_coord[ v ] + 1; + end + end + + if( anz_x_coord == 2 + and anz_z_coord == 2 + and check_failed == 0 ) then + + minetest.chat_send_player( name, 'The last four markers you placed form a rectangle. '.. + 'Right-click on this marker here in order to protect the area.'); + end + end + + -- make sure the list does not grow too large + if( n > markers.MAX_MARKERS ) then + table.remove( markers.positions[ name ], 1 ); + end + end +end + + + +markers.marker_can_dig = function(pos,player) + + if( not( pos ) or not( player )) then + return true; + end + + local meta = minetest.env:get_meta( pos ); + local owner = meta:get_string( 'owner' ); + local time = meta:get_string( 'time' ); + + -- can the marker be removed? + if( not( owner ) + or owner=='' + or not( time ) + or time=='' + or (os.time() - tonumber( time )) > markers.EXPIRE_AFTER ) then + + return true; + + -- marker whose data got lost anyway + elseif( not( markers.positions[ owner ] ) + or #markers.positions[ owner ] < 1 ) then + + return true; + + -- marker owned by someone else and still in use + elseif( owner ~= player:get_player_name()) then + + minetest.chat_send_player( player:get_player_name(), + 'Sorry, this marker belongs to '..tostring( owner ).. + '. If you still want to remove it, try again in '.. + ( tostring( markers.EXPIRE_AFTER + tonumber( time ) - os.time()))..' seconds.'); + return false; + + end + + return true; +end + + + + +markers.marker_after_dig_node = function(pos, oldnode, oldmetadata, digger) + + if( not(oldmetadata ) or not(oldmetadata['fields'])) then + return; + end + + local owner = oldmetadata['fields']['owner']; + if( not( owner ) + or owner=='' + or not( markers.positions[ owner ] ) + or #markers.positions[ owner ] < 1 ) then + + return; + end + + -- remove the markers position from our table of stored positions + local found = 0; + for i,v in ipairs( markers.positions[ owner ] ) do + if( v.x == pos.x + and v.y == pos.y + and v.z == pos.z ) then + found = i; + end + end + if( found ~= 0 ) then + table.remove( markers.positions[ owner ], found ); + end + return true; +end + + + + + + +markers.get_marker_formspec = function(player, pos, error_msg) + local formspec = ""; + + local meta = minetest.env:get_meta( pos ); + local owner = meta:get_string( 'owner' ); + + local name = player:get_player_name(); + + local formspec_info = "size[6,4]".. + "button_exit[2,2.5;1,0.5;abort;OK]".. + "textarea[1,1;4,2;info;Information;"; + if( owner ~= nil and owner ~= '' and owner ~= name ) then + return formspec_info.."This marker\ncan only be used by\n"..tostring( owner )..", who\nplaced the markers.]"; + end + + if( not( markers.positions[ name ]) or #markers.positions[name]<1) then + return formspec_info.."Information about the positions\nof your other markers\ngot lost.\nPlease dig and place\nyour markers again!]"; + end + + local n = #markers.positions[ name ]; + + if( markers.positions[ name ][ n ].x ~= pos.x + or markers.positions[ name ][ n ].y ~= pos.y + or markers.positions[ name ][ n ].z ~= pos.z ) then + + return formspec_info.."Please use the marker\nyou placed last\n".. + "for accessing this menu.\nYou can find said marker at\n".. + minetest.pos_to_string( markers.positions[ name ][ n ] )..'.]'; + end + + if( n < 4 ) then + return formspec_info.."Please place 4 markers\n - one in each corner\n of your area - first.]"; + end + + + local coords_raw = meta:get_string( 'coords' ); + local coords = {}; + if( coords_raw ~= nil and coords_raw ~= '' ) then + coords = minetest.deserialize( coords_raw ); + end + + + local opposite = n; + -- the last 4 markers placed ought to form the area + if( true or #coords ~= 2 ) then -- TODO + + + for i=1,3 do + + -- if both coordinates are diffrent, then this may be the opposite marker + if( ( markers.positions[ name ][ n-i ].x ~= + markers.positions[ name ][ n ].x ) + and ( markers.positions[ name ][ n-i ].z ~= + markers.positions[ name ][ n ].z )) then + + opposite = n-i; + coords = { markers.positions[ name ][ n ], + markers.positions[ name ][ n-i ] }; + end + end + + -- check if they fit + for i=1,3 do + + if(not( ((n-i) == opposite ) + or not(markers.positions[ name ][ n-i ] ) + or ( markers.positions[ name ][ n-i ].x == coords[ 1 ].x + and markers.positions[ name ][ n-i ].z == coords[ 2 ].z ) + or ( markers.positions[ name ][ n-i ].x == coords[ 2 ].x + and markers.positions[ name ][ n-i ].z == coords[ 1 ].z ))) then + + return formspec_info.."Error: The last 4 markers\nyou placed do not form\na rectangle.]"; + end + + end + + -- save data + meta:set_string( 'coords', minetest.serialize( coords ) ); + end + + -- the coordinates are set; we may present an input form now + + -- has the area already been defined? + local area = markers.get_area_by_pos1_pos2( coords[1], coords[2] ); + + + local size = (math.abs( coords[1].x - coords[2].x )+1) + * (math.abs( coords[1].z - coords[2].z )+1); + + -- check if area is too large + if( markers.MAX_SIZE < size ) then + return formspec_info.."Error: You can only protect\nareas of up to "..tostring( markers.MAX_SIZE ).."m^2.\n".. + "Your marked area is "..tostring( size ).." m^2 large.]"; + end + + local formspec = 'size[10,7]'.. + 'label[0.5,1;The area you marked extends from]'.. + 'label[4.7,1;'..minetest.pos_to_string( coords[ 1 ] )..' to '..minetest.pos_to_string( coords[ 2 ] )..'.]'.. + 'label[4.7,1.5;It spans '..tostring( math.abs( coords[1].x - coords[2].x )+1 ).. + ' x '..tostring( math.abs( coords[1].z - coords[2].z )+1 ).. + ' = '..tostring( size )..' m^2.]'; + + -- display the error message (if there is any) + if( error_msg ~= nil ) then + formspec = formspec.. + 'label[0.5,0.0;Error: ]'.. + 'textarea[5.0,0;4,1.5;info;;'..error_msg..']'; + end + + if( area and area['id'] ) then + formspec = formspec.. + 'label[0.5,2.0;This is area number ]'.. + 'label[4.7,2.0;'..tostring( area['id'] )..'.]'.. + 'label[0.5,2.5;It is owned by ]'.. + 'label[4.7,2.5;'..tostring( area['owner'] )..'.]'.. + 'label[0.5,3.0;The area is called ]'.. + 'label[4.7,3.0;'..tostring( area['name'] )..'.]'.. + "button_exit[2,6.0;2,0.5;abort;OK]"; + else + formspec = formspec.. + 'label[0.5,2.0;Buying this area will cost you ]'.. + 'label[4.7,2.0;'..markers.calculate_area_price_text( coords[1], coords[2], name )..'.]'.. + + 'label[0.5,3.0;Your area ought to go..]'.. + 'label[0.5,3.5;this many blocks up:]'.. + 'field[5.0,4.0;1,0.5;add_height;;40]'.. + 'label[6.0,3.5;(relative to this marker)]'.. + + 'label[0.5,4.0;and this many blocks down:]'.. + 'field[5.0,4.5;1,0.5;add_depth;;10]'.. + 'label[6.0,4.0;(relative to this marker)]'.. + + 'label[0.5,4.5;The area shall be named]'.. + 'field[5.0,5.0;6,0.5;set_area_name;;please enter a name]'.. + + "button_exit[2,6.0;2,0.5;abort;Abort]".. + -- code the position in the "Buy area" field + "button_exit[6,6.0;2,0.5;"..minetest.pos_to_string(pos)..";Buy area]"; + end + + return formspec; +end + + + +-- protect/buy an area +markers.marker_on_receive_fields = function(pos, formname, fields, sender) + + if( not( pos )) then + minetest.chat_send_player( name, 'Sorry, could not find the marker you where using to access this formspec.' ); + return; + end + + + local meta = minetest.env:get_meta( pos ); + + local name = sender:get_player_name(); + + local coords_string = meta:get_string( 'coords' ); + if( not( coords_string ) or coords_string == '' ) then + minetest.chat_send_player( name, 'Could not find marked area. Please dig and place your markers again!'); + return; + end + local coords = minetest.deserialize( coords_string ); + + + -- do not protect areas twice + local area = markers.get_area_by_pos1_pos2( coords[1], coords[2] ); + if( area ) then + + minetest.chat_send_player( name, 'This area is already protected.'); + return; + end + + + -- check input + local add_height = tonumber( fields['add_height'] ); + local add_depth = tonumber( fields['add_depth'] ); + + local error_msg = ''; + if( not( add_height ) or add_height < 0 or add_height > markers.MAX_HEIGHT ) then + minetest.chat_send_player( name, 'Please enter a number between 0 and '..tostring( markers.MAX_HEIGHT ).. + ' in the field where the height of your area is requested. Your area will stretch that many blocks '.. + 'up into the sky from the position of this marker onward.'); + error_msg = 'The height value\nhas to be larger than 0\nand smaller than '..tostring( markers.MAX_HEIGHT ); + + elseif( not( add_depth ) or add_depth < 0 or add_depth > markers.MAX_HEIGHT ) then + minetest.chat_send_player( name, 'Please enter a number between 0 and '..tostring( markers.MAX_HEIGHT ).. + ' in the field where the depth of your area is requested. Your area will stretch that many blocks '.. + 'into the ground from the position of this marker onward.'); + error_msg = 'The depth value\nhas to be larger than 0\nand smaller than '..tostring( markers.MAX_HEIGHT ); + + elseif( add_height + add_depth > markers.MAX_HEIGHT ) then + minetest.chat_send_player( name, 'Sorry, your area exceeds the height limit. Height and depth added have to '.. + 'be smaller than '..tostring( markers.MAX_HEIGHT )..'.'); + error_msg = 'height + depth has to\nbe smaller than '..tostring( markers.MAX_HEIGHT )..'.' + + elseif( not( fields[ 'set_area_name' ] ) or fields['set_area_name'] == 'please enter a name' ) then + minetest.chat_send_player( name, 'Please provide a name for your area, i.e. \"'.. + tostring( name )..'s first house\" The name ought to describe what you intend to build here.'); + error_msg = 'Please provide a\nname for your area!'; + + else + error_msg = nil; + end + + + if( error_msg ~= nil ) then + minetest.show_formspec( name, "markers:mark", markers.get_marker_formspec(sender, pos, error_msg)); + return; + end + + + -- those coords lack the height component + local pos1 = coords[1]; + local pos2 = coords[2]; + -- apply height values from the formspeck + pos1.y = pos.y + add_height; + pos2.y = pos.y - add_depth; + + pos1, pos2 = areas:sortPos( pos1, pos2 ); + + --minetest.chat_send_player('singleplayer','INPUT: '..minetest.serialize( pos1 )..' pos2: '..minetest.serialize( pos2 )); + minetest.log("action", "[markers] /protect invoked, owner="..name.. + " areaname="..fields['set_area_name'].. + " startpos="..minetest.pos_to_string(pos1).. + " endpos=" ..minetest.pos_to_string(pos2)); + + local canAdd, errMsg = areas:canPlayerAddArea(pos1, pos2, name) + if not canAdd then + minetest.chat_send_player(name, "You can't protect that area: "..errMsg) + minetest.show_formspec( name, "markers:mark", markers.get_marker_formspec(sender, pos, errMsg)); + return + end + + local id = areas:add(name, fields['set_area_name'], pos1, pos2, nil) + areas:save() + + minetest.chat_send_player(name, "Area protected. ID: "..id) + + minetest.show_formspec( name, "markers:mark", markers.get_marker_formspec(sender, pos, nil)); +end + + + +-- formspec input needs to be handled diffrently +markers.form_input_handler = function( player, formname, fields) + + if( formname == "markers:mark" ) then + + + if( not(fields) or fields['abort']) then + return true; + end + + --- decode the position of the marker (which is hidden in the Buy-buttons name + local pos = {}; + for k, v in pairs( fields ) do + if( v == 'Buy area' ) then + pos = minetest.string_to_pos( k ); + end + end + if( pos and pos.x and pos.y and pos.z ) then + markers.marker_on_receive_fields(pos, formname, fields, player); + end + return true; + + + elseif( formname == "markers:info" + and player + and markers.menu_data_by_player[ player:get_player_name() ] ) then + + local res = markers.form_input_handler_areas( player, formname, fields); + if( res ) then + return true; + end + + -- TODO +-- minetest.chat_send_player('singleplayer','MARKERS:INFO WITH '..minetest.serialize( fields )); + + else + -- TODO +-- minetest.chat_send_player('singleplayer','YOU CALLED '..tostring( formname )..' WITH '..minetest.serialize( fields )); + + end + + return false; + +end + +minetest.register_on_player_receive_fields( markers.form_input_handler) + + + + +minetest.register_node("markers:mark", { + description = "Marker", + tiles = {"markers_mark.png"}, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=2,choppy=2,dig_immediate=3}, + light_source = 1, + node_box = { + type = "fixed", + fixed = { + { -0.1, -0.5, -0.1, 0.1, 1.5, 0.1 }, + }, + }, + + after_place_node = function(pos, placer, itemstack) + markers.marker_placed( pos, placer, itemstack ); + end, + + -- the node is digged immediately, so we may as well do all the work in can_dig (any wrong digs are not that critical) + can_dig = function(pos,player) + return markers.marker_can_dig( pos, player ); + end, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + return markers.marker_after_dig_node( pos, oldnode, oldmetadata, digger ); + end, + + on_rightclick = function(pos, node, clicker) + + minetest.show_formspec( clicker:get_player_name(), + "markers:mark", + markers.get_marker_formspec(clicker, pos, nil) + ); + end, +}) + + +minetest.register_craft({ + output = "markers:mark 4", + recipe = { { "group:stick" }, + { "default:apple" }, + { "group:stick" }, + } }); + diff --git a/mods/markers/land_title_register.lua b/mods/markers/land_title_register.lua new file mode 100755 index 00000000..9c456a4a --- /dev/null +++ b/mods/markers/land_title_register.lua @@ -0,0 +1,74 @@ + + +minetest.register_tool( "markers:land_title_register", +{ + description = "Land title register. Left-click with it to get information about who owns the land you clicked on.", + groups = {}, + inventory_image = "default_book.png", -- TODO + wield_image = "", + wield_scale = {x=1,y=1,z=1}, + stack_max = 1, -- there is no need to have more than one + liquids_pointable = true, -- ground with only water on can be owned as well + -- the tool_capabilities are completely irrelevant here - no need to dig + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=0, + groupcaps={ + fleshy={times={[2]=0.80, [3]=0.40}, maxwear=0.05, maxlevel=1}, + snappy={times={[2]=0.80, [3]=0.40}, maxwear=0.05, maxlevel=1}, + choppy={times={[3]=0.90}, maxwear=0.05, maxlevel=0} + } + }, + node_placement_prediction = nil, + + on_place = function(itemstack, placer, pointed_thing) + + if( placer == nil or pointed_thing == nil) then + return itemstack; -- nothing consumed + end + local name = placer:get_player_name(); + + -- the position is what we're actually looking for + local pos = minetest.get_pointed_thing_position( pointed_thing, 0 ); --under ); + + if( not( pos ) or not( pos.x )) then + minetest.chat_send_player( name, "Position not found."); + return itemstack; + end + + -- this function shows the formspec with the information about the area(s) + markers.show_marker_stone_formspec( placer, pos ); + + return itemstack; -- nothing consumed, nothing changed + end, + + + on_use = function(itemstack, placer, pointed_thing) + + if( placer == nil or pointed_thing == nil) then + return itemstack; -- nothing consumed + end + local name = placer:get_player_name(); + + local pos = minetest.get_pointed_thing_position( pointed_thing, under ); + + if( not( pos ) or not( pos.x )) then + minetest.chat_send_player( name, "Position not found."); + return itemstack; + end + + -- this function shows the formspec with the information about the area(s) + markers.show_marker_stone_formspec( placer, pos ); + + return itemstack; -- nothing consumed, nothing changed + end, +}) + + +minetest.register_craft({ + output = "markers:land_title_register", + recipe = { { "markers:mark" }, + { "markers:stone" }, + { "default:book"} + } }); + diff --git a/mods/markers/marker_stone.lua b/mods/markers/marker_stone.lua new file mode 100755 index 00000000..c6875024 --- /dev/null +++ b/mods/markers/marker_stone.lua @@ -0,0 +1,24 @@ + +minetest.register_node("markers:stone", { + description = "Boundary marker for land administration", + tiles = {"markers_stone.png", "markers_stone.png", "markers_stone_side.png", + "markers_stone_side.png", "markers_stone_side.png", "markers_stone_side.png" }, +-- no facedir here - we want a fixed north indication! +-- paramtype2 = "facedir", + groups = {cracky=2}, + legacy_facedir_simple = true, + is_ground_content = false, + + on_rightclick = function(pos, node, clicker) + + markers.show_marker_stone_formspec( clicker, pos ); + end, +}) + + +minetest.register_craft({ + output = "markers:stone", + recipe = { { "markers:mark" }, + { "default:cobble" }, + } }); + diff --git a/mods/markers/textures/compass_side_top.png b/mods/markers/textures/compass_side_top.png new file mode 100755 index 00000000..3c87c57b Binary files /dev/null and b/mods/markers/textures/compass_side_top.png differ diff --git a/mods/markers/textures/markers_mark.png b/mods/markers/textures/markers_mark.png new file mode 100755 index 00000000..76cc6c09 Binary files /dev/null and b/mods/markers/textures/markers_mark.png differ diff --git a/mods/markers/textures/markers_stone.png b/mods/markers/textures/markers_stone.png new file mode 100755 index 00000000..73962bbe Binary files /dev/null and b/mods/markers/textures/markers_stone.png differ diff --git a/mods/markers/textures/markers_stone_side.png b/mods/markers/textures/markers_stone_side.png new file mode 100755 index 00000000..7230e74c Binary files /dev/null and b/mods/markers/textures/markers_stone_side.png differ diff --git a/mods/mesecons/.gitignore b/mods/mesecons/.gitignore new file mode 100755 index 00000000..b25c15b8 --- /dev/null +++ b/mods/mesecons/.gitignore @@ -0,0 +1 @@ +*~ diff --git a/mods/mesecons/.mesecons_blinkyplant/depends.txt b/mods/mesecons/.mesecons_blinkyplant/depends.txt new file mode 100755 index 00000000..acaa9241 --- /dev/null +++ b/mods/mesecons/.mesecons_blinkyplant/depends.txt @@ -0,0 +1 @@ +mesecons diff --git a/mods/mesecons/.mesecons_blinkyplant/init.lua b/mods/mesecons/.mesecons_blinkyplant/init.lua new file mode 100755 index 00000000..475d9533 --- /dev/null +++ b/mods/mesecons/.mesecons_blinkyplant/init.lua @@ -0,0 +1,102 @@ +-- The BLINKY_PLANT +minetest.register_node("mesecons_blinkyplant:blinky_plant", { + drawtype = "plantlike", + visual_scale = 1, + tiles = {"jeija_blinky_plant_off.png"}, + inventory_image = "jeija_blinky_plant_off.png", + walkable = false, + groups = {dig_immediate=3, not_in_creative_inventory=1}, + drop="mesecons_blinkyplant:blinky_plant_off 1", + description="Deactivated Blinky Plant", + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, -0.5+0.7, 0.3}, + }, + mesecons = {receptor = { + state = mesecon.state.off + }}, + on_rightclick = function(pos, node, clicker) + minetest.set_node(pos, {name="mesecons_blinkyplant:blinky_plant_off"}) + end +}) + +minetest.register_node("mesecons_blinkyplant:blinky_plant_off", { + drawtype = "plantlike", + visual_scale = 1, + tiles = {"jeija_blinky_plant_off.png"}, + inventory_image = "jeija_blinky_plant_off.png", + paramtype = "light", + walkable = false, + groups = {dig_immediate=3, mesecon=2}, + description="Blinky Plant", + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, -0.5+0.7, 0.3}, + }, + mesecons = {receptor = { + state = mesecon.state.off + }}, + on_rightclick = function(pos, node, clicker) + minetest.set_node(pos, {name="mesecons_blinkyplant:blinky_plant"}) + end +}) + +minetest.register_node("mesecons_blinkyplant:blinky_plant_on", { + drawtype = "plantlike", + visual_scale = 1, + tiles = {"jeija_blinky_plant_on.png"}, + inventory_image = "jeija_blinky_plant_off.png", + paramtype = "light", + walkable = false, + groups = {dig_immediate=3, not_in_creative_inventory=1, mesecon=2}, + drop="mesecons_blinkyplant:blinky_plant_off 1", + light_source = LIGHT_MAX-7, + description = "Blinky Plant", + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, -0.5+0.7, 0.3}, + }, + mesecons = {receptor = { + state = mesecon.state.on + }}, + on_rightclick = function(pos, node, clicker) + minetest.set_node(pos, {name = "mesecons_blinkyplant:blinky_plant"}) + mesecon:receptor_off(pos) + end +}) + +minetest.register_craft({ + output = "mesecons_blinkyplant:blinky_plant_off 1", + recipe = { + {"","group:mesecon_conductor_craftable",""}, + {"","group:mesecon_conductor_craftable",""}, + {"default:sapling","default:sapling","default:sapling"}, + } +}) + +minetest.register_abm( + {nodenames = {"mesecons_blinkyplant:blinky_plant_off"}, + interval = BLINKY_PLANT_INTERVAL, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + --minetest.remove_node(pos) + minetest.add_node(pos, {name="mesecons_blinkyplant:blinky_plant_on"}) + nodeupdate(pos) + mesecon:receptor_on(pos) + end, +}) + +minetest.register_abm({ + nodenames = {"mesecons_blinkyplant:blinky_plant_on"}, + interval = BLINKY_PLANT_INTERVAL, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + --minetest.remove_node(pos) + minetest.add_node(pos, {name="mesecons_blinkyplant:blinky_plant_off"}) + nodeupdate(pos) + mesecon:receptor_off(pos) + end, +}) diff --git a/mods/mesecons/.mesecons_blinkyplant/textures/jeija_blinky_plant_off.png b/mods/mesecons/.mesecons_blinkyplant/textures/jeija_blinky_plant_off.png new file mode 100755 index 00000000..4f507da1 Binary files /dev/null and b/mods/mesecons/.mesecons_blinkyplant/textures/jeija_blinky_plant_off.png differ diff --git a/mods/mesecons/.mesecons_blinkyplant/textures/jeija_blinky_plant_on.png b/mods/mesecons/.mesecons_blinkyplant/textures/jeija_blinky_plant_on.png new file mode 100755 index 00000000..f77a134f Binary files /dev/null and b/mods/mesecons/.mesecons_blinkyplant/textures/jeija_blinky_plant_on.png differ diff --git a/mods/mesecons/.mesecons_detector/depends.txt b/mods/mesecons/.mesecons_detector/depends.txt new file mode 100755 index 00000000..bc7b0627 --- /dev/null +++ b/mods/mesecons/.mesecons_detector/depends.txt @@ -0,0 +1,2 @@ +mesecons +mesecons_materials diff --git a/mods/mesecons/.mesecons_detector/init.lua b/mods/mesecons/.mesecons_detector/init.lua new file mode 100755 index 00000000..88614b56 --- /dev/null +++ b/mods/mesecons/.mesecons_detector/init.lua @@ -0,0 +1,110 @@ +-- Object detector +-- Detects players in a certain radius +-- The radius can be specified in mesecons/settings.lua + +local object_detector_make_formspec = function (pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", "size[9,2.5]" .. + "field[0.3, 0;9,2;scanname;Name of player to scan for (empty for any):;${scanname}]".. + "field[0.3,1.5;4,2;digiline_channel;Digiline Channel (optional):;${digiline_channel}]".. + "button_exit[7,0.75;2,3;;Save]") +end + +local object_detector_on_receive_fields = function(pos, formname, fields) + if not fields.scanname or not fields.digiline_channel then return end; + + local meta = minetest.get_meta(pos) + meta:set_string("scanname", fields.scanname) + meta:set_string("digiline_channel", fields.digiline_channel) + object_detector_make_formspec(pos) +end + +-- returns true if player was found, false if not +local object_detector_scan = function (pos) + local objs = minetest.get_objects_inside_radius(pos, OBJECT_DETECTOR_RADIUS) + for k, obj in pairs(objs) do + local isname = obj:get_player_name() -- "" is returned if it is not a player; "" ~= nil! + local scanname = minetest.get_meta(pos):get_string("scanname") + if (isname == scanname and isname ~= "") or (isname ~= "" and scanname == "") then -- player with scanname found or not scanname specified + return true + end + end + return false +end + +-- set player name when receiving a digiline signal on a specific channel +object_detector_digiline = { + effector = { + action = function (pos, node, channel, msg) + local meta = minetest.get_meta(pos) + local active_channel = meta:get_string("digiline_channel") + if channel == active_channel then + meta:set_string("scanname", msg) + object_detector_make_formspec(pos) + end + end, + } +} + +minetest.register_node("mesecons_detector:object_detector_off", { + tiles = {"default_steel_block.png", "default_steel_block.png", "jeija_object_detector_off.png", "jeija_object_detector_off.png", "jeija_object_detector_off.png", "jeija_object_detector_off.png"}, + paramtype = "light", + walkable = true, + groups = {cracky=3}, + description="Player Detector", + mesecons = {receptor = { + state = mesecon.state.off + }}, + on_construct = object_detector_make_formspec, + on_receive_fields = object_detector_on_receive_fields, + sounds = default.node_sound_stone_defaults(), + digiline = object_detector_digiline +}) + +minetest.register_node("mesecons_detector:object_detector_on", { + tiles = {"default_steel_block.png", "default_steel_block.png", "jeija_object_detector_on.png", "jeija_object_detector_on.png", "jeija_object_detector_on.png", "jeija_object_detector_on.png"}, + paramtype = "light", + walkable = true, + groups = {cracky=3,not_in_creative_inventory=1}, + drop = 'mesecons_detector:object_detector_off', + mesecons = {receptor = { + state = mesecon.state.on + }}, + on_construct = object_detector_make_formspec, + on_receive_fields = object_detector_on_receive_fields, + sounds = default.node_sound_stone_defaults(), + digiline = object_detector_digiline +}) + +minetest.register_craft({ + output = 'mesecons_detector:object_detector_off', + recipe = { + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "mesecons_luacontroller:luacontroller0000", "default:steel_ingot"}, + {"default:steel_ingot", "group:mesecon_conductor_craftable", "default:steel_ingot"}, + } +}) + +minetest.register_abm( + {nodenames = {"mesecons_detector:object_detector_off"}, + interval = 1.0, + chance = 1, + action = function(pos) + if object_detector_scan(pos) then + minetest.swap_node(pos, {name = "mesecons_detector:object_detector_on"}) + mesecon:receptor_on(pos) + end + end, +}) + +minetest.register_abm( + {nodenames = {"mesecons_detector:object_detector_on"}, + interval = 1.0, + chance = 1, + action = function(pos) + if not object_detector_scan(pos) then + minetest.swap_node(pos, {name = "mesecons_detector:object_detector_off"}) + mesecon:receptor_off(pos) + end + end, +}) diff --git a/mods/mesecons/.mesecons_detector/textures/jeija_object_detector_off.png b/mods/mesecons/.mesecons_detector/textures/jeija_object_detector_off.png new file mode 100755 index 00000000..825d78f6 Binary files /dev/null and b/mods/mesecons/.mesecons_detector/textures/jeija_object_detector_off.png differ diff --git a/mods/mesecons/.mesecons_detector/textures/jeija_object_detector_on.png b/mods/mesecons/.mesecons_detector/textures/jeija_object_detector_on.png new file mode 100755 index 00000000..96f8ba32 Binary files /dev/null and b/mods/mesecons/.mesecons_detector/textures/jeija_object_detector_on.png differ diff --git a/mods/mesecons/.mesecons_gates/depends.txt b/mods/mesecons/.mesecons_gates/depends.txt new file mode 100755 index 00000000..f3e0392f --- /dev/null +++ b/mods/mesecons/.mesecons_gates/depends.txt @@ -0,0 +1,6 @@ +mesecons +mesecons_microcontroller +mesecons_delayer + +mesecons_torch +mesecons_materials diff --git a/mods/mesecons/.mesecons_gates/init.lua b/mods/mesecons/.mesecons_gates/init.lua new file mode 100755 index 00000000..a22edf68 --- /dev/null +++ b/mods/mesecons/.mesecons_gates/init.lua @@ -0,0 +1,222 @@ +function gate_rotate_rules(node) + for rotations = 0, node.param2 - 1 do + rules = mesecon:rotate_rules_left(rules) + end + return rules +end + +function gate_get_output_rules(node) + rules = {{x=1, y=0, z=0}} + return gate_rotate_rules(node) +end + +function gate_get_input_rules_oneinput(node) + rules = {{x=-1, y=0, z=0}, {x=1, y=0, z=0}} + return gate_rotate_rules(node) +end + +function gate_get_input_rules_twoinputs(node) + rules = { + {x=0, y=0, z=1}, + {x=0, y=0, z=-1}, + {x=1, y=0, z=0}} + return gate_rotate_rules(node) +end + +function update_gate(pos, node, rulename, newstate) + yc_update_real_portstates(pos, node, rulename, newstate) + gate = get_gate(pos) + L = rotate_ports( + yc_get_real_portstates(pos), + minetest.get_node(pos).param2 + ) + if gate == "diode" then + set_gate(pos, L.a) + elseif gate == "not" then + set_gate(pos, not L.a) + elseif gate == "nand" then + set_gate(pos, not(L.b and L.d)) + elseif gate == "and" then + set_gate(pos, L.b and L.d) + elseif gate == "xor" then + set_gate(pos, (L.b and not L.d) or (not L.b and L.d)) + end +end + +function set_gate(pos, on) + gate = get_gate(pos) + local meta = minetest.get_meta(pos) + if on ~= gate_state(pos) then + if mesecon.do_overheat(pos) then + pop_gate(pos) + else + local node = minetest.get_node(pos) + if on then + minetest.swap_node(pos, {name = "mesecons_gates:"..gate.."_on", param2=node.param2}) + mesecon:receptor_on(pos, + gate_get_output_rules(node)) + else + minetest.swap_node(pos, {name = "mesecons_gates:"..gate.."_off", param2=node.param2}) + mesecon:receptor_off(pos, + gate_get_output_rules(node)) + end + end + end +end + +function get_gate(pos) + return minetest.registered_nodes[minetest.get_node(pos).name].mesecons_gate +end + +function gate_state(pos) + name = minetest.get_node(pos).name + return string.find(name, "_on") ~= nil +end + +function pop_gate(pos) + gate = get_gate(pos) + minetest.remove_node(pos) + minetest.after(0.2, function (pos) + mesecon:receptor_off(pos, mesecon.rules.flat) + end , pos) -- wait for pending parsings + minetest.add_item(pos, "mesecons_gates:"..gate.."_off") +end + +function rotate_ports(L, param2) + for rotations=0, param2-1 do + port = L.a + L.a = L.b + L.b = L.c + L.c = L.d + L.d = port + end + return L +end + +gates = { +{name = "diode", inputnumber = 1}, +{name = "not" , inputnumber = 1}, +{name = "nand" , inputnumber = 2}, +{name = "and" , inputnumber = 2}, +{name = "xor" , inputnumber = 2}} + +local onoff, drop, nodename, description, groups +for _, gate in ipairs(gates) do + if gate.inputnumber == 1 then + get_rules = gate_get_input_rules_oneinput + elseif gate.inputnumber == 2 then + get_rules = gate_get_input_rules_twoinputs + end + for on = 0, 1 do + nodename = "mesecons_gates:"..gate.name + if on == 1 then + onoff = "on" + drop = nodename.."_off" + nodename = nodename.."_"..onoff + description = "You hacker you!" + groups = {dig_immediate=2, not_in_creative_inventory=1, overheat = 1} + else + onoff = "off" + drop = nil + nodename = nodename.."_"..onoff + description = gate.name.." Gate" + groups = {dig_immediate=2, overheat = 1} + end + + tiles = "jeija_microcontroller_bottom.png^".. + "jeija_gate_"..onoff..".png^".. + "jeija_gate_"..gate.name..".png" + + node_box = { + type = "fixed", + fixed = { + {-8/16, -8/16, -8/16, 8/16, -7/16, 8/16 }, + }, + } + + local mesecon_state + if on == 1 then + mesecon_state = mesecon.state.on + else + mesecon_state = mesecon.state.off + end + + minetest.register_node(nodename, { + description = description, + paramtype = "light", + paramtype2 = "facedir", + drawtype = "nodebox", + tiles = {tiles}, + inventory_image = tiles, + selection_box = node_box, + node_box = node_box, + walkable = true, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + update_gate(pos) + end, + groups = groups, + drop = drop, + sounds = default.node_sound_stone_defaults(), + mesecons_gate = gate.name, + mesecons = + { + receptor = + { + state = mesecon_state, + rules = gate_get_output_rules + }, + effector = + { + rules = get_rules, + action_change = update_gate + } + } + }) + end +end + +minetest.register_craft({ + output = 'mesecons_gates:diode_off', + recipe = { + {'', '', ''}, + {'mesecons:mesecon', 'mesecons_torch:mesecon_torch_on', 'mesecons_torch:mesecon_torch_on'}, + {'', '', ''}, + }, +}) + +minetest.register_craft({ + output = 'mesecons_gates:not_off', + recipe = { + {'', '', ''}, + {'mesecons:mesecon', 'mesecons_torch:mesecon_torch_on', 'mesecons:mesecon'}, + {'', '', ''}, + }, +}) + +minetest.register_craft({ + output = 'mesecons_gates:and_off', + recipe = { + {'mesecons:mesecon', '', ''}, + {'', 'mesecons_materials:silicon', 'mesecons:mesecon'}, + {'mesecons:mesecon', '', ''}, + }, +}) + +minetest.register_craft({ + output = 'mesecons_gates:nand_off', + recipe = { + {'mesecons:mesecon', '', ''}, + {'', 'mesecons_materials:silicon', 'mesecons_torch:mesecon_torch_on'}, + {'mesecons:mesecon', '', ''}, + }, +}) + +minetest.register_craft({ + output = 'mesecons_gates:xor_off', + recipe = { + {'mesecons:mesecon', '', ''}, + {'', 'mesecons_materials:silicon', 'mesecons_materials:silicon'}, + {'mesecons:mesecon', '', ''}, + }, +}) diff --git a/mods/mesecons/.mesecons_gates/textures/jeija_gate_and.png b/mods/mesecons/.mesecons_gates/textures/jeija_gate_and.png new file mode 100755 index 00000000..0ddc0434 Binary files /dev/null and b/mods/mesecons/.mesecons_gates/textures/jeija_gate_and.png differ diff --git a/mods/mesecons/.mesecons_gates/textures/jeija_gate_diode.png b/mods/mesecons/.mesecons_gates/textures/jeija_gate_diode.png new file mode 100755 index 00000000..ffa403f7 Binary files /dev/null and b/mods/mesecons/.mesecons_gates/textures/jeija_gate_diode.png differ diff --git a/mods/mesecons/.mesecons_gates/textures/jeija_gate_nand.png b/mods/mesecons/.mesecons_gates/textures/jeija_gate_nand.png new file mode 100755 index 00000000..0e4294eb Binary files /dev/null and b/mods/mesecons/.mesecons_gates/textures/jeija_gate_nand.png differ diff --git a/mods/mesecons/.mesecons_gates/textures/jeija_gate_not.png b/mods/mesecons/.mesecons_gates/textures/jeija_gate_not.png new file mode 100755 index 00000000..939fb761 Binary files /dev/null and b/mods/mesecons/.mesecons_gates/textures/jeija_gate_not.png differ diff --git a/mods/mesecons/.mesecons_gates/textures/jeija_gate_off.png b/mods/mesecons/.mesecons_gates/textures/jeija_gate_off.png new file mode 100755 index 00000000..44017b0f Binary files /dev/null and b/mods/mesecons/.mesecons_gates/textures/jeija_gate_off.png differ diff --git a/mods/mesecons/.mesecons_gates/textures/jeija_gate_on.png b/mods/mesecons/.mesecons_gates/textures/jeija_gate_on.png new file mode 100755 index 00000000..47028a89 Binary files /dev/null and b/mods/mesecons/.mesecons_gates/textures/jeija_gate_on.png differ diff --git a/mods/mesecons/.mesecons_gates/textures/jeija_gate_xor.png b/mods/mesecons/.mesecons_gates/textures/jeija_gate_xor.png new file mode 100755 index 00000000..afbd6abe Binary files /dev/null and b/mods/mesecons/.mesecons_gates/textures/jeija_gate_xor.png differ diff --git a/mods/mesecons/.mesecons_luacontroller/depends.txt b/mods/mesecons/.mesecons_luacontroller/depends.txt new file mode 100755 index 00000000..acaa9241 --- /dev/null +++ b/mods/mesecons/.mesecons_luacontroller/depends.txt @@ -0,0 +1 @@ +mesecons diff --git a/mods/mesecons/.mesecons_luacontroller/init.lua b/mods/mesecons/.mesecons_luacontroller/init.lua new file mode 100755 index 00000000..03ce8535 --- /dev/null +++ b/mods/mesecons/.mesecons_luacontroller/init.lua @@ -0,0 +1,560 @@ +-- Reference +-- ports = get_real_portstates(pos): gets if inputs are powered from outside +-- newport = merge_portstates(state1, state2): just does result = state1 or state2 for every port +-- action_setports(pos, rule, state): activates/deactivates the mesecons according to the portstates (helper for action) +-- action(pos, ports): Applies new portstates to a luacontroller at pos +-- lc_update(pos): updates the controller at pos by executing the code +-- reset_meta (pos, code, errmsg): performs a software-reset, installs new code and prints error messages +-- reset (pos): performs a hardware reset, turns off all ports +-- +-- The Sandbox +-- The whole code of the controller runs in a sandbox, +-- a very restricted environment. +-- However, as this does not prevent you from using e.g. loops, +-- we need to check for these prohibited commands first. +-- Actually the only way to damage the server is to +-- use too much memory from the sandbox. +-- You can add more functions to the environment +-- (see where local env is defined) +-- Something nice to play is is appending minetest. to it. + +local BASENAME = "mesecons_luacontroller:luacontroller" + +local rules = {} +rules.a = {x = -1, y = 0, z = 0, name="A"} +rules.b = {x = 0, y = 0, z = 1, name="B"} +rules.c = {x = 1, y = 0, z = 0, name="C"} +rules.d = {x = 0, y = 0, z = -1, name="D"} + +------------------ +-- Action stuff -- +------------------ +-- These helpers are required to set the portstates of the luacontroller + +function lc_update_real_portstates(pos, rulename, newstate) + local meta = minetest.get_meta(pos) + if rulename == nil then + meta:set_int("real_portstates", 1) + return + end + local n = meta:get_int("real_portstates") - 1 + if n < 0 then + legacy_update_ports(pos) + n = meta:get_int("real_portstates") - 1 + end + local L = {} + for i = 1, 4 do + L[i] = n%2 + n = math.floor(n/2) + end + if rulename.x == nil then + for _, rname in ipairs(rulename) do + local port = ({4, 1, nil, 3, 2})[rname.x+2*rname.z+3] + L[port] = (newstate == "on") and 1 or 0 + end + else + local port = ({4, 1, nil, 3, 2})[rulename.x+2*rulename.z+3] + L[port] = (newstate == "on") and 1 or 0 + end + meta:set_int("real_portstates", 1 + L[1] + 2*L[2] + 4*L[3] + 8*L[4]) +end + +local get_real_portstates = function(pos) -- determine if ports are powered (by itself or from outside) + local meta = minetest.get_meta(pos) + local L = {} + local n = meta:get_int("real_portstates") - 1 + if n < 0 then + return legacy_update_ports(pos) + end + for _, index in ipairs({"a", "b", "c", "d"}) do + L[index] = ((n%2) == 1) + n = math.floor(n/2) + end + return L +end + +local merge_portstates = function (ports, vports) + local npo = {a=false, b=false, c=false, d=false} + npo.a = vports.a or ports.a + npo.b = vports.b or ports.b + npo.c = vports.c or ports.c + npo.d = vports.d or ports.d + return npo +end + +local generate_name = function (ports) + local overwrite = overwrite or {} + local d = ports.d and 1 or 0 + local c = ports.c and 1 or 0 + local b = ports.b and 1 or 0 + local a = ports.a and 1 or 0 + return BASENAME..d..c..b..a +end + +local setport = function (pos, rule, state) + if state then + mesecon:receptor_on(pos, {rule}) + else + mesecon:receptor_off(pos, {rule}) + end +end + +local action = function (pos, ports) + local node = minetest.get_node(pos) + local name = node.name + local vports = minetest.registered_nodes[name].virtual_portstates + local newname = generate_name(ports) + + if name ~= newname and vports then + local rules_on = {} + local rules_off = {} + + minetest.swap_node(pos, {name = newname, param2 = node.param2}) + + if ports.a ~= vports.a then setport(pos, rules.a, ports.a) end + if ports.b ~= vports.b then setport(pos, rules.b, ports.b) end + if ports.c ~= vports.c then setport(pos, rules.c, ports.c) end + if ports.d ~= vports.d then setport(pos, rules.d, ports.d) end + end +end + +-------------------- +-- Overheat stuff -- +-------------------- + +local overheat_off = function(pos) + mesecon:receptor_off(pos, mesecon.rules.flat) +end + +------------------- +-- Parsing stuff -- +------------------- + +local code_prohibited = function(code) + -- Clean code + local prohibited = {"while", "for", "repeat", "until", "function", "goto"} + for _, p in ipairs(prohibited) do + if string.find(code, p) then + return "Prohibited command: "..p + end + end +end + +local safe_print = function(param) + print(dump(param)) +end + +deep_copy = function(original, visited) --deep copy that removes functions + visited = visited or {} + if visited[original] ~= nil then --already visited this node + return visited[original] + end + if type(original) == 'table' then --nested table + local copy = {} + visited[original] = copy + for key, value in next, original, nil do + copy[deep_copy(key, visited)] = deep_copy(value, visited) + end + setmetatable(copy, deep_copy(getmetatable(original), visited)) + return copy + elseif type(original) == 'function' then --ignore functions + return nil + else --by-value type + return original + end +end + +local safe_serialize = function(value) + return minetest.serialize(deep_copy(value)) +end + +mesecon.queue:add_function("lc_interrupt", function (pos, iid, luac_id) + -- There is no luacontroller anymore / it has been reprogrammed / replaced + if (minetest.get_meta(pos):get_int("luac_id") ~= luac_id) then return end + lc_update(pos, {type="interrupt", iid = iid}) +end) + +local getinterrupt = function(pos) + local interrupt = function (time, iid) -- iid = interrupt id + if type(time) ~= "number" then return end + luac_id = minetest.get_meta(pos):get_int("luac_id") + mesecon.queue:add_action(pos, "lc_interrupt", {iid, luac_id}, time, iid, 1) + end + return interrupt +end + +local getdigiline_send = function(pos) + if not digiline then return end + -- Send messages on next serverstep + return function(channel, msg) + minetest.after(0, function() + digiline:receptor_send(pos, digiline.rules.default, channel, msg) + end) + end +end + +local create_environment = function(pos, mem, event) + -- Gather variables for the environment + local vports = minetest.registered_nodes[minetest.get_node(pos).name].virtual_portstates + vports = {a = vports.a, b = vports.b, c = vports.c, d = vports.d} + local rports = get_real_portstates(pos) + + return { + print = safe_print, + pin = merge_portstates(vports, rports), + port = vports, + interrupt = getinterrupt(pos), + digiline_send = getdigiline_send(pos), + mem = mem, + tostring = tostring, + tonumber = tonumber, + heat = minetest.get_meta(pos):get_int("heat"), + heat_max = OVERHEAT_MAX, + string = { + byte = string.byte, + char = string.char, + find = string.find, + format = string.format, + gmatch = string.gmatch, + gsub = string.gsub, + len = string.len, + lower = string.lower, + upper = string.upper, + match = string.match, + rep = string.rep, + reverse = string.reverse, + sub = string.sub, + }, + math = { + abs = math.abs, + acos = math.acos, + asin = math.asin, + atan = math.atan, + atan2 = math.atan2, + ceil = math.ceil, + cos = math.cos, + cosh = math.cosh, + deg = math.deg, + exp = math.exp, + floor = math.floor, + fmod = math.fmod, + frexp = math.frexp, + huge = math.huge, + ldexp = math.ldexp, + log = math.log, + log10 = math.log10, + max = math.max, + min = math.min, + modf = math.modf, + pi = math.pi, + pow = math.pow, + rad = math.rad, + random = math.random, + sin = math.sin, + sinh = math.sinh, + sqrt = math.sqrt, + tan = math.tan, + tanh = math.tanh, + }, + table = { + insert = table.insert, + maxn = table.maxn, + remove = table.remove, + sort = table.sort + }, + event = event, + } +end + +local create_sandbox = function (code, env) + -- Create Sandbox + if code:byte(1) == 27 then + return _, "You Hacker You! Don't use binary code!" + end + f, msg = loadstring(code) + if not f then return _, msg end + setfenv(f, env) + return f +end + +local lc_overheat = function (pos, meta) + if mesecon.do_overheat(pos) then -- if too hot + local node = minetest.get_node(pos) + minetest.swap_node(pos, {name = BASENAME.."_burnt", param2 = node.param2}) + minetest.after(0.2, overheat_off, pos) -- wait for pending operations + return true + end +end + +local load_memory = function(meta) + return minetest.deserialize(meta:get_string("lc_memory")) or {} +end + +local save_memory = function(meta, mem) + meta:set_string("lc_memory", safe_serialize(mem)) +end + +local ports_invalid = function (var) + if type(var) == "table" then + return false + end + return "The ports you set are invalid" +end + +---------------------- +-- Parsing function -- +---------------------- + +lc_update = function (pos, event) + local meta = minetest.get_meta(pos) + if lc_overheat(pos) then return end + + -- load code & mem from memory + local mem = load_memory(meta) + local code = meta:get_string("code") + + -- make sure code is ok and create environment + local prohibited = code_prohibited(code) + if prohibited then return prohibited end + local env = create_environment(pos, mem, event) + + -- create the sandbox and execute code + local chunk, msg = create_sandbox (code, env) + if not chunk then return msg end + local success, msg = pcall(f) + if not success then return msg end + if ports_invalid(env.port) then return ports_invalid(env.port) end + + save_memory(meta, mem) + + -- Actually set the ports + action(pos, env.port) +end + +local reset_meta = function(pos, code, errmsg) + local meta = minetest.get_meta(pos) + meta:set_string("code", code) + code = minetest.formspec_escape(code or "") + errmsg = minetest.formspec_escape(errmsg or "") + meta:set_string("formspec", "size[10,8]".. + "background[-0.2,-0.25;10.4,8.75;jeija_luac_background.png]".. + "textarea[0.2,0.6;10.2,5;code;;"..code.."]".. + "image_button[3.75,6;2.5,1;jeija_luac_runbutton.png;program;]".. + "image_button_exit[9.72,-0.25;0.425,0.4;jeija_close_window.png;exit;]".. + "label[0.1,5;"..errmsg.."]") + meta:set_int("heat", 0) + meta:set_int("luac_id", math.random(1, 1000000)) +end + +local reset = function (pos) + action(pos, {a=false, b=false, c=false, d=false}) +end + +-- ______ +-- | +-- | +-- | __ ___ _ __ _ _ +-- | | | | | |\ | | |_| | | | | |_ |_| +-- |___| |______ |__| | \| | | \ |__| |_ |_ |_ |\ +-- | +-- | +-- + +----------------------- +-- Node Registration -- +----------------------- + +local output_rules={} +local input_rules={} + +local nodebox = { + type = "fixed", + fixed = { + { -8/16, -8/16, -8/16, 8/16, -7/16, 8/16 }, -- bottom slab + { -5/16, -7/16, -5/16, 5/16, -6/16, 5/16 }, -- circuit board + { -3/16, -6/16, -3/16, 3/16, -5/16, 3/16 }, -- IC + } + } + +local selectionbox = { + type = "fixed", + fixed = { -8/16, -8/16, -8/16, 8/16, -5/16, 8/16 }, + } + +local digiline = { + receptor = {}, + effector = { + action = function (pos, node, channel, msg) + lc_update (pos, {type = "digiline", channel = channel, msg = msg}) + end + } +} + +for a = 0, 1 do -- 0 = off; 1 = on +for b = 0, 1 do +for c = 0, 1 do +for d = 0, 1 do + +local cid = tostring(d)..tostring(c)..tostring(b)..tostring(a) +local nodename = BASENAME..cid +local top = "jeija_luacontroller_top.png" +if a == 1 then + top = top.."^jeija_luacontroller_LED_A.png" +end +if b == 1 then + top = top.."^jeija_luacontroller_LED_B.png" +end +if c == 1 then + top = top.."^jeija_luacontroller_LED_C.png" +end +if d == 1 then + top = top.."^jeija_luacontroller_LED_D.png" +end + +if a + b + c + d ~= 0 then + groups = {dig_immediate=2, not_in_creative_inventory=1, overheat = 1} +else + groups = {dig_immediate=2, overheat = 1} +end + +output_rules[cid] = {} +input_rules[cid] = {} +if (a == 1) then table.insert(output_rules[cid], rules.a) end +if (b == 1) then table.insert(output_rules[cid], rules.b) end +if (c == 1) then table.insert(output_rules[cid], rules.c) end +if (d == 1) then table.insert(output_rules[cid], rules.d) end + +if (a == 0) then table.insert(input_rules[cid], rules.a) end +if (b == 0) then table.insert(input_rules[cid], rules.b) end +if (c == 0) then table.insert(input_rules[cid], rules.c) end +if (d == 0) then table.insert(input_rules[cid], rules.d) end + +local mesecons = { + effector = + { + rules = input_rules[cid], + action_change = function (pos, _, rulename, newstate) + lc_update_real_portstates(pos, rulename, newstate) + lc_update(pos, {type=newstate, pin=rulename}) + end, + }, + receptor = + { + state = mesecon.state.on, + rules = output_rules[cid] + } +} + +minetest.register_node(nodename, { + description = "Luacontroller", + drawtype = "nodebox", + tiles = { + top, + "jeija_microcontroller_bottom.png", + "jeija_microcontroller_sides.png", + "jeija_microcontroller_sides.png", + "jeija_microcontroller_sides.png", + "jeija_microcontroller_sides.png" + }, + + inventory_image = top, + paramtype = "light", + groups = groups, + drop = BASENAME.."0000", + sunlight_propagates = true, + selection_box = selectionbox, + node_box = nodebox, + on_construct = reset_meta, + on_receive_fields = function(pos, formname, fields) + if not fields.program then + return + end + reset(pos) + reset_meta(pos, fields.code) + local err = lc_update(pos, {type="program"}) + if err then + print(err) + reset_meta(pos, fields.code, err) + end + end, + on_timer = handle_timer, + sounds = default.node_sound_stone_defaults(), + mesecons = mesecons, + digiline = digiline, + virtual_portstates = { a = a == 1, -- virtual portstates are + b = b == 1, -- the ports the the + c = c == 1, -- controller powers itself + d = d == 1},-- so those that light up + after_dig_node = function (pos, node) + mesecon:receptor_off(pos, output_rules) + end, + is_luacontroller = true, +}) +end +end +end +end + +------------------------------ +-- overheated luacontroller -- +------------------------------ + +local mesecons_burnt = { + effector = + { + rules = mesecon.rules.flat, + action_change = function (pos, _, rulename, newstate) + -- only update portstates when changes are triggered + lc_update_real_portstates(pos, rulename, newstate) + end + } +} + +minetest.register_node(BASENAME .. "_burnt", { + drawtype = "nodebox", + tiles = { + "jeija_luacontroller_burnt_top.png", + "jeija_microcontroller_bottom.png", + "jeija_microcontroller_sides.png", + "jeija_microcontroller_sides.png", + "jeija_microcontroller_sides.png", + "jeija_microcontroller_sides.png" + }, + inventory_image = "jeija_luacontroller_burnt_top.png", + paramtype = "light", + groups = {dig_immediate=2, not_in_creative_inventory=1}, + drop = BASENAME.."0000", + sunlight_propagates = true, + selection_box = selectionbox, + node_box = nodebox, + on_construct = reset_meta, + on_receive_fields = function(pos, formname, fields) + if fields.quit then + return + end + reset(pos) + reset_meta(pos, fields.code) + local err = lc_update(pos, {type="program"}) + if err then + print(err) + reset_meta(pos, fields.code, err) + end + end, + sounds = default.node_sound_stone_defaults(), + virtual_portstates = {a = false, b = false, c = false, d = false}, + mesecons = mesecons_burnt, +}) + +------------------------ +-- Craft Registration -- +------------------------ + +minetest.register_craft({ + output = BASENAME.."0000 2", + recipe = { + {'mesecons_materials:silicon', 'mesecons_materials:silicon', 'group:mesecon_conductor_craftable'}, + {'mesecons_materials:silicon', 'mesecons_materials:silicon', 'group:mesecon_conductor_craftable'}, + {'group:mesecon_conductor_craftable', 'group:mesecon_conductor_craftable', ''}, + } +}) + diff --git a/mods/mesecons/.mesecons_luacontroller/textures/jeija_luac_background.png b/mods/mesecons/.mesecons_luacontroller/textures/jeija_luac_background.png new file mode 100755 index 00000000..40e316c8 Binary files /dev/null and b/mods/mesecons/.mesecons_luacontroller/textures/jeija_luac_background.png differ diff --git a/mods/mesecons/.mesecons_luacontroller/textures/jeija_luac_runbutton.png b/mods/mesecons/.mesecons_luacontroller/textures/jeija_luac_runbutton.png new file mode 100755 index 00000000..157507f4 Binary files /dev/null and b/mods/mesecons/.mesecons_luacontroller/textures/jeija_luac_runbutton.png differ diff --git a/mods/mesecons/.mesecons_luacontroller/textures/jeija_luacontroller_LED_A.png b/mods/mesecons/.mesecons_luacontroller/textures/jeija_luacontroller_LED_A.png new file mode 100755 index 00000000..a187e8ed Binary files /dev/null and b/mods/mesecons/.mesecons_luacontroller/textures/jeija_luacontroller_LED_A.png differ diff --git a/mods/mesecons/.mesecons_luacontroller/textures/jeija_luacontroller_LED_B.png b/mods/mesecons/.mesecons_luacontroller/textures/jeija_luacontroller_LED_B.png new file mode 100755 index 00000000..738ba968 Binary files /dev/null and b/mods/mesecons/.mesecons_luacontroller/textures/jeija_luacontroller_LED_B.png differ diff --git a/mods/mesecons/.mesecons_luacontroller/textures/jeija_luacontroller_LED_C.png b/mods/mesecons/.mesecons_luacontroller/textures/jeija_luacontroller_LED_C.png new file mode 100755 index 00000000..abe0fe6b Binary files /dev/null and b/mods/mesecons/.mesecons_luacontroller/textures/jeija_luacontroller_LED_C.png differ diff --git a/mods/mesecons/.mesecons_luacontroller/textures/jeija_luacontroller_LED_D.png b/mods/mesecons/.mesecons_luacontroller/textures/jeija_luacontroller_LED_D.png new file mode 100755 index 00000000..cc101706 Binary files /dev/null and b/mods/mesecons/.mesecons_luacontroller/textures/jeija_luacontroller_LED_D.png differ diff --git a/mods/mesecons/.mesecons_luacontroller/textures/jeija_luacontroller_burnt_top.png b/mods/mesecons/.mesecons_luacontroller/textures/jeija_luacontroller_burnt_top.png new file mode 100755 index 00000000..d1a17af2 Binary files /dev/null and b/mods/mesecons/.mesecons_luacontroller/textures/jeija_luacontroller_burnt_top.png differ diff --git a/mods/mesecons/.mesecons_luacontroller/textures/jeija_luacontroller_top.png b/mods/mesecons/.mesecons_luacontroller/textures/jeija_luacontroller_top.png new file mode 100755 index 00000000..3128230e Binary files /dev/null and b/mods/mesecons/.mesecons_luacontroller/textures/jeija_luacontroller_top.png differ diff --git a/mods/mesecons/.mesecons_microcontroller/MeseconMicro.odt b/mods/mesecons/.mesecons_microcontroller/MeseconMicro.odt new file mode 100755 index 00000000..be82d1b6 Binary files /dev/null and b/mods/mesecons/.mesecons_microcontroller/MeseconMicro.odt differ diff --git a/mods/mesecons/.mesecons_microcontroller/MeseconMicro.pdf b/mods/mesecons/.mesecons_microcontroller/MeseconMicro.pdf new file mode 100755 index 00000000..7ab74840 Binary files /dev/null and b/mods/mesecons/.mesecons_microcontroller/MeseconMicro.pdf differ diff --git a/mods/mesecons/.mesecons_microcontroller/depends.txt b/mods/mesecons/.mesecons_microcontroller/depends.txt new file mode 100755 index 00000000..acaa9241 --- /dev/null +++ b/mods/mesecons/.mesecons_microcontroller/depends.txt @@ -0,0 +1 @@ +mesecons diff --git a/mods/mesecons/.mesecons_microcontroller/init.lua b/mods/mesecons/.mesecons_microcontroller/init.lua new file mode 100755 index 00000000..8c9f3b8c --- /dev/null +++ b/mods/mesecons/.mesecons_microcontroller/init.lua @@ -0,0 +1,696 @@ +EEPROM_SIZE = 255 + +for a = 0, 1 do +for b = 0, 1 do +for c = 0, 1 do +for d = 0, 1 do +local nodename = "mesecons_microcontroller:microcontroller"..tostring(d)..tostring(c)..tostring(b)..tostring(a) +local top = "jeija_microcontroller_top.png" +if tostring(a) == "1" then + top = top.."^jeija_microcontroller_LED_A.png" +end +if tostring(b) == "1" then + top = top.."^jeija_microcontroller_LED_B.png" +end +if tostring(c) == "1" then + top = top.."^jeija_microcontroller_LED_C.png" +end +if tostring(d) == "1" then + top = top.."^jeija_microcontroller_LED_D.png" +end +if tostring(d)..tostring(c)..tostring(b)..tostring(a) ~= "0000" then + groups = {dig_immediate=2, not_in_creative_inventory=1, mesecon = 3, overheat = 1} +else + groups = {dig_immediate=2, mesecon = 3, overheat = 1} +end +local rules={} +if (a == 1) then table.insert(rules, {x = -1, y = 0, z = 0}) end +if (b == 1) then table.insert(rules, {x = 0, y = 0, z = 1}) end +if (c == 1) then table.insert(rules, {x = 1, y = 0, z = 0}) end +if (d == 1) then table.insert(rules, {x = 0, y = 0, z = -1}) end + +local input_rules={} +if (a == 0) then table.insert(input_rules, {x = -1, y = 0, z = 0, name = "A"}) end +if (b == 0) then table.insert(input_rules, {x = 0, y = 0, z = 1, name = "B"}) end +if (c == 0) then table.insert(input_rules, {x = 1, y = 0, z = 0, name = "C"}) end +if (d == 0) then table.insert(input_rules, {x = 0, y = 0, z = -1, name = "D"}) end +mesecon:add_rules(nodename, rules) + +local mesecons = {effector = +{ + rules = input_rules, + action_change = function (pos, node, rulename, newstate) + yc_update_real_portstates(pos, node, rulename, newstate) + update_yc(pos) + end +}} +if nodename ~= "mesecons_microcontroller:microcontroller0000" then + mesecons.receptor = { + state = mesecon.state.on, + rules = rules + } +end + +minetest.register_node(nodename, { + description = "Microcontroller", + drawtype = "nodebox", + tiles = { + top, + "jeija_microcontroller_bottom.png", + "jeija_microcontroller_sides.png", + "jeija_microcontroller_sides.png", + "jeija_microcontroller_sides.png", + "jeija_microcontroller_sides.png" + }, + + sunlight_propagates = true, + paramtype = "light", + walkable = true, + groups = groups, + drop = "mesecons_microcontroller:microcontroller0000 1", + selection_box = { + type = "fixed", + fixed = { -8/16, -8/16, -8/16, 8/16, -5/16, 8/16 }, + }, + node_box = { + type = "fixed", + fixed = { + { -8/16, -8/16, -8/16, 8/16, -7/16, 8/16 }, -- bottom slab + { -5/16, -7/16, -5/16, 5/16, -6/16, 5/16 }, -- circuit board + { -3/16, -6/16, -3/16, 3/16, -5/16, 3/16 }, -- IC + } + }, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("code", "") + meta:set_string("formspec", "size[9,2.5]".. + "field[0.256,-0.2;9,2;code;Code:;]".. + "button[0 ,0.2;1.5,3;band;AND]".. + "button[1.5,0.2;1.5,3;bxor;XOR]".. + "button[3 ,0.2;1.5,3;bnot;NOT]".. + "button[4.5,0.2;1.5,3;bnand;NAND]".. + "button[6 ,0.2;1.5,3;btflop;T-Flop]".. + "button[7.5,0.2;1.5,3;brsflop;RS-Flop]".. + "button_exit[3.5,1;2,3;program;Program]") + meta:set_string("infotext", "Unprogrammed Microcontroller") + local r = "" + for i=1, EEPROM_SIZE+1 do r=r.."0" end --Generate a string with EEPROM_SIZE*"0" + meta:set_string("eeprom", r) + end, + on_receive_fields = function(pos, formanme, fields, sender) + local meta = minetest.get_meta(pos) + if fields.band then + fields.code = "sbi(C, A&B) :A and B are inputs, C is output" + elseif fields.bxor then + fields.code = "sbi(C, A~B) :A and B are inputs, C is output" + elseif fields.bnot then + fields.code = "sbi(B, !A) :A is input, B is output" + elseif fields.bnand then + fields.code = "sbi(C, !A|!B) :A and B are inputs, C is output" + elseif fields.btflop then + fields.code = "if(A)sbi(1,1);if(!A)sbi(B,!B)sbi(1,0); if(C)off(B,1); :A is input, B is output (Q), C is reset, toggles with falling edge" + elseif fields.brsflop then + fields.code = "if(A)on(C);if(B)off(C); :A is S (Set), B is R (Reset), C is output (R dominates)" + end + if fields.code == nil then return end + + meta:set_string("code", fields.code) + meta:set_string("formspec", "size[9,2.5]".. + "field[0.256,-0.2;9,2;code;Code:;"..minetest.formspec_escape(fields.code).."]".. + "button[0 ,0.2;1.5,3;band;AND]".. + "button[1.5,0.2;1.5,3;bxor;XOR]".. + "button[3 ,0.2;1.5,3;bnot;NOT]".. + "button[4.5,0.2;1.5,3;bnand;NAND]".. + "button[6 ,0.2;1.5,3;btflop;T-Flop]".. + "button[7.5,0.2;1.5,3;brsflop;RS-Flop]".. + "button_exit[3.5,1;2,3;program;Program]") + meta:set_string("infotext", "Programmed Microcontroller") + yc_reset (pos) + update_yc(pos) + end, + sounds = default.node_sound_stone_defaults(), + mesecons = mesecons, + after_dig_node = function (pos, node) + rules = mesecon:get_rules(node.name) + mesecon:receptor_off(pos, rules) + end, +}) +end +end +end +end + +minetest.register_craft({ + output = 'craft "mesecons_microcontroller:microcontroller0000" 2', + recipe = { + {'mesecons_materials:silicon', 'mesecons_materials:silicon', 'group:mesecon_conductor_craftable'}, + {'mesecons_materials:silicon', 'mesecons_materials:silicon', 'group:mesecon_conductor_craftable'}, + {'group:mesecon_conductor_craftable', 'group:mesecon_conductor_craftable', ''}, + } +}) + +function yc_reset(pos) + yc_action(pos, {a=false, b=false, c=false, d=false}) + local meta = minetest.get_meta(pos) + meta:set_int("afterid", 0) + local r = "" + for i=1, EEPROM_SIZE+1 do r=r.."0" end --Generate a string with EEPROM_SIZE*"0" + meta:set_string("eeprom", r) +end + +function update_yc(pos) + local meta = minetest.get_meta(pos) + + if (mesecon.do_overheat(pos)) then + minetest.remove_node(pos) + minetest.after(0.2, function (pos) + mesecon:receptor_off(pos, mesecon.rules.flat) + end , pos) -- wait for pending parsings + minetest.add_item(pos, "mesecons_microcontroller:microcontroller0000") + end + + local code = meta:get_string("code") + code = yc_code_remove_commentary(code) + code = string.gsub(code, " ", "") --Remove all spaces + code = string.gsub(code, " ", "") --Remove all tabs + if yc_parsecode(code, pos) == nil then + meta:set_string("infotext", "Code not valid!\n"..code) + else + meta:set_string("infotext", "Working Microcontroller\n"..code) + end +end + + +--Code Parsing +function yc_code_remove_commentary(code) + is_string = false + for i = 1, #code do + if code:sub(i, i) == '"' then + is_string = not is_string --toggle is_string + elseif code:sub(i, i) == ":" and not is_string then + return code:sub(1, i-1) + end + end + return code +end + +function yc_parsecode(code, pos) + local meta = minetest.get_meta(pos) + local endi = 1 + local Lreal = yc_get_real_portstates(pos) + local Lvirtual = yc_get_virtual_portstates(pos) + if Lvirtual == nil then return nil end + local c + local eeprom = meta:get_string("eeprom") + while true do + command, endi = parse_get_command(code, endi) + if command == nil then return nil end + if command == true then break end --end of code + if command == "if" then + r, endi = yc_command_if(code, endi, yc_merge_portstates(Lreal, Lvirtual), eeprom) + if r == nil then return nil end + if r == true then -- nothing + elseif r == false then + endi_new = yc_skip_to_else (code, endi) + if endi_new == nil then --else > not found + endi = yc_skip_to_endif(code, endi) + else + endi = endi_new + end + if endi == nil then return nil end + end + else + params, endi = parse_get_params(code, endi) + if params == nil then return nil end + end + if command == "on" then + L = yc_command_on (params, Lvirtual) + elseif command == "off" then + L = yc_command_off(params, Lvirtual) + elseif command == "print" then + local su = yc_command_print(params, eeprom, yc_merge_portstates(Lreal, Lvirtual)) + if su ~= true then return nil end + elseif command == "after" then + local su = yc_command_after(params, pos) + if su == nil then return nil end + elseif command == "sbi" then + new_eeprom, Lvirtual = yc_command_sbi (params, eeprom, yc_merge_portstates(Lreal, Lvirtual), Lvirtual) + if new_eeprom == nil then return nil + else eeprom = new_eeprom end + elseif command == "if" then --nothing + else + return nil + end + if Lvirtual == nil then return nil end + if eeprom == nil then return nil else + minetest.get_meta(pos):set_string("eeprom", eeprom) end + end + yc_action(pos, Lvirtual) + return true +end + +function parse_get_command(code, starti) + i = starti + s = nil + while s ~= "" do + s = string.sub(code, i, i) + if s == "(" then + return string.sub(code, starti, i-1), i + 1 -- i: ( i+1 after ( + end + if s == ";" and starti == i then + starti = starti + 1 + i = starti + elseif s == ">" then + starti = yc_skip_to_endif(code, starti) + if starti == nil then return nil end + i = starti + else + i = i + 1 + end + end + + if starti == i-1 then + return true, true + end + return nil, nil +end + +function parse_get_params(code, starti) + i = starti + s = nil + local params = {} + local is_string = false + while s ~= "" do + s = string.sub(code, i, i) + if code:sub(i, i) == '"' then + is_string = (is_string==false) --toggle is_string + end + if s == ")" and is_string == false then + table.insert(params, string.sub(code, starti, i-1)) -- i: ) i+1 after ) + return params, i + 1 + end + if s == "," and is_string == false then + table.insert(params, string.sub(code, starti, i-1)) -- i: ) i+1 after ) + starti = i + 1 + end + i = i + 1 + end + return nil, nil +end + +function yc_parse_get_eeprom_param(cond, starti) + i = starti + s = nil + local addr + while s ~= "" do + s = string.sub(cond, i, i) + if string.find("0123456789", s) == nil or s == "" then + addr = string.sub(cond, starti, i-1) -- i: last number i+1 after last number + return addr, i + end + if s == "," then return nil, nil end + i = i + 1 + end + return nil, nil +end + +function yc_skip_to_endif(code, starti) + local i = starti + local s = false + local open_ifs = 1 + while s ~= nil and s~= "" do + s = code:sub(i, i) + if s == "i" and code:sub(i+1, i+1) == "f" then --if in µCScript + open_ifs = open_ifs + 1 + end + if s == ";" then + open_ifs = open_ifs - 1 + end + if open_ifs == 0 then + return i + 1 + end + i = i + 1 + end + return nil +end + +function yc_skip_to_else(code, starti) + local i = starti + local s = false + local open_ifs = 1 + while s ~= nil and s~= "" do + s = code:sub(i, i) + if s == "i" and code:sub(i+1, i+1) == "f" then --if in µCScript + open_ifs = open_ifs + 1 + end + if s == ";" then + open_ifs = open_ifs - 1 + end + if open_ifs == 1 and s == ">" then + return i + 1 + end + i = i + 1 + end + return nil +end + +--Commands +function yc_command_on(params, L) + local rules = {} + for i, port in ipairs(params) do + L = yc_set_portstate (port, true, L) + end + return L +end + +function yc_command_off(params, L) + local rules = {} + for i, port in ipairs(params) do + L = yc_set_portstate (port, false, L) + end + return L +end + +function yc_command_print(params, eeprom, L) + local s = "" + for i, param in ipairs(params) do + if param:sub(1,1) == '"' and param:sub(#param, #param) == '"' then + s = s..param:sub(2, #param-1) + else + r = yc_command_parsecondition(param, L, eeprom) + if r == "1" or r == "0" then + s = s..r + else return nil end + end + end + print(s) --don't remove + return true +end + +function yc_command_sbi(params, eeprom, L, Lv) + if params[1]==nil or params[2]==nil or params[3] ~=nil then return nil end + local status = yc_command_parsecondition(params[2], L, eeprom) + + if status == nil then return nil, nil end + + if string.find("ABCD", params[1])~=nil and #params[1]==1 then --is a port + if status == "1" then + Lv = yc_set_portstate (params[1], true, Lv) + else + Lv = yc_set_portstate (params[1], false, Lv) + end + return eeprom, Lv; + end + + --is an eeprom address + new_eeprom = ""; + for i=1, #eeprom do + if tonumber(params[1])==i then + new_eeprom = new_eeprom..status + else + new_eeprom = new_eeprom..eeprom:sub(i, i) + end + end + return new_eeprom, Lv +end + +-- after (delay) +function yc_command_after(params, pos) + if params[1] == nil or params[2] == nil or params[3] ~= nil then return nil end + + --get time (maximum time is 200) + local time = tonumber(params[1]) + if time == nil or time > 200 then + return nil + end + + --get code in quotes "code" + if string.sub(params[2], 1, 1) ~= '"' or string.sub(params[2], #params[2], #params[2]) ~= '"' then return nil end + local code = string.sub(params[2], 2, #params[2] - 1) + + local afterid = math.random(10000) + local meta = minetest.get_meta(pos) + meta:set_int("afterid", afterid) + minetest.after(time, yc_command_after_execute, {pos = pos, code = code, afterid = afterid}) + return true +end + +function yc_command_after_execute(params) + local meta = minetest.get_meta(params.pos) + if meta:get_int("afterid") == params.afterid then --make sure the node has not been changed + if yc_parsecode(params.code, params.pos) == nil then + meta:set_string("infotext", "Code in after() not valid!") + else + if code ~= nil then + meta:set_string("infotext", "Working Microcontroller\n"..code) + else + meta:set_string("infotext", "Working Microcontroller") + end + end + end +end + +--If +function yc_command_if(code, starti, L, eeprom) + local cond, endi = yc_command_if_getcondition(code, starti) + if cond == nil then return nil end + + cond = yc_command_parsecondition(cond, L, eeprom) + + if cond == "0" then result = false + elseif cond == "1" then result = true + else result = nil end + if result == nil then end + return result, endi --endi from local cond, endi = yc_command_if_getcondition(code, starti) +end + +--Condition parsing +function yc_command_if_getcondition(code, starti) + i = starti + s = nil + local brackets = 1 --1 Bracket to close + while s ~= "" do + s = string.sub(code, i, i) + + if s == ")" then + brackets = brackets - 1 + end + + if s == "(" then + brackets = brackets + 1 + end + + if brackets == 0 then + return string.sub(code, starti, i-1), i + 1 -- i: ( i+1 after ( + end + + i = i + 1 + end + return nil, nil +end + +function yc_command_parsecondition(cond, L, eeprom) + cond = string.gsub(cond, "A", tonumber(L.a and 1 or 0)) + cond = string.gsub(cond, "B", tonumber(L.b and 1 or 0)) + cond = string.gsub(cond, "C", tonumber(L.c and 1 or 0)) + cond = string.gsub(cond, "D", tonumber(L.d and 1 or 0)) + + + local i = 1 + local l = string.len(cond) + while i<=l do + local s = cond:sub(i,i) + if s == "#" then + addr, endi = yc_parse_get_eeprom_param(cond, i+1) + buf = yc_eeprom_read(tonumber(addr), eeprom) + if buf == nil then return nil end + local call = cond:sub(i, endi-1) + cond = string.gsub(cond, call, buf) + i = 0 + l = string.len(cond) + end + i = i + 1 + end + + cond = string.gsub(cond, "!0", "1") + cond = string.gsub(cond, "!1", "0") + + local i = 2 + local l = string.len(cond) + while i<=l do + local s = cond:sub(i,i) + local b = tonumber(cond:sub(i-1, i-1)) + local a = tonumber(cond:sub(i+1, i+1)) + if cond:sub(i+1, i+1) == nil then break end + if s == "=" then + if a==nil then return nil end + if b==nil then return nil end + if a == b then buf = "1" end + if a ~= b then buf = "0" end + cond = string.gsub(cond, b..s..a, buf) + i = 1 + l = string.len(cond) + end + i = i + 1 + end + + local i = 2 + local l = string.len(cond) + while i<=l do + local s = cond:sub(i,i) + local b = tonumber(cond:sub(i-1, i-1)) + local a = tonumber(cond:sub(i+1, i+1)) + if cond:sub(i+1, i+1) == nil then break end + if s == "&" then + if a==nil then return nil end + local buf = ((a==1) and (b==1)) + if buf == true then buf = "1" end + if buf == false then buf = "0" end + cond = string.gsub(cond, b..s..a, buf) + i = 1 + l = string.len(cond) + end + if s == "|" then + if a==nil then return nil end + local buf = ((a == 1) or (b == 1)) + if buf == true then buf = "1" end + if buf == false then buf = "0" end + cond = string.gsub(cond, b..s..a, buf) + i = 1 + l = string.len(cond) + end + if s == "~" then + if a==nil then return nil end + local buf = (((a == 1) or (b == 1)) and not((a==1) and (b==1))) + if buf == true then buf = "1" end + if buf == false then buf = "0" end + cond = string.gsub(cond, b..s..a, buf) + i = 1 + l = string.len(cond) + end + i = i + 1 + end + + return cond +end + +--Virtual-Hardware functions +function yc_eeprom_read(number, eeprom) + if number == nil then return nil, nil end + value = eeprom:sub(number, number) + if value == nil then return nil, nil end + return value, endi +end + +--Real I/O functions +function yc_action(pos, L) --L-->Lvirtual + local Lv = yc_get_virtual_portstates(pos) + local name = "mesecons_microcontroller:microcontroller" + ..tonumber(L.d and 1 or 0) + ..tonumber(L.c and 1 or 0) + ..tonumber(L.b and 1 or 0) + ..tonumber(L.a and 1 or 0) + local node = minetest.get_node(pos) + minetest.swap_node(pos, {name = name, param2 = node.param2}) + + yc_action_setports(pos, L, Lv) +end + +function yc_action_setports(pos, L, Lv) + local name = "mesecons_microcontroller:microcontroller" + local rules + if Lv.a ~= L.a then + rules = mesecon:get_rules(name.."0001") + if L.a == true then mesecon:receptor_on(pos, rules) + else mesecon:receptor_off(pos, rules) end + end + if Lv.b ~= L.b then + rules = mesecon:get_rules(name.."0010") + if L.b == true then mesecon:receptor_on(pos, rules) + else mesecon:receptor_off(pos, rules) end + end + if Lv.c ~= L.c then + rules = mesecon:get_rules(name.."0100") + if L.c == true then mesecon:receptor_on(pos, rules) + else mesecon:receptor_off(pos, rules) end + end + if Lv.d ~= L.d then + rules = mesecon:get_rules(name.."1000") + if L.d == true then mesecon:receptor_on(pos, rules) + else mesecon:receptor_off(pos, rules) end + end +end + +function yc_set_portstate(port, state, L) + if port == "A" then L.a = state + elseif port == "B" then L.b = state + elseif port == "C" then L.c = state + elseif port == "D" then L.d = state + else return nil end + return L +end + +function yc_update_real_portstates(pos, node, rulename, newstate) + local meta = minetest.get_meta(pos) + if rulename == nil then + meta:set_int("real_portstates", 1) + return + end + local n = meta:get_int("real_portstates") - 1 + if n < 0 then + legacy_update_ports(pos) + n = meta:get_int("real_portstates") - 1 + end + local L = {} + for i = 1, 4 do + L[i] = n%2 + n = math.floor(n/2) + end + if rulename.x == nil then + for _, rname in ipairs(rulename) do + local port = ({4, 1, nil, 3, 2})[rname.x+2*rname.z+3] + L[port] = (newstate == "on") and 1 or 0 + end + else + local port = ({4, 1, nil, 3, 2})[rulename.x+2*rulename.z+3] + L[port] = (newstate == "on") and 1 or 0 + end + meta:set_int("real_portstates", 1 + L[1] + 2*L[2] + 4*L[3] + 8*L[4]) +end + +function yc_get_real_portstates(pos) -- determine if ports are powered (by itself or from outside) + local meta = minetest.get_meta(pos) + local L = {} + local n = meta:get_int("real_portstates") - 1 + if n < 0 then + return legacy_update_ports(pos) + end + for _, index in ipairs({"a", "b", "c", "d"}) do + L[index] = ((n%2) == 1) + n = math.floor(n/2) + end + return L +end + +function yc_get_virtual_portstates(pos) -- portstates according to the name + name = minetest.get_node(pos).name + b, a = string.find(name, ":microcontroller") + if a == nil then return nil end + a = a + 1 + + Lvirtual = {a=false, b=false, c=false, d=false} + if name:sub(a , a ) == "1" then Lvirtual.d = true end + if name:sub(a+1, a+1) == "1" then Lvirtual.c = true end + if name:sub(a+2, a+2) == "1" then Lvirtual.b = true end + if name:sub(a+3, a+3) == "1" then Lvirtual.a = true end + return Lvirtual +end + +function yc_merge_portstates(Lreal, Lvirtual) + local L = {a=false, b=false, c=false, d=false} + if Lvirtual.a or Lreal.a then L.a = true end + if Lvirtual.b or Lreal.b then L.b = true end + if Lvirtual.c or Lreal.c then L.c = true end + if Lvirtual.d or Lreal.d then L.d = true end + return L +end diff --git a/mods/mesecons/.mesecons_microcontroller/textures/jeija_microcontroller_LED_A.png b/mods/mesecons/.mesecons_microcontroller/textures/jeija_microcontroller_LED_A.png new file mode 100755 index 00000000..64526cf2 Binary files /dev/null and b/mods/mesecons/.mesecons_microcontroller/textures/jeija_microcontroller_LED_A.png differ diff --git a/mods/mesecons/.mesecons_microcontroller/textures/jeija_microcontroller_LED_B.png b/mods/mesecons/.mesecons_microcontroller/textures/jeija_microcontroller_LED_B.png new file mode 100755 index 00000000..1f7b4514 Binary files /dev/null and b/mods/mesecons/.mesecons_microcontroller/textures/jeija_microcontroller_LED_B.png differ diff --git a/mods/mesecons/.mesecons_microcontroller/textures/jeija_microcontroller_LED_C.png b/mods/mesecons/.mesecons_microcontroller/textures/jeija_microcontroller_LED_C.png new file mode 100755 index 00000000..399cc2c6 Binary files /dev/null and b/mods/mesecons/.mesecons_microcontroller/textures/jeija_microcontroller_LED_C.png differ diff --git a/mods/mesecons/.mesecons_microcontroller/textures/jeija_microcontroller_LED_D.png b/mods/mesecons/.mesecons_microcontroller/textures/jeija_microcontroller_LED_D.png new file mode 100755 index 00000000..506389c0 Binary files /dev/null and b/mods/mesecons/.mesecons_microcontroller/textures/jeija_microcontroller_LED_D.png differ diff --git a/mods/mesecons/.mesecons_microcontroller/textures/jeija_microcontroller_bottom.png b/mods/mesecons/.mesecons_microcontroller/textures/jeija_microcontroller_bottom.png new file mode 100755 index 00000000..3a9161eb Binary files /dev/null and b/mods/mesecons/.mesecons_microcontroller/textures/jeija_microcontroller_bottom.png differ diff --git a/mods/mesecons/.mesecons_microcontroller/textures/jeija_microcontroller_sides.png b/mods/mesecons/.mesecons_microcontroller/textures/jeija_microcontroller_sides.png new file mode 100755 index 00000000..b367644b Binary files /dev/null and b/mods/mesecons/.mesecons_microcontroller/textures/jeija_microcontroller_sides.png differ diff --git a/mods/mesecons/.mesecons_microcontroller/textures/jeija_microcontroller_top.png b/mods/mesecons/.mesecons_microcontroller/textures/jeija_microcontroller_top.png new file mode 100755 index 00000000..438c9346 Binary files /dev/null and b/mods/mesecons/.mesecons_microcontroller/textures/jeija_microcontroller_top.png differ diff --git a/mods/mesecons/.mesecons_movestones/depends.txt b/mods/mesecons/.mesecons_movestones/depends.txt new file mode 100755 index 00000000..a596cf80 --- /dev/null +++ b/mods/mesecons/.mesecons_movestones/depends.txt @@ -0,0 +1,3 @@ +mesecons +mesecons_materials +mesecons_mvps diff --git a/mods/mesecons/.mesecons_movestones/init.lua b/mods/mesecons/.mesecons_movestones/init.lua new file mode 100755 index 00000000..e31f2d27 --- /dev/null +++ b/mods/mesecons/.mesecons_movestones/init.lua @@ -0,0 +1,216 @@ +-- MOVESTONE +-- Non-sticky: +-- Moves along mesecon lines +-- Pushes all blocks in front of it +-- +-- Sticky one +-- Moves along mesecon lines +-- Pushes all block in front of it +-- Pull all blocks in its back + +function mesecon:get_movestone_direction(pos) + getactivated = 0 + local lpos + local getactivated = 0 + local rules = { + {x=0, y=1, z=-1}, + {x=0, y=0, z=-1}, + {x=0, y=-1, z=-1}, + {x=0, y=1, z=1}, + {x=0, y=-1, z=1}, + {x=0, y=0, z=1}, + {x=1, y=0, z=0}, + {x=1, y=1, z=0}, + {x=1, y=-1, z=0}, + {x=-1, y=1, z=0}, + {x=-1, y=-1, z=0}, + {x=-1, y=0, z=0}} + + lpos = {x=pos.x+1, y=pos.y, z=pos.z} + for n = 1, 3 do + if mesecon:is_power_on(lpos, rules[n].x, rules[n].y, rules[n].z) then + return {x=0, y=0, z=-1} + end + end + + lpos = {x = pos.x-1, y = pos.y, z = pos.z} + for n=4, 6 do + if mesecon:is_power_on(lpos, rules[n].x, rules[n].y, rules[n].z) then + return {x=0, y=0, z=1} + end + end + + lpos = {x = pos.x, y = pos.y, z = pos.z+1} + for n=7, 9 do + if mesecon:is_power_on(lpos, rules[n].x, rules[n].y, rules[n].z) then + return {x=-1, y=0, z=0} + end + end + + lpos = {x = pos.x, y = pos.y, z = pos.z-1} + for n=10, 12 do + if mesecon:is_power_on(lpos, rules[n].x, rules[n].y, rules[n].z) then + return {x=1, y=0, z=0} + end + end +end + +minetest.register_node("mesecons_movestones:movestone", { + tiles = {"jeija_movestone_side.png", "jeija_movestone_side.png", "jeija_movestone_side.png", "jeija_movestone_side.png", "jeija_movestone_arrows.png", "jeija_movestone_arrows.png"}, + paramtype2 = "facedir", + legacy_facedir_simple = true, + groups = {cracky=3}, + description="Movestone", + sounds = default.node_sound_stone_defaults(), + mesecons = {effector = { + action_on = function (pos, node) + local direction=mesecon:get_movestone_direction(pos) + if not direction then return end + minetest.remove_node(pos) + mesecon:update_autoconnect(pos) + minetest.add_entity(pos, "mesecons_movestones:movestone_entity") + end + }} +}) + +minetest.register_entity("mesecons_movestones:movestone_entity", { + physical = false, + visual = "sprite", + textures = {"jeija_movestone_side.png", "jeija_movestone_side.png", "jeija_movestone_side.png", "jeija_movestone_side.png", "jeija_movestone_arrows.png", "jeija_movestone_arrows.png"}, + collisionbox = {-0.5,-0.5,-0.5, 0.5, 0.5, 0.5}, + visual = "cube", + lastdir = {x=0, y=0, z=0}, + + on_punch = function(self, hitter) + self.object:remove() + hitter:get_inventory():add_item("main", "mesecons_movestones:movestone") + end, + + on_step = function(self, dtime) + local pos = self.object:getpos() + pos.x, pos.y, pos.z = math.floor(pos.x+0.5), math.floor(pos.y+0.5), math.floor(pos.z+0.5) + local direction = mesecon:get_movestone_direction(pos) + + if not direction then -- no mesecon power + --push only solid nodes + local name = minetest.get_node(pos).name + if name ~= "air" and name ~= "ignore" + and ((not minetest.registered_nodes[name]) + or minetest.registered_nodes[name].liquidtype == "none") then + mesecon:mvps_push(pos, self.lastdir, MOVESTONE_MAXIMUM_PUSH) + end + minetest.add_node(pos, {name="mesecons_movestones:movestone"}) + self.object:remove() + return + end + + local success, stack, oldstack = + mesecon:mvps_push(pos, direction, MOVESTONE_MAXIMUM_PUSH) + if not success then -- Too large stack/stopper in the way + minetest.add_node(pos, {name="mesecons_movestones:movestone"}) + self.object:remove() + return + else + mesecon:mvps_process_stack (stack) + mesecon:mvps_move_objects (pos, direction, oldstack) + self.lastdir = direction + end + + self.object:setvelocity({x=direction.x*2, y=direction.y*2, z=direction.z*2}) + end, +}) + +minetest.register_craft({ + output = "mesecons_movestones:movestone 2", + recipe = { + {"default:stone", "default:stone", "default:stone"}, + {"group:mesecon_conductor_craftable", "group:mesecon_conductor_craftable", "group:mesecon_conductor_craftable"}, + {"default:stone", "default:stone", "default:stone"}, + } +}) + + + +-- STICKY_MOVESTONE + +minetest.register_node("mesecons_movestones:sticky_movestone", { + tiles = {"jeija_movestone_side.png", "jeija_movestone_side.png", "jeija_movestone_side.png", "jeija_movestone_side.png", "jeija_sticky_movestone.png", "jeija_sticky_movestone.png"}, + inventory_image = minetest.inventorycube("jeija_sticky_movestone.png", "jeija_movestone_side.png", "jeija_movestone_side.png"), + paramtype2 = "facedir", + legacy_facedir_simple = true, + groups = {cracky=3}, + description="Sticky Movestone", + sounds = default.node_sound_stone_defaults(), + mesecons = {effector = { + action_on = function (pos, node) + local direction=mesecon:get_movestone_direction(pos) + if not direction then return end + minetest.remove_node(pos) + mesecon:update_autoconnect(pos) + minetest.add_entity(pos, "mesecons_movestones:sticky_movestone_entity") + end + }} +}) + +minetest.register_craft({ + output = "mesecons_movestones:sticky_movestone 2", + recipe = { + {"mesecons_materials:glue", "mesecons_movestones:movestone", "mesecons_materials:glue"}, + } +}) + +minetest.register_entity("mesecons_movestones:sticky_movestone_entity", { + physical = false, + visual = "sprite", + textures = {"jeija_movestone_side.png", "jeija_movestone_side.png", "jeija_movestone_side.png", "jeija_movestone_side.png", "jeija_sticky_movestone.png", "jeija_sticky_movestone.png"}, + collisionbox = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + visual = "cube", + lastdir = {x=0, y=0, z=0}, + + on_punch = function(self, hitter) + self.object:remove() + hitter:get_inventory():add_item("main", 'mesecons_movestones:sticky_movestone') + end, + + on_step = function(self, dtime) + local pos = self.object:getpos() + pos.x, pos.y, pos.z = math.floor(pos.x+0.5), math.floor(pos.y+0.5), math.floor(pos.z+0.5) + local direction = mesecon:get_movestone_direction(pos) + + if not direction then -- no mesecon power + --push only solid nodes + local name = minetest.get_node(pos).name + if name ~= "air" and name ~= "ignore" + and ((not minetest.registered_nodes[name]) + or minetest.registered_nodes[name].liquidtype == "none") then + mesecon:mvps_push(pos, self.lastdir, MOVESTONE_MAXIMUM_PUSH) + --STICKY + mesecon:mvps_pull_all(pos, self.lastdir) + end + minetest.add_node(pos, {name="mesecons_movestones:sticky_movestone"}) + self.object:remove() + return + end + + local success, stack, oldstack = + mesecon:mvps_push(pos, direction, MOVESTONE_MAXIMUM_PUSH) + if not success then -- Too large stack/stopper in the way + minetest.add_node(pos, {name="mesecons_movestones:sticky_movestone"}) + self.object:remove() + return + else + mesecon:mvps_process_stack (stack) + mesecon:mvps_move_objects (pos, direction, oldstack) + self.lastdir = direction + end + + self.object:setvelocity({x=direction.x*2, y=direction.y*2, z=direction.z*2}) + + --STICKY + mesecon:mvps_pull_all(pos, direction) + end, +}) + + +mesecon:register_mvps_unmov("mesecons_movestones:movestone_entity") +mesecon:register_mvps_unmov("mesecons_movestones:sticky_movestone_entity") diff --git a/mods/mesecons/.mesecons_movestones/textures/jeija_movestone_arrows.png b/mods/mesecons/.mesecons_movestones/textures/jeija_movestone_arrows.png new file mode 100755 index 00000000..358c357f Binary files /dev/null and b/mods/mesecons/.mesecons_movestones/textures/jeija_movestone_arrows.png differ diff --git a/mods/mesecons/.mesecons_movestones/textures/jeija_movestone_side.png b/mods/mesecons/.mesecons_movestones/textures/jeija_movestone_side.png new file mode 100755 index 00000000..de753ef9 Binary files /dev/null and b/mods/mesecons/.mesecons_movestones/textures/jeija_movestone_side.png differ diff --git a/mods/mesecons/.mesecons_movestones/textures/jeija_sticky_movestone.png b/mods/mesecons/.mesecons_movestones/textures/jeija_sticky_movestone.png new file mode 100755 index 00000000..8953cf12 Binary files /dev/null and b/mods/mesecons/.mesecons_movestones/textures/jeija_sticky_movestone.png differ diff --git a/mods/mesecons/.mesecons_noteblock/depends.txt b/mods/mesecons/.mesecons_noteblock/depends.txt new file mode 100755 index 00000000..acaa9241 --- /dev/null +++ b/mods/mesecons/.mesecons_noteblock/depends.txt @@ -0,0 +1 @@ +mesecons diff --git a/mods/mesecons/.mesecons_noteblock/init.lua b/mods/mesecons/.mesecons_noteblock/init.lua new file mode 100755 index 00000000..39710760 --- /dev/null +++ b/mods/mesecons/.mesecons_noteblock/init.lua @@ -0,0 +1,79 @@ +minetest.register_node("mesecons_noteblock:noteblock", { + description = "Noteblock", + tiles = {"mesecons_noteblock.png"}, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + drawtype = "allfaces_optional", + visual_scale = 1.3, + paramtype="light", + after_place_node = function(pos) + minetest.add_node(pos, {name="mesecons_noteblock:noteblock", param2=0}) + end, + on_punch = function (pos, node) -- change sound when punched + local param2 = node.param2+1 + if param2==12 then param2=0 end + minetest.add_node(pos, {name = node.name, param2 = param2}) + mesecon.noteblock_play(pos, param2) + end, + sounds = default.node_sound_wood_defaults(), + mesecons = {effector = { -- play sound when activated + action_on = function (pos, node) + mesecon.noteblock_play(pos, node.param2) + end + }} +}) + +minetest.register_craft({ + output = "mesecons_noteblock:noteblock 1", + recipe = { + {"group:wood", "group:wood", "group:wood"}, + {"group:mesecon_conductor_craftable", "default:steel_ingot", "group:mesecon_conductor_craftable"}, + {"group:wood", "group:wood", "group:wood"}, + } +}) + +mesecon.noteblock_play = function (pos, param2) + local soundname + if param2==8 then + soundname="mesecons_noteblock_a" + elseif param2==9 then + soundname="mesecons_noteblock_asharp" + elseif param2==10 then + soundname="mesecons_noteblock_b" + elseif param2==11 then + soundname="mesecons_noteblock_c" + elseif param2==0 then + soundname="mesecons_noteblock_csharp" + elseif param2==1 then + soundname="mesecons_noteblock_d" + elseif param2==2 then + soundname="mesecons_noteblock_dsharp" + elseif param2==3 then + soundname="mesecons_noteblock_e" + elseif param2==4 then + soundname="mesecons_noteblock_f" + elseif param2==5 then + soundname="mesecons_noteblock_fsharp" + elseif param2==6 then + soundname="mesecons_noteblock_g" + elseif param2==7 then + soundname="mesecons_noteblock_gsharp" + end + local block_below_name = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name + if block_below_name == "default:glass" then + soundname="mesecons_noteblock_hihat" + end + if block_below_name == "default:stone" then + soundname="mesecons_noteblock_kick" + end + if block_below_name == "default:chest" then + soundname="mesecons_noteblock_snare" + end + if block_below_name == "default:tree" then + soundname="mesecons_noteblock_crash" + end + if block_below_name == "default:wood" then + soundname="mesecons_noteblock_litecrash" + end + minetest.sound_play(soundname, + {pos = pos, gain = 1.0, max_hear_distance = 32,}) +end diff --git a/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_a.ogg b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_a.ogg new file mode 100755 index 00000000..5668a8aa Binary files /dev/null and b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_a.ogg differ diff --git a/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_asharp.ogg b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_asharp.ogg new file mode 100755 index 00000000..4cd2dccf Binary files /dev/null and b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_asharp.ogg differ diff --git a/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_b.ogg b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_b.ogg new file mode 100755 index 00000000..621a6b54 Binary files /dev/null and b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_b.ogg differ diff --git a/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_c.ogg b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_c.ogg new file mode 100755 index 00000000..e2359789 Binary files /dev/null and b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_c.ogg differ diff --git a/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_crash.ogg b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_crash.ogg new file mode 100755 index 00000000..d33027a7 Binary files /dev/null and b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_crash.ogg differ diff --git a/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_csharp.ogg b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_csharp.ogg new file mode 100755 index 00000000..50ba8351 Binary files /dev/null and b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_csharp.ogg differ diff --git a/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_d.ogg b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_d.ogg new file mode 100755 index 00000000..f1227bac Binary files /dev/null and b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_d.ogg differ diff --git a/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_dsharp.ogg b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_dsharp.ogg new file mode 100755 index 00000000..817728e7 Binary files /dev/null and b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_dsharp.ogg differ diff --git a/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_e.ogg b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_e.ogg new file mode 100755 index 00000000..c91d1a6d Binary files /dev/null and b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_e.ogg differ diff --git a/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_f.ogg b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_f.ogg new file mode 100755 index 00000000..3f1eaea5 Binary files /dev/null and b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_f.ogg differ diff --git a/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_fsharp.ogg b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_fsharp.ogg new file mode 100755 index 00000000..9f137979 Binary files /dev/null and b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_fsharp.ogg differ diff --git a/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_g.ogg b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_g.ogg new file mode 100755 index 00000000..d2a90dd9 Binary files /dev/null and b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_g.ogg differ diff --git a/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_gsharp.ogg b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_gsharp.ogg new file mode 100755 index 00000000..6177b8cf Binary files /dev/null and b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_gsharp.ogg differ diff --git a/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_hihat.ogg b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_hihat.ogg new file mode 100755 index 00000000..d05a8703 Binary files /dev/null and b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_hihat.ogg differ diff --git a/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_kick.ogg b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_kick.ogg new file mode 100755 index 00000000..108e89e3 Binary files /dev/null and b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_kick.ogg differ diff --git a/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_litecrash.ogg b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_litecrash.ogg new file mode 100755 index 00000000..21aecfa6 Binary files /dev/null and b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_litecrash.ogg differ diff --git a/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_snare.ogg b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_snare.ogg new file mode 100755 index 00000000..25d7b783 Binary files /dev/null and b/mods/mesecons/.mesecons_noteblock/sounds/mesecons_noteblock_snare.ogg differ diff --git a/mods/mesecons/.mesecons_noteblock/textures/mesecons_noteblock.png b/mods/mesecons/.mesecons_noteblock/textures/mesecons_noteblock.png new file mode 100755 index 00000000..d13e61b1 Binary files /dev/null and b/mods/mesecons/.mesecons_noteblock/textures/mesecons_noteblock.png differ diff --git a/mods/mesecons/LICENSE.txt b/mods/mesecons/LICENSE.txt new file mode 100755 index 00000000..0d2fd188 --- /dev/null +++ b/mods/mesecons/LICENSE.txt @@ -0,0 +1,532 @@ +The LGPLv3 applies to all code in this project. +The CC-BY-SA-3.0 license applies to textures and any other content in this project which is not source code. + +================================================================= + +GNU LESSER 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. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser 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 +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. + +================================================================= + +Creative Commons Legal Code + +Attribution-ShareAlike 3.0 Unported + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR + DAMAGES RESULTING FROM ITS USE. + +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE +COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY +COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS +AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE +TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY +BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS +CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND +CONDITIONS. + +1. Definitions + + a. "Adaptation" means a work based upon the Work, or upon the Work and + other pre-existing works, such as a translation, adaptation, + derivative work, arrangement of music or other alterations of a + literary or artistic work, or phonogram or performance and includes + cinematographic adaptations or any other form in which the Work may be + recast, transformed, or adapted including in any form recognizably + derived from the original, except that a work that constitutes a + Collection will not be considered an Adaptation for the purpose of + this License. For the avoidance of doubt, where the Work is a musical + work, performance or phonogram, the synchronization of the Work in + timed-relation with a moving image ("synching") will be considered an + Adaptation for the purpose of this License. + b. "Collection" means a collection of literary or artistic works, such as + encyclopedias and anthologies, or performances, phonograms or + broadcasts, or other works or subject matter other than works listed + in Section 1(f) below, which, by reason of the selection and + arrangement of their contents, constitute intellectual creations, in + which the Work is included in its entirety in unmodified form along + with one or more other contributions, each constituting separate and + independent works in themselves, which together are assembled into a + collective whole. A work that constitutes a Collection will not be + considered an Adaptation (as defined below) for the purposes of this + License. + c. "Creative Commons Compatible License" means a license that is listed + at http://creativecommons.org/compatiblelicenses that has been + approved by Creative Commons as being essentially equivalent to this + License, including, at a minimum, because that license: (i) contains + terms that have the same purpose, meaning and effect as the License + Elements of this License; and, (ii) explicitly permits the relicensing + of adaptations of works made available under that license under this + License or a Creative Commons jurisdiction license with the same + License Elements as this License. + d. "Distribute" means to make available to the public the original and + copies of the Work or Adaptation, as appropriate, through sale or + other transfer of ownership. + e. "License Elements" means the following high-level license attributes + as selected by Licensor and indicated in the title of this License: + Attribution, ShareAlike. + f. "Licensor" means the individual, individuals, entity or entities that + offer(s) the Work under the terms of this License. + g. "Original Author" means, in the case of a literary or artistic work, + the individual, individuals, entity or entities who created the Work + or if no individual or entity can be identified, the publisher; and in + addition (i) in the case of a performance the actors, singers, + musicians, dancers, and other persons who act, sing, deliver, declaim, + play in, interpret or otherwise perform literary or artistic works or + expressions of folklore; (ii) in the case of a phonogram the producer + being the person or legal entity who first fixes the sounds of a + performance or other sounds; and, (iii) in the case of broadcasts, the + organization that transmits the broadcast. + h. "Work" means the literary and/or artistic work offered under the terms + of this License including without limitation any production in the + literary, scientific and artistic domain, whatever may be the mode or + form of its expression including digital form, such as a book, + pamphlet and other writing; a lecture, address, sermon or other work + of the same nature; a dramatic or dramatico-musical work; a + choreographic work or entertainment in dumb show; a musical + composition with or without words; a cinematographic work to which are + assimilated works expressed by a process analogous to cinematography; + a work of drawing, painting, architecture, sculpture, engraving or + lithography; a photographic work to which are assimilated works + expressed by a process analogous to photography; a work of applied + art; an illustration, map, plan, sketch or three-dimensional work + relative to geography, topography, architecture or science; a + performance; a broadcast; a phonogram; a compilation of data to the + extent it is protected as a copyrightable work; or a work performed by + a variety or circus performer to the extent it is not otherwise + considered a literary or artistic work. + i. "You" means an individual or entity exercising rights under this + License who has not previously violated the terms of this License with + respect to the Work, or who has received express permission from the + Licensor to exercise rights under this License despite a previous + violation. + j. "Publicly Perform" means to perform public recitations of the Work and + to communicate to the public those public recitations, by any means or + process, including by wire or wireless means or public digital + performances; to make available to the public Works in such a way that + members of the public may access these Works from a place and at a + place individually chosen by them; to perform the Work to the public + by any means or process and the communication to the public of the + performances of the Work, including by public digital performance; to + broadcast and rebroadcast the Work by any means including signs, + sounds or images. + k. "Reproduce" means to make copies of the Work by any means including + without limitation by sound or visual recordings and the right of + fixation and reproducing fixations of the Work, including storage of a + protected performance or phonogram in digital form or other electronic + medium. + +2. Fair Dealing Rights. Nothing in this License is intended to reduce, +limit, or restrict any uses free from copyright or rights arising from +limitations or exceptions that are provided for in connection with the +copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, +Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +perpetual (for the duration of the applicable copyright) license to +exercise the rights in the Work as stated below: + + a. to Reproduce the Work, to incorporate the Work into one or more + Collections, and to Reproduce the Work as incorporated in the + Collections; + b. to create and Reproduce Adaptations provided that any such Adaptation, + including any translation in any medium, takes reasonable steps to + clearly label, demarcate or otherwise identify that changes were made + to the original Work. For example, a translation could be marked "The + original work was translated from English to Spanish," or a + modification could indicate "The original work has been modified."; + c. to Distribute and Publicly Perform the Work including as incorporated + in Collections; and, + d. to Distribute and Publicly Perform Adaptations. + e. For the avoidance of doubt: + + i. Non-waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme cannot be waived, the Licensor + reserves the exclusive right to collect such royalties for any + exercise by You of the rights granted under this License; + ii. Waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme can be waived, the Licensor waives the + exclusive right to collect such royalties for any exercise by You + of the rights granted under this License; and, + iii. Voluntary License Schemes. The Licensor waives the right to + collect royalties, whether individually or, in the event that the + Licensor is a member of a collecting society that administers + voluntary licensing schemes, via that society, from any exercise + by You of the rights granted under this License. + +The above rights may be exercised in all media and formats whether now +known or hereafter devised. The above rights include the right to make +such modifications as are technically necessary to exercise the rights in +other media and formats. Subject to Section 8(f), all rights not expressly +granted by Licensor are hereby reserved. + +4. Restrictions. The license granted in Section 3 above is expressly made +subject to and limited by the following restrictions: + + a. You may Distribute or Publicly Perform the Work only under the terms + of this License. You must include a copy of, or the Uniform Resource + Identifier (URI) for, this License with every copy of the Work You + Distribute or Publicly Perform. You may not offer or impose any terms + on the Work that restrict the terms of this License or the ability of + the recipient of the Work to exercise the rights granted to that + recipient under the terms of the License. You may not sublicense the + Work. You must keep intact all notices that refer to this License and + to the disclaimer of warranties with every copy of the Work You + Distribute or Publicly Perform. When You Distribute or Publicly + Perform the Work, You may not impose any effective technological + measures on the Work that restrict the ability of a recipient of the + Work from You to exercise the rights granted to that recipient under + the terms of the License. This Section 4(a) applies to the Work as + incorporated in a Collection, but this does not require the Collection + apart from the Work itself to be made subject to the terms of this + License. If You create a Collection, upon notice from any Licensor You + must, to the extent practicable, remove from the Collection any credit + as required by Section 4(c), as requested. If You create an + Adaptation, upon notice from any Licensor You must, to the extent + practicable, remove from the Adaptation any credit as required by + Section 4(c), as requested. + b. You may Distribute or Publicly Perform an Adaptation only under the + terms of: (i) this License; (ii) a later version of this License with + the same License Elements as this License; (iii) a Creative Commons + jurisdiction license (either this or a later license version) that + contains the same License Elements as this License (e.g., + Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible + License. If you license the Adaptation under one of the licenses + mentioned in (iv), you must comply with the terms of that license. If + you license the Adaptation under the terms of any of the licenses + mentioned in (i), (ii) or (iii) (the "Applicable License"), you must + comply with the terms of the Applicable License generally and the + following provisions: (I) You must include a copy of, or the URI for, + the Applicable License with every copy of each Adaptation You + Distribute or Publicly Perform; (II) You may not offer or impose any + terms on the Adaptation that restrict the terms of the Applicable + License or the ability of the recipient of the Adaptation to exercise + the rights granted to that recipient under the terms of the Applicable + License; (III) You must keep intact all notices that refer to the + Applicable License and to the disclaimer of warranties with every copy + of the Work as included in the Adaptation You Distribute or Publicly + Perform; (IV) when You Distribute or Publicly Perform the Adaptation, + You may not impose any effective technological measures on the + Adaptation that restrict the ability of a recipient of the Adaptation + from You to exercise the rights granted to that recipient under the + terms of the Applicable License. This Section 4(b) applies to the + Adaptation as incorporated in a Collection, but this does not require + the Collection apart from the Adaptation itself to be made subject to + the terms of the Applicable License. + c. If You Distribute, or Publicly Perform the Work or any Adaptations or + Collections, You must, unless a request has been made pursuant to + Section 4(a), keep intact all copyright notices for the Work and + provide, reasonable to the medium or means You are utilizing: (i) the + name of the Original Author (or pseudonym, if applicable) if supplied, + and/or if the Original Author and/or Licensor designate another party + or parties (e.g., a sponsor institute, publishing entity, journal) for + attribution ("Attribution Parties") in Licensor's copyright notice, + terms of service or by other reasonable means, the name of such party + or parties; (ii) the title of the Work if supplied; (iii) to the + extent reasonably practicable, the URI, if any, that Licensor + specifies to be associated with the Work, unless such URI does not + refer to the copyright notice or licensing information for the Work; + and (iv) , consistent with Ssection 3(b), in the case of an + Adaptation, a credit identifying the use of the Work in the Adaptation + (e.g., "French translation of the Work by Original Author," or + "Screenplay based on original Work by Original Author"). The credit + required by this Section 4(c) may be implemented in any reasonable + manner; provided, however, that in the case of a Adaptation or + Collection, at a minimum such credit will appear, if a credit for all + contributing authors of the Adaptation or Collection appears, then as + part of these credits and in a manner at least as prominent as the + credits for the other contributing authors. For the avoidance of + doubt, You may only use the credit required by this Section for the + purpose of attribution in the manner set out above and, by exercising + Your rights under this License, You may not implicitly or explicitly + assert or imply any connection with, sponsorship or endorsement by the + Original Author, Licensor and/or Attribution Parties, as appropriate, + of You or Your use of the Work, without the separate, express prior + written permission of the Original Author, Licensor and/or Attribution + Parties. + d. Except as otherwise agreed in writing by the Licensor or as may be + otherwise permitted by applicable law, if You Reproduce, Distribute or + Publicly Perform the Work either by itself or as part of any + Adaptations or Collections, You must not distort, mutilate, modify or + take other derogatory action in relation to the Work which would be + prejudicial to the Original Author's honor or reputation. Licensor + agrees that in those jurisdictions (e.g. Japan), in which any exercise + of the right granted in Section 3(b) of this License (the right to + make Adaptations) would be deemed to be a distortion, mutilation, + modification or other derogatory action prejudicial to the Original + Author's honor and reputation, the Licensor will waive or not assert, + as appropriate, this Section, to the fullest extent permitted by the + applicable national law, to enable You to reasonably exercise Your + right under Section 3(b) of this License (right to make Adaptations) + but not otherwise. + +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR +OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY +KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, +INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, +FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF +LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, +WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION +OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE +LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR +ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES +ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS +BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + + a. This License and the rights granted hereunder will terminate + automatically upon any breach by You of the terms of this License. + Individuals or entities who have received Adaptations or Collections + from You under this License, however, will not have their licenses + terminated provided such individuals or entities remain in full + compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will + survive any termination of this License. + b. Subject to the above terms and conditions, the license granted here is + perpetual (for the duration of the applicable copyright in the Work). + Notwithstanding the above, Licensor reserves the right to release the + Work under different license terms or to stop distributing the Work at + any time; provided, however that any such election will not serve to + withdraw this License (or any other license that has been, or is + required to be, granted under the terms of this License), and this + License will continue in full force and effect unless terminated as + stated above. + +8. Miscellaneous + + a. Each time You Distribute or Publicly Perform the Work or a Collection, + the Licensor offers to the recipient a license to the Work on the same + terms and conditions as the license granted to You under this License. + b. Each time You Distribute or Publicly Perform an Adaptation, Licensor + offers to the recipient a license to the original Work on the same + terms and conditions as the license granted to You under this License. + c. If any provision of this License is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability of + the remainder of the terms of this License, and without further action + by the parties to this agreement, such provision shall be reformed to + the minimum extent necessary to make such provision valid and + enforceable. + d. No term or provision of this License shall be deemed waived and no + breach consented to unless such waiver or consent shall be in writing + and signed by the party to be charged with such waiver or consent. + e. This License constitutes the entire agreement between the parties with + respect to the Work licensed here. There are no understandings, + agreements or representations with respect to the Work not specified + here. Licensor shall not be bound by any additional provisions that + may appear in any communication from You. This License may not be + modified without the mutual written agreement of the Licensor and You. + f. The rights granted under, and the subject matter referenced, in this + License were drafted utilizing the terminology of the Berne Convention + for the Protection of Literary and Artistic Works (as amended on + September 28, 1979), the Rome Convention of 1961, the WIPO Copyright + Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 + and the Universal Copyright Convention (as revised on July 24, 1971). + These rights and subject matter take effect in the relevant + jurisdiction in which the License terms are sought to be enforced + according to the corresponding provisions of the implementation of + those treaty provisions in the applicable national law. If the + standard suite of rights granted under applicable copyright law + includes additional rights not granted under this License, such + additional rights are deemed to be included in the License; this + License is not intended to restrict the license of any rights under + applicable law. + + +Creative Commons Notice + + Creative Commons is not a party to this License, and makes no warranty + whatsoever in connection with the Work. Creative Commons will not be + liable to You or any party on any legal theory for any damages + whatsoever, including without limitation any general, special, + incidental or consequential damages arising in connection to this + license. Notwithstanding the foregoing two (2) sentences, if Creative + Commons has expressly identified itself as the Licensor hereunder, it + shall have all rights and obligations of Licensor. + + Except for the limited purpose of indicating to the public that the + Work is licensed under the CCPL, Creative Commons does not authorize + the use by either party of the trademark "Creative Commons" or any + related trademark or logo of Creative Commons without the prior + written consent of Creative Commons. Any permitted use will be in + compliance with Creative Commons' then-current trademark usage + guidelines, as may be published on its website or otherwise made + available upon request from time to time. For the avoidance of doubt, + this trademark restriction does not form part of the License. + + Creative Commons may be contacted at http://creativecommons.org/. diff --git a/mods/mesecons/README.md b/mods/mesecons/README.md new file mode 100755 index 00000000..5de72c77 --- /dev/null +++ b/mods/mesecons/README.md @@ -0,0 +1,78 @@ + ######################################################################## + ## __ __ _____ _____ _____ _____ _____ _ _ _____ ## + ## | \ / | | ___| | ___| | ___| | ___| | _ | | \ | | | ___| ## + ## | \/ | | |___ | |___ | |___ | | | | | | | \| | | |___ ## + ## | |\__/| | | ___| |___ | | ___| | | | | | | | | |___ | ## + ## | | | | | |___ ___| | | |___ | |___ | |_| | | |\ | ___| | ## + ## |_| |_| |_____| |_____| |_____| |_____| |_____| |_| \_| |_____| ## + ## ## + ######################################################################## + +MESECONS by Jeija and contributors + +Mezzee-what? +------------ +[Mesecons](http://mesecons.net/)! They're yellow, they're conductive, and they'll add a whole new dimension to Minetest's gameplay. + +Mesecons is a mod for [Minetest](http://minetest.net/) that implements a ton of items related to digital circuitry, such as wires, buttons, lights, and even programmable controllers. Among other things, there are also pistons, solar panels, pressure plates, and note blocks. + +Mesecons has a similar goal to Redstone in Minecraft, but works in its own way, with different rules and mechanics. + +OK, I want in. +-------------- +Go get it! + +[DOWNLOADS PAGE](http://mesecons.net/downloads.php) + +Now go ahead and install it like any other Minetest mod. Don't know how? Check out [the wonderful page about it](http://wiki.minetest.com/wiki/Mods) over at the Minetest Wiki. For your convenience, here's a quick summary: + +1. If Mesecons is still in a ZIP file, extract the folder inside to somewhere on the computer. +2. Make sure that when you open the folder, you can directly find `README.md` in the listing. If you just see another folder, move that folder up one level and delete the old one. +3. Open up the Minetest mods folder - usually `/mods/`. If you see the `minetest` or folder inside of that, that is your mod folder instead. +4. Copy the Mesecons folder into the mods folder. + +Don't like some parts of Mesecons? Open up the Mesecons folder and delete the subfolder containing the mod you don't want. If you didn't want movestones, for example, all you have to do is delete the `mesecons_movestones` folder and they will no longer be available. + +There are no dependencies - it will work right after installing! + +How do I use this thing? +------------------------ +How about a [quick overview video](https://www.youtube.com/watch?v=6kmeQj6iW5k)? + +Or maybe a [comprehensive reference](http://mesecons.net/items.php) is your style? + +An overview for the very newest of new beginners? How does [this one](http://uberi.mesecons.net/projects/MeseconsBasics/index.html) look? + +Want to get more into building? Why not check out the [Mesecons Laboratory](http://uberi.mesecons.net/), a website dedicated to advanced Mesecons builders? + +Want to contribute to Mesecons itself? Check out the [source code](https://github.com/Jeija/minetest-mod-mesecons)! + +Who wrote it anyways? +--------------------- +These awesome people made Mesecons possible! + +| Contributor | Contribution | +| --------------- | -------------------------------- | +| Jat15 | Various tweaks. | +| Jeija | **Main developer! Everything.** | +| Jordach | Noteblock sounds. | +| khonkhortistan | Code, recipes, textures. | +| Kotolegokot | Nodeboxes for items. | +| minerd247 | Textures. | +| Nore/Novatux | Code. | +| RealBadAngel | Fixes, improvements. | +| sfan5 | Code, recipes, textures. | +| suzenako | Piston sounds. | +| Uberi/Temperest | Code, textures, documentation. | +| VanessaE | Code, recipes, textures, design. | +| Whiskers75 | Logic gates implementation. | + +There are also a whole bunch of other people helping with everything from code to testing and feedback. Mesecons would also not be possible without their help! + +Alright, how can I use it? +-------------------------- +All textures in this project are licensed under the CC-BY-SA 3.0 (Creative Commons Attribution-ShareAlike 3.0 Generic). That means you can distribute and remix them as much as you want to, under the condition that you give credit to the authors and the project, and that if you remix and release them, they must be under the same or similar license to this one. + +All code in this project is licensed under the LGPL version 3 or later. That means you have unlimited freedom to distribute and modify the work however you see fit, provided that if you decide to distribute it or any modified versions of it, you must also use the same license. The LGPL also grants the additional freedom to write extensions for the software and distribute them without the extensions being subject to the terms of the LGPL, although the software itself retains its license. + +No warranty is provided, express or implied, for any part of the project. diff --git a/mods/mesecons/mesecons/VERSION b/mods/mesecons/mesecons/VERSION new file mode 100755 index 00000000..75b9e034 --- /dev/null +++ b/mods/mesecons/mesecons/VERSION @@ -0,0 +1 @@ +0.41 DEV diff --git a/mods/mesecons/mesecons/actionqueue.lua b/mods/mesecons/mesecons/actionqueue.lua new file mode 100755 index 00000000..a5daf887 --- /dev/null +++ b/mods/mesecons/mesecons/actionqueue.lua @@ -0,0 +1,114 @@ +mesecon.queue.actions={} -- contains all ActionQueue actions + +function mesecon.queue:add_function(name, func) + mesecon.queue.funcs[name] = func +end + +-- If add_action with twice the same overwritecheck and same position are called, the first one is overwritten +-- use overwritecheck nil to never overwrite, but just add the event to the queue +-- priority specifies the order actions are executed within one globalstep, highest first +-- should be between 0 and 1 +function mesecon.queue:add_action(pos, func, params, time, overwritecheck, priority) + -- Create Action Table: + time = time or 0 -- time <= 0 --> execute, time > 0 --> wait time until execution + priority = priority or 1 + local action = { pos=mesecon:tablecopy(pos), + func=func, + params=mesecon:tablecopy(params), + time=time, + owcheck=(overwritecheck and mesecon:tablecopy(overwritecheck)) or nil, + priority=priority} + + local toremove = nil + -- Otherwise, add the action to the queue + if overwritecheck then -- check if old action has to be overwritten / removed: + for i, ac in ipairs(mesecon.queue.actions) do + if(mesecon:cmpPos(pos, ac.pos) + and mesecon:cmpAny(overwritecheck, ac.owcheck)) then + toremove = i + break + end + end + end + + if (toremove ~= nil) then + table.remove(mesecon.queue.actions, toremove) + end + + table.insert(mesecon.queue.actions, action) +end + +-- execute the stored functions on a globalstep +-- if however, the pos of a function is not loaded (get_node_or_nil == nil), do NOT execute the function +-- this makes sure that resuming mesecons circuits when restarting minetest works fine +-- However, even that does not work in some cases, that's why we delay the time the globalsteps +-- start to be execute by 5 seconds +local get_highest_priority = function (actions) + local highestp = -1, highesti + for i, ac in ipairs(actions) do + if ac.priority > highestp then + highestp = ac.priority + highesti = i + end + end + + return highesti +end + +local m_time = 0 +minetest.register_globalstep(function (dtime) + m_time = m_time + dtime + if (m_time < MESECONS_RESUMETIME) then return end -- don't even try if server has not been running for XY seconds + local actions = mesecon:tablecopy(mesecon.queue.actions) + local actions_now={} + + mesecon.queue.actions = {} + + -- sort actions into two categories: + -- those toexecute now (actions_now) and those to execute later (mesecon.queue.actions) + for i, ac in ipairs(actions) do + if ac.time > 0 then + ac.time = ac.time - dtime -- executed later + table.insert(mesecon.queue.actions, ac) + else + table.insert(actions_now, ac) + end + end + + while(#actions_now > 0) do -- execute highest priorities first, until all are executed + local hp = get_highest_priority(actions_now) + mesecon.queue:execute(actions_now[hp]) + table.remove(actions_now, hp) + end +end) + +function mesecon.queue:execute(action) + mesecon.queue.funcs[action.func](action.pos, unpack(action.params)) +end + + +-- Store and read the ActionQueue to / from a file +-- so that upcoming actions are remembered when the game +-- is restarted + +local wpath = minetest.get_worldpath() +local function file2table(filename) + local f = io.open(filename, "r") + if f==nil then return {} end + local t = f:read("*all") + f:close() + if t=="" or t==nil then return {} end + return minetest.deserialize(t) +end + +local function table2file(filename, table) + local f = io.open(filename, "w") + f:write(minetest.serialize(table)) + f:close() +end + +mesecon.queue.actions = file2table(wpath.."/mesecon_actionqueue") + +minetest.register_on_shutdown(function() + mesecon.queue.actions = table2file(wpath.."/mesecon_actionqueue", mesecon.queue.actions) +end) diff --git a/mods/mesecons/mesecons/depends.txt b/mods/mesecons/mesecons/depends.txt new file mode 100755 index 00000000..4ad96d51 --- /dev/null +++ b/mods/mesecons/mesecons/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/mesecons/mesecons/init.lua b/mods/mesecons/mesecons/init.lua new file mode 100755 index 00000000..34e3a85a --- /dev/null +++ b/mods/mesecons/mesecons/init.lua @@ -0,0 +1,142 @@ +-- |\ /| ____ ____ ____ _____ ____ _____ +-- | \ / | | | | | | | |\ | | +-- | \/ | |___ ____ |___ | | | | \ | |____ +-- | | | | | | | | | \ | | +-- | | |___ ____| |___ |____ |____| | \| ____| +-- by Jeija, Uberi (Temperest), sfan5, VanessaE +-- +-- +-- +-- This mod adds mesecons[=minecraft redstone] and different receptors/effectors to minetest. +-- See the documentation on the forum for additional information, especially about crafting +-- +-- +-- For developer documentation see the Developers' section on mesecons.TK +-- +-- +-- +--Quick draft for the mesecons array in the node's definition +--mesecons = +--{ +-- receptor = +-- { +-- state = mesecon.state.on/off +-- rules = rules/get_rules +-- }, +-- effector = +-- { +-- action_on = function +-- action_off = function +-- action_change = function +-- rules = rules/get_rules +-- }, +-- conductor = +-- { +-- state = mesecon.state.on/off +-- offstate = opposite state (for state = on only) +-- onstate = opposite state (for state = off only) +-- rules = rules/get_rules +-- } +--} + +-- PUBLIC VARIABLES +mesecon={} -- contains all functions and all global variables +mesecon.queue={} -- contains the ActionQueue +mesecon.queue.funcs={} -- contains all ActionQueue functions + +-- Settings +dofile(minetest.get_modpath("mesecons").."/settings.lua") + +-- Presets (eg default rules) +dofile(minetest.get_modpath("mesecons").."/presets.lua"); + + +-- Utilities like comparing positions, +-- adding positions and rules, +-- mostly things that make the source look cleaner +dofile(minetest.get_modpath("mesecons").."/util.lua"); + +-- The ActionQueue +-- Saves all the actions that have to be execute in the future +dofile(minetest.get_modpath("mesecons").."/actionqueue.lua"); + +-- Internal stuff +-- This is the most important file +-- it handles signal transmission and basically everything else +-- It is also responsible for managing the nodedef things, +-- like calling action_on/off/change +dofile(minetest.get_modpath("mesecons").."/internal.lua"); + +-- Deprecated stuff +-- To be removed in future releases +-- Currently there is nothing here +dofile(minetest.get_modpath("mesecons").."/legacy.lua"); + +-- API +-- these are the only functions you need to remember + +mesecon.queue:add_function("receptor_on", function (pos, rules) + rules = rules or mesecon.rules.default + + -- if area (any of the rule targets) is not loaded, keep trying and call this again later + for _, rule in ipairs(mesecon:flattenrules(rules)) do + local np = mesecon:addPosRule(pos, rule) + -- if area is not loaded, keep trying + if minetest.get_node_or_nil(np) == nil then + mesecon.queue:add_action(pos, "receptor_on", {rules}, nil, rules) + return + end + end + + -- execute action + for _, rule in ipairs(mesecon:flattenrules(rules)) do + local np = mesecon:addPosRule(pos, rule) + local rulenames = mesecon:rules_link_rule_all(pos, rule) + for _, rulename in ipairs(rulenames) do + mesecon:turnon(np, rulename) + end + end +end) + +function mesecon:receptor_on(pos, rules) + mesecon.queue:add_action(pos, "receptor_on", {rules}, nil, rules) +end + +mesecon.queue:add_function("receptor_off", function (pos, rules) + rules = rules or mesecon.rules.default + + -- if area (any of the rule targets) is not loaded, keep trying and call this again later + for _, rule in ipairs(mesecon:flattenrules(rules)) do + local np = mesecon:addPosRule(pos, rule) + if minetest.get_node_or_nil(np) == nil then + mesecon.queue:add_action(pos, "receptor_off", {rules}, nil, rules) + return + end + end + + for _, rule in ipairs(mesecon:flattenrules(rules)) do + local np = mesecon:addPosRule(pos, rule) + local rulenames = mesecon:rules_link_rule_all(pos, rule) + for _, rulename in ipairs(rulenames) do + if not mesecon:connected_to_receptor(np, mesecon:invertRule(rule)) then + mesecon:turnoff(np, rulename) + else + mesecon:changesignal(np, minetest.get_node(np), rulename, mesecon.state.off, 2) + end + end + end +end) + +function mesecon:receptor_off(pos, rules) + mesecon.queue:add_action(pos, "receptor_off", {rules}, nil, rules) +end + +--The actual wires +dofile(minetest.get_modpath("mesecons").."/wires.lua"); + +--Services like turnoff receptor on dignode and so on +dofile(minetest.get_modpath("mesecons").."/services.lua"); + +if minetest.setting_getbool("log_mods") then + minetest.log("action", "Carbone: [mesecons] loaded.") +end diff --git a/mods/mesecons/mesecons/internal.lua b/mods/mesecons/mesecons/internal.lua new file mode 100755 index 00000000..ecbfff7d --- /dev/null +++ b/mods/mesecons/mesecons/internal.lua @@ -0,0 +1,704 @@ +-- Internal.lua - The core of mesecons +-- +-- For more practical developer resources see mesecons.tk +-- +-- Function overview +-- mesecon:get_effector(nodename) --> Returns the mesecons.effector -specifictation in the nodedef by the nodename +-- mesecon:get_receptor(nodename) --> Returns the mesecons.receptor -specifictation in the nodedef by the nodename +-- mesecon:get_conductor(nodename) --> Returns the mesecons.conductor-specifictation in the nodedef by the nodename +-- mesecon:get_any_inputrules (node) --> Returns the rules of a node if it is a conductor or an effector +-- mesecon:get_any_outputrules (node) --> Returns the rules of a node if it is a conductor or a receptor + +-- RECEPTORS +-- mesecon:is_receptor(nodename) --> Returns true if nodename is a receptor +-- mesecon:is_receptor_on(nodename) --> Returns true if nodename is an receptor with state = mesecon.state.on +-- mesecon:is_receptor_off(nodename) --> Returns true if nodename is an receptor with state = mesecon.state.off +-- mesecon:receptor_get_rules(node) --> Returns the rules of the receptor (mesecon.rules.default if none specified) + +-- EFFECTORS +-- mesecon:is_effector(nodename) --> Returns true if nodename is an effector +-- mesecon:is_effector_on(nodename) --> Returns true if nodename is an effector with nodedef.mesecons.effector.action_off +-- mesecon:is_effector_off(nodename) --> Returns true if nodename is an effector with nodedef.mesecons.effector.action_on +-- mesecon:effector_get_rules(node) --> Returns the input rules of the effector (mesecon.rules.default if none specified) + +-- SIGNALS +-- mesecon:activate(pos, node, recdepth) --> Activates the effector node at the specific pos (calls nodedef.mesecons.effector.action_on), higher recdepths are executed later +-- mesecon:deactivate(pos, node, recdepth) --> Deactivates the effector node at the specific pos (calls nodedef.mesecons.effector.action_off), " +-- mesecon:changesignal(pos, node, rulename, newstate) --> Changes the effector node at the specific pos (calls nodedef.mesecons.effector.action_change), " + +-- RULES +-- mesecon:add_rules(name, rules) | deprecated? --> Saves rules table by name +-- mesecon:get_rules(name, rules) | deprecated? --> Loads rules table with name + +-- CONDUCTORS +-- mesecon:is_conductor(nodename) --> Returns true if nodename is a conductor +-- mesecon:is_conductor_on(node) --> Returns true if node is a conductor with state = mesecon.state.on +-- mesecon:is_conductor_off(node) --> Returns true if node is a conductor with state = mesecon.state.off +-- mesecon:get_conductor_on(node_off) --> Returns the onstate nodename of the conductor +-- mesecon:get_conductor_off(node_on) --> Returns the offstate nodename of the conductor +-- mesecon:conductor_get_rules(node) --> Returns the input+output rules of a conductor (mesecon.rules.default if none specified) + +-- HIGH-LEVEL Internals +-- mesecon:is_power_on(pos) --> Returns true if pos emits power in any way +-- mesecon:is_power_off(pos) --> Returns true if pos does not emit power in any way +-- mesecon:turnon(pos, rulename) --> Returns true whatever there is at pos. Calls itself for connected nodes (if pos is a conductor) --> recursive, the rulename is the name of the input rule that caused calling turnon; Uses third parameter recdepth internally to determine how far away the current node is from the initial pos as it uses recursion +-- mesecon:turnoff(pos, rulename) --> Turns off whatever there is at pos. Calls itself for connected nodes (if pos is a conductor) --> recursive, the rulename is the name of the input rule that caused calling turnoff; Uses third parameter recdepth internally to determine how far away the current node is from the initial pos as it uses recursion +-- mesecon:connected_to_receptor(pos) --> Returns true if pos is connected to a receptor directly or via conductors; calls itself if pos is a conductor --> recursive +-- mesecon:rules_link(output, input, dug_outputrules) --> Returns true if outputposition + outputrules = inputposition and inputposition + inputrules = outputposition (if the two positions connect) +-- mesecon:rules_link_anydir(outp., inp., d_outpr.) --> Same as rules mesecon:rules_link but also returns true if output and input are swapped +-- mesecon:is_powered(pos) --> Returns true if pos is powered by a receptor or a conductor + +-- RULES ROTATION helpsers +-- mesecon:rotate_rules_right(rules) +-- mesecon:rotate_rules_left(rules) +-- mesecon:rotate_rules_up(rules) +-- mesecon:rotate_rules_down(rules) +-- These functions return rules that have been rotated in the specific direction + +-- General +function mesecon:get_effector(nodename) + if minetest.registered_nodes[nodename] + and minetest.registered_nodes[nodename].mesecons + and minetest.registered_nodes[nodename].mesecons.effector then + return minetest.registered_nodes[nodename].mesecons.effector + end +end + +function mesecon:get_receptor(nodename) + if minetest.registered_nodes[nodename] + and minetest.registered_nodes[nodename].mesecons + and minetest.registered_nodes[nodename].mesecons.receptor then + return minetest.registered_nodes[nodename].mesecons.receptor + end +end + +function mesecon:get_conductor(nodename) + if minetest.registered_nodes[nodename] + and minetest.registered_nodes[nodename].mesecons + and minetest.registered_nodes[nodename].mesecons.conductor then + return minetest.registered_nodes[nodename].mesecons.conductor + end +end + +function mesecon:get_any_outputrules (node) + if mesecon:is_conductor(node.name) then + return mesecon:conductor_get_rules(node) + elseif mesecon:is_receptor(node.name) then + return mesecon:receptor_get_rules(node) + end + return false +end + +function mesecon:get_any_inputrules (node) + if mesecon:is_conductor(node.name) then + return mesecon:conductor_get_rules(node) + elseif mesecon:is_effector(node.name) then + return mesecon:effector_get_rules(node) + end + return false +end + +-- Receptors +-- Nodes that can power mesecons +function mesecon:is_receptor_on(nodename) + local receptor = mesecon:get_receptor(nodename) + if receptor and receptor.state == mesecon.state.on then + return true + end + return false +end + +function mesecon:is_receptor_off(nodename) + local receptor = mesecon:get_receptor(nodename) + if receptor and receptor.state == mesecon.state.off then + return true + end + return false +end + +function mesecon:is_receptor(nodename) + local receptor = mesecon:get_receptor(nodename) + if receptor then + return true + end + return false +end + +function mesecon:receptor_get_rules(node) + local receptor = mesecon:get_receptor(node.name) + if receptor then + local rules = receptor.rules + if type(rules) == 'function' then + return rules(node) + elseif rules then + return rules + end + end + + return mesecon.rules.default +end + +-- Effectors +-- Nodes that can be powered by mesecons +function mesecon:is_effector_on(nodename) + local effector = mesecon:get_effector(nodename) + if effector and effector.action_off then + return true + end + return false +end + +function mesecon:is_effector_off(nodename) + local effector = mesecon:get_effector(nodename) + if effector and effector.action_on then + return true + end + return false +end + +function mesecon:is_effector(nodename) + local effector = mesecon:get_effector(nodename) + if effector then + return true + end + return false +end + +function mesecon:effector_get_rules(node) + local effector = mesecon:get_effector(node.name) + if effector then + local rules = effector.rules + if type(rules) == 'function' then + return rules(node) + elseif rules then + return rules + end + end + return mesecon.rules.default +end + +-- ####################### +-- # Signals (effectors) # +-- ####################### + +-- Activation: +mesecon.queue:add_function("activate", function (pos, rulename) + node = minetest.get_node(pos) + effector = mesecon:get_effector(node.name) + + if effector and effector.action_on then + effector.action_on(pos, node, rulename) + end +end) + +function mesecon:activate(pos, node, rulename, recdepth) + if rulename == nil then + for _,rule in ipairs(mesecon:effector_get_rules(node)) do + mesecon:activate(pos, node, rule, recdepth + 1) + end + return + end + mesecon.queue:add_action(pos, "activate", {rulename}, nil, rulename, 1 / recdepth) +end + + +-- Deactivation +mesecon.queue:add_function("deactivate", function (pos, rulename) + node = minetest.get_node(pos) + effector = mesecon:get_effector(node.name) + + if effector and effector.action_off then + effector.action_off(pos, node, rulename) + end +end) + +function mesecon:deactivate(pos, node, rulename, recdepth) + if rulename == nil then + for _,rule in ipairs(mesecon:effector_get_rules(node)) do + mesecon:deactivate(pos, node, rule, recdepth + 1) + end + return + end + mesecon.queue:add_action(pos, "deactivate", {rulename}, nil, rulename, 1 / recdepth) +end + + +-- Change +mesecon.queue:add_function("change", function (pos, rulename, changetype) + node = minetest.get_node(pos) + effector = mesecon:get_effector(node.name) + + if effector and effector.action_change then + effector.action_change(pos, node, rulename, changetype) + end +end) + +function mesecon:changesignal(pos, node, rulename, newstate, recdepth) + if rulename == nil then + for _,rule in ipairs(mesecon:effector_get_rules(node)) do + mesecon:changesignal(pos, node, rule, newstate, recdepth + 1) + end + return + end + + mesecon.queue:add_action(pos, "change", {rulename, newstate}, nil, rulename, 1 / recdepth) +end + +-- ######### +-- # Rules # "Database" for rulenames +-- ######### + +function mesecon:add_rules(name, rules) + mesecon.rules[name] = rules +end + +function mesecon:get_rules(name) + return mesecon.rules[name] +end + +-- Conductors + +function mesecon:is_conductor_on(node, rulename) + local conductor = mesecon:get_conductor(node.name) + if conductor then + if conductor.state then + return conductor.state == mesecon.state.on + end + if conductor.states then + if not rulename then + return mesecon:getstate(node.name, conductor.states) ~= 1 + end + local bit = mesecon:rule2bit(rulename, mesecon:conductor_get_rules(node)) + local binstate = mesecon:getbinstate(node.name, conductor.states) + return mesecon:get_bit(binstate, bit) + end + end + return false +end + +function mesecon:is_conductor_off(node, rulename) + local conductor = mesecon:get_conductor(node.name) + if conductor then + if conductor.state then + return conductor.state == mesecon.state.off + end + if conductor.states then + if not rulename then + return mesecon:getstate(node.name, conductor.states) == 1 + end + local bit = mesecon:rule2bit(rulename, mesecon:conductor_get_rules(node)) + local binstate = mesecon:getbinstate(node.name, conductor.states) + return not mesecon:get_bit(binstate, bit) + end + end + return false +end + +function mesecon:is_conductor(nodename) + local conductor = mesecon:get_conductor(nodename) + if conductor then + return true + end + return false +end + +function mesecon:get_conductor_on(node_off, rulename) + local conductor = mesecon:get_conductor(node_off.name) + if conductor then + if conductor.onstate then + return conductor.onstate + end + if conductor.states then + local bit = mesecon:rule2bit(rulename, mesecon:conductor_get_rules(node_off)) + local binstate = mesecon:getbinstate(node_off.name, conductor.states) + binstate = mesecon:set_bit(binstate, bit, "1") + return conductor.states[tonumber(binstate,2)+1] + end + end + return offstate +end + +function mesecon:get_conductor_off(node_on, rulename) + local conductor = mesecon:get_conductor(node_on.name) + if conductor then + if conductor.offstate then + return conductor.offstate + end + if conductor.states then + local bit = mesecon:rule2bit(rulename, mesecon:conductor_get_rules(node_on)) + local binstate = mesecon:getbinstate(node_on.name, conductor.states) + binstate = mesecon:set_bit(binstate, bit, "0") + return conductor.states[tonumber(binstate,2)+1] + end + end + return onstate +end + +function mesecon:conductor_get_rules(node) + local conductor = mesecon:get_conductor(node.name) + if conductor then + local rules = conductor.rules + if type(rules) == 'function' then + return rules(node) + elseif rules then + return rules + end + end + return mesecon.rules.default +end + +-- some more general high-level stuff + +function mesecon:is_power_on(pos, rulename) + local node = minetest.get_node(pos) + if mesecon:is_conductor_on(node, rulename) or mesecon:is_receptor_on(node.name) then + return true + end + return false +end + +function mesecon:is_power_off(pos, rulename) + local node = minetest.get_node(pos) + if mesecon:is_conductor_off(node, rulename) or mesecon:is_receptor_off(node.name) then + return true + end + return false +end + +function mesecon:turnon(pos, rulename, recdepth) + recdepth = recdepth or 2 + local node = minetest.get_node(pos) + + if(node.name == "ignore") then + -- try turning on later again + mesecon.queue:add_action( + pos, "turnon", {rulename, recdepth + 1}, nil, true) + end + + if mesecon:is_conductor_off(node, rulename) then + local rules = mesecon:conductor_get_rules(node) + + if not rulename then + for _, rule in ipairs(mesecon:flattenrules(rules)) do + if mesecon:connected_to_receptor(pos, rule) then + mesecon:turnon(pos, rule, recdepth + 1) + end + end + return + end + + minetest.swap_node(pos, {name = mesecon:get_conductor_on(node, rulename), param2 = node.param2}) + + for _, rule in ipairs(mesecon:rule2meta(rulename, rules)) do + local np = mesecon:addPosRule(pos, rule) + if(minetest.get_node(np).name == "ignore") then + -- try turning on later again + mesecon.queue:add_action( + np, "turnon", {rulename, recdepth + 1}, nil, true) + else + local rulenames = mesecon:rules_link_rule_all(pos, rule) + + for _, rulename in ipairs(rulenames) do + mesecon:turnon(np, rulename, recdepth + 1) + end + end + end + elseif mesecon:is_effector(node.name) then + mesecon:changesignal(pos, node, rulename, mesecon.state.on, recdepth) + if mesecon:is_effector_off(node.name) then + mesecon:activate(pos, node, rulename, recdepth) + end + end +end + +mesecon.queue:add_function("turnon", function (pos, rulename, recdepth) + mesecon:turnon(pos, rulename, recdepth) +end) + +function mesecon:turnoff(pos, rulename, recdepth) + recdepth = recdepth or 2 + local node = minetest.get_node(pos) + + if(node.name == "ignore") then + -- try turning on later again + mesecon.queue:add_action( + pos, "turnoff", {rulename, recdepth + 1}, nil, true) + end + + if mesecon:is_conductor_on(node, rulename) then + local rules = mesecon:conductor_get_rules(node) + minetest.swap_node(pos, {name = mesecon:get_conductor_off(node, rulename), param2 = node.param2}) + + for _, rule in ipairs(mesecon:rule2meta(rulename, rules)) do + local np = mesecon:addPosRule(pos, rule) + if(minetest.get_node(np).name == "ignore") then + -- try turning on later again + mesecon.queue:add_action( + np, "turnoff", {rulename, recdepth + 1}, nil, true) + else + local rulenames = mesecon:rules_link_rule_all(pos, rule) + + for _, rulename in ipairs(rulenames) do + mesecon:turnoff(np, rulename, recdepth + 1) + end + end + end + elseif mesecon:is_effector(node.name) then + mesecon:changesignal(pos, node, rulename, mesecon.state.off, recdepth) + if mesecon:is_effector_on(node.name) + and not mesecon:is_powered(pos) then + mesecon:deactivate(pos, node, rulename, recdepth + 1) + end + end +end + +mesecon.queue:add_function("turnoff", function (pos, rulename, recdepth) + mesecon:turnoff(pos, rulename, recdepth) +end) + + +function mesecon:connected_to_receptor(pos, rulename) + local node = minetest.get_node(pos) + + -- Check if conductors around are connected + local rules = mesecon:get_any_inputrules(node) + if not rules then return false end + + for _, rule in ipairs(mesecon:rule2meta(rulename, rules)) do + local rulenames = mesecon:rules_link_rule_all_inverted(pos, rule) + for _, rname in ipairs(rulenames) do + local np = mesecon:addPosRule(pos, rname) + if mesecon:find_receptor_on(np, {}, mesecon:invertRule(rname)) then + return true + end + end + end + + return false +end + +function mesecon:find_receptor_on(pos, checked, rulename) + local node = minetest.get_node(pos) + + if mesecon:is_receptor_on(node.name) then + -- add current position to checked + table.insert(checked, {x=pos.x, y=pos.y, z=pos.z}) + return true + end + + if mesecon:is_conductor(node.name) then + local rules = mesecon:conductor_get_rules(node) + local metaindex = mesecon:rule2metaindex(rulename, rules) + -- find out if node has already been checked (to prevent from endless loop) + for _, cp in ipairs(checked) do + if mesecon:cmpPos(cp, pos) and cp.metaindex == metaindex then + return false, checked + end + end + -- add current position to checked + table.insert(checked, {x=pos.x, y=pos.y, z=pos.z, metaindex = metaindex}) + for _, rule in ipairs(mesecon:rule2meta(rulename, rules)) do + local rulenames = mesecon:rules_link_rule_all_inverted(pos, rule) + for _, rname in ipairs(rulenames) do + local np = mesecon:addPosRule(pos, rname) + if mesecon:find_receptor_on(np, checked, mesecon:invertRule(rname)) then + return true + end + end + end + else + -- find out if node has already been checked (to prevent from endless loop) + for _, cp in ipairs(checked) do + if mesecon:cmpPos(cp, pos) then + return false, checked + end + end + table.insert(checked, {x=pos.x, y=pos.y, z=pos.z}) + end + + return false +end + +function mesecon:rules_link(output, input, dug_outputrules) --output/input are positions (outputrules optional, used if node has been dug), second return value: the name of the affected input rule + local outputnode = minetest.get_node(output) + local inputnode = minetest.get_node(input) + local outputrules = dug_outputrules or mesecon:get_any_outputrules (outputnode) + local inputrules = mesecon:get_any_inputrules (inputnode) + if not outputrules or not inputrules then + return + end + + for _, outputrule in ipairs(mesecon:flattenrules(outputrules)) do + -- Check if output sends to input + if mesecon:cmpPos(mesecon:addPosRule(output, outputrule), input) then + for _, inputrule in ipairs(mesecon:flattenrules(inputrules)) do + -- Check if input accepts from output + if mesecon:cmpPos(mesecon:addPosRule(input, inputrule), output) then + if inputrule.sx == nil or outputrule.sx == nil or mesecon:cmpSpecial(inputrule, outputrule) then + return true, inputrule + end + end + end + end + end + return false +end + +function mesecon:rules_link_rule_all(output, rule) --output/input are positions (outputrules optional, used if node has been dug), second return value: affected input rules + local input = mesecon:addPosRule(output, rule) + local inputnode = minetest.get_node(input) + local inputrules = mesecon:get_any_inputrules (inputnode) + if not inputrules then + return {} + end + local rules = {} + + for _, inputrule in ipairs(mesecon:flattenrules(inputrules)) do + -- Check if input accepts from output + if mesecon:cmpPos(mesecon:addPosRule(input, inputrule), output) then + if inputrule.sx == nil or rule.sx == nil or mesecon:cmpSpecial(inputrule, rule) then + rules[#rules+1] = inputrule + end + end + end + return rules +end + +function mesecon:rules_link_rule_all_inverted(input, rule) + --local irule = mesecon:invertRule(rule) + local output = mesecon:addPosRule(input, rule) + local outputnode = minetest.get_node(output) + local outputrules = mesecon:get_any_outputrules (outputnode) + if not outputrules then + return {} + end + local rules = {} + + for _, outputrule in ipairs(mesecon:flattenrules(outputrules)) do + if mesecon:cmpPos(mesecon:addPosRule(output, outputrule), input) then + if outputrule.sx == nil or rule.sx == nil or mesecon:cmpSpecial(outputrule, rule) then + rules[#rules+1] = mesecon:invertRule(outputrule) + end + end + end + return rules +end + +function mesecon:rules_link_anydir(pos1, pos2) + return mesecon:rules_link(pos1, pos2) or mesecon:rules_link(pos2, pos1) +end + +function mesecon:is_powered(pos, rule) + local node = minetest.get_node(pos) + local rules = mesecon:get_any_inputrules(node) + if not rules then return false end + + if not rule then + for _, rule in ipairs(mesecon:flattenrules(rules)) do + local rulenames = mesecon:rules_link_rule_all_inverted(pos, rule) + for _, rname in ipairs(rulenames) do + local np = mesecon:addPosRule(pos, rname) + local nn = minetest.get_node(np) + if (mesecon:is_conductor_on (nn, mesecon:invertRule(rname)) or mesecon:is_receptor_on (nn.name)) then + return true + end + end + end + else + local rulenames = mesecon:rules_link_rule_all_inverted(pos, rule) + for _, rname in ipairs(rulenames) do + local np = mesecon:addPosRule(pos, rname) + local nn = minetest.get_node(np) + if (mesecon:is_conductor_on (nn, mesecon:invertRule(rname)) or mesecon:is_receptor_on (nn.name)) then + return true + end + end + end + + return false +end + +--Rules rotation Functions: +function mesecon:rotate_rules_right(rules) + local nr = {} + for i, rule in ipairs(rules) do + if rule.sx then + table.insert(nr, { + x = -rule.z, + y = rule.y, + z = rule.x, + sx = -rule.sz, + sy = rule.sy, + sz = rule.sx}) + else + table.insert(nr, { + x = -rule.z, + y = rule.y, + z = rule.x}) + end + end + return nr +end + +function mesecon:rotate_rules_left(rules) + local nr = {} + for i, rule in ipairs(rules) do + if rule.sx then + table.insert(nr, { + x = rule.z, + y = rule.y, + z = -rule.x, + sx = rule.sz, + sy = rule.sy, + sz = -rule.sx}) + else + table.insert(nr, { + x = rule.z, + y = rule.y, + z = -rule.x}) + end + end + return nr +end + +function mesecon:rotate_rules_down(rules) + local nr = {} + for i, rule in ipairs(rules) do + if rule.sx then + table.insert(nr, { + x = -rule.y, + y = rule.x, + z = rule.z, + sx = -rule.sy, + sy = rule.sx, + sz = rule.sz}) + else + table.insert(nr, { + x = -rule.y, + y = rule.x, + z = rule.z}) + end + end + return nr +end + +function mesecon:rotate_rules_up(rules) + local nr = {} + for i, rule in ipairs(rules) do + if rule.sx then + table.insert(nr, { + x = rule.y, + y = -rule.x, + z = rule.z, + sx = rule.sy, + sy = -rule.sx, + sz = rule.sz}) + else + table.insert(nr, { + x = rule.y, + y = -rule.x, + z = rule.z}) + end + end + return nr +end diff --git a/mods/mesecons/mesecons/legacy.lua b/mods/mesecons/mesecons/legacy.lua new file mode 100755 index 00000000..89c87cab --- /dev/null +++ b/mods/mesecons/mesecons/legacy.lua @@ -0,0 +1,32 @@ +minetest.swap_node = minetest.swap_node or function(pos, node) + local data = minetest.get_meta(pos):to_table() + minetest.add_node(pos, node) + minetest.get_meta(pos):from_table(data) +end + +local rules = {} +rules.a = {x = -1, y = 0, z = 0, name="A"} +rules.b = {x = 0, y = 0, z = 1, name="B"} +rules.c = {x = 1, y = 0, z = 0, name="C"} +rules.d = {x = 0, y = 0, z = -1, name="D"} + +function legacy_update_ports(pos) + local meta = minetest.get_meta(pos) + L = { + a = mesecon:is_power_on(mesecon:addPosRule(pos, rules.a), + mesecon:invertRule(rules.a)) and + mesecon:rules_link(mesecon:addPosRule(pos, rules.a), pos), + b = mesecon:is_power_on(mesecon:addPosRule(pos, rules.b), + mesecon:invertRule(rules.b)) and + mesecon:rules_link(mesecon:addPosRule(pos, rules.b), pos), + c = mesecon:is_power_on(mesecon:addPosRule(pos, rules.c), + mesecon:invertRule(rules.c)) and + mesecon:rules_link(mesecon:addPosRule(pos, rules.c), pos), + d = mesecon:is_power_on(mesecon:addPosRule(pos, rules.d), + mesecon:invertRule(rules.d)) and + mesecon:rules_link(mesecon:addPosRule(pos, rules.d), pos), + } + local n = (L.a and 1 or 0) + (L.b and 2 or 0) + (L.c and 4 or 0) + (L.d and 8 or 0) + 1 + meta:set_int("real_portstates", n) + return L +end diff --git a/mods/mesecons/mesecons/oldwires.lua b/mods/mesecons/mesecons/oldwires.lua new file mode 100755 index 00000000..9e54b1bb --- /dev/null +++ b/mods/mesecons/mesecons/oldwires.lua @@ -0,0 +1,38 @@ +minetest.register_node("mesecons:mesecon_off", { + drawtype = "raillike", + tiles = {"jeija_mesecon_off.png", "jeija_mesecon_curved_off.png", "jeija_mesecon_t_junction_off.png", "jeija_mesecon_crossing_off.png"}, + inventory_image = "jeija_mesecon_off.png", + wield_image = "jeija_mesecon_off.png", + paramtype = "light", + is_ground_content = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.45, 0.5}, + }, + groups = {dig_immediate=3, mesecon=1, mesecon_conductor_craftable=1}, + description="Mesecons", + mesecons = {conductor={ + state = mesecon.state.off, + onstate = "mesecons:mesecon_on" + }} +}) + +minetest.register_node("mesecons:mesecon_on", { + drawtype = "raillike", + tiles = {"jeija_mesecon_on.png", "jeija_mesecon_curved_on.png", "jeija_mesecon_t_junction_on.png", "jeija_mesecon_crossing_on.png"}, + paramtype = "light", + is_ground_content = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.45, 0.5}, + }, + groups = {dig_immediate=3, not_in_creaive_inventory=1, mesecon=1}, + drop = "mesecons:mesecon_off 1", + light_source = LIGHT_MAX-11, + mesecons = {conductor={ + state = mesecon.state.on, + offstate = "mesecons:mesecon_off" + }} +}) diff --git a/mods/mesecons/mesecons/presets.lua b/mods/mesecons/mesecons/presets.lua new file mode 100755 index 00000000..6c8d3eac --- /dev/null +++ b/mods/mesecons/mesecons/presets.lua @@ -0,0 +1,45 @@ +mesecon.rules = {} +mesecon.state = {} + +mesecon.rules.default = +{{x=0, y=0, z=-1}, + {x=1, y=0, z=0}, + {x=-1, y=0, z=0}, + {x=0, y=0, z=1}, + {x=1, y=1, z=0}, + {x=1, y=-1, z=0}, + {x=-1, y=1, z=0}, + {x=-1, y=-1, z=0}, + {x=0, y=1, z=1}, + {x=0, y=-1, z=1}, + {x=0, y=1, z=-1}, + {x=0, y=-1, z=-1}} + +mesecon.rules.buttonlike = +{{x = 1, y = 0, z = 0}, + {x = 1, y = 1, z = 0}, + {x = 1, y =-1, z = 0}, + {x = 1, y =-1, z = 1}, + {x = 1, y =-1, z =-1}, + {x = 2, y = 0, z = 0}} + +mesecon.rules.flat = +{{x = 1, y = 0, z = 0}, + {x =-1, y = 0, z = 0}, + {x = 0, y = 0, z = 1}, + {x = 0, y = 0, z =-1}} + +mesecon.rules.buttonlike_get = function(node) + local rules = mesecon.rules.buttonlike + if node.param2 == 2 then + rules=mesecon:rotate_rules_left(rules) + elseif node.param2 == 3 then + rules=mesecon:rotate_rules_right(mesecon:rotate_rules_right(rules)) + elseif node.param2 == 0 then + rules=mesecon:rotate_rules_right(rules) + end + return rules +end + +mesecon.state.on = "on" +mesecon.state.off = "off" diff --git a/mods/mesecons/mesecons/services.lua b/mods/mesecons/mesecons/services.lua new file mode 100755 index 00000000..b0b45e01 --- /dev/null +++ b/mods/mesecons/mesecons/services.lua @@ -0,0 +1,76 @@ +-- Dig and place services + +mesecon.on_placenode = function (pos, node) + -- Receptors: Send on signal when active + if mesecon:is_receptor_on(node.name) then + mesecon:receptor_on(pos, mesecon:receptor_get_rules(node)) + end + + -- Conductors: Send turnon signal when powered or replace by respective offstate conductor + -- if placed conductor is an onstate one + if mesecon:is_conductor(node.name) then + if mesecon:is_powered(pos) then + -- also call receptor_on if itself is powered already, so that neighboring + -- conductors will be activated (when pushing an on-conductor with a piston) + mesecon:turnon (pos) + mesecon:receptor_on (pos, mesecon:conductor_get_rules(node)) + elseif mesecon:is_conductor_off(node.name) then + minetest.swap_node(pos, {name = mesecon:get_conductor_off(node)}) + end + end + + -- Effectors: Send changesignal and activate or deactivate + if mesecon:is_effector(node.name) then + if mesecon:is_powered(pos) then + mesecon:changesignal(pos, node, mesecon:effector_get_rules(node), "on", 1) + mesecon:activate(pos, node, nil, 1) + else + mesecon:changesignal(pos, node, mesecon:effector_get_rules(node), "off", 1) + mesecon:deactivate(pos, node, nil, 1) + end + end +end + +mesecon.on_dignode = function (pos, node) + if mesecon:is_conductor_on(node) then + mesecon:receptor_off(pos, mesecon:conductor_get_rules(node)) + elseif mesecon:is_receptor_on(node.name) then + mesecon:receptor_off(pos, mesecon:receptor_get_rules(node)) + end +end + +minetest.register_on_placenode(mesecon.on_placenode) +minetest.register_on_dignode(mesecon.on_dignode) + +-- Overheating service for fast circuits + +-- returns true if heat is too high +mesecon.do_overheat = function(pos) + local meta = minetest.get_meta(pos) + local heat = meta:get_int("heat") or 0 + + heat = heat + 1 + meta:set_int("heat", heat) + + if heat < OVERHEAT_MAX then + mesecon.queue:add_action(pos, "cooldown", {}, 1, nil, 0) + else + return true + end + + return false +end + + +mesecon.queue:add_function("cooldown", function (pos) + if minetest.get_item_group(minetest.get_node(pos).name, "overheat") == 0 then + return -- node has been moved, this one does not use overheating - ignore + end + + local meta = minetest.get_meta(pos) + local heat = meta:get_int("heat") + + if (heat > 0) then + meta:set_int("heat", heat - 1) + end +end) diff --git a/mods/mesecons/mesecons/settings.lua b/mods/mesecons/mesecons/settings.lua new file mode 100755 index 00000000..fd040a94 --- /dev/null +++ b/mods/mesecons/mesecons/settings.lua @@ -0,0 +1,12 @@ +-- SETTINGS +BLINKY_PLANT_INTERVAL = 3 +NEW_STYLE_WIRES = true -- true = new nodebox wires, false = old raillike wires +PRESSURE_PLATE_INTERVAL = 0.1 +OBJECT_DETECTOR_RADIUS = 6 +PISTON_MAXIMUM_PUSH = 15 +MOVESTONE_MAXIMUM_PUSH = 100 +MESECONS_RESUMETIME = 4 -- time to wait when starting the server before + -- processing the ActionQueue, don't set this too low +OVERHEAT_MAX = 20 -- maximum heat of any component that directly sends an output + -- signal when the input changes (e.g. luacontroller, gates) + -- Unit: actions per second, checks are every 1 second diff --git a/mods/mesecons/mesecons/textures/jeija_fiber.png b/mods/mesecons/mesecons/textures/jeija_fiber.png new file mode 100755 index 00000000..a47053ff Binary files /dev/null and b/mods/mesecons/mesecons/textures/jeija_fiber.png differ diff --git a/mods/mesecons/mesecons/textures/jeija_glue.png b/mods/mesecons/mesecons/textures/jeija_glue.png new file mode 100755 index 00000000..a351bac6 Binary files /dev/null and b/mods/mesecons/mesecons/textures/jeija_glue.png differ diff --git a/mods/mesecons/mesecons/textures/jeija_mesecon_crossing_off.png b/mods/mesecons/mesecons/textures/jeija_mesecon_crossing_off.png new file mode 100755 index 00000000..b4321f68 Binary files /dev/null and b/mods/mesecons/mesecons/textures/jeija_mesecon_crossing_off.png differ diff --git a/mods/mesecons/mesecons/textures/jeija_mesecon_crossing_on.png b/mods/mesecons/mesecons/textures/jeija_mesecon_crossing_on.png new file mode 100755 index 00000000..8f7957d3 Binary files /dev/null and b/mods/mesecons/mesecons/textures/jeija_mesecon_crossing_on.png differ diff --git a/mods/mesecons/mesecons/textures/jeija_mesecon_curved_off.png b/mods/mesecons/mesecons/textures/jeija_mesecon_curved_off.png new file mode 100755 index 00000000..c24562bb Binary files /dev/null and b/mods/mesecons/mesecons/textures/jeija_mesecon_curved_off.png differ diff --git a/mods/mesecons/mesecons/textures/jeija_mesecon_curved_on.png b/mods/mesecons/mesecons/textures/jeija_mesecon_curved_on.png new file mode 100755 index 00000000..a1ccf487 Binary files /dev/null and b/mods/mesecons/mesecons/textures/jeija_mesecon_curved_on.png differ diff --git a/mods/mesecons/mesecons/textures/jeija_mesecon_inverter_off.png b/mods/mesecons/mesecons/textures/jeija_mesecon_inverter_off.png new file mode 100755 index 00000000..97b9f2a2 Binary files /dev/null and b/mods/mesecons/mesecons/textures/jeija_mesecon_inverter_off.png differ diff --git a/mods/mesecons/mesecons/textures/jeija_mesecon_inverter_on.png b/mods/mesecons/mesecons/textures/jeija_mesecon_inverter_on.png new file mode 100755 index 00000000..132cd1b9 Binary files /dev/null and b/mods/mesecons/mesecons/textures/jeija_mesecon_inverter_on.png differ diff --git a/mods/mesecons/mesecons/textures/jeija_mesecon_off.png b/mods/mesecons/mesecons/textures/jeija_mesecon_off.png new file mode 100755 index 00000000..f40d49ad Binary files /dev/null and b/mods/mesecons/mesecons/textures/jeija_mesecon_off.png differ diff --git a/mods/mesecons/mesecons/textures/jeija_mesecon_on.png b/mods/mesecons/mesecons/textures/jeija_mesecon_on.png new file mode 100755 index 00000000..4c994d43 Binary files /dev/null and b/mods/mesecons/mesecons/textures/jeija_mesecon_on.png differ diff --git a/mods/mesecons/mesecons/textures/jeija_mesecon_plug.png b/mods/mesecons/mesecons/textures/jeija_mesecon_plug.png new file mode 100755 index 00000000..545dbf82 Binary files /dev/null and b/mods/mesecons/mesecons/textures/jeija_mesecon_plug.png differ diff --git a/mods/mesecons/mesecons/textures/jeija_mesecon_socket_off.png b/mods/mesecons/mesecons/textures/jeija_mesecon_socket_off.png new file mode 100755 index 00000000..664cd0cb Binary files /dev/null and b/mods/mesecons/mesecons/textures/jeija_mesecon_socket_off.png differ diff --git a/mods/mesecons/mesecons/textures/jeija_mesecon_socket_on.png b/mods/mesecons/mesecons/textures/jeija_mesecon_socket_on.png new file mode 100755 index 00000000..8574d02a Binary files /dev/null and b/mods/mesecons/mesecons/textures/jeija_mesecon_socket_on.png differ diff --git a/mods/mesecons/mesecons/textures/jeija_mesecon_switch_off.png b/mods/mesecons/mesecons/textures/jeija_mesecon_switch_off.png new file mode 100755 index 00000000..1dd77eae Binary files /dev/null and b/mods/mesecons/mesecons/textures/jeija_mesecon_switch_off.png differ diff --git a/mods/mesecons/mesecons/textures/jeija_mesecon_switch_on.png b/mods/mesecons/mesecons/textures/jeija_mesecon_switch_on.png new file mode 100755 index 00000000..bc6bd75c Binary files /dev/null and b/mods/mesecons/mesecons/textures/jeija_mesecon_switch_on.png differ diff --git a/mods/mesecons/mesecons/textures/jeija_mesecon_switch_side.png b/mods/mesecons/mesecons/textures/jeija_mesecon_switch_side.png new file mode 100755 index 00000000..9ffa4f09 Binary files /dev/null and b/mods/mesecons/mesecons/textures/jeija_mesecon_switch_side.png differ diff --git a/mods/mesecons/mesecons/textures/jeija_mesecon_t_junction_off.png b/mods/mesecons/mesecons/textures/jeija_mesecon_t_junction_off.png new file mode 100755 index 00000000..6fff4427 Binary files /dev/null and b/mods/mesecons/mesecons/textures/jeija_mesecon_t_junction_off.png differ diff --git a/mods/mesecons/mesecons/textures/jeija_mesecon_t_junction_on.png b/mods/mesecons/mesecons/textures/jeija_mesecon_t_junction_on.png new file mode 100755 index 00000000..63800b91 Binary files /dev/null and b/mods/mesecons/mesecons/textures/jeija_mesecon_t_junction_on.png differ diff --git a/mods/mesecons/mesecons/textures/jeija_silicon.png b/mods/mesecons/mesecons/textures/jeija_silicon.png new file mode 100755 index 00000000..cc4854af Binary files /dev/null and b/mods/mesecons/mesecons/textures/jeija_silicon.png differ diff --git a/mods/mesecons/mesecons/textures/wires_bump_off.png b/mods/mesecons/mesecons/textures/wires_bump_off.png new file mode 100755 index 00000000..e41ee1da Binary files /dev/null and b/mods/mesecons/mesecons/textures/wires_bump_off.png differ diff --git a/mods/mesecons/mesecons/textures/wires_bump_on.png b/mods/mesecons/mesecons/textures/wires_bump_on.png new file mode 100755 index 00000000..8b8146c2 Binary files /dev/null and b/mods/mesecons/mesecons/textures/wires_bump_on.png differ diff --git a/mods/mesecons/mesecons/textures/wires_full_off.png b/mods/mesecons/mesecons/textures/wires_full_off.png new file mode 100755 index 00000000..a7a5f818 Binary files /dev/null and b/mods/mesecons/mesecons/textures/wires_full_off.png differ diff --git a/mods/mesecons/mesecons/textures/wires_full_on.png b/mods/mesecons/mesecons/textures/wires_full_on.png new file mode 100755 index 00000000..92d08c3a Binary files /dev/null and b/mods/mesecons/mesecons/textures/wires_full_on.png differ diff --git a/mods/mesecons/mesecons/textures/wires_inv.png b/mods/mesecons/mesecons/textures/wires_inv.png new file mode 100755 index 00000000..53a8b741 Binary files /dev/null and b/mods/mesecons/mesecons/textures/wires_inv.png differ diff --git a/mods/mesecons/mesecons/textures/wires_off.png b/mods/mesecons/mesecons/textures/wires_off.png new file mode 100755 index 00000000..c4af2708 Binary files /dev/null and b/mods/mesecons/mesecons/textures/wires_off.png differ diff --git a/mods/mesecons/mesecons/textures/wires_on.png b/mods/mesecons/mesecons/textures/wires_on.png new file mode 100755 index 00000000..f8c0a7d9 Binary files /dev/null and b/mods/mesecons/mesecons/textures/wires_on.png differ diff --git a/mods/mesecons/mesecons/textures/wires_vertical_off.png b/mods/mesecons/mesecons/textures/wires_vertical_off.png new file mode 100755 index 00000000..dd97e41f Binary files /dev/null and b/mods/mesecons/mesecons/textures/wires_vertical_off.png differ diff --git a/mods/mesecons/mesecons/textures/wires_vertical_on.png b/mods/mesecons/mesecons/textures/wires_vertical_on.png new file mode 100755 index 00000000..695513f4 Binary files /dev/null and b/mods/mesecons/mesecons/textures/wires_vertical_on.png differ diff --git a/mods/mesecons/mesecons/util.lua b/mods/mesecons/mesecons/util.lua new file mode 100755 index 00000000..91d435a7 --- /dev/null +++ b/mods/mesecons/mesecons/util.lua @@ -0,0 +1,195 @@ +function mesecon:move_node(pos, newpos) + local node = minetest.get_node(pos) + local meta = minetest.get_meta(pos):to_table() + minetest.remove_node(pos) + minetest.add_node(newpos, node) + minetest.get_meta(pos):from_table(meta) +end + +--[[ new functions: +mesecon:flattenrules(allrules) +mesecon:rule2bit(findrule, allrules) +mesecon:rule2meta(findrule, allrules) +dec2bin(n) +mesecon:getstate(nodename, states) +mesecon:getbinstate(nodename, states) +mesecon:get_bit(binary, bit) +mesecon:set_bit(binary, bit, value) +mesecon:invertRule(r) +--]] + +function mesecon:flattenrules(allrules) +--[[ + { + { + {xyz}, + {xyz}, + }, + { + {xyz}, + {xyz}, + }, + } +--]] + if allrules[1] and + allrules[1].x then + return allrules + end + + local shallowrules = {} + for _, metarule in ipairs( allrules) do + for _, rule in ipairs(metarule ) do + table.insert(shallowrules, rule) + end + end + return shallowrules +--[[ + { + {xyz}, + {xyz}, + {xyz}, + {xyz}, + } +--]] +end + +function mesecon:rule2bit(findrule, allrules) + --get the bit of the metarule the rule is in, or bit 1 + if (allrules[1] and + allrules[1].x) or + not findrule then + return 1 + end + for m,metarule in ipairs( allrules) do + for _, rule in ipairs(metarule ) do + if mesecon:cmpPos(findrule, rule) and mesecon:cmpSpecial(findrule, rule) then + return m + end + end + end +end + +function mesecon:rule2metaindex(findrule, allrules) + --get the metarule the rule is in, or allrules + + if allrules[1].x then + return nil + end + + if not(findrule) then + return mesecon:flattenrules(allrules) + end + + for m, metarule in ipairs( allrules) do + for _, rule in ipairs(metarule ) do + if mesecon:cmpPos(findrule, rule) and mesecon:cmpSpecial(findrule, rule) then + return m + end + end + end +end + +function mesecon:rule2meta(findrule, allrules) + local index = mesecon:rule2metaindex(findrule, allrules) + if index == nil then + if allrules[1].x then + return allrules + else + return {} + end + end + return allrules[index] +end + +if convert_base then + print( + "base2dec is tonumber(num,base1)\n".. + "commonlib needs dec2base(num,base2)\n".. + "and it needs base2base(num,base1,base2),\n".. + "which is dec2base(tonumber(num,base1),base2)" + ) +else + function dec2bin(n) + local x, y = math.floor(n / 2), n % 2 + if (n > 1) then + return dec2bin(x)..y + else + return ""..y + end + end +end + +function mesecon:getstate(nodename, states) + for state, name in ipairs(states) do + if name == nodename then + return state + end + end + error(nodename.." doesn't mention itself in "..dump(states)) +end + +function mesecon:getbinstate(nodename, states) + return dec2bin(mesecon:getstate(nodename, states)-1) +end + +function mesecon:get_bit(binary,bit) + bit = bit or 1 + local c = binary:len()-(bit-1) + return binary:sub(c,c) == "1" +end + +function mesecon:set_bit(binary,bit,value) + if value == "1" then + if not mesecon:get_bit(binary,bit) then + return dec2bin(tonumber(binary,2)+math.pow(2,bit-1)) + end + elseif value == "0" then + if mesecon:get_bit(binary,bit) then + return dec2bin(tonumber(binary,2)-math.pow(2,bit-1)) + end + end + return binary + +end + +function mesecon:invertRule(r) + return {x = -r.x, y = -r.y, z = -r.z, sx = r.sx, sy = r.sy, sz = r.sz} +end + +function mesecon:addPosRule(p, r) + return {x = p.x + r.x, y = p.y + r.y, z = p.z + r.z} +end + +function mesecon:cmpPos(p1, p2) + return (p1.x == p2.x and p1.y == p2.y and p1.z == p2.z) +end + +function mesecon:cmpSpecial(r1, r2) + return (r1.sx == r2.sx and r1.sy == r2.sy and r1.sz == r2.sz) +end + +function mesecon:tablecopy(table) -- deep table copy + if type(table) ~= "table" then return table end -- no need to copy + local newtable = {} + + for idx, item in pairs(table) do + if type(item) == "table" then + newtable[idx] = mesecon:tablecopy(item) + else + newtable[idx] = item + end + end + + return newtable +end + +function mesecon:cmpAny(t1, t2) + if type(t1) ~= type(t2) then return false end + if type(t1) ~= "table" and type(t2) ~= "table" then return t1 == t2 end + + for i, e in pairs(t1) do + if not mesecon:cmpAny(e, t2[i]) then return false end + end + + return true +end diff --git a/mods/mesecons/mesecons/wires.lua b/mods/mesecons/mesecons/wires.lua new file mode 100755 index 00000000..499c7814 --- /dev/null +++ b/mods/mesecons/mesecons/wires.lua @@ -0,0 +1,280 @@ +-- naming scheme: wire:(xp)(zp)(xm)(zm)_on/off +-- The conditions in brackets define whether there is a mesecon at that place or not +-- 1 = there is one; 0 = there is none +-- y always means y+ + +box_center = {-1/16, -.5, -1/16, 1/16, -.5+1/16, 1/16} +box_bump1 = { -2/16, -8/16, -2/16, 2/16, -13/32, 2/16 } + +box_xp = {1/16, -.5, -1/16, 8/16, -.5+1/16, 1/16} +box_zp = {-1/16, -.5, 1/16, 1/16, -.5+1/16, 8/16} +box_xm = {-8/16, -.5, -1/16, -1/16, -.5+1/16, 1/16} +box_zm = {-1/16, -.5, -8/16, 1/16, -.5+1/16, -1/16} + +box_xpy = {.5-1/16, -.5+1/16, -1/16, .5, .4999+1/16, 1/16} +box_zpy = {-1/16, -.5+1/16, .5-1/16, 1/16, .4999+1/16, .5} +box_xmy = {-.5, -.5+1/16, -1/16, -.5+1/16, .4999+1/16, 1/16} +box_zmy = {-1/16, -.5+1/16, -.5, 1/16, .4999+1/16, -.5+1/16} + +-- Registering the wires + +for xp=0, 1 do +for zp=0, 1 do +for xm=0, 1 do +for zm=0, 1 do +for xpy=0, 1 do +for zpy=0, 1 do +for xmy=0, 1 do +for zmy=0, 1 do + if (xpy == 1 and xp == 0) or (zpy == 1 and zp == 0) + or (xmy == 1 and xm == 0) or (zmy == 1 and zm == 0) then break end + + local groups + local nodeid = tostring(xp )..tostring(zp )..tostring(xm )..tostring(zm ).. + tostring(xpy)..tostring(zpy)..tostring(xmy)..tostring(zmy) + + if nodeid == "00000000" then + groups = {dig_immediate = 3, mesecon_conductor_craftable=1} + wiredesc = "Mesecon" + else + groups = {dig_immediate = 3, not_in_creative_inventory = 1} + wiredesc = "Mesecons Wire (ID: "..nodeid..")" + end + + local nodebox = {} + local adjx = false + local adjz = false + if xp == 1 then table.insert(nodebox, box_xp) adjx = true end + if zp == 1 then table.insert(nodebox, box_zp) adjz = true end + if xm == 1 then table.insert(nodebox, box_xm) adjx = true end + if zm == 1 then table.insert(nodebox, box_zm) adjz = true end + if xpy == 1 then table.insert(nodebox, box_xpy) end + if zpy == 1 then table.insert(nodebox, box_zpy) end + if xmy == 1 then table.insert(nodebox, box_xmy) end + if zmy == 1 then table.insert(nodebox, box_zmy) end + + if adjx and adjz and (xp + zp + xm + zm > 2) then + table.insert(nodebox, box_bump1) + tiles_off = { + "wires_bump_off.png", + "wires_bump_off.png", + "wires_vertical_off.png", + "wires_vertical_off.png", + "wires_vertical_off.png", + "wires_vertical_off.png" + } + tiles_on = { + "wires_bump_on.png", + "wires_bump_on.png", + "wires_vertical_on.png", + "wires_vertical_on.png", + "wires_vertical_on.png", + "wires_vertical_on.png" + } + else + table.insert(nodebox, box_center) + tiles_off = { + "wires_off.png", + "wires_off.png", + "wires_vertical_off.png", + "wires_vertical_off.png", + "wires_vertical_off.png", + "wires_vertical_off.png" + } + tiles_on = { + "wires_on.png", + "wires_on.png", + "wires_vertical_on.png", + "wires_vertical_on.png", + "wires_vertical_on.png", + "wires_vertical_on.png" + } + end + + if nodeid == "00000000" then + nodebox = {-8/16, -.5, -1/16, 8/16, -.5+1/16, 1/16} + end + + minetest.register_node("mesecons:wire_"..nodeid.."_off", { + description = wiredesc, + drawtype = "nodebox", + tiles = tiles_off, +-- inventory_image = "wires_inv.png", +-- wield_image = "wires_inv.png", + inventory_image = "jeija_mesecon_off.png", + wield_image = "jeija_mesecon_off.png", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + selection_box = { + type = "fixed", + fixed = {-.5, -.5, -.5, .5, -.5+4/16, .5} + }, + node_box = { + type = "fixed", + fixed = nodebox + }, + groups = groups, + walkable = false, + stack_max = 99, + drop = "mesecons:wire_00000000_off", + mesecons = {conductor={ + state = mesecon.state.off, + onstate = "mesecons:wire_"..nodeid.."_on" + }} + }) + + minetest.register_node("mesecons:wire_"..nodeid.."_on", { + description = "Wire ID:"..nodeid, + drawtype = "nodebox", + tiles = tiles_on, +-- inventory_image = "wires_inv.png", +-- wield_image = "wires_inv.png", + inventory_image = "jeija_mesecon_off.png", + wield_image = "jeija_mesecon_off.png", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + selection_box = { + type = "fixed", + fixed = {-.5, -.5, -.5, .5, -.5+4/16, .5} + }, + node_box = { + type = "fixed", + fixed = nodebox + }, + groups = {dig_immediate = 3, mesecon = 2, not_in_creative_inventory = 1}, + walkable = false, + stack_max = 99, + drop = "mesecons:wire_00000000_off", + mesecons = {conductor={ + state = mesecon.state.on, + offstate = "mesecons:wire_"..nodeid.."_off" + }} + }) +end +end +end +end +end +end +end +end + +-- Updating the wires: +-- Place the right connection wire + +local update_on_place_dig = function (pos, node) + if minetest.registered_nodes[node.name] + and minetest.registered_nodes[node.name].mesecons then + mesecon:update_autoconnect(pos) + end +end + +minetest.register_on_placenode(update_on_place_dig) +minetest.register_on_dignode(update_on_place_dig) + +function mesecon:update_autoconnect(pos, secondcall, replace_old) + local xppos = {x=pos.x+1, y=pos.y, z=pos.z} + local zppos = {x=pos.x, y=pos.y, z=pos.z+1} + local xmpos = {x=pos.x-1, y=pos.y, z=pos.z} + local zmpos = {x=pos.x, y=pos.y, z=pos.z-1} + + local xpympos = {x=pos.x+1, y=pos.y-1, z=pos.z} + local zpympos = {x=pos.x, y=pos.y-1, z=pos.z+1} + local xmympos = {x=pos.x-1, y=pos.y-1, z=pos.z} + local zmympos = {x=pos.x, y=pos.y-1, z=pos.z-1} + + local xpypos = {x=pos.x+1, y=pos.y+1, z=pos.z} + local zpypos = {x=pos.x, y=pos.y+1, z=pos.z+1} + local xmypos = {x=pos.x-1, y=pos.y+1, z=pos.z} + local zmypos = {x=pos.x, y=pos.y+1, z=pos.z-1} + + if secondcall == nil then + mesecon:update_autoconnect(xppos, true) + mesecon:update_autoconnect(zppos, true) + mesecon:update_autoconnect(xmpos, true) + mesecon:update_autoconnect(zmpos, true) + + mesecon:update_autoconnect(xpypos, true) + mesecon:update_autoconnect(zpypos, true) + mesecon:update_autoconnect(xmypos, true) + mesecon:update_autoconnect(zmypos, true) + + mesecon:update_autoconnect(xpympos, true) + mesecon:update_autoconnect(zpympos, true) + mesecon:update_autoconnect(xmympos, true) + mesecon:update_autoconnect(zmympos, true) + end + + nodename = minetest.get_node(pos).name + if string.find(nodename, "mesecons:wire_") == nil and not replace_old then return nil end + + if mesecon:rules_link_anydir(pos, xppos) then xp = 1 else xp = 0 end + if mesecon:rules_link_anydir(pos, xmpos) then xm = 1 else xm = 0 end + if mesecon:rules_link_anydir(pos, zppos) then zp = 1 else zp = 0 end + if mesecon:rules_link_anydir(pos, zmpos) then zm = 1 else zm = 0 end + + if mesecon:rules_link_anydir(pos, xpympos) then xp = 1 end + if mesecon:rules_link_anydir(pos, xmympos) then xm = 1 end + if mesecon:rules_link_anydir(pos, zpympos) then zp = 1 end + if mesecon:rules_link_anydir(pos, zmympos) then zm = 1 end + + if mesecon:rules_link_anydir(pos, xpypos) then xpy = 1 else xpy = 0 end + if mesecon:rules_link_anydir(pos, zpypos) then zpy = 1 else zpy = 0 end + if mesecon:rules_link_anydir(pos, xmypos) then xmy = 1 else xmy = 0 end + if mesecon:rules_link_anydir(pos, zmypos) then zmy = 1 else zmy = 0 end + + if xpy == 1 then xp = 1 end + if zpy == 1 then zp = 1 end + if xmy == 1 then xm = 1 end + if zmy == 1 then zm = 1 end + + local nodeid = tostring(xp )..tostring(zp )..tostring(xm )..tostring(zm ).. + tostring(xpy)..tostring(zpy)..tostring(xmy)..tostring(zmy) + + + if string.find(nodename, "_off") ~= nil then + minetest.set_node(pos, {name = "mesecons:wire_"..nodeid.."_off"}) + else + minetest.set_node(pos, {name = "mesecons:wire_"..nodeid.."_on" }) + end +end + +if not minetest.registered_nodes["default:stone_with_mese"] then --before MESE update, use old recipes + minetest.register_craft({ + output = "mesecons:wire_00000000_off 18", + recipe = { + {"default:mese"}, + } + }) +else + + minetest.register_craft({ + type = "cooking", + output = "mesecons:wire_00000000_off 2", + recipe = "default:mese_crystal_fragment", + cooktime = 3, + }) + + minetest.register_craft({ + type = "cooking", + output = "mesecons:wire_00000000_off 18", + recipe = "default:mese_crystal", + cooktime = 15, + }) + + minetest.register_craft({ + type = "cooking", + output = "mesecons:wire_00000000_off 162", + recipe = "default:mese", + cooktime = 30, + }) + +end + +minetest.register_craft({ + type = "cooking", + output = "mesecons:wire_00000000_off 16", + recipe = "default:mese_crystal", +}) diff --git a/mods/mesecons/mesecons_alias/depends.txt b/mods/mesecons/mesecons_alias/depends.txt new file mode 100755 index 00000000..acaa9241 --- /dev/null +++ b/mods/mesecons/mesecons_alias/depends.txt @@ -0,0 +1 @@ +mesecons diff --git a/mods/mesecons/mesecons_alias/init.lua b/mods/mesecons/mesecons_alias/init.lua new file mode 100755 index 00000000..d73b5a75 --- /dev/null +++ b/mods/mesecons/mesecons_alias/init.lua @@ -0,0 +1,38 @@ +-- This file registers aliases for the /give /giveme commands. + +minetest.register_alias("mesecons:removestone", "mesecons_random:removestone") +minetest.register_alias("mesecons:power_plant", "mesecons_powerplant:power_plant") +minetest.register_alias("mesecons:powerplant", "mesecons_powerplant:power_plant") +minetest.register_alias("mesecons:meselamp", "mesecons_lamp:lamp_off") +minetest.register_alias("mesecons:mesecon", "mesecons:wire_00000000_off") +minetest.register_alias("mesecons:object_detector", "mesecons_detector:object_detector_off") +minetest.register_alias("mesecons:wireless_inverter", "mesecons_wireless:wireless_inverter_on") +minetest.register_alias("mesecons:wireless_receiver", "mesecons_wireless:wireless_receiver_off") +minetest.register_alias("mesecons:wireless_transmitter", "mesecons_wireless:wireless_transmitter_off") +minetest.register_alias("mesecons:switch", "mesecons_switch:mesecon_switch_off") +minetest.register_alias("mesecons:button", "mesecons_button:button_off") +minetest.register_alias("mesecons:piston", "mesecons_pistons:piston_normal_off") +minetest.register_alias("mesecons:blinky_plant", "mesecons_blinkyplant:blinky_plant_off") +minetest.register_alias("mesecons:mesecon_torch", "mesecons_torch:mesecon_torch_on") +minetest.register_alias("mesecons:torch", "mesecons_torch:mesecon_torch_on") +minetest.register_alias("mesecons:hydro_turbine", "mesecons_hydroturbine:hydro_turbine_off") +minetest.register_alias("mesecons:pressure_plate_stone", "mesecons_pressureplates:pressure_plate_stone_off") +minetest.register_alias("mesecons:pressure_plate_wood", "mesecons_pressureplates:pressure_plate_wood_off") +minetest.register_alias("mesecons:mesecon_socket", "mesecons_temperest:mesecon_socket_off") +minetest.register_alias("mesecons:mesecon_inverter", "mesecons_temperest:mesecon_inverter_on") +minetest.register_alias("mesecons:movestone", "mesecons_movestones:movestone") +minetest.register_alias("mesecons:sticky_movestone", "mesecons_movestones:sticky_movestone") +minetest.register_alias("mesecons:noteblock", "mesecons_noteblock:noteblock") +minetest.register_alias("mesecons:microcontroller", "mesecons_microcontroller:microcontroller0000") +minetest.register_alias("mesecons:delayer", "mesecons_delayer:delayer_off_1") +minetest.register_alias("mesecons:solarpanel", "mesecons_solarpanel:solar_panel_off") + + +-- Backwards compatibility +minetest.register_alias("mesecons:mesecon_off", "mesecons:wire_00000000_off") +minetest.register_alias("mesecons_pistons:piston_sticky", "mesecons_pistons:piston_sticky_on") +minetest.register_alias("mesecons_pistons:piston_normal", "mesecons_pistons:piston_normal_on") +minetest.register_alias("mesecons_pistons:piston_up_normal", "mesecons_pistons:piston_up_normal_on") +minetest.register_alias("mesecons_pistons:piston_down_normal", "mesecons_pistons:piston_down_normal_on") +minetest.register_alias("mesecons_pistons:piston_up_sticky", "mesecons_pistons:piston_up_sticky_on") +minetest.register_alias("mesecons_pistons:piston_down_sticky", "mesecons_pistons:piston_down_sticky_on") diff --git a/mods/mesecons/mesecons_button/depends.txt b/mods/mesecons/mesecons_button/depends.txt new file mode 100755 index 00000000..19c798c8 --- /dev/null +++ b/mods/mesecons/mesecons_button/depends.txt @@ -0,0 +1,2 @@ +mesecons +mesecons_receiver diff --git a/mods/mesecons/mesecons_button/init.lua b/mods/mesecons/mesecons_button/init.lua new file mode 100755 index 00000000..f4a91984 --- /dev/null +++ b/mods/mesecons/mesecons_button/init.lua @@ -0,0 +1,98 @@ +-- WALL BUTTON +-- A button that when pressed emits power for 1 second +-- and then turns off again + +mesecon.button_turnoff = function (pos) + local node = minetest.get_node(pos) + if node.name=="mesecons_button:button_on" then --has not been dug + minetest.swap_node(pos, {name = "mesecons_button:button_off", param2=node.param2}) + minetest.sound_play("mesecons_button_pop", {pos=pos}) + local rules = mesecon.rules.buttonlike_get(node) + mesecon:receptor_off(pos, rules) + end +end + +minetest.register_node("mesecons_button:button_off", { + drawtype = "nodebox", + tiles = { + "jeija_wall_button_sides.png", + "jeija_wall_button_sides.png", + "jeija_wall_button_sides.png", + "jeija_wall_button_sides.png", + "jeija_wall_button_sides.png", + "jeija_wall_button_off.png" + }, + paramtype = "light", + paramtype2 = "facedir", + legacy_wallmounted = true, + walkable = false, + sunlight_propagates = true, + selection_box = { + type = "fixed", + fixed = { -6/16, -6/16, 5/16, 6/16, 6/16, 8/16 } + }, + node_box = { + type = "fixed", + fixed = { + { -6/16, -6/16, 6/16, 6/16, 6/16, 8/16 }, -- the thin plate behind the button + { -4/16, -2/16, 4/16, 4/16, 2/16, 6/16 } -- the button itself + } + }, + groups = {dig_immediate=2, mesecon_needs_receiver = 1}, + description = "Button", + on_punch = function (pos, node) + minetest.swap_node(pos, {name = "mesecons_button:button_on", param2=node.param2}) + mesecon:receptor_on(pos, mesecon.rules.buttonlike_get(node)) + minetest.sound_play("mesecons_button_push", {pos=pos}) + minetest.after(1, mesecon.button_turnoff, pos) + end, + sounds = default.node_sound_stone_defaults(), + mesecons = {receptor = { + state = mesecon.state.off, + rules = mesecon.rules.buttonlike_get + }} +}) + +minetest.register_node("mesecons_button:button_on", { + drawtype = "nodebox", + tiles = { + "jeija_wall_button_sides.png", + "jeija_wall_button_sides.png", + "jeija_wall_button_sides.png", + "jeija_wall_button_sides.png", + "jeija_wall_button_sides.png", + "jeija_wall_button_on.png" + }, + paramtype = "light", + paramtype2 = "facedir", + legacy_wallmounted = true, + walkable = false, + light_source = LIGHT_MAX-7, + sunlight_propagates = true, + selection_box = { + type = "fixed", + fixed = { -6/16, -6/16, 5/16, 6/16, 6/16, 8/16 } + }, + node_box = { + type = "fixed", + fixed = { + { -6/16, -6/16, 6/16, 6/16, 6/16, 8/16 }, + { -4/16, -2/16, 11/32, 4/16, 2/16, 6/16 } + } + }, + groups = {dig_immediate=2, not_in_creative_inventory=1, mesecon_needs_receiver = 1}, + drop = 'mesecons_button:button_off', + description = "Button", + sounds = default.node_sound_stone_defaults(), + mesecons = {receptor = { + state = mesecon.state.on, + rules = mesecon.rules.buttonlike_get + }} +}) + +minetest.register_craft({ + output = "mesecons_button:button_off 2", + recipe = { + {"group:mesecon_conductor_craftable","default:stone"}, + } +}) diff --git a/mods/mesecons/mesecons_button/sounds/mesecons_button_pop.ogg b/mods/mesecons/mesecons_button/sounds/mesecons_button_pop.ogg new file mode 100755 index 00000000..9d56bb8c Binary files /dev/null and b/mods/mesecons/mesecons_button/sounds/mesecons_button_pop.ogg differ diff --git a/mods/mesecons/mesecons_button/sounds/mesecons_button_push.ogg b/mods/mesecons/mesecons_button/sounds/mesecons_button_push.ogg new file mode 100755 index 00000000..53d45c18 Binary files /dev/null and b/mods/mesecons/mesecons_button/sounds/mesecons_button_push.ogg differ diff --git a/mods/mesecons/mesecons_button/textures/jeija_wall_button_off.png b/mods/mesecons/mesecons_button/textures/jeija_wall_button_off.png new file mode 100755 index 00000000..d55f7c0a Binary files /dev/null and b/mods/mesecons/mesecons_button/textures/jeija_wall_button_off.png differ diff --git a/mods/mesecons/mesecons_button/textures/jeija_wall_button_on.png b/mods/mesecons/mesecons_button/textures/jeija_wall_button_on.png new file mode 100755 index 00000000..2286f539 Binary files /dev/null and b/mods/mesecons/mesecons_button/textures/jeija_wall_button_on.png differ diff --git a/mods/mesecons/mesecons_button/textures/jeija_wall_button_sides.png b/mods/mesecons/mesecons_button/textures/jeija_wall_button_sides.png new file mode 100755 index 00000000..d90848ff Binary files /dev/null and b/mods/mesecons/mesecons_button/textures/jeija_wall_button_sides.png differ diff --git a/mods/mesecons/mesecons_commandblock/depends.txt b/mods/mesecons/mesecons_commandblock/depends.txt new file mode 100755 index 00000000..acaa9241 --- /dev/null +++ b/mods/mesecons/mesecons_commandblock/depends.txt @@ -0,0 +1 @@ +mesecons diff --git a/mods/mesecons/mesecons_commandblock/init.lua b/mods/mesecons/mesecons_commandblock/init.lua new file mode 100755 index 00000000..192d012f --- /dev/null +++ b/mods/mesecons/mesecons_commandblock/init.lua @@ -0,0 +1,183 @@ +minetest.register_chatcommand("say", { + params = "", + description = "Say as the server", + privs = {server = true}, + func = function(name, param) + minetest.chat_send_all("*** " .. param) + minetest.log("action", name .. " broadcasts \"" .. param .. "\".") + end +}) + +if minetest.setting_getbool("enable_damage") then + minetest.register_chatcommand("hp", { + params = " ", + description = "Set health of to HP", + privs = {ban = true}, + func = function(name, param) + local found, _, target, value = param:find("^([^%s]+)%s+(%d+)$") + if found == nil then + minetest.chat_send_player(name, "Invalid usage: /hp ") + return + end + local player = minetest.get_player_by_name(target) + if player then + player:set_hp(value) + minetest.log("action", name .. " sets " .. target .. "'s HP to " .. value .. ".") + else + minetest.chat_send_player(name, "Invalid target: " .. target) + end + end + }) +end + +local function initialize_data(meta) + local commands = meta:get_string("commands") + meta:set_string("formspec", + "invsize[9,5;]" .. + "textarea[0.5,0.5;8.5,4;commands;Commands;"..commands.."]" .. + "label[1,3.8;@nearest, @farthest, and @random are replaced by the respective player names]" .. + "button_exit[3.3,4.5;2,1;submit;Submit]") + local owner = meta:get_string("owner") + if owner == "" then + owner = "not owned" + else + owner = "owned by " .. owner + end + meta:set_string("infotext", "Command Block\n" .. + "(" .. owner .. ")\n" .. + "Commands: "..commands) +end + +local function construct(pos) + local meta = minetest.get_meta(pos) + + meta:set_string("commands", "tell @nearest Commandblock unconfigured") + + meta:set_string("owner", "") + + initialize_data(meta) +end + +local function after_place(pos, placer) + if placer then + local meta = minetest.get_meta(pos) + meta:set_string("owner", placer:get_player_name()) + initialize_data(meta) + end +end + +local function receive_fields(pos, formname, fields, sender) + if fields.quit then + return + end + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + if owner ~= "" and sender:get_player_name() ~= owner then + return + end + meta:set_string("commands", fields.commands) + + initialize_data(meta) +end + +local function resolve_commands(commands, pos) + local nearest, farthest = nil, nil + local min_distance, max_distance = math.huge, -1 + local players = minetest.get_connected_players() + for index, player in pairs(players) do + local distance = vector.distance(pos, player:getpos()) + if distance < min_distance then + min_distance = distance + nearest = player:get_player_name() + end + if distance > max_distance then + max_distance = distance + farthest = player:get_player_name() + end + end + local random = players[math.random(#players)]:get_player_name() + commands = commands:gsub("@nearest", nearest) + commands = commands:gsub("@farthest", farthest) + commands = commands:gsub("@random", random) + return commands +end + +local function commandblock_action_on(pos, node) + if node.name ~= "mesecons_commandblock:commandblock_off" then + return + end + + minetest.swap_node(pos, {name = "mesecons_commandblock:commandblock_on"}) + + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + if owner == "" then + return + end + + local commands = resolve_commands(meta:get_string("commands"), pos) + for _, command in pairs(commands:split("\n")) do + local pos = command:find(" ") + local cmd, param = command, "" + if pos then + cmd = command:sub(1, pos - 1) + param = command:sub(pos + 1) + end + local cmddef = minetest.chatcommands[cmd] + if not cmddef then + minetest.chat_send_player(owner, "The command "..cmd.." does not exist") + return + end + local has_privs, missing_privs = minetest.check_player_privs(owner, cmddef.privs) + if not has_privs then + minetest.chat_send_player(owner, "You don't have permission " + .."to run "..cmd + .." (missing privileges: " + ..table.concat(missing_privs, ", ")..")") + return + end + cmddef.func(owner, param) + end +end + +local function commandblock_action_off(pos, node) + if node.name == "mesecons_commandblock:commandblock_on" then + minetest.swap_node(pos, {name = "mesecons_commandblock:commandblock_off"}) + end +end + +local function can_dig(pos, player) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + return owner == "" or owner == player:get_player_name() +end + +minetest.register_node("mesecons_commandblock:commandblock_off", { + description = "Command Block", + tiles = {"jeija_commandblock_off.png"}, + inventory_image = minetest.inventorycube("jeija_commandblock_off.png"), + groups = {cracky=2, mesecon_effector_off=1}, + on_construct = construct, + after_place_node = after_place, + on_receive_fields = receive_fields, + can_dig = can_dig, + sounds = default.node_sound_stone_defaults(), + mesecons = {effector = { + action_on = commandblock_action_on + }} +}) + +minetest.register_node("mesecons_commandblock:commandblock_on", { + tiles = {"jeija_commandblock_on.png"}, + groups = {cracky=2, mesecon_effector_on=1, not_in_creative_inventory=1}, + light_source = 10, + drop = "mesecons_commandblock:commandblock_off", + on_construct = construct, + after_place_node = after_place, + on_receive_fields = receive_fields, + can_dig = can_dig, + sounds = default.node_sound_stone_defaults(), + mesecons = {effector = { + action_off = commandblock_action_off + }} +}) diff --git a/mods/mesecons/mesecons_commandblock/textures/jeija_close_window.png b/mods/mesecons/mesecons_commandblock/textures/jeija_close_window.png new file mode 100755 index 00000000..7193efd8 Binary files /dev/null and b/mods/mesecons/mesecons_commandblock/textures/jeija_close_window.png differ diff --git a/mods/mesecons/mesecons_commandblock/textures/jeija_commandblock_off.png b/mods/mesecons/mesecons_commandblock/textures/jeija_commandblock_off.png new file mode 100755 index 00000000..0deb65d6 Binary files /dev/null and b/mods/mesecons/mesecons_commandblock/textures/jeija_commandblock_off.png differ diff --git a/mods/mesecons/mesecons_commandblock/textures/jeija_commandblock_on.png b/mods/mesecons/mesecons_commandblock/textures/jeija_commandblock_on.png new file mode 100755 index 00000000..32022f54 Binary files /dev/null and b/mods/mesecons/mesecons_commandblock/textures/jeija_commandblock_on.png differ diff --git a/mods/mesecons/mesecons_compatibility/depends.txt b/mods/mesecons/mesecons_compatibility/depends.txt new file mode 100755 index 00000000..ed2fcd8a --- /dev/null +++ b/mods/mesecons/mesecons_compatibility/depends.txt @@ -0,0 +1,2 @@ +mesecons +doors diff --git a/mods/mesecons/mesecons_compatibility/init.lua b/mods/mesecons/mesecons_compatibility/init.lua new file mode 100755 index 00000000..5bdce27b --- /dev/null +++ b/mods/mesecons/mesecons_compatibility/init.lua @@ -0,0 +1,167 @@ +doors = {} + +-- Registers a door - REDEFINITION ONLY | DOORS MOD MUST HAVE BEEN LOADED BEFORE +-- name: The name of the door +-- def: a table with the folowing fields: +-- description +-- inventory_image +-- groups +-- tiles_bottom: the tiles of the bottom part of the door {front, side} +-- tiles_top: the tiles of the bottom part of the door {front, side} +-- If the following fields are not defined the default values are used +-- node_box_bottom +-- node_box_top +-- selection_box_bottom +-- selection_box_top +-- only_placer_can_open: if true only the player who placed the door can +-- open it + +function doors:register_door(name, def) + def.groups.not_in_creative_inventory = 1 + + local box = {{-0.5, -0.5, -0.5, 0.5, 0.5, -0.5+1.5/16}} + + if not def.node_box_bottom then + def.node_box_bottom = box + end + if not def.node_box_top then + def.node_box_top = box + end + if not def.selection_box_bottom then + def.selection_box_bottom= box + end + if not def.selection_box_top then + def.selection_box_top = box + end + + local tt = def.tiles_top + local tb = def.tiles_bottom + + local function after_dig_node(pos, name) + if minetest.get_node(pos).name == name then + minetest.remove_node(pos) + 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] + + local meta = minetest.get_meta(pos):to_table() + minetest.set_node(pos, {name=replace_dir, param2=p2}) + minetest.get_meta(pos):from_table(meta) + + pos.y = pos.y-dir + meta = minetest.get_meta(pos):to_table() + minetest.set_node(pos, {name=replace, param2=p2}) + minetest.get_meta(pos):from_table(meta) + end + + local function on_mesecons_signal_open (pos, node) + on_rightclick(pos, 1, name.."_t_1", name.."_b_2", name.."_t_2", {1,2,3,0}) + end + + local function on_mesecons_signal_close (pos, node) + on_rightclick(pos, 1, name.."_t_2", name.."_b_1", name.."_t_1", {3,0,1,2}) + end + + local function check_player_priv(pos, player) + if not def.only_placer_can_open then + return true + end + local meta = minetest.get_meta(pos) + local pn = player:get_player_name() + return meta:get_string("doors_owner") == pn + end + + minetest.register_node(":"..name.."_b_1", { + tiles = {tb[2], tb[2], tb[2], tb[2], tb[1], tb[1].."^[transformfx"}, + paramtype = "light", + paramtype2 = "facedir", + drop = name, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = def.node_box_bottom + }, + selection_box = { + type = "fixed", + fixed = def.selection_box_bottom + }, + groups = def.groups, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + pos.y = pos.y+1 + after_dig_node(pos, name.."_t_1") + end, + + on_rightclick = function(pos, node, puncher) + if check_player_priv(pos, puncher) then + on_rightclick(pos, 1, name.."_t_1", name.."_b_2", name.."_t_2", {1,2,3,0}) + end + end, + + mesecons = {effector = { + action_on = on_mesecons_signal_open + }}, + + can_dig = check_player_priv, + }) + + 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") + end, + + on_rightclick = function(pos, node, puncher) + if check_player_priv(pos, puncher) then + on_rightclick(pos, 1, name.."_t_2", name.."_b_1", name.."_t_1", {3,0,1,2}) + end + end, + + mesecons = {effector = { + action_off = on_mesecons_signal_close + }}, + + can_dig = check_player_priv, + }) +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(), +}) + +doors:register_door("doors:door_steel", { + description = "Steel Door", + inventory_image = "door_steel.png", + groups = {snappy=1,bendy=2,cracky=1,melty=2,level=2,door=1}, + tiles_bottom = {"door_steel_b.png", "door_grey.png"}, + tiles_top = {"door_steel_a.png", "door_grey.png"}, + only_placer_can_open = true, + sounds = default.node_sound_stone_defaults(), +}) diff --git a/mods/mesecons/mesecons_delayer/depends.txt b/mods/mesecons/mesecons_delayer/depends.txt new file mode 100755 index 00000000..acaa9241 --- /dev/null +++ b/mods/mesecons/mesecons_delayer/depends.txt @@ -0,0 +1 @@ +mesecons diff --git a/mods/mesecons/mesecons_delayer/init.lua b/mods/mesecons/mesecons_delayer/init.lua new file mode 100755 index 00000000..239d3784 --- /dev/null +++ b/mods/mesecons/mesecons_delayer/init.lua @@ -0,0 +1,179 @@ +-- Function that get the input/output rules of the delayer +local delayer_get_output_rules = function(node) + local rules = {{x = 0, y = 0, z = 1}} + for i = 0, node.param2 do + rules = mesecon:rotate_rules_left(rules) + end + return rules +end + +local delayer_get_input_rules = function(node) + local rules = {{x = 0, y = 0, z = -1}} + for i = 0, node.param2 do + rules = mesecon:rotate_rules_left(rules) + end + return rules +end + +-- Functions that are called after the delay time + +local delayer_activate = function(pos, node) + local def = minetest.registered_nodes[node.name] + local time = def.delayer_time + minetest.swap_node(pos, {name = def.delayer_onstate, param2=node.param2}) + mesecon.queue:add_action(pos, "receptor_on", {delayer_get_output_rules(node)}, time, nil) +end + +local delayer_deactivate = function(pos, node) + local def = minetest.registered_nodes[node.name] + local time = def.delayer_time + minetest.swap_node(pos, {name = def.delayer_offstate, param2=node.param2}) + mesecon.queue:add_action(pos, "receptor_off", {delayer_get_output_rules(node)}, time, nil) +end + +-- Register the 2 (states) x 4 (delay times) delayers + +for i = 1, 4 do +local groups = {} +if i == 1 then + groups = {bendy=2,snappy=1,dig_immediate=2} +else + groups = {bendy=2,snappy=1,dig_immediate=2, not_in_creative_inventory=1} +end + +local delaytime +if i == 1 then delaytime = 0.1 +elseif i == 2 then delaytime = 0.3 +elseif i == 3 then delaytime = 0.5 +elseif i == 4 then delaytime = 1.0 end + +boxes = {{ -6/16, -8/16, -6/16, 6/16, -7/16, 6/16 }, -- the main slab + + { -2/16, -7/16, -4/16, 2/16, -26/64, -3/16 }, -- the jeweled "on" indicator + { -3/16, -7/16, -3/16, 3/16, -26/64, -2/16 }, + { -4/16, -7/16, -2/16, 4/16, -26/64, 2/16 }, + { -3/16, -7/16, 2/16, 3/16, -26/64, 3/16 }, + { -2/16, -7/16, 3/16, 2/16, -26/64, 4/16 }, + + { -6/16, -7/16, -6/16, -4/16, -27/64, -4/16 }, -- the timer indicator + { -8/16, -8/16, -1/16, -6/16, -7/16, 1/16 }, -- the two wire stubs + { 6/16, -8/16, -1/16, 8/16, -7/16, 1/16 }} + +minetest.register_node("mesecons_delayer:delayer_off_"..tostring(i), { + description = "Delayer", + drawtype = "nodebox", + tiles = { + "mesecons_delayer_off_"..tostring(i)..".png", + "mesecons_delayer_bottom.png", + "mesecons_delayer_ends_off.png", + "mesecons_delayer_ends_off.png", + "mesecons_delayer_sides_off.png", + "mesecons_delayer_sides_off.png" + }, + inventory_image = "mesecons_delayer_off_1.png", + wield_image = "mesecons_delayer_off_1.png", + walkable = true, + selection_box = { + type = "fixed", + fixed = { -8/16, -8/16, -8/16, 8/16, -6/16, 8/16 }, + }, + node_box = { + type = "fixed", + fixed = boxes + }, + groups = groups, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + is_ground_content = true, + drop = 'mesecons_delayer:delayer_off_1', + on_punch = function (pos, node) + if node.name=="mesecons_delayer:delayer_off_1" then + minetest.swap_node(pos, {name = "mesecons_delayer:delayer_off_2", param2=node.param2}) + elseif node.name=="mesecons_delayer:delayer_off_2" then + minetest.swap_node(pos, {name = "mesecons_delayer:delayer_off_3", param2=node.param2}) + elseif node.name=="mesecons_delayer:delayer_off_3" then + minetest.swap_node(pos, {name = "mesecons_delayer:delayer_off_4", param2=node.param2}) + elseif node.name=="mesecons_delayer:delayer_off_4" then + minetest.swap_node(pos, {name = "mesecons_delayer:delayer_off_1", param2=node.param2}) + end + end, + delayer_time = delaytime, + delayer_onstate = "mesecons_delayer:delayer_on_"..tostring(i), + sounds = default.node_sound_stone_defaults(), + mesecons = { + receptor = + { + state = mesecon.state.off, + rules = delayer_get_output_rules + }, + effector = + { + rules = delayer_get_input_rules, + action_on = delayer_activate + } + } +}) + + +minetest.register_node("mesecons_delayer:delayer_on_"..tostring(i), { + description = "You hacker you", + drawtype = "nodebox", + tiles = { + "mesecons_delayer_on_"..tostring(i)..".png", + "mesecons_delayer_bottom.png", + "mesecons_delayer_ends_on.png", + "mesecons_delayer_ends_on.png", + "mesecons_delayer_sides_on.png", + "mesecons_delayer_sides_on.png" + }, + walkable = true, + selection_box = { + type = "fixed", + fixed = { -8/16, -8/16, -8/16, 8/16, -6/16, 8/16 }, + }, + node_box = { + type = "fixed", + fixed = boxes + }, + groups = {bendy = 2, snappy = 1, dig_immediate = 2, not_in_creative_inventory = 1}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + is_ground_content = true, + drop = 'mesecons_delayer:delayer_off_1', + on_punch = function (pos, node) + if node.name=="mesecons_delayer:delayer_on_1" then + minetest.swap_node(pos, {name = "mesecons_delayer:delayer_on_2", param2=node.param2}) + elseif node.name=="mesecons_delayer:delayer_on_2" then + minetest.swap_node(pos, {name = "mesecons_delayer:delayer_on_3", param2=node.param2}) + elseif node.name=="mesecons_delayer:delayer_on_3" then + minetest.swap_node(pos, {name = "mesecons_delayer:delayer_on_4", param2=node.param2}) + elseif node.name=="mesecons_delayer:delayer_on_4" then + minetest.swap_node(pos, {name = "mesecons_delayer:delayer_on_1", param2=node.param2}) + end + end, + delayer_time = delaytime, + delayer_offstate = "mesecons_delayer:delayer_off_"..tostring(i), + mesecons = { + receptor = + { + state = mesecon.state.on, + rules = delayer_get_output_rules + }, + effector = + { + rules = delayer_get_input_rules, + action_off = delayer_deactivate + } + } +}) +end + +minetest.register_craft({ + output = "mesecons_delayer:delayer_off_1", + recipe = { + {"mesecons_torch:mesecon_torch_on", "group:mesecon_conductor_craftable", "mesecons_torch:mesecon_torch_on"}, + {"default:cobble","default:cobble", "default:cobble"}, + } +}) diff --git a/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_bottom.png b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_bottom.png new file mode 100755 index 00000000..2307b39f Binary files /dev/null and b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_bottom.png differ diff --git a/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_ends_off.png b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_ends_off.png new file mode 100755 index 00000000..ae1a4e43 Binary files /dev/null and b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_ends_off.png differ diff --git a/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_ends_on.png b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_ends_on.png new file mode 100755 index 00000000..11166e51 Binary files /dev/null and b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_ends_on.png differ diff --git a/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_off_1.png b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_off_1.png new file mode 100755 index 00000000..20d9efc3 Binary files /dev/null and b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_off_1.png differ diff --git a/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_off_2.png b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_off_2.png new file mode 100755 index 00000000..590d62f1 Binary files /dev/null and b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_off_2.png differ diff --git a/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_off_3.png b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_off_3.png new file mode 100755 index 00000000..57ac4c42 Binary files /dev/null and b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_off_3.png differ diff --git a/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_off_4.png b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_off_4.png new file mode 100755 index 00000000..94fc00cb Binary files /dev/null and b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_off_4.png differ diff --git a/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_on_1.png b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_on_1.png new file mode 100755 index 00000000..bcc70b65 Binary files /dev/null and b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_on_1.png differ diff --git a/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_on_2.png b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_on_2.png new file mode 100755 index 00000000..a294f158 Binary files /dev/null and b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_on_2.png differ diff --git a/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_on_3.png b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_on_3.png new file mode 100755 index 00000000..e7749f4b Binary files /dev/null and b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_on_3.png differ diff --git a/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_on_4.png b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_on_4.png new file mode 100755 index 00000000..bf5a18f6 Binary files /dev/null and b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_on_4.png differ diff --git a/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_sides_off.png b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_sides_off.png new file mode 100755 index 00000000..604ce6ae Binary files /dev/null and b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_sides_off.png differ diff --git a/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_sides_on.png b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_sides_on.png new file mode 100755 index 00000000..46bb1f6c Binary files /dev/null and b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_sides_on.png differ diff --git a/mods/mesecons/mesecons_extrawires/corner.lua b/mods/mesecons/mesecons_extrawires/corner.lua new file mode 100755 index 00000000..d7f7a029 --- /dev/null +++ b/mods/mesecons/mesecons_extrawires/corner.lua @@ -0,0 +1,83 @@ +local corner_nodebox = { + type = "fixed", + fixed = {{ -16/32-0.001, -17/32, -3/32, 0, -13/32, 3/32 }, + { -3/32, -17/32, -16/32+0.001, 3/32, -13/32, 3/32}} +} + +local corner_selectionbox = { + type = "fixed", + fixed = { -16/32-0.001, -18/32, -16/32, 5/32, -12/32, 5/32 }, +} + +local corner_get_rules = function (node) + local rules = + {{x = 1, y = 0, z = 0}, + {x = 0, y = 0, z = -1}} + + for i = 0, node.param2 do + rules = mesecon:rotate_rules_left(rules) + end + + return rules +end + +minetest.register_node("mesecons_extrawires:corner_on", { + drawtype = "nodebox", + tiles = { + "jeija_insulated_wire_curved_tb_on.png", + "jeija_insulated_wire_curved_tb_on.png^[transformR270", + "jeija_insulated_wire_sides_on.png", + "jeija_insulated_wire_ends_on.png", + "jeija_insulated_wire_sides_on.png", + "jeija_insulated_wire_ends_on.png" + }, + paramtype = "light", + paramtype2 = "facedir", + walkable = false, + sunlight_propagates = true, + selection_box = corner_selectionbox, + node_box = corner_nodebox, + groups = {dig_immediate = 3, not_in_creative_inventory = 1}, + drop = "mesecons_extrawires:corner_off", + mesecons = {conductor = + { + state = mesecon.state.on, + rules = corner_get_rules, + offstate = "mesecons_extrawires:corner_off" + }} +}) + +minetest.register_node("mesecons_extrawires:corner_off", { + drawtype = "nodebox", + description = "Mesecon Corner", + tiles = { + "jeija_insulated_wire_curved_tb_off.png", + "jeija_insulated_wire_curved_tb_off.png^[transformR270", + "jeija_insulated_wire_sides_off.png", + "jeija_insulated_wire_ends_off.png", + "jeija_insulated_wire_sides_off.png", + "jeija_insulated_wire_ends_off.png" + }, + paramtype = "light", + paramtype2 = "facedir", + walkable = false, + sunlight_propagates = true, + selection_box = corner_selectionbox, + node_box = corner_nodebox, + groups = {dig_immediate = 3}, + mesecons = {conductor = + { + state = mesecon.state.off, + rules = corner_get_rules, + onstate = "mesecons_extrawires:corner_on" + }} +}) + +minetest.register_craft({ + output = "mesecons_extrawires:corner_off 3", + recipe = { + {"", "", ""}, + {"mesecons_insulated:insulated_off", "mesecons_insulated:insulated_off", ""}, + {"", "mesecons_insulated:insulated_off", ""}, + } +}) diff --git a/mods/mesecons/mesecons_extrawires/crossover.lua b/mods/mesecons/mesecons_extrawires/crossover.lua new file mode 100755 index 00000000..93b96382 --- /dev/null +++ b/mods/mesecons/mesecons_extrawires/crossover.lua @@ -0,0 +1,176 @@ +function crossover_get_rules(node) + return { + {--first wire + {x=-1,y=0,z=0}, + {x=1,y=0,z=0}, + }, + {--second wire + {x=0,y=0,z=-1}, + {x=0,y=0,z=1}, + }, + } +end + +local crossover_states = { + "mesecons_extrawires:crossover_off", + "mesecons_extrawires:crossover_01", + "mesecons_extrawires:crossover_10", + "mesecons_extrawires:crossover_on", +} + +minetest.register_node("mesecons_extrawires:crossover_off", { + description = "Insulated Crossover", + drawtype = "nodebox", + tiles = { + "jeija_insulated_wire_crossing_tb_off.png", + "jeija_insulated_wire_crossing_tb_off.png", + "jeija_insulated_wire_ends_off.png" + }, + paramtype = "light", + walkable = false, + stack_max = 99, + selection_box = {type="fixed", fixed={-16/32-0.0001, -18/32, -16/32-0.001, 16/32+0.001, -5/32, 16/32+0.001}}, + node_box = { + type = "fixed", + fixed = { + { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 }, + { -3/32, -17/32, -16/32-0.001, 3/32, -13/32, -6/32 }, + { -3/32, -13/32, -9/32, 3/32, -6/32, -6/32 }, + { -3/32, -9/32, -9/32, 3/32, -6/32, 9/32 }, + { -3/32, -13/32, 6/32, 3/32, -6/32, 9/32 }, + { -3/32, -17/32, 6/32, 3/32, -13/32, 16/32+0.001 }, + }, + }, + groups = {dig_immediate=3, mesecon=3, mesecon_conductor_craftable=1}, + mesecons = { + conductor = { + states = crossover_states, + rules = crossover_get_rules(), + } + }, +}) + +minetest.register_node("mesecons_extrawires:crossover_01", { + description = "You hacker you!", + drop = "mesecons_extrawires:crossover_off", + drawtype = "nodebox", + tiles = { + "jeija_insulated_wire_crossing_tb_01.png", + "jeija_insulated_wire_crossing_tb_01.png", + "jeija_insulated_wire_ends_01x.png", + "jeija_insulated_wire_ends_01x.png", + "jeija_insulated_wire_ends_01z.png", + "jeija_insulated_wire_ends_01z.png" + }, + paramtype = "light", + walkable = false, + stack_max = 99, + selection_box = {type="fixed", fixed={-16/32-0.0001, -18/32, -16/32-0.001, 16/32+0.001, -5/32, 16/32+0.001}}, + node_box = { + type = "fixed", + fixed = { + { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 }, + { -3/32, -17/32, -16/32-0.001, 3/32, -13/32, -6/32 }, + { -3/32, -13/32, -9/32, 3/32, -6/32, -6/32 }, + { -3/32, -9/32, -9/32, 3/32, -6/32, 9/32 }, + { -3/32, -13/32, 6/32, 3/32, -6/32, 9/32 }, + { -3/32, -17/32, 6/32, 3/32, -13/32, 16/32+0.001 }, + }, + }, + groups = {dig_immediate=3, mesecon=3, not_in_creative_inventory=1}, + mesecons = { + conductor = { + states = crossover_states, + rules = crossover_get_rules(), + } + }, +}) + +minetest.register_node("mesecons_extrawires:crossover_10", { + description = "You hacker you!", + drop = "mesecons_extrawires:crossover_off", + drawtype = "nodebox", + tiles = { + "jeija_insulated_wire_crossing_tb_10.png", + "jeija_insulated_wire_crossing_tb_10.png", + "jeija_insulated_wire_ends_10x.png", + "jeija_insulated_wire_ends_10x.png", + "jeija_insulated_wire_ends_10z.png", + "jeija_insulated_wire_ends_10z.png" + }, + paramtype = "light", + walkable = false, + stack_max = 99, + selection_box = {type="fixed", fixed={-16/32-0.0001, -18/32, -16/32-0.001, 16/32+0.001, -5/32, 16/32+0.001}}, + node_box = { + type = "fixed", + fixed = { + { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 }, + { -3/32, -17/32, -16/32-0.001, 3/32, -13/32, -6/32 }, + { -3/32, -13/32, -9/32, 3/32, -6/32, -6/32 }, + { -3/32, -9/32, -9/32, 3/32, -6/32, 9/32 }, + { -3/32, -13/32, 6/32, 3/32, -6/32, 9/32 }, + { -3/32, -17/32, 6/32, 3/32, -13/32, 16/32+0.001 }, + }, + }, + groups = {dig_immediate=3, mesecon=3, not_in_creative_inventory=1}, + mesecons = { + conductor = { + states = crossover_states, + rules = crossover_get_rules(), + } + }, +}) + +minetest.register_node("mesecons_extrawires:crossover_on", { + description = "You hacker you!", + drop = "mesecons_extrawires:crossover_off", + drawtype = "nodebox", + tiles = { + "jeija_insulated_wire_crossing_tb_on.png", + "jeija_insulated_wire_crossing_tb_on.png", + "jeija_insulated_wire_ends_on.png", + "jeija_insulated_wire_ends_on.png", + "jeija_insulated_wire_ends_on.png", + "jeija_insulated_wire_ends_on.png" + }, + paramtype = "light", + walkable = false, + stack_max = 99, + selection_box = {type="fixed", fixed={-16/32-0.0001, -18/32, -16/32-0.001, 16/32+0.001, -5/32, 16/32+0.001}}, + node_box = { + type = "fixed", + fixed = { + { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 }, + { -3/32, -17/32, -16/32-0.001, 3/32, -13/32, -6/32 }, + { -3/32, -13/32, -9/32, 3/32, -6/32, -6/32 }, + { -3/32, -9/32, -9/32, 3/32, -6/32, 9/32 }, + { -3/32, -13/32, 6/32, 3/32, -6/32, 9/32 }, + { -3/32, -17/32, 6/32, 3/32, -13/32, 16/32+0.001 }, + }, + }, + groups = {dig_immediate=3, mesecon=3, not_in_creative_inventory=1}, + mesecons = { + conductor = { + states = crossover_states, + rules = crossover_get_rules(), + } + }, +}) + +minetest.register_craft({ + type = "shapeless", + output = "mesecons_extrawires:crossover_off", + recipe = { + "mesecons_insulated:insulated_off", + "mesecons_insulated:insulated_off", + }, +}) + +minetest.register_craft({ + type = "shapeless", + output = "mesecons_insulated:insulated_off 2", + recipe = { + "mesecons_extrawires:crossover_off", + }, +}) diff --git a/mods/mesecons/mesecons_extrawires/depends.txt b/mods/mesecons/mesecons_extrawires/depends.txt new file mode 100755 index 00000000..aca967d6 --- /dev/null +++ b/mods/mesecons/mesecons_extrawires/depends.txt @@ -0,0 +1,2 @@ +default +mesecons diff --git a/mods/mesecons/mesecons_extrawires/init.lua b/mods/mesecons/mesecons_extrawires/init.lua new file mode 100755 index 00000000..b22f2e59 --- /dev/null +++ b/mods/mesecons/mesecons_extrawires/init.lua @@ -0,0 +1,5 @@ +dofile(minetest.get_modpath("mesecons_extrawires").."/crossover.lua"); +dofile(minetest.get_modpath("mesecons_extrawires").."/tjunction.lua"); +dofile(minetest.get_modpath("mesecons_extrawires").."/corner.lua"); +dofile(minetest.get_modpath("mesecons_extrawires").."/vertical.lua"); +dofile(minetest.get_modpath("mesecons_extrawires").."/mesewire.lua"); diff --git a/mods/mesecons/mesecons_extrawires/mesewire.lua b/mods/mesecons/mesecons_extrawires/mesewire.lua new file mode 100644 index 00000000..81ee9491 --- /dev/null +++ b/mods/mesecons/mesecons_extrawires/mesewire.lua @@ -0,0 +1,36 @@ +local mesewire_rules = +{ + {x = 1, y = 0, z = 0}, + {x =-1, y = 0, z = 0}, + {x = 0, y = 1, z = 0}, + {x = 0, y =-1, z = 0}, + {x = 0, y = 0, z = 1}, + {x = 0, y = 0, z =-1}, +} + +minetest.register_node(":default:mese", { + description = "Mese Block", + tiles = {minetest.registered_nodes["default:mese"].tiles[1]}, + is_ground_content = true, + groups = {cracky=1}, + light_source = 7, + sounds = default.node_sound_stone_defaults(), + mesecons = {conductor = { + state = mesecon.state.off, + onstate = "mesecons_extrawires:mese_powered", + rules = mesewire_rules + }} +}) + +minetest.register_node("mesecons_extrawires:mese_powered", { + tiles = {minetest.registered_nodes["default:mese"].tiles[1].."^[brighten"}, + is_ground_content = true, + groups = {cracky=1, not_in_creative_inventory = 1}, + sounds = default.node_sound_stone_defaults(), + mesecons = {conductor = { + state = mesecon.state.on, + offstate = "default:mese", + rules = mesewire_rules + }}, + drop = "default:mese" +}) diff --git a/mods/mesecons/mesecons_extrawires/tjunction.lua b/mods/mesecons/mesecons_extrawires/tjunction.lua new file mode 100755 index 00000000..c5f36a21 --- /dev/null +++ b/mods/mesecons/mesecons_extrawires/tjunction.lua @@ -0,0 +1,84 @@ +local tjunction_nodebox = { + type = "fixed", + fixed = {{ -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 }, + { -3/32, -17/32, -16/32+0.001, 3/32, -13/32, -3/32},} +} + +local tjunction_selectionbox = { + type = "fixed", + fixed = { -16/32-0.001, -18/32, -16/32, 16/32+0.001, -12/32, 7/32 }, +} + +local tjunction_get_rules = function (node) + local rules = + {{x = 0, y = 0, z = 1}, + {x = 1, y = 0, z = 0}, + {x = 0, y = 0, z = -1}} + + for i = 0, node.param2 do + rules = mesecon:rotate_rules_left(rules) + end + + return rules +end + +minetest.register_node("mesecons_extrawires:tjunction_on", { + drawtype = "nodebox", + tiles = { + "jeija_insulated_wire_tjunction_tb_on.png", + "jeija_insulated_wire_tjunction_tb_on.png^[transformR180", + "jeija_insulated_wire_ends_on.png", + "jeija_insulated_wire_ends_on.png", + "jeija_insulated_wire_sides_on.png", + "jeija_insulated_wire_ends_on.png" + }, + paramtype = "light", + paramtype2 = "facedir", + walkable = false, + sunlight_propagates = true, + selection_box = tjunction_selectionbox, + node_box = tjunction_nodebox, + groups = {dig_immediate = 3, not_in_creative_inventory = 1}, + drop = "mesecons_extrawires:tjunction_off", + mesecons = {conductor = + { + state = mesecon.state.on, + rules = tjunction_get_rules, + offstate = "mesecons_extrawires:tjunction_off" + }} +}) + +minetest.register_node("mesecons_extrawires:tjunction_off", { + drawtype = "nodebox", + description = "T-junction", + tiles = { + "jeija_insulated_wire_tjunction_tb_off.png", + "jeija_insulated_wire_tjunction_tb_off.png^[transformR180", + "jeija_insulated_wire_ends_off.png", + "jeija_insulated_wire_ends_off.png", + "jeija_insulated_wire_sides_off.png", + "jeija_insulated_wire_ends_off.png" + }, + paramtype = "light", + paramtype2 = "facedir", + walkable = false, + sunlight_propagates = true, + selection_box = tjunction_selectionbox, + node_box = tjunction_nodebox, + groups = {dig_immediate = 3, mesecon_conductor_craftable=1}, + mesecons = {conductor = + { + state = mesecon.state.off, + rules = tjunction_get_rules, + onstate = "mesecons_extrawires:tjunction_on" + }} +}) + +minetest.register_craft({ + output = "mesecons_extrawires:tjunction_off 3", + recipe = { + {"", "", ""}, + {"mesecons_insulated:insulated_off", "mesecons_insulated:insulated_off", "mesecons_insulated:insulated_off"}, + {"", "mesecons_insulated:insulated_off", ""}, + } +}) diff --git a/mods/mesecons/mesecons_extrawires/vertical.lua b/mods/mesecons/mesecons_extrawires/vertical.lua new file mode 100755 index 00000000..16de55e1 --- /dev/null +++ b/mods/mesecons/mesecons_extrawires/vertical.lua @@ -0,0 +1,213 @@ +local vertical_box = { + type = "fixed", + fixed = {-1/16, -8/16, -1/16, 1/16, 8/16, 1/16} +} + +local top_box = { + type = "fixed", + fixed = {{-8/16, -8/16, -8/16, 8/16, -7/16, 8/16}} +} + +local bottom_box = { + type = "fixed", + fixed = { + {-8/16, -8/16, -8/16, 8/16, -7/16, 8/16}, + {-1/16, -7/16, -1/16, 1/16, 8/16, 1/16}, + } +} + +local vertical_rules = { + {x=0, y=1, z=0}, + {x=0, y=-1, z=0}, +} + +local top_rules = { + {x=1,y=0, z=0}, + {x=-1,y=0, z=0}, + {x=0,y=0, z=1}, + {x=0,y=0, z=-1}, + {x=0,y=-1, z=0}, +} + +local bottom_rules = { + {x=1, y=0, z=0}, + {x=-1, y=0, z=0}, + {x=0, y=0, z=1}, + {x=0, y=0, z=-1}, + {x=0, y=1, z=0}, +} + +local vertical_updatepos = function (pos) + local node = minetest.get_node(pos) + if minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].is_vertical_conductor then + local node_above = minetest.get_node(mesecon:addPosRule(pos, vertical_rules[1])) + local node_below = minetest.get_node(mesecon:addPosRule(pos, vertical_rules[2])) + local namestate = minetest.registered_nodes[node.name].vertical_conductor_state + + local above = minetest.registered_nodes[node_above.name] and minetest.registered_nodes[node_above.name].is_vertical_conductor + local below = minetest.registered_nodes[node_below.name] and minetest.registered_nodes[node_below.name].is_vertical_conductor + + if above and below then -- above and below: vertical mesecon + minetest.add_node(pos, {name = "mesecons_extrawires:vertical_" .. namestate}) + elseif above and not below then -- above only: bottom + minetest.add_node(pos, {name = "mesecons_extrawires:vertical_bottom_" .. namestate}) + elseif not above and below then -- below only: top + minetest.add_node(pos, {name = "mesecons_extrawires:vertical_top_" .. namestate}) + else -- no vertical wire above, no vertical wire below: use default wire + minetest.add_node(pos, {name = "mesecons_extrawires:vertical_" .. namestate}) + end + end +end + +local vertical_update = function (pos, node) + vertical_updatepos(pos) -- this one + vertical_updatepos(mesecon:addPosRule(pos, vertical_rules[1])) -- above + vertical_updatepos(mesecon:addPosRule(pos, vertical_rules[2])) -- below +end + +-- Vertical wire +minetest.register_node("mesecons_extrawires:vertical_on", { + description = "Vertical mesecon", + drawtype = "nodebox", + tiles = {"wires_vertical_on.png"}, + walkable = false, + paramtype = "light", + sunlight_propagates = true, + groups = {dig_immediate=3, not_in_creative_inventory=1}, + selection_box = vertical_box, + node_box = vertical_box, + is_vertical_conductor = true, + vertical_conductor_state = "on", + mesecons = {conductor = { + state = mesecon.state.on, + offstate = "mesecons_extrawires:vertical_off", + rules = vertical_rules, + }}, + drop = "mesecons_extrawires:vertical_off", + after_place_node = vertical_update, + after_dig_node = vertical_update, +}) + +minetest.register_node("mesecons_extrawires:vertical_off", { + description = "Vertical mesecon", + drawtype = "nodebox", + tiles = {"wires_vertical_off.png"}, + walkable = false, + paramtype = "light", + sunlight_propagates = true, + groups = {dig_immediate=3}, + selection_box = vertical_box, + node_box = vertical_box, + is_vertical_conductor = true, + vertical_conductor_state = "off", + mesecons = {conductor = { + state = mesecon.state.off, + onstate = "mesecons_extrawires:vertical_on", + rules = vertical_rules, + }}, + after_place_node = vertical_update, + after_dig_node = vertical_update, +}) + +-- Vertical wire top +minetest.register_node("mesecons_extrawires:vertical_top_on", { + description = "Vertical mesecon", + drawtype = "nodebox", + tiles = {"wires_full_on.png","wires_full_on.png","wires_vertical_on.png"}, + walkable = false, + paramtype = "light", + sunlight_propagates = true, + groups = {dig_immediate=3, not_in_creative_inventory=1}, + selection_box = top_box, + node_box = top_box, + is_vertical_conductor = true, + vertical_conductor_state = "on", + mesecons = {conductor = { + state = mesecon.state.on, + offstate = "mesecons_extrawires:vertical_top_off", + rules = top_rules, + }}, + drop = "mesecons_extrawires:vertical_off", + after_place_node = vertical_update, + after_dig_node = vertical_update, +}) + +minetest.register_node("mesecons_extrawires:vertical_top_off", { + description = "Vertical mesecon", + drawtype = "nodebox", + tiles = {"wires_full_off.png","wires_full_off.png","wires_vertical_off.png"}, + walkable = false, + paramtype = "light", + sunlight_propagates = true, + groups = {dig_immediate=3, not_in_creative_inventory=1}, + selection_box = top_box, + node_box = top_box, + is_vertical_conductor = true, + vertical_conductor_state = "off", + mesecons = {conductor = { + state = mesecon.state.off, + onstate = "mesecons_extrawires:vertical_top_on", + rules = top_rules, + }}, + drop = "mesecons_extrawires:vertical_off", + after_place_node = vertical_update, + after_dig_node = vertical_update, +}) + +-- Vertical wire bottom +minetest.register_node("mesecons_extrawires:vertical_bottom_on", { + description = "Vertical mesecon", + drawtype = "nodebox", + tiles = {"wires_full_on.png","wires_full_on.png","wires_vertical_on.png"}, + walkable = false, + paramtype = "light", + sunlight_propagates = true, + vertical_conductor_state = "on", + groups = {dig_immediate = 3, not_in_creative_inventory = 1}, + selection_box = bottom_box, + node_box = bottom_box, + mesecons = {conductor = { + state = mesecon.state.on, + offstate = "mesecons_extrawires:vertical_bottom_off", + rules = bottom_rules, + }}, + drop = "mesecons_extrawires:vertical_off", + after_place_node = vertical_update, + after_dig_node = vertical_update, +}) + +minetest.register_node("mesecons_extrawires:vertical_bottom_off", { + description = "Vertical mesecon", + drawtype = "nodebox", + tiles = {"wires_full_off.png","wires_full_off.png","wires_vertical_off.png"}, + walkable = false, + paramtype = "light", + sunlight_propagates = true, + groups = {dig_immediate = 3, not_in_creative_inventory = 1}, + selection_box = bottom_box, + node_box = bottom_box, + is_vertical_conductor = true, + vertical_conductor_state = "off", + mesecons = {conductor = { + state = mesecon.state.off, + onstate = "mesecons_extrawires:vertical_bottom_on", + rules = bottom_rules, + }}, + drop = "mesecons_extrawires:vertical_off", + after_place_node = vertical_update, + after_dig_node = vertical_update, +}) + +minetest.register_craft({ + output = "mesecons_extrawires:vertical_off 3", + recipe = { + {"mesecons:wire_00000000_off"}, + {"mesecons:wire_00000000_off"}, + {"mesecons:wire_00000000_off"} + } +}) + +minetest.register_craft({ + output = "mesecons:wire_00000000_off", + recipe = {{"mesecons_extrawires:vertical_off"}} +}) diff --git a/mods/mesecons/mesecons_hydroturbine/depends.txt b/mods/mesecons/mesecons_hydroturbine/depends.txt new file mode 100755 index 00000000..acaa9241 --- /dev/null +++ b/mods/mesecons/mesecons_hydroturbine/depends.txt @@ -0,0 +1 @@ +mesecons diff --git a/mods/mesecons/mesecons_hydroturbine/init.lua b/mods/mesecons/mesecons_hydroturbine/init.lua new file mode 100755 index 00000000..ef5ccae8 --- /dev/null +++ b/mods/mesecons/mesecons_hydroturbine/init.lua @@ -0,0 +1,96 @@ +-- HYDRO_TURBINE +-- Water turbine: +-- Active if flowing >water< above it +-- (does not work with other liquids) + +minetest.register_node("mesecons_hydroturbine:hydro_turbine_off", { + drawtype = "nodebox", + tiles = {"jeija_hydro_turbine_off.png"}, + groups = {dig_immediate=2}, + description="Water Turbine", + paramtype = "light", + selection_box = { + type = "fixed", + fixed = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-0.15, 0.5, -0.15, 0.15, 1.45, 0.15}, + {-0.45, 1.15, -0.1, 0.45, 1.45, 0.1}, + {-0.1, 1.15, -0.45, 0.1, 1.45, 0.45}}, + }, + node_box = { + type = "fixed", + fixed = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-0.15, 0.5, -0.15, 0.15, 1.45, 0.15}, + {-0.45, 1.15, -0.1, 0.45, 1.45, 0.1}, + {-0.1, 1.15, -0.45, 0.1, 1.45, 0.45}}, + }, + sounds = default.node_sound_stone_defaults(), + mesecons = {receptor = { + state = mesecon.state.off + }} +}) + +minetest.register_node("mesecons_hydroturbine:hydro_turbine_on", { + drawtype = "nodebox", + tiles = {"jeija_hydro_turbine_on.png"}, + drop = "mesecons_hydroturbine:hydro_turbine_off 1", + groups = {dig_immediate=2,not_in_creative_inventory=1}, + description="Water Turbine", + paramtype = "light", + selection_box = { + type = "fixed", + fixed = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-0.15, 0.5, -0.15, 0.15, 1.45, 0.15}, + {-0.5, 1.15, -0.1, 0.5, 1.45, 0.1}, + {-0.1, 1.15, -0.5, 0.1, 1.45, 0.5}}, + }, + node_box = { + type = "fixed", + fixed = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-0.15, 0.5, -0.15, 0.15, 1.45, 0.15}, + {-0.5, 1.15, -0.1, 0.5, 1.45, 0.1}, + {-0.1, 1.15, -0.5, 0.1, 1.45, 0.5}}, + }, + sounds = default.node_sound_stone_defaults(), + mesecons = {receptor = { + state = mesecon.state.on + }} +}) + + +minetest.register_abm({ +nodenames = {"mesecons_hydroturbine:hydro_turbine_off"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local waterpos={x=pos.x, y=pos.y+1, z=pos.z} + if minetest.get_node(waterpos).name=="default:water_flowing" then + minetest.add_node(pos, {name="mesecons_hydroturbine:hydro_turbine_on"}) + nodeupdate(pos) + mesecon:receptor_on(pos) + end + end, +}) + +minetest.register_abm({ +nodenames = {"mesecons_hydroturbine:hydro_turbine_on"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local waterpos={x=pos.x, y=pos.y+1, z=pos.z} + if minetest.get_node(waterpos).name~="default:water_flowing" then + minetest.add_node(pos, {name="mesecons_hydroturbine:hydro_turbine_off"}) + nodeupdate(pos) + mesecon:receptor_off(pos) + end + end, +}) + +minetest.register_craft({ + output = "mesecons_hydroturbine:hydro_turbine_off 2", + recipe = { + {"","default:stick", ""}, + {"default:stick", "default:steel_ingot", "default:stick"}, + {"","default:stick", ""}, + } +}) + diff --git a/mods/mesecons/mesecons_hydroturbine/textures/jeija_hydro_turbine_off.png b/mods/mesecons/mesecons_hydroturbine/textures/jeija_hydro_turbine_off.png new file mode 100755 index 00000000..6e128340 Binary files /dev/null and b/mods/mesecons/mesecons_hydroturbine/textures/jeija_hydro_turbine_off.png differ diff --git a/mods/mesecons/mesecons_hydroturbine/textures/jeija_hydro_turbine_on.png b/mods/mesecons/mesecons_hydroturbine/textures/jeija_hydro_turbine_on.png new file mode 100755 index 00000000..f9b2c719 Binary files /dev/null and b/mods/mesecons/mesecons_hydroturbine/textures/jeija_hydro_turbine_on.png differ diff --git a/mods/mesecons/mesecons_insulated/depends.txt b/mods/mesecons/mesecons_insulated/depends.txt new file mode 100755 index 00000000..acaa9241 --- /dev/null +++ b/mods/mesecons/mesecons_insulated/depends.txt @@ -0,0 +1 @@ +mesecons diff --git a/mods/mesecons/mesecons_insulated/init.lua b/mods/mesecons/mesecons_insulated/init.lua new file mode 100755 index 00000000..9fdf494e --- /dev/null +++ b/mods/mesecons/mesecons_insulated/init.lua @@ -0,0 +1,84 @@ +function insulated_wire_get_rules(node) + local rules = {{x = 1, y = 0, z = 0}, + {x =-1, y = 0, z = 0}} + if node.param2 == 1 or node.param2 == 3 then + return mesecon:rotate_rules_right(rules) + end + return rules +end + +minetest.register_node("mesecons_insulated:insulated_on", { + drawtype = "nodebox", + description = "Insulated Mesecon", + tiles = { + "jeija_insulated_wire_sides_on.png", + "jeija_insulated_wire_sides_on.png", + "jeija_insulated_wire_ends_on.png", + "jeija_insulated_wire_ends_on.png", + "jeija_insulated_wire_sides_on.png", + "jeija_insulated_wire_sides_on.png" + }, + paramtype = "light", + paramtype2 = "facedir", + walkable = false, + sunlight_propagates = true, + selection_box = { + type = "fixed", + fixed = { -16/32-0.001, -18/32, -7/32, 16/32+0.001, -12/32, 7/32 } + }, + node_box = { + type = "fixed", + fixed = { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 } + }, + groups = {dig_immediate = 3, not_in_creative_inventory = 1}, + drop = "mesecons_insulated:insulated_off", + mesecons = {conductor = { + state = mesecon.state.on, + offstate = "mesecons_insulated:insulated_off", + rules = insulated_wire_get_rules + }} +}) + +minetest.register_node("mesecons_insulated:insulated_off", { + drawtype = "nodebox", + description = "insulated mesecons", + tiles = { + "jeija_insulated_wire_sides_off.png", + "jeija_insulated_wire_sides_off.png", + "jeija_insulated_wire_ends_off.png", + "jeija_insulated_wire_ends_off.png", + "jeija_insulated_wire_sides_off.png", + "jeija_insulated_wire_sides_off.png" + }, + paramtype = "light", + paramtype2 = "facedir", + walkable = false, + sunlight_propagates = true, + selection_box = { + type = "fixed", + fixed = { -16/32-0.001, -18/32, -7/32, 16/32+0.001, -12/32, 7/32 } + }, + node_box = { + type = "fixed", + fixed = { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 } + }, + groups = {dig_immediate = 3}, + mesecons = {conductor = { + state = mesecon.state.off, + onstate = "mesecons_insulated:insulated_on", + rules = insulated_wire_get_rules + }} +}) + +minetest.register_craft({ + output = "mesecons_insulated:insulated_off 3", + recipe = { + {"mesecons_materials:fiber", "mesecons_materials:fiber", "mesecons_materials:fiber"}, + {"mesecons:wire_00000000_off", "mesecons:wire_00000000_off", "mesecons:wire_00000000_off"}, + {"mesecons_materials:fiber", "mesecons_materials:fiber", "mesecons_materials:fiber"}, + } +}) + +mesecon:add_rules("insulated", { +{x = 1, y = 0, z = 0}, +{x =-1, y = 0, z = 0}}) diff --git a/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_crossing_tb_01.png b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_crossing_tb_01.png new file mode 100755 index 00000000..d872b2bf Binary files /dev/null and b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_crossing_tb_01.png differ diff --git a/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_crossing_tb_10.png b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_crossing_tb_10.png new file mode 100755 index 00000000..ae06dea2 Binary files /dev/null and b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_crossing_tb_10.png differ diff --git a/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_crossing_tb_off.png b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_crossing_tb_off.png new file mode 100755 index 00000000..41b5ff44 Binary files /dev/null and b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_crossing_tb_off.png differ diff --git a/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_crossing_tb_on.png b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_crossing_tb_on.png new file mode 100755 index 00000000..154288b4 Binary files /dev/null and b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_crossing_tb_on.png differ diff --git a/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_curved_tb_off.png b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_curved_tb_off.png new file mode 100755 index 00000000..85ca90b3 Binary files /dev/null and b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_curved_tb_off.png differ diff --git a/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_curved_tb_on.png b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_curved_tb_on.png new file mode 100755 index 00000000..772d9a63 Binary files /dev/null and b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_curved_tb_on.png differ diff --git a/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_ends_01x.png b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_ends_01x.png new file mode 100755 index 00000000..b742152f Binary files /dev/null and b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_ends_01x.png differ diff --git a/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_ends_01z.png b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_ends_01z.png new file mode 100755 index 00000000..497a467f Binary files /dev/null and b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_ends_01z.png differ diff --git a/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_ends_10x.png b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_ends_10x.png new file mode 100755 index 00000000..d407cffa Binary files /dev/null and b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_ends_10x.png differ diff --git a/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_ends_10z.png b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_ends_10z.png new file mode 100755 index 00000000..830d390e Binary files /dev/null and b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_ends_10z.png differ diff --git a/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_ends_off.png b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_ends_off.png new file mode 100755 index 00000000..89a83855 Binary files /dev/null and b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_ends_off.png differ diff --git a/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_ends_on.png b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_ends_on.png new file mode 100755 index 00000000..75cf4359 Binary files /dev/null and b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_ends_on.png differ diff --git a/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_sides_off.png b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_sides_off.png new file mode 100755 index 00000000..db33f149 Binary files /dev/null and b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_sides_off.png differ diff --git a/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_sides_on.png b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_sides_on.png new file mode 100755 index 00000000..f76e9a87 Binary files /dev/null and b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_sides_on.png differ diff --git a/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_tjunction_tb_off.png b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_tjunction_tb_off.png new file mode 100755 index 00000000..a897b290 Binary files /dev/null and b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_tjunction_tb_off.png differ diff --git a/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_tjunction_tb_on.png b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_tjunction_tb_on.png new file mode 100755 index 00000000..8fc312b1 Binary files /dev/null and b/mods/mesecons/mesecons_insulated/textures/jeija_insulated_wire_tjunction_tb_on.png differ diff --git a/mods/mesecons/mesecons_lamp/depends.txt b/mods/mesecons/mesecons_lamp/depends.txt new file mode 100755 index 00000000..acaa9241 --- /dev/null +++ b/mods/mesecons/mesecons_lamp/depends.txt @@ -0,0 +1 @@ +mesecons diff --git a/mods/mesecons/mesecons_lamp/init.lua b/mods/mesecons/mesecons_lamp/init.lua new file mode 100755 index 00000000..6cdae2da --- /dev/null +++ b/mods/mesecons/mesecons_lamp/init.lua @@ -0,0 +1,61 @@ +-- MESELAMPS +-- A lamp is "is an electrical device used to create artificial light" (wikipedia) +-- guess what? + +mesecon_lamp_box = { + type = "wallmounted", + wall_top = {-0.3125,0.375,-0.3125,0.3125,0.5,0.3125}, + wall_bottom = {-0.3125,-0.5,-0.3125,0.3125,-0.375,0.3125}, + wall_side = {-0.375,-0.3125,-0.3125,-0.5,0.3125,0.3125}, +} + +minetest.register_node("mesecons_lamp:lamp_on", { + drawtype = "nodebox", + tiles = {"jeija_meselamp_on.png"}, + paramtype = "light", + paramtype2 = "wallmounted", + legacy_wallmounted = true, + sunlight_propagates = true, + walkable = true, + light_source = LIGHT_MAX, + node_box = mesecon_lamp_box, + selection_box = mesecon_lamp_box, + groups = {dig_immediate=3,not_in_creative_inventory=1, mesecon_effector_on = 1}, + drop="mesecons_lamp:lamp_off 1", + sounds = default.node_sound_glass_defaults(), + mesecons = {effector = { + action_off = function (pos, node) + minetest.swap_node(pos, {name = "mesecons_lamp:lamp_off", param2 = node.param2}) + end + }} +}) + +minetest.register_node("mesecons_lamp:lamp_off", { + drawtype = "nodebox", + tiles = {"jeija_meselamp_off.png"}, + inventory_image = "jeija_meselamp.png", + wield_image = "jeija_meselamp.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = true, + node_box = mesecon_lamp_box, + selection_box = mesecon_lamp_box, + groups = {dig_immediate=3, mesecon_receptor_off = 1, mesecon_effector_off = 1}, + description="Meselamp", + sounds = default.node_sound_glass_defaults(), + mesecons = {effector = { + action_on = function (pos, node) + minetest.swap_node(pos, {name = "mesecons_lamp:lamp_on", param2 = node.param2}) + end + }} +}) + +minetest.register_craft({ + output = "mesecons_lamp:lamp_off 1", + recipe = { + {"", "default:glass", ""}, + {"group:mesecon_conductor_craftable", "default:steel_ingot", "group:mesecon_conductor_craftable"}, + {"", "default:glass", ""}, + } +}) diff --git a/mods/mesecons/mesecons_lamp/textures/jeija_meselamp.png b/mods/mesecons/mesecons_lamp/textures/jeija_meselamp.png new file mode 100755 index 00000000..0d4d4959 Binary files /dev/null and b/mods/mesecons/mesecons_lamp/textures/jeija_meselamp.png differ diff --git a/mods/mesecons/mesecons_lamp/textures/jeija_meselamp_off.png b/mods/mesecons/mesecons_lamp/textures/jeija_meselamp_off.png new file mode 100755 index 00000000..be6ad5f3 Binary files /dev/null and b/mods/mesecons/mesecons_lamp/textures/jeija_meselamp_off.png differ diff --git a/mods/mesecons/mesecons_lamp/textures/jeija_meselamp_on.png b/mods/mesecons/mesecons_lamp/textures/jeija_meselamp_on.png new file mode 100755 index 00000000..a91e1b1b Binary files /dev/null and b/mods/mesecons/mesecons_lamp/textures/jeija_meselamp_on.png differ diff --git a/mods/mesecons/mesecons_lightstone/depends.txt b/mods/mesecons/mesecons_lightstone/depends.txt new file mode 100755 index 00000000..acaa9241 --- /dev/null +++ b/mods/mesecons/mesecons_lightstone/depends.txt @@ -0,0 +1 @@ +mesecons diff --git a/mods/mesecons/mesecons_lightstone/init.lua b/mods/mesecons/mesecons_lightstone/init.lua new file mode 100755 index 00000000..7bb550d1 --- /dev/null +++ b/mods/mesecons/mesecons_lightstone/init.lua @@ -0,0 +1,60 @@ +local lightstone_rules = { + {x=0, y=0, z=-1}, + {x=1, y=0, z=0}, + {x=-1, y=0, z=0}, + {x=0, y=0, z=1}, + {x=1, y=1, z=0}, + {x=1, y=-1, z=0}, + {x=-1, y=1, z=0}, + {x=-1, y=-1, z=0}, + {x=0, y=1, z=1}, + {x=0, y=-1, z=1}, + {x=0, y=1, z=-1}, + {x=0, y=-1, z=-1}, + {x=0, y=-1, z=0}, +} + +function mesecon:lightstone_add(name, base_item, texture_off, texture_on) + minetest.register_node("mesecons_lightstone:lightstone_" .. name .. "_off", { + tiles = {texture_off}, + groups = {cracky=2, mesecon_effector_off = 1, mesecon = 2}, + description=name.." Lightstone", + sounds = default.node_sound_stone_defaults(), + mesecons = {effector = { + rules = lightstone_rules, + action_on = function (pos, node) + minetest.swap_node(pos, {name = "mesecons_lightstone:lightstone_" .. name .. "_on", param2 = node.param2}) + end, + }} + }) + minetest.register_node("mesecons_lightstone:lightstone_" .. name .. "_on", { + tiles = {texture_on}, + groups = {cracky=2,not_in_creative_inventory=1, mesecon = 2}, + drop = "mesecons_lightstone:lightstone_" .. name .. "_off", + light_source = LIGHT_MAX-2, + sounds = default.node_sound_stone_defaults(), + mesecons = {effector = { + rules = lightstone_rules, + action_off = function (pos, node) + minetest.swap_node(pos, {name = "mesecons_lightstone:lightstone_" .. name .. "_off", param2 = node.param2}) + end, + }} + }) + + minetest.register_craft({ + output = "mesecons_lightstone:lightstone_" .. name .. "_off", + recipe = { + {"",base_item,""}, + {base_item,"default:torch",base_item}, + {"","group:mesecon_conductor_craftable",""} + } + }) +end + + +mesecon:lightstone_add("red", "default:clay_brick", "jeija_lightstone_red_off.png", "jeija_lightstone_red_on.png") +mesecon:lightstone_add("green", "default:cactus", "jeija_lightstone_green_off.png", "jeija_lightstone_green_on.png") +mesecon:lightstone_add("blue", "mesecons_materials:fiber", "jeija_lightstone_blue_off.png", "jeija_lightstone_blue_on.png") +mesecon:lightstone_add("gray", "default:cobble", "jeija_lightstone_gray_off.png", "jeija_lightstone_gray_on.png") +mesecon:lightstone_add("darkgray", "default:gravel", "jeija_lightstone_darkgray_off.png", "jeija_lightstone_darkgray_on.png") +mesecon:lightstone_add("yellow", "default:mese_crystal_fragment", "jeija_lightstone_yellow_off.png", "jeija_lightstone_yellow_on.png") diff --git a/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_blue_off.png b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_blue_off.png new file mode 100755 index 00000000..87f753c4 Binary files /dev/null and b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_blue_off.png differ diff --git a/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_blue_on.png b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_blue_on.png new file mode 100755 index 00000000..008a5fe6 Binary files /dev/null and b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_blue_on.png differ diff --git a/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_darkgray_off.png b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_darkgray_off.png new file mode 100755 index 00000000..f7ded2a1 Binary files /dev/null and b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_darkgray_off.png differ diff --git a/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_darkgray_on.png b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_darkgray_on.png new file mode 100755 index 00000000..cfffb096 Binary files /dev/null and b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_darkgray_on.png differ diff --git a/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_gray_off.png b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_gray_off.png new file mode 100755 index 00000000..1c5c28d7 Binary files /dev/null and b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_gray_off.png differ diff --git a/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_gray_on.png b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_gray_on.png new file mode 100755 index 00000000..ba067ba0 Binary files /dev/null and b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_gray_on.png differ diff --git a/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_green_off.png b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_green_off.png new file mode 100755 index 00000000..9051fee2 Binary files /dev/null and b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_green_off.png differ diff --git a/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_green_on.png b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_green_on.png new file mode 100755 index 00000000..0cadbc9c Binary files /dev/null and b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_green_on.png differ diff --git a/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_red_off.png b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_red_off.png new file mode 100755 index 00000000..32c22cda Binary files /dev/null and b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_red_off.png differ diff --git a/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_red_on.png b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_red_on.png new file mode 100755 index 00000000..b1ffd57d Binary files /dev/null and b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_red_on.png differ diff --git a/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_yellow_off.png b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_yellow_off.png new file mode 100755 index 00000000..5280e91a Binary files /dev/null and b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_yellow_off.png differ diff --git a/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_yellow_on.png b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_yellow_on.png new file mode 100755 index 00000000..806efbe1 Binary files /dev/null and b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_yellow_on.png differ diff --git a/mods/mesecons/mesecons_materials/depends.txt b/mods/mesecons/mesecons_materials/depends.txt new file mode 100755 index 00000000..acaa9241 --- /dev/null +++ b/mods/mesecons/mesecons_materials/depends.txt @@ -0,0 +1 @@ +mesecons diff --git a/mods/mesecons/mesecons_materials/init.lua b/mods/mesecons/mesecons_materials/init.lua new file mode 100755 index 00000000..f95373c2 --- /dev/null +++ b/mods/mesecons/mesecons_materials/init.lua @@ -0,0 +1,41 @@ +--GLUE +minetest.register_craftitem("mesecons_materials:glue", { + image = "jeija_glue.png", + on_place_on_ground = minetest.craftitem_place_item, + description="Glue", +}) + +minetest.register_craftitem("mesecons_materials:fiber", { + image = "jeija_fiber.png", + on_place_on_ground = minetest.craftitem_place_item, + description="Fiber", +}) + +minetest.register_craft({ + output = "mesecons_materials:glue 2", + type = "cooking", + recipe = "default:sapling", + cooktime = 2 +}) + +minetest.register_craft({ + output = "mesecons_materials:fiber 6", + type = "cooking", + recipe = "mesecons_materials:glue", + cooktime = 4 +}) + +-- Silicon +minetest.register_craftitem("mesecons_materials:silicon", { + image = "jeija_silicon.png", + on_place_on_ground = minetest.craftitem_place_item, + description="Silicon", +}) + +minetest.register_craft({ + output = "mesecons_materials:silicon 4", + recipe = { + {"default:sand", "default:sand"}, + {"default:sand", "default:steel_ingot"}, + } +}) diff --git a/mods/mesecons/mesecons_mvps/depends.txt b/mods/mesecons/mesecons_mvps/depends.txt new file mode 100755 index 00000000..acaa9241 --- /dev/null +++ b/mods/mesecons/mesecons_mvps/depends.txt @@ -0,0 +1 @@ +mesecons diff --git a/mods/mesecons/mesecons_mvps/init.lua b/mods/mesecons/mesecons_mvps/init.lua new file mode 100755 index 00000000..20cc37d6 --- /dev/null +++ b/mods/mesecons/mesecons_mvps/init.lua @@ -0,0 +1,238 @@ +--register stoppers for movestones/pistons + +mesecon.mvps_stoppers = {} +mesecon.mvps_unmov = {} +mesecon.on_mvps_move = {} + +function mesecon:is_mvps_stopper(node, pushdir, stack, stackid) + local get_stopper = mesecon.mvps_stoppers[node.name] + if type (get_stopper) == "function" then + get_stopper = get_stopper(node, pushdir, stack, stackid) + end + return get_stopper +end + +function mesecon:register_mvps_stopper(nodename, get_stopper) + if get_stopper == nil then + get_stopper = true + end + mesecon.mvps_stoppers[nodename] = get_stopper +end + +-- Objects that cannot be moved (e.g. movestones) +function mesecon:register_mvps_unmov(objectname) + mesecon.mvps_unmov[objectname] = true; +end + +function mesecon:is_mvps_unmov(objectname) + return mesecon.mvps_unmov[objectname] +end + +-- Functions to be called on mvps movement +function mesecon:register_on_mvps_move(callback) + mesecon.on_mvps_move[#mesecon.on_mvps_move+1] = callback +end + +local function on_mvps_move(moved_nodes) + for _, callback in ipairs(mesecon.on_mvps_move) do + callback(moved_nodes) + end +end + +function mesecon:mvps_process_stack(stack) + -- update mesecons for placed nodes ( has to be done after all nodes have been added ) + for _, n in ipairs(stack) do + nodeupdate(n.pos) + mesecon.on_placenode(n.pos, minetest.get_node(n.pos)) + mesecon:update_autoconnect(n.pos) + end +end + +function mesecon:mvps_get_stack(pos, dir, maximum) + -- determine the number of nodes to be pushed + local np = {x = pos.x, y = pos.y, z = pos.z} + local nodes = {} + while true do + local nn = minetest.get_node_or_nil(np) + if not nn or #nodes > maximum then + -- don't push at all, something is in the way (unloaded map or too many nodes) + return nil + end + + if nn.name == "air" + or (minetest.registered_nodes[nn.name] + and minetest.registered_nodes[nn.name].liquidtype ~= "none") then --is liquid + break + end + + table.insert (nodes, {node = nn, pos = np}) + + np = mesecon:addPosRule(np, dir) + end + return nodes +end + +function mesecon:mvps_push(pos, dir, maximum) -- pos: pos of mvps; dir: direction of push; maximum: maximum nodes to be pushed + local nodes = mesecon:mvps_get_stack(pos, dir, maximum) + + if not nodes then return end + -- determine if one of the nodes blocks the push + for id, n in ipairs(nodes) do + if mesecon:is_mvps_stopper(n.node, dir, nodes, id) then + return + end + end + + -- remove all nodes + for _, n in ipairs(nodes) do + n.meta = minetest.get_meta(n.pos):to_table() + minetest.remove_node(n.pos) + end + + -- update mesecons for removed nodes ( has to be done after all nodes have been removed ) + for _, n in ipairs(nodes) do + mesecon.on_dignode(n.pos, n.node) + mesecon:update_autoconnect(n.pos) + end + + -- add nodes + for _, n in ipairs(nodes) do + np = mesecon:addPosRule(n.pos, dir) + minetest.add_node(np, n.node) + minetest.get_meta(np):from_table(n.meta) + end + + local moved_nodes = {} + local oldstack = mesecon:tablecopy(nodes) + for i in ipairs(nodes) do + moved_nodes[i] = {} + moved_nodes[i].oldpos = nodes[i].pos + nodes[i].pos = mesecon:addPosRule(nodes[i].pos, dir) + moved_nodes[i].pos = nodes[i].pos + moved_nodes[i].node = nodes[i].node + moved_nodes[i].meta = nodes[i].meta + end + + on_mvps_move(moved_nodes) + + return true, nodes, oldstack +end + +mesecon:register_on_mvps_move(function(moved_nodes) + for _, n in ipairs(moved_nodes) do + mesecon.on_placenode(n.pos, n.node) + mesecon:update_autoconnect(n.pos) + end +end) + +function mesecon:mvps_pull_single(pos, dir) -- pos: pos of mvps; direction: direction of pull (matches push direction for sticky pistons) + np = mesecon:addPosRule(pos, dir) + nn = minetest.get_node(np) + + if ((not minetest.registered_nodes[nn.name]) --unregistered node + or minetest.registered_nodes[nn.name].liquidtype == "none") --non-liquid node + and not mesecon:is_mvps_stopper(nn, {x = -dir.x, y = -dir.y, z = -dir.z}, {{pos = np, node = nn}}, 1) then --non-stopper node + local meta = minetest.get_meta(np):to_table() + minetest.remove_node(np) + minetest.add_node(pos, nn) + minetest.get_meta(pos):from_table(meta) + + nodeupdate(np) + nodeupdate(pos) + mesecon.on_dignode(np, nn) + mesecon:update_autoconnect(np) + on_mvps_move({{pos = pos, oldpos = np, node = nn, meta = meta}}) + end + return {{pos = np, node = {param2 = 0, name = "air"}}, {pos = pos, node = nn}} +end + +function mesecon:mvps_pull_all(pos, direction) -- pos: pos of mvps; direction: direction of pull + local lpos = {x=pos.x-direction.x, y=pos.y-direction.y, z=pos.z-direction.z} -- 1 away + local lnode = minetest.get_node(lpos) + local lpos2 = {x=pos.x-direction.x*2, y=pos.y-direction.y*2, z=pos.z-direction.z*2} -- 2 away + local lnode2 = minetest.get_node(lpos2) + + --avoid pulling solid nodes + if lnode.name ~= "ignore" + and lnode.name ~= "air" + and ((not minetest.registered_nodes[lnode.name]) + or minetest.registered_nodes[lnode.name].liquidtype == "none") then + return + end + + --avoid pulling empty or liquid nodes + if lnode2.name == "ignore" + or lnode2.name == "air" + or (minetest.registered_nodes[lnode2.name] + and minetest.registered_nodes[lnode2.name].liquidtype ~= "none") then + return + end + + local moved_nodes = {} + local oldpos = {x=lpos2.x + direction.x, y=lpos2.y + direction.y, z=lpos2.z + direction.z} + repeat + lnode2 = minetest.get_node(lpos2) + local meta = minetest.get_meta(lnode2):to_table() + minetest.add_node(oldpos, lnode2) + minetest.get_meta(oldpos):from_table(meta) + moved_nodes[#moved_nodes+1] = {pos = oldpos, oldpos = lnode2, node = lnode2, meta = meta} + nodeupdate(oldpos) + oldpos = {x=lpos2.x, y=lpos2.y, z=lpos2.z} + lpos2.x = lpos2.x-direction.x + lpos2.y = lpos2.y-direction.y + lpos2.z = lpos2.z-direction.z + lnode = minetest.get_node(lpos2) + until lnode.name == "air" + or lnode.name == "ignore" + or (minetest.registered_nodes[lnode.name] + and minetest.registered_nodes[lnode.name].liquidtype ~= "none") + minetest.remove_node(oldpos) + mesecon.on_dignode(oldpos, lnode2) + mesecon:update_autoconnect(oldpos) + on_mvps_move(moved_nodes) +end + +function mesecon:mvps_move_objects(pos, dir, nodestack) + local objects_to_move = {} + + -- Move object at tip of stack + local pushpos = mesecon:addPosRule(pos, -- get pos at tip of stack + {x = dir.x * #nodestack, + y = dir.y * #nodestack, + z = dir.z * #nodestack}) + + + local objects = minetest.get_objects_inside_radius(pushpos, 1) + for _, obj in ipairs(objects) do + table.insert(objects_to_move, obj) + end + + -- Move objects lying/standing on the stack (before it was pushed - oldstack) + if tonumber(minetest.setting_get("movement_gravity")) > 0 and dir.y == 0 then + -- If gravity positive and dir horizontal, push players standing on the stack + for _, n in ipairs(nodestack) do + local p_above = mesecon:addPosRule(n.pos, {x=0, y=1, z=0}) + local objects = minetest.get_objects_inside_radius(p_above, 1) + for _, obj in ipairs(objects) do + table.insert(objects_to_move, obj) + end + end + end + + for _, obj in ipairs(objects_to_move) do + local entity = obj:get_luaentity() + if not entity or not mesecon:is_mvps_unmov(entity.name) then + local np = mesecon:addPosRule(obj:getpos(), dir) + + --move only if destination is not solid + local nn = minetest.get_node(np) + if not ((not minetest.registered_nodes[nn.name]) + or minetest.registered_nodes[nn.name].walkable) then + obj:setpos(np) + end + end + end +end + +mesecon:register_mvps_stopper("default:chest_locked") +mesecon:register_mvps_stopper("default:furnace") diff --git a/mods/mesecons/mesecons_pistons/depends.txt b/mods/mesecons/mesecons_pistons/depends.txt new file mode 100755 index 00000000..01f085ba --- /dev/null +++ b/mods/mesecons/mesecons_pistons/depends.txt @@ -0,0 +1,2 @@ +mesecons +mesecons_mvps diff --git a/mods/mesecons/mesecons_pistons/init.lua b/mods/mesecons/mesecons_pistons/init.lua new file mode 100755 index 00000000..7780fc97 --- /dev/null +++ b/mods/mesecons/mesecons_pistons/init.lua @@ -0,0 +1,758 @@ +-- Get mesecon rules of pistons +piston_rules = +{{x=0, y=0, z=1}, --everything apart from z- (pusher side) + {x=1, y=0, z=0}, + {x=-1, y=0, z=0}, + {x=1, y=1, z=0}, + {x=1, y=-1, z=0}, + {x=-1, y=1, z=0}, + {x=-1, y=-1, z=0}, + {x=0, y=1, z=1}, + {x=0, y=-1, z=1}} + +local piston_up_rules = +{{x=0, y=0, z=-1}, --everything apart from y+ (pusher side) + {x=1, y=0, z=0}, + {x=-1, y=0, z=0}, + {x=0, y=0, z=1}, + {x=1, y=-1, z=0}, + {x=-1, y=-1, z=0}, + {x=0, y=-1, z=1}, + {x=0, y=-1, z=-1}} + +local piston_down_rules = +{{x=0, y=0, z=-1}, --everything apart from y- (pusher side) + {x=1, y=0, z=0}, + {x=-1, y=0, z=0}, + {x=0, y=0, z=1}, + {x=1, y=1, z=0}, + {x=-1, y=1, z=0}, + {x=0, y=1, z=1}, + {x=0, y=1, z=-1}} + +local piston_get_rules = function (node) + local rules = piston_rules + for i = 1, node.param2 do + rules = mesecon:rotate_rules_left(rules) + end + return rules +end + +piston_facedir_direction = function (node) + local rules = {{x = 0, y = 0, z = -1}} + for i = 1, node.param2 do + rules = mesecon:rotate_rules_left(rules) + end + return rules[1] +end + +piston_get_direction = function(dir, node) + if type(dir) == "function" then + return dir(node) + else + return dir + end +end + +local piston_remove_pusher = function(pos, node) + pistonspec = minetest.registered_nodes[node.name].mesecons_piston + if pushername == pistonspec.pusher then --make sure there actually is a pusher (for compatibility reasons mainly) + return + end + + dir = piston_get_direction(pistonspec.dir, node) + local pusherpos = mesecon:addPosRule(pos, dir) + local pushername = minetest.get_node(pusherpos).name + + minetest.remove_node(pusherpos) + minetest.sound_play("piston_retract", { + pos = pos, + max_hear_distance = 20, + gain = 0.3, + }) + nodeupdate(pusherpos) +end + +local piston_on = function(pos, node) + local pistonspec = minetest.registered_nodes[node.name].mesecons_piston + + local dir = piston_get_direction(pistonspec.dir, node) + local np = mesecon:addPosRule(pos, dir) + local success, stack, oldstack = mesecon:mvps_push(np, dir, PISTON_MAXIMUM_PUSH) + if success then + minetest.add_node(pos, {param2 = node.param2, name = pistonspec.onname}) + minetest.add_node(np, {param2 = node.param2, name = pistonspec.pusher}) + minetest.sound_play("piston_extend", { + pos = pos, + max_hear_distance = 20, + gain = 0.3, + }) + mesecon:mvps_process_stack (stack) + mesecon:mvps_move_objects (np, dir, oldstack) + end +end + +local piston_off = function(pos, node) + local pistonspec = minetest.registered_nodes[node.name].mesecons_piston + minetest.add_node(pos, {param2 = node.param2, name = pistonspec.offname}) + piston_remove_pusher(pos, node) + + if pistonspec.sticky then + dir = piston_get_direction(pistonspec.dir, node) + pullpos = mesecon:addPosRule(pos, dir) + stack = mesecon:mvps_pull_single(pullpos, dir) + mesecon:mvps_process_stack(pos, dir, stack) + end +end + +local piston_orientate = function(pos, placer) + -- not placed by player + if not placer then return end + + -- placer pitch in degrees + local pitch = placer:get_look_pitch() * (180 / math.pi) + + local node = minetest.get_node(pos) + local pistonspec = minetest.registered_nodes[node.name].mesecons_piston + if pitch > 55 then --looking upwards + minetest.add_node(pos, {name=pistonspec.piston_down}) + elseif pitch < -55 then --looking downwards + minetest.add_node(pos, {name=pistonspec.piston_up}) + end +end + + +-- Horizontal pistons + +local pt = 3/16 -- pusher thickness + +local piston_pusher_box = { + type = "fixed", + fixed = { + {-2/16, -2/16, -.5 + pt, 2/16, 2/16, .5 + pt}, + {-.5 , -.5 , -.5 , .5 , .5 , -.5 + pt}, + } +} + +local piston_on_box = { + type = "fixed", + fixed = { + {-.5, -.5, -.5 + pt, .5, .5, .5} + } +} + + +-- Normal (non-sticky) ones: + +local pistonspec_normal = { + offname = "mesecons_pistons:piston_normal_off", + onname = "mesecons_pistons:piston_normal_on", + dir = piston_facedir_direction, + pusher = "mesecons_pistons:piston_pusher_normal", + piston_down = "mesecons_pistons:piston_down_normal_off", + piston_up = "mesecons_pistons:piston_up_normal_off", +} + +-- offstate +minetest.register_node("mesecons_pistons:piston_normal_off", { + description = "Piston", + tiles = { + "mesecons_piston_top.png", + "mesecons_piston_bottom.png", + "mesecons_piston_left.png", + "mesecons_piston_right.png", + "mesecons_piston_back.png", + "mesecons_piston_pusher_front.png" + }, + groups = {cracky = 3}, + paramtype2 = "facedir", + after_place_node = piston_orientate, + mesecons_piston = pistonspec_normal, + sounds = default.node_sound_wood_defaults(), + mesecons = {effector={ + action_on = piston_on, + rules = piston_get_rules + }} +}) + +-- onstate +minetest.register_node("mesecons_pistons:piston_normal_on", { + drawtype = "nodebox", + tiles = { + "mesecons_piston_top.png", + "mesecons_piston_bottom.png", + "mesecons_piston_left.png", + "mesecons_piston_right.png", + "mesecons_piston_back.png", + "mesecons_piston_on_front.png" + }, + inventory_image = "mesecons_piston_top.png", + wield_image = "mesecons_piston_top.png", + groups = {cracky = 3, not_in_creative_inventory = 1}, + paramtype = "light", + paramtype2 = "facedir", + drop = "mesecons_pistons:piston_normal_off", + after_dig_node = piston_remove_pusher, + node_box = piston_on_box, + selection_box = piston_on_box, + mesecons_piston = pistonspec_normal, + sounds = default.node_sound_wood_defaults(), + mesecons = {effector={ + action_off = piston_off, + rules = piston_get_rules + }} +}) + +-- pusher +minetest.register_node("mesecons_pistons:piston_pusher_normal", { + drawtype = "nodebox", + tiles = { + "mesecons_piston_pusher_top.png", + "mesecons_piston_pusher_bottom.png", + "mesecons_piston_pusher_left.png", + "mesecons_piston_pusher_right.png", + "mesecons_piston_pusher_back.png", + "mesecons_piston_pusher_front.png" + }, + paramtype = "light", + paramtype2 = "facedir", + diggable = false, + corresponding_piston = "mesecons_pistons:piston_normal_on", + selection_box = piston_pusher_box, + node_box = piston_pusher_box, +}) + +-- Sticky ones + +local pistonspec_sticky = { + offname = "mesecons_pistons:piston_sticky_off", + onname = "mesecons_pistons:piston_sticky_on", + dir = piston_facedir_direction, + pusher = "mesecons_pistons:piston_pusher_sticky", + sticky = true, + piston_down = "mesecons_pistons:piston_down_sticky_off", + piston_up = "mesecons_pistons:piston_up_sticky_off", +} + +-- offstate +minetest.register_node("mesecons_pistons:piston_sticky_off", { + description = "Sticky Piston", + tiles = { + "mesecons_piston_top.png", + "mesecons_piston_bottom.png", + "mesecons_piston_left.png", + "mesecons_piston_right.png", + "mesecons_piston_back.png", + "mesecons_piston_pusher_front_sticky.png" + }, + groups = {cracky = 3}, + paramtype2 = "facedir", + after_place_node = piston_orientate, + mesecons_piston = pistonspec_sticky, + sounds = default.node_sound_wood_defaults(), + mesecons = {effector={ + action_on = piston_on, + rules = piston_get_rules + }} +}) + +-- onstate +minetest.register_node("mesecons_pistons:piston_sticky_on", { + drawtype = "nodebox", + tiles = { + "mesecons_piston_top.png", + "mesecons_piston_bottom.png", + "mesecons_piston_left.png", + "mesecons_piston_right.png", + "mesecons_piston_back.png", + "mesecons_piston_on_front.png" + }, + inventory_image = "mesecons_piston_top.png", + wield_image = "mesecons_piston_top.png", + groups = {cracky = 3, not_in_creative_inventory = 1}, + paramtype = "light", + paramtype2 = "facedir", + drop = "mesecons_pistons:piston_normal_off", + after_dig_node = piston_remove_pusher, + node_box = piston_on_box, + selection_box = piston_on_box, + mesecons_piston = pistonspec_sticky, + sounds = default.node_sound_wood_defaults(), + mesecons = {effector={ + action_off = piston_off, + rules = piston_get_rules + }} +}) + +-- pusher +minetest.register_node("mesecons_pistons:piston_pusher_sticky", { + drawtype = "nodebox", + tiles = { + "mesecons_piston_pusher_top.png", + "mesecons_piston_pusher_bottom.png", + "mesecons_piston_pusher_left.png", + "mesecons_piston_pusher_right.png", + "mesecons_piston_pusher_back.png", + "mesecons_piston_pusher_front_sticky.png" + }, + paramtype = "light", + paramtype2 = "facedir", + diggable = false, + corresponding_piston = "mesecons_pistons:piston_sticky_on", + selection_box = piston_pusher_box, + node_box = piston_pusher_box, +}) + +-- +-- +-- UP +-- +-- + +local piston_up_pusher_box = { + type = "fixed", + fixed = { + {-2/16, -.5 - pt, -2/16, 2/16, .5 - pt, 2/16}, + {-.5 , .5 - pt, -.5 , .5 , .5 , .5}, + } +} + +local piston_up_on_box = { + type = "fixed", + fixed = { + {-.5, -.5, -.5 , .5, .5-pt, .5} + } +} + +-- Normal + +local pistonspec_normal_up = { + offname = "mesecons_pistons:piston_up_normal_off", + onname = "mesecons_pistons:piston_up_normal_on", + dir = {x = 0, y = 1, z = 0}, + pusher = "mesecons_pistons:piston_up_pusher_normal" +} + +-- offstate +minetest.register_node("mesecons_pistons:piston_up_normal_off", { + tiles = { + "mesecons_piston_pusher_front.png", + "mesecons_piston_back.png", + "mesecons_piston_left.png^[transformR270", + "mesecons_piston_right.png^[transformR90", + "mesecons_piston_bottom.png", + "mesecons_piston_top.png^[transformR180", + }, + inventory_image = "mesecons_piston_top.png", + wield_image = "mesecons_piston_top.png", + groups = {cracky = 3, not_in_creative_inventory = 1}, + paramtype2 = "facedir", + drop = "mesecons_pistons:piston_normal_off", + mesecons_piston = pistonspec_normal_up, + mesecons = {effector={ + action_on = piston_on, + rules = piston_up_rules, + }} +}) + +-- onstate +minetest.register_node("mesecons_pistons:piston_up_normal_on", { + drawtype = "nodebox", + tiles = { + "mesecons_piston_on_front.png", + "mesecons_piston_back.png", + "mesecons_piston_left.png^[transformR270", + "mesecons_piston_right.png^[transformR90", + "mesecons_piston_bottom.png", + "mesecons_piston_top.png^[transformR180", + }, + inventory_image = "mesecons_piston_top.png", + wield_image = "mesecons_piston_top.png", + groups = {cracky = 3, not_in_creative_inventory = 1}, + paramtype = "light", + paramtype2 = "facedir", + drop = "mesecons_pistons:piston_normal_off", + after_dig_node = piston_remove_pusher, + node_box = piston_up_on_box, + selection_box = piston_up_on_box, + mesecons_piston = pistonspec_normal_up, + sounds = default.node_sound_wood_defaults(), + mesecons = {effector={ + action_off = piston_off, + rules = piston_up_rules, + }} +}) + +-- pusher +minetest.register_node("mesecons_pistons:piston_up_pusher_normal", { + drawtype = "nodebox", + tiles = { + "mesecons_piston_pusher_front.png", + "mesecons_piston_pusher_back.png", + "mesecons_piston_pusher_left.png^[transformR270", + "mesecons_piston_pusher_right.png^[transformR90", + "mesecons_piston_pusher_bottom.png", + "mesecons_piston_pusher_top.png^[transformR180", + }, + paramtype = "light", + paramtype2 = "facedir", + diggable = false, + corresponding_piston = "mesecons_pistons:piston_up_normal_on", + selection_box = piston_up_pusher_box, + node_box = piston_up_pusher_box, +}) + + + +-- Sticky + + +local pistonspec_sticky_up = { + offname = "mesecons_pistons:piston_up_sticky_off", + onname = "mesecons_pistons:piston_up_sticky_on", + dir = {x = 0, y = 1, z = 0}, + pusher = "mesecons_pistons:piston_up_pusher_sticky", + sticky = true +} + +-- offstate +minetest.register_node("mesecons_pistons:piston_up_sticky_off", { + tiles = { + "mesecons_piston_pusher_front_sticky.png", + "mesecons_piston_back.png", + "mesecons_piston_left.png^[transformR270", + "mesecons_piston_right.png^[transformR90", + "mesecons_piston_bottom.png", + "mesecons_piston_top.png^[transformR180", + "mesecons_piston_tb.png" + }, + inventory_image = "mesecons_piston_top.png", + wield_image = "mesecons_piston_top.png", + groups = {cracky = 3, not_in_creative_inventory = 1}, + paramtype2 = "facedir", + drop = "mesecons_pistons:piston_sticky_off", + mesecons_piston = pistonspec_sticky_up, + sounds = default.node_sound_wood_defaults(), + mesecons = {effector={ + action_on = piston_on, + rules = piston_up_rules, + }} +}) + +-- onstate +minetest.register_node("mesecons_pistons:piston_up_sticky_on", { + drawtype = "nodebox", + tiles = { + "mesecons_piston_on_front.png", + "mesecons_piston_back.png", + "mesecons_piston_left.png^[transformR270", + "mesecons_piston_right.png^[transformR90", + "mesecons_piston_bottom.png", + "mesecons_piston_top.png^[transformR180", + }, + inventory_image = "mesecons_piston_top.png", + wield_image = "mesecons_piston_top.png", + groups = {cracky = 3, not_in_creative_inventory = 1}, + paramtype = "light", + paramtype2 = "facedir", + drop = "mesecons_pistons:piston_normal_off", + after_dig_node = piston_remove_pusher, + node_box = piston_up_on_box, + selection_box = piston_up_on_box, + mesecons_piston = pistonspec_sticky_up, + sounds = default.node_sound_wood_defaults(), + mesecons = {effector={ + action_off = piston_off, + rules = piston_up_rules, + }} +}) + +-- pusher +minetest.register_node("mesecons_pistons:piston_up_pusher_sticky", { + drawtype = "nodebox", + tiles = { + "mesecons_piston_pusher_front_sticky.png", + "mesecons_piston_pusher_back.png", + "mesecons_piston_pusher_left.png^[transformR270", + "mesecons_piston_pusher_right.png^[transformR90", + "mesecons_piston_pusher_bottom.png", + "mesecons_piston_pusher_top.png^[transformR180", + }, + paramtype = "light", + paramtype2 = "facedir", + diggable = false, + corresponding_piston = "mesecons_pistons:piston_up_sticky_on", + selection_box = piston_up_pusher_box, + node_box = piston_up_pusher_box, +}) + +-- +-- +-- DOWN +-- +-- + +local piston_down_pusher_box = { + type = "fixed", + fixed = { + {-2/16, -.5 + pt, -2/16, 2/16, .5 + pt, 2/16}, + {-.5 , -.5 , -.5 , .5 , -.5 + pt, .5}, + } +} + +local piston_down_on_box = { + type = "fixed", + fixed = { + {-.5, -.5+pt, -.5 , .5, .5, .5} + } +} + + + +-- Normal + +local pistonspec_normal_down = { + offname = "mesecons_pistons:piston_down_normal_off", + onname = "mesecons_pistons:piston_down_normal_on", + dir = {x = 0, y = -1, z = 0}, + pusher = "mesecons_pistons:piston_down_pusher_normal", +} + +-- offstate +minetest.register_node("mesecons_pistons:piston_down_normal_off", { + tiles = { + "mesecons_piston_back.png", + "mesecons_piston_pusher_front.png", + "mesecons_piston_left.png^[transformR90", + "mesecons_piston_right.png^[transformR270", + "mesecons_piston_bottom.png^[transformR180", + "mesecons_piston_top.png", + }, + inventory_image = "mesecons_piston_top.png", + wield_image = "mesecons_piston_top.png", + groups = {cracky = 3, not_in_creative_inventory = 1}, + paramtype2 = "facedir", + drop = "mesecons_pistons:piston_normal_off", + mesecons_piston = pistonspec_normal_down, + sounds = default.node_sound_wood_defaults(), + mesecons = {effector={ + action_on = piston_on, + rules = piston_down_rules, + }} +}) + +-- onstate +minetest.register_node("mesecons_pistons:piston_down_normal_on", { + drawtype = "nodebox", + tiles = { + "mesecons_piston_back.png", + "mesecons_piston_on_front.png", + "mesecons_piston_left.png^[transformR90", + "mesecons_piston_right.png^[transformR270", + "mesecons_piston_bottom.png^[transformR180", + "mesecons_piston_top.png", + }, + inventory_image = "mesecons_piston_top.png", + wield_image = "mesecons_piston_top.png", + groups = {cracky = 3, not_in_creative_inventory = 1}, + paramtype = "light", + paramtype2 = "facedir", + drop = "mesecons_pistons:piston_normal_off", + after_dig_node = piston_remove_pusher, + node_box = piston_down_on_box, + selection_box = piston_down_on_box, + mesecons_piston = pistonspec_normal_down, + sounds = default.node_sound_wood_defaults(), + mesecons = {effector={ + action_off = piston_off, + rules = piston_down_rules, + }} +}) + +-- pusher +minetest.register_node("mesecons_pistons:piston_down_pusher_normal", { + drawtype = "nodebox", + tiles = { + "mesecons_piston_pusher_back.png", + "mesecons_piston_pusher_front.png", + "mesecons_piston_pusher_left.png^[transformR90", + "mesecons_piston_pusher_right.png^[transformR270", + "mesecons_piston_pusher_bottom.png^[transformR180", + "mesecons_piston_pusher_top.png", + }, + paramtype = "light", + paramtype2 = "facedir", + diggable = false, + corresponding_piston = "mesecons_pistons:piston_down_normal_on", + selection_box = piston_down_pusher_box, + node_box = piston_down_pusher_box, +}) + +-- Sticky + +local pistonspec_sticky_down = { + onname = "mesecons_pistons:piston_down_sticky_on", + offname = "mesecons_pistons:piston_down_sticky_off", + dir = {x = 0, y = -1, z = 0}, + pusher = "mesecons_pistons:piston_down_pusher_sticky", + sticky = true +} + +-- offstate +minetest.register_node("mesecons_pistons:piston_down_sticky_off", { + tiles = { + "mesecons_piston_back.png", + "mesecons_piston_pusher_front_sticky.png", + "mesecons_piston_left.png^[transformR90", + "mesecons_piston_right.png^[transformR270", + "mesecons_piston_bottom.png^[transformR180", + "mesecons_piston_top.png", + }, + inventory_image = "mesecons_piston_top.png", + wield_image = "mesecons_piston_top.png", + groups = {cracky = 3, not_in_creative_inventory = 1}, + paramtype2 = "facedir", + drop = "mesecons_pistons:piston_sticky_off", + mesecons_piston = pistonspec_sticky_down, + sounds = default.node_sound_wood_defaults(), + mesecons = {effector={ + action_on = piston_on, + rules = piston_down_rules, + }} +}) + +-- onstate +minetest.register_node("mesecons_pistons:piston_down_sticky_on", { + drawtype = "nodebox", + tiles = { + "mesecons_piston_back.png", + "mesecons_piston_on_front.png", + "mesecons_piston_left.png^[transformR90", + "mesecons_piston_right.png^[transformR270", + "mesecons_piston_bottom.png^[transformR180", + "mesecons_piston_top.png", + }, + inventory_image = "mesecons_piston_top.png", + wield_image = "mesecons_piston_top.png", + groups = {cracky = 3, not_in_creative_inventory = 1}, + paramtype = "light", + paramtype2 = "facedir", + drop = "mesecons_pistons:piston_sticky_off", + after_dig_node = piston_remove_pusher, + node_box = piston_down_on_box, + selection_box = piston_down_on_box, + mesecons_piston = pistonspec_sticky_down, + sounds = default.node_sound_wood_defaults(), + mesecons = {effector={ + action_off = piston_off, + rules = piston_down_rules, + }} +}) + +-- pusher +minetest.register_node("mesecons_pistons:piston_down_pusher_sticky", { + drawtype = "nodebox", + tiles = { + "mesecons_piston_pusher_back.png", + "mesecons_piston_pusher_front_sticky.png", + "mesecons_piston_pusher_left.png^[transformR90", + "mesecons_piston_pusher_right.png^[transformR270", + "mesecons_piston_pusher_bottom.png^[transformR180", + "mesecons_piston_pusher_top.png", + }, + paramtype = "light", + paramtype2 = "facedir", + diggable = false, + corresponding_piston = "mesecons_pistons:piston_down_sticky_on", + selection_box = piston_down_pusher_box, + node_box = piston_down_pusher_box, +}) + + +-- Register pushers as stoppers if they would be seperated from the piston +local piston_pusher_get_stopper = function (node, dir, stack, stackid) + if (stack[stackid + 1] + and stack[stackid + 1].node.name == minetest.registered_nodes[node.name].corresponding_piston + and stack[stackid + 1].node.param2 == node.param2) + or (stack[stackid - 1] + and stack[stackid - 1].node.name == minetest.registered_nodes[node.name].corresponding_piston + and stack[stackid - 1].node.param2 == node.param2) then + return false + end + return true +end + +local piston_pusher_up_down_get_stopper = function (node, dir, stack, stackid) + if (stack[stackid + 1] + and stack[stackid + 1].node.name == minetest.registered_nodes[node.name].corresponding_piston) + or (stack[stackid - 1] + and stack[stackid - 1].node.name == minetest.registered_nodes[node.name].corresponding_piston) then + return false + end + return true +end + +mesecon:register_mvps_stopper("mesecons_pistons:piston_pusher_normal", piston_pusher_get_stopper) +mesecon:register_mvps_stopper("mesecons_pistons:piston_pusher_sticky", piston_pusher_get_stopper) + +mesecon:register_mvps_stopper("mesecons_pistons:piston_up_pusher_normal", piston_pusher_up_down_get_stopper) +mesecon:register_mvps_stopper("mesecons_pistons:piston_up_pusher_sticky", piston_pusher_up_down_get_stopper) + +mesecon:register_mvps_stopper("mesecons_pistons:piston_down_pusher_normal", piston_pusher_up_down_get_stopper) +mesecon:register_mvps_stopper("mesecons_pistons:piston_down_pusher_sticky", piston_pusher_up_down_get_stopper) + + +-- Register pistons as stoppers if they would be seperated from the stopper +local piston_up_down_get_stopper = function (node, dir, stack, stackid) + if (stack[stackid + 1] + and stack[stackid + 1].node.name == minetest.registered_nodes[node.name].mesecons_piston.pusher) + or (stack[stackid - 1] + and stack[stackid - 1].node.name == minetest.registered_nodes[node.name].mesecons_piston.pusher) then + return false + end + return true +end + +local piston_get_stopper = function (node, dir, stack, stackid) + pistonspec = minetest.registered_nodes[node.name].mesecons_piston + dir = piston_get_direction(pistonspec.dir, node) + local pusherpos = mesecon:addPosRule(stack[stackid].pos, dir) + local pushernode = minetest.get_node(pusherpos) + + if minetest.registered_nodes[node.name].mesecons_piston.pusher == pushernode.name then + for _, s in ipairs(stack) do + if mesecon:cmpPos(s.pos, pusherpos) -- pusher is also to be pushed + and s.node.param2 == node.param2 then + return false + end + end + end + return true +end + +mesecon:register_mvps_stopper("mesecons_pistons:piston_normal_on", piston_get_stopper) +mesecon:register_mvps_stopper("mesecons_pistons:piston_sticky_on", piston_get_stopper) + +mesecon:register_mvps_stopper("mesecons_pistons:piston_up_normal_on", piston_up_down_get_stopper) +mesecon:register_mvps_stopper("mesecons_pistons:piston_up_sticky_on", piston_up_down_get_stopper) + +mesecon:register_mvps_stopper("mesecons_pistons:piston_down_normal_on", piston_up_down_get_stopper) +mesecon:register_mvps_stopper("mesecons_pistons:piston_down_sticky_on", piston_up_down_get_stopper) + +--craft recipes +minetest.register_craft({ + output = "mesecons_pistons:piston_normal_off 2", + recipe = { + {"group:wood", "group:wood", "group:wood"}, + {"default:cobble", "default:steel_ingot", "default:cobble"}, + {"default:cobble", "group:mesecon_conductor_craftable", "default:cobble"}, + } +}) + +minetest.register_craft({ + output = "mesecons_pistons:piston_sticky_off", + recipe = { + {"mesecons_materials:glue"}, + {"mesecons_pistons:piston_normal_off"}, + } +}) diff --git a/mods/mesecons/mesecons_pistons/sounds/piston_extend.ogg b/mods/mesecons/mesecons_pistons/sounds/piston_extend.ogg new file mode 100755 index 00000000..e234ad94 Binary files /dev/null and b/mods/mesecons/mesecons_pistons/sounds/piston_extend.ogg differ diff --git a/mods/mesecons/mesecons_pistons/sounds/piston_retract.ogg b/mods/mesecons/mesecons_pistons/sounds/piston_retract.ogg new file mode 100755 index 00000000..feb9f044 Binary files /dev/null and b/mods/mesecons/mesecons_pistons/sounds/piston_retract.ogg differ diff --git a/mods/mesecons/mesecons_pistons/textures/mesecons_piston_back.png b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_back.png new file mode 100755 index 00000000..2dde41b0 Binary files /dev/null and b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_back.png differ diff --git a/mods/mesecons/mesecons_pistons/textures/mesecons_piston_bottom.png b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_bottom.png new file mode 100755 index 00000000..d4b2fbf3 Binary files /dev/null and b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_bottom.png differ diff --git a/mods/mesecons/mesecons_pistons/textures/mesecons_piston_left.png b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_left.png new file mode 100755 index 00000000..a560a7de Binary files /dev/null and b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_left.png differ diff --git a/mods/mesecons/mesecons_pistons/textures/mesecons_piston_on_front.png b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_on_front.png new file mode 100755 index 00000000..f7b0f0ca Binary files /dev/null and b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_on_front.png differ diff --git a/mods/mesecons/mesecons_pistons/textures/mesecons_piston_pusher_back.png b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_pusher_back.png new file mode 100755 index 00000000..713cd9d3 Binary files /dev/null and b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_pusher_back.png differ diff --git a/mods/mesecons/mesecons_pistons/textures/mesecons_piston_pusher_bottom.png b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_pusher_bottom.png new file mode 100755 index 00000000..cc6420e7 Binary files /dev/null and b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_pusher_bottom.png differ diff --git a/mods/mesecons/mesecons_pistons/textures/mesecons_piston_pusher_front.png b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_pusher_front.png new file mode 100755 index 00000000..3a09947b Binary files /dev/null and b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_pusher_front.png differ diff --git a/mods/mesecons/mesecons_pistons/textures/mesecons_piston_pusher_front_sticky.png b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_pusher_front_sticky.png new file mode 100755 index 00000000..686e7857 Binary files /dev/null and b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_pusher_front_sticky.png differ diff --git a/mods/mesecons/mesecons_pistons/textures/mesecons_piston_pusher_left.png b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_pusher_left.png new file mode 100755 index 00000000..43d0327c Binary files /dev/null and b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_pusher_left.png differ diff --git a/mods/mesecons/mesecons_pistons/textures/mesecons_piston_pusher_right.png b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_pusher_right.png new file mode 100755 index 00000000..af86c0f1 Binary files /dev/null and b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_pusher_right.png differ diff --git a/mods/mesecons/mesecons_pistons/textures/mesecons_piston_pusher_top.png b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_pusher_top.png new file mode 100755 index 00000000..032215be Binary files /dev/null and b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_pusher_top.png differ diff --git a/mods/mesecons/mesecons_pistons/textures/mesecons_piston_right.png b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_right.png new file mode 100755 index 00000000..02fa0235 Binary files /dev/null and b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_right.png differ diff --git a/mods/mesecons/mesecons_pistons/textures/mesecons_piston_top.png b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_top.png new file mode 100755 index 00000000..5b35a96e Binary files /dev/null and b/mods/mesecons/mesecons_pistons/textures/mesecons_piston_top.png differ diff --git a/mods/mesecons/mesecons_powerplant/depends.txt b/mods/mesecons/mesecons_powerplant/depends.txt new file mode 100755 index 00000000..acaa9241 --- /dev/null +++ b/mods/mesecons/mesecons_powerplant/depends.txt @@ -0,0 +1 @@ +mesecons diff --git a/mods/mesecons/mesecons_powerplant/init.lua b/mods/mesecons/mesecons_powerplant/init.lua new file mode 100755 index 00000000..0bcf8c60 --- /dev/null +++ b/mods/mesecons/mesecons_powerplant/init.lua @@ -0,0 +1,32 @@ +-- The POWER_PLANT +-- Just emits power. always. + +minetest.register_node("mesecons_powerplant:power_plant", { + drawtype = "plantlike", + visual_scale = 1, + tiles = {"jeija_power_plant.png"}, + inventory_image = "jeija_power_plant.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + groups = {snappy = 3, mesecon = 2}, + light_source = LIGHT_MAX-7, + description = "Power Plant", + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, -0.2, 0.3}, + }, + sounds = default.node_sound_leaves_defaults(), + mesecons = {receptor = { + state = mesecon.state.on + }} +}) + +minetest.register_craft({ + output = "mesecons_powerplant:power_plant 1", + recipe = { + {"group:mesecon_conductor_craftable"}, + {"group:mesecon_conductor_craftable"}, + {"default:sapling"}, + } +}) diff --git a/mods/mesecons/mesecons_powerplant/textures/jeija_power_plant.png b/mods/mesecons/mesecons_powerplant/textures/jeija_power_plant.png new file mode 100755 index 00000000..72043174 Binary files /dev/null and b/mods/mesecons/mesecons_powerplant/textures/jeija_power_plant.png differ diff --git a/mods/mesecons/mesecons_pressureplates/depends.txt b/mods/mesecons/mesecons_pressureplates/depends.txt new file mode 100755 index 00000000..acaa9241 --- /dev/null +++ b/mods/mesecons/mesecons_pressureplates/depends.txt @@ -0,0 +1 @@ +mesecons diff --git a/mods/mesecons/mesecons_pressureplates/init.lua b/mods/mesecons/mesecons_pressureplates/init.lua new file mode 100755 index 00000000..ec8d7893 --- /dev/null +++ b/mods/mesecons/mesecons_pressureplates/init.lua @@ -0,0 +1,127 @@ +local pp_box_off = { + type = "fixed", + fixed = { -7/16, -8/16, -7/16, 7/16, -7/16, 7/16 }, +} + +local pp_box_on = { + type = "fixed", + fixed = { -7/16, -8/16, -7/16, 7/16, -7.5/16, 7/16 }, +} + +pp_on_timer = function (pos, elapsed) + local node = minetest.get_node(pos) + local ppspec = minetest.registered_nodes[node.name].pressureplate + + -- This is a workaround for a strange bug that occurs when the server is started + -- For some reason the first time on_timer is called, the pos is wrong + if not ppspec then return end + + local objs = minetest.get_objects_inside_radius(pos, 1) + local two_below = mesecon:addPosRule(pos, {x = 0, y = -2, z = 0}) + + if objs[1] == nil and node.name == ppspec.onstate then + minetest.add_node(pos, {name = ppspec.offstate}) + mesecon:receptor_off(pos) + -- force deactivation of mesecon two blocks below (hacky) + if not mesecon:connected_to_receptor(two_below) then + mesecon:turnoff(two_below) + end + else + for k, obj in pairs(objs) do + local objpos = obj:getpos() + if objpos.y > pos.y-1 and objpos.y < pos.y then + minetest.add_node(pos, {name=ppspec.onstate}) + mesecon:receptor_on(pos) + -- force activation of mesecon two blocks below (hacky) + mesecon:turnon(two_below) + end + end + end + return true +end + +-- Register a Pressure Plate +-- offstate: name of the pressure plate when inactive +-- onstate: name of the pressure plate when active +-- description: description displayed in the player's inventory +-- tiles_off: textures of the pressure plate when inactive +-- tiles_on: textures of the pressure plate when active +-- image: inventory and wield image of the pressure plate +-- recipe: crafting recipe of the pressure plate + +function mesecon:register_pressure_plate(offstate, onstate, description, textures_off, textures_on, image_w, image_i, recipe) + local ppspec = { + offstate = offstate, + onstate = onstate + } + + minetest.register_node(offstate, { + drawtype = "nodebox", + tiles = textures_off, + inventory_image = image_i, + wield_image = image_w, + paramtype = "light", + selection_box = pp_box_off, + node_box = pp_box_off, + groups = {snappy = 2, oddly_breakable_by_hand = 3}, + description = description, + pressureplate = ppspec, + on_timer = pp_on_timer, + mesecons = {receptor = { + state = mesecon.state.off + }}, + on_construct = function(pos) + minetest.get_node_timer(pos):start(PRESSURE_PLATE_INTERVAL) + end, + }) + + minetest.register_node(onstate, { + drawtype = "nodebox", + tiles = textures_on, + paramtype = "light", + selection_box = pp_box_on, + node_box = pp_box_on, + groups = {snappy = 2, oddly_breakable_by_hand = 3, not_in_creative_inventory = 1}, + drop = offstate, + pressureplate = ppspec, + on_timer = pp_on_timer, + sounds = default.node_sound_wood_defaults(), + mesecons = {receptor = { + state = mesecon.state.on + }}, + on_construct = function(pos) + minetest.get_node_timer(pos):start(PRESSURE_PLATE_INTERVAL) + end, + after_dig_node = function(pos) + local two_below = mesecon:addPosRule(pos, {x = 0, y = -2, z = 0}) + if not mesecon:connected_to_receptor(two_below) then + mesecon:turnoff(two_below) + end + end + }) + + minetest.register_craft({ + output = offstate, + recipe = recipe, + }) +end + +mesecon:register_pressure_plate( + "mesecons_pressureplates:pressure_plate_wood_off", + "mesecons_pressureplates:pressure_plate_wood_on", + "Wooden Pressure Plate", + {"jeija_pressure_plate_wood_off.png","jeija_pressure_plate_wood_off.png","jeija_pressure_plate_wood_off_edges.png"}, + {"jeija_pressure_plate_wood_on.png","jeija_pressure_plate_wood_on.png","jeija_pressure_plate_wood_on_edges.png"}, + "jeija_pressure_plate_wood_wield.png", + "jeija_pressure_plate_wood_inv.png", + {{"group:wood", "group:wood"}}) + +mesecon:register_pressure_plate( + "mesecons_pressureplates:pressure_plate_stone_off", + "mesecons_pressureplates:pressure_plate_stone_on", + "Stone Pressure Plate", + {"jeija_pressure_plate_stone_off.png","jeija_pressure_plate_stone_off.png","jeija_pressure_plate_stone_off_edges.png"}, + {"jeija_pressure_plate_stone_on.png","jeija_pressure_plate_stone_on.png","jeija_pressure_plate_stone_on_edges.png"}, + "jeija_pressure_plate_stone_wield.png", + "jeija_pressure_plate_stone_inv.png", + {{"default:cobble", "default:cobble"}}) diff --git a/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_stone_inv.png b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_stone_inv.png new file mode 100755 index 00000000..5f35c843 Binary files /dev/null and b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_stone_inv.png differ diff --git a/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_stone_off.png b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_stone_off.png new file mode 100755 index 00000000..544b1aa8 Binary files /dev/null and b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_stone_off.png differ diff --git a/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_stone_off_edges.png b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_stone_off_edges.png new file mode 100755 index 00000000..ad13f5b1 Binary files /dev/null and b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_stone_off_edges.png differ diff --git a/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_stone_on.png b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_stone_on.png new file mode 100755 index 00000000..434b3d83 Binary files /dev/null and b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_stone_on.png differ diff --git a/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_stone_on_edges.png b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_stone_on_edges.png new file mode 100755 index 00000000..818c966c Binary files /dev/null and b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_stone_on_edges.png differ diff --git a/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_stone_wield.png b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_stone_wield.png new file mode 100755 index 00000000..5f35c843 Binary files /dev/null and b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_stone_wield.png differ diff --git a/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_wood_inv.png b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_wood_inv.png new file mode 100755 index 00000000..5e8109af Binary files /dev/null and b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_wood_inv.png differ diff --git a/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_wood_off.png b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_wood_off.png new file mode 100755 index 00000000..c9ba34f3 Binary files /dev/null and b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_wood_off.png differ diff --git a/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_wood_off_edges.png b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_wood_off_edges.png new file mode 100755 index 00000000..8b101739 Binary files /dev/null and b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_wood_off_edges.png differ diff --git a/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_wood_on.png b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_wood_on.png new file mode 100755 index 00000000..9ae7cc6d Binary files /dev/null and b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_wood_on.png differ diff --git a/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_wood_on_edges.png b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_wood_on_edges.png new file mode 100755 index 00000000..97cd30ed Binary files /dev/null and b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_wood_on_edges.png differ diff --git a/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_wood_wield.png b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_wood_wield.png new file mode 100755 index 00000000..5e8109af Binary files /dev/null and b/mods/mesecons/mesecons_pressureplates/textures/jeija_pressure_plate_wood_wield.png differ diff --git a/mods/mesecons/mesecons_random/depends.txt b/mods/mesecons/mesecons_random/depends.txt new file mode 100755 index 00000000..acaa9241 --- /dev/null +++ b/mods/mesecons/mesecons_random/depends.txt @@ -0,0 +1 @@ +mesecons diff --git a/mods/mesecons/mesecons_random/init.lua b/mods/mesecons/mesecons_random/init.lua new file mode 100755 index 00000000..670bea40 --- /dev/null +++ b/mods/mesecons/mesecons_random/init.lua @@ -0,0 +1,85 @@ +-- REMOVESTONE + +minetest.register_node("mesecons_random:removestone", { + tiles = {"jeija_removestone.png"}, + inventory_image = minetest.inventorycube("jeija_removestone_inv.png"), + groups = {cracky=3}, + description="Removestone", + sounds = default.node_sound_stone_defaults(), + mesecons = {effector = { + action_on = function (pos, node) + minetest.remove_node(pos) + mesecon:update_autoconnect(pos) + end + }} +}) + +minetest.register_craft({ + output = 'mesecons_random:removestone 4', + recipe = { + {"", "default:cobble", ""}, + {"default:cobble", "group:mesecon_conductor_craftable", "default:cobble"}, + {"", "default:cobble", ""}, + } +}) + +-- GHOSTSTONE + +minetest.register_node("mesecons_random:ghoststone", { + description="ghoststone", + tiles = {"jeija_ghoststone.png"}, + is_ground_content = true, + inventory_image = minetest.inventorycube("jeija_ghoststone_inv.png"), + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + mesecons = {conductor = { + state = mesecon.state.off, + rules = { --axes + {x = -1, y = 0, z = 0}, + {x = 1, y = 0, z = 0}, + {x = 0, y = -1, z = 0}, + {x = 0, y = 1, z = 0}, + {x = 0, y = 0, z = -1}, + {x = 0, y = 0, z = 1}, + }, + onstate = "mesecons_random:ghoststone_active" + }} +}) + +minetest.register_node("mesecons_random:ghoststone_active", { + drawtype = "airlike", + pointable = false, + walkable = false, + diggable = false, + sunlight_propagates = true, + paramtype = "light", + mesecons = {conductor = { + state = mesecon.state.on, + rules = { + {x = -1, y = 0, z = 0}, + {x = 1, y = 0, z = 0}, + {x = 0, y = -1, z = 0}, + {x = 0, y = 1, z = 0}, + {x = 0, y = 0, z = -1}, + {x = 0, y = 0, z = 1}, + }, + offstate = "mesecons_random:ghoststone" + }}, + on_construct = function(pos) + --remove shadow + pos2 = {x = pos.x, y = pos.y + 1, z = pos.z} + if ( minetest.get_node(pos2).name == "air" ) then + minetest.dig_node(pos2) + end + end +}) + + +minetest.register_craft({ + output = 'mesecons_random:ghoststone 4', + recipe = { + {"default:steel_ingot", "default:cobble", "default:steel_ingot"}, + {"default:cobble", "group:mesecon_conductor_craftable", "default:cobble"}, + {"default:steel_ingot", "default:cobble", "default:steel_ingot"}, + } +}) diff --git a/mods/mesecons/mesecons_random/textures/jeija_ghoststone.png b/mods/mesecons/mesecons_random/textures/jeija_ghoststone.png new file mode 100755 index 00000000..1f36a41b Binary files /dev/null and b/mods/mesecons/mesecons_random/textures/jeija_ghoststone.png differ diff --git a/mods/mesecons/mesecons_random/textures/jeija_ghoststone_inv.png b/mods/mesecons/mesecons_random/textures/jeija_ghoststone_inv.png new file mode 100755 index 00000000..bfe3a84d Binary files /dev/null and b/mods/mesecons/mesecons_random/textures/jeija_ghoststone_inv.png differ diff --git a/mods/mesecons/mesecons_random/textures/jeija_removestone.png b/mods/mesecons/mesecons_random/textures/jeija_removestone.png new file mode 100755 index 00000000..1f36a41b Binary files /dev/null and b/mods/mesecons/mesecons_random/textures/jeija_removestone.png differ diff --git a/mods/mesecons/mesecons_random/textures/jeija_removestone_inv.png b/mods/mesecons/mesecons_random/textures/jeija_removestone_inv.png new file mode 100755 index 00000000..bfe3a84d Binary files /dev/null and b/mods/mesecons/mesecons_random/textures/jeija_removestone_inv.png differ diff --git a/mods/mesecons/mesecons_receiver/depends.txt b/mods/mesecons/mesecons_receiver/depends.txt new file mode 100755 index 00000000..acaa9241 --- /dev/null +++ b/mods/mesecons/mesecons_receiver/depends.txt @@ -0,0 +1 @@ +mesecons diff --git a/mods/mesecons/mesecons_receiver/init.lua b/mods/mesecons/mesecons_receiver/init.lua new file mode 100755 index 00000000..3b1108ef --- /dev/null +++ b/mods/mesecons/mesecons_receiver/init.lua @@ -0,0 +1,165 @@ +rcvboxes = { + { -3/16, -3/16 , -8/16 , 3/16, 3/16, -13/32 }, -- the smaller bump + { -1/32, -1/32 , -3/2 , 1/32, 1/32, -1/2 }, -- the wire through the block + { -2/32, -.5-1/32, -.5 , 2/32, 0 , -.5002+3/32 }, -- the vertical wire bit + { -2/32, -17/32 , -7/16+0.002 , 2/32, -14/32, 16/32+0.001 } -- the horizontal wire +} + +local receiver_get_rules = function (node) + local rules = { {x = 1, y = 0, z = 0}, + {x = -2, y = 0, z = 0}} + if node.param2 == 2 then + rules = mesecon:rotate_rules_left(rules) + elseif node.param2 == 3 then + rules = mesecon:rotate_rules_right(mesecon:rotate_rules_right(rules)) + elseif node.param2 == 0 then + rules = mesecon:rotate_rules_right(rules) + end + return rules +end + +minetest.register_node("mesecons_receiver:receiver_on", { + drawtype = "nodebox", + tiles = { + "receiver_top_on.png", + "receiver_bottom_on.png", + "receiver_lr_on.png", + "receiver_lr_on.png", + "receiver_fb_on.png", + "receiver_fb_on.png", + }, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = { -3/16, -8/16, -8/16, 3/16, 3/16, 8/16 } + }, + node_box = { + type = "fixed", + fixed = rcvboxes + }, + groups = {dig_immediate = 3, not_in_creative_inventory = 1}, + drop = "mesecons:wire_00000000_off", + mesecons = {conductor = { + state = mesecon.state.on, + rules = receiver_get_rules, + offstate = "mesecons_receiver:receiver_off" + }} +}) + +minetest.register_node("mesecons_receiver:receiver_off", { + drawtype = "nodebox", + description = "You hacker you", + tiles = { + "receiver_top_off.png", + "receiver_bottom_off.png", + "receiver_lr_off.png", + "receiver_lr_off.png", + "receiver_fb_off.png", + "receiver_fb_off.png", + }, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = { -3/16, -8/16, -8/16, 3/16, 3/16, 8/16 } + }, + node_box = { + type = "fixed", + fixed = rcvboxes + }, + groups = {dig_immediate = 3, not_in_creative_inventory = 1}, + drop = "mesecons:wire_00000000_off", + mesecons = {conductor = { + state = mesecon.state.off, + rules = receiver_get_rules, + onstate = "mesecons_receiver:receiver_on" + }} +}) + +mesecon:add_rules("receiver_pos", {{x = 2, y = 0, z = 0}}) + +mesecon:add_rules("receiver_pos_all", { +{x = 2, y = 0, z = 0}, +{x =-2, y = 0, z = 0}, +{x = 0, y = 0, z = 2}, +{x = 0, y = 0, z =-2}}) + +function mesecon:receiver_get_pos_from_rcpt(pos, param2) + local rules = mesecon:get_rules("receiver_pos") + if param2 == nil then param2 = minetest.get_node(pos).param2 end + if param2 == 2 then + rules = mesecon:rotate_rules_left(rules) + elseif param2 == 3 then + rules = mesecon:rotate_rules_right(mesecon:rotate_rules_right(rules)) + elseif param2 == 0 then + rules = mesecon:rotate_rules_right(rules) + end + np = { + x = pos.x + rules[1].x, + y = pos.y + rules[1].y, + z = pos.z + rules[1].z} + return np +end + +function mesecon:receiver_place(rcpt_pos) + local node = minetest.get_node(rcpt_pos) + local pos = mesecon:receiver_get_pos_from_rcpt(rcpt_pos, node.param2) + local nn = minetest.get_node(pos) + + if string.find(nn.name, "mesecons:wire_") ~= nil then + minetest.dig_node(pos) + if mesecon:is_power_on(rcpt_pos) then + minetest.add_node(pos, {name = "mesecons_receiver:receiver_on", param2 = node.param2}) + mesecon:receptor_on(pos, receiver_get_rules(node)) + else + minetest.add_node(pos, {name = "mesecons_receiver:receiver_off", param2 = node.param2}) + end + mesecon:update_autoconnect(pos) + end +end + +function mesecon:receiver_remove(rcpt_pos, dugnode) + local pos = mesecon:receiver_get_pos_from_rcpt(rcpt_pos, dugnode.param2) + local nn = minetest.get_node(pos) + if string.find(nn.name, "mesecons_receiver:receiver_") ~=nil then + minetest.dig_node(pos) + local node = {name = "mesecons:wire_00000000_off"} + minetest.add_node(pos, node) + mesecon:update_autoconnect(pos) + mesecon.on_placenode(pos, node) + end +end + +minetest.register_on_placenode(function (pos, node) + if minetest.get_item_group(node.name, "mesecon_needs_receiver") == 1 then + mesecon:receiver_place(pos) + end +end) + +minetest.register_on_dignode(function(pos, node) + if minetest.get_item_group(node.name, "mesecon_needs_receiver") == 1 then + mesecon:receiver_remove(pos, node) + end +end) + +minetest.register_on_placenode(function (pos, node) + if string.find(node.name, "mesecons:wire_") ~=nil then + rules = mesecon:get_rules("receiver_pos_all") + local i = 1 + while rules[i] ~= nil do + np = { + x = pos.x + rules[i].x, + y = pos.y + rules[i].y, + z = pos.z + rules[i].z} + if minetest.get_item_group(minetest.get_node(np).name, "mesecon_needs_receiver") == 1 then + mesecon:receiver_place(np) + end + i = i + 1 + end + end +end) diff --git a/mods/mesecons/mesecons_receiver/textures/receiver_bottom_off.png b/mods/mesecons/mesecons_receiver/textures/receiver_bottom_off.png new file mode 100755 index 00000000..87d9e121 Binary files /dev/null and b/mods/mesecons/mesecons_receiver/textures/receiver_bottom_off.png differ diff --git a/mods/mesecons/mesecons_receiver/textures/receiver_bottom_on.png b/mods/mesecons/mesecons_receiver/textures/receiver_bottom_on.png new file mode 100755 index 00000000..2b8396f0 Binary files /dev/null and b/mods/mesecons/mesecons_receiver/textures/receiver_bottom_on.png differ diff --git a/mods/mesecons/mesecons_receiver/textures/receiver_fb_off.png b/mods/mesecons/mesecons_receiver/textures/receiver_fb_off.png new file mode 100755 index 00000000..87d9e121 Binary files /dev/null and b/mods/mesecons/mesecons_receiver/textures/receiver_fb_off.png differ diff --git a/mods/mesecons/mesecons_receiver/textures/receiver_fb_on.png b/mods/mesecons/mesecons_receiver/textures/receiver_fb_on.png new file mode 100755 index 00000000..2b8396f0 Binary files /dev/null and b/mods/mesecons/mesecons_receiver/textures/receiver_fb_on.png differ diff --git a/mods/mesecons/mesecons_receiver/textures/receiver_lr_off.png b/mods/mesecons/mesecons_receiver/textures/receiver_lr_off.png new file mode 100755 index 00000000..87d9e121 Binary files /dev/null and b/mods/mesecons/mesecons_receiver/textures/receiver_lr_off.png differ diff --git a/mods/mesecons/mesecons_receiver/textures/receiver_lr_on.png b/mods/mesecons/mesecons_receiver/textures/receiver_lr_on.png new file mode 100755 index 00000000..2b8396f0 Binary files /dev/null and b/mods/mesecons/mesecons_receiver/textures/receiver_lr_on.png differ diff --git a/mods/mesecons/mesecons_receiver/textures/receiver_top_off.png b/mods/mesecons/mesecons_receiver/textures/receiver_top_off.png new file mode 100755 index 00000000..87d9e121 Binary files /dev/null and b/mods/mesecons/mesecons_receiver/textures/receiver_top_off.png differ diff --git a/mods/mesecons/mesecons_receiver/textures/receiver_top_on.png b/mods/mesecons/mesecons_receiver/textures/receiver_top_on.png new file mode 100755 index 00000000..2b8396f0 Binary files /dev/null and b/mods/mesecons/mesecons_receiver/textures/receiver_top_on.png differ diff --git a/mods/mesecons/mesecons_solarpanel/depends.txt b/mods/mesecons/mesecons_solarpanel/depends.txt new file mode 100755 index 00000000..bc7b0627 --- /dev/null +++ b/mods/mesecons/mesecons_solarpanel/depends.txt @@ -0,0 +1,2 @@ +mesecons +mesecons_materials diff --git a/mods/mesecons/mesecons_solarpanel/init.lua b/mods/mesecons/mesecons_solarpanel/init.lua new file mode 100755 index 00000000..c30fe12c --- /dev/null +++ b/mods/mesecons/mesecons_solarpanel/init.lua @@ -0,0 +1,95 @@ +-- Solar Panel +minetest.register_node("mesecons_solarpanel:solar_panel_on", { + drawtype = "nodebox", + tiles = { "jeija_solar_panel.png", }, + inventory_image = "jeija_solar_panel.png", + wield_image = "jeija_solar_panel.png", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + is_ground_content = true, + node_box = { + type = "wallmounted", + wall_bottom = { -7/16, -8/16, -7/16, 7/16, -7/16, 7/16 }, + wall_top = { -7/16, 7/16, -7/16, 7/16, 8/16, 7/16 }, + wall_side = { -8/16, -7/16, -7/16, -7/16, 7/16, 7/16 }, + }, + selection_box = { + type = "wallmounted", + wall_bottom = { -7/16, -8/16, -7/16, 7/16, -7/16, 7/16 }, + wall_top = { -7/16, 7/16, -7/16, 7/16, 8/16, 7/16 }, + wall_side = { -8/16, -7/16, -7/16, -7/16, 7/16, 7/16 }, + }, + drop = "mesecons_solarpanel:solar_panel_off", + groups = {dig_immediate=3, not_in_creative_inventory = 1}, + sounds = default.node_sound_glass_defaults(), + mesecons = {receptor = { + state = mesecon.state.on + }} +}) + +-- Solar Panel +minetest.register_node("mesecons_solarpanel:solar_panel_off", { + drawtype = "nodebox", + tiles = { "jeija_solar_panel.png", }, + inventory_image = "jeija_solar_panel.png", + wield_image = "jeija_solar_panel.png", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + is_ground_content = true, + node_box = { + type = "wallmounted", + wall_bottom = { -7/16, -8/16, -7/16, 7/16, -7/16, 7/16 }, + wall_top = { -7/16, 7/16, -7/16, 7/16, 8/16, 7/16 }, + wall_side = { -8/16, -7/16, -7/16, -7/16, 7/16, 7/16 }, + }, + selection_box = { + type = "wallmounted", + wall_bottom = { -7/16, -8/16, -7/16, 7/16, -7/16, 7/16 }, + wall_top = { -7/16, 7/16, -7/16, 7/16, 8/16, 7/16 }, + wall_side = { -8/16, -7/16, -7/16, -7/16, 7/16, 7/16 }, + }, + groups = {dig_immediate=3}, + description="Solar Panel", + sounds = default.node_sound_glass_defaults(), + mesecons = {receptor = { + state = mesecon.state.off + }} +}) + +minetest.register_craft({ + output = "mesecons_solarpanel:solar_panel_off 1", + recipe = { + {"mesecons_materials:silicon", "mesecons_materials:silicon"}, + {"mesecons_materials:silicon", "mesecons_materials:silicon"}, + } +}) + +minetest.register_abm( + {nodenames = {"mesecons_solarpanel:solar_panel_off"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local light = minetest.get_node_light(pos, nil) + + if light >= 12 then + minetest.set_node(pos, {name="mesecons_solarpanel:solar_panel_on", param2=node.param2}) + mesecon:receptor_on(pos) + end + end, +}) + +minetest.register_abm( + {nodenames = {"mesecons_solarpanel:solar_panel_on"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local light = minetest.get_node_light(pos, nil) + + if light < 12 then + minetest.set_node(pos, {name="mesecons_solarpanel:solar_panel_off", param2=node.param2}) + mesecon:receptor_off(pos) + end + end, +}) diff --git a/mods/mesecons/mesecons_solarpanel/textures/jeija_solar_panel.png b/mods/mesecons/mesecons_solarpanel/textures/jeija_solar_panel.png new file mode 100755 index 00000000..d2f80fe9 Binary files /dev/null and b/mods/mesecons/mesecons_solarpanel/textures/jeija_solar_panel.png differ diff --git a/mods/mesecons/mesecons_switch/depends.txt b/mods/mesecons/mesecons_switch/depends.txt new file mode 100755 index 00000000..acaa9241 --- /dev/null +++ b/mods/mesecons/mesecons_switch/depends.txt @@ -0,0 +1 @@ +mesecons diff --git a/mods/mesecons/mesecons_switch/init.lua b/mods/mesecons/mesecons_switch/init.lua new file mode 100755 index 00000000..1b7f4788 --- /dev/null +++ b/mods/mesecons/mesecons_switch/init.lua @@ -0,0 +1,41 @@ +-- MESECON_SWITCH + +minetest.register_node("mesecons_switch:mesecon_switch_off", { + tiles = {"jeija_mesecon_switch_side.png", "jeija_mesecon_switch_side.png", "jeija_mesecon_switch_side.png", "jeija_mesecon_switch_side.png", "jeija_mesecon_switch_side.png", "jeija_mesecon_switch_off.png"}, + paramtype2="facedir", + groups = {dig_immediate=2}, + description="Switch", + sounds = default.node_sound_stone_defaults(), + mesecons = {receptor = { + state = mesecon.state.off + }}, + on_punch = function(pos, node) + minetest.swap_node(pos, {name = "mesecons_switch:mesecon_switch_on", param2 = node.param2}) + mesecon:receptor_on(pos) + minetest.sound_play("mesecons_switch", {pos=pos}) + end +}) + +minetest.register_node("mesecons_switch:mesecon_switch_on", { + tiles = {"jeija_mesecon_switch_side.png", "jeija_mesecon_switch_side.png", "jeija_mesecon_switch_side.png", "jeija_mesecon_switch_side.png", "jeija_mesecon_switch_side.png", "jeija_mesecon_switch_on.png"}, + paramtype2="facedir", + groups = {dig_immediate=2,not_in_creative_inventory=1}, + drop="mesecons_switch:mesecon_switch_off 1", + sounds = default.node_sound_stone_defaults(), + mesecons = {receptor = { + state = mesecon.state.on + }}, + on_punch = function(pos, node) + minetest.swap_node(pos, {name = "mesecons_switch:mesecon_switch_off", param2 = node.param2}) + mesecon:receptor_off(pos) + minetest.sound_play("mesecons_switch", {pos=pos}) + end +}) + +minetest.register_craft({ + output = "mesecons_switch:mesecon_switch_off 2", + recipe = { + {"default:steel_ingot", "default:cobble", "default:steel_ingot"}, + {"group:mesecon_conductor_craftable","", "group:mesecon_conductor_craftable"}, + } +}) diff --git a/mods/mesecons/mesecons_switch/sounds/mesecons_switch.ogg b/mods/mesecons/mesecons_switch/sounds/mesecons_switch.ogg new file mode 100755 index 00000000..53d45c18 Binary files /dev/null and b/mods/mesecons/mesecons_switch/sounds/mesecons_switch.ogg differ diff --git a/mods/mesecons/mesecons_torch/depends.txt b/mods/mesecons/mesecons_torch/depends.txt new file mode 100755 index 00000000..acaa9241 --- /dev/null +++ b/mods/mesecons/mesecons_torch/depends.txt @@ -0,0 +1 @@ +mesecons diff --git a/mods/mesecons/mesecons_torch/init.lua b/mods/mesecons/mesecons_torch/init.lua new file mode 100755 index 00000000..97a29910 --- /dev/null +++ b/mods/mesecons/mesecons_torch/init.lua @@ -0,0 +1,118 @@ +--MESECON TORCHES + +local rotate_torch_rules = function (rules, param2) + if param2 == 5 then + return mesecon:rotate_rules_right(rules) + elseif param2 == 2 then + return mesecon:rotate_rules_right(mesecon:rotate_rules_right(rules)) --180 degrees + elseif param2 == 4 then + return mesecon:rotate_rules_left(rules) + elseif param2 == 1 then + return mesecon:rotate_rules_down(rules) + elseif param2 == 0 then + return mesecon:rotate_rules_up(rules) + else + return rules + end +end + +local torch_get_output_rules = function(node) + local rules = { + {x = 1, y = 0, z = 0}, + {x = 0, y = 0, z = 1}, + {x = 0, y = 0, z =-1}, + {x = 0, y = 1, z = 0}, + {x = 0, y =-1, z = 0}} + + return rotate_torch_rules(rules, node.param2) +end + +local torch_get_input_rules = function(node) + local rules = {{x = -2, y = 0, z = 0}, + {x = -1, y = 1, z = 0}} + + return rotate_torch_rules(rules, node.param2) +end + +minetest.register_craft({ + output = "mesecons_torch:mesecon_torch_on 4", + recipe = { + {"group:mesecon_conductor_craftable"}, + {"default:stick"},} +}) + +local torch_selectionbox = +{ + 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.1, -0.1, -0.5+0.6, 0.1, 0.1}, +} + +minetest.register_node("mesecons_torch:mesecon_torch_off", { + drawtype = "torchlike", + tiles = {"jeija_torches_off.png", "jeija_torches_off_ceiling.png", "jeija_torches_off_side.png"}, + inventory_image = "jeija_torches_off.png", + paramtype = "light", + walkable = false, + paramtype2 = "wallmounted", + selection_box = torch_selectionbox, + groups = {dig_immediate = 3, not_in_creative_inventory = 1}, + drop = "mesecons_torch:mesecon_torch_on", + mesecons = {receptor = { + state = mesecon.state.off, + rules = torch_get_output_rules + }} +}) + +minetest.register_node("mesecons_torch:mesecon_torch_on", { + drawtype = "torchlike", + tiles = {"jeija_torches_on.png", "jeija_torches_on_ceiling.png", "jeija_torches_on_side.png"}, + inventory_image = "jeija_torches_on.png", + wield_image = "jeija_torches_on.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + paramtype2 = "wallmounted", + selection_box = torch_selectionbox, + groups = {dig_immediate=3}, + light_source = LIGHT_MAX-5, + description="Mesecon Torch", + mesecons = {receptor = { + state = mesecon.state.on, + rules = torch_get_output_rules + }}, +}) + +minetest.register_abm({ + nodenames = {"mesecons_torch:mesecon_torch_off","mesecons_torch:mesecon_torch_on"}, + interval = 1, + chance = 1, + action = function(pos, node) + local is_powered = false + for _, rule in ipairs(torch_get_input_rules(node)) do + local src = mesecon:addPosRule(pos, rule) + if mesecon:is_power_on(src) then + is_powered = true + end + end + + if is_powered then + if node.name == "mesecons_torch:mesecon_torch_on" then + minetest.swap_node(pos, {name = "mesecons_torch:mesecon_torch_off", param2 = node.param2}) + mesecon:receptor_off(pos, torch_get_output_rules(node)) + end + elseif node.name == "mesecons_torch:mesecon_torch_off" then + minetest.swap_node(pos, {name = "mesecons_torch:mesecon_torch_on", param2 = node.param2}) + mesecon:receptor_on(pos, torch_get_output_rules(node)) + end + end +}) + +-- Param2 Table (Block Attached To) +-- 5 = z-1 +-- 3 = x-1 +-- 4 = z+1 +-- 2 = x+1 +-- 0 = y+1 +-- 1 = y-1 diff --git a/mods/mesecons/mesecons_torch/textures/jeija_torches_off.png b/mods/mesecons/mesecons_torch/textures/jeija_torches_off.png new file mode 100755 index 00000000..b615811a Binary files /dev/null and b/mods/mesecons/mesecons_torch/textures/jeija_torches_off.png differ diff --git a/mods/mesecons/mesecons_torch/textures/jeija_torches_off_ceiling.png b/mods/mesecons/mesecons_torch/textures/jeija_torches_off_ceiling.png new file mode 100755 index 00000000..1791824b Binary files /dev/null and b/mods/mesecons/mesecons_torch/textures/jeija_torches_off_ceiling.png differ diff --git a/mods/mesecons/mesecons_torch/textures/jeija_torches_off_side.png b/mods/mesecons/mesecons_torch/textures/jeija_torches_off_side.png new file mode 100755 index 00000000..fc6239bc Binary files /dev/null and b/mods/mesecons/mesecons_torch/textures/jeija_torches_off_side.png differ diff --git a/mods/mesecons/mesecons_torch/textures/jeija_torches_on.png b/mods/mesecons/mesecons_torch/textures/jeija_torches_on.png new file mode 100755 index 00000000..d359162d Binary files /dev/null and b/mods/mesecons/mesecons_torch/textures/jeija_torches_on.png differ diff --git a/mods/mesecons/mesecons_torch/textures/jeija_torches_on_ceiling.png b/mods/mesecons/mesecons_torch/textures/jeija_torches_on_ceiling.png new file mode 100755 index 00000000..603eb95b Binary files /dev/null and b/mods/mesecons/mesecons_torch/textures/jeija_torches_on_ceiling.png differ diff --git a/mods/mesecons/mesecons_torch/textures/jeija_torches_on_side.png b/mods/mesecons/mesecons_torch/textures/jeija_torches_on_side.png new file mode 100755 index 00000000..04252d2d Binary files /dev/null and b/mods/mesecons/mesecons_torch/textures/jeija_torches_on_side.png differ diff --git a/mods/mesecons/mesecons_walllever/depends.txt b/mods/mesecons/mesecons_walllever/depends.txt new file mode 100755 index 00000000..19c798c8 --- /dev/null +++ b/mods/mesecons/mesecons_walllever/depends.txt @@ -0,0 +1,2 @@ +mesecons +mesecons_receiver diff --git a/mods/mesecons/mesecons_walllever/init.lua b/mods/mesecons/mesecons_walllever/init.lua new file mode 100755 index 00000000..a35d9f17 --- /dev/null +++ b/mods/mesecons/mesecons_walllever/init.lua @@ -0,0 +1,95 @@ +-- WALL LEVER +-- Basically a switch that can be attached to a wall +-- Powers the block 2 nodes behind (using a receiver) +minetest.register_node("mesecons_walllever:wall_lever_off", { + drawtype = "nodebox", + tiles = { + "jeija_wall_lever_tb.png", + "jeija_wall_lever_bottom.png", + "jeija_wall_lever_sides.png", + "jeija_wall_lever_sides.png", + "jeija_wall_lever_back.png", + "jeija_wall_lever_off.png", + }, + inventory_image = "jeija_wall_lever_off.png", + wield_image = "jeija_wall_lever_off.png", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = { -8/16, -8/16, 3/16, 8/16, 8/16, 8/16 }, + }, + node_box = { + type = "fixed", + fixed = {{ -6/16, -6/16, 6/16, 6/16, 6/16, 8/16 }, -- the base "slab" + { -5/16, -3/16, 5/16, 5/16, 3/16, 6/16 }, -- the lighted ring area + { -4/16, -2/16, 4/16, 4/16, 2/16, 5/16 }, -- the raised bit that the lever "sits" on + { -2/16, -1/16, 3/16, 2/16, 1/16, 4/16 }, -- the lever "hinge" + { -1/16, -8/16, 4/16, 1/16, 0, 6/16 }} -- the lever itself. + }, + groups = {dig_immediate=2, mesecon_needs_receiver = 1}, + description="Lever", + on_punch = function (pos, node) + minetest.swap_node(pos, {name = "mesecons_walllever:wall_lever_on", param2 = node.param2}) + mesecon:receptor_on(pos, mesecon.rules.buttonlike_get(node)) + minetest.sound_play("mesecons_lever", {pos=pos}) + end, + sounds = default.node_sound_wood_defaults(), + mesecons = {receptor = { + rules = mesecon.rules.buttonlike_get, + state = mesecon.state.off + }} +}) +minetest.register_node("mesecons_walllever:wall_lever_on", { + drawtype = "nodebox", + tiles = { + "jeija_wall_lever_top.png", + "jeija_wall_lever_tb.png", + "jeija_wall_lever_sides.png", + "jeija_wall_lever_sides.png", + "jeija_wall_lever_back.png", + "jeija_wall_lever_on.png", + }, + inventory_image = "jeija_wall_lever_on.png", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + walkable = false, + light_source = LIGHT_MAX-7, + selection_box = { + type = "fixed", + fixed = { -8/16, -8/16, 3/16, 8/16, 8/16, 8/16 }, + }, + node_box = { + type = "fixed", + fixed = {{ -6/16, -6/16, 6/16, 6/16, 6/16, 8/16 }, -- the base "slab" + { -5/16, -3/16, 5/16, 5/16, 3/16, 6/16 }, -- the lighted ring area + { -4/16, -2/16, 4/16, 4/16, 2/16, 5/16 }, -- the raised bit that the lever "sits" on + { -2/16, -1/16, 3/16, 2/16, 1/16, 4/16 }, -- the lever "hinge" + { -1/16, 0, 4/16, 1/16, 8/16, 6/16 }} -- the lever itself. + }, + groups = {dig_immediate = 2, not_in_creative_inventory = 1, mesecon_needs_receiver = 1}, + drop = "mesecons_walllever:wall_lever_off 1", + description="Lever", + on_punch = function (pos, node) + minetest.swap_node(pos, {name = "mesecons_walllever:wall_lever_off", param2 = node.param2}) + mesecon:receptor_off(pos, mesecon.rules.buttonlike_get(node)) + minetest.sound_play("mesecons_lever", {pos=pos}) + end, + sounds = default.node_sound_wood_defaults(), + mesecons = {receptor = { + rules = mesecon.rules.buttonlike_get, + state = mesecon.state.on + }} +}) + +minetest.register_craft({ + output = "mesecons_walllever:wall_lever_off 2", + recipe = { + {"group:mesecon_conductor_craftable"}, + {"default:stone"}, + {"default:stick"}, + } +}) diff --git a/mods/mesecons/mesecons_walllever/sounds/mesecons_lever.ogg b/mods/mesecons/mesecons_walllever/sounds/mesecons_lever.ogg new file mode 100755 index 00000000..53d45c18 Binary files /dev/null and b/mods/mesecons/mesecons_walllever/sounds/mesecons_lever.ogg differ diff --git a/mods/mesecons/mesecons_walllever/textures/jeija_wall_lever_back.png b/mods/mesecons/mesecons_walllever/textures/jeija_wall_lever_back.png new file mode 100755 index 00000000..d0fe7403 Binary files /dev/null and b/mods/mesecons/mesecons_walllever/textures/jeija_wall_lever_back.png differ diff --git a/mods/mesecons/mesecons_walllever/textures/jeija_wall_lever_bottom.png b/mods/mesecons/mesecons_walllever/textures/jeija_wall_lever_bottom.png new file mode 100755 index 00000000..3e973840 Binary files /dev/null and b/mods/mesecons/mesecons_walllever/textures/jeija_wall_lever_bottom.png differ diff --git a/mods/mesecons/mesecons_walllever/textures/jeija_wall_lever_off.png b/mods/mesecons/mesecons_walllever/textures/jeija_wall_lever_off.png new file mode 100755 index 00000000..4c750840 Binary files /dev/null and b/mods/mesecons/mesecons_walllever/textures/jeija_wall_lever_off.png differ diff --git a/mods/mesecons/mesecons_walllever/textures/jeija_wall_lever_on.png b/mods/mesecons/mesecons_walllever/textures/jeija_wall_lever_on.png new file mode 100755 index 00000000..f1ffed8a Binary files /dev/null and b/mods/mesecons/mesecons_walllever/textures/jeija_wall_lever_on.png differ diff --git a/mods/mesecons/mesecons_walllever/textures/jeija_wall_lever_sides.png b/mods/mesecons/mesecons_walllever/textures/jeija_wall_lever_sides.png new file mode 100755 index 00000000..576bc5d7 Binary files /dev/null and b/mods/mesecons/mesecons_walllever/textures/jeija_wall_lever_sides.png differ diff --git a/mods/mesecons/mesecons_walllever/textures/jeija_wall_lever_tb.png b/mods/mesecons/mesecons_walllever/textures/jeija_wall_lever_tb.png new file mode 100755 index 00000000..a646cf53 Binary files /dev/null and b/mods/mesecons/mesecons_walllever/textures/jeija_wall_lever_tb.png differ diff --git a/mods/mesecons/mesecons_walllever/textures/jeija_wall_lever_top.png b/mods/mesecons/mesecons_walllever/textures/jeija_wall_lever_top.png new file mode 100755 index 00000000..92844d0e Binary files /dev/null and b/mods/mesecons/mesecons_walllever/textures/jeija_wall_lever_top.png differ diff --git a/mods/mesecons/modpack.txt b/mods/mesecons/modpack.txt new file mode 100755 index 00000000..33d91f57 --- /dev/null +++ b/mods/mesecons/modpack.txt @@ -0,0 +1 @@ +The presence of this file indicates that the current folder is a modpack. \ No newline at end of file diff --git a/mods/mobs/README.txt b/mods/mobs/README.txt new file mode 100644 index 00000000..2cdb299f --- /dev/null +++ b/mods/mobs/README.txt @@ -0,0 +1,31 @@ +-= MOBS-MOD for MINETEST =- by PilzAdam and KrupnovPavel and Zeg9 +Little has changed. Removed some bugs. +The game now many living creatures. +The sheep and the rat from MOBS-MOD +Deer by Pavel_S + +All my models and change code on valid license The MIT License + + + +The MIT License (MIT) + +Copyright (c) 2014 Krupnov Pavel + +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. \ No newline at end of file diff --git a/mods/mobs/api.lua b/mods/mobs/api.lua new file mode 100644 index 00000000..bad162f7 --- /dev/null +++ b/mods/mobs/api.lua @@ -0,0 +1,891 @@ +mobs = {} +function mobs:register_mob(name, def) + minetest.register_entity(name, { + name = name, + hp_min = def.hp_min or 5, -- + hp_max = def.hp_max, + physical = true, + collisionbox = def.collisionbox, + visual = def.visual, + visual_size = def.visual_size, + mesh = def.mesh, + textures = def.textures, + makes_footstep_sound = def.makes_footstep_sound, + view_range = def.view_range, + walk_velocity = def.walk_velocity, + run_velocity = def.run_velocity, + damage = def.damage, + light_damage = def.light_damage, + water_damage = def.water_damage, + lava_damage = def.lava_damage, + disable_fall_damage = def.disable_fall_damage, + drops = def.drops, + armor = def.armor, + drawtype = def.drawtype, + on_rightclick = def.on_rightclick, + type = def.type, + attack_type = def.attack_type, + arrow = def.arrow, + shoot_interval = def.shoot_interval, + sounds = def.sounds, + animation = def.animation, + follow = def.follow, + jump = def.jump or true, + exp_min = def.exp_min or 0, + exp_max = def.exp_max or 0, + walk_chance = def.walk_chance or 50, + attacks_monsters = def.attacks_monsters or false, + group_attack = def.group_attack or false, + step = def.step or 0, + fov = def.fov or 120, + passive = def.passive or false, + recovery_time = def.recovery_time or 0.5, + knock_back = def.knock_back or 3, + blood_offset = def.blood_offset or 0, + blood_amount = def.blood_amount or 5, -- 15 + blood_texture = def.blood_texture or "mobs_blood.png", + rewards = def.rewards or nil, + animaltype = def.animaltype, + + stimer = 0, + timer = 0, + env_damage_timer = 0, -- only if state = "attack" + attack = {player=nil, dist=nil}, + state = "stand", + v_start = false, + old_y = nil, + lifetimer = 600, + tamed = false, + last_state = nil, + pause_timer = 0, + + do_attack = function(self, player, dist) + if self.state ~= "attack" then +-- if self.sounds.war_cry then +-- if math.random(0,100) < 90 then +-- minetest.sound_play(self.sounds.war_cry,{ object = self.object }) +-- end +-- end + self.state = "attack" + self.attack.player = player + self.attack.dist = dist + end + end, + + set_velocity = function(self, v) + local yaw = self.object:getyaw() + if self.drawtype == "side" then + yaw = yaw+(math.pi/2) + end + local x = math.sin(yaw) * -v + local z = math.cos(yaw) * v + self.object:setvelocity({x=x, y=self.object:getvelocity().y, z=z}) + end, + + get_velocity = function(self) + local v = self.object:getvelocity() + return (v.x^2 + v.z^2)^(0.5) + end, + + in_fov = function(self,pos) + -- checks if POS is in self's FOV + local yaw = self.object:getyaw() + if self.drawtype == "side" then + yaw = yaw+(math.pi/2) + end + local vx = math.sin(yaw) + local vz = math.cos(yaw) + local ds = math.sqrt(vx^2 + vz^2) + local ps = math.sqrt(pos.x^2 + pos.z^2) + local d = { x = vx / ds, z = vz / ds } + local p = { x = pos.x / ps, z = pos.z / ps } + + local an = ( d.x * p.x ) + ( d.z * p.z ) + + a = math.deg( math.acos( an ) ) + + if a > ( self.fov / 2 ) then + return false + else + return true + end + end, + + set_animation = function(self, type) + if not self.animation then + return + end + if not self.animation.current then + self.animation.current = "" + end + if type == "stand" and self.animation.current ~= "stand" then + if + self.animation.stand_start + and self.animation.stand_end + and self.animation.speed_normal + then + self.object:set_animation( + {x=self.animation.stand_start,y=self.animation.stand_end}, + self.animation.speed_normal, 0 + ) + self.animation.current = "stand" + end + elseif type == "walk" and self.animation.current ~= "walk" then + if + self.animation.walk_start + and self.animation.walk_end + and self.animation.speed_normal + then + self.object:set_animation( + {x=self.animation.walk_start,y=self.animation.walk_end}, + self.animation.speed_normal, 0 + ) + self.animation.current = "walk" + end + elseif type == "run" and self.animation.current ~= "run" then + if + self.animation.run_start + and self.animation.run_end + and self.animation.speed_run + then + self.object:set_animation( + {x=self.animation.run_start,y=self.animation.run_end}, + self.animation.speed_run, 0 + ) + self.animation.current = "run" + end + elseif type == "punch" and self.animation.current ~= "punch" then + if + self.animation.punch_start + and self.animation.punch_end + and self.animation.speed_normal + then + self.object:set_animation( + {x=self.animation.punch_start,y=self.animation.punch_end}, + self.animation.speed_normal, 0 + ) + self.animation.current = "punch" + end + end + end, + + on_step = function(self, dtime) + + if self.type == "monster" and minetest.setting_getbool("only_peaceful_mobs") then + self.object:remove() + end + + self.lifetimer = self.lifetimer - dtime + if self.lifetimer <= 0 and not self.tamed and self.type ~= "npc" then + local player_count = 0 + for _,obj in ipairs(minetest.get_objects_inside_radius(self.object:getpos(), 10)) do + if obj:is_player() then + player_count = player_count+1 + end + end + if player_count == 0 and self.state ~= "attack" then + minetest.log("action","lifetimer expired, removed mob "..self.name) + self.object:remove() + return + end + end + + -- drop egg + if self.animaltype == "clucky" then + if math.random(1, 1000) <= 1 + and minetest.get_node(self.object:getpos()).name == "air" + and self.state == "stand" then + minetest.set_node(self.object:getpos(), {name="mobs:egg"}) + end + end + + if self.object:getvelocity().y > 0.1 then + local yaw = self.object:getyaw() + if self.drawtype == "side" then + yaw = yaw+(math.pi/2) + end + local x = math.sin(yaw) * -2 + local z = math.cos(yaw) * 2 + self.object:setacceleration({x=x, y=-10, z=z}) + else + self.object:setacceleration({x=0, y=-10, z=0}) + end + + if self.disable_fall_damage and self.object:getvelocity().y == 0 then + if not self.old_y then + self.old_y = self.object:getpos().y + else + local d = self.old_y - self.object:getpos().y + if d > 5 then + local damage = d-5 + self.object:set_hp(self.object:get_hp()-damage) + if self.object:get_hp() == 0 then + self.object:remove() + end + end + self.old_y = self.object:getpos().y + end + end + + -- if pause state then this is where the loop ends + -- pause is only set after a monster is hit + if self.pause_timer > 0 then + self.pause_timer = self.pause_timer - dtime + if self.pause_timer <= 0 then + self.pause_timer = 0 + end + return + end + + self.timer = self.timer+dtime + if self.state ~= "attack" then + if self.timer < 1 then + return + end + self.timer = 0 + end + + if self.sounds and self.sounds.random and math.random(1, 100) <= 1 then + minetest.sound_play(self.sounds.random, {object = self.object}) + end + + local do_env_damage = function(self) + local pos = self.object:getpos() + local n = minetest.get_node(pos) + + if self.light_damage and self.light_damage ~= 0 + and pos.y>0 + and minetest.get_node_light(pos) + and minetest.get_node_light(pos) > 4 + and minetest.get_timeofday() > 0.2 + and minetest.get_timeofday() < 0.8 + then + self.object:set_hp(self.object:get_hp()-self.light_damage) + if self.object:get_hp() == 0 then + self.object:remove() + end + end + + if self.water_damage and self.water_damage ~= 0 and + minetest.get_item_group(n.name, "water") ~= 0 + then + self.object:set_hp(self.object:get_hp()-self.water_damage) + if self.object:get_hp() == 0 then + self.object:remove() + end + end + + if self.lava_damage and self.lava_damage ~= 0 and + minetest.get_item_group(n.name, "lava") ~= 0 + then + self.object:set_hp(self.object:get_hp()-self.lava_damage) + if self.object:get_hp() == 0 then + self.object:remove() + end + end + end + + self.env_damage_timer = self.env_damage_timer + dtime + if self.state == "attack" and self.env_damage_timer > 1 then + self.env_damage_timer = 0 + do_env_damage(self) + elseif self.state ~= "attack" then + do_env_damage(self) + end + + -- FIND SOMEONE TO ATTACK + if ( self.type == "monster" or self.type == "barbarian" ) and minetest.setting_getbool("enable_damage") and self.state ~= "attack" then + local s = self.object:getpos() + local inradius = minetest.get_objects_inside_radius(s,self.view_range) + local player = nil + local type = nil + for _,oir in ipairs(inradius) do + if oir:is_player() then + player = oir + type = "player" + else + local obj = oir:get_luaentity() + if obj then + player = obj.object + type = obj.type + end + end + + if type == "player" or type == "npc" then + local s = self.object:getpos() + local p = player:getpos() + local sp = s + p.y = p.y + 1 + sp.y = sp.y + 1 -- aim higher to make looking up hills more realistic + local dist = ((p.x-s.x)^2 + (p.y-s.y)^2 + (p.z-s.z)^2)^0.5 + if dist < self.view_range and self.in_fov(self,p) then + if minetest.line_of_sight(sp,p,2) == true then + self.do_attack(self,player,dist) + break + end + end + end + end + end + + -- NPC FIND A MONSTER TO ATTACK +-- if self.type == "npc" and self.attacks_monsters and self.state ~= "attack" then +-- local s = self.object:getpos() +-- local inradius = minetest.get_objects_inside_radius(s,self.view_range) +-- for _, oir in pairs(inradius) do +-- local obj = oir:get_luaentity() +-- if obj then +-- if obj.type == "monster" or obj.type == "barbarian" then +-- -- attack monster +-- local p = obj.object:getpos() +-- local dist = ((p.x-s.x)^2 + (p.y-s.y)^2 + (p.z-s.z)^2)^0.5 +-- self.do_attack(self,obj.object,dist) +-- break +-- end +-- end +-- end +-- end + + if self.follow ~= "" and not self.following then + for _,player in pairs(minetest.get_connected_players()) do + local s = self.object:getpos() + local p = player:getpos() + local dist = ((p.x-s.x)^2 + (p.y-s.y)^2 + (p.z-s.z)^2)^0.5 + if self.view_range and dist < self.view_range then + self.following = player + break + end + end + end + + if self.following and self.following:is_player() then + if self.following:get_wielded_item():get_name() ~= self.follow then + self.following = nil + else + local s = self.object:getpos() + local p = self.following:getpos() + local dist = ((p.x-s.x)^2 + (p.y-s.y)^2 + (p.z-s.z)^2)^0.5 + if dist > self.view_range then + self.following = nil + self.v_start = false + else + local vec = {x=p.x-s.x, y=p.y-s.y, z=p.z-s.z} + local yaw = math.atan(vec.z/vec.x)+math.pi/2 + if self.drawtype == "side" then + yaw = yaw+(math.pi/2) + end + if p.x > s.x then + yaw = yaw+math.pi + end + self.object:setyaw(yaw) + if dist > 2 then + if not self.v_start then + self.v_start = true + self.set_velocity(self, self.walk_velocity) + else + if self.jump and self.get_velocity(self) <= 1.5 and self.object:getvelocity().y == 0 then + local v = self.object:getvelocity() + v.y = 6 + self.object:setvelocity(v) + end + self.set_velocity(self, self.walk_velocity) + end + self:set_animation("walk") + else + self.v_start = false + self.set_velocity(self, 0) + self:set_animation("stand") + end + return + end + end + end + + if self.state == "stand" then + -- randomly turn + if math.random(1, 4) == 1 then + -- if there is a player nearby look at them + local lp = nil + local s = self.object:getpos() + if self.type == "npc" then + local o = minetest.get_objects_inside_radius(self.object:getpos(), 3) + + local yaw = 0 + for _,o in ipairs(o) do + if o:is_player() then + lp = o:getpos() + break + end + end + end + if lp ~= nil then + local vec = {x=lp.x-s.x, y=lp.y-s.y, z=lp.z-s.z} + yaw = math.atan(vec.z/vec.x)+math.pi/2 + if self.drawtype == "side" then + yaw = yaw+(math.pi/2) + end + if lp.x > s.x then + yaw = yaw+math.pi + end + else + yaw = self.object:getyaw()+((math.random(0,360)-180)/180*math.pi) + end + self.object:setyaw(yaw) + end + self.set_velocity(self, 0) + self.set_animation(self, "stand") + if math.random(1, 100) <= self.walk_chance then + self.set_velocity(self, self.walk_velocity) + self.state = "walk" + self.set_animation(self, "walk") + end + elseif self.state == "walk" then + if math.random(1, 100) <= 30 then + self.object:setyaw(self.object:getyaw()+((math.random(0,360)-180)/180*math.pi)) + end + if self.jump and self.get_velocity(self) <= 0.5 and self.object:getvelocity().y == 0 then + local v = self.object:getvelocity() + v.y = 5 + self.object:setvelocity(v) + end + self:set_animation("walk") + self.set_velocity(self, self.walk_velocity) + if math.random(1, 100) <= 30 then + self.set_velocity(self, 0) + self.state = "stand" + self:set_animation("stand") + end + elseif self.state == "attack" and self.attack_type == "dogfight" then + if not self.attack.player or not self.attack.player:getpos() then + print("stop attacking") + self.state = "stand" + self:set_animation("stand") + return + end + local s = self.object:getpos() + local p = self.attack.player:getpos() + local dist = ((p.x-s.x)^2 + (p.y-s.y)^2 + (p.z-s.z)^2)^0.5 + if dist > self.view_range or self.attack.player:get_hp() <= 0 then + self.state = "stand" + self.v_start = false + self.set_velocity(self, 0) + self.attack = {player=nil, dist=nil} + self:set_animation("stand") + return + else + self.attack.dist = dist + end + + local vec = {x=p.x-s.x, y=p.y-s.y, z=p.z-s.z} + local yaw = math.atan(vec.z/vec.x)+math.pi/2 + if self.drawtype == "side" then + yaw = yaw+(math.pi/2) + end + if p.x > s.x then + yaw = yaw+math.pi + end + self.object:setyaw(yaw) + if self.attack.dist > 2 then + if not self.v_start then + self.v_start = true + self.set_velocity(self, self.run_velocity) + else + if self.jump and self.get_velocity(self) <= 0.5 and self.object:getvelocity().y == 0 then + local v = self.object:getvelocity() + v.y = 5 + self.object:setvelocity(v) + end + self.set_velocity(self, self.run_velocity) + end + self:set_animation("run") + else + self.set_velocity(self, 0) + self:set_animation("punch") + self.v_start = false + if self.timer > 1 then + self.timer = 0 + local p2 = p + local s2 = s + p2.y = p2.y + 1.5 + s2.y = s2.y + 1.5 + if minetest.line_of_sight(p2,s2) == true then + if self.sounds and self.sounds.attack then + minetest.sound_play(self.sounds.attack, {object = self.object}) + end + self.attack.player:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups = {fleshy=self.damage} + }, vec) + if self.attack.player:get_hp() <= 0 then + self.state = "stand" + self:set_animation("stand") + end + end + end + end + elseif self.state == "attack" and self.attack_type == "shoot" then + if not self.attack.player or not self.attack.player:is_player() then + self.state = "stand" + self:set_animation("stand") + return + end + local s = self.object:getpos() + local p = self.attack.player:getpos() + p.y = p.y - .5 + s.y = s.y + .5 + local dist = ((p.x-s.x)^2 + (p.y-s.y)^2 + (p.z-s.z)^2)^0.5 + if dist > self.view_range or self.attack.player:get_hp() <= 0 then + self.state = "stand" + self.v_start = false + self.set_velocity(self, 0) + if self.type ~= "npc" then + self.attack = {player=nil, dist=nil} + end + self:set_animation("stand") + return + else + self.attack.dist = dist + end + + local vec = {x=p.x-s.x, y=p.y-s.y, z=p.z-s.z} + local yaw = math.atan(vec.z/vec.x)+math.pi/2 + if self.drawtype == "side" then + yaw = yaw+(math.pi/2) + end + if p.x > s.x then + yaw = yaw+math.pi + end + self.object:setyaw(yaw) + self.set_velocity(self, 0) + + if self.timer > self.shoot_interval and math.random(1, 100) <= 60 then + self.timer = 0 + + self:set_animation("punch") + + if self.sounds and self.sounds.attack then + minetest.sound_play(self.sounds.attack, {object = self.object}) + end + + local p = self.object:getpos() + p.y = p.y + (self.collisionbox[2]+self.collisionbox[5])/2 + local obj = minetest.add_entity(p, self.arrow) + local amount = (vec.x^2+vec.y^2+vec.z^2)^0.5 + local v = obj:get_luaentity().velocity + vec.y = vec.y+1 + vec.x = vec.x*v/amount + vec.y = vec.y*v/amount + vec.z = vec.z*v/amount + obj:setvelocity(vec) + end + end + end, + + on_activate = function(self, staticdata, dtime_s) + -- reset HP + local pos = self.object:getpos() + local distance_rating = ( ( get_distance({x=0,y=0,z=0},pos) ) / 20000 ) + local newHP = self.hp_min + math.floor( self.hp_max * distance_rating ) + self.object:set_hp( newHP ) + + self.object:set_armor_groups({fleshy=self.armor}) + self.object:setacceleration({x=0, y=-10, z=0}) + self.state = "stand" + self.object:setvelocity({x=0, y=self.object:getvelocity().y, z=0}) + self.object:setyaw(math.random(1, 360)/180*math.pi) + if self.type == "monster" and minetest.setting_getbool("only_peaceful_mobs") then + self.object:remove() + end + if self.type ~= "npc" then + self.lifetimer = 600 - dtime_s + end + if staticdata then + local tmp = minetest.deserialize(staticdata) + if tmp and tmp.lifetimer then + self.lifetimer = tmp.lifetimer - dtime_s + end + if tmp and tmp.tamed then + self.tamed = tmp.tamed + end + --[[if tmp and tmp.textures then + self.object:set_properties(tmp.textures) + end]] + end + if self.lifetimer <= 0 and not self.tamed and self.type ~= "npc" then + self.object:remove() + end + end, + + get_staticdata = function(self) + local tmp = { + lifetimer = self.lifetimer, + tamed = self.tamed, + textures = { textures = self.textures }, + } + return minetest.serialize(tmp) + end, + + on_punch = function(self, hitter, tflp, tool_capabilities, dir) + + process_weapon(hitter,tflp,tool_capabilities) + + local pos = self.object:getpos() + if self.object:get_hp() <= 0 then + if hitter and hitter:is_player() and hitter:get_inventory() then + for _,drop in ipairs(self.drops) do + if math.random(1, drop.chance) == 1 then + local d = ItemStack(drop.name.." "..math.random(drop.min, drop.max)) +-- default.drop_item(pos,d) + local pos2 = pos + pos2.y = pos2.y + 0.5 -- drop items half block higher + minetest.add_item(pos2,d) + end + end + +-- if self.sounds.death ~= nil then +-- minetest.sound_play(self.sounds.death,{ +-- object = self.object, +-- }) +-- end +-- if minetest.get_modpath("skills") and minetest.get_modpath("experience") then +-- -- DROP experience +-- local distance_rating = ( ( get_distance({x=0,y=0,z=0},pos) ) / ( skills.get_player_level(hitter:get_player_name()).level * 1000 ) ) +-- local emax = math.floor( self.exp_min + ( distance_rating * self.exp_max ) ) +-- local expGained = math.random(self.exp_min, emax) +-- skills.add_exp(hitter:get_player_name(),expGained) +-- local expStack = experience.exp_to_items(expGained) +-- for _,stack in ipairs(expStack) do +-- default.drop_item(pos,stack) +-- end +-- end + +-- -- see if there are any NPCs to shower you with rewards +-- if self.type ~= "npc" then +-- local inradius = minetest.get_objects_inside_radius(hitter:getpos(),10) +-- for _, oir in pairs(inradius) do +-- local obj = oir:get_luaentity() +-- if obj then +-- if obj.type == "npc" and obj.rewards ~= nil then +-- local yaw = nil +-- local lp = hitter:getpos() +-- local s = obj.object:getpos() +-- local vec = {x=lp.x-s.x, y=1, z=lp.z-s.z} +-- yaw = math.atan(vec.z/vec.x)+math.pi/2 +-- if self.drawtype == "side" then +-- yaw = yaw+(math.pi/2) +-- end +-- if lp.x > s.x then +-- yaw = yaw+math.pi +-- end +-- obj.object:setyaw(yaw) +-- local x = math.sin(yaw) * -2 +-- local z = math.cos(yaw) * 2 +-- acc = {x=x, y=-5, z=z} +-- for _, r in pairs(obj.rewards) do +-- if math.random(0,100) < r.chance then +-- default.drop_item(obj.object:getpos(),r.item, vec, acc) +-- end +-- end +-- end +-- end +-- end +-- end + + end + end + + --blood_particles + + if self.blood_amount > 0 and pos then + local p = pos + p.y = p.y + self.blood_offset + + minetest.add_particlespawner( + 5, --blood_amount, --amount + 0.25, --time + {x=p.x-0.2, y=p.y-0.2, z=p.z-0.2}, --minpos + {x=p.x+0.2, y=p.y+0.2, z=p.z+0.2}, --maxpos + {x=0, y=-2, z=0}, --minvel + {x=2, y=2, z=2}, --maxvel + {x=-4,y=-4,z=-4}, --minacc + {x=4,y=-4,z=4}, --maxacc + 0.1, --minexptime + 1, --maxexptime + 0.5, --minsize + 1, --maxsize + false, --collisiondetection + self.blood_texture --texture + ) + end + + -- knock back effect, adapted from blockmen's pyramids mod + -- https://github.com/BlockMen/pyramids + local kb = self.knock_back + local r = self.recovery_time + + if tflp < tool_capabilities.full_punch_interval then + kb = kb * ( tflp / tool_capabilities.full_punch_interval ) + r = r * ( tflp / tool_capabilities.full_punch_interval ) + end + + local ykb=2 + local v = self.object:getvelocity() + if v.y ~= 0 then + ykb = 0 + end + + self.object:setvelocity({x=dir.x*kb,y=ykb,z=dir.z*kb}) + self.pause_timer = r + + -- attack puncher and call other mobs for help + if self.passive == false then + if self.state ~= "attack" then + self.do_attack(self,hitter,1) + end + -- alert other NPCs to the attack + local inradius = minetest.get_objects_inside_radius(hitter:getpos(),5) + for _, oir in pairs(inradius) do + local obj = oir:get_luaentity() + if obj then + if obj.group_attack == true and obj.state ~= "attack" then + obj.do_attack(obj,hitter,1) + end + end + end + end + end, + + }) +end + +mobs.spawning_mobs = {} +function mobs:register_spawn(name, nodes, max_light, min_light, chance, active_object_count, max_height, min_dist, max_dist, spawn_func) + mobs.spawning_mobs[name] = true + minetest.register_abm({ + nodenames = nodes, + neighbors = {"air"}, + interval = 30, + chance = chance, + action = function(pos, node, _, active_object_count_wider) + if active_object_count_wider > active_object_count then + return + end + if not mobs.spawning_mobs[name] then + return + end + + pos.y = pos.y+1 + if not minetest.get_node_light(pos) then + return + end + if minetest.get_node_light(pos) > max_light then + return + end + if minetest.get_node_light(pos) < min_light then + return + end + if pos.y > max_height then + return + end + + if not minetest.registered_nodes[minetest.get_node(pos).name] then return end + if minetest.registered_nodes[minetest.get_node(pos).name].walkable then return end + + pos.y = pos.y+1 + + if not minetest.registered_nodes[minetest.get_node(pos).name] then return end + if minetest.registered_nodes[minetest.get_node(pos).name].walkable then return end + + if min_dist == nil then + min_dist = {x=-1,z=-1} + end + if max_dist == nil then + max_dist = {x=33000,z=33000} + end + + if math.abs(pos.x) < min_dist.x or math.abs(pos.z) < min_dist.z then + return + end + + if math.abs(pos.x) > max_dist.x or math.abs(pos.z) > max_dist.z then + return + end + + if spawn_func and not spawn_func(pos, node) then + return + end + + if minetest.setting_getbool("display_mob_spawn") then + minetest.chat_send_all("[mobs] Add "..name.." at "..minetest.pos_to_string(pos)) + end + local mob = minetest.add_entity(pos, name) + + -- setup the hp, armor, drops, etc... for this specific mob + local distance_rating = ( ( get_distance({x=0,y=0,z=0},pos) ) / 15000 ) + if mob then + mob = mob:get_luaentity() + local newHP = mob.hp_min + math.floor( mob.hp_max * distance_rating ) + mob.object:set_hp( newHP ) + end + end + }) +end + +function mobs:register_arrow(name, def) + minetest.register_entity(name, { + physical = false, + visual = def.visual, + visual_size = def.visual_size, + textures = def.textures, + velocity = def.velocity, + hit_player = def.hit_player, + hit_node = def.hit_node, + collisionbox = {0,0,0,0,0,0}, -- remove box around arrows + + on_step = function(self, dtime) + local pos = self.object:getpos() + if minetest.get_node(self.object:getpos()).name ~= "air" then + self.hit_node(self, pos, node) + self.object:remove() + return + end + -- pos.y = pos.y-1.0 + for _,player in pairs(minetest.get_objects_inside_radius(pos, 1)) do + if player:is_player() then + self.hit_player(self, player) + self.object:remove() + return + end + end + end + }) +end + +function get_distance(pos1,pos2) + if ( pos1 ~= nil and pos2 ~= nil ) then + return math.abs(math.floor(math.sqrt( (pos1.x - pos2.x)^2 + (pos1.z - pos2.z)^2 ))) + else + return 0 + end +end + +function process_weapon(player, time_from_last_punch, tool_capabilities) +local weapon = player:get_wielded_item() + if tool_capabilities ~= nil then + local wear = ( tool_capabilities.full_punch_interval / 75 ) * 65535 + weapon:add_wear(wear) + player:set_wielded_item(weapon) + end + +-- if weapon:get_definition().sounds ~= nil then +-- local s = math.random(0,#weapon:get_definition().sounds) +-- minetest.sound_play(weapon:get_definition().sounds[s], { +-- object=player, +-- }) +-- else +-- minetest.sound_play("default_sword_wood", { +-- object = player, +-- }) +-- end +end + diff --git a/mods/mobs/bee.lua b/mods/mobs/bee.lua new file mode 100644 index 00000000..f7a266c5 --- /dev/null +++ b/mods/mobs/bee.lua @@ -0,0 +1,102 @@ + +-- Bee + +mobs:register_mob("mobs:bee", { + type = "animal", + hp_min = 1, + hp_max = 2, + collisionbox = {-0.2, -0.01, -0.2, 0.2, 0.2, 0.2}, + visual = "mesh", + mesh = "mobs_bee.x", + textures = {"mobs_bee.png"}, + makes_footstep_sound = false, + walk_velocity = 1, + armor = 200, + drops = { + {name = "mobs:med_cooked", + chance = 1, + min = 1, + max = 2,}, + }, + drawtype = "front", + water_damage = 1, + lava_damage = 1, + light_damage = 0, + + animation = { + speed_normal = 15, + stand_start = 0, + stand_end = 30, + walk_start = 35, + walk_end = 65, + }, + + on_rightclick = function(self, clicker) + if clicker:is_player() and clicker:get_inventory() then + clicker:get_inventory():add_item("main", "mobs:bee") + self.object:remove() + end + end, +jump = true, +step = 1, +passive = true, +}) +mobs:register_spawn("mobs:bee", {"default:dirt_with_grass"}, 20, 4, 7500, 1, 31000) + +minetest.register_craftitem("mobs:bee", { + description = "bee", + inventory_image = "mobs_bee_inv.png", + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.above then + minetest.env:add_entity(pointed_thing.above, "mobs:bee") + itemstack:take_item() + end + return itemstack + end, +}) + +-- Honey + +minetest.register_craftitem("mobs:honey", { + description = "Honey", + inventory_image = "mobs_honey_inv.png", + on_use = minetest.item_eat(6), +}) + +minetest.register_craft({ + type = "cooking", + output = "mobs:med_cooked", + recipe = "mobs:bee", + cooktime = 5, +}) + +-- Beehive + +minetest.register_node("mobs:beehive", { + description = "Beehive", + drawtype = "plantlike", + visual_scale = 1.0, + tiles ={"mobs_beehive.png"}, + inventory_image = "mobs_beehive.png", + paramtype = "light", + sunlight_propagates = true, + walkable = true, + groups = {fleshy=3,dig_immediate=3}, + on_use = minetest.item_eat(4), + sounds = default.node_sound_defaults(), + after_place_node = function(pos, placer, itemstack) + if placer:is_player() then + minetest.set_node(pos, {name="mobs:beehive", param2=1}) + minetest.env:add_entity(pos, "mobs:bee") + end + end, + +}) + +minetest.register_craft({ + output = "mobs:beehive", + recipe = { + {"mobs:bee","mobs:bee","mobs:bee"}, + } +}) diff --git a/mods/mobs/chicken.lua b/mods/mobs/chicken.lua new file mode 100644 index 00000000..d96945e4 --- /dev/null +++ b/mods/mobs/chicken.lua @@ -0,0 +1,121 @@ + +--= Chicken (thanks to JK Murray for his chicken model) + +mobs:register_mob("mobs:chicken", { + type = "animal", + hp_min = 5, + hp_max = 10, + animaltype = "clucky", + collisionbox = {-0.3, -0.75, -0.3, 0.3, 0.1, 0.3}, + visual = "mesh", + mesh = "chicken.x", + -- textures look repetative but they fix the wrapping bug + textures = {"mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png", + "mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png"}, + makes_footstep_sound = true, + walk_velocity = 1, + armor = 200, + drops = { + {name = "mobs:chicken_raw", chance = 1, min = 2, max = 2,}, + }, + drawtype = "front", + water_damage = 1, + lava_damage = 5, + light_damage = 0, + jump = false, + animation = { + speed_normal = 15, + stand_start = 0, + stand_end = 1, -- 20 + walk_start = 20, + walk_end = 40, + }, + follow = "farming:wheat", + view_range = 8, + on_rightclick = function(self, clicker) + if clicker:is_player() and clicker:get_inventory() then + clicker:get_inventory():add_item("main", "mobs:chicken") + self.object:remove() + end + end, + jump = true, + step = 1, + blood_texture = "mobs_blood.png", + passive = true, +}) + +mobs:register_spawn("mobs:chicken", {"default:dirt_with_grass"}, 20, 8, 9000, 1, 31000) + +-- Chicken (right-click chicken to place in inventory) + +minetest.register_craftitem("mobs:chicken", { + description = "Chicken", + inventory_image = "mobs_chicken_inv.png", + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.above then + minetest.env:add_entity(pointed_thing.above, "mobs:chicken") + itemstack:take_item() + end + return itemstack + end, +}) + +-- Egg (can be fried in furnace) + +minetest.register_node("mobs:egg", + { + description = "Chicken Egg", + tiles = {"mobs_chicken_egg.png"}, + inventory_image = "mobs_chicken_egg.png", + on_use = minetest.item_eat(1), + visual_scale = 0.7, + drawtype = "plantlike", + wield_image = "mobs_chicken_egg.png", + paramtype = "light", + walkable = false, + is_ground_content = true, + sunlight_propagates = true, + selection_box = { + type = "fixed", + fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2} + }, + groups = {snappy=2, dig_immediate=3}, + after_place_node = function(pos, placer, itemstack) + if placer:is_player() then + minetest.set_node(pos, {name="mobs:egg", param2=1}) + end + end +}) + +minetest.register_craftitem("mobs:chicken_egg_fried", { +description = "Fried Egg", + inventory_image = "mobs_chicken_egg_fried.png", + on_use = minetest.item_eat(2), +}) + +minetest.register_craft({ + type = "cooking", + recipe = "mobs:egg", + output = "mobs:chicken_egg_fried", +}) + +-- Chicken (raw and cooked) + +minetest.register_craftitem("mobs:chicken_raw", { + description = "Raw Chicken", + inventory_image = "mobs_chicken_raw.png", + on_use = minetest.item_eat(2), +}) + +minetest.register_craftitem("mobs:chicken_cooked", { +description = "Cooked Chicken", + inventory_image = "mobs_chicken_cooked.png", + on_use = minetest.item_eat(4), +}) + +minetest.register_craft({ + type = "cooking", + recipe = "mobs:chicken_raw", + output = "mobs:chicken_cooked", +}) diff --git a/mods/mobs/chicken.lua~ b/mods/mobs/chicken.lua~ new file mode 100644 index 00000000..32ae8976 --- /dev/null +++ b/mods/mobs/chicken.lua~ @@ -0,0 +1,121 @@ + +--= Chicken (thanks to JK Murray for his chicken model) + +mobs:register_mob("mobs:chicken", { + type = "animal", + hp_min = 5, + hp_max = 10, + animaltype = "clucky", + collisionbox = {-0.3, -0.75, -0.3, 0.3, 0.1, 0.3}, + visual = "mesh", + mesh = "chicken.x", + -- textures look repetative but they fix the wrapping bug + textures = {"mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png", + "mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png"}, + makes_footstep_sound = true, + walk_velocity = 1, + armor = 200, + drops = { + {name = "mobs:chicken_raw", chance = 1, min = 2, max = 2,}, + }, + drawtype = "front", + water_damage = 1, + lava_damage = 5, + light_damage = 0, + jump = false, + animation = { + speed_normal = 15, + stand_start = 0, + stand_end = 1, -- 20 + walk_start = 20, + walk_end = 40, + }, + follow = "farming:wheat", + view_range = 5, + on_rightclick = function(self, clicker) + if clicker:is_player() and clicker:get_inventory() then + clicker:get_inventory():add_item("main", "mobs:chicken") + self.object:remove() + end + end, + jump = true, + step = 1, + blood_texture = "mobs_blood.png", + passive = true, +}) + +mobs:register_spawn("mobs:chicken", {"default:dirt_with_grass"}, 20, 8, 9000, 1, 31000) + +-- Chicken (right-click chicken to place in inventory) + +minetest.register_craftitem("mobs:chicken", { + description = "Chicken", + inventory_image = "mobs_chicken_inv.png", + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.above then + minetest.env:add_entity(pointed_thing.above, "mobs:chicken") + itemstack:take_item() + end + return itemstack + end, +}) + +-- Egg (can be fried in furnace) + +minetest.register_node("mobs:egg", + { + description = "Chicken Egg", + tiles = {"mobs_chicken_egg.png"}, + inventory_image = "mobs_chicken_egg.png", + on_use = minetest.item_eat(1), + visual_scale = 0.7, + drawtype = "plantlike", + wield_image = "mobs_chicken_egg.png", + paramtype = "light", + walkable = false, + is_ground_content = true, + sunlight_propagates = true, + selection_box = { + type = "fixed", + fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2} + }, + groups = {snappy=2, dig_immediate=3}, + after_place_node = function(pos, placer, itemstack) + if placer:is_player() then + minetest.set_node(pos, {name="mobs:egg", param2=1}) + end + end +}) + +minetest.register_craftitem("mobs:chicken_egg_fried", { +description = "Fried Egg", + inventory_image = "mobs_chicken_egg_fried.png", + on_use = minetest.item_eat(2), +}) + +minetest.register_craft({ + type = "cooking", + recipe = "mobs:egg", + output = "mobs:chicken_egg_fried", +}) + +-- Chicken (raw and cooked) + +minetest.register_craftitem("mobs:chicken_raw", { + description = "Raw Chicken", + inventory_image = "mobs_chicken_raw.png", + on_use = minetest.item_eat(2), +}) + +minetest.register_craftitem("mobs:chicken_cooked", { +description = "Cooked Chicken", + inventory_image = "mobs_chicken_cooked.png", + on_use = minetest.item_eat(4), +}) + +minetest.register_craft({ + type = "cooking", + recipe = "mobs:chicken_raw", + output = "mobs:chicken_cooked", +}) diff --git a/mods/mobs/cow.lua b/mods/mobs/cow.lua new file mode 100644 index 00000000..4350f902 --- /dev/null +++ b/mods/mobs/cow.lua @@ -0,0 +1,131 @@ + +-- Cow by Krupnovpavel + +mobs:register_mob("mobs:cow", { + type = "animal", + hp_min = 10, + hp_max = 15, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, + textures = {"mobs_cow.png"}, + visual = "mesh", + mesh = "mobs_cow.x", + makes_footstep_sound = true, + view_range = 7, + walk_velocity = 1, + run_velocity = 2, + damage = 10, + armor = 200, + drops = { + {name = "mobs:meat_raw", + chance = 1, + min = 5, + max = 10,}, + }, + drawtype = "front", + water_damage = 1, + lava_damage = 5, + light_damage = 0, + follow = "farming:wheat", + sounds = { + random = "mobs_cow", + }, + -- right-click cow with empty bucket to get milk, then feed 8 wheat to replenish milk + on_rightclick = function(self, clicker) + tool = clicker:get_wielded_item() + if tool:get_name() == "bucket:bucket_empty" then + if self.milked then + do return end + end + clicker:get_inventory():remove_item("main", "bucket:bucket_empty") + clicker:get_inventory():add_item("main", "mobs:bucket_milk") + self.milked = true + end + + if tool:get_name() == "farming:wheat" then + if self.milked then + if not minetest.setting_getbool("creative_mode") then + tool:take_item(1) + clicker:set_wielded_item(tool) + end + self.food = (self.food or 0) + 1 + if self.food >= 8 then + self.food = 0 + self.milked = false + self.tamed = true + minetest.sound_play("mobs_cow", {object = self.object,gain = 1.0,max_hear_distance = 32,loop = false,}) + end + end + return tool + end + + end, + + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 0, + stand_end = 30, + walk_start = 35, + walk_end = 65, + run_start = 105, + run_end = 135, + punch_start = 70, + punch_end = 100, + }, + jump = true, + step = 1, + blood_texture = "mobs_blood.png", + passive = true, +}) +mobs:register_spawn("mobs:cow", {"default:dirt_with_grass"}, 20, 0, 9000, 1, 31000) + +-- Bucket of Milk + +minetest.register_craftitem("mobs:bucket_milk", { + description = "Bucket of Milk", + inventory_image = "mobs_bucket_milk.png", + stack_max = 1, + on_use = minetest.item_eat(8, 'bucket:bucket_empty'), +}) + +-- Cheese Wedge + +minetest.register_craftitem("mobs:cheese", { + description = "Cheese", + inventory_image = "mobs_cheese.png", + on_use = minetest.item_eat(4), +}) + +minetest.register_craft({ + type = "cooking", + output = "mobs:cheese", + recipe = "mobs:bucket_milk", + cooktime = 5, + replacements = {{ "mobs:bucket_milk", "bucket:bucket_empty"}} +}) + +-- Cheese Block + +minetest.register_node("mobs:cheeseblock", { + description = "Cheese Block", + tiles = {"mobs_cheeseblock.png"}, + is_ground_content = false, + groups = {crumbly=3}, + sounds = default.node_sound_dirt_defaults() +}) + +minetest.register_craft({ + output = "mobs:cheeseblock", + recipe = { + {'mobs:cheese', 'mobs:cheese', 'mobs:cheese'}, + {'mobs:cheese', 'mobs:cheese', 'mobs:cheese'}, + {'mobs:cheese', 'mobs:cheese', 'mobs:cheese'}, + } +}) + +minetest.register_craft({ + output = "mobs:cheese 9", + recipe = { + {'mobs:cheeseblock'}, + } +}) diff --git a/mods/mobs/depends.txt b/mods/mobs/depends.txt new file mode 100644 index 00000000..4ad96d51 --- /dev/null +++ b/mods/mobs/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/mobs/dirtmonster.lua b/mods/mobs/dirtmonster.lua new file mode 100644 index 00000000..d8bebe45 --- /dev/null +++ b/mods/mobs/dirtmonster.lua @@ -0,0 +1,46 @@ +-- Dirt Monster + +mobs:register_mob("mobs:dirt_monster", { + type = "monster", + hp_min = 20, + hp_max = 30, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_stone_monster.x", + textures = {"mobs_dirt_monster.png"}, + visual_size = {x=3, y=2.6}, + makes_footstep_sound = true, + view_range = 16, + walk_velocity = 3, + run_velocity = 5, + damage = 3, + drops = { + {name = "default:dirt", + chance = 1, + min = 3, + max = 5,}, + }, + armor = 90, + drawtype = "front", + water_damage = 1, + lava_damage = 5, + light_damage = 2, + on_rightclick = nil, + attack_type = "dogfight", + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 0, + stand_end = 14, + walk_start = 15, + walk_end = 38, + run_start = 40, + run_end = 63, + punch_start = 40, + punch_end = 63, + }, + jump = true, + step = 1, + blood_texture = "default_dirt.png", +}) +mobs:register_spawn("mobs:dirt_monster", {"default:dirt_with_grass"}, 3, -1, 7000, 1, 31000) diff --git a/mods/mobs/dirtmonster.lua~ b/mods/mobs/dirtmonster.lua~ new file mode 100644 index 00000000..76138d27 --- /dev/null +++ b/mods/mobs/dirtmonster.lua~ @@ -0,0 +1,46 @@ +-- Dirt Monster + +mobs:register_mob("mobs:dirt_monster", { + type = "monster", + hp_min = 20, + hp_max = 30, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_stone_monster.x", + textures = {"mobs_dirt_monster.png"}, + visual_size = {x=3, y=2.6}, + makes_footstep_sound = true, + view_range = 15, + walk_velocity = 3, + run_velocity = 5, + damage = 3, + drops = { + {name = "default:dirt", + chance = 1, + min = 3, + max = 5,}, + }, + armor = 100, + drawtype = "front", + water_damage = 1, + lava_damage = 5, + light_damage = 2, + on_rightclick = nil, + attack_type = "dogfight", + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 0, + stand_end = 14, + walk_start = 15, + walk_end = 38, + run_start = 40, + run_end = 63, + punch_start = 40, + punch_end = 63, + }, + jump = true, + step = 1, + blood_texture = "default_dirt.png", +}) +mobs:register_spawn("mobs:dirt_monster", {"default:dirt_with_grass"}, 3, -1, 7000, 1, 31000) diff --git a/mods/mobs/dungeonmaster.lua b/mods/mobs/dungeonmaster.lua new file mode 100644 index 00000000..4224bc8d --- /dev/null +++ b/mods/mobs/dungeonmaster.lua @@ -0,0 +1,102 @@ + +-- Dungeon Master (This one spits out fireballs at you) + +mobs:register_mob("mobs:dungeon_master", { + type = "monster", + hp_min = 45, + hp_max = 55, + collisionbox = {-0.7, -0.01, -0.7, 0.7, 2.6, 0.7}, + visual = "mesh", + mesh = "mobs_dungeon_master.x", + textures = {"mobs_dungeon_master.png"}, + visual_size = {x=8, y=8}, + makes_footstep_sound = true, + view_range = 16, + walk_velocity = 1, + run_velocity = 3, + damage = 10, + drops = { + {name = "default:mese_crystal_fragment", + chance = 1, + min = 1, + max = 3,}, + {name = "default:diamond", + chance = 5, + min = 1, + max = 2,}, + {name = "default:mese_crystal", + chance = 2, + min = 1, + max = 2,}, + {name = "default:diamond_block", + chance = 30, + min = 1, + max = 1,}, + }, + armor = 60, + drawtype = "front", + water_damage = 1, + lava_damage = 1, + light_damage = 0, + on_rightclick = nil, + attack_type = "shoot", + arrow = "mobs:fireball", + shoot_interval = 2.5, + sounds = { + attack = "mobs_fireball", + }, + animation = { + stand_start = 0, + stand_end = 19, + walk_start = 20, + walk_end = 35, + punch_start = 36, + punch_end = 48, + speed_normal = 15, + speed_run = 15, + }, + jump = true, + step = 0.5, + blood_texture = "mobs_blood.png", +}) +mobs:register_spawn("mobs:dungeon_master", {"default:stone"}, 2, -1, 6000, 1, -70) + +-- Fireball (weapon) + +mobs:register_arrow("mobs:fireball", { + visual = "sprite", + visual_size = {x=1, y=1}, + textures = {"mobs_fireball.png"}, + velocity = 5, + + -- direct hit, no fire... just plenty of pain + hit_player = function(self, player) + local s = self.object:getpos() + local p = player:getpos() + local vec = {x=s.x-p.x, y=s.y-p.y, z=s.z-p.z} + player:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups = {fleshy=6}, + }, vec) + end, + + -- node hit, bursts into flame (cannot blast through obsidian) + hit_node = function(self, pos, node) + + for dx=-1,1 do + for dy=-1,1 do + for dz=-1,1 do + local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} + local n = minetest.env:get_node(p).name + if n ~= "default:obsidian" and n ~= "ethereal:obsidian_brick" then + if minetest.registered_nodes[n].groups.flammable or math.random(1, 100) <= 30 then + minetest.env:set_node(p, {name="fire:basic_flame"}) + else + minetest.env:set_node(p, {name="air"}) + end + end + end + end + end + end +}) diff --git a/mods/mobs/dungeonmaster.lua~ b/mods/mobs/dungeonmaster.lua~ new file mode 100644 index 00000000..fb803e72 --- /dev/null +++ b/mods/mobs/dungeonmaster.lua~ @@ -0,0 +1,102 @@ + +-- Dungeon Master (This one spits out fireballs at you) + +mobs:register_mob("mobs:dungeon_master", { + type = "monster", + hp_min = 45, + hp_max = 55, + collisionbox = {-0.7, -0.01, -0.7, 0.7, 2.6, 0.7}, + visual = "mesh", + mesh = "mobs_dungeon_master.x", + textures = {"mobs_dungeon_master.png"}, + visual_size = {x=8, y=8}, + makes_footstep_sound = true, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + damage = 10, + drops = { + {name = "default:mese_crystal_fragment", + chance = 1, + min = 1, + max = 3,}, + {name = "default:diamond", + chance = 5, + min = 1, + max = 2,}, + {name = "default:mese_crystal", + chance = 2, + min = 1, + max = 2,}, + {name = "default:diamond_block", + chance = 30, + min = 1, + max = 1,}, + }, + armor = 60, + drawtype = "front", + water_damage = 1, + lava_damage = 1, + light_damage = 0, + on_rightclick = nil, + attack_type = "shoot", + arrow = "mobs:fireball", + shoot_interval = 2.5, + sounds = { + attack = "mobs_fireball", + }, + animation = { + stand_start = 0, + stand_end = 19, + walk_start = 20, + walk_end = 35, + punch_start = 36, + punch_end = 48, + speed_normal = 15, + speed_run = 15, + }, + jump = true, + step = 0.5, + blood_texture = "mobs_blood.png", +}) +mobs:register_spawn("mobs:dungeon_master", {"default:stone"}, 2, -1, 6000, 1, -70) + +-- Fireball (weapon) + +mobs:register_arrow("mobs:fireball", { + visual = "sprite", + visual_size = {x=1, y=1}, + textures = {"mobs_fireball.png"}, + velocity = 5, + + -- direct hit, no fire... just plenty of pain + hit_player = function(self, player) + local s = self.object:getpos() + local p = player:getpos() + local vec = {x=s.x-p.x, y=s.y-p.y, z=s.z-p.z} + player:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups = {fleshy=6}, + }, vec) + end, + + -- node hit, bursts into flame (cannot blast through obsidian) + hit_node = function(self, pos, node) + + for dx=-1,1 do + for dy=-1,1 do + for dz=-1,1 do + local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} + local n = minetest.env:get_node(p).name + if n ~= "default:obsidian" and n ~= "ethereal:obsidian_brick" then + if minetest.registered_nodes[n].groups.flammable or math.random(1, 100) <= 30 then + minetest.env:set_node(p, {name="fire:basic_flame"}) + else + minetest.env:set_node(p, {name="air"}) + end + end + end + end + end + end +}) diff --git a/mods/mobs/init.lua b/mods/mobs/init.lua new file mode 100644 index 00000000..798cc84c --- /dev/null +++ b/mods/mobs/init.lua @@ -0,0 +1,55 @@ +-- Mob Api (5th Sep 2014) + +dofile(minetest.get_modpath("mobs").."/api.lua") + +-- Animals inc. Krupnovpavel's warthog/bee and JKmurray's chicken + +dofile(minetest.get_modpath("mobs").."/chicken.lua") +dofile(minetest.get_modpath("mobs").."/cow.lua") +dofile(minetest.get_modpath("mobs").."/rat.lua") +dofile(minetest.get_modpath("mobs").."/sheep.lua") +dofile(minetest.get_modpath("mobs").."/warthog.lua") +dofile(minetest.get_modpath("mobs").."/bee.lua") + +-- Monsters + +dofile(minetest.get_modpath("mobs").."/dirtmonster.lua") +dofile(minetest.get_modpath("mobs").."/dungeonmaster.lua") +dofile(minetest.get_modpath("mobs").."/oerkki.lua") +dofile(minetest.get_modpath("mobs").."/sandmonster.lua") +dofile(minetest.get_modpath("mobs").."/stonemonster.lua") +dofile(minetest.get_modpath("mobs").."/treemonster.lua") + +-- Zmobs by Zeg9 + +dofile(minetest.get_modpath("mobs").."/lava_flan.lua") +dofile(minetest.get_modpath("mobs").."/mese_monster.lua") + +-- Spider from Lord of the Test - https://forum.minetest.net/viewtopic.php?pid=127538 + +dofile(minetest.get_modpath("mobs").."/spider.lua") + +-- Meat & Cooked Meat + +minetest.register_craftitem("mobs:meat_raw", { + description = "Raw Meat", + inventory_image = "mobs_meat_raw.png", + on_use = minetest.item_eat(3), +}) + +minetest.register_craftitem("mobs:meat", { + description = "Meat", + inventory_image = "mobs_meat.png", + on_use = minetest.item_eat(8), +}) + +minetest.register_craft({ + type = "cooking", + output = "mobs:meat", + recipe = "mobs:meat_raw", + cooktime = 5, +}) + +if minetest.setting_get("log_mods") then + minetest.log("action", "mobs loaded") +end diff --git a/mods/mobs/lava_flan.lua b/mods/mobs/lava_flan.lua new file mode 100644 index 00000000..c43dc541 --- /dev/null +++ b/mods/mobs/lava_flan.lua @@ -0,0 +1,56 @@ + +--= Lava Flan by Zeg9 + +minetest.register_craftitem("mobs:lava_orb", { + description = "Lava orb", + inventory_image = "zmobs_lava_orb.png", + on_place = function(itemstack, placer, pointed_thing) + end, +}) + +minetest.register_alias("zmobs:lava_orb", "mobs:lava_orb") + +mobs:register_mob("mobs:lava_flan", { + type = "monster", + hp_min = 15, + hp_max = 30, + collisionbox = {-0.5, -0.5, -0.5, 0.5, 1.5, 0.5}, + visual = "mesh", + mesh = "zmobs_lava_flan.x", + textures = {"zmobs_lava_flan.png"}, + visual_size = {x=1, y=1}, + makes_footstep_sound = true, + view_range = 10, + walk_velocity = 0.5, + run_velocity = 2, + damage = 3, + drops = { + {name = "mobs:lava_orb", + chance = 10, + min = 1, + max = 1,}, + }, + light_resistant = true, + armor = 80, + drawtype = "front", + water_damage = 5, + lava_damage = 0, + light_damage = 0, + attack_type = "dogfight", + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 0, + stand_end = 8, + walk_start = 10, + walk_end = 18, + run_start = 20, + run_end = 28, + punch_start = 20, + punch_end = 28, + }, + jump = true, + step = 0.5, + blood_texture = "fire_basic_flame.png", +}) +mobs:register_spawn("mobs:lava_flan", {"default:lava_source"}, 15, -1, 1000, 3, 0) diff --git a/mods/mobs/mese_monster.lua b/mods/mobs/mese_monster.lua new file mode 100644 index 00000000..69ca9499 --- /dev/null +++ b/mods/mobs/mese_monster.lua @@ -0,0 +1,86 @@ + +--= Mese Monster by Zeg9 + +-- 9 mese crystal fragments = 1 mese crystal +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"}, + } +}) + +-- Mese Monster +mobs:register_mob("mobs:mese_monster", { + type = "monster", + hp_min = 15, + hp_max = 30, + collisionbox = {-0.5, -1.5, -0.5, 0.5, 0.5, 0.5}, + visual = "mesh", + mesh = "zmobs_mese_monster.x", + textures = {"zmobs_mese_monster.png"}, + visual_size = {x=1, y=1}, + makes_footstep_sound = true, + view_range = 16, + walk_velocity = 1, + run_velocity = 3, + damage = 5, + drops = { + {name = "default:mese_crystal", + chance = 9, + min = 1, + max = 3,}, + {name = "default:mese_crystal_fragment", + chance = 1, + min = 1, + max = 9,}, + }, + light_resistant = true, + armor = 80, + drawtype = "front", + water_damage = 0, + lava_damage = 0, + light_damage = 0, + attack_type = "shoot", + arrow = "mobs:mese_arrow", + shoot_interval = .5, + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 0, + stand_end = 14, + walk_start = 15, + walk_end = 38, + run_start = 40, + run_end = 63, + punch_start = 15, -- 40 + punch_end = 38, -- 63 + }, + jump = true, + step = 1, + blood_texture = "default_mese_crystal_fragment.png", +}) +mobs:register_spawn("mobs:mese_monster", {"default:stone"}, 3, -1, 4000, 1, -20) + +-- Mese Monster Crystal Shards (weapon) + +mobs:register_arrow("mobs:mese_arrow", { + visual = "sprite", + visual_size = {x=.5, y=.5}, + textures = {"default_mese_crystal_fragment.png"}, + velocity = 5, + + hit_player = function(self, player) + local s = self.object:getpos() + local p = player:getpos() + + player:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups = {fleshy=1}, + }, {x=s.x-p.x, y=s.y-p.y, z=s.z-p.z}) + end, + + hit_node = function(self, pos, node) + end +}) diff --git a/mods/mobs/mese_monster.lua~ b/mods/mobs/mese_monster.lua~ new file mode 100644 index 00000000..d4a18838 --- /dev/null +++ b/mods/mobs/mese_monster.lua~ @@ -0,0 +1,86 @@ + +--= Mese Monster by Zeg9 + +-- 9 mese crystal fragments = 1 mese crystal +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"}, + } +}) + +-- Mese Monster +mobs:register_mob("mobs:mese_monster", { + type = "monster", + hp_min = 15, + hp_max = 30, + collisionbox = {-0.5, -1.5, -0.5, 0.5, 0.5, 0.5}, + visual = "mesh", + mesh = "zmobs_mese_monster.x", + textures = {"zmobs_mese_monster.png"}, + visual_size = {x=1, y=1}, + makes_footstep_sound = true, + view_range = 10, + walk_velocity = 1, + run_velocity = 3, + damage = 5, + drops = { + {name = "default:mese_crystal", + chance = 9, + min = 1, + max = 3,}, + {name = "default:mese_crystal_fragment", + chance = 1, + min = 1, + max = 9,}, + }, + light_resistant = true, + armor = 80, + drawtype = "front", + water_damage = 0, + lava_damage = 0, + light_damage = 0, + attack_type = "shoot", + arrow = "mobs:mese_arrow", + shoot_interval = .5, + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 0, + stand_end = 14, + walk_start = 15, + walk_end = 38, + run_start = 40, + run_end = 63, + punch_start = 15, -- 40 + punch_end = 38, -- 63 + }, + jump = true, + step = 1, + blood_texture = "default_mese_crystal_fragment.png", +}) +mobs:register_spawn("mobs:mese_monster", {"default:stone"}, 3, -1, 4000, 1, -20) + +-- Mese Monster Crystal Shards (weapon) + +mobs:register_arrow("mobs:mese_arrow", { + visual = "sprite", + visual_size = {x=.5, y=.5}, + textures = {"default_mese_crystal_fragment.png"}, + velocity = 5, + + hit_player = function(self, player) + local s = self.object:getpos() + local p = player:getpos() + + player:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups = {fleshy=1}, + }, {x=s.x-p.x, y=s.y-p.y, z=s.z-p.z}) + end, + + hit_node = function(self, pos, node) + end +}) diff --git a/mods/mobs/models/chicken.x b/mods/mobs/models/chicken.x new file mode 100644 index 00000000..165853b9 --- /dev/null +++ b/mods/mobs/models/chicken.x @@ -0,0 +1,3080 @@ +xof 0303txt 0032 + +template XSkinMeshHeader { + <9E415A43-7BA6-4a73-8743-B73D47E88476> + WORD nMaxSkinWeightsPerVertex; + WORD nMaxSkinWeightsPerFace; + WORD nBones; +} + +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 Cube { + FrameTransformMatrix { + -0.002650, 2.304885, 0.000000, 0.000000, + -1.520651,-0.001748, 0.000000, 0.000000, + 0.000000, 0.000000, 1.758614, 0.000000, + 0.354515,-0.719130,-3.788555, 1.000000;; + } + Mesh { // Cube mesh + 24; + 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.999999; 1.000000;, + -1.000000; 1.000000; 1.000000;, + -1.000000;-1.000000; 1.000000;, + 0.999999;-1.000001; 1.000000;, + 1.000000; 1.000000;-1.000000;, + 1.000000; 0.999999; 1.000000;, + 0.999999;-1.000001; 1.000000;, + 1.000000;-1.000000;-1.000000;, + 1.000000;-1.000000;-1.000000;, + 0.999999;-1.000001; 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.999999; 1.000000;, + 1.000000; 1.000000;-1.000000;, + -1.000000; 1.000000;-1.000000;, + -1.000000; 1.000000; 1.000000;; + 6; + 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;; + MeshNormals { // Cube normals + 6; + 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; 1.000000; 0.000000;; + 6; + 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;; + } // End of Cube normals + MeshTextureCoords { // Cube UV coordinates + 24; + 0.187458; 0.469285;, + 0.187516; 0.718185;, + 0.093794; 0.718074;, + 0.093577; 0.469471;, + 0.187161; 0.469748;, + 0.187019; 0.717794;, + 0.093433; 0.717243;, + 0.093810; 0.469592;, + 0.187200; 0.467961;, + 0.187371; 0.281833;, + 0.093981; 0.281523;, + 0.093522; 0.467806;, + 0.000800; 0.468800;, + 0.000800; 0.718400;, + 0.094400; 0.718400;, + 0.094400; 0.472000;, + 0.096800; 0.720000;, + 0.092800; 0.472000;, + 0.186400; 0.472000;, + 0.184800; 0.721600;, + 0.281845; 0.718277;, + 0.375655; 0.718520;, + 0.375922; 0.468568;, + 0.281578; 0.467791;; + } // End of Cube UV coordinates + } // End of Cube mesh + } // End of Cube + Frame Cube_001 { + FrameTransformMatrix { + -0.002126, 1.849057, 0.000000, 0.000000, + -0.303403,-0.000349, 0.000000, 0.000000, + 0.000000, 0.000000, 1.119535, 0.000000, + -1.442512,-0.721196,-3.382473, 1.000000;; + } + Mesh { // Cube_001 mesh + 24; + -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;-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;; + 6; + 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;; + MeshNormals { // Cube_001 normals + 6; + -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;; + 6; + 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;; + } // End of Cube_001 normals + MeshTextureCoords { // Cube_001 UV coordinates + 24; + 0.485160; 0.577655;, + 0.499899; 0.577812;, + 0.499780; 0.449481;, + 0.484961; 0.449400;, + 0.281362; 0.717243;, + 0.374656; 0.717311;, + 0.374949; 0.469412;, + 0.281362; 0.469412;, + 0.484600; 0.577388;, + 0.499984; 0.578585;, + 0.499989; 0.449607;, + 0.484856; 0.449526;, + 0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + 0.469169; 0.591810;, + 0.483617; 0.592573;, + 0.484272; 0.407377;, + 0.469260; 0.406957;, + 0.468865; 0.593264;, + 0.484227; 0.592921;, + 0.484322; 0.406143;, + 0.468808; 0.406088;; + } // End of Cube_001 UV coordinates + } // End of Cube_001 mesh + } // End of Cube_001 + Frame Cube_002 { + FrameTransformMatrix { + -0.002126, 1.849057, 0.000000, 0.000000, + -0.303403,-0.000349, 0.000000, 0.000000, + 0.000000, 0.000000, 1.119535, 0.000000, + 2.179102,-0.717032,-3.382473, 1.000000;; + } + Mesh { // Cube_002 mesh + 24; + -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;-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;; + 6; + 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;; + MeshNormals { // Cube_002 normals + 6; + -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;; + 6; + 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;; + } // End of Cube_002 normals + MeshTextureCoords { // Cube_002 UV coordinates + 24; + 0.500148; 0.449045;, + 0.500148; 0.578125;, + 0.484676; 0.577911;, + 0.484656; 0.449178;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.500033; 0.577792;, + 0.500033; 0.449334;, + 0.484663; 0.449334;, + 0.484556; 0.577385;, + 0.094033; 0.468841;, + 0.000081; 0.469386;, + 0.000574; 0.717044;, + 0.094516; 0.717044;, + 0.484740; 0.406723;, + 0.484658; 0.592301;, + 0.469486; 0.591518;, + 0.469334; 0.407152;, + 0.484410; 0.406336;, + 0.484289; 0.592994;, + 0.468918; 0.593342;, + 0.468958; 0.406362;; + } // End of Cube_002 UV coordinates + } // End of Cube_002 mesh + } // End of Cube_002 + Frame Cube_003 { + FrameTransformMatrix { + -0.000956, 0.831443, 0.000000, 0.000000, + -0.926812,-0.001065, 0.000000, 0.000000, + 0.000000, 0.000000, 1.022895, 0.000000, + 0.351826, 1.619185,-1.628760, 1.000000;; + } + Mesh { // Cube_003 mesh + 24; + -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;-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;; + 6; + 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;; + MeshNormals { // Cube_003 normals + 6; + -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;; + 6; + 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;; + } // End of Cube_003 normals + MeshTextureCoords { // Cube_003 UV coordinates + 24; + 0.154404; 0.218376;, + 0.218735; 0.218625;, + 0.218713; 0.093714;, + 0.154376; 0.093663;, + 0.152629; 0.093922;, + 0.109379; 0.093834;, + 0.109412; 0.265530;, + 0.152965; 0.264233;, + 0.046899; 0.093794;, + 0.109429; 0.093766;, + 0.109563; 0.265560;, + 0.046909; 0.265601;, + 0.046918; 0.093830;, + -0.000083; 0.093979;, + 0.000136; 0.216677;, + 0.046632; 0.264942;, + 0.151039; 0.211523;, + 0.217283; 0.215363;, + 0.218563; 0.094720;, + 0.151039; 0.094720;, + 0.046938; 0.093408;, + 0.109453; 0.093376;, + 0.109485; 0.000000;, + 0.046980;-0.000074;; + } // End of Cube_003 UV coordinates + } // End of Cube_003 mesh + } // End of Cube_003 + Frame Cube_004 { + FrameTransformMatrix { + -0.000543, 0.472154, 0.000000, 0.000000, + -0.647698,-0.000745, 0.000000, 0.000000, + 0.000000, 0.000000, 0.278316, 0.000000, + 0.350341, 2.911684,-1.628760, 1.000000;; + } + Mesh { // Cube_004 mesh + 24; + -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;-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;; + 6; + 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;; + MeshNormals { // Cube_004 normals + 6; + -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;; + 6; + 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;; + } // End of Cube_004 normals + MeshTextureCoords { // Cube_004 UV coordinates + 24; + 0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + 0.314239; 0.121923;, + 0.352962; 0.121923;, + 0.352322; 0.061440;, + 0.314239; 0.061440;, + 0.219852; 0.122804;, + 0.371773; 0.121524;, + 0.372444; 0.063539;, + 0.221147; 0.063570;, + 0.219519; 0.120643;, + 0.251843; 0.121923;, + 0.251843; 0.061440;, + 0.220159; 0.061440;, + 0.250938; 0.123492;, + 0.313419; 0.123189;, + 0.313343; 0.062044;, + 0.250674; 0.062914;, + 0.250879; 0.118083;, + 0.312002; 0.125763;, + 0.312002; 0.000000;, + 0.250879; 0.001280;; + } // End of Cube_004 UV coordinates + } // End of Cube_004 mesh + } // End of Cube_004 + Frame Cube_005 { + FrameTransformMatrix { + -0.000233, 0.177148,-0.083175, 0.000000, + -0.182964,-0.000199, 0.000089, 0.000000, + -0.000018, 0.331883, 0.706854, 0.000000, + -0.444974,-0.897076,-6.140595, 1.000000;; + } + Mesh { // Cube_005 mesh + 24; + -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;-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;; + 6; + 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;; + MeshNormals { // Cube_005 normals + 6; + -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;; + 6; + 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;; + } // End of Cube_005 normals + MeshTextureCoords { // Cube_005 UV coordinates + 24; + 0.562545; 0.249274;, + 0.578051; 0.249274;, + 0.578251; 0.093826;, + 0.562680; 0.093846;, + 0.562741; 0.248997;, + 0.578417; 0.249333;, + 0.578081; 0.093809;, + 0.562925; 0.093657;, + 0.562593; 0.249811;, + 0.578251; 0.249543;, + 0.578289; 0.093385;, + 0.562776; 0.093309;, + 0.563034; 0.249832;, + 0.578271; 0.249907;, + 0.578337; 0.093826;, + 0.562680; 0.093481;, + 0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + 0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;; + } // End of Cube_005 UV coordinates + } // End of Cube_005 mesh + } // End of Cube_005 + Frame Cube_006 { + FrameTransformMatrix { + -0.001204, 0.913408,-0.428865, 0.000000, + -0.367400,-0.000400, 0.000179, 0.000000, + -0.000001, 0.019120, 0.040723, 0.000000, + -0.448732,-0.894848,-7.016967, 1.000000;; + } + Mesh { // Cube_006 mesh + 24; + -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;-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;; + 6; + 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;; + MeshNormals { // Cube_006 normals + 6; + -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;; + 6; + 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;; + } // End of Cube_006 normals + MeshTextureCoords { // Cube_006 UV coordinates + 24; + 0.433591; 0.105473;, + 0.472659; 0.101567;, + 0.482425; 0.031250;, + 0.429685; 0.023437;, + 0.458646; 0.079413;, + 0.484107; 0.077316;, + 0.482389; 0.004482;, + 0.459629; 0.002360;, + 0.433591; 0.117192;, + 0.468753; 0.128911;, + 0.480471; 0.023437;, + 0.429685; 0.019531;, + 0.423826; 0.109380;, + 0.494143; 0.121098;, + 0.494143; 0.031250;, + 0.429685; 0.015625;, + 0.500093; 0.000042;, + 0.547074; 0.000013;, + 0.546814; 0.093790;, + 0.499973; 0.093907;, + 0.499950; 0.093802;, + 0.546898; 0.093571;, + 0.547061; 0.000207;, + 0.499950; 0.000267;; + } // End of Cube_006 UV coordinates + } // End of Cube_006 mesh + } // End of Cube_006 + Frame Cube_007 { + FrameTransformMatrix { + -0.001207, 0.908440, 0.439292, 0.000000, + -0.367400,-0.000398,-0.000186, 0.000000, + 0.000001,-0.019585, 0.040501, 0.000000, + 0.982119, 0.101678,-6.751587, 1.000000;; + } + Mesh { // Cube_007 mesh + 24; + -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;-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;; + 6; + 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;; + MeshNormals { // Cube_007 normals + 6; + -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;; + 6; + 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;; + } // End of Cube_007 normals + MeshTextureCoords { // Cube_007 UV coordinates + 24; + 0.428123; 0.115630;, + 0.468753; 0.121880;, + 0.481253; 0.015625;, + 0.421873; 0.018750;, + 0.428123; 0.103130;, + 0.470316; 0.125005;, + 0.478128; 0.012500;, + 0.423435; 0.009375;, + 0.437497; 0.081255;, + 0.460941; 0.078130;, + 0.475003; 0.018750;, + 0.431248; 0.018750;, + 0.445310; 0.071880;, + 0.485940; 0.071880;, + 0.478128; 0.028125;, + 0.437497; 0.021875;, + 0.500130; 0.000650;, + 0.546959; 0.000394;, + 0.547322; 0.093483;, + 0.500171; 0.093483;, + 0.500136; 0.093746;, + 0.547061; 0.093723;, + 0.547233;-0.000009;, + 0.500190;-0.000074;; + } // End of Cube_007 UV coordinates + } // End of Cube_007 mesh + } // End of Cube_007 + Frame Cube_008 { + FrameTransformMatrix { + -0.000234, 0.176184, 0.085197, 0.000000, + -0.182964,-0.000198,-0.000093, 0.000000, + 0.000012,-0.339952, 0.703009, 0.000000, + 0.985878,-0.553180,-6.165302, 1.000000;; + } + Mesh { // Cube_008 mesh + 24; + -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;-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;; + 6; + 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;; + MeshNormals { // Cube_008 normals + 6; + -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;; + 6; + 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;; + } // End of Cube_008 normals + MeshTextureCoords { // Cube_008 UV coordinates + 24; + 0.562674; 0.249014;, + 0.577997; 0.249551;, + 0.578031; 0.093826;, + 0.562743; 0.093879;, + 0.562724; 0.249635;, + 0.578307; 0.249382;, + 0.577962; 0.093849;, + 0.562964; 0.094000;, + 0.562750; 0.248913;, + 0.578375; 0.249266;, + 0.578138; 0.093987;, + 0.562649; 0.093825;, + 0.563014; 0.248270;, + 0.578194; 0.248189;, + 0.577523; 0.093815;, + 0.563011; 0.093717;, + 0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.560998; 0.086000;, + 0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.559998; 0.090000;; + } // End of Cube_008 UV coordinates + } // End of Cube_008 mesh + } // End of Cube_008 +} // End of Root + +AnimationSet Global { + Animation { + {Cube} + AnimationKey { // Rotation + 0; + 80; + 0;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 1;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 2;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 3;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 4;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 5;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 6;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 7;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 8;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 9;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 10;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 11;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 12;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 13;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 14;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 15;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 16;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 17;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 18;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 19;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 20;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 21;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 22;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 23;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 24;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 25;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 26;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 27;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 28;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 29;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 30;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 31;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 32;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 33;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 34;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 35;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 36;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 37;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 38;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 39;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 40;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 41;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 42;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 43;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 44;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 45;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 46;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 47;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 48;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 49;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 50;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 51;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 52;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 53;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 54;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 55;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 56;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 57;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 58;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 59;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 60;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 61;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 62;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 63;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 64;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 65;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 66;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 67;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 68;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 69;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 70;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 71;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 72;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 73;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 74;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 75;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 76;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 77;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 78;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 79;4;-0.706700, 0.000000, 0.000000, 0.707513;;; + } + AnimationKey { // Scale + 1; + 80; + 0;3; 2.304886, 1.520652, 1.758614;;, + 1;3; 2.304886, 1.520652, 1.758614;;, + 2;3; 2.304886, 1.520652, 1.758614;;, + 3;3; 2.304886, 1.520652, 1.758614;;, + 4;3; 2.304886, 1.520652, 1.758614;;, + 5;3; 2.304886, 1.520652, 1.758614;;, + 6;3; 2.304886, 1.520652, 1.758614;;, + 7;3; 2.304886, 1.520652, 1.758614;;, + 8;3; 2.304886, 1.520652, 1.758614;;, + 9;3; 2.304886, 1.520652, 1.758614;;, + 10;3; 2.304886, 1.520652, 1.758614;;, + 11;3; 2.304886, 1.520652, 1.758614;;, + 12;3; 2.304886, 1.520652, 1.758614;;, + 13;3; 2.304886, 1.520652, 1.758614;;, + 14;3; 2.304886, 1.520652, 1.758614;;, + 15;3; 2.304886, 1.520652, 1.758614;;, + 16;3; 2.304886, 1.520652, 1.758614;;, + 17;3; 2.304886, 1.520652, 1.758614;;, + 18;3; 2.304886, 1.520652, 1.758614;;, + 19;3; 2.304886, 1.520652, 1.758614;;, + 20;3; 2.304886, 1.520652, 1.758614;;, + 21;3; 2.304886, 1.520652, 1.758614;;, + 22;3; 2.304886, 1.520652, 1.758614;;, + 23;3; 2.304886, 1.520652, 1.758614;;, + 24;3; 2.304886, 1.520652, 1.758614;;, + 25;3; 2.304886, 1.520652, 1.758614;;, + 26;3; 2.304886, 1.520652, 1.758614;;, + 27;3; 2.304886, 1.520652, 1.758614;;, + 28;3; 2.304886, 1.520652, 1.758614;;, + 29;3; 2.304886, 1.520652, 1.758614;;, + 30;3; 2.304886, 1.520652, 1.758614;;, + 31;3; 2.304886, 1.520652, 1.758614;;, + 32;3; 2.304886, 1.520652, 1.758614;;, + 33;3; 2.304886, 1.520652, 1.758614;;, + 34;3; 2.304886, 1.520652, 1.758614;;, + 35;3; 2.304886, 1.520652, 1.758614;;, + 36;3; 2.304886, 1.520652, 1.758614;;, + 37;3; 2.304886, 1.520652, 1.758614;;, + 38;3; 2.304886, 1.520652, 1.758614;;, + 39;3; 2.304886, 1.520652, 1.758614;;, + 40;3; 2.304886, 1.520652, 1.758614;;, + 41;3; 2.304886, 1.520652, 1.758614;;, + 42;3; 2.304886, 1.520652, 1.758614;;, + 43;3; 2.304886, 1.520652, 1.758614;;, + 44;3; 2.304886, 1.520652, 1.758614;;, + 45;3; 2.304886, 1.520652, 1.758614;;, + 46;3; 2.304886, 1.520652, 1.758614;;, + 47;3; 2.304886, 1.520652, 1.758614;;, + 48;3; 2.304886, 1.520652, 1.758614;;, + 49;3; 2.304886, 1.520652, 1.758614;;, + 50;3; 2.304886, 1.520652, 1.758614;;, + 51;3; 2.304886, 1.520652, 1.758614;;, + 52;3; 2.304886, 1.520652, 1.758614;;, + 53;3; 2.304886, 1.520652, 1.758614;;, + 54;3; 2.304886, 1.520652, 1.758614;;, + 55;3; 2.304886, 1.520652, 1.758614;;, + 56;3; 2.304886, 1.520652, 1.758614;;, + 57;3; 2.304886, 1.520652, 1.758614;;, + 58;3; 2.304886, 1.520652, 1.758614;;, + 59;3; 2.304886, 1.520652, 1.758614;;, + 60;3; 2.304886, 1.520652, 1.758614;;, + 61;3; 2.304886, 1.520652, 1.758614;;, + 62;3; 2.304886, 1.520652, 1.758614;;, + 63;3; 2.304886, 1.520652, 1.758614;;, + 64;3; 2.304886, 1.520652, 1.758614;;, + 65;3; 2.304886, 1.520652, 1.758614;;, + 66;3; 2.304886, 1.520652, 1.758614;;, + 67;3; 2.304886, 1.520652, 1.758614;;, + 68;3; 2.304886, 1.520652, 1.758614;;, + 69;3; 2.304886, 1.520652, 1.758614;;, + 70;3; 2.304886, 1.520652, 1.758614;;, + 71;3; 2.304886, 1.520652, 1.758614;;, + 72;3; 2.304886, 1.520652, 1.758614;;, + 73;3; 2.304886, 1.520652, 1.758614;;, + 74;3; 2.304886, 1.520652, 1.758614;;, + 75;3; 2.304886, 1.520652, 1.758614;;, + 76;3; 2.304886, 1.520652, 1.758614;;, + 77;3; 2.304886, 1.520652, 1.758614;;, + 78;3; 2.304886, 1.520652, 1.758614;;, + 79;3; 2.304886, 1.520652, 1.758614;;; + } + AnimationKey { // Position + 2; + 80; + 0;3; 0.354515,-0.719130,-3.788555;;, + 1;3; 0.354515,-0.719130,-3.788555;;, + 2;3; 0.354515,-0.719130,-3.788555;;, + 3;3; 0.354515,-0.719130,-3.788555;;, + 4;3; 0.354515,-0.719130,-3.788555;;, + 5;3; 0.354515,-0.719130,-3.788555;;, + 6;3; 0.354515,-0.719130,-3.788555;;, + 7;3; 0.354515,-0.719130,-3.788555;;, + 8;3; 0.354515,-0.719130,-3.788555;;, + 9;3; 0.354515,-0.719130,-3.788555;;, + 10;3; 0.354515,-0.719130,-3.788555;;, + 11;3; 0.354515,-0.719130,-3.788555;;, + 12;3; 0.354515,-0.719130,-3.788555;;, + 13;3; 0.354515,-0.719130,-3.788555;;, + 14;3; 0.354515,-0.719130,-3.788555;;, + 15;3; 0.354515,-0.719130,-3.788555;;, + 16;3; 0.354515,-0.719130,-3.788555;;, + 17;3; 0.354515,-0.719130,-3.788555;;, + 18;3; 0.354515,-0.719130,-3.788555;;, + 19;3; 0.354515,-0.719130,-3.788555;;, + 20;3; 0.354515,-0.719130,-3.788555;;, + 21;3; 0.354515,-0.719130,-3.788555;;, + 22;3; 0.354515,-0.719130,-3.788555;;, + 23;3; 0.354515,-0.719130,-3.788555;;, + 24;3; 0.354515,-0.719130,-3.788555;;, + 25;3; 0.354515,-0.719130,-3.788555;;, + 26;3; 0.354515,-0.719130,-3.788555;;, + 27;3; 0.354515,-0.719130,-3.788555;;, + 28;3; 0.354515,-0.719130,-3.788555;;, + 29;3; 0.354515,-0.719130,-3.788555;;, + 30;3; 0.354515,-0.719130,-3.788555;;, + 31;3; 0.354515,-0.719130,-3.788555;;, + 32;3; 0.354515,-0.719130,-3.788555;;, + 33;3; 0.354515,-0.719130,-3.788555;;, + 34;3; 0.354515,-0.719130,-3.788555;;, + 35;3; 0.354515,-0.719130,-3.788555;;, + 36;3; 0.354515,-0.719130,-3.788555;;, + 37;3; 0.354515,-0.719130,-3.788555;;, + 38;3; 0.354515,-0.719130,-3.788555;;, + 39;3; 0.354515,-0.719130,-3.788555;;, + 40;3; 0.354515,-0.719130,-3.788555;;, + 41;3; 0.354515,-0.719130,-3.788555;;, + 42;3; 0.354515,-0.719130,-3.788555;;, + 43;3; 0.354515,-0.719130,-3.788555;;, + 44;3; 0.354515,-0.719130,-3.788555;;, + 45;3; 0.354515,-0.719130,-3.788555;;, + 46;3; 0.354515,-0.719130,-3.788555;;, + 47;3; 0.354515,-0.719130,-3.788555;;, + 48;3; 0.354515,-0.719130,-3.788555;;, + 49;3; 0.354515,-0.719130,-3.788555;;, + 50;3; 0.354515,-0.719130,-3.788555;;, + 51;3; 0.354515,-0.719130,-3.788555;;, + 52;3; 0.354515,-0.719130,-3.788555;;, + 53;3; 0.354515,-0.719130,-3.788555;;, + 54;3; 0.354515,-0.719130,-3.788555;;, + 55;3; 0.354515,-0.719130,-3.788555;;, + 56;3; 0.354515,-0.719130,-3.788555;;, + 57;3; 0.354515,-0.719130,-3.788555;;, + 58;3; 0.354515,-0.719130,-3.788555;;, + 59;3; 0.354515,-0.719130,-3.788555;;, + 60;3; 0.354515,-0.719130,-3.788555;;, + 61;3; 0.354515,-0.719130,-3.788555;;, + 62;3; 0.354515,-0.719130,-3.788555;;, + 63;3; 0.354515,-0.719130,-3.788555;;, + 64;3; 0.354515,-0.719130,-3.788555;;, + 65;3; 0.354515,-0.719130,-3.788555;;, + 66;3; 0.354515,-0.719130,-3.788555;;, + 67;3; 0.354515,-0.719130,-3.788555;;, + 68;3; 0.354515,-0.719130,-3.788555;;, + 69;3; 0.354515,-0.719130,-3.788555;;, + 70;3; 0.354515,-0.719130,-3.788555;;, + 71;3; 0.354515,-0.719130,-3.788555;;, + 72;3; 0.354515,-0.719130,-3.788555;;, + 73;3; 0.354515,-0.719130,-3.788555;;, + 74;3; 0.354515,-0.719130,-3.788555;;, + 75;3; 0.354515,-0.719130,-3.788555;;, + 76;3; 0.354515,-0.719130,-3.788555;;, + 77;3; 0.354515,-0.719130,-3.788555;;, + 78;3; 0.354515,-0.719130,-3.788555;;, + 79;3; 0.354515,-0.719130,-3.788555;;; + } + } + Animation { + {Cube_001} + AnimationKey { // Rotation + 0; + 80; + 0;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 1;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 2;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 3;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 4;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 5;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 6;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 7;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 8;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 9;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 10;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 11;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 12;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 13;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 14;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 15;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 16;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 17;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 18;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 19;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 20;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 21;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 22;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 23;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 24;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 25;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 26;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 27;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 28;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 29;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 30;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 31;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 32;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 33;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 34;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 35;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 36;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 37;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 38;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 39;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 40;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 41;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 42;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 43;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 44;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 45;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 46;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 47;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 48;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 49;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 50;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 51;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 52;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 53;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 54;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 55;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 56;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 57;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 58;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 59;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 60;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 61;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 62;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 63;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 64;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 65;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 66;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 67;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 68;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 69;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 70;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 71;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 72;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 73;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 74;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 75;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 76;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 77;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 78;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 79;4;-0.706700, 0.000000, 0.000000, 0.707513;;; + } + AnimationKey { // Scale + 1; + 80; + 0;3; 1.849058, 0.303403, 1.119535;;, + 1;3; 1.849058, 0.303403, 1.119535;;, + 2;3; 1.849058, 0.303403, 1.119535;;, + 3;3; 1.849058, 0.303403, 1.119535;;, + 4;3; 1.849058, 0.303403, 1.119535;;, + 5;3; 1.849058, 0.303403, 1.119535;;, + 6;3; 1.849058, 0.303403, 1.119535;;, + 7;3; 1.849058, 0.303403, 1.119535;;, + 8;3; 1.849058, 0.303403, 1.119535;;, + 9;3; 1.849058, 0.303403, 1.119535;;, + 10;3; 1.849058, 0.303403, 1.119535;;, + 11;3; 1.849058, 0.303403, 1.119535;;, + 12;3; 1.849058, 0.303403, 1.119535;;, + 13;3; 1.849058, 0.303403, 1.119535;;, + 14;3; 1.849058, 0.303403, 1.119535;;, + 15;3; 1.849058, 0.303403, 1.119535;;, + 16;3; 1.849058, 0.303403, 1.119535;;, + 17;3; 1.849058, 0.303403, 1.119535;;, + 18;3; 1.849058, 0.303403, 1.119535;;, + 19;3; 1.849058, 0.303403, 1.119535;;, + 20;3; 1.849058, 0.303403, 1.119535;;, + 21;3; 1.849058, 0.303403, 1.119535;;, + 22;3; 1.849058, 0.303403, 1.119535;;, + 23;3; 1.849058, 0.303403, 1.119535;;, + 24;3; 1.849058, 0.303403, 1.119535;;, + 25;3; 1.849058, 0.303403, 1.119535;;, + 26;3; 1.849058, 0.303403, 1.119535;;, + 27;3; 1.849058, 0.303403, 1.119535;;, + 28;3; 1.849058, 0.303403, 1.119535;;, + 29;3; 1.849058, 0.303403, 1.119535;;, + 30;3; 1.849058, 0.303403, 1.119535;;, + 31;3; 1.849058, 0.303403, 1.119535;;, + 32;3; 1.849058, 0.303403, 1.119535;;, + 33;3; 1.849058, 0.303403, 1.119535;;, + 34;3; 1.849058, 0.303403, 1.119535;;, + 35;3; 1.849058, 0.303403, 1.119535;;, + 36;3; 1.849058, 0.303403, 1.119535;;, + 37;3; 1.849058, 0.303403, 1.119535;;, + 38;3; 1.849058, 0.303403, 1.119535;;, + 39;3; 1.849058, 0.303403, 1.119535;;, + 40;3; 1.849058, 0.303403, 1.119535;;, + 41;3; 1.849058, 0.303403, 1.119535;;, + 42;3; 1.849058, 0.303403, 1.119535;;, + 43;3; 1.849058, 0.303403, 1.119535;;, + 44;3; 1.849058, 0.303403, 1.119535;;, + 45;3; 1.849058, 0.303403, 1.119535;;, + 46;3; 1.849058, 0.303403, 1.119535;;, + 47;3; 1.849058, 0.303403, 1.119535;;, + 48;3; 1.849058, 0.303403, 1.119535;;, + 49;3; 1.849058, 0.303403, 1.119535;;, + 50;3; 1.849058, 0.303403, 1.119535;;, + 51;3; 1.849058, 0.303403, 1.119535;;, + 52;3; 1.849058, 0.303403, 1.119535;;, + 53;3; 1.849058, 0.303403, 1.119535;;, + 54;3; 1.849058, 0.303403, 1.119535;;, + 55;3; 1.849058, 0.303403, 1.119535;;, + 56;3; 1.849058, 0.303403, 1.119535;;, + 57;3; 1.849058, 0.303403, 1.119535;;, + 58;3; 1.849058, 0.303403, 1.119535;;, + 59;3; 1.849058, 0.303403, 1.119535;;, + 60;3; 1.849058, 0.303403, 1.119535;;, + 61;3; 1.849058, 0.303403, 1.119535;;, + 62;3; 1.849058, 0.303403, 1.119535;;, + 63;3; 1.849058, 0.303403, 1.119535;;, + 64;3; 1.849058, 0.303403, 1.119535;;, + 65;3; 1.849058, 0.303403, 1.119535;;, + 66;3; 1.849058, 0.303403, 1.119535;;, + 67;3; 1.849058, 0.303403, 1.119535;;, + 68;3; 1.849058, 0.303403, 1.119535;;, + 69;3; 1.849058, 0.303403, 1.119535;;, + 70;3; 1.849058, 0.303403, 1.119535;;, + 71;3; 1.849058, 0.303403, 1.119535;;, + 72;3; 1.849058, 0.303403, 1.119535;;, + 73;3; 1.849058, 0.303403, 1.119535;;, + 74;3; 1.849058, 0.303403, 1.119535;;, + 75;3; 1.849058, 0.303403, 1.119535;;, + 76;3; 1.849058, 0.303403, 1.119535;;, + 77;3; 1.849058, 0.303403, 1.119535;;, + 78;3; 1.849058, 0.303403, 1.119535;;, + 79;3; 1.849058, 0.303403, 1.119535;;; + } + AnimationKey { // Position + 2; + 80; + 0;3;-1.442512,-0.721196,-3.382473;;, + 1;3;-1.442512,-0.721196,-3.382473;;, + 2;3;-1.442512,-0.721196,-3.382473;;, + 3;3;-1.442512,-0.721196,-3.382473;;, + 4;3;-1.442512,-0.721196,-3.382473;;, + 5;3;-1.442512,-0.721196,-3.382473;;, + 6;3;-1.442512,-0.721196,-3.382473;;, + 7;3;-1.442512,-0.721196,-3.382473;;, + 8;3;-1.442512,-0.721196,-3.382473;;, + 9;3;-1.442512,-0.721196,-3.382473;;, + 10;3;-1.442512,-0.721196,-3.382473;;, + 11;3;-1.442512,-0.721196,-3.382473;;, + 12;3;-1.442512,-0.721196,-3.382473;;, + 13;3;-1.442512,-0.721196,-3.382473;;, + 14;3;-1.442512,-0.721196,-3.382473;;, + 15;3;-1.442512,-0.721196,-3.382473;;, + 16;3;-1.442512,-0.721196,-3.382473;;, + 17;3;-1.442512,-0.721196,-3.382473;;, + 18;3;-1.442512,-0.721196,-3.382473;;, + 19;3;-1.442512,-0.721196,-3.382473;;, + 20;3;-1.442512,-0.721196,-3.382473;;, + 21;3;-1.442512,-0.721196,-3.382473;;, + 22;3;-1.442512,-0.721196,-3.382473;;, + 23;3;-1.442512,-0.721196,-3.382473;;, + 24;3;-1.442512,-0.721196,-3.382473;;, + 25;3;-1.442512,-0.721196,-3.382473;;, + 26;3;-1.442512,-0.721196,-3.382473;;, + 27;3;-1.442512,-0.721196,-3.382473;;, + 28;3;-1.442512,-0.721196,-3.382473;;, + 29;3;-1.442512,-0.721196,-3.382473;;, + 30;3;-1.442512,-0.721196,-3.382473;;, + 31;3;-1.442512,-0.721196,-3.382473;;, + 32;3;-1.442512,-0.721196,-3.382473;;, + 33;3;-1.442512,-0.721196,-3.382473;;, + 34;3;-1.442512,-0.721196,-3.382473;;, + 35;3;-1.442512,-0.721196,-3.382473;;, + 36;3;-1.442512,-0.721196,-3.382473;;, + 37;3;-1.442512,-0.721196,-3.382473;;, + 38;3;-1.442512,-0.721196,-3.382473;;, + 39;3;-1.442512,-0.721196,-3.382473;;, + 40;3;-1.442512,-0.721196,-3.382473;;, + 41;3;-1.442512,-0.721196,-3.382473;;, + 42;3;-1.442512,-0.721196,-3.382473;;, + 43;3;-1.442512,-0.721196,-3.382473;;, + 44;3;-1.442512,-0.721196,-3.382473;;, + 45;3;-1.442512,-0.721196,-3.382473;;, + 46;3;-1.442512,-0.721196,-3.382473;;, + 47;3;-1.442512,-0.721196,-3.382473;;, + 48;3;-1.442512,-0.721196,-3.382473;;, + 49;3;-1.442512,-0.721196,-3.382473;;, + 50;3;-1.442512,-0.721196,-3.382473;;, + 51;3;-1.442512,-0.721196,-3.382473;;, + 52;3;-1.442512,-0.721196,-3.382473;;, + 53;3;-1.442512,-0.721196,-3.382473;;, + 54;3;-1.442512,-0.721196,-3.382473;;, + 55;3;-1.442512,-0.721196,-3.382473;;, + 56;3;-1.442512,-0.721196,-3.382473;;, + 57;3;-1.442512,-0.721196,-3.382473;;, + 58;3;-1.442512,-0.721196,-3.382473;;, + 59;3;-1.442512,-0.721196,-3.382473;;, + 60;3;-1.442512,-0.721196,-3.382473;;, + 61;3;-1.442512,-0.721196,-3.382473;;, + 62;3;-1.442512,-0.721196,-3.382473;;, + 63;3;-1.442512,-0.721196,-3.382473;;, + 64;3;-1.442512,-0.721196,-3.382473;;, + 65;3;-1.442512,-0.721196,-3.382473;;, + 66;3;-1.442512,-0.721196,-3.382473;;, + 67;3;-1.442512,-0.721196,-3.382473;;, + 68;3;-1.442512,-0.721196,-3.382473;;, + 69;3;-1.442512,-0.721196,-3.382473;;, + 70;3;-1.442512,-0.721196,-3.382473;;, + 71;3;-1.442512,-0.721196,-3.382473;;, + 72;3;-1.442512,-0.721196,-3.382473;;, + 73;3;-1.442512,-0.721196,-3.382473;;, + 74;3;-1.442512,-0.721196,-3.382473;;, + 75;3;-1.442512,-0.721196,-3.382473;;, + 76;3;-1.442512,-0.721196,-3.382473;;, + 77;3;-1.442512,-0.721196,-3.382473;;, + 78;3;-1.442512,-0.721196,-3.382473;;, + 79;3;-1.442512,-0.721196,-3.382473;;; + } + } + Animation { + {Cube_002} + AnimationKey { // Rotation + 0; + 80; + 0;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 1;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 2;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 3;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 4;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 5;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 6;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 7;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 8;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 9;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 10;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 11;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 12;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 13;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 14;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 15;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 16;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 17;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 18;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 19;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 20;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 21;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 22;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 23;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 24;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 25;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 26;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 27;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 28;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 29;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 30;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 31;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 32;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 33;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 34;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 35;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 36;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 37;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 38;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 39;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 40;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 41;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 42;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 43;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 44;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 45;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 46;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 47;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 48;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 49;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 50;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 51;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 52;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 53;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 54;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 55;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 56;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 57;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 58;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 59;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 60;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 61;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 62;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 63;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 64;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 65;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 66;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 67;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 68;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 69;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 70;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 71;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 72;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 73;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 74;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 75;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 76;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 77;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 78;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 79;4;-0.706700, 0.000000, 0.000000, 0.707513;;; + } + AnimationKey { // Scale + 1; + 80; + 0;3; 1.849058, 0.303403, 1.119535;;, + 1;3; 1.849058, 0.303403, 1.119535;;, + 2;3; 1.849058, 0.303403, 1.119535;;, + 3;3; 1.849058, 0.303403, 1.119535;;, + 4;3; 1.849058, 0.303403, 1.119535;;, + 5;3; 1.849058, 0.303403, 1.119535;;, + 6;3; 1.849058, 0.303403, 1.119535;;, + 7;3; 1.849058, 0.303403, 1.119535;;, + 8;3; 1.849058, 0.303403, 1.119535;;, + 9;3; 1.849058, 0.303403, 1.119535;;, + 10;3; 1.849058, 0.303403, 1.119535;;, + 11;3; 1.849058, 0.303403, 1.119535;;, + 12;3; 1.849058, 0.303403, 1.119535;;, + 13;3; 1.849058, 0.303403, 1.119535;;, + 14;3; 1.849058, 0.303403, 1.119535;;, + 15;3; 1.849058, 0.303403, 1.119535;;, + 16;3; 1.849058, 0.303403, 1.119535;;, + 17;3; 1.849058, 0.303403, 1.119535;;, + 18;3; 1.849058, 0.303403, 1.119535;;, + 19;3; 1.849058, 0.303403, 1.119535;;, + 20;3; 1.849058, 0.303403, 1.119535;;, + 21;3; 1.849058, 0.303403, 1.119535;;, + 22;3; 1.849058, 0.303403, 1.119535;;, + 23;3; 1.849058, 0.303403, 1.119535;;, + 24;3; 1.849058, 0.303403, 1.119535;;, + 25;3; 1.849058, 0.303403, 1.119535;;, + 26;3; 1.849058, 0.303403, 1.119535;;, + 27;3; 1.849058, 0.303403, 1.119535;;, + 28;3; 1.849058, 0.303403, 1.119535;;, + 29;3; 1.849058, 0.303403, 1.119535;;, + 30;3; 1.849058, 0.303403, 1.119535;;, + 31;3; 1.849058, 0.303403, 1.119535;;, + 32;3; 1.849058, 0.303403, 1.119535;;, + 33;3; 1.849058, 0.303403, 1.119535;;, + 34;3; 1.849058, 0.303403, 1.119535;;, + 35;3; 1.849058, 0.303403, 1.119535;;, + 36;3; 1.849058, 0.303403, 1.119535;;, + 37;3; 1.849058, 0.303403, 1.119535;;, + 38;3; 1.849058, 0.303403, 1.119535;;, + 39;3; 1.849058, 0.303403, 1.119535;;, + 40;3; 1.849058, 0.303403, 1.119535;;, + 41;3; 1.849058, 0.303403, 1.119535;;, + 42;3; 1.849058, 0.303403, 1.119535;;, + 43;3; 1.849058, 0.303403, 1.119535;;, + 44;3; 1.849058, 0.303403, 1.119535;;, + 45;3; 1.849058, 0.303403, 1.119535;;, + 46;3; 1.849058, 0.303403, 1.119535;;, + 47;3; 1.849058, 0.303403, 1.119535;;, + 48;3; 1.849058, 0.303403, 1.119535;;, + 49;3; 1.849058, 0.303403, 1.119535;;, + 50;3; 1.849058, 0.303403, 1.119535;;, + 51;3; 1.849058, 0.303403, 1.119535;;, + 52;3; 1.849058, 0.303403, 1.119535;;, + 53;3; 1.849058, 0.303403, 1.119535;;, + 54;3; 1.849058, 0.303403, 1.119535;;, + 55;3; 1.849058, 0.303403, 1.119535;;, + 56;3; 1.849058, 0.303403, 1.119535;;, + 57;3; 1.849058, 0.303403, 1.119535;;, + 58;3; 1.849058, 0.303403, 1.119535;;, + 59;3; 1.849058, 0.303403, 1.119535;;, + 60;3; 1.849058, 0.303403, 1.119535;;, + 61;3; 1.849058, 0.303403, 1.119535;;, + 62;3; 1.849058, 0.303403, 1.119535;;, + 63;3; 1.849058, 0.303403, 1.119535;;, + 64;3; 1.849058, 0.303403, 1.119535;;, + 65;3; 1.849058, 0.303403, 1.119535;;, + 66;3; 1.849058, 0.303403, 1.119535;;, + 67;3; 1.849058, 0.303403, 1.119535;;, + 68;3; 1.849058, 0.303403, 1.119535;;, + 69;3; 1.849058, 0.303403, 1.119535;;, + 70;3; 1.849058, 0.303403, 1.119535;;, + 71;3; 1.849058, 0.303403, 1.119535;;, + 72;3; 1.849058, 0.303403, 1.119535;;, + 73;3; 1.849058, 0.303403, 1.119535;;, + 74;3; 1.849058, 0.303403, 1.119535;;, + 75;3; 1.849058, 0.303403, 1.119535;;, + 76;3; 1.849058, 0.303403, 1.119535;;, + 77;3; 1.849058, 0.303403, 1.119535;;, + 78;3; 1.849058, 0.303403, 1.119535;;, + 79;3; 1.849058, 0.303403, 1.119535;;; + } + AnimationKey { // Position + 2; + 80; + 0;3; 2.179102,-0.717032,-3.382473;;, + 1;3; 2.179102,-0.717032,-3.382473;;, + 2;3; 2.179102,-0.717032,-3.382473;;, + 3;3; 2.179102,-0.717032,-3.382473;;, + 4;3; 2.179102,-0.717032,-3.382473;;, + 5;3; 2.179102,-0.717032,-3.382473;;, + 6;3; 2.179102,-0.717032,-3.382473;;, + 7;3; 2.179102,-0.717032,-3.382473;;, + 8;3; 2.179102,-0.717032,-3.382473;;, + 9;3; 2.179102,-0.717032,-3.382473;;, + 10;3; 2.179102,-0.717032,-3.382473;;, + 11;3; 2.179102,-0.717032,-3.382473;;, + 12;3; 2.179102,-0.717032,-3.382473;;, + 13;3; 2.179102,-0.717032,-3.382473;;, + 14;3; 2.179102,-0.717032,-3.382473;;, + 15;3; 2.179102,-0.717032,-3.382473;;, + 16;3; 2.179102,-0.717032,-3.382473;;, + 17;3; 2.179102,-0.717032,-3.382473;;, + 18;3; 2.179102,-0.717032,-3.382473;;, + 19;3; 2.179102,-0.717032,-3.382473;;, + 20;3; 2.179102,-0.717032,-3.382473;;, + 21;3; 2.179102,-0.717032,-3.382473;;, + 22;3; 2.179102,-0.717032,-3.382473;;, + 23;3; 2.179102,-0.717032,-3.382473;;, + 24;3; 2.179102,-0.717032,-3.382473;;, + 25;3; 2.179102,-0.717032,-3.382473;;, + 26;3; 2.179102,-0.717032,-3.382473;;, + 27;3; 2.179102,-0.717032,-3.382473;;, + 28;3; 2.179102,-0.717032,-3.382473;;, + 29;3; 2.179102,-0.717032,-3.382473;;, + 30;3; 2.179102,-0.717032,-3.382473;;, + 31;3; 2.179102,-0.717032,-3.382473;;, + 32;3; 2.179102,-0.717032,-3.382473;;, + 33;3; 2.179102,-0.717032,-3.382473;;, + 34;3; 2.179102,-0.717032,-3.382473;;, + 35;3; 2.179102,-0.717032,-3.382473;;, + 36;3; 2.179102,-0.717032,-3.382473;;, + 37;3; 2.179102,-0.717032,-3.382473;;, + 38;3; 2.179102,-0.717032,-3.382473;;, + 39;3; 2.179102,-0.717032,-3.382473;;, + 40;3; 2.179102,-0.717032,-3.382473;;, + 41;3; 2.179102,-0.717032,-3.382473;;, + 42;3; 2.179102,-0.717032,-3.382473;;, + 43;3; 2.179102,-0.717032,-3.382473;;, + 44;3; 2.179102,-0.717032,-3.382473;;, + 45;3; 2.179102,-0.717032,-3.382473;;, + 46;3; 2.179102,-0.717032,-3.382473;;, + 47;3; 2.179102,-0.717032,-3.382473;;, + 48;3; 2.179102,-0.717032,-3.382473;;, + 49;3; 2.179102,-0.717032,-3.382473;;, + 50;3; 2.179102,-0.717032,-3.382473;;, + 51;3; 2.179102,-0.717032,-3.382473;;, + 52;3; 2.179102,-0.717032,-3.382473;;, + 53;3; 2.179102,-0.717032,-3.382473;;, + 54;3; 2.179102,-0.717032,-3.382473;;, + 55;3; 2.179102,-0.717032,-3.382473;;, + 56;3; 2.179102,-0.717032,-3.382473;;, + 57;3; 2.179102,-0.717032,-3.382473;;, + 58;3; 2.179102,-0.717032,-3.382473;;, + 59;3; 2.179102,-0.717032,-3.382473;;, + 60;3; 2.179102,-0.717032,-3.382473;;, + 61;3; 2.179102,-0.717032,-3.382473;;, + 62;3; 2.179102,-0.717032,-3.382473;;, + 63;3; 2.179102,-0.717032,-3.382473;;, + 64;3; 2.179102,-0.717032,-3.382473;;, + 65;3; 2.179102,-0.717032,-3.382473;;, + 66;3; 2.179102,-0.717032,-3.382473;;, + 67;3; 2.179102,-0.717032,-3.382473;;, + 68;3; 2.179102,-0.717032,-3.382473;;, + 69;3; 2.179102,-0.717032,-3.382473;;, + 70;3; 2.179102,-0.717032,-3.382473;;, + 71;3; 2.179102,-0.717032,-3.382473;;, + 72;3; 2.179102,-0.717032,-3.382473;;, + 73;3; 2.179102,-0.717032,-3.382473;;, + 74;3; 2.179102,-0.717032,-3.382473;;, + 75;3; 2.179102,-0.717032,-3.382473;;, + 76;3; 2.179102,-0.717032,-3.382473;;, + 77;3; 2.179102,-0.717032,-3.382473;;, + 78;3; 2.179102,-0.717032,-3.382473;;, + 79;3; 2.179102,-0.717032,-3.382473;;; + } + } + Animation { + {Cube_003} + AnimationKey { // Rotation + 0; + 80; + 0;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 1;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 2;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 3;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 4;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 5;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 6;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 7;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 8;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 9;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 10;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 11;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 12;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 13;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 14;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 15;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 16;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 17;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 18;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 19;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 20;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 21;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 22;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 23;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 24;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 25;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 26;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 27;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 28;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 29;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 30;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 31;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 32;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 33;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 34;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 35;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 36;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 37;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 38;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 39;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 40;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 41;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 42;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 43;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 44;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 45;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 46;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 47;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 48;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 49;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 50;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 51;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 52;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 53;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 54;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 55;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 56;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 57;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 58;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 59;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 60;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 61;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 62;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 63;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 64;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 65;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 66;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 67;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 68;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 69;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 70;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 71;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 72;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 73;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 74;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 75;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 76;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 77;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 78;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 79;4;-0.706700, 0.000000, 0.000000, 0.707513;;; + } + AnimationKey { // Scale + 1; + 80; + 0;3; 0.831444, 0.926812, 1.022895;;, + 1;3; 0.831444, 0.926812, 1.022895;;, + 2;3; 0.831444, 0.926812, 1.022895;;, + 3;3; 0.831444, 0.926812, 1.022895;;, + 4;3; 0.831444, 0.926812, 1.022895;;, + 5;3; 0.831444, 0.926812, 1.022895;;, + 6;3; 0.831444, 0.926812, 1.022895;;, + 7;3; 0.831444, 0.926812, 1.022895;;, + 8;3; 0.831444, 0.926812, 1.022895;;, + 9;3; 0.831444, 0.926812, 1.022895;;, + 10;3; 0.831444, 0.926812, 1.022895;;, + 11;3; 0.831444, 0.926812, 1.022895;;, + 12;3; 0.831444, 0.926812, 1.022895;;, + 13;3; 0.831444, 0.926812, 1.022895;;, + 14;3; 0.831444, 0.926812, 1.022895;;, + 15;3; 0.831444, 0.926812, 1.022895;;, + 16;3; 0.831444, 0.926812, 1.022895;;, + 17;3; 0.831444, 0.926812, 1.022895;;, + 18;3; 0.831444, 0.926812, 1.022895;;, + 19;3; 0.831444, 0.926812, 1.022895;;, + 20;3; 0.831444, 0.926812, 1.022895;;, + 21;3; 0.831444, 0.926812, 1.022895;;, + 22;3; 0.831444, 0.926812, 1.022895;;, + 23;3; 0.831444, 0.926812, 1.022895;;, + 24;3; 0.831444, 0.926812, 1.022895;;, + 25;3; 0.831444, 0.926812, 1.022895;;, + 26;3; 0.831444, 0.926812, 1.022895;;, + 27;3; 0.831444, 0.926812, 1.022895;;, + 28;3; 0.831444, 0.926812, 1.022895;;, + 29;3; 0.831444, 0.926812, 1.022895;;, + 30;3; 0.831444, 0.926812, 1.022895;;, + 31;3; 0.831444, 0.926812, 1.022895;;, + 32;3; 0.831444, 0.926812, 1.022895;;, + 33;3; 0.831444, 0.926812, 1.022895;;, + 34;3; 0.831444, 0.926812, 1.022895;;, + 35;3; 0.831444, 0.926812, 1.022895;;, + 36;3; 0.831444, 0.926812, 1.022895;;, + 37;3; 0.831444, 0.926812, 1.022895;;, + 38;3; 0.831444, 0.926812, 1.022895;;, + 39;3; 0.831444, 0.926812, 1.022895;;, + 40;3; 0.831444, 0.926812, 1.022895;;, + 41;3; 0.831444, 0.926812, 1.022895;;, + 42;3; 0.831444, 0.926812, 1.022895;;, + 43;3; 0.831444, 0.926812, 1.022895;;, + 44;3; 0.831444, 0.926812, 1.022895;;, + 45;3; 0.831444, 0.926812, 1.022895;;, + 46;3; 0.831444, 0.926812, 1.022895;;, + 47;3; 0.831444, 0.926812, 1.022895;;, + 48;3; 0.831444, 0.926812, 1.022895;;, + 49;3; 0.831444, 0.926812, 1.022895;;, + 50;3; 0.831444, 0.926812, 1.022895;;, + 51;3; 0.831444, 0.926812, 1.022895;;, + 52;3; 0.831444, 0.926812, 1.022895;;, + 53;3; 0.831444, 0.926812, 1.022895;;, + 54;3; 0.831444, 0.926812, 1.022895;;, + 55;3; 0.831444, 0.926812, 1.022895;;, + 56;3; 0.831444, 0.926812, 1.022895;;, + 57;3; 0.831444, 0.926812, 1.022895;;, + 58;3; 0.831444, 0.926812, 1.022895;;, + 59;3; 0.831444, 0.926812, 1.022895;;, + 60;3; 0.831444, 0.926812, 1.022895;;, + 61;3; 0.831444, 0.926812, 1.022895;;, + 62;3; 0.831444, 0.926812, 1.022895;;, + 63;3; 0.831444, 0.926812, 1.022895;;, + 64;3; 0.831444, 0.926812, 1.022895;;, + 65;3; 0.831444, 0.926812, 1.022895;;, + 66;3; 0.831444, 0.926812, 1.022895;;, + 67;3; 0.831444, 0.926812, 1.022895;;, + 68;3; 0.831444, 0.926812, 1.022895;;, + 69;3; 0.831444, 0.926812, 1.022895;;, + 70;3; 0.831444, 0.926812, 1.022895;;, + 71;3; 0.831444, 0.926812, 1.022895;;, + 72;3; 0.831444, 0.926812, 1.022895;;, + 73;3; 0.831444, 0.926812, 1.022895;;, + 74;3; 0.831444, 0.926812, 1.022895;;, + 75;3; 0.831444, 0.926812, 1.022895;;, + 76;3; 0.831444, 0.926812, 1.022895;;, + 77;3; 0.831444, 0.926812, 1.022895;;, + 78;3; 0.831444, 0.926812, 1.022895;;, + 79;3; 0.831444, 0.926812, 1.022895;;; + } + AnimationKey { // Position + 2; + 80; + 0;3; 0.351826, 1.619185,-1.628760;;, + 1;3; 0.351826, 1.619185,-1.628760;;, + 2;3; 0.351826, 1.619185,-1.628760;;, + 3;3; 0.351826, 1.619185,-1.628760;;, + 4;3; 0.351826, 1.619185,-1.628760;;, + 5;3; 0.351826, 1.619185,-1.628760;;, + 6;3; 0.351826, 1.619185,-1.628760;;, + 7;3; 0.351826, 1.619185,-1.628760;;, + 8;3; 0.351826, 1.619185,-1.628760;;, + 9;3; 0.351826, 1.619185,-1.628760;;, + 10;3; 0.351826, 1.619185,-1.628760;;, + 11;3; 0.351826, 1.619185,-1.628760;;, + 12;3; 0.351826, 1.619185,-1.628760;;, + 13;3; 0.351826, 1.619185,-1.628760;;, + 14;3; 0.351826, 1.619185,-1.628760;;, + 15;3; 0.351826, 1.619185,-1.628760;;, + 16;3; 0.351826, 1.619185,-1.628760;;, + 17;3; 0.351826, 1.619185,-1.628760;;, + 18;3; 0.351826, 1.619185,-1.628760;;, + 19;3; 0.351826, 1.619185,-1.628760;;, + 20;3; 0.351826, 1.619185,-1.628760;;, + 21;3; 0.351826, 1.619185,-1.628760;;, + 22;3; 0.351826, 1.619185,-1.628760;;, + 23;3; 0.351826, 1.619185,-1.628760;;, + 24;3; 0.351826, 1.619185,-1.628760;;, + 25;3; 0.351826, 1.619185,-1.628760;;, + 26;3; 0.351826, 1.619185,-1.628760;;, + 27;3; 0.351826, 1.619185,-1.628760;;, + 28;3; 0.351826, 1.619185,-1.628760;;, + 29;3; 0.351826, 1.619185,-1.628760;;, + 30;3; 0.351826, 1.619185,-1.628760;;, + 31;3; 0.351826, 1.619185,-1.628760;;, + 32;3; 0.351826, 1.619185,-1.628760;;, + 33;3; 0.351826, 1.619185,-1.628760;;, + 34;3; 0.351826, 1.619185,-1.628760;;, + 35;3; 0.351826, 1.619185,-1.628760;;, + 36;3; 0.351826, 1.619185,-1.628760;;, + 37;3; 0.351826, 1.619185,-1.628760;;, + 38;3; 0.351826, 1.619185,-1.628760;;, + 39;3; 0.351826, 1.619185,-1.628760;;, + 40;3; 0.351826, 1.619185,-1.628760;;, + 41;3; 0.351826, 1.619185,-1.628760;;, + 42;3; 0.351826, 1.619185,-1.628760;;, + 43;3; 0.351826, 1.619185,-1.628760;;, + 44;3; 0.351826, 1.619185,-1.628760;;, + 45;3; 0.351826, 1.619185,-1.628760;;, + 46;3; 0.351826, 1.619185,-1.628760;;, + 47;3; 0.351826, 1.619185,-1.628760;;, + 48;3; 0.351826, 1.619185,-1.628760;;, + 49;3; 0.351826, 1.619185,-1.628760;;, + 50;3; 0.351826, 1.619185,-1.628760;;, + 51;3; 0.351826, 1.619185,-1.628760;;, + 52;3; 0.351826, 1.619185,-1.628760;;, + 53;3; 0.351826, 1.619185,-1.628760;;, + 54;3; 0.351826, 1.619185,-1.628760;;, + 55;3; 0.351826, 1.619185,-1.628760;;, + 56;3; 0.351826, 1.619185,-1.628760;;, + 57;3; 0.351826, 1.619185,-1.628760;;, + 58;3; 0.351826, 1.619185,-1.628760;;, + 59;3; 0.351826, 1.619185,-1.628760;;, + 60;3; 0.351826, 1.619185,-1.628760;;, + 61;3; 0.351826, 1.619185,-1.628760;;, + 62;3; 0.351826, 1.619185,-1.628760;;, + 63;3; 0.351826, 1.619185,-1.628760;;, + 64;3; 0.351826, 1.619185,-1.628760;;, + 65;3; 0.351826, 1.619185,-1.628760;;, + 66;3; 0.351826, 1.619185,-1.628760;;, + 67;3; 0.351826, 1.619185,-1.628760;;, + 68;3; 0.351826, 1.619185,-1.628760;;, + 69;3; 0.351826, 1.619185,-1.628760;;, + 70;3; 0.351826, 1.619185,-1.628760;;, + 71;3; 0.351826, 1.619185,-1.628760;;, + 72;3; 0.351826, 1.619185,-1.628760;;, + 73;3; 0.351826, 1.619185,-1.628760;;, + 74;3; 0.351826, 1.619185,-1.628760;;, + 75;3; 0.351826, 1.619185,-1.628760;;, + 76;3; 0.351826, 1.619185,-1.628760;;, + 77;3; 0.351826, 1.619185,-1.628760;;, + 78;3; 0.351826, 1.619185,-1.628760;;, + 79;3; 0.351826, 1.619185,-1.628760;;; + } + } + Animation { + {Cube_004} + AnimationKey { // Rotation + 0; + 80; + 0;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 1;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 2;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 3;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 4;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 5;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 6;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 7;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 8;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 9;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 10;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 11;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 12;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 13;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 14;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 15;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 16;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 17;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 18;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 19;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 20;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 21;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 22;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 23;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 24;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 25;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 26;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 27;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 28;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 29;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 30;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 31;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 32;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 33;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 34;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 35;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 36;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 37;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 38;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 39;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 40;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 41;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 42;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 43;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 44;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 45;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 46;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 47;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 48;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 49;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 50;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 51;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 52;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 53;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 54;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 55;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 56;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 57;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 58;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 59;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 60;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 61;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 62;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 63;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 64;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 65;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 66;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 67;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 68;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 69;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 70;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 71;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 72;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 73;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 74;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 75;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 76;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 77;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 78;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 79;4;-0.706700, 0.000000, 0.000000, 0.707513;;; + } + AnimationKey { // Scale + 1; + 80; + 0;3; 0.472154, 0.647698, 0.278316;;, + 1;3; 0.472154, 0.647698, 0.278316;;, + 2;3; 0.472154, 0.647698, 0.278316;;, + 3;3; 0.472154, 0.647698, 0.278316;;, + 4;3; 0.472154, 0.647698, 0.278316;;, + 5;3; 0.472154, 0.647698, 0.278316;;, + 6;3; 0.472154, 0.647698, 0.278316;;, + 7;3; 0.472154, 0.647698, 0.278316;;, + 8;3; 0.472154, 0.647698, 0.278316;;, + 9;3; 0.472154, 0.647698, 0.278316;;, + 10;3; 0.472154, 0.647698, 0.278316;;, + 11;3; 0.472154, 0.647698, 0.278316;;, + 12;3; 0.472154, 0.647698, 0.278316;;, + 13;3; 0.472154, 0.647698, 0.278316;;, + 14;3; 0.472154, 0.647698, 0.278316;;, + 15;3; 0.472154, 0.647698, 0.278316;;, + 16;3; 0.472154, 0.647698, 0.278316;;, + 17;3; 0.472154, 0.647698, 0.278316;;, + 18;3; 0.472154, 0.647698, 0.278316;;, + 19;3; 0.472154, 0.647698, 0.278316;;, + 20;3; 0.472154, 0.647698, 0.278316;;, + 21;3; 0.472154, 0.647698, 0.278316;;, + 22;3; 0.472154, 0.647698, 0.278316;;, + 23;3; 0.472154, 0.647698, 0.278316;;, + 24;3; 0.472154, 0.647698, 0.278316;;, + 25;3; 0.472154, 0.647698, 0.278316;;, + 26;3; 0.472154, 0.647698, 0.278316;;, + 27;3; 0.472154, 0.647698, 0.278316;;, + 28;3; 0.472154, 0.647698, 0.278316;;, + 29;3; 0.472154, 0.647698, 0.278316;;, + 30;3; 0.472154, 0.647698, 0.278316;;, + 31;3; 0.472154, 0.647698, 0.278316;;, + 32;3; 0.472154, 0.647698, 0.278316;;, + 33;3; 0.472154, 0.647698, 0.278316;;, + 34;3; 0.472154, 0.647698, 0.278316;;, + 35;3; 0.472154, 0.647698, 0.278316;;, + 36;3; 0.472154, 0.647698, 0.278316;;, + 37;3; 0.472154, 0.647698, 0.278316;;, + 38;3; 0.472154, 0.647698, 0.278316;;, + 39;3; 0.472154, 0.647698, 0.278316;;, + 40;3; 0.472154, 0.647698, 0.278316;;, + 41;3; 0.472154, 0.647698, 0.278316;;, + 42;3; 0.472154, 0.647698, 0.278316;;, + 43;3; 0.472154, 0.647698, 0.278316;;, + 44;3; 0.472154, 0.647698, 0.278316;;, + 45;3; 0.472154, 0.647698, 0.278316;;, + 46;3; 0.472154, 0.647698, 0.278316;;, + 47;3; 0.472154, 0.647698, 0.278316;;, + 48;3; 0.472154, 0.647698, 0.278316;;, + 49;3; 0.472154, 0.647698, 0.278316;;, + 50;3; 0.472154, 0.647698, 0.278316;;, + 51;3; 0.472154, 0.647698, 0.278316;;, + 52;3; 0.472154, 0.647698, 0.278316;;, + 53;3; 0.472154, 0.647698, 0.278316;;, + 54;3; 0.472154, 0.647698, 0.278316;;, + 55;3; 0.472154, 0.647698, 0.278316;;, + 56;3; 0.472154, 0.647698, 0.278316;;, + 57;3; 0.472154, 0.647698, 0.278316;;, + 58;3; 0.472154, 0.647698, 0.278316;;, + 59;3; 0.472154, 0.647698, 0.278316;;, + 60;3; 0.472154, 0.647698, 0.278316;;, + 61;3; 0.472154, 0.647698, 0.278316;;, + 62;3; 0.472154, 0.647698, 0.278316;;, + 63;3; 0.472154, 0.647698, 0.278316;;, + 64;3; 0.472154, 0.647698, 0.278316;;, + 65;3; 0.472154, 0.647698, 0.278316;;, + 66;3; 0.472154, 0.647698, 0.278316;;, + 67;3; 0.472154, 0.647698, 0.278316;;, + 68;3; 0.472154, 0.647698, 0.278316;;, + 69;3; 0.472154, 0.647698, 0.278316;;, + 70;3; 0.472154, 0.647698, 0.278316;;, + 71;3; 0.472154, 0.647698, 0.278316;;, + 72;3; 0.472154, 0.647698, 0.278316;;, + 73;3; 0.472154, 0.647698, 0.278316;;, + 74;3; 0.472154, 0.647698, 0.278316;;, + 75;3; 0.472154, 0.647698, 0.278316;;, + 76;3; 0.472154, 0.647698, 0.278316;;, + 77;3; 0.472154, 0.647698, 0.278316;;, + 78;3; 0.472154, 0.647698, 0.278316;;, + 79;3; 0.472154, 0.647698, 0.278316;;; + } + AnimationKey { // Position + 2; + 80; + 0;3; 0.350341, 2.911684,-1.628760;;, + 1;3; 0.350341, 2.911684,-1.628760;;, + 2;3; 0.350341, 2.911684,-1.628760;;, + 3;3; 0.350341, 2.911684,-1.628760;;, + 4;3; 0.350341, 2.911684,-1.628760;;, + 5;3; 0.350341, 2.911684,-1.628760;;, + 6;3; 0.350341, 2.911684,-1.628760;;, + 7;3; 0.350341, 2.911684,-1.628760;;, + 8;3; 0.350341, 2.911684,-1.628760;;, + 9;3; 0.350341, 2.911684,-1.628760;;, + 10;3; 0.350341, 2.911684,-1.628760;;, + 11;3; 0.350341, 2.911684,-1.628760;;, + 12;3; 0.350341, 2.911684,-1.628760;;, + 13;3; 0.350341, 2.911684,-1.628760;;, + 14;3; 0.350341, 2.911684,-1.628760;;, + 15;3; 0.350341, 2.911684,-1.628760;;, + 16;3; 0.350341, 2.911684,-1.628760;;, + 17;3; 0.350341, 2.911684,-1.628760;;, + 18;3; 0.350341, 2.911684,-1.628760;;, + 19;3; 0.350341, 2.911684,-1.628760;;, + 20;3; 0.350341, 2.911684,-1.628760;;, + 21;3; 0.350341, 2.911684,-1.628760;;, + 22;3; 0.350341, 2.911684,-1.628760;;, + 23;3; 0.350341, 2.911684,-1.628760;;, + 24;3; 0.350341, 2.911684,-1.628760;;, + 25;3; 0.350341, 2.911684,-1.628760;;, + 26;3; 0.350341, 2.911684,-1.628760;;, + 27;3; 0.350341, 2.911684,-1.628760;;, + 28;3; 0.350341, 2.911684,-1.628760;;, + 29;3; 0.350341, 2.911684,-1.628760;;, + 30;3; 0.350341, 2.911684,-1.628760;;, + 31;3; 0.350341, 2.911684,-1.628760;;, + 32;3; 0.350341, 2.911684,-1.628760;;, + 33;3; 0.350341, 2.911684,-1.628760;;, + 34;3; 0.350341, 2.911684,-1.628760;;, + 35;3; 0.350341, 2.911684,-1.628760;;, + 36;3; 0.350341, 2.911684,-1.628760;;, + 37;3; 0.350341, 2.911684,-1.628760;;, + 38;3; 0.350341, 2.911684,-1.628760;;, + 39;3; 0.350341, 2.911684,-1.628760;;, + 40;3; 0.350341, 2.911684,-1.628760;;, + 41;3; 0.350341, 2.911684,-1.628760;;, + 42;3; 0.350341, 2.911684,-1.628760;;, + 43;3; 0.350341, 2.911684,-1.628760;;, + 44;3; 0.350341, 2.911684,-1.628760;;, + 45;3; 0.350341, 2.911684,-1.628760;;, + 46;3; 0.350341, 2.911684,-1.628760;;, + 47;3; 0.350341, 2.911684,-1.628760;;, + 48;3; 0.350341, 2.911684,-1.628760;;, + 49;3; 0.350341, 2.911684,-1.628760;;, + 50;3; 0.350341, 2.911684,-1.628760;;, + 51;3; 0.350341, 2.911684,-1.628760;;, + 52;3; 0.350341, 2.911684,-1.628760;;, + 53;3; 0.350341, 2.911684,-1.628760;;, + 54;3; 0.350341, 2.911684,-1.628760;;, + 55;3; 0.350341, 2.911684,-1.628760;;, + 56;3; 0.350341, 2.911684,-1.628760;;, + 57;3; 0.350341, 2.911684,-1.628760;;, + 58;3; 0.350341, 2.911684,-1.628760;;, + 59;3; 0.350341, 2.911684,-1.628760;;, + 60;3; 0.350341, 2.911684,-1.628760;;, + 61;3; 0.350341, 2.911684,-1.628760;;, + 62;3; 0.350341, 2.911684,-1.628760;;, + 63;3; 0.350341, 2.911684,-1.628760;;, + 64;3; 0.350341, 2.911684,-1.628760;;, + 65;3; 0.350341, 2.911684,-1.628760;;, + 66;3; 0.350341, 2.911684,-1.628760;;, + 67;3; 0.350341, 2.911684,-1.628760;;, + 68;3; 0.350341, 2.911684,-1.628760;;, + 69;3; 0.350341, 2.911684,-1.628760;;, + 70;3; 0.350341, 2.911684,-1.628760;;, + 71;3; 0.350341, 2.911684,-1.628760;;, + 72;3; 0.350341, 2.911684,-1.628760;;, + 73;3; 0.350341, 2.911684,-1.628760;;, + 74;3; 0.350341, 2.911684,-1.628760;;, + 75;3; 0.350341, 2.911684,-1.628760;;, + 76;3; 0.350341, 2.911684,-1.628760;;, + 77;3; 0.350341, 2.911684,-1.628760;;, + 78;3; 0.350341, 2.911684,-1.628760;;, + 79;3; 0.350341, 2.911684,-1.628760;;; + } + } + Animation { + {Cube_005} + AnimationKey { // Rotation + 0; + 80; + 0;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 1;4;-0.706699,-0.000970, 0.000971, 0.707513;;, + 2;4;-0.706689,-0.003901, 0.003906, 0.707503;;, + 3;4;-0.706644,-0.008800, 0.008811, 0.707459;;, + 4;4;-0.706525,-0.015623, 0.015643, 0.707342;;, + 5;4;-0.706281,-0.024268, 0.024300, 0.707099;;, + 6;4;-0.705851,-0.034560, 0.034605, 0.706670;;, + 7;4;-0.705182,-0.046243, 0.046303, 0.706001;;, + 8;4;-0.704230,-0.058981, 0.059057, 0.705048;;, + 9;4;-0.702981,-0.072371, 0.072463, 0.703796;;, + 10;4;-0.701449,-0.085964, 0.086072, 0.702261;;, + 11;4;-0.699687,-0.099297, 0.099422, 0.700495;;, + 12;4;-0.697779,-0.111931, 0.112069, 0.698582;;, + 13;4;-0.695831,-0.123473, 0.123624, 0.696628;;, + 14;4;-0.693958,-0.133607, 0.133768, 0.694750;;, + 15;4;-0.692271,-0.142094, 0.142264, 0.693059;;, + 16;4;-0.690866,-0.148776, 0.148952, 0.691652;;, + 17;4;-0.689817,-0.153565, 0.153744, 0.690603;;, + 18;4;-0.689173,-0.156427, 0.156609, 0.689960;;, + 19;4;-0.688955,-0.157374, 0.157555, 0.689747;;, + 20;4;-0.690481,-0.150503, 0.150675, 0.691290;;, + 21;4;-0.694667,-0.129741, 0.129886, 0.695510;;, + 22;4;-0.700143,-0.095751, 0.095854, 0.701030;;, + 23;4;-0.704802,-0.050976, 0.051022, 0.705728;;, + 24;4;-0.706633,-0.000025, 0.000008, 0.707580;;, + 25;4;-0.704797, 0.050917,-0.050997, 0.705739;;, + 26;4;-0.700136, 0.095673,-0.095805, 0.701055;;, + 27;4;-0.694661, 0.129640,-0.129811, 0.695549;;, + 28;4;-0.690477, 0.150386,-0.150579, 0.691340;;, + 29;4;-0.688950, 0.157251,-0.157451, 0.689804;;, + 30;4;-0.690460, 0.150464,-0.150656, 0.691323;;, + 31;4;-0.694603, 0.129950,-0.130120, 0.695492;;, + 32;4;-0.700040, 0.096361,-0.096494, 0.700962;;, + 33;4;-0.704707, 0.052104,-0.052186, 0.705656;;, + 34;4;-0.706626, 0.001730,-0.001751, 0.707583;;, + 35;4;-0.704958,-0.048653, 0.048694, 0.705901;;, + 36;4;-0.700512,-0.092931, 0.093025, 0.701422;;, + 37;4;-0.695244,-0.126545, 0.126680, 0.696114;;, + 38;4;-0.691205,-0.147078, 0.147237, 0.692045;;, + 39;4;-0.689730,-0.153872, 0.154040, 0.690556;;, + 40;4;-0.691193,-0.147149, 0.147310, 0.692025;;, + 41;4;-0.695199,-0.126835, 0.126976, 0.696052;;, + 42;4;-0.700439,-0.093584, 0.093690, 0.701320;;, + 43;4;-0.704898,-0.049788, 0.049844, 0.705801;;, + 44;4;-0.706652, 0.000053,-0.000054, 0.707561;;, + 45;4;-0.704894, 0.049900,-0.049959, 0.705789;;, + 46;4;-0.700430, 0.093712,-0.093822, 0.701294;;, + 47;4;-0.695184, 0.126979,-0.127127, 0.696013;;, + 48;4;-0.691173, 0.147306,-0.147476, 0.691976;;, + 49;4;-0.689709, 0.154034,-0.154211, 0.690503;;, + 50;4;-0.689876, 0.153283,-0.153460, 0.690670;;, + 51;4;-0.690374, 0.151018,-0.151192, 0.691172;;, + 52;4;-0.691192, 0.147220,-0.147390, 0.691994;;, + 53;4;-0.692304, 0.141884,-0.142048, 0.693114;;, + 54;4;-0.693673, 0.135015,-0.135171, 0.694491;;, + 55;4;-0.695247, 0.126635,-0.126782, 0.696075;;, + 56;4;-0.696965, 0.116783,-0.116919, 0.697804;;, + 57;4;-0.698754, 0.105524,-0.105647, 0.699604;;, + 58;4;-0.700534, 0.092944,-0.093053, 0.701395;;, + 59;4;-0.702221, 0.079159,-0.079251, 0.703093;;, + 60;4;-0.703732, 0.064312,-0.064387, 0.704613;;, + 61;4;-0.704990, 0.048575,-0.048632, 0.705879;;, + 62;4;-0.705927, 0.032145,-0.032182, 0.706823;;, + 63;4;-0.706493, 0.015240,-0.015257, 0.707392;;, + 64;4;-0.706654,-0.001905, 0.001908, 0.707554;;, + 65;4;-0.706400,-0.019050, 0.019073, 0.707299;;, + 66;4;-0.705743,-0.035951, 0.035994, 0.706639;;, + 67;4;-0.704717,-0.052376, 0.052439, 0.705606;;, + 68;4;-0.703375,-0.068106, 0.068187, 0.704256;;, + 69;4;-0.701784,-0.082945, 0.083043, 0.702655;;, + 70;4;-0.700022,-0.096721, 0.096835, 0.700883;;, + 71;4;-0.698175,-0.109292, 0.109420, 0.699024;;, + 72;4;-0.696325,-0.120542, 0.120683, 0.697163;;, + 73;4;-0.694554,-0.130384, 0.130536, 0.695381;;, + 74;4;-0.692934,-0.138756, 0.138917, 0.693752;;, + 75;4;-0.691528,-0.145617, 0.145786, 0.692337;;, + 76;4;-0.690387,-0.150948, 0.151122, 0.691189;;, + 77;4;-0.689549,-0.154741, 0.154919, 0.690346;;, + 78;4;-0.689039,-0.157004, 0.157185, 0.689832;;, + 79;4;-0.688868,-0.157754, 0.157935, 0.689660;;; + } + AnimationKey { // Scale + 1; + 80; + 0;3; 0.195703, 0.182964, 0.780890;;, + 1;3; 0.195703, 0.182964, 0.780890;;, + 2;3; 0.195703, 0.182964, 0.780890;;, + 3;3; 0.195703, 0.182964, 0.780890;;, + 4;3; 0.195703, 0.182964, 0.780890;;, + 5;3; 0.195703, 0.182964, 0.780890;;, + 6;3; 0.195703, 0.182964, 0.780890;;, + 7;3; 0.195703, 0.182964, 0.780890;;, + 8;3; 0.195703, 0.182964, 0.780890;;, + 9;3; 0.195703, 0.182964, 0.780890;;, + 10;3; 0.195703, 0.182964, 0.780890;;, + 11;3; 0.195703, 0.182964, 0.780890;;, + 12;3; 0.195703, 0.182964, 0.780890;;, + 13;3; 0.195703, 0.182964, 0.780890;;, + 14;3; 0.195703, 0.182964, 0.780890;;, + 15;3; 0.195703, 0.182964, 0.780890;;, + 16;3; 0.195703, 0.182964, 0.780890;;, + 17;3; 0.195703, 0.182964, 0.780890;;, + 18;3; 0.195703, 0.182964, 0.780890;;, + 19;3; 0.195703, 0.182964, 0.780890;;, + 20;3; 0.195703, 0.182964, 0.780890;;, + 21;3; 0.195703, 0.182964, 0.780890;;, + 22;3; 0.195703, 0.182964, 0.780890;;, + 23;3; 0.195703, 0.182964, 0.780890;;, + 24;3; 0.195703, 0.182964, 0.780890;;, + 25;3; 0.195703, 0.182964, 0.780890;;, + 26;3; 0.195703, 0.182964, 0.780890;;, + 27;3; 0.195703, 0.182964, 0.780890;;, + 28;3; 0.195703, 0.182964, 0.780890;;, + 29;3; 0.195703, 0.182964, 0.780890;;, + 30;3; 0.195703, 0.182964, 0.780890;;, + 31;3; 0.195703, 0.182964, 0.780890;;, + 32;3; 0.195703, 0.182964, 0.780890;;, + 33;3; 0.195703, 0.182964, 0.780890;;, + 34;3; 0.195703, 0.182964, 0.780890;;, + 35;3; 0.195703, 0.182964, 0.780890;;, + 36;3; 0.195703, 0.182964, 0.780890;;, + 37;3; 0.195703, 0.182964, 0.780890;;, + 38;3; 0.195703, 0.182964, 0.780890;;, + 39;3; 0.195703, 0.182964, 0.780890;;, + 40;3; 0.195703, 0.182964, 0.780890;;, + 41;3; 0.195703, 0.182964, 0.780890;;, + 42;3; 0.195703, 0.182964, 0.780890;;, + 43;3; 0.195703, 0.182964, 0.780890;;, + 44;3; 0.195703, 0.182964, 0.780890;;, + 45;3; 0.195703, 0.182964, 0.780890;;, + 46;3; 0.195703, 0.182964, 0.780890;;, + 47;3; 0.195703, 0.182964, 0.780890;;, + 48;3; 0.195703, 0.182964, 0.780890;;, + 49;3; 0.195703, 0.182964, 0.780890;;, + 50;3; 0.195703, 0.182964, 0.780890;;, + 51;3; 0.195703, 0.182964, 0.780890;;, + 52;3; 0.195703, 0.182964, 0.780890;;, + 53;3; 0.195703, 0.182964, 0.780890;;, + 54;3; 0.195703, 0.182964, 0.780890;;, + 55;3; 0.195703, 0.182964, 0.780890;;, + 56;3; 0.195703, 0.182964, 0.780890;;, + 57;3; 0.195703, 0.182964, 0.780890;;, + 58;3; 0.195703, 0.182964, 0.780890;;, + 59;3; 0.195703, 0.182964, 0.780890;;, + 60;3; 0.195703, 0.182964, 0.780890;;, + 61;3; 0.195703, 0.182964, 0.780890;;, + 62;3; 0.195703, 0.182964, 0.780890;;, + 63;3; 0.195703, 0.182964, 0.780890;;, + 64;3; 0.195703, 0.182964, 0.780890;;, + 65;3; 0.195703, 0.182964, 0.780890;;, + 66;3; 0.195703, 0.182964, 0.780890;;, + 67;3; 0.195703, 0.182964, 0.780890;;, + 68;3; 0.195703, 0.182964, 0.780890;;, + 69;3; 0.195703, 0.182964, 0.780890;;, + 70;3; 0.195703, 0.182964, 0.780890;;, + 71;3; 0.195703, 0.182964, 0.780890;;, + 72;3; 0.195703, 0.182964, 0.780890;;, + 73;3; 0.195703, 0.182964, 0.780890;;, + 74;3; 0.195703, 0.182964, 0.780890;;, + 75;3; 0.195703, 0.182964, 0.780890;;, + 76;3; 0.195703, 0.182964, 0.780890;;, + 77;3; 0.195703, 0.182964, 0.780890;;, + 78;3; 0.195703, 0.182964, 0.780890;;, + 79;3; 0.195703, 0.182964, 0.780890;;; + } + AnimationKey { // Position + 2; + 80; + 0;3;-0.444974,-0.720049,-6.328409;;, + 1;3;-0.444974,-0.721787,-6.327650;;, + 2;3;-0.444974,-0.727041,-6.325339;;, + 3;3;-0.444974,-0.735822,-6.321445;;, + 4;3;-0.444974,-0.748055,-6.315963;;, + 5;3;-0.444974,-0.763561,-6.308934;;, + 6;3;-0.444974,-0.782029,-6.300446;;, + 7;3;-0.444974,-0.803011,-6.290648;;, + 8;3;-0.444974,-0.825915,-6.279746;;, + 9;3;-0.444974,-0.850027,-6.268005;;, + 10;3;-0.444974,-0.874552,-6.255732;;, + 11;3;-0.444974,-0.898664,-6.243254;;, + 12;3;-0.444974,-0.921567,-6.230899;;, + 13;3;-0.444974,-0.942547,-6.218971;;, + 14;3;-0.444974,-0.961014,-6.207732;;, + 15;3;-0.444974,-0.976517,-6.197392;;, + 16;3;-0.444974,-0.988749,-6.188108;;, + 17;3;-0.444974,-0.997528,-6.179986;;, + 18;3;-0.444974,-1.002782,-6.173084;;, + 19;3;-0.444974,-1.004519,-6.167428;;, + 20;3;-0.444974,-0.997850,-6.162767;;, + 21;3;-0.444974,-0.977778,-6.158899;;, + 22;3;-0.444974,-0.945143,-6.155876;;, + 23;3;-0.444974,-0.902458,-6.153681;;, + 24;3;-0.444974,-0.854104,-6.152203;;, + 25;3;-0.444974,-0.805750,-6.151237;;, + 26;3;-0.444974,-0.763066,-6.150527;;, + 27;3;-0.444974,-0.730432,-6.149829;;, + 28;3;-0.444974,-0.710360,-6.148953;;, + 29;3;-0.444974,-0.703691,-6.147783;;, + 30;3;-0.444974,-0.707978,-6.146466;;, + 31;3;-0.444974,-0.720880,-6.145220;;, + 32;3;-0.444974,-0.741858,-6.144074;;, + 33;3;-0.444974,-0.769296,-6.143066;;, + 34;3;-0.444974,-0.800378,-6.142225;;, + 35;3;-0.444974,-0.831462,-6.141570;;, + 36;3;-0.444974,-0.858902,-6.141101;;, + 37;3;-0.444974,-0.879883,-6.140800;;, + 38;3;-0.444974,-0.892787,-6.140642;;, + 39;3;-0.444974,-0.897076,-6.140595;;, + 40;3;-0.444974,-0.885800,-6.141282;;, + 41;3;-0.444974,-0.851868,-6.143350;;, + 42;3;-0.444974,-0.796700,-6.146711;;, + 43;3;-0.444974,-0.724548,-6.151108;;, + 44;3;-0.444974,-0.642815,-6.156090;;, + 45;3;-0.444974,-0.561082,-6.161071;;, + 46;3;-0.444974,-0.488931,-6.165468;;, + 47;3;-0.444974,-0.433764,-6.168829;;, + 48;3;-0.444974,-0.399831,-6.170897;;, + 49;3;-0.444974,-0.388556,-6.171584;;, + 50;3;-0.444974,-0.390021,-6.171462;;, + 51;3;-0.444974,-0.394444,-6.171092;;, + 52;3;-0.444974,-0.401851,-6.170472;;, + 53;3;-0.444974,-0.412244,-6.169601;;, + 54;3;-0.444974,-0.425600,-6.168483;;, + 55;3;-0.444974,-0.441860,-6.167122;;, + 56;3;-0.444974,-0.460930,-6.165525;;, + 57;3;-0.444974,-0.482674,-6.163705;;, + 58;3;-0.444974,-0.506906,-6.161676;;, + 59;3;-0.444974,-0.533396,-6.159459;;, + 60;3;-0.444974,-0.561863,-6.157075;;, + 61;3;-0.444974,-0.591978,-6.154554;;, + 62;3;-0.444974,-0.623372,-6.151925;;, + 63;3;-0.444974,-0.655638,-6.149223;;, + 64;3;-0.444974,-0.688348,-6.146485;;, + 65;3;-0.444974,-0.721058,-6.143746;;, + 66;3;-0.444974,-0.753326,-6.141044;;, + 67;3;-0.444974,-0.784720,-6.138416;;, + 68;3;-0.444974,-0.814837,-6.135894;;, + 69;3;-0.444974,-0.843306,-6.133511;;, + 70;3;-0.444974,-0.869798,-6.131293;;, + 71;3;-0.444974,-0.894033,-6.129264;;, + 72;3;-0.444974,-0.915779,-6.127444;;, + 73;3;-0.444974,-0.934852,-6.125847;;, + 74;3;-0.444974,-0.951114,-6.124486;;, + 75;3;-0.444974,-0.964472,-6.123368;;, + 76;3;-0.444974,-0.974866,-6.122498;;, + 77;3;-0.444974,-0.982274,-6.121878;;, + 78;3;-0.444974,-0.986698,-6.121508;;, + 79;3;-0.444974,-0.988163,-6.121385;;; + } + } + Animation { + {Cube_006} + AnimationKey { // Rotation + 0; + 80; + 0;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 1;4;-0.706699,-0.000970, 0.000971, 0.707513;;, + 2;4;-0.706689,-0.003901, 0.003906, 0.707503;;, + 3;4;-0.706644,-0.008800, 0.008811, 0.707459;;, + 4;4;-0.706525,-0.015623, 0.015643, 0.707342;;, + 5;4;-0.706281,-0.024268, 0.024300, 0.707099;;, + 6;4;-0.705851,-0.034560, 0.034605, 0.706670;;, + 7;4;-0.705182,-0.046243, 0.046303, 0.706001;;, + 8;4;-0.704230,-0.058981, 0.059057, 0.705048;;, + 9;4;-0.702981,-0.072371, 0.072463, 0.703796;;, + 10;4;-0.701449,-0.085964, 0.086072, 0.702261;;, + 11;4;-0.699687,-0.099297, 0.099422, 0.700495;;, + 12;4;-0.697779,-0.111931, 0.112069, 0.698582;;, + 13;4;-0.695831,-0.123473, 0.123624, 0.696628;;, + 14;4;-0.693958,-0.133607, 0.133768, 0.694750;;, + 15;4;-0.692271,-0.142094, 0.142264, 0.693059;;, + 16;4;-0.690866,-0.148776, 0.148952, 0.691652;;, + 17;4;-0.689817,-0.153565, 0.153744, 0.690603;;, + 18;4;-0.689173,-0.156427, 0.156609, 0.689960;;, + 19;4;-0.688955,-0.157374, 0.157555, 0.689747;;, + 20;4;-0.690481,-0.150503, 0.150675, 0.691290;;, + 21;4;-0.694667,-0.129741, 0.129886, 0.695510;;, + 22;4;-0.700143,-0.095751, 0.095854, 0.701030;;, + 23;4;-0.704802,-0.050976, 0.051022, 0.705728;;, + 24;4;-0.706633,-0.000025, 0.000008, 0.707580;;, + 25;4;-0.704797, 0.050917,-0.050997, 0.705739;;, + 26;4;-0.700136, 0.095673,-0.095805, 0.701055;;, + 27;4;-0.694661, 0.129640,-0.129811, 0.695549;;, + 28;4;-0.690477, 0.150386,-0.150579, 0.691340;;, + 29;4;-0.688950, 0.157251,-0.157451, 0.689804;;, + 30;4;-0.690460, 0.150464,-0.150656, 0.691323;;, + 31;4;-0.694603, 0.129950,-0.130120, 0.695492;;, + 32;4;-0.700040, 0.096361,-0.096494, 0.700962;;, + 33;4;-0.704707, 0.052104,-0.052186, 0.705656;;, + 34;4;-0.706626, 0.001730,-0.001751, 0.707583;;, + 35;4;-0.704958,-0.048653, 0.048694, 0.705901;;, + 36;4;-0.700512,-0.092931, 0.093025, 0.701422;;, + 37;4;-0.695244,-0.126545, 0.126680, 0.696114;;, + 38;4;-0.691205,-0.147078, 0.147237, 0.692045;;, + 39;4;-0.689730,-0.153872, 0.154040, 0.690556;;, + 40;4;-0.691193,-0.147149, 0.147310, 0.692025;;, + 41;4;-0.695199,-0.126835, 0.126976, 0.696052;;, + 42;4;-0.700439,-0.093584, 0.093690, 0.701320;;, + 43;4;-0.704898,-0.049788, 0.049844, 0.705801;;, + 44;4;-0.706652, 0.000053,-0.000054, 0.707561;;, + 45;4;-0.704894, 0.049900,-0.049959, 0.705789;;, + 46;4;-0.700430, 0.093712,-0.093822, 0.701294;;, + 47;4;-0.695184, 0.126979,-0.127127, 0.696013;;, + 48;4;-0.691173, 0.147306,-0.147476, 0.691976;;, + 49;4;-0.689709, 0.154034,-0.154211, 0.690503;;, + 50;4;-0.689876, 0.153283,-0.153460, 0.690670;;, + 51;4;-0.690374, 0.151018,-0.151192, 0.691172;;, + 52;4;-0.691192, 0.147220,-0.147390, 0.691994;;, + 53;4;-0.692304, 0.141884,-0.142048, 0.693114;;, + 54;4;-0.693673, 0.135015,-0.135171, 0.694491;;, + 55;4;-0.695247, 0.126635,-0.126782, 0.696075;;, + 56;4;-0.696965, 0.116783,-0.116919, 0.697804;;, + 57;4;-0.698754, 0.105524,-0.105647, 0.699604;;, + 58;4;-0.700534, 0.092944,-0.093053, 0.701395;;, + 59;4;-0.702221, 0.079159,-0.079251, 0.703093;;, + 60;4;-0.703732, 0.064312,-0.064387, 0.704613;;, + 61;4;-0.704990, 0.048575,-0.048632, 0.705879;;, + 62;4;-0.705927, 0.032145,-0.032182, 0.706823;;, + 63;4;-0.706493, 0.015240,-0.015257, 0.707392;;, + 64;4;-0.706654,-0.001905, 0.001908, 0.707554;;, + 65;4;-0.706400,-0.019050, 0.019073, 0.707299;;, + 66;4;-0.705743,-0.035951, 0.035994, 0.706639;;, + 67;4;-0.704717,-0.052376, 0.052439, 0.705606;;, + 68;4;-0.703375,-0.068106, 0.068187, 0.704256;;, + 69;4;-0.701784,-0.082945, 0.083043, 0.702655;;, + 70;4;-0.700022,-0.096721, 0.096835, 0.700883;;, + 71;4;-0.698175,-0.109292, 0.109420, 0.699024;;, + 72;4;-0.696325,-0.120542, 0.120683, 0.697163;;, + 73;4;-0.694554,-0.130384, 0.130536, 0.695381;;, + 74;4;-0.692934,-0.138756, 0.138917, 0.693752;;, + 75;4;-0.691528,-0.145617, 0.145786, 0.692337;;, + 76;4;-0.690387,-0.150948, 0.151122, 0.691189;;, + 77;4;-0.689549,-0.154741, 0.154919, 0.690346;;, + 78;4;-0.689039,-0.157004, 0.157185, 0.689832;;, + 79;4;-0.688868,-0.157754, 0.157935, 0.689660;;; + } + AnimationKey { // Scale + 1; + 80; + 0;3; 1.009079, 0.367400, 0.044988;;, + 1;3; 1.009079, 0.367400, 0.044988;;, + 2;3; 1.009079, 0.367400, 0.044988;;, + 3;3; 1.009079, 0.367400, 0.044988;;, + 4;3; 1.009079, 0.367400, 0.044988;;, + 5;3; 1.009079, 0.367400, 0.044988;;, + 6;3; 1.009079, 0.367400, 0.044988;;, + 7;3; 1.009079, 0.367400, 0.044988;;, + 8;3; 1.009079, 0.367400, 0.044988;;, + 9;3; 1.009079, 0.367400, 0.044988;;, + 10;3; 1.009079, 0.367400, 0.044988;;, + 11;3; 1.009079, 0.367400, 0.044988;;, + 12;3; 1.009079, 0.367400, 0.044988;;, + 13;3; 1.009079, 0.367400, 0.044988;;, + 14;3; 1.009079, 0.367400, 0.044988;;, + 15;3; 1.009079, 0.367400, 0.044988;;, + 16;3; 1.009079, 0.367400, 0.044988;;, + 17;3; 1.009080, 0.367400, 0.044988;;, + 18;3; 1.009079, 0.367400, 0.044988;;, + 19;3; 1.009079, 0.367400, 0.044988;;, + 20;3; 1.009079, 0.367400, 0.044988;;, + 21;3; 1.009079, 0.367400, 0.044988;;, + 22;3; 1.009079, 0.367400, 0.044988;;, + 23;3; 1.009079, 0.367400, 0.044988;;, + 24;3; 1.009079, 0.367400, 0.044988;;, + 25;3; 1.009079, 0.367400, 0.044988;;, + 26;3; 1.009079, 0.367400, 0.044988;;, + 27;3; 1.009079, 0.367400, 0.044988;;, + 28;3; 1.009079, 0.367400, 0.044988;;, + 29;3; 1.009079, 0.367400, 0.044988;;, + 30;3; 1.009079, 0.367400, 0.044988;;, + 31;3; 1.009079, 0.367400, 0.044988;;, + 32;3; 1.009079, 0.367400, 0.044988;;, + 33;3; 1.009079, 0.367400, 0.044988;;, + 34;3; 1.009080, 0.367400, 0.044988;;, + 35;3; 1.009079, 0.367400, 0.044988;;, + 36;3; 1.009079, 0.367400, 0.044988;;, + 37;3; 1.009079, 0.367400, 0.044988;;, + 38;3; 1.009079, 0.367400, 0.044988;;, + 39;3; 1.009079, 0.367400, 0.044988;;, + 40;3; 1.009079, 0.367400, 0.044988;;, + 41;3; 1.009079, 0.367400, 0.044988;;, + 42;3; 1.009079, 0.367400, 0.044988;;, + 43;3; 1.009079, 0.367400, 0.044988;;, + 44;3; 1.009079, 0.367400, 0.044988;;, + 45;3; 1.009079, 0.367400, 0.044988;;, + 46;3; 1.009079, 0.367400, 0.044988;;, + 47;3; 1.009079, 0.367400, 0.044988;;, + 48;3; 1.009079, 0.367400, 0.044988;;, + 49;3; 1.009079, 0.367400, 0.044988;;, + 50;3; 1.009079, 0.367400, 0.044988;;, + 51;3; 1.009079, 0.367400, 0.044988;;, + 52;3; 1.009079, 0.367400, 0.044988;;, + 53;3; 1.009079, 0.367400, 0.044988;;, + 54;3; 1.009079, 0.367400, 0.044988;;, + 55;3; 1.009079, 0.367400, 0.044988;;, + 56;3; 1.009080, 0.367400, 0.044988;;, + 57;3; 1.009079, 0.367400, 0.044988;;, + 58;3; 1.009080, 0.367400, 0.044988;;, + 59;3; 1.009079, 0.367400, 0.044988;;, + 60;3; 1.009079, 0.367400, 0.044988;;, + 61;3; 1.009079, 0.367400, 0.044988;;, + 62;3; 1.009080, 0.367400, 0.044988;;, + 63;3; 1.009079, 0.367400, 0.044988;;, + 64;3; 1.009079, 0.367400, 0.044988;;, + 65;3; 1.009079, 0.367400, 0.044988;;, + 66;3; 1.009079, 0.367400, 0.044988;;, + 67;3; 1.009079, 0.367400, 0.044988;;, + 68;3; 1.009080, 0.367400, 0.044988;;, + 69;3; 1.009080, 0.367400, 0.044988;;, + 70;3; 1.009080, 0.367400, 0.044988;;, + 71;3; 1.009079, 0.367400, 0.044988;;, + 72;3; 1.009080, 0.367400, 0.044988;;, + 73;3; 1.009079, 0.367400, 0.044988;;, + 74;3; 1.009079, 0.367400, 0.044988;;, + 75;3; 1.009079, 0.367400, 0.044988;;, + 76;3; 1.009079, 0.367400, 0.044988;;, + 77;3; 1.009079, 0.367400, 0.044988;;, + 78;3; 1.009079, 0.367400, 0.044988;;, + 79;3; 1.009079, 0.367400, 0.044988;;; + } + AnimationKey { // Position + 2; + 80; + 0;3;-0.448732,-0.399916,-7.147284;;, + 1;3;-0.448732,-0.404025,-7.147274;;, + 2;3;-0.448732,-0.416442,-7.147199;;, + 3;3;-0.448732,-0.437189,-7.146982;;, + 4;3;-0.448732,-0.466091,-7.146529;;, + 5;3;-0.448732,-0.502716,-7.145728;;, + 6;3;-0.448732,-0.546334,-7.144456;;, + 7;3;-0.448732,-0.595880,-7.142581;;, + 8;3;-0.448732,-0.649957,-7.139967;;, + 9;3;-0.448732,-0.706885,-7.136487;;, + 10;3;-0.448732,-0.764784,-7.132030;;, + 11;3;-0.448732,-0.821707,-7.126510;;, + 12;3;-0.448732,-0.875778,-7.119878;;, + 13;3;-0.448732,-0.925314,-7.112115;;, + 14;3;-0.448732,-0.968922,-7.103236;;, + 15;3;-0.448732,-1.005537,-7.093283;;, + 16;3;-0.448732,-1.034429,-7.082315;;, + 17;3;-0.448732,-1.055169,-7.070407;;, + 18;3;-0.448732,-1.067582,-7.057637;;, + 19;3;-0.448732,-1.071688,-7.044086;;, + 20;3;-0.448732,-1.050912,-7.024075;;, + 21;3;-0.448732,-0.988394,-6.991998;;, + 22;3;-0.448732,-0.886765,-6.948990;;, + 23;3;-0.448732,-0.753869,-6.897814;;, + 24;3;-0.448732,-0.603347,-6.842973;;, + 25;3;-0.448732,-0.452844,-6.790066;;, + 26;3;-0.448732,-0.319993,-6.744496;;, + 27;3;-0.448732,-0.218418,-6.710258;;, + 28;3;-0.448732,-0.155941,-6.689467;;, + 29;3;-0.448732,-0.135180,-6.682620;;, + 30;3;-0.448732,-0.152022,-6.690032;;, + 31;3;-0.448732,-0.202706,-6.712340;;, + 32;3;-0.448732,-0.285111,-6.748610;;, + 33;3;-0.448732,-0.392890,-6.796051;;, + 34;3;-0.448732,-0.514988,-6.849793;;, + 35;3;-0.448732,-0.637090,-6.903535;;, + 36;3;-0.448732,-0.744884,-6.950976;;, + 37;3;-0.448732,-0.827305,-6.987247;;, + 38;3;-0.448732,-0.878002,-7.009555;;, + 39;3;-0.448732,-0.894848,-7.016967;;, + 40;3;-0.448732,-0.869473,-7.011635;;, + 41;3;-0.448732,-0.793118,-6.995588;;, + 42;3;-0.448732,-0.668994,-6.969497;;, + 43;3;-0.448732,-0.506665,-6.935371;;, + 44;3;-0.448732,-0.322774,-6.896713;;, + 45;3;-0.448732,-0.138857,-6.858054;;, + 46;3;-0.448732, 0.023536,-6.823927;;, + 47;3;-0.448732, 0.147735,-6.797835;;, + 48;3;-0.448732, 0.224147,-6.781788;;, + 49;3;-0.448732, 0.249544,-6.776455;;, + 50;3;-0.448732, 0.246350,-6.776997;;, + 51;3;-0.448732, 0.236709,-6.778630;;, + 52;3;-0.448732, 0.220568,-6.781366;;, + 53;3;-0.448732, 0.197921,-6.785206;;, + 54;3;-0.448732, 0.168823,-6.790139;;, + 55;3;-0.448732, 0.133401,-6.796146;;, + 56;3;-0.448732, 0.091862,-6.803191;;, + 57;3;-0.448732, 0.044507,-6.811224;;, + 58;3;-0.448732,-0.008263,-6.820177;;, + 59;3;-0.448732,-0.065943,-6.829964;;, + 60;3;-0.448732,-0.127922,-6.840481;;, + 61;3;-0.448732,-0.193485,-6.851608;;, + 62;3;-0.448732,-0.261828,-6.863206;;, + 63;3;-0.448732,-0.332070,-6.875127;;, + 64;3;-0.448732,-0.403277,-6.887212;;, + 65;3;-0.448732,-0.474487,-6.899297;;, + 66;3;-0.448732,-0.544736,-6.911219;;, + 67;3;-0.448732,-0.613091,-6.922818;;, + 68;3;-0.448732,-0.678669,-6.933944;;, + 69;3;-0.448732,-0.740665,-6.944461;;, + 70;3;-0.448732,-0.798365,-6.954247;;, + 71;3;-0.448732,-0.851156,-6.963201;;, + 72;3;-0.448732,-0.898531,-6.971233;;, + 73;3;-0.448732,-0.940090,-6.978278;;, + 74;3;-0.448732,-0.975531,-6.984285;;, + 75;3;-0.448732,-1.004644,-6.989219;;, + 76;3;-0.448732,-1.027304,-6.993057;;, + 77;3;-0.448732,-1.043455,-6.995793;;, + 78;3;-0.448732,-1.053102,-6.997427;;, + 79;3;-0.448732,-1.056298,-6.997969;;; + } + } + Animation { + {Cube_007} + AnimationKey { // Rotation + 0; + 80; + 0;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 1;4;-0.706699, 0.000944,-0.000945, 0.707513;;, + 2;4;-0.706690, 0.003796,-0.003801, 0.707503;;, + 3;4;-0.706647, 0.008562,-0.008573, 0.707462;;, + 4;4;-0.706535, 0.015201,-0.015221, 0.707351;;, + 5;4;-0.706303, 0.023613,-0.023643, 0.707120;;, + 6;4;-0.705897, 0.033627,-0.033671, 0.706714;;, + 7;4;-0.705263, 0.044995,-0.045053, 0.706081;;, + 8;4;-0.704363, 0.057391,-0.057465, 0.705179;;, + 9;4;-0.703180, 0.070423,-0.070512, 0.703994;;, + 10;4;-0.701729, 0.083653,-0.083758, 0.702540;;, + 11;4;-0.700061, 0.096633,-0.096753, 0.700867;;, + 12;4;-0.698255, 0.108932,-0.109066, 0.699056;;, + 13;4;-0.696410, 0.120171,-0.120318, 0.697206;;, + 14;4;-0.694636, 0.130040,-0.130197, 0.695427;;, + 15;4;-0.693038, 0.138306,-0.138471, 0.693826;;, + 16;4;-0.691708, 0.144816,-0.144987, 0.692494;;, + 17;4;-0.690714, 0.149481,-0.149656, 0.691500;;, + 18;4;-0.690103, 0.152270,-0.152446, 0.690892;;, + 19;4;-0.689897, 0.153192,-0.153368, 0.690690;;, + 20;4;-0.691356, 0.146435,-0.146601, 0.692165;;, + 21;4;-0.695352, 0.126019,-0.126160, 0.696195;;, + 22;4;-0.700567, 0.092608,-0.092706, 0.701453;;, + 23;4;-0.704970, 0.048611,-0.048653, 0.705894;;, + 24;4;-0.706633,-0.001439, 0.001460, 0.707578;;, + 25;4;-0.704757,-0.051474, 0.051556, 0.705698;;, + 26;4;-0.700169,-0.095433, 0.095567, 0.701087;;, + 27;4;-0.694816,-0.128802, 0.128973, 0.695706;;, + 28;4;-0.690736,-0.149185, 0.149378, 0.691602;;, + 29;4;-0.689249,-0.155931, 0.156131, 0.690105;;, + 30;4;-0.690758,-0.149082, 0.149275, 0.691625;;, + 31;4;-0.694892,-0.128384, 0.128553, 0.695785;;, + 32;4;-0.700292,-0.094494, 0.094625, 0.701219;;, + 33;4;-0.704868,-0.049845, 0.049922, 0.705822;;, + 34;4;-0.706625, 0.000968,-0.000952, 0.707587;;, + 35;4;-0.704734, 0.051775,-0.051823, 0.705680;;, + 36;4;-0.700040, 0.096410,-0.096514, 0.700952;;, + 37;4;-0.694551, 0.130284,-0.130428, 0.695423;;, + 38;4;-0.690364, 0.150970,-0.151139, 0.691204;;, + 39;4;-0.688837, 0.157814,-0.157992, 0.689664;;, + 40;4;-0.690381, 0.150907,-0.151079, 0.691214;;, + 41;4;-0.694606, 0.130034,-0.130184, 0.695461;;, + 42;4;-0.700129, 0.095855,-0.095969, 0.701015;;, + 43;4;-0.704821, 0.050819,-0.050881, 0.705731;;, + 44;4;-0.706648,-0.000444, 0.000442, 0.707565;;, + 45;4;-0.704760,-0.051711, 0.051770, 0.705662;;, + 46;4;-0.700013,-0.096759, 0.096871, 0.700882;;, + 47;4;-0.694446,-0.130950, 0.131102, 0.695276;;, + 48;4;-0.690193,-0.151833, 0.152008, 0.690995;;, + 49;4;-0.688641,-0.158743, 0.158926, 0.689433;;, + 50;4;-0.688814,-0.157989, 0.158171, 0.689606;;, + 51;4;-0.689331,-0.155713, 0.155892, 0.690126;;, + 52;4;-0.690179,-0.151897, 0.152073, 0.690980;;, + 53;4;-0.691335,-0.146536, 0.146706, 0.692142;;, + 54;4;-0.692758,-0.139634, 0.139797, 0.693574;;, + 55;4;-0.694398,-0.131213, 0.131367, 0.695224;;, + 56;4;-0.696192,-0.121313, 0.121456, 0.697028;;, + 57;4;-0.698065,-0.109997, 0.110126, 0.698912;;, + 58;4;-0.699936,-0.097351, 0.097467, 0.700795;;, + 59;4;-0.701719,-0.083493, 0.083592, 0.702589;;, + 60;4;-0.703331,-0.068565, 0.068647, 0.704210;;, + 61;4;-0.704691,-0.052740, 0.052803, 0.705579;;, + 62;4;-0.705730,-0.036215, 0.036259, 0.706625;;, + 63;4;-0.706396,-0.019212, 0.019235, 0.707294;;, + 64;4;-0.706654,-0.001963, 0.001966, 0.707554;;, + 65;4;-0.706492, 0.015286,-0.015304, 0.707391;;, + 66;4;-0.705920, 0.032294,-0.032331, 0.706815;;, + 67;4;-0.704973, 0.048823,-0.048881, 0.705862;;, + 68;4;-0.703700, 0.064655,-0.064732, 0.704582;;, + 69;4;-0.702172, 0.079592,-0.079686, 0.703043;;, + 70;4;-0.700465, 0.093460,-0.093570, 0.701326;;, + 71;4;-0.698665, 0.106115,-0.106239, 0.699514;;, + 72;4;-0.696855, 0.117442,-0.117579, 0.697693;;, + 73;4;-0.695117, 0.127352,-0.127500, 0.695944;;, + 74;4;-0.693523, 0.135781,-0.135939, 0.694341;;, + 75;4;-0.692138, 0.142691,-0.142856, 0.692948;;, + 76;4;-0.691013, 0.148058,-0.148229, 0.691815;;, + 77;4;-0.690185, 0.151878,-0.152053, 0.690983;;, + 78;4;-0.689681, 0.154157,-0.154335, 0.690475;;, + 79;4;-0.689512, 0.154912,-0.155090, 0.690306;;; + } + AnimationKey { // Scale + 1; + 80; + 0;3; 1.009079, 0.367400, 0.044988;;, + 1;3; 1.009079, 0.367400, 0.044988;;, + 2;3; 1.009079, 0.367400, 0.044988;;, + 3;3; 1.009079, 0.367400, 0.044988;;, + 4;3; 1.009079, 0.367400, 0.044988;;, + 5;3; 1.009079, 0.367400, 0.044988;;, + 6;3; 1.009080, 0.367400, 0.044988;;, + 7;3; 1.009079, 0.367400, 0.044988;;, + 8;3; 1.009079, 0.367400, 0.044988;;, + 9;3; 1.009079, 0.367400, 0.044988;;, + 10;3; 1.009079, 0.367400, 0.044988;;, + 11;3; 1.009079, 0.367400, 0.044988;;, + 12;3; 1.009079, 0.367400, 0.044988;;, + 13;3; 1.009080, 0.367400, 0.044988;;, + 14;3; 1.009079, 0.367400, 0.044988;;, + 15;3; 1.009079, 0.367400, 0.044988;;, + 16;3; 1.009079, 0.367400, 0.044988;;, + 17;3; 1.009079, 0.367400, 0.044988;;, + 18;3; 1.009080, 0.367400, 0.044988;;, + 19;3; 1.009079, 0.367400, 0.044988;;, + 20;3; 1.009079, 0.367400, 0.044988;;, + 21;3; 1.009079, 0.367400, 0.044988;;, + 22;3; 1.009079, 0.367400, 0.044988;;, + 23;3; 1.009079, 0.367400, 0.044988;;, + 24;3; 1.009079, 0.367400, 0.044988;;, + 25;3; 1.009079, 0.367400, 0.044988;;, + 26;3; 1.009079, 0.367400, 0.044988;;, + 27;3; 1.009079, 0.367400, 0.044988;;, + 28;3; 1.009079, 0.367400, 0.044988;;, + 29;3; 1.009079, 0.367400, 0.044988;;, + 30;3; 1.009080, 0.367400, 0.044988;;, + 31;3; 1.009079, 0.367400, 0.044988;;, + 32;3; 1.009079, 0.367400, 0.044988;;, + 33;3; 1.009079, 0.367400, 0.044988;;, + 34;3; 1.009079, 0.367400, 0.044988;;, + 35;3; 1.009079, 0.367400, 0.044988;;, + 36;3; 1.009079, 0.367400, 0.044988;;, + 37;3; 1.009079, 0.367400, 0.044988;;, + 38;3; 1.009079, 0.367400, 0.044988;;, + 39;3; 1.009079, 0.367400, 0.044988;;, + 40;3; 1.009079, 0.367400, 0.044988;;, + 41;3; 1.009080, 0.367400, 0.044988;;, + 42;3; 1.009079, 0.367400, 0.044988;;, + 43;3; 1.009079, 0.367400, 0.044988;;, + 44;3; 1.009079, 0.367400, 0.044988;;, + 45;3; 1.009079, 0.367400, 0.044988;;, + 46;3; 1.009079, 0.367400, 0.044988;;, + 47;3; 1.009079, 0.367400, 0.044988;;, + 48;3; 1.009079, 0.367400, 0.044988;;, + 49;3; 1.009079, 0.367400, 0.044988;;, + 50;3; 1.009079, 0.367400, 0.044988;;, + 51;3; 1.009079, 0.367400, 0.044988;;, + 52;3; 1.009079, 0.367400, 0.044988;;, + 53;3; 1.009079, 0.367400, 0.044988;;, + 54;3; 1.009079, 0.367400, 0.044988;;, + 55;3; 1.009079, 0.367400, 0.044988;;, + 56;3; 1.009079, 0.367400, 0.044988;;, + 57;3; 1.009079, 0.367400, 0.044988;;, + 58;3; 1.009079, 0.367400, 0.044988;;, + 59;3; 1.009079, 0.367400, 0.044988;;, + 60;3; 1.009079, 0.367400, 0.044988;;, + 61;3; 1.009079, 0.367400, 0.044988;;, + 62;3; 1.009079, 0.367400, 0.044988;;, + 63;3; 1.009079, 0.367400, 0.044988;;, + 64;3; 1.009079, 0.367400, 0.044988;;, + 65;3; 1.009079, 0.367400, 0.044988;;, + 66;3; 1.009079, 0.367400, 0.044988;;, + 67;3; 1.009079, 0.367400, 0.044988;;, + 68;3; 1.009079, 0.367400, 0.044988;;, + 69;3; 1.009079, 0.367400, 0.044988;;, + 70;3; 1.009079, 0.367400, 0.044988;;, + 71;3; 1.009079, 0.367400, 0.044988;;, + 72;3; 1.009079, 0.367400, 0.044988;;, + 73;3; 1.009079, 0.367400, 0.044988;;, + 74;3; 1.009079, 0.367400, 0.044988;;, + 75;3; 1.009079, 0.367400, 0.044988;;, + 76;3; 1.009079, 0.367400, 0.044988;;, + 77;3; 1.009079, 0.367400, 0.044988;;, + 78;3; 1.009079, 0.367400, 0.044988;;, + 79;3; 1.009079, 0.367400, 0.044988;;; + } + AnimationKey { // Position + 2; + 80; + 0;3; 0.982119,-0.398271,-7.147284;;, + 1;3; 0.982119,-0.394882,-7.144940;;, + 2;3; 0.982119,-0.384637,-7.137857;;, + 3;3; 0.982119,-0.367519,-7.126019;;, + 4;3; 0.982119,-0.343674,-7.109527;;, + 5;3; 0.982119,-0.313457,-7.088624;;, + 6;3; 0.982119,-0.277470,-7.063726;;, + 7;3; 0.982119,-0.236591,-7.035442;;, + 8;3; 0.982119,-0.191969,-7.004568;;, + 9;3; 0.982119,-0.144991,-6.972064;;, + 10;3; 0.982119,-0.097204,-6.939005;;, + 11;3; 0.982119,-0.050215,-6.906504;;, + 12;3; 0.982119,-0.005573,-6.875633;;, + 13;3; 0.982119, 0.035333,-6.847355;;, + 14;3; 0.982119, 0.071350,-6.822463;;, + 15;3; 0.982119, 0.101597,-6.801566;;, + 16;3; 0.982119, 0.125468,-6.785079;;, + 17;3; 0.982119, 0.142607,-6.773246;;, + 18;3; 0.982119, 0.152866,-6.766165;;, + 19;3; 0.982119, 0.156260,-6.763823;;, + 20;3; 0.982119, 0.128710,-6.767977;;, + 21;3; 0.982119, 0.045834,-6.780480;;, + 22;3; 0.982119,-0.088843,-6.800809;;, + 23;3; 0.982119,-0.264892,-6.827399;;, + 24;3; 0.982119,-0.464226,-6.857521;;, + 25;3; 0.982119,-0.663491,-6.887642;;, + 26;3; 0.982119,-0.839364,-6.914232;;, + 27;3; 0.982119,-0.973836,-6.934562;;, + 28;3; 0.982119,-1.056554,-6.947064;;, + 29;3; 0.982119,-1.084046,-6.951219;;, + 30;3; 0.982119,-1.057759,-6.946794;;, + 31;3; 0.982119,-0.978647,-6.933474;;, + 32;3; 0.982119,-0.850017,-6.911818;;, + 33;3; 0.982119,-0.681774,-6.883492;;, + 34;3; 0.982119,-0.491183,-6.851403;;, + 35;3; 0.982119,-0.300592,-6.819315;;, + 36;3; 0.982119,-0.132350,-6.790989;;, + 37;3; 0.982119,-0.003719,-6.769332;;, + 38;3; 0.982119, 0.075391,-6.756013;;, + 39;3; 0.982119, 0.101678,-6.751587;;, + 40;3; 0.982119, 0.075342,-6.757804;;, + 41;3; 0.982119,-0.003907,-6.776517;;, + 42;3; 0.982119,-0.132745,-6.806942;;, + 43;3; 0.982119,-0.301252,-6.846736;;, + 44;3; 0.982119,-0.492163,-6.891817;;, + 45;3; 0.982119,-0.683122,-6.936897;;, + 46;3; 0.982119,-0.851748,-6.976693;;, + 47;3; 0.982119,-0.980724,-7.007119;;, + 48;3; 0.982119,-1.060079,-7.025833;;, + 49;3; 0.982119,-1.086455,-7.032051;;, + 50;3; 0.982119,-1.083567,-7.031389;;, + 51;3; 0.982119,-1.074850,-7.029391;;, + 52;3; 0.982119,-1.060257,-7.026044;;, + 53;3; 0.982119,-1.039781,-7.021348;;, + 54;3; 0.982119,-1.013474,-7.015314;;, + 55;3; 0.982119,-0.981449,-7.007967;;, + 56;3; 0.982119,-0.943896,-6.999349;;, + 57;3; 0.982119,-0.901085,-6.989524;;, + 58;3; 0.982119,-0.853379,-6.978574;;, + 59;3; 0.982119,-0.801236,-6.966603;;, + 60;3; 0.982119,-0.745209,-6.953739;;, + 61;3; 0.982119,-0.685942,-6.940131;;, + 62;3; 0.982119,-0.624166,-6.925944;;, + 63;3; 0.982119,-0.560674,-6.911363;;, + 64;3; 0.982119,-0.496313,-6.896581;;, + 65;3; 0.982119,-0.431951,-6.881800;;, + 66;3; 0.982119,-0.368460,-6.867218;;, + 67;3; 0.982119,-0.306684,-6.853032;;, + 68;3; 0.982119,-0.247418,-6.839423;;, + 69;3; 0.982119,-0.191392,-6.826559;;, + 70;3; 0.982119,-0.139249,-6.814589;;, + 71;3; 0.982119,-0.091545,-6.803638;;, + 72;3; 0.982119,-0.048735,-6.793814;;, + 73;3; 0.982119,-0.011182,-6.785196;;, + 74;3; 0.982119, 0.020842,-6.777849;;, + 75;3; 0.982119, 0.047149,-6.771815;;, + 76;3; 0.982119, 0.067624,-6.767118;;, + 77;3; 0.982119, 0.082217,-6.763772;;, + 78;3; 0.982119, 0.090933,-6.761774;;, + 79;3; 0.982119, 0.093821,-6.761112;;; + } + } + Animation { + {Cube_008} + AnimationKey { // Rotation + 0; + 80; + 0;4;-0.706700, 0.000000, 0.000000, 0.707513;;, + 1;4;-0.706699, 0.000944,-0.000945, 0.707513;;, + 2;4;-0.706690, 0.003796,-0.003801, 0.707503;;, + 3;4;-0.706647, 0.008562,-0.008573, 0.707462;;, + 4;4;-0.706535, 0.015201,-0.015221, 0.707351;;, + 5;4;-0.706303, 0.023613,-0.023643, 0.707120;;, + 6;4;-0.705897, 0.033627,-0.033671, 0.706714;;, + 7;4;-0.705263, 0.044995,-0.045053, 0.706081;;, + 8;4;-0.704363, 0.057391,-0.057465, 0.705179;;, + 9;4;-0.703180, 0.070423,-0.070512, 0.703994;;, + 10;4;-0.701729, 0.083653,-0.083758, 0.702540;;, + 11;4;-0.700061, 0.096633,-0.096753, 0.700867;;, + 12;4;-0.698255, 0.108932,-0.109066, 0.699056;;, + 13;4;-0.696410, 0.120171,-0.120318, 0.697206;;, + 14;4;-0.694636, 0.130040,-0.130197, 0.695427;;, + 15;4;-0.693038, 0.138306,-0.138471, 0.693826;;, + 16;4;-0.691708, 0.144816,-0.144987, 0.692494;;, + 17;4;-0.690714, 0.149481,-0.149656, 0.691500;;, + 18;4;-0.690103, 0.152270,-0.152446, 0.690892;;, + 19;4;-0.689897, 0.153192,-0.153368, 0.690690;;, + 20;4;-0.691356, 0.146435,-0.146601, 0.692165;;, + 21;4;-0.695352, 0.126019,-0.126160, 0.696195;;, + 22;4;-0.700567, 0.092608,-0.092706, 0.701453;;, + 23;4;-0.704970, 0.048611,-0.048653, 0.705894;;, + 24;4;-0.706633,-0.001439, 0.001460, 0.707578;;, + 25;4;-0.704757,-0.051474, 0.051556, 0.705698;;, + 26;4;-0.700169,-0.095433, 0.095567, 0.701087;;, + 27;4;-0.694816,-0.128802, 0.128973, 0.695706;;, + 28;4;-0.690736,-0.149185, 0.149378, 0.691602;;, + 29;4;-0.689249,-0.155931, 0.156131, 0.690105;;, + 30;4;-0.690758,-0.149082, 0.149275, 0.691625;;, + 31;4;-0.694892,-0.128384, 0.128553, 0.695785;;, + 32;4;-0.700292,-0.094494, 0.094625, 0.701219;;, + 33;4;-0.704868,-0.049845, 0.049922, 0.705822;;, + 34;4;-0.706625, 0.000968,-0.000952, 0.707587;;, + 35;4;-0.704734, 0.051775,-0.051823, 0.705680;;, + 36;4;-0.700040, 0.096410,-0.096514, 0.700952;;, + 37;4;-0.694551, 0.130284,-0.130428, 0.695423;;, + 38;4;-0.690364, 0.150970,-0.151139, 0.691204;;, + 39;4;-0.688837, 0.157814,-0.157992, 0.689664;;, + 40;4;-0.690381, 0.150907,-0.151079, 0.691214;;, + 41;4;-0.694606, 0.130034,-0.130184, 0.695461;;, + 42;4;-0.700129, 0.095855,-0.095969, 0.701015;;, + 43;4;-0.704821, 0.050819,-0.050881, 0.705731;;, + 44;4;-0.706648,-0.000444, 0.000442, 0.707565;;, + 45;4;-0.704760,-0.051711, 0.051770, 0.705662;;, + 46;4;-0.700013,-0.096759, 0.096871, 0.700882;;, + 47;4;-0.694446,-0.130950, 0.131102, 0.695276;;, + 48;4;-0.690193,-0.151833, 0.152008, 0.690995;;, + 49;4;-0.688641,-0.158743, 0.158926, 0.689433;;, + 50;4;-0.688814,-0.157989, 0.158171, 0.689606;;, + 51;4;-0.689331,-0.155713, 0.155892, 0.690126;;, + 52;4;-0.690179,-0.151897, 0.152073, 0.690980;;, + 53;4;-0.691335,-0.146536, 0.146706, 0.692142;;, + 54;4;-0.692758,-0.139634, 0.139797, 0.693574;;, + 55;4;-0.694398,-0.131213, 0.131367, 0.695224;;, + 56;4;-0.696192,-0.121313, 0.121456, 0.697028;;, + 57;4;-0.698065,-0.109997, 0.110126, 0.698912;;, + 58;4;-0.699936,-0.097351, 0.097467, 0.700795;;, + 59;4;-0.701719,-0.083493, 0.083592, 0.702589;;, + 60;4;-0.703331,-0.068565, 0.068647, 0.704210;;, + 61;4;-0.704691,-0.052740, 0.052803, 0.705579;;, + 62;4;-0.705730,-0.036215, 0.036259, 0.706625;;, + 63;4;-0.706396,-0.019212, 0.019235, 0.707294;;, + 64;4;-0.706654,-0.001963, 0.001966, 0.707554;;, + 65;4;-0.706492, 0.015286,-0.015304, 0.707391;;, + 66;4;-0.705920, 0.032294,-0.032331, 0.706815;;, + 67;4;-0.704973, 0.048823,-0.048881, 0.705862;;, + 68;4;-0.703700, 0.064655,-0.064732, 0.704582;;, + 69;4;-0.702172, 0.079592,-0.079686, 0.703043;;, + 70;4;-0.700465, 0.093460,-0.093570, 0.701326;;, + 71;4;-0.698665, 0.106115,-0.106239, 0.699514;;, + 72;4;-0.696855, 0.117442,-0.117579, 0.697693;;, + 73;4;-0.695117, 0.127352,-0.127500, 0.695944;;, + 74;4;-0.693523, 0.135781,-0.135939, 0.694341;;, + 75;4;-0.692138, 0.142691,-0.142856, 0.692948;;, + 76;4;-0.691013, 0.148058,-0.148229, 0.691815;;, + 77;4;-0.690185, 0.151878,-0.152053, 0.690983;;, + 78;4;-0.689681, 0.154157,-0.154335, 0.690475;;, + 79;4;-0.689512, 0.154912,-0.155090, 0.690306;;; + } + AnimationKey { // Scale + 1; + 80; + 0;3; 0.195703, 0.182964, 0.780890;;, + 1;3; 0.195703, 0.182964, 0.780890;;, + 2;3; 0.195703, 0.182964, 0.780890;;, + 3;3; 0.195703, 0.182964, 0.780890;;, + 4;3; 0.195703, 0.182964, 0.780890;;, + 5;3; 0.195703, 0.182964, 0.780890;;, + 6;3; 0.195703, 0.182964, 0.780890;;, + 7;3; 0.195703, 0.182964, 0.780890;;, + 8;3; 0.195703, 0.182964, 0.780890;;, + 9;3; 0.195703, 0.182964, 0.780890;;, + 10;3; 0.195703, 0.182964, 0.780890;;, + 11;3; 0.195703, 0.182964, 0.780890;;, + 12;3; 0.195703, 0.182964, 0.780890;;, + 13;3; 0.195703, 0.182964, 0.780890;;, + 14;3; 0.195703, 0.182964, 0.780890;;, + 15;3; 0.195703, 0.182964, 0.780890;;, + 16;3; 0.195703, 0.182964, 0.780890;;, + 17;3; 0.195703, 0.182964, 0.780890;;, + 18;3; 0.195703, 0.182964, 0.780890;;, + 19;3; 0.195703, 0.182964, 0.780890;;, + 20;3; 0.195703, 0.182964, 0.780890;;, + 21;3; 0.195703, 0.182964, 0.780890;;, + 22;3; 0.195703, 0.182964, 0.780890;;, + 23;3; 0.195703, 0.182964, 0.780890;;, + 24;3; 0.195703, 0.182964, 0.780890;;, + 25;3; 0.195703, 0.182964, 0.780890;;, + 26;3; 0.195703, 0.182964, 0.780890;;, + 27;3; 0.195703, 0.182964, 0.780890;;, + 28;3; 0.195703, 0.182964, 0.780890;;, + 29;3; 0.195703, 0.182964, 0.780890;;, + 30;3; 0.195703, 0.182964, 0.780890;;, + 31;3; 0.195703, 0.182964, 0.780890;;, + 32;3; 0.195703, 0.182964, 0.780890;;, + 33;3; 0.195703, 0.182964, 0.780890;;, + 34;3; 0.195703, 0.182964, 0.780890;;, + 35;3; 0.195703, 0.182964, 0.780890;;, + 36;3; 0.195703, 0.182964, 0.780890;;, + 37;3; 0.195703, 0.182964, 0.780890;;, + 38;3; 0.195703, 0.182964, 0.780890;;, + 39;3; 0.195703, 0.182964, 0.780890;;, + 40;3; 0.195703, 0.182964, 0.780890;;, + 41;3; 0.195703, 0.182964, 0.780890;;, + 42;3; 0.195703, 0.182964, 0.780890;;, + 43;3; 0.195703, 0.182964, 0.780890;;, + 44;3; 0.195703, 0.182964, 0.780890;;, + 45;3; 0.195703, 0.182964, 0.780890;;, + 46;3; 0.195703, 0.182964, 0.780890;;, + 47;3; 0.195703, 0.182964, 0.780890;;, + 48;3; 0.195703, 0.182964, 0.780890;;, + 49;3; 0.195703, 0.182964, 0.780890;;, + 50;3; 0.195703, 0.182964, 0.780890;;, + 51;3; 0.195703, 0.182964, 0.780890;;, + 52;3; 0.195703, 0.182964, 0.780890;;, + 53;3; 0.195703, 0.182964, 0.780890;;, + 54;3; 0.195703, 0.182964, 0.780890;;, + 55;3; 0.195703, 0.182964, 0.780890;;, + 56;3; 0.195703, 0.182964, 0.780890;;, + 57;3; 0.195703, 0.182964, 0.780890;;, + 58;3; 0.195703, 0.182964, 0.780890;;, + 59;3; 0.195703, 0.182964, 0.780890;;, + 60;3; 0.195703, 0.182964, 0.780890;;, + 61;3; 0.195703, 0.182964, 0.780890;;, + 62;3; 0.195703, 0.182964, 0.780890;;, + 63;3; 0.195703, 0.182964, 0.780890;;, + 64;3; 0.195703, 0.182964, 0.780890;;, + 65;3; 0.195703, 0.182964, 0.780890;;, + 66;3; 0.195703, 0.182964, 0.780890;;, + 67;3; 0.195703, 0.182964, 0.780890;;, + 68;3; 0.195703, 0.182964, 0.780890;;, + 69;3; 0.195703, 0.182964, 0.780890;;, + 70;3; 0.195703, 0.182964, 0.780890;;, + 71;3; 0.195703, 0.182964, 0.780890;;, + 72;3; 0.195703, 0.182964, 0.780890;;, + 73;3; 0.195703, 0.182964, 0.780890;;, + 74;3; 0.195703, 0.182964, 0.780890;;, + 75;3; 0.195703, 0.182964, 0.780890;;, + 76;3; 0.195703, 0.182964, 0.780890;;, + 77;3; 0.195703, 0.182964, 0.780890;;, + 78;3; 0.195703, 0.182964, 0.780890;;, + 79;3; 0.195703, 0.182964, 0.780890;;; + } + AnimationKey { // Position + 2; + 80; + 0;3; 0.985878,-0.718404,-6.328409;;, + 1;3; 0.985878,-0.716950,-6.327615;;, + 2;3; 0.985878,-0.712554,-6.325198;;, + 3;3; 0.985878,-0.705207,-6.321122;;, + 4;3; 0.985878,-0.694972,-6.315381;;, + 5;3; 0.985878,-0.681998,-6.308012;;, + 6;3; 0.985878,-0.666546,-6.299107;;, + 7;3; 0.985878,-0.648991,-6.288815;;, + 8;3; 0.985878,-0.629828,-6.277351;;, + 9;3; 0.985878,-0.609652,-6.264987;;, + 10;3; 0.985878,-0.589131,-6.252039;;, + 11;3; 0.985878,-0.568955,-6.238850;;, + 12;3; 0.985878,-0.549789,-6.225760;;, + 13;3; 0.985878,-0.532232,-6.213085;;, + 14;3; 0.985878,-0.516777,-6.201101;;, + 15;3; 0.985878,-0.503801,-6.190028;;, + 16;3; 0.985878,-0.493563,-6.180032;;, + 17;3; 0.985878,-0.486214,-6.171224;;, + 18;3; 0.985878,-0.481817,-6.163669;;, + 19;3; 0.985878,-0.480362,-6.157396;;, + 20;3; 0.985878,-0.492642,-6.152040;;, + 21;3; 0.985878,-0.529594,-6.147311;;, + 22;3; 0.985878,-0.589670,-6.143323;;, + 23;3; 0.985878,-0.668236,-6.140161;;, + 24;3; 0.985878,-0.757231,-6.137845;;, + 25;3; 0.985878,-0.846219,-6.136311;;, + 26;3; 0.985878,-0.924770,-6.135415;;, + 27;3; 0.985878,-0.984827,-6.134974;;, + 28;3; 0.985878,-1.021765,-6.134810;;, + 29;3; 0.985878,-1.034040,-6.134781;;, + 30;3; 0.985878,-1.023379,-6.135458;;, + 31;3; 0.985878,-0.991296,-6.137495;;, + 32;3; 0.985878,-0.939131,-6.140805;;, + 33;3; 0.985878,-0.870902,-6.145136;;, + 34;3; 0.985878,-0.793609,-6.150042;;, + 35;3; 0.985878,-0.716317,-6.154948;;, + 36;3; 0.985878,-0.648088,-6.159278;;, + 37;3; 0.985878,-0.595923,-6.162590;;, + 38;3; 0.985878,-0.563840,-6.164626;;, + 39;3; 0.985878,-0.553180,-6.165302;;, + 40;3; 0.985878,-0.563436,-6.165089;;, + 41;3; 0.985878,-0.594300,-6.164446;;, + 42;3; 0.985878,-0.644484,-6.163401;;, + 43;3; 0.985878,-0.710121,-6.162034;;, + 44;3; 0.985878,-0.784478,-6.160485;;, + 45;3; 0.985878,-0.858838,-6.158936;;, + 46;3; 0.985878,-0.924482,-6.157569;;, + 47;3; 0.985878,-0.974673,-6.156523;;, + 48;3; 0.985878,-1.005544,-6.155880;;, + 49;3; 0.985878,-1.015802,-6.155667;;, + 50;3; 0.985878,-1.014653,-6.155672;;, + 51;3; 0.985878,-1.011186,-6.155688;;, + 52;3; 0.985878,-1.005381,-6.155716;;, + 53;3; 0.985878,-0.997234,-6.155754;;, + 54;3; 0.985878,-0.986766,-6.155803;;, + 55;3; 0.985878,-0.974020,-6.155862;;, + 56;3; 0.985878,-0.959072,-6.155932;;, + 57;3; 0.985878,-0.942028,-6.156013;;, + 58;3; 0.985878,-0.923034,-6.156101;;, + 59;3; 0.985878,-0.902269,-6.156199;;, + 60;3; 0.985878,-0.879956,-6.156303;;, + 61;3; 0.985878,-0.856350,-6.156414;;, + 62;3; 0.985878,-0.831742,-6.156528;;, + 63;3; 0.985878,-0.806450,-6.156647;;, + 64;3; 0.985878,-0.780811,-6.156767;;, + 65;3; 0.985878,-0.755171,-6.156887;;, + 66;3; 0.985878,-0.729879,-6.157006;;, + 67;3; 0.985878,-0.705271,-6.157121;;, + 68;3; 0.985878,-0.681665,-6.157231;;, + 69;3; 0.985878,-0.659352,-6.157336;;, + 70;3; 0.985878,-0.638587,-6.157433;;, + 71;3; 0.985878,-0.619592,-6.157522;;, + 72;3; 0.985878,-0.602548,-6.157602;;, + 73;3; 0.985878,-0.587600,-6.157671;;, + 74;3; 0.985878,-0.574854,-6.157732;;, + 75;3; 0.985878,-0.564386,-6.157781;;, + 76;3; 0.985878,-0.556239,-6.157819;;, + 77;3; 0.985878,-0.550433,-6.157845;;, + 78;3; 0.985878,-0.546966,-6.157862;;, + 79;3; 0.985878,-0.545818,-6.157867;;; + } + } +} // End of AnimationSet Global diff --git a/mods/mobs/models/mobs_bee.png b/mods/mobs/models/mobs_bee.png new file mode 100644 index 00000000..25542aa6 Binary files /dev/null and b/mods/mobs/models/mobs_bee.png differ diff --git a/mods/mobs/models/mobs_bee.x b/mods/mobs/models/mobs_bee.x new file mode 100644 index 00000000..e9003925 --- /dev/null +++ b/mods/mobs/models/mobs_bee.x @@ -0,0 +1,7645 @@ +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 { + 0.384873, 0.000000, 0.000000, 0.000000, + 0.000000, 0.384873, 0.000000, 0.000000, + 0.000000, 0.000000, 0.384873, 0.000000, + 0.140869, 0.294248, 0.956928, 1.000000;; + } + Frame Armature_telo { + FrameTransformMatrix { + 1.000000, 0.000000, 0.000000, 0.000000, + 0.000000,-0.997725, 0.067414, 0.000000, + 0.000000,-0.067414,-0.997725, 0.000000, + -0.420690, 0.533795,-0.000000, 1.000000;; + } + Frame Armature_popa { + FrameTransformMatrix { + -1.000000, 0.000000,-0.000001, 0.000000, + -0.000000, 0.979027, 0.203730, 0.000000, + 0.000001, 0.203730,-0.979027, 0.000000, + 0.000000, 1.173850, 0.000000, 1.000000;; + } + } //End of Armature_popa + Frame Armature_nogi1 { + FrameTransformMatrix { + -0.000000, 0.997725, 0.067414, 0.000000, + 0.814990,-0.039065, 0.578158, 0.000000, + 0.579476, 0.054942,-0.813135, 0.000000, + 0.000000, 1.173850, 0.000000, 1.000000;; + } + } //End of Armature_nogi1 + Frame Armature_nogi2 { + FrameTransformMatrix { + -0.000000,-0.997725,-0.067414, 0.000000, + -0.835281,-0.037066, 0.548572, 0.000000, + -0.549823, 0.056310,-0.833381, 0.000000, + 0.000000, 1.173850, 0.000000, 1.000000;; + } + } //End of Armature_nogi2 + Frame Armature_golova { + FrameTransformMatrix { + 1.000000, 0.000000, 0.000000, 0.000000, + -0.000000,-0.963513, 0.267663, 0.000000, + 0.000000,-0.267663,-0.963513, 0.000000, + 0.000000,-0.000000, 0.000000, 1.000000;; + } + Frame Armature_us1 { + FrameTransformMatrix { + -1.000000, 0.000000,-0.000000, 0.000000, + -0.000000, 0.588365, 0.808596, 0.000000, + 0.000000, 0.808596,-0.588364, 0.000000, + 0.000000, 0.535820, 1.341474, 1.000000;; + } + } //End of Armature_us1 + } //End of Armature_golova + Frame Armature_Bone_006 { + FrameTransformMatrix { + -1.000000,-0.000000,-0.000001, 0.000000, + 0.000000, 0.530521,-0.847671, 0.000000, + 0.000000,-0.847672,-0.530521, 0.000000, + 0.000000,-0.000000, 0.000000, 1.000000;; + } + Frame Armature_Bone_007 { + FrameTransformMatrix { + -0.000000, 0.472169,-0.881508, 0.000000, + -1.000000,-0.000000, 0.000000, 0.000000, + 0.000000, 0.881508, 0.472169, 0.000000, + 0.000000, 1.619178, 0.000000, 1.000000;; + } + Frame Armature_krilo1 { + FrameTransformMatrix { + 0.143811,-0.989605,-0.000000, 0.000000, + 0.989605, 0.143811, 0.000000, 0.000000, + 0.000000,-0.000000, 1.000000, 0.000000, + -0.000000, 0.328829,-0.000000, 1.000000;; + } + } //End of Armature_krilo1 + } //End of Armature_Bone_007 + Frame Armature_Bone_008 { + FrameTransformMatrix { + 0.000000,-0.472169, 0.881508, 0.000000, + 1.000000, 0.000000,-0.000000, 0.000000, + 0.000000, 0.881508, 0.472169, 0.000000, + 0.000000, 1.619178, 0.000000, 1.000000;; + } + Frame Armature_krilo2 { + FrameTransformMatrix { + 0.132673, 0.991160,-0.000000, 0.000000, + -0.991160, 0.132673, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + -0.000000, 0.346481,-0.000000, 1.000000;; + } + } //End of Armature_krilo2 + } //End of Armature_Bone_008 + } //End of Armature_Bone_006 + } //End of Armature_telo + } //End of Armature + Frame Cube { + FrameTransformMatrix { + 0.384873, 0.000000, 0.000000, 0.000000, + 0.000000, 0.384873, 0.000000, 0.000000, + 0.000000, 0.000000, 0.384873, 0.000000, + 0.142552,-0.710054, 0.633902, 1.000000;; + } + Mesh { //Mesh Mesh + 752; + -1.207143;-1.565834;-0.160260;, + -1.207143; 0.848453;-0.114428;, + -1.207143; 0.848453; 2.299859;, + -1.207143;-1.565834; 2.061798;, + 0.000000; 1.649486;-0.222824;, + -0.697598; 1.641988;-0.148365;, + -1.207143; 0.848453;-0.114428;, + 0.000000; 0.793238;-0.357718;, + 1.207143; 0.848453;-0.114428;, + 1.207143;-1.565834;-0.160260;, + 1.207143;-1.565834; 2.061798;, + 1.207143; 0.848453; 2.299859;, + 0.000000;-3.357429;-0.154227;, + 0.754746;-2.998208;-0.084791;, + 1.207143;-1.565834;-0.160260;, + 0.000000;-1.811853;-0.407172;, + 1.207143;-1.565834;-0.160260;, + 1.207143; 0.848453;-0.114428;, + 0.000000; 0.793238;-0.357718;, + 0.000000;-1.811853;-0.407172;, + -1.207143;-1.565834; 2.061798;, + -1.207143; 0.848453; 2.299859;, + 0.000000; 0.793238; 2.418884;, + 0.000000;-1.811853; 2.162010;, + 0.000000;-4.017673;-0.152394;, + 0.394190;-3.610095;-0.083093;, + 0.754746;-2.998208;-0.084791;, + 0.000000;-3.357429;-0.154227;, + 0.000000;-3.357429; 1.267141;, + -0.754746;-2.998208; 1.232472;, + -1.207143;-1.565834; 2.061798;, + 0.000000;-1.811853; 2.162010;, + -1.207143;-1.565834;-0.160260;, + -1.207143;-1.565834; 2.061798;, + -0.754746;-2.998208; 1.232472;, + -0.754746;-2.998208;-0.084791;, + 1.207143;-1.565834; 2.061798;, + 1.207143;-1.565834;-0.160260;, + 0.754746;-2.998208;-0.084791;, + 0.754746;-2.998208; 1.232472;, + 0.000000;-4.017673;-0.152394;, + -0.394190;-3.610095;-0.083093;, + -0.394190;-3.610095; 0.502768;, + 0.000000;-4.017673; 0.479768;, + 0.754746;-2.998208; 1.232472;, + 0.754746;-2.998208;-0.084791;, + 0.394190;-3.610095;-0.083093;, + 0.394190;-3.610095; 0.502768;, + 0.000000;-4.017673; 0.479768;, + -0.394190;-3.610095; 0.502768;, + -0.754746;-2.998208; 1.232472;, + 0.000000;-3.357429; 1.267141;, + -0.754746;-2.998208;-0.084791;, + -0.754746;-2.998208; 1.232472;, + -0.394190;-3.610095; 0.502768;, + -0.394190;-3.610095;-0.083093;, + 0.000000; 1.954336; 0.156781;, + -0.889277; 1.924510; 0.203438;, + -0.697598; 1.641988;-0.148365;, + 0.000000; 1.649486;-0.222824;, + 0.000000; 1.649486; 1.282635;, + 0.697598; 1.641988; 1.246832;, + 1.207143; 0.848453; 2.299859;, + 0.000000; 0.793238; 2.418884;, + 0.697598; 1.641988; 1.246832;, + 0.697598; 1.641988;-0.148365;, + 1.207143; 0.848453;-0.114428;, + 1.207143; 0.848453; 2.299859;, + -1.207143; 0.848453; 2.299859;, + -1.207143; 0.848453;-0.114428;, + -0.697598; 1.641988;-0.148365;, + -0.697598; 1.641988; 1.246832;, + 0.000000; 2.397149;-0.077860;, + -1.106733; 2.334890;-0.014018;, + -0.889277; 1.924510; 0.203438;, + 0.000000; 1.954336; 0.156781;, + -0.697598; 1.641988; 1.246832;, + -0.697598; 1.641988;-0.148365;, + -0.889277; 1.924510; 0.203438;, + -0.889277; 1.924510; 1.981993;, + 0.000000; 1.954336; 2.075897;, + 0.889277; 1.924510; 1.981993;, + 0.697598; 1.641988; 1.246832;, + 0.000000; 1.649486; 1.282635;, + 0.889277; 1.924510; 1.981993;, + 0.889277; 1.924510; 0.203438;, + 0.697598; 1.641988;-0.148365;, + 0.697598; 1.641988; 1.246832;, + 0.000000; 2.954030; 0.088741;, + -0.754683; 2.850984; 0.140381;, + -1.106733; 2.334890;-0.014018;, + 0.000000; 2.397149;-0.077860;, + 1.106733; 2.334890; 2.199448;, + 1.106733; 2.334890;-0.014018;, + 0.889277; 1.924510; 0.203438;, + 0.889277; 1.924510; 1.981993;, + -0.889277; 1.924510; 1.981993;, + -0.889277; 1.924510; 0.203438;, + -1.106733; 2.334890;-0.014018;, + -1.106733; 2.334890; 2.199448;, + 0.000000; 2.397149; 2.310538;, + 1.106733; 2.334890; 2.199448;, + 0.889277; 1.924510; 1.981993;, + 0.000000; 1.954336; 2.075897;, + 0.052044; 3.134467; 0.095083;, + -0.512813; 2.991794; 0.145328;, + -0.754683; 2.850984; 0.140381;, + 0.000000; 2.954030; 0.088741;, + -1.106733; 2.334890; 2.199448;, + -1.106733; 2.334890;-0.014018;, + -0.754683; 2.850984; 0.140381;, + -0.754683; 2.850984; 1.847398;, + 0.000000; 2.954030; 1.930665;, + 0.754683; 2.850984; 1.847398;, + 1.106733; 2.334890; 2.199448;, + 0.000000; 2.397149; 2.310538;, + 0.754683; 2.850984; 1.847398;, + 0.754683; 2.850984; 0.140381;, + 1.106733; 2.334890;-0.014018;, + 1.106733; 2.334890; 2.199448;, + 0.037324; 3.437407;-0.268378;, + -1.044630; 3.249253;-0.038202;, + -0.512813; 2.991794; 0.145328;, + 0.052044; 3.134467; 0.095083;, + 0.046281; 3.357266; 1.286510;, + 0.603937; 3.251096; 1.251353;, + 0.754683; 2.850984; 1.847398;, + 0.000000; 2.954030; 1.930665;, + 0.603937; 3.251096; 1.251353;, + 0.609278; 3.044615; 0.147188;, + 0.754683; 2.850984; 0.140381;, + 0.754683; 2.850984; 1.847398;, + -0.754683; 2.850984; 1.847398;, + -0.754683; 2.850984; 0.140381;, + -0.512813; 2.991794; 0.145328;, + -0.518154; 3.198276; 1.249492;, + -0.014320; 5.258876;-0.451437;, + -1.092491; 4.943257;-0.188008;, + -1.044630; 3.249253;-0.038202;, + 0.037324; 3.437407;-0.268378;, + -0.518154; 3.198276; 1.249492;, + -0.512813; 2.991794; 0.145328;, + -1.044630; 3.249253;-0.038202;, + -1.054904; 3.646428; 2.085701;, + 0.026238; 3.865972; 2.183405;, + 1.103537; 3.745837; 2.077552;, + 0.603937; 3.251096; 1.251353;, + 0.046281; 3.357266; 1.286510;, + 1.103537; 3.745837; 2.077552;, + 1.113811; 3.348662;-0.046351;, + 0.609278; 3.044615; 0.147188;, + 0.603937; 3.251096; 1.251353;, + -0.058332; 6.253111;-0.308079;, + -0.589462; 5.886722;-0.215508;, + -1.092491; 4.943257;-0.188008;, + -0.014320; 5.258876;-0.451437;, + -1.054904; 3.646428; 2.085701;, + -1.044630; 3.249253;-0.038202;, + -1.092491; 4.943257;-0.188008;, + -1.102765; 4.669911; 1.894075;, + -0.025405; 4.970342; 1.976635;, + 1.055676; 4.769320; 1.885926;, + 1.103537; 3.745837; 2.077552;, + 0.026238; 3.865972; 2.183405;, + 1.055676; 4.769320; 1.885926;, + 1.065950; 5.030777;-0.235848;, + 1.113811; 3.348662;-0.046351;, + 1.103537; 3.745837; 2.077552;, + -0.058332; 6.253111;-0.308079;, + 0.481344; 5.930141;-0.239242;, + 0.476247; 5.448880; 1.050888;, + -0.063831; 5.730633; 1.073387;, + 0.476247; 5.448880; 1.050888;, + 0.481344; 5.930141;-0.239242;, + 1.065950; 5.030777;-0.235848;, + 1.055676; 4.769320; 1.885926;, + -1.102765; 4.669911; 1.894075;, + -1.092491; 4.943257;-0.188008;, + -0.589462; 5.886722;-0.215508;, + -0.594559; 5.399563; 1.054930;, + -0.063831; 5.730633; 1.073387;, + 0.476247; 5.448880; 1.050888;, + 1.055676; 4.769320; 1.885926;, + -0.025405; 4.970342; 1.976635;, + 1.927217;-0.178291; 1.340505;, + 1.927217;-0.178291; 1.803474;, + 1.818528;-0.039697; 1.803474;, + 1.818528;-0.039697; 1.340505;, + 1.944126; 0.567656; 1.340505;, + 1.117424; 1.717077; 0.118293;, + 1.117424; 1.717077; 0.696181;, + 1.944126; 0.567656; 1.803474;, + 1.117424; 1.717077; 0.118293;, + 0.960650; 0.958966; 0.118293;, + 0.960650; 0.958966; 0.696181;, + 1.117424; 1.717077; 0.696181;, + 0.960650; 0.958966; 0.118293;, + 1.818528;-0.039697; 1.340505;, + 1.818528;-0.039697; 1.803474;, + 0.960650; 0.958966; 0.696181;, + 0.960650; 0.958966; 0.118293;, + 1.117424; 1.717077; 0.118293;, + 1.944126; 0.567656; 1.340505;, + 1.818528;-0.039697; 1.340505;, + 1.818528;-0.039697; 1.803474;, + 1.944126; 0.567656; 1.803474;, + 1.117424; 1.717077; 0.696181;, + 0.960650; 0.958966; 0.696181;, + 2.563935;-2.600637;-1.705319;, + 2.563935;-2.600637;-1.127432;, + 1.927217;-0.178291; 1.803474;, + 1.927217;-0.178291; 1.340505;, + 2.052814; 0.429062; 1.803474;, + 2.052814; 0.429062; 1.340505;, + 1.944126; 0.567656; 1.340505;, + 1.944126; 0.567656; 1.803474;, + 2.052814; 0.429062; 1.340505;, + 1.927217;-0.178291; 1.340505;, + 1.818528;-0.039697; 1.340505;, + 1.944126; 0.567656; 1.340505;, + 1.927217;-0.178291; 1.803474;, + 2.052814; 0.429062; 1.803474;, + 1.944126; 0.567656; 1.803474;, + 1.818528;-0.039697; 1.803474;, + 2.563935;-2.600637;-1.705319;, + 2.720709;-1.842527;-1.705319;, + 2.720709;-1.842527;-1.127432;, + 2.563935;-2.600637;-1.127432;, + 2.563935;-2.600637;-1.127432;, + 2.720709;-1.842527;-1.127432;, + 2.052814; 0.429062; 1.803474;, + 1.927217;-0.178291; 1.803474;, + 2.720709;-1.842527;-1.127432;, + 2.720709;-1.842527;-1.705319;, + 2.052814; 0.429062; 1.340505;, + 2.052814; 0.429062; 1.803474;, + 2.720709;-1.842527;-1.705319;, + 2.563935;-2.600637;-1.705319;, + 1.927217;-0.178291; 1.340505;, + 2.052814; 0.429062; 1.340505;, + 2.087688; 1.787264; 2.217100;, + 2.087688; 1.787264; 2.646394;, + 1.975209; 1.753564; 2.646394;, + 1.975209; 1.753564; 2.217100;, + 1.944670; 2.382095; 2.217100;, + 0.670069; 2.176223; 0.318695;, + 0.670069; 2.176223; 0.747989;, + 1.944670; 2.382095; 2.646394;, + 0.670069; 2.176223; 0.318695;, + 0.700608; 1.547692; 0.318695;, + 0.700608; 1.547692; 0.747989;, + 0.670069; 2.176223; 0.747989;, + 0.700608; 1.547692; 0.318695;, + 1.975209; 1.753564; 2.217100;, + 1.975209; 1.753564; 2.646394;, + 0.700608; 1.547692; 0.747989;, + 0.700608; 1.547692; 0.318695;, + 0.670069; 2.176223; 0.318695;, + 1.944670; 2.382095; 2.217100;, + 1.975209; 1.753564; 2.217100;, + 1.975209; 1.753564; 2.646394;, + 1.944670; 2.382095; 2.646394;, + 0.670069; 2.176223; 0.747989;, + 0.700608; 1.547692; 0.747989;, + 3.505196; 1.864721;-1.578208;, + 3.505196; 1.864721;-1.148914;, + 2.087688; 1.787264; 2.646394;, + 2.087688; 1.787264; 2.217100;, + 2.057148; 2.415795; 2.646394;, + 2.057148; 2.415795; 2.217100;, + 1.944670; 2.382095; 2.217100;, + 1.944670; 2.382095; 2.646394;, + 2.057148; 2.415795; 2.217100;, + 2.087688; 1.787264; 2.217100;, + 1.975209; 1.753564; 2.217100;, + 1.944670; 2.382095; 2.217100;, + 2.087688; 1.787264; 2.646394;, + 2.057148; 2.415795; 2.646394;, + 1.944670; 2.382095; 2.646394;, + 1.975209; 1.753564; 2.646394;, + 3.505196; 1.864721;-1.578208;, + 3.474657; 2.493252;-1.578208;, + 3.474657; 2.493252;-1.148914;, + 3.505196; 1.864721;-1.148914;, + 3.505196; 1.864721;-1.148914;, + 3.474657; 2.493252;-1.148914;, + 2.057148; 2.415795; 2.646394;, + 2.087688; 1.787264; 2.646394;, + 3.474657; 2.493252;-1.148914;, + 3.474657; 2.493252;-1.578208;, + 2.057148; 2.415795; 2.217100;, + 2.057148; 2.415795; 2.646394;, + 3.474657; 2.493252;-1.578208;, + 3.505196; 1.864721;-1.578208;, + 2.087688; 1.787264; 2.217100;, + 2.057148; 2.415795; 2.217100;, + 2.058483; 3.786135; 1.232689;, + 2.058483; 3.786135; 1.661983;, + 1.950418; 3.701648; 1.661983;, + 1.950418; 3.701648; 1.232689;, + 1.873854; 4.305515; 1.232689;, + 0.832739; 3.408118; 0.367431;, + 0.832739; 3.408118; 0.796725;, + 1.873854; 4.305515; 1.661983;, + 0.832739; 3.408118; 0.367431;, + 0.909303; 2.804250; 0.367431;, + 0.909303; 2.804250; 0.796725;, + 0.832739; 3.408118; 0.796725;, + 0.909303; 2.804250; 0.367431;, + 1.950418; 3.701648; 1.232689;, + 1.950418; 3.701648; 1.661983;, + 0.909303; 2.804250; 0.796725;, + 0.909303; 2.804250; 0.367431;, + 0.832739; 3.408118; 0.367431;, + 1.873854; 4.305515; 1.232689;, + 1.950418; 3.701648; 1.232689;, + 1.950418; 3.701648; 1.661983;, + 1.873854; 4.305515; 1.661983;, + 0.832739; 3.408118; 0.796725;, + 0.909303; 2.804250; 0.796725;, + 2.306866; 4.951811;-1.582934;, + 2.306866; 4.951811;-1.153640;, + 2.058483; 3.786135; 1.661983;, + 2.058483; 3.786135; 1.232689;, + 1.981918; 4.390002; 1.661983;, + 1.981918; 4.390002; 1.232689;, + 1.873854; 4.305515; 1.232689;, + 1.873854; 4.305515; 1.661983;, + 1.981918; 4.390002; 1.232689;, + 2.058483; 3.786135; 1.232689;, + 1.950418; 3.701648; 1.232689;, + 1.873854; 4.305515; 1.232689;, + 2.058483; 3.786135; 1.661983;, + 1.981918; 4.390002; 1.661983;, + 1.873854; 4.305515; 1.661983;, + 1.950418; 3.701648; 1.661983;, + 2.306866; 4.951811;-1.582934;, + 2.230301; 5.555677;-1.582934;, + 2.230301; 5.555677;-1.153640;, + 2.306866; 4.951811;-1.153640;, + 2.306866; 4.951811;-1.153640;, + 2.230301; 5.555677;-1.153640;, + 1.981918; 4.390002; 1.661983;, + 2.058483; 3.786135; 1.661983;, + 2.230301; 5.555677;-1.153640;, + 2.230301; 5.555677;-1.582934;, + 1.981918; 4.390002; 1.232689;, + 1.981918; 4.390002; 1.661983;, + 2.230301; 5.555677;-1.582934;, + 2.306866; 4.951811;-1.582934;, + 2.058483; 3.786135; 1.232689;, + 1.981918; 4.390002; 1.232689;, + -2.063160;-0.178291; 1.340505;, + -2.063160;-0.178291; 1.803474;, + -1.954471;-0.039697; 1.803474;, + -1.954471;-0.039697; 1.340505;, + -2.080069; 0.567656; 1.340505;, + -1.253367; 1.717077; 0.118293;, + -1.253367; 1.717077; 0.696181;, + -2.080069; 0.567656; 1.803474;, + -1.253367; 1.717077; 0.118293;, + -1.096593; 0.958966; 0.118293;, + -1.096593; 0.958966; 0.696181;, + -1.253367; 1.717077; 0.696181;, + -1.096593; 0.958966; 0.118293;, + -1.954471;-0.039697; 1.340505;, + -1.954471;-0.039697; 1.803474;, + -1.096593; 0.958966; 0.696181;, + -1.096593; 0.958966; 0.118293;, + -1.253367; 1.717077; 0.118293;, + -2.080069; 0.567656; 1.340505;, + -1.954471;-0.039697; 1.340505;, + -1.954471;-0.039697; 1.803474;, + -2.080069; 0.567656; 1.803474;, + -1.253367; 1.717077; 0.696181;, + -1.096593; 0.958966; 0.696181;, + -2.699878;-2.600637;-1.705319;, + -2.699878;-2.600637;-1.127432;, + -2.063160;-0.178291; 1.803474;, + -2.063160;-0.178291; 1.340505;, + -2.188757; 0.429062; 1.803474;, + -2.188757; 0.429062; 1.340505;, + -2.080069; 0.567656; 1.340505;, + -2.080069; 0.567656; 1.803474;, + -2.188757; 0.429062; 1.340505;, + -2.063160;-0.178291; 1.340505;, + -1.954471;-0.039697; 1.340505;, + -2.080069; 0.567656; 1.340505;, + -2.063160;-0.178291; 1.803474;, + -2.188757; 0.429062; 1.803474;, + -2.080069; 0.567656; 1.803474;, + -1.954471;-0.039697; 1.803474;, + -2.699878;-2.600637;-1.705319;, + -2.856652;-1.842527;-1.705319;, + -2.856652;-1.842527;-1.127432;, + -2.699878;-2.600637;-1.127432;, + -2.699878;-2.600637;-1.127432;, + -2.856652;-1.842527;-1.127432;, + -2.188757; 0.429062; 1.803474;, + -2.063160;-0.178291; 1.803474;, + -2.856652;-1.842527;-1.127432;, + -2.856652;-1.842527;-1.705319;, + -2.188757; 0.429062; 1.340505;, + -2.188757; 0.429062; 1.803474;, + -2.856652;-1.842527;-1.705319;, + -2.699878;-2.600637;-1.705319;, + -2.063160;-0.178291; 1.340505;, + -2.188757; 0.429062; 1.340505;, + -2.223631; 1.787264; 2.217100;, + -2.223631; 1.787264; 2.646394;, + -2.111152; 1.753564; 2.646394;, + -2.111152; 1.753564; 2.217100;, + -2.080613; 2.382095; 2.217100;, + -0.806012; 2.176223; 0.318695;, + -0.806012; 2.176223; 0.747989;, + -2.080613; 2.382095; 2.646394;, + -0.806012; 2.176223; 0.318695;, + -0.836551; 1.547692; 0.318695;, + -0.836551; 1.547692; 0.747989;, + -0.806012; 2.176223; 0.747989;, + -0.836551; 1.547692; 0.318695;, + -2.111152; 1.753564; 2.217100;, + -2.111152; 1.753564; 2.646394;, + -0.836551; 1.547692; 0.747989;, + -0.836551; 1.547692; 0.318695;, + -0.806012; 2.176223; 0.318695;, + -2.080613; 2.382095; 2.217100;, + -2.111152; 1.753564; 2.217100;, + -2.111152; 1.753564; 2.646394;, + -2.080613; 2.382095; 2.646394;, + -0.806012; 2.176223; 0.747989;, + -0.836551; 1.547692; 0.747989;, + -3.641139; 1.864721;-1.578208;, + -3.641139; 1.864721;-1.148914;, + -2.223631; 1.787264; 2.646394;, + -2.223631; 1.787264; 2.217100;, + -2.193091; 2.415795; 2.646394;, + -2.193091; 2.415795; 2.217100;, + -2.080613; 2.382095; 2.217100;, + -2.080613; 2.382095; 2.646394;, + -2.193091; 2.415795; 2.217100;, + -2.223631; 1.787264; 2.217100;, + -2.111152; 1.753564; 2.217100;, + -2.080613; 2.382095; 2.217100;, + -2.223631; 1.787264; 2.646394;, + -2.193091; 2.415795; 2.646394;, + -2.080613; 2.382095; 2.646394;, + -2.111152; 1.753564; 2.646394;, + -3.641139; 1.864721;-1.578208;, + -3.610600; 2.493252;-1.578208;, + -3.610600; 2.493252;-1.148914;, + -3.641139; 1.864721;-1.148914;, + -3.641139; 1.864721;-1.148914;, + -3.610600; 2.493252;-1.148914;, + -2.193091; 2.415795; 2.646394;, + -2.223631; 1.787264; 2.646394;, + -3.610600; 2.493252;-1.148914;, + -3.610600; 2.493252;-1.578208;, + -2.193091; 2.415795; 2.217100;, + -2.193091; 2.415795; 2.646394;, + -3.610600; 2.493252;-1.578208;, + -3.641139; 1.864721;-1.578208;, + -2.223631; 1.787264; 2.217100;, + -2.193091; 2.415795; 2.217100;, + -2.194426; 3.786135; 1.232689;, + -2.194426; 3.786135; 1.661983;, + -2.086361; 3.701648; 1.661983;, + -2.086361; 3.701648; 1.232689;, + -2.009797; 4.305515; 1.232689;, + -0.968682; 3.408118; 0.367431;, + -0.968682; 3.408118; 0.796725;, + -2.009797; 4.305515; 1.661983;, + -0.968682; 3.408118; 0.367431;, + -1.045246; 2.804250; 0.367431;, + -1.045246; 2.804250; 0.796725;, + -0.968682; 3.408118; 0.796725;, + -1.045246; 2.804250; 0.367431;, + -2.086361; 3.701648; 1.232689;, + -2.086361; 3.701648; 1.661983;, + -1.045246; 2.804250; 0.796725;, + -1.045246; 2.804250; 0.367431;, + -0.968682; 3.408118; 0.367431;, + -2.009797; 4.305515; 1.232689;, + -2.086361; 3.701648; 1.232689;, + -2.086361; 3.701648; 1.661983;, + -2.009797; 4.305515; 1.661983;, + -0.968682; 3.408118; 0.796725;, + -1.045246; 2.804250; 0.796725;, + -2.442809; 4.951811;-1.582934;, + -2.442809; 4.951811;-1.153640;, + -2.194426; 3.786135; 1.661983;, + -2.194426; 3.786135; 1.232689;, + -2.117861; 4.390002; 1.661983;, + -2.117861; 4.390002; 1.232689;, + -2.009797; 4.305515; 1.232689;, + -2.009797; 4.305515; 1.661983;, + -2.117861; 4.390002; 1.232689;, + -2.194426; 3.786135; 1.232689;, + -2.086361; 3.701648; 1.232689;, + -2.009797; 4.305515; 1.232689;, + -2.194426; 3.786135; 1.661983;, + -2.117861; 4.390002; 1.661983;, + -2.009797; 4.305515; 1.661983;, + -2.086361; 3.701648; 1.661983;, + -2.442809; 4.951811;-1.582934;, + -2.366244; 5.555677;-1.582934;, + -2.366244; 5.555677;-1.153640;, + -2.442809; 4.951811;-1.153640;, + -2.442809; 4.951811;-1.153640;, + -2.366244; 5.555677;-1.153640;, + -2.117861; 4.390002; 1.661983;, + -2.194426; 3.786135; 1.661983;, + -2.366244; 5.555677;-1.153640;, + -2.366244; 5.555677;-1.582934;, + -2.117861; 4.390002; 1.232689;, + -2.117861; 4.390002; 1.661983;, + -2.366244; 5.555677;-1.582934;, + -2.442809; 4.951811;-1.582934;, + -2.194426; 3.786135; 1.232689;, + -2.117861; 4.390002; 1.232689;, + 0.697598; 1.641988;-0.148365;, + 0.000000; 1.649486;-0.222824;, + 0.000000; 0.793238;-0.357718;, + 1.207143; 0.848453;-0.114428;, + -0.754746;-2.998208;-0.084791;, + 0.000000;-3.357429;-0.154227;, + 0.000000;-1.811853;-0.407172;, + -1.207143;-1.565834;-0.160260;, + 0.000000;-1.811853;-0.407172;, + 0.000000; 0.793238;-0.357718;, + -1.207143; 0.848453;-0.114428;, + -1.207143;-1.565834;-0.160260;, + 0.000000;-1.811853; 2.162010;, + 0.000000; 0.793238; 2.418884;, + 1.207143; 0.848453; 2.299859;, + 1.207143;-1.565834; 2.061798;, + -0.394190;-3.610095;-0.083093;, + 0.000000;-4.017673;-0.152394;, + 0.000000;-3.357429;-0.154227;, + -0.754746;-2.998208;-0.084791;, + 0.754746;-2.998208; 1.232472;, + 0.000000;-3.357429; 1.267141;, + 0.000000;-1.811853; 2.162010;, + 1.207143;-1.565834; 2.061798;, + 0.394190;-3.610095;-0.083093;, + 0.000000;-4.017673;-0.152394;, + 0.000000;-4.017673; 0.479768;, + 0.394190;-3.610095; 0.502768;, + 0.394190;-3.610095; 0.502768;, + 0.000000;-4.017673; 0.479768;, + 0.000000;-3.357429; 1.267141;, + 0.754746;-2.998208; 1.232472;, + 0.889277; 1.924510; 0.203438;, + 0.000000; 1.954336; 0.156781;, + 0.000000; 1.649486;-0.222824;, + 0.697598; 1.641988;-0.148365;, + -0.697598; 1.641988; 1.246832;, + 0.000000; 1.649486; 1.282635;, + 0.000000; 0.793238; 2.418884;, + -1.207143; 0.848453; 2.299859;, + 1.106733; 2.334890;-0.014018;, + 0.000000; 2.397149;-0.077860;, + 0.000000; 1.954336; 0.156781;, + 0.889277; 1.924510; 0.203438;, + -0.889277; 1.924510; 1.981993;, + 0.000000; 1.954336; 2.075897;, + 0.000000; 1.649486; 1.282635;, + -0.697598; 1.641988; 1.246832;, + 0.754683; 2.850984; 0.140381;, + 0.000000; 2.954030; 0.088741;, + 0.000000; 2.397149;-0.077860;, + 1.106733; 2.334890;-0.014018;, + -1.106733; 2.334890; 2.199448;, + 0.000000; 2.397149; 2.310538;, + 0.000000; 1.954336; 2.075897;, + -0.889277; 1.924510; 1.981993;, + 0.609278; 3.044615; 0.147188;, + 0.052044; 3.134467; 0.095083;, + 0.000000; 2.954030; 0.088741;, + 0.754683; 2.850984; 0.140381;, + -0.754683; 2.850984; 1.847398;, + 0.000000; 2.954030; 1.930665;, + 0.000000; 2.397149; 2.310538;, + -1.106733; 2.334890; 2.199448;, + 1.113811; 3.348662;-0.046351;, + 0.037324; 3.437407;-0.268378;, + 0.052044; 3.134467; 0.095083;, + 0.609278; 3.044615; 0.147188;, + -0.518154; 3.198276; 1.249492;, + 0.046281; 3.357266; 1.286510;, + 0.000000; 2.954030; 1.930665;, + -0.754683; 2.850984; 1.847398;, + 1.065950; 5.030777;-0.235848;, + -0.014320; 5.258876;-0.451437;, + 0.037324; 3.437407;-0.268378;, + 1.113811; 3.348662;-0.046351;, + -1.054904; 3.646428; 2.085701;, + 0.026238; 3.865972; 2.183405;, + 0.046281; 3.357266; 1.286510;, + -0.518154; 3.198276; 1.249492;, + 0.481344; 5.930141;-0.239242;, + -0.058332; 6.253111;-0.308079;, + -0.014320; 5.258876;-0.451437;, + 1.065950; 5.030777;-0.235848;, + -1.102765; 4.669911; 1.894075;, + -0.025405; 4.970342; 1.976635;, + 0.026238; 3.865972; 2.183405;, + -1.054904; 3.646428; 2.085701;, + -0.589462; 5.886722;-0.215508;, + -0.058332; 6.253111;-0.308079;, + -0.063831; 5.730633; 1.073387;, + -0.594559; 5.399563; 1.054930;, + -0.594559; 5.399563; 1.054930;, + -0.063831; 5.730633; 1.073387;, + -0.025405; 4.970342; 1.976635;, + -1.102765; 4.669911; 1.894075;, + 1.149048; 5.755170; 2.593041;, + 1.360315; 5.755170; 2.593041;, + 1.360315; 5.755170; 2.763561;, + 1.149048; 5.755170; 2.763561;, + -0.532928; 4.034887; 1.678477;, + -0.744195; 4.034887; 1.678477;, + -0.744195; 4.255737; 2.551880;, + -0.532928; 4.255737; 2.551880;, + 0.548626; 4.255737; 2.551880;, + 0.548626; 4.467005; 2.551880;, + 0.548626; 4.467005; 2.722400;, + 0.548626; 4.255737; 2.722400;, + 0.759894; 4.467005; 2.551880;, + 0.759894; 4.255737; 2.551880;, + 0.759894; 4.255737; 2.722400;, + 0.759894; 4.467005; 2.722400;, + 1.900347; 0.355355; 2.671022;, + -0.099653; 0.355355; 2.671022;, + -0.013057; 2.355355; 2.231760;, + 0.428951; 2.355355; 2.231760;, + -0.116855;-1.491917; 2.671022;, + -2.116855;-1.491917; 2.671022;, + -2.116855; 0.355355; 2.671022;, + -0.116855; 0.355355; 2.671022;, + 0.759894; 4.467005; 2.551880;, + 0.759894; 4.467005; 2.722400;, + 1.360315; 5.755170; 2.763561;, + 1.360315; 5.755170; 2.593041;, + -0.532928; 4.255737; 2.551880;, + -0.744195; 4.255737; 2.551880;, + -0.744195; 4.255737; 2.722400;, + -0.532928; 4.255737; 2.722400;, + -0.648334;-3.216755; 2.671022;, + -1.585377;-3.216755; 2.671022;, + -2.116855;-1.491917; 2.671022;, + -0.116855;-1.491917; 2.671022;, + 0.548626; 4.246155; 1.678477;, + 0.759894; 4.246155; 1.678477;, + 0.759894; 4.467005; 2.551880;, + 0.548626; 4.467005; 2.551880;, + 1.149048; 5.755170; 2.763561;, + 1.360315; 5.755170; 2.763561;, + 0.759894; 4.467005; 2.722400;, + 0.548626; 4.467005; 2.722400;, + -0.532928; 4.467005; 2.551880;, + -0.532928; 4.467005; 2.722400;, + -1.131419; 5.755170; 2.763561;, + -1.131419; 5.755170; 2.593041;, + 0.759894; 4.246155; 1.678477;, + 0.759894; 4.034887; 1.678477;, + 0.759894; 4.255737; 2.551880;, + 0.759894; 4.467005; 2.551880;, + -0.532928; 4.467005; 2.551880;, + -0.532928; 4.255737; 2.551880;, + -0.532928; 4.255737; 2.722400;, + -0.532928; 4.467005; 2.722400;, + 0.548626; 4.467005; 2.551880;, + 0.759894; 4.467005; 2.551880;, + 1.360315; 5.755170; 2.593041;, + 1.149048; 5.755170; 2.593041;, + -0.532928; 4.034887; 1.678477;, + -0.532928; 4.246155; 1.678477;, + -0.744195; 4.246155; 1.678477;, + -0.744195; 4.034887; 1.678477;, + 1.368868;-3.216755; 2.671022;, + 0.431826;-3.216755; 2.671022;, + -0.099653;-1.491917; 2.671022;, + 1.900347;-1.491917; 2.671022;, + -0.744195; 4.034887; 1.678477;, + -0.744195; 4.246155; 1.678477;, + -0.744195; 4.467005; 2.551880;, + -0.744195; 4.255737; 2.551880;, + 0.548626; 4.255737; 2.722400;, + 0.548626; 4.467005; 2.722400;, + 0.759894; 4.467005; 2.722400;, + 0.759894; 4.255737; 2.722400;, + 0.759894; 4.255737; 2.551880;, + 0.548626; 4.255737; 2.551880;, + 0.548626; 4.255737; 2.722400;, + 0.759894; 4.255737; 2.722400;, + -0.744195; 4.467005; 2.551880;, + -0.532928; 4.467005; 2.551880;, + -1.131419; 5.755170; 2.593041;, + -1.342687; 5.755170; 2.593041;, + -0.532928; 4.246155; 1.678477;, + -0.532928; 4.034887; 1.678477;, + -0.532928; 4.255737; 2.551880;, + -0.532928; 4.467005; 2.551880;, + 0.759894; 4.034887; 1.678477;, + 0.759894; 4.246155; 1.678477;, + 0.548626; 4.246155; 1.678477;, + 0.548626; 4.034887; 1.678477;, + 0.759894; 4.034887; 1.678477;, + 0.548626; 4.034887; 1.678477;, + 0.548626; 4.255737; 2.551880;, + 0.759894; 4.255737; 2.551880;, + -0.744195; 4.246155; 1.678477;, + -0.532928; 4.246155; 1.678477;, + -0.532928; 4.467005; 2.551880;, + -0.744195; 4.467005; 2.551880;, + -0.744195; 4.255737; 2.551880;, + -0.744195; 4.467005; 2.551880;, + -0.744195; 4.467005; 2.722400;, + -0.744195; 4.255737; 2.722400;, + 0.548626; 4.467005; 2.722400;, + 0.548626; 4.467005; 2.551880;, + 1.149048; 5.755170; 2.593041;, + 1.149048; 5.755170; 2.763561;, + -1.342687; 5.755170; 2.763561;, + -1.131419; 5.755170; 2.763561;, + -0.532928; 4.467005; 2.722400;, + -0.744195; 4.467005; 2.722400;, + -0.744195; 4.255737; 2.722400;, + -0.744195; 4.467005; 2.722400;, + -0.532928; 4.467005; 2.722400;, + -0.532928; 4.255737; 2.722400;, + 0.548626; 4.034887; 1.678477;, + 0.548626; 4.246155; 1.678477;, + 0.548626; 4.467005; 2.551880;, + 0.548626; 4.255737; 2.551880;, + 1.900347;-1.491917; 2.671022;, + -0.099653;-1.491917; 2.671022;, + -0.099653; 0.355355; 2.671022;, + 1.900347; 0.355355; 2.671022;, + -1.342687; 5.755170; 2.593041;, + -1.131419; 5.755170; 2.593041;, + -1.131419; 5.755170; 2.763561;, + -1.342687; 5.755170; 2.763561;, + -0.744195; 4.467005; 2.722400;, + -0.744195; 4.467005; 2.551880;, + -1.342687; 5.755170; 2.593041;, + -1.342687; 5.755170; 2.763561;, + -0.116855; 0.355355; 2.671022;, + -2.116855; 0.355355; 2.671022;, + -0.592775; 2.355355; 2.231760;, + -0.150767; 2.355355; 2.231760;; + 188; + 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;; + MeshNormals { //Mesh Normals + 752; + -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.160879; 0.109711;-0.980858;, + -0.160879; 0.109711;-0.980858;, + -0.160879; 0.109711;-0.980858;, + -0.160879; 0.109711;-0.980858;, + 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.198803;-0.137217;-0.970386;, + 0.198803;-0.137217;-0.970386;, + 0.198803;-0.137217;-0.970386;, + 0.198803;-0.137217;-0.970386;, + 0.196717; 0.018609;-0.980284;, + 0.196717; 0.018609;-0.980284;, + 0.196717; 0.018609;-0.980284;, + 0.196717; 0.018609;-0.980284;, + -0.102078;-0.097616; 0.989975;, + -0.102078;-0.097616; 0.989975;, + -0.102078;-0.097616; 0.989975;, + -0.102078;-0.097616; 0.989975;, + 0.149356;-0.045074;-0.987756;, + 0.149356;-0.045074;-0.987756;, + 0.149356;-0.045074;-0.987756;, + 0.149356;-0.045074;-0.987756;, + -0.215544;-0.513602; 0.830515;, + -0.215544;-0.513602; 0.830515;, + -0.215544;-0.513602; 0.830515;, + -0.215544;-0.513602; 0.830515;, + -0.953570;-0.301173; 0.000000;, + -0.953570;-0.301173; 0.000000;, + -0.953570;-0.301173; 0.000000;, + -0.953570;-0.301173; 0.000000;, + 0.953570;-0.301173; 0.000000;, + 0.953570;-0.301173; 0.000000;, + 0.953570;-0.301173; 0.000000;, + 0.953570;-0.301173; 0.000000;, + -0.718815;-0.695202; 0.000000;, + -0.718815;-0.695202; 0.000000;, + -0.718815;-0.695202; 0.000000;, + -0.718815;-0.695202; 0.000000;, + 0.861551;-0.507672; 0.000000;, + 0.861551;-0.507672; 0.000000;, + 0.861551;-0.507672; 0.000000;, + 0.861551;-0.507672; 0.000000;, + -0.487294;-0.722679; 0.490183;, + -0.487294;-0.722679; 0.490183;, + -0.487294;-0.722679; 0.490183;, + -0.487294;-0.722679; 0.490183;, + -0.861551;-0.507672; 0.000000;, + -0.861551;-0.507672; 0.000000;, + -0.861551;-0.507672; 0.000000;, + -0.861551;-0.507672; 0.000000;, + -0.066586; 0.769377;-0.635315;, + -0.066586; 0.769377;-0.635315;, + -0.066586; 0.769377;-0.635315;, + -0.066586; 0.769377;-0.635315;, + 0.028478; 0.801478; 0.597345;, + 0.028478; 0.801478; 0.597345;, + 0.028478; 0.801478; 0.597345;, + 0.028478; 0.801478; 0.597345;, + 0.841460; 0.540319; 0.000000;, + 0.841460; 0.540319; 0.000000;, + 0.841460; 0.540319; 0.000000;, + 0.841460; 0.540319; 0.000000;, + -0.841460; 0.540319; 0.000000;, + -0.841460; 0.540319; 0.000000;, + -0.841460; 0.540319; 0.000000;, + -0.841460; 0.540319; 0.000000;, + -0.026901;-0.473392;-0.880441;, + -0.026901;-0.473392;-0.880441;, + -0.026901;-0.473392;-0.880441;, + -0.026901;-0.473392;-0.880441;, + -0.827520;-0.561437; 0.000000;, + -0.827520;-0.561437; 0.000000;, + -0.827520;-0.561437; 0.000000;, + -0.827520;-0.561437; 0.000000;, + 0.007294;-0.933725; 0.357916;, + 0.007294;-0.933725; 0.357916;, + 0.007294;-0.933725; 0.357916;, + 0.007294;-0.933725; 0.357916;, + 0.827520;-0.561437; 0.000000;, + 0.827520;-0.561437; 0.000000;, + 0.827520;-0.561437; 0.000000;, + 0.827520;-0.561437; 0.000000;, + -0.086369; 0.311450;-0.946329;, + -0.086369; 0.311450;-0.946329;, + -0.086369; 0.311450;-0.946329;, + -0.086369; 0.311450;-0.946329;, + 0.883614;-0.468216; 0.000000;, + 0.883614;-0.468216; 0.000000;, + 0.883614;-0.468216; 0.000000;, + 0.883614;-0.468216; 0.000000;, + -0.883614;-0.468216; 0.000000;, + -0.883614;-0.468216; 0.000000;, + -0.883614;-0.468216; 0.000000;, + -0.883614;-0.468216; 0.000000;, + 0.067629;-0.480548; 0.874357;, + 0.067629;-0.480548; 0.874357;, + 0.067629;-0.480548; 0.874357;, + 0.067629;-0.480548; 0.874357;, + -0.099647; 0.125854;-0.987032;, + -0.099647; 0.125854;-0.987032;, + -0.099647; 0.125854;-0.987032;, + -0.099647; 0.125854;-0.987032;, + -0.826102; 0.563521; 0.000000;, + -0.826102; 0.563521; 0.000000;, + -0.826102; 0.563521; 0.000000;, + -0.826102; 0.563521; 0.000000;, + 0.135484; 0.588278; 0.797228;, + 0.135484; 0.588278; 0.797228;, + 0.135484; 0.588278; 0.797228;, + 0.135484; 0.588278; 0.797228;, + 0.826102; 0.563521; 0.000000;, + 0.826102; 0.563521; 0.000000;, + 0.826102; 0.563521; 0.000000;, + 0.826102; 0.563521; 0.000000;, + 0.015601;-0.690576;-0.723091;, + 0.015601;-0.690576;-0.723091;, + 0.015601;-0.690576;-0.723091;, + 0.015601;-0.690576;-0.723091;, + 0.180001; 0.832443; 0.524059;, + 0.180001; 0.832443; 0.524059;, + 0.180001; 0.832443; 0.524059;, + 0.180001; 0.832443; 0.524059;, + 0.905797; 0.422696;-0.029326;, + 0.905797; 0.422696;-0.029326;, + 0.905797; 0.422696;-0.029326;, + 0.905797; 0.422696;-0.029326;, + -0.743195; 0.667173;-0.050416;, + -0.743195; 0.667173;-0.050416;, + -0.743195; 0.667173;-0.050416;, + -0.743195; 0.667173;-0.050416;, + -0.199925;-0.097968;-0.974901;, + -0.199925;-0.097968;-0.974901;, + -0.199925;-0.097968;-0.974901;, + -0.199925;-0.097968;-0.974901;, + -0.474231;-0.865811; 0.159615;, + -0.474231;-0.865811; 0.159615;, + -0.474231;-0.865811; 0.159615;, + -0.474231;-0.865811; 0.159615;, + -0.073445;-0.852790; 0.517064;, + -0.073445;-0.852790; 0.517064;, + -0.073445;-0.852790; 0.517064;, + -0.073445;-0.852790; 0.517064;, + 0.552994;-0.818501; 0.155737;, + 0.552994;-0.818501; 0.155737;, + 0.552994;-0.818501; 0.155737;, + 0.552994;-0.818501; 0.155737;, + -0.262428; 0.119418;-0.957534;, + -0.262428; 0.119418;-0.957534;, + -0.262428; 0.119418;-0.957534;, + -0.262428; 0.119418;-0.957534;, + -0.999356;-0.035683;-0.003832;, + -0.999356;-0.035683;-0.003832;, + -0.999356;-0.035683;-0.003832;, + -0.999356;-0.035683;-0.003832;, + 0.116790; 0.188045; 0.975192;, + 0.116790; 0.188045; 0.975192;, + 0.116790; 0.188045; 0.975192;, + 0.116790; 0.188045; 0.975192;, + 0.999349; 0.035876; 0.003690;, + 0.999349; 0.035876; 0.003690;, + 0.999349; 0.035876; 0.003690;, + 0.999349; 0.035876; 0.003690;, + 0.453429; 0.833755; 0.315047;, + 0.453429; 0.833755; 0.315047;, + 0.453429; 0.833755; 0.315047;, + 0.453429; 0.833755; 0.315047;, + 0.759366; 0.635055; 0.141663;, + 0.759366; 0.635055; 0.141663;, + 0.759366; 0.635055; 0.141663;, + 0.759366; 0.635055; 0.141663;, + -0.819802; 0.559257; 0.123106;, + -0.819802; 0.559257; 0.123106;, + -0.819802; 0.559257; 0.123106;, + -0.819802; 0.559257; 0.123106;, + 0.272867; 0.786303; 0.554320;, + 0.272867; 0.786303; 0.554320;, + 0.272867; 0.786303; 0.554320;, + 0.272867; 0.786303; 0.554320;, + 0.786887; 0.617097; 0.000000;, + 0.786887; 0.617097; 0.000000;, + 0.786887; 0.617097; 0.000000;, + 0.786887; 0.617097; 0.000000;, + -0.811829;-0.583895; 0.000000;, + -0.811829;-0.583895; 0.000000;, + -0.811829;-0.583895; 0.000000;, + -0.811829;-0.583895; 0.000000;, + 0.979280;-0.202511; 0.000000;, + 0.979280;-0.202511; 0.000000;, + 0.979280;-0.202511; 0.000000;, + 0.979280;-0.202511; 0.000000;, + 0.758551; 0.651614; 0.000000;, + 0.758551; 0.651614; 0.000000;, + 0.758551; 0.651614; 0.000000;, + 0.758551; 0.651614; 0.000000;, + -0.745109; 0.154085; 0.648899;, + -0.745109; 0.154085; 0.648899;, + -0.745109; 0.154085; 0.648899;, + -0.745109; 0.154085; 0.648899;, + 0.713053;-0.147456;-0.685429;, + 0.713053;-0.147456;-0.685429;, + 0.713053;-0.147456;-0.685429;, + 0.713053;-0.147456;-0.685429;, + 0.967147; 0.254217; 0.000000;, + 0.967147; 0.254217; 0.000000;, + 0.967147; 0.254217; 0.000000;, + 0.967147; 0.254217; 0.000000;, + -0.786887;-0.617097; 0.000000;, + -0.786887;-0.617097; 0.000000;, + -0.786887;-0.617097; 0.000000;, + -0.786887;-0.617097; 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.979280; 0.202511; 0.000000;, + -0.979280; 0.202511; 0.000000;, + -0.979280; 0.202511; 0.000000;, + -0.979280; 0.202511; 0.000000;, + -0.915380; 0.189297;-0.355310;, + -0.915380; 0.189297;-0.355310;, + -0.915380; 0.189297;-0.355310;, + -0.915380; 0.189297;-0.355310;, + -0.959391;-0.282081; 0.000000;, + -0.959391;-0.282081; 0.000000;, + -0.959391;-0.282081; 0.000000;, + -0.959391;-0.282081; 0.000000;, + 0.919689;-0.190187; 0.343514;, + 0.919689;-0.190187; 0.343514;, + 0.919689;-0.190187; 0.343514;, + 0.919689;-0.190187; 0.343514;, + -0.287003; 0.957930; 0.000000;, + -0.287003; 0.957930; 0.000000;, + -0.287003; 0.957930; 0.000000;, + -0.287003; 0.957930; 0.000000;, + 0.159452;-0.987206; 0.000000;, + 0.159452;-0.987206; 0.000000;, + 0.159452;-0.987206; 0.000000;, + 0.159452;-0.987206; 0.000000;, + 0.998822; 0.048531; 0.000000;, + 0.998822; 0.048531; 0.000000;, + 0.998822; 0.048531; 0.000000;, + 0.998822; 0.048531; 0.000000;, + -0.159452; 0.987206; 0.000000;, + -0.159452; 0.987206; 0.000000;, + -0.159452; 0.987206; 0.000000;, + -0.159452; 0.987206; 0.000000;, + -0.827535;-0.040209; 0.559973;, + -0.827535;-0.040209; 0.559973;, + -0.827535;-0.040209; 0.559973;, + -0.827535;-0.040209; 0.559973;, + 0.827535; 0.040209;-0.559973;, + 0.827535; 0.040209;-0.559973;, + 0.827535; 0.040209;-0.559973;, + 0.827535; 0.040209;-0.559973;, + -0.054562; 0.998510; 0.000000;, + -0.054562; 0.998510; 0.000000;, + -0.054562; 0.998510; 0.000000;, + -0.054562; 0.998510; 0.000000;, + 0.287004;-0.957929; 0.000000;, + 0.287004;-0.957929; 0.000000;, + 0.287004;-0.957929; 0.000000;, + 0.287004;-0.957929; 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.998822;-0.048531; 0.000000;, + -0.998822;-0.048531; 0.000000;, + -0.998822;-0.048531; 0.000000;, + -0.998822;-0.048531; 0.000000;, + -0.935521;-0.045456;-0.350335;, + -0.935521;-0.045456;-0.350335;, + -0.935521;-0.045456;-0.350335;, + -0.935521;-0.045456;-0.350335;, + 0.054562;-0.998510; 0.000000;, + 0.054562;-0.998510; 0.000000;, + 0.054562;-0.998510; 0.000000;, + 0.054562;-0.998510; 0.000000;, + 0.935521; 0.045456; 0.350335;, + 0.935521; 0.045456; 0.350335;, + 0.935521; 0.045456; 0.350335;, + 0.935521; 0.045456; 0.350335;, + -0.615920; 0.787809; 0.000000;, + -0.615920; 0.787809; 0.000000;, + -0.615920; 0.787809; 0.000000;, + -0.615920; 0.787809; 0.000000;, + 0.652891;-0.757452; 0.000000;, + 0.652891;-0.757452; 0.000000;, + 0.652891;-0.757452; 0.000000;, + 0.652891;-0.757452; 0.000000;, + 0.992058; 0.125784; 0.000000;, + 0.992058; 0.125784; 0.000000;, + 0.992058; 0.125784; 0.000000;, + 0.992058; 0.125784; 0.000000;, + -0.652892; 0.757451; 0.000000;, + -0.652892; 0.757451; 0.000000;, + -0.652892; 0.757451; 0.000000;, + -0.652892; 0.757451; 0.000000;, + -0.597869;-0.075804; 0.798001;, + -0.597869;-0.075804; 0.798001;, + -0.597869;-0.075804; 0.798001;, + -0.597869;-0.075804; 0.798001;, + 0.597869; 0.075804;-0.798001;, + 0.597869; 0.075804;-0.798001;, + 0.597869; 0.075804;-0.798001;, + 0.597869; 0.075804;-0.798001;, + -0.978043; 0.208402; 0.000000;, + -0.978043; 0.208402; 0.000000;, + -0.978043; 0.208402; 0.000000;, + -0.978043; 0.208402; 0.000000;, + 0.615923;-0.787806; 0.000000;, + 0.615923;-0.787806; 0.000000;, + 0.615923;-0.787806; 0.000000;, + 0.615923;-0.787806; 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.992058;-0.125784; 0.000000;, + -0.992058;-0.125784; 0.000000;, + -0.992058;-0.125784; 0.000000;, + -0.992058;-0.125784; 0.000000;, + -0.982531;-0.124576;-0.138250;, + -0.982531;-0.124576;-0.138250;, + -0.982531;-0.124576;-0.138250;, + -0.982531;-0.124576;-0.138250;, + 0.978043;-0.208402; 0.000000;, + 0.978043;-0.208402; 0.000000;, + 0.978043;-0.208402; 0.000000;, + 0.978043;-0.208402; 0.000000;, + 0.982531; 0.124576; 0.138250;, + 0.982531; 0.124576; 0.138250;, + 0.982531; 0.124576; 0.138250;, + 0.982531; 0.124576; 0.138250;, + 0.786888;-0.617096; 0.000000;, + 0.786888;-0.617096; 0.000000;, + 0.786888;-0.617096; 0.000000;, + 0.786888;-0.617096; 0.000000;, + -0.811829; 0.583895; 0.000000;, + -0.811829; 0.583895; 0.000000;, + -0.811829; 0.583895; 0.000000;, + -0.811829; 0.583895; 0.000000;, + 0.979280; 0.202510; 0.000000;, + 0.979280; 0.202510; 0.000000;, + 0.979280; 0.202510; 0.000000;, + 0.979280; 0.202510; 0.000000;, + 0.758551;-0.651614; 0.000000;, + 0.758551;-0.651614; 0.000000;, + 0.758551;-0.651614; 0.000000;, + 0.758551;-0.651614; 0.000000;, + -0.745109;-0.154085;-0.648899;, + -0.745109;-0.154085;-0.648899;, + -0.745109;-0.154085;-0.648899;, + -0.745109;-0.154085;-0.648899;, + 0.713053; 0.147456; 0.685429;, + 0.713053; 0.147456; 0.685429;, + 0.713053; 0.147456; 0.685429;, + 0.713053; 0.147456; 0.685429;, + 0.967147;-0.254217; 0.000000;, + 0.967147;-0.254217; 0.000000;, + 0.967147;-0.254217; 0.000000;, + 0.967147;-0.254217; 0.000000;, + -0.786888; 0.617096; 0.000000;, + -0.786888; 0.617096; 0.000000;, + -0.786888; 0.617096; 0.000000;, + -0.786888; 0.617096; 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.979280;-0.202510; 0.000000;, + -0.979280;-0.202510; 0.000000;, + -0.979280;-0.202510; 0.000000;, + -0.979280;-0.202510; 0.000000;, + -0.915380;-0.189296; 0.355310;, + -0.915380;-0.189296; 0.355310;, + -0.915380;-0.189296; 0.355310;, + -0.915380;-0.189296; 0.355310;, + -0.959391; 0.282081; 0.000000;, + -0.959391; 0.282081; 0.000000;, + -0.959391; 0.282081; 0.000000;, + -0.959391; 0.282081; 0.000000;, + 0.919689; 0.190187;-0.343514;, + 0.919689; 0.190187;-0.343514;, + 0.919689; 0.190187;-0.343514;, + 0.919689; 0.190187;-0.343514;, + -0.287002;-0.957930; 0.000000;, + -0.287002;-0.957930; 0.000000;, + -0.287002;-0.957930; 0.000000;, + -0.287002;-0.957930; 0.000000;, + 0.159452; 0.987206; 0.000000;, + 0.159452; 0.987206; 0.000000;, + 0.159452; 0.987206; 0.000000;, + 0.159452; 0.987206; 0.000000;, + 0.998822;-0.048531; 0.000000;, + 0.998822;-0.048531; 0.000000;, + 0.998822;-0.048531; 0.000000;, + 0.998822;-0.048531; 0.000000;, + -0.159452;-0.987206; 0.000000;, + -0.159452;-0.987206; 0.000000;, + -0.159452;-0.987206; 0.000000;, + -0.159452;-0.987206; 0.000000;, + -0.827535; 0.040209;-0.559973;, + -0.827535; 0.040209;-0.559973;, + -0.827535; 0.040209;-0.559973;, + -0.827535; 0.040209;-0.559973;, + 0.827535;-0.040209; 0.559973;, + 0.827535;-0.040209; 0.559973;, + 0.827535;-0.040209; 0.559973;, + 0.827535;-0.040209; 0.559973;, + -0.054562;-0.998510; 0.000000;, + -0.054562;-0.998510; 0.000000;, + -0.054562;-0.998510; 0.000000;, + -0.054562;-0.998510; 0.000000;, + 0.287004; 0.957929; 0.000000;, + 0.287004; 0.957929; 0.000000;, + 0.287004; 0.957929; 0.000000;, + 0.287004; 0.957929; 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.998822; 0.048531; 0.000000;, + -0.998822; 0.048531; 0.000000;, + -0.998822; 0.048531; 0.000000;, + -0.998822; 0.048531; 0.000000;, + -0.935521; 0.045456; 0.350335;, + -0.935521; 0.045456; 0.350335;, + -0.935521; 0.045456; 0.350335;, + -0.935521; 0.045456; 0.350335;, + 0.054562; 0.998510; 0.000000;, + 0.054562; 0.998510; 0.000000;, + 0.054562; 0.998510; 0.000000;, + 0.054562; 0.998510; 0.000000;, + 0.935521;-0.045456;-0.350335;, + 0.935521;-0.045456;-0.350335;, + 0.935521;-0.045456;-0.350335;, + 0.935521;-0.045456;-0.350335;, + -0.615920;-0.787809; 0.000000;, + -0.615920;-0.787809; 0.000000;, + -0.615920;-0.787809; 0.000000;, + -0.615920;-0.787809; 0.000000;, + 0.652891; 0.757452; 0.000000;, + 0.652891; 0.757452; 0.000000;, + 0.652891; 0.757452; 0.000000;, + 0.652891; 0.757452; 0.000000;, + 0.992058;-0.125784; 0.000000;, + 0.992058;-0.125784; 0.000000;, + 0.992058;-0.125784; 0.000000;, + 0.992058;-0.125784; 0.000000;, + -0.652892;-0.757451; 0.000000;, + -0.652892;-0.757451; 0.000000;, + -0.652892;-0.757451; 0.000000;, + -0.652892;-0.757451; 0.000000;, + -0.597869; 0.075804;-0.798001;, + -0.597869; 0.075804;-0.798001;, + -0.597869; 0.075804;-0.798001;, + -0.597869; 0.075804;-0.798001;, + 0.597869;-0.075804; 0.798001;, + 0.597869;-0.075804; 0.798001;, + 0.597869;-0.075804; 0.798001;, + 0.597869;-0.075804; 0.798001;, + -0.978043;-0.208402; 0.000000;, + -0.978043;-0.208402; 0.000000;, + -0.978043;-0.208402; 0.000000;, + -0.978043;-0.208402; 0.000000;, + 0.615923; 0.787806; 0.000000;, + 0.615923; 0.787806; 0.000000;, + 0.615923; 0.787806; 0.000000;, + 0.615923; 0.787806; 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.992058; 0.125784; 0.000000;, + -0.992058; 0.125784; 0.000000;, + -0.992058; 0.125784; 0.000000;, + -0.992058; 0.125784; 0.000000;, + -0.982531; 0.124576; 0.138250;, + -0.982531; 0.124576; 0.138250;, + -0.982531; 0.124576; 0.138250;, + -0.982531; 0.124576; 0.138250;, + 0.978043; 0.208402; 0.000000;, + 0.978043; 0.208402; 0.000000;, + 0.978043; 0.208402; 0.000000;, + 0.978043; 0.208402; 0.000000;, + 0.982531;-0.124576;-0.138250;, + 0.982531;-0.124576;-0.138250;, + 0.982531;-0.124576;-0.138250;, + 0.982531;-0.124576;-0.138250;, + 0.160879; 0.109711;-0.980858;, + 0.160879; 0.109711;-0.980858;, + 0.160879; 0.109711;-0.980858;, + 0.160879; 0.109711;-0.980858;, + -0.198803;-0.137217;-0.970386;, + -0.198803;-0.137217;-0.970386;, + -0.198803;-0.137217;-0.970386;, + -0.198803;-0.137217;-0.970386;, + -0.196717; 0.018609;-0.980284;, + -0.196717; 0.018609;-0.980284;, + -0.196717; 0.018609;-0.980284;, + -0.196717; 0.018609;-0.980284;, + 0.102078;-0.097616; 0.989975;, + 0.102078;-0.097616; 0.989975;, + 0.102078;-0.097616; 0.989975;, + 0.102078;-0.097616; 0.989975;, + -0.149356;-0.045074;-0.987756;, + -0.149356;-0.045074;-0.987756;, + -0.149356;-0.045074;-0.987756;, + -0.149356;-0.045074;-0.987756;, + 0.215544;-0.513602; 0.830515;, + 0.215544;-0.513602; 0.830515;, + 0.215544;-0.513602; 0.830515;, + 0.215544;-0.513602; 0.830515;, + 0.718815;-0.695202; 0.000000;, + 0.718815;-0.695202; 0.000000;, + 0.718815;-0.695202; 0.000000;, + 0.718815;-0.695202; 0.000000;, + 0.487294;-0.722679; 0.490183;, + 0.487294;-0.722679; 0.490183;, + 0.487294;-0.722679; 0.490183;, + 0.487294;-0.722679; 0.490183;, + 0.066586; 0.769377;-0.635315;, + 0.066586; 0.769377;-0.635315;, + 0.066586; 0.769377;-0.635315;, + 0.066586; 0.769377;-0.635315;, + -0.028478; 0.801478; 0.597345;, + -0.028478; 0.801478; 0.597345;, + -0.028478; 0.801478; 0.597345;, + -0.028478; 0.801478; 0.597345;, + 0.026901;-0.473392;-0.880441;, + 0.026901;-0.473392;-0.880441;, + 0.026901;-0.473392;-0.880441;, + 0.026901;-0.473392;-0.880441;, + -0.007294;-0.933725; 0.357916;, + -0.007294;-0.933725; 0.357916;, + -0.007294;-0.933725; 0.357916;, + -0.007294;-0.933725; 0.357916;, + 0.086369; 0.311450;-0.946329;, + 0.086369; 0.311450;-0.946329;, + 0.086369; 0.311450;-0.946329;, + 0.086369; 0.311450;-0.946329;, + -0.067629;-0.480548; 0.874357;, + -0.067629;-0.480548; 0.874357;, + -0.067629;-0.480548; 0.874357;, + -0.067629;-0.480548; 0.874357;, + 0.086985; 0.056673;-0.994596;, + 0.086985; 0.056673;-0.994596;, + 0.086985; 0.056673;-0.994596;, + 0.086985; 0.056673;-0.994596;, + -0.135484; 0.588278; 0.797228;, + -0.135484; 0.588278; 0.797228;, + -0.135484; 0.588278; 0.797228;, + -0.135484; 0.588278; 0.797228;, + 0.044517;-0.694711;-0.717910;, + 0.044517;-0.694711;-0.717910;, + 0.044517;-0.694711;-0.717910;, + 0.044517;-0.694711;-0.717910;, + -0.213024; 0.856950; 0.469316;, + -0.213024; 0.856950; 0.469316;, + -0.213024; 0.856950; 0.469316;, + -0.213024; 0.856950; 0.469316;, + 0.183924;-0.098769;-0.977966;, + 0.183924;-0.098769;-0.977966;, + 0.183924;-0.098769;-0.977966;, + 0.183924;-0.098769;-0.977966;, + 0.151963;-0.843802; 0.514690;, + 0.151963;-0.843802; 0.514690;, + 0.151963;-0.843802; 0.514690;, + 0.151963;-0.843802; 0.514690;, + 0.218400; 0.143845;-0.965199;, + 0.218400; 0.143845;-0.965199;, + 0.218400; 0.143845;-0.965199;, + 0.218400; 0.143845;-0.965199;, + -0.124175; 0.176993; 0.976347;, + -0.124175; 0.176993; 0.976347;, + -0.124175; 0.176993; 0.976347;, + -0.124175; 0.176993; 0.976347;, + -0.507936; 0.805697; 0.304717;, + -0.507936; 0.805697; 0.304717;, + -0.507936; 0.805697; 0.304717;, + -0.507936; 0.805697; 0.304717;, + -0.333223; 0.759077; 0.559254;, + -0.333223; 0.759077; 0.559254;, + -0.333223; 0.759077; 0.559254;, + -0.333223; 0.759077; 0.559254;, + 0.000000; 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.969486; 0.245146;, + 0.000000;-0.969486; 0.245146;, + 0.000000;-0.969486; 0.245146;, + 0.000000;-0.969486; 0.245146;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 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.214518; 0.976720;, + 0.000000; 0.214518; 0.976720;, + 0.000000; 0.214518; 0.976720;, + 0.000000; 0.214518; 0.976720;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.906378;-0.422468; 0.000000;, + 0.906378;-0.422468; 0.000000;, + 0.906378;-0.422468; 0.000000;, + 0.906378;-0.422468; 0.000000;, + 0.000000;-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.969486;-0.245146;, + 0.000000; 0.969486;-0.245146;, + 0.000000; 0.969486;-0.245146;, + 0.000000; 0.969486;-0.245146;, + 0.000000;-0.031937; 0.999490;, + 0.000000;-0.031937; 0.999490;, + 0.000000;-0.031937; 0.999490;, + 0.000000;-0.031937; 0.999490;, + 0.906898; 0.421351; 0.000000;, + 0.906898; 0.421351; 0.000000;, + 0.906898; 0.421351; 0.000000;, + 0.906898; 0.421351; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 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.031937;-0.999490;, + 0.000000; 0.031937;-0.999490;, + 0.000000; 0.031937;-0.999490;, + 0.000000; 0.031937;-0.999490;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 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;, + 0.000000; 0.031937;-0.999490;, + 0.000000; 0.031937;-0.999490;, + 0.000000; 0.031937;-0.999490;, + 0.000000; 0.031937;-0.999490;, + 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.969486; 0.245146;, + 0.000000;-0.969486; 0.245146;, + 0.000000;-0.969486; 0.245146;, + 0.000000;-0.969486; 0.245146;, + 0.000000; 0.969486;-0.245146;, + 0.000000; 0.969486;-0.245146;, + 0.000000; 0.969486;-0.245146;, + 0.000000; 0.969486;-0.245146;, + -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.906378; 0.422468; 0.000000;, + -0.906378; 0.422468; 0.000000;, + -0.906378; 0.422468; 0.000000;, + -0.906378; 0.422468; 0.000000;, + 0.000000;-0.031937; 0.999490;, + 0.000000;-0.031937; 0.999490;, + 0.000000;-0.031937; 0.999490;, + 0.000000;-0.031937; 0.999490;, + -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;, + -0.906898;-0.421351; 0.000000;, + -0.906898;-0.421351; 0.000000;, + -0.906898;-0.421351; 0.000000;, + -0.906898;-0.421351; 0.000000;, + 0.000000; 0.214518; 0.976720;, + 0.000000; 0.214518; 0.976720;, + 0.000000; 0.214518; 0.976720;, + 0.000000; 0.214518; 0.976720;; + 188; + 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;; + } //End of Mesh Normals + MeshMaterialList { //Mesh Material List + 1; + 188; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 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_001 { + 0.640000; 0.640000; 0.640000; 1.000000;; + 96.078431; + 0.500000; 0.500000; 0.500000;; + 0.000000; 0.000000; 0.000000;; + } + } //End of Mesh Material List + MeshTextureCoords { //Mesh UV Coordinates + 752; + 0.178234; 0.624787;, + 0.137634; 0.780449;, + 0.278497; 0.761273;, + 0.279269; 0.675143;, + 0.037208; 0.867209;, + 0.112992; 0.859487;, + 0.137634; 0.780449;, + 0.027110; 0.773639;, + 0.136141; 0.780448;, + 0.176742; 0.624786;, + 0.277777; 0.675143;, + 0.277004; 0.761272;, + 0.254870; 0.478392;, + 0.236267; 0.548779;, + 0.176742; 0.624786;, + 0.112729; 0.540103;, + 0.176742; 0.624786;, + 0.136141; 0.780448;, + 0.025617; 0.773636;, + 0.112729; 0.540103;, + 0.279269; 0.675143;, + 0.278497; 0.761273;, + 0.323330; 0.764832;, + 0.323330; 0.665705;, + 0.323331; 0.491088;, + 0.277953; 0.517036;, + 0.236267; 0.548779;, + 0.254870; 0.478392;, + 0.323330; 0.590540;, + 0.289459; 0.604571;, + 0.279269; 0.675143;, + 0.323330; 0.665705;, + 0.178234; 0.624787;, + 0.279269; 0.675143;, + 0.289459; 0.604571;, + 0.237759; 0.548780;, + 0.277777; 0.675143;, + 0.176742; 0.624786;, + 0.236267; 0.548779;, + 0.287967; 0.604571;, + 0.323331; 0.491088;, + 0.279444; 0.517037;, + 0.297460; 0.553140;, + 0.323331; 0.539628;, + 0.287967; 0.604571;, + 0.236267; 0.548779;, + 0.277953; 0.517036;, + 0.295968; 0.553140;, + 0.323331; 0.539628;, + 0.297460; 0.553140;, + 0.289459; 0.604571;, + 0.323330; 0.590540;, + 0.237759; 0.548780;, + 0.289459; 0.604571;, + 0.297460; 0.553140;, + 0.279444; 0.517037;, + 0.042969; 0.976392;, + 0.069912; 0.975431;, + 0.074844; 0.999643;, + 0.028313; 0.997604;, + 0.323329; 0.866146;, + 0.256600; 0.861325;, + 0.277004; 0.761272;, + 0.323330; 0.764832;, + 0.256600; 0.861325;, + 0.111499; 0.859485;, + 0.136141; 0.780448;, + 0.277004; 0.761272;, + 0.278497; 0.761273;, + 0.137634; 0.780449;, + 0.112992; 0.859487;, + 0.258094; 0.861325;, + 0.050074; 0.966766;, + 0.063339; 0.966130;, + 0.069912; 0.975431;, + 0.042969; 0.976392;, + 0.074844; 0.957233;, + 0.074844; 0.999643;, + 0.069912; 0.975431;, + 0.066750; 0.953156;, + 0.063236; 0.948147;, + 0.057631; 0.947033;, + 0.050634; 0.938780;, + 0.070361; 0.938775;, + 0.057631; 0.947033;, + 0.032177; 0.948906;, + 0.003557; 0.951590;, + 0.050634; 0.938780;, + 0.054534; 0.960473;, + 0.059371; 0.962337;, + 0.063339; 0.966130;, + 0.050074; 0.966766;, + 0.057518; 0.949477;, + 0.046936; 0.954091;, + 0.032177; 0.948906;, + 0.057631; 0.947033;, + 0.066750; 0.953156;, + 0.069912; 0.975431;, + 0.063339; 0.966130;, + 0.063929; 0.954071;, + 0.061464; 0.950742;, + 0.057518; 0.949477;, + 0.057631; 0.947033;, + 0.063236; 0.948147;, + 0.055038; 0.959289;, + 0.057975; 0.961075;, + 0.059371; 0.962337;, + 0.054534; 0.960473;, + 0.063929; 0.954071;, + 0.063339; 0.966130;, + 0.059371; 0.962337;, + 0.061737; 0.954781;, + 0.059773; 0.953174;, + 0.057560; 0.951878;, + 0.057518; 0.949477;, + 0.061464; 0.950742;, + 0.057560; 0.951878;, + 0.051430; 0.956487;, + 0.046936; 0.954091;, + 0.057518; 0.949477;, + 0.184220; 0.118411;, + 0.330675; 0.100335;, + 0.302179; 0.039460;, + 0.200963; 0.038195;, + 0.058231; 0.955124;, + 0.056821; 0.954084;, + 0.057560; 0.951878;, + 0.059773; 0.953174;, + 0.056821; 0.954084;, + 0.053046; 0.957052;, + 0.051430; 0.956487;, + 0.057560; 0.951878;, + 0.061737; 0.954781;, + 0.059371; 0.962337;, + 0.057975; 0.961075;, + 0.059797; 0.956192;, + 0.334487; 0.386951;, + 0.383126; 0.240007;, + 0.330675; 0.100335;, + 0.184220; 0.118411;, + 0.446491; 0.018699;, + 0.302179; 0.039460;, + 0.330675; 0.100335;, + 0.476633; 0.108770;, + 0.519659; 0.104516;, + 0.476892; 0.108573;, + 0.443842; 0.017362;, + 0.517802; 0.014943;, + 0.476892; 0.108573;, + 0.329854; 0.100368;, + 0.299809; 0.040785;, + 0.443842; 0.017362;, + 0.520619; 0.391138;, + 0.451350; 0.320787;, + 0.383126; 0.240007;, + 0.334487; 0.386951;, + 0.476633; 0.108770;, + 0.330675; 0.100335;, + 0.383126; 0.240007;, + 0.477074; 0.148561;, + 0.520629; 0.158106;, + 0.477073; 0.148486;, + 0.476892; 0.108573;, + 0.519659; 0.104516;, + 0.477073; 0.148486;, + 0.383165; 0.240469;, + 0.329854; 0.100368;, + 0.476892; 0.108573;, + 0.520619; 0.391138;, + 0.451420; 0.319780;, + 0.485437; 0.209764;, + 0.521872; 0.222745;, + 0.485437; 0.209764;, + 0.451420; 0.319780;, + 0.383165; 0.240469;, + 0.477073; 0.148486;, + 0.477074; 0.148561;, + 0.383126; 0.240007;, + 0.451350; 0.320787;, + 0.485984; 0.210903;, + 0.521872; 0.222745;, + 0.485437; 0.209764;, + 0.477073; 0.148486;, + 0.520629; 0.158106;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.111499; 0.859485;, + 0.035714; 0.867207;, + 0.025617; 0.773636;, + 0.136141; 0.780448;, + 0.237759; 0.548780;, + 0.256361; 0.478392;, + 0.114220; 0.540105;, + 0.178234; 0.624787;, + 0.114220; 0.540105;, + 0.027110; 0.773639;, + 0.137634; 0.780449;, + 0.178234; 0.624787;, + 0.323330; 0.665705;, + 0.323330; 0.764832;, + 0.277004; 0.761272;, + 0.277777; 0.675143;, + 0.279444; 0.517037;, + 0.323331; 0.491088;, + 0.256361; 0.478392;, + 0.237759; 0.548780;, + 0.287967; 0.604571;, + 0.323330; 0.590540;, + 0.323330; 0.665705;, + 0.277777; 0.675143;, + 0.277953; 0.517036;, + 0.323331; 0.491088;, + 0.323331; 0.539628;, + 0.295968; 0.553140;, + 0.295968; 0.553140;, + 0.323331; 0.539628;, + 0.323330; 0.590540;, + 0.287967; 0.604571;, + 0.032177; 0.948906;, + 0.042969; 0.976392;, + 0.028313; 0.997604;, + 0.003557; 0.951590;, + 0.258094; 0.861325;, + 0.323329; 0.866146;, + 0.323330; 0.764832;, + 0.278497; 0.761273;, + 0.046936; 0.954091;, + 0.050074; 0.966766;, + 0.042969; 0.976392;, + 0.032177; 0.948906;, + 0.066750; 0.953156;, + 0.063236; 0.948147;, + 0.070361; 0.938775;, + 0.074844; 0.957233;, + 0.051430; 0.956487;, + 0.054534; 0.960473;, + 0.050074; 0.966766;, + 0.046936; 0.954091;, + 0.063929; 0.954071;, + 0.061464; 0.950742;, + 0.063236; 0.948147;, + 0.066750; 0.953156;, + 0.053046; 0.957052;, + 0.055038; 0.959289;, + 0.054534; 0.960473;, + 0.051430; 0.956487;, + 0.061737; 0.954781;, + 0.059773; 0.953174;, + 0.061464; 0.950742;, + 0.063929; 0.954071;, + 0.329854; 0.100368;, + 0.184050; 0.120233;, + 0.201413; 0.039911;, + 0.299809; 0.040785;, + 0.059797; 0.956192;, + 0.058231; 0.955124;, + 0.059773; 0.953174;, + 0.061737; 0.954781;, + 0.383165; 0.240469;, + 0.334369; 0.387551;, + 0.184050; 0.120233;, + 0.329854; 0.100368;, + 0.476633; 0.108770;, + 0.519659; 0.104516;, + 0.517802; 0.014943;, + 0.446491; 0.018699;, + 0.451420; 0.319780;, + 0.520619; 0.391138;, + 0.334369; 0.387551;, + 0.383165; 0.240469;, + 0.477074; 0.148561;, + 0.520629; 0.158106;, + 0.519659; 0.104516;, + 0.476633; 0.108770;, + 0.451350; 0.320787;, + 0.520619; 0.391138;, + 0.521872; 0.222745;, + 0.485984; 0.210903;, + 0.485984; 0.210903;, + 0.521872; 0.222745;, + 0.520629; 0.158106;, + 0.477074; 0.148561;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.816854; 0.810423;, + 0.658584; 0.810421;, + 0.771993; 0.971876;, + 0.807286; 0.971876;, + 0.816852; 0.662921;, + 0.658586; 0.662919;, + 0.658584; 0.810421;, + 0.816854; 0.810423;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.775847; 0.525195;, + 0.701026; 0.525194;, + 0.658586; 0.662919;, + 0.816852; 0.662921;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.775847; 0.525195;, + 0.701026; 0.525194;, + 0.658586; 0.662919;, + 0.816852; 0.662921;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.816852; 0.662921;, + 0.658586; 0.662919;, + 0.658584; 0.810421;, + 0.816854; 0.810423;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.003551; 0.928349;, + 0.074851; 0.928349;, + 0.074851; 0.999649;, + 0.003551; 0.999649;, + 0.816854; 0.810423;, + 0.658584; 0.810421;, + 0.771993; 0.971876;, + 0.807286; 0.971876;; + } //End of Mesh UV Coordinates + XSkinMeshHeader { + 2; + 6; + 8; + } + SkinWeights { + "Armature_us1"; + 112; + 616, + 617, + 618, + 619, + 620, + 621, + 622, + 623, + 624, + 625, + 626, + 627, + 628, + 629, + 630, + 631, + 640, + 641, + 642, + 643, + 644, + 645, + 646, + 647, + 652, + 653, + 654, + 655, + 656, + 657, + 658, + 659, + 660, + 661, + 662, + 663, + 664, + 665, + 666, + 667, + 668, + 669, + 670, + 671, + 672, + 673, + 674, + 675, + 676, + 677, + 678, + 679, + 684, + 685, + 686, + 687, + 688, + 689, + 690, + 691, + 692, + 693, + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747; + 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, + 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, + 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.833611, 0.552352, 0.000000, + -0.000000, 0.552351,-0.833611, 0.000000, + -0.004373,-4.477100,-0.655155, 1.000000;; + } //End of Armature_us1 Skin Weights + SkinWeights { + "Armature_nogi1"; + 168; + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 263, + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333, + 334, + 335, + 336, + 337, + 338, + 339, + 340, + 341, + 342, + 343, + 344, + 345, + 346, + 347, + 348, + 349, + 350, + 351; + 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, + 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, + 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, + 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.814990, 0.579476, 0.000000, + -1.000000,-0.000000,-0.000000, 0.000000, + -0.000000,-0.579475, 0.814990, 0.000000, + 1.972052, 0.535777,-0.745986, 1.000000;; + } //End of Armature_nogi1 Skin Weights + SkinWeights { + "Armature_nogi2"; + 168; + 352, + 353, + 354, + 355, + 356, + 357, + 358, + 359, + 360, + 361, + 362, + 363, + 364, + 365, + 366, + 367, + 368, + 369, + 370, + 371, + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, + 381, + 382, + 383, + 384, + 385, + 386, + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 412, + 413, + 414, + 415, + 416, + 417, + 418, + 419, + 420, + 421, + 422, + 423, + 424, + 425, + 426, + 427, + 428, + 429, + 430, + 431, + 432, + 433, + 434, + 435, + 436, + 437, + 438, + 439, + 440, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 456, + 457, + 458, + 459, + 460, + 461, + 462, + 463, + 464, + 465, + 466, + 467, + 468, + 469, + 470, + 471, + 472, + 473, + 474, + 475, + 476, + 477, + 478, + 479, + 480, + 481, + 482, + 483, + 484, + 485, + 486, + 487, + 488, + 489, + 490, + 491, + 492, + 493, + 494, + 495, + 496, + 497, + 498, + 499, + 500, + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519; + 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, + 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, + 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, + 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.835281,-0.549824, 0.000000, + 1.000000,-0.000000,-0.000000, 0.000000, + 0.000000,-0.549824, 0.835281, 0.000000, + -1.972052, 0.501328,-0.769559, 1.000000;; + } //End of Armature_nogi2 Skin Weights + SkinWeights { + "Armature_krilo1"; + 12; + 632, + 633, + 634, + 635, + 680, + 681, + 682, + 683, + 736, + 737, + 738, + 739; + 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.989605, 0.143812,-0.000000, 0.000000, + -0.143812,-0.989605,-0.000000, 0.000000, + -0.000000, 0.000000, 1.000000, 0.000000, + 0.663170, 2.307318,-2.266624, 1.000000;; + } //End of Armature_krilo1 Skin Weights + SkinWeights { + "Armature_telo"; + 120; + 4, + 5, + 56, + 57, + 58, + 59, + 60, + 61, + 64, + 65, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 140, + 141, + 146, + 147, + 150, + 151, + 520, + 521, + 552, + 553, + 554, + 555, + 556, + 557, + 560, + 561, + 562, + 563, + 564, + 565, + 566, + 567, + 568, + 569, + 570, + 571, + 572, + 573, + 574, + 575, + 576, + 577, + 578, + 579, + 580, + 581, + 582, + 583, + 586, + 587, + 588, + 589, + 590, + 591, + 598, + 599; + 0.500000, + 0.500000, + 1.000000, + 1.000000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.500000, + 0.500000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.500000, + 0.500000, + 1.000000, + 1.000000, + 0.500000, + 0.500000, + 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.500000, + 0.500000, + 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.500000, + 0.500000, + 0.500000, + 0.500000, + 1.000000, + 1.000000, + 0.500000, + 0.500000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 1.000000, + 1.000000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.500000, + 0.500000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.500000, + 0.500000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 1.000000, + 1.000000, + 0.500000, + 0.500000; + 1.000000, 0.000000, 0.000000, 0.000000, + 0.000000,-0.997725,-0.067414, 0.000000, + 0.000000, 0.067414,-0.997725, 0.000000, + 0.004372, 3.079499, 1.049295, 1.000000;; + } //End of Armature_telo Skin Weights + SkinWeights { + "Armature_krilo2"; + 12; + 636, + 637, + 638, + 639, + 648, + 649, + 650, + 651, + 748, + 749, + 750, + 751; + 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.991160,-0.132673, 0.000000, 0.000000, + 0.132673,-0.991160,-0.000000, 0.000000, + -0.000000, 0.000000, 1.000000, 0.000000, + -0.663343, 2.311128,-2.266624, 1.000000;; + } //End of Armature_krilo2 Skin Weights + SkinWeights { + "Armature_golova"; + 92; + 104, + 105, + 120, + 121, + 122, + 123, + 124, + 125, + 128, + 129, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 576, + 577, + 584, + 585, + 586, + 587, + 588, + 589, + 592, + 593, + 594, + 595, + 596, + 597, + 598, + 599, + 600, + 601, + 602, + 603, + 604, + 605, + 606, + 607, + 608, + 609, + 610, + 611, + 612, + 613, + 614, + 615; + 0.500000, + 0.500000, + 1.000000, + 1.000000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.500000, + 0.500000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.500000, + 0.500000, + 1.000000, + 1.000000, + 0.500000, + 0.500000, + 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.500000, + 0.500000, + 1.000000, + 1.000000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.500000, + 0.500000, + 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.943276, 0.332009, 0.000000, + -0.000000,-0.332009, 0.943276, 0.000000, + 0.004372,-2.686279,-1.835278, 1.000000;; + } //End of Armature_golova Skin Weights + SkinWeights { + "Armature_popa"; + 116; + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 76, + 77, + 82, + 83, + 86, + 87, + 520, + 521, + 522, + 523, + 524, + 525, + 526, + 527, + 528, + 529, + 530, + 531, + 532, + 533, + 534, + 535, + 536, + 537, + 538, + 539, + 540, + 541, + 542, + 543, + 544, + 545, + 546, + 547, + 548, + 549, + 550, + 551, + 554, + 555, + 556, + 557, + 558, + 559, + 566, + 567; + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.500000, + 0.500000, + 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, + 1.000000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 1.000000, + 1.000000, + 0.500000, + 0.500000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 0.500000, + 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.500000, + 0.500000, + 0.500000, + 0.500000, + 1.000000, + 1.000000, + 0.500000, + 0.500000; + -1.000000, 0.000000, 0.000000, 0.000000, + -0.000000,-0.990534,-0.137266, 0.000000, + 0.000000,-0.137266, 0.990534, 0.000000, + -0.004373, 2.079456,-0.639050, 1.000000;; + } //End of Armature_popa Skin Weights + } //End of Mesh Mesh + } //End of Cube +} //End of Root Frame +AnimationSet { + Animation { + {Armature} + AnimationKey { //Position + 2; + 72; + 0;3; 0.140869, 0.294248, 0.956928;;, + 1;3; 0.140869, 0.294248, 0.956928;;, + 2;3; 0.140869, 0.294248, 0.956928;;, + 3;3; 0.140869, 0.294248, 0.956928;;, + 4;3; 0.140869, 0.294248, 0.956928;;, + 5;3; 0.140869, 0.294248, 0.956928;;, + 6;3; 0.140869, 0.294248, 0.956928;;, + 7;3; 0.140869, 0.294248, 0.956928;;, + 8;3; 0.140869, 0.294248, 0.956928;;, + 9;3; 0.140869, 0.294248, 0.956928;;, + 10;3; 0.140869, 0.294248, 0.956928;;, + 11;3; 0.140869, 0.294248, 0.956928;;, + 12;3; 0.140869, 0.294248, 0.956928;;, + 13;3; 0.140869, 0.294248, 0.956928;;, + 14;3; 0.140869, 0.294248, 0.956928;;, + 15;3; 0.140869, 0.294248, 0.956928;;, + 16;3; 0.140869, 0.294248, 0.956928;;, + 17;3; 0.140869, 0.294248, 0.956928;;, + 18;3; 0.140869, 0.294248, 0.956928;;, + 19;3; 0.140869, 0.294248, 0.956928;;, + 20;3; 0.140869, 0.294248, 0.956928;;, + 21;3; 0.140869, 0.294248, 0.956928;;, + 22;3; 0.140869, 0.294248, 0.956928;;, + 23;3; 0.140869, 0.294248, 0.956928;;, + 24;3; 0.140869, 0.294248, 0.956928;;, + 25;3; 0.140869, 0.294248, 0.956928;;, + 26;3; 0.140869, 0.294248, 0.956928;;, + 27;3; 0.140869, 0.294248, 0.956928;;, + 28;3; 0.140869, 0.294248, 0.956928;;, + 29;3; 0.140869, 0.294248, 0.956928;;, + 30;3; 0.140869, 0.294248, 0.956928;;, + 31;3; 0.140869, 0.294248, 0.956928;;, + 32;3; 0.140869, 0.294248, 0.956928;;, + 33;3; 0.140869, 0.294248, 0.956928;;, + 34;3; 0.140869, 0.294248, 0.956928;;, + 35;3; 0.140869, 0.294248, 0.956928;;, + 36;3; 0.140869, 0.294248, 0.956928;;, + 37;3; 0.140869, 0.294248, 0.956928;;, + 38;3; 0.140869, 0.294248, 0.956928;;, + 39;3; 0.140869, 0.294248, 0.956928;;, + 40;3; 0.140869, 0.294248, 0.956928;;, + 41;3; 0.140869, 0.294248, 0.956928;;, + 42;3; 0.140869, 0.294248, 0.956928;;, + 43;3; 0.140869, 0.294248, 0.956928;;, + 44;3; 0.140869, 0.294248, 0.956928;;, + 45;3; 0.140869, 0.294248, 0.956928;;, + 46;3; 0.140869, 0.294248, 0.956928;;, + 47;3; 0.140869, 0.294248, 0.956928;;, + 48;3; 0.140869, 0.294248, 0.956928;;, + 49;3; 0.140869, 0.294248, 0.956928;;, + 50;3; 0.140869, 0.294248, 0.956928;;, + 51;3; 0.140869, 0.294248, 0.956928;;, + 52;3; 0.140869, 0.294248, 0.956928;;, + 53;3; 0.140869, 0.294248, 0.956928;;, + 54;3; 0.140869, 0.294248, 0.956928;;, + 55;3; 0.140869, 0.294248, 0.956928;;, + 56;3; 0.140869, 0.294248, 0.956928;;, + 57;3; 0.140869, 0.294248, 0.956928;;, + 58;3; 0.140869, 0.294248, 0.956928;;, + 59;3; 0.140869, 0.294248, 0.956928;;, + 60;3; 0.140869, 0.294248, 0.956928;;, + 61;3; 0.140869, 0.294248, 0.956928;;, + 62;3; 0.140869, 0.294248, 0.956928;;, + 63;3; 0.140869, 0.294248, 0.956928;;, + 64;3; 0.140869, 0.294248, 0.956928;;, + 65;3; 0.140869, 0.294248, 0.956928;;, + 66;3; 0.140869, 0.294248, 0.956928;;, + 67;3; 0.140869, 0.294248, 0.956928;;, + 68;3; 0.140869, 0.294248, 0.956928;;, + 69;3; 0.140869, 0.294248, 0.956928;;, + 70;3; 0.140869, 0.294248, 0.956928;;, + 71;3; 0.140869, 0.294248, 0.956928;;; + } + AnimationKey { //Rotation + 0; + 72; + 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;;; + } + AnimationKey { //Scale + 1; + 72; + 0;3; 0.384873, 0.384873, 0.384873;;, + 1;3; 0.384873, 0.384873, 0.384873;;, + 2;3; 0.384873, 0.384873, 0.384873;;, + 3;3; 0.384873, 0.384873, 0.384873;;, + 4;3; 0.384873, 0.384873, 0.384873;;, + 5;3; 0.384873, 0.384873, 0.384873;;, + 6;3; 0.384873, 0.384873, 0.384873;;, + 7;3; 0.384873, 0.384873, 0.384873;;, + 8;3; 0.384873, 0.384873, 0.384873;;, + 9;3; 0.384873, 0.384873, 0.384873;;, + 10;3; 0.384873, 0.384873, 0.384873;;, + 11;3; 0.384873, 0.384873, 0.384873;;, + 12;3; 0.384873, 0.384873, 0.384873;;, + 13;3; 0.384873, 0.384873, 0.384873;;, + 14;3; 0.384873, 0.384873, 0.384873;;, + 15;3; 0.384873, 0.384873, 0.384873;;, + 16;3; 0.384873, 0.384873, 0.384873;;, + 17;3; 0.384873, 0.384873, 0.384873;;, + 18;3; 0.384873, 0.384873, 0.384873;;, + 19;3; 0.384873, 0.384873, 0.384873;;, + 20;3; 0.384873, 0.384873, 0.384873;;, + 21;3; 0.384873, 0.384873, 0.384873;;, + 22;3; 0.384873, 0.384873, 0.384873;;, + 23;3; 0.384873, 0.384873, 0.384873;;, + 24;3; 0.384873, 0.384873, 0.384873;;, + 25;3; 0.384873, 0.384873, 0.384873;;, + 26;3; 0.384873, 0.384873, 0.384873;;, + 27;3; 0.384873, 0.384873, 0.384873;;, + 28;3; 0.384873, 0.384873, 0.384873;;, + 29;3; 0.384873, 0.384873, 0.384873;;, + 30;3; 0.384873, 0.384873, 0.384873;;, + 31;3; 0.384873, 0.384873, 0.384873;;, + 32;3; 0.384873, 0.384873, 0.384873;;, + 33;3; 0.384873, 0.384873, 0.384873;;, + 34;3; 0.384873, 0.384873, 0.384873;;, + 35;3; 0.384873, 0.384873, 0.384873;;, + 36;3; 0.384873, 0.384873, 0.384873;;, + 37;3; 0.384873, 0.384873, 0.384873;;, + 38;3; 0.384873, 0.384873, 0.384873;;, + 39;3; 0.384873, 0.384873, 0.384873;;, + 40;3; 0.384873, 0.384873, 0.384873;;, + 41;3; 0.384873, 0.384873, 0.384873;;, + 42;3; 0.384873, 0.384873, 0.384873;;, + 43;3; 0.384873, 0.384873, 0.384873;;, + 44;3; 0.384873, 0.384873, 0.384873;;, + 45;3; 0.384873, 0.384873, 0.384873;;, + 46;3; 0.384873, 0.384873, 0.384873;;, + 47;3; 0.384873, 0.384873, 0.384873;;, + 48;3; 0.384873, 0.384873, 0.384873;;, + 49;3; 0.384873, 0.384873, 0.384873;;, + 50;3; 0.384873, 0.384873, 0.384873;;, + 51;3; 0.384873, 0.384873, 0.384873;;, + 52;3; 0.384873, 0.384873, 0.384873;;, + 53;3; 0.384873, 0.384873, 0.384873;;, + 54;3; 0.384873, 0.384873, 0.384873;;, + 55;3; 0.384873, 0.384873, 0.384873;;, + 56;3; 0.384873, 0.384873, 0.384873;;, + 57;3; 0.384873, 0.384873, 0.384873;;, + 58;3; 0.384873, 0.384873, 0.384873;;, + 59;3; 0.384873, 0.384873, 0.384873;;, + 60;3; 0.384873, 0.384873, 0.384873;;, + 61;3; 0.384873, 0.384873, 0.384873;;, + 62;3; 0.384873, 0.384873, 0.384873;;, + 63;3; 0.384873, 0.384873, 0.384873;;, + 64;3; 0.384873, 0.384873, 0.384873;;, + 65;3; 0.384873, 0.384873, 0.384873;;, + 66;3; 0.384873, 0.384873, 0.384873;;, + 67;3; 0.384873, 0.384873, 0.384873;;, + 68;3; 0.384873, 0.384873, 0.384873;;, + 69;3; 0.384873, 0.384873, 0.384873;;, + 70;3; 0.384873, 0.384873, 0.384873;;, + 71;3; 0.384873, 0.384873, 0.384873;;; + } + } + Animation { + {Armature_telo} + AnimationKey { //Position + 2; + 72; + 0;3; -0.420690, 0.533795,-0.000000;;, + 1;3; -0.420690, 0.533795,-0.000000;;, + 2;3; -0.420690, 0.533795,-0.000000;;, + 3;3; -0.420690, 0.533795,-0.000000;;, + 4;3; -0.420690, 0.533795,-0.000000;;, + 5;3; -0.420690, 0.533795,-0.000000;;, + 6;3; -0.420690, 0.533795,-0.000000;;, + 7;3; -0.420690, 0.533795,-0.000000;;, + 8;3; -0.420690, 0.533795,-0.000000;;, + 9;3; -0.420690, 0.533795,-0.000000;;, + 10;3; -0.420690, 0.533795,-0.000000;;, + 11;3; -0.420690, 0.533795,-0.000000;;, + 12;3; -0.420690, 0.533795,-0.000000;;, + 13;3; -0.420690, 0.533795,-0.000000;;, + 14;3; -0.420690, 0.533795,-0.000000;;, + 15;3; -0.420690, 0.533795,-0.000000;;, + 16;3; -0.420690, 0.533795,-0.000000;;, + 17;3; -0.420690, 0.533795,-0.000000;;, + 18;3; -0.420690, 0.533795,-0.000000;;, + 19;3; -0.420690, 0.533795,-0.000000;;, + 20;3; -0.420690, 0.533795,-0.000000;;, + 21;3; -0.420690, 0.533795,-0.000000;;, + 22;3; -0.420690, 0.533795,-0.000000;;, + 23;3; -0.420690, 0.533795,-0.000000;;, + 24;3; -0.420690, 0.533795,-0.000000;;, + 25;3; -0.420690, 0.533795,-0.000000;;, + 26;3; -0.420690, 0.533795,-0.000000;;, + 27;3; -0.420690, 0.533795,-0.000000;;, + 28;3; -0.420690, 0.533795,-0.000000;;, + 29;3; -0.420690, 0.533795,-0.000000;;, + 30;3; -0.420690, 0.533795,-0.000000;;, + 31;3; -0.420690, 0.533795,-0.000000;;, + 32;3; -0.420690, 0.533795,-0.000000;;, + 33;3; -0.420690, 0.533795,-0.000000;;, + 34;3; -0.420690, 0.533795,-0.000000;;, + 35;3; -0.420690, 0.533795,-0.000000;;, + 36;3; -0.420691, 0.697844, 5.096399;;, + 37;3; -0.420691, 0.649030,11.835538;;, + 38;3; -0.420690, 0.467079,18.898138;;, + 39;3; -0.420690, 0.386893,25.967310;;, + 40;3; -0.420690, 0.533795,32.266632;;, + 41;3; -0.420690, 0.533472,33.885704;;, + 42;3; -0.420690, 0.488681,34.629696;;, + 43;3; -0.420690, 0.442798,35.112400;;, + 44;3; -0.420690, 0.404856,35.451447;;, + 45;3; -0.420689, 0.377828,35.695206;;, + 46;3; -0.420689, 0.361520,35.869213;;, + 47;3; -0.420689, 0.353766,35.988956;;, + 48;3; -0.420689, 0.351512,36.064732;;, + 49;3; -0.420689, 0.351747,36.104042;;, + 50;3; -0.420689, 0.352129,36.114277;;, + 51;3; -0.420689, 0.308901,34.759087;;, + 52;3; -0.420689, 0.263859,31.941816;;, + 53;3; -0.420689, 0.264396,28.434992;;, + 54;3; -0.420689, 0.317380,24.548536;;, + 55;3; -0.420690, 0.409746,20.457424;;, + 56;3; -0.420690, 0.515895,16.287056;;, + 57;3; -0.420691, 0.605579,12.149173;;, + 58;3; -0.420691, 0.652924, 8.167800;;, + 59;3; -0.420691, 0.644488, 4.516260;;, + 60;3; -0.420691, 0.587241, 1.509617;;, + 61;3; -0.420690, 0.533795,-0.000000;;, + 62;3; -0.420690, 0.533795,-0.000000;;, + 63;3; -0.420690, 0.533795,-0.000000;;, + 64;3; -0.420690, 0.533795,-0.000000;;, + 65;3; -0.420690, 0.533795,-0.000000;;, + 66;3; -0.420690, 0.533795,-0.000000;;, + 67;3; -0.420690, 0.533795,-0.000000;;, + 68;3; -0.420690, 0.533795,-0.000000;;, + 69;3; -0.420690, 0.533795,-0.000000;;, + 70;3; -0.420690, 0.533795,-0.000000;;, + 71;3; -0.420690, 0.533795,-0.000000;;; + } + AnimationKey { //Rotation + 0; + 72; + 0;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 1;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 2;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 3;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 4;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 5;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 6;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 7;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 8;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 9;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 10;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 11;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 12;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 13;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 14;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 15;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 16;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 17;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 18;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 19;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 20;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 21;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 22;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 23;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 24;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 25;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 26;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 27;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 28;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 29;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 30;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 31;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 32;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 33;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 34;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 35;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 36;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 37;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 38;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 39;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 40;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 41;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 42;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 43;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 44;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 45;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 46;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 47;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 48;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 49;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 50;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 51;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 52;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 53;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 54;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 55;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 56;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 57;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 58;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 59;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 60;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 61;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 62;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 63;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 64;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 65;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 66;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 67;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 68;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 69;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 70;4; -0.033726, 0.999431, 0.000000, 0.000000;;, + 71;4; -0.033726, 0.999431, 0.000000, 0.000000;;; + } + AnimationKey { //Scale + 1; + 72; + 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;;; + } + } + Animation { + {Armature_popa} + AnimationKey { //Position + 2; + 72; + 0;3; 0.000000, 1.173850, 0.000000;;, + 1;3; 0.000000, 1.173850, 0.000000;;, + 2;3; 0.000000, 1.173850, 0.000000;;, + 3;3; 0.000000, 1.173850, 0.000000;;, + 4;3; 0.000000, 1.173850, 0.000000;;, + 5;3; 0.000000, 1.173850, 0.000000;;, + 6;3; 0.000000, 1.173850, 0.000000;;, + 7;3; 0.000000, 1.173850, 0.000000;;, + 8;3; 0.000000, 1.173850, 0.000000;;, + 9;3; 0.000000, 1.173850, 0.000000;;, + 10;3; 0.000000, 1.173850, 0.000000;;, + 11;3; 0.000000, 1.173850, 0.000000;;, + 12;3; 0.000000, 1.173850, 0.000000;;, + 13;3; 0.000000, 1.173850, 0.000000;;, + 14;3; 0.000000, 1.173850, 0.000000;;, + 15;3; 0.000000, 1.173850, 0.000000;;, + 16;3; 0.000000, 1.173850, 0.000000;;, + 17;3; 0.000000, 1.173850, 0.000000;;, + 18;3; 0.000000, 1.173850, 0.000000;;, + 19;3; 0.000000, 1.173850, 0.000000;;, + 20;3; 0.000000, 1.173850, 0.000000;;, + 21;3; 0.000000, 1.173850, 0.000000;;, + 22;3; 0.000000, 1.173850, 0.000000;;, + 23;3; 0.000000, 1.173850, 0.000000;;, + 24;3; 0.000000, 1.173850, 0.000000;;, + 25;3; 0.000000, 1.173850, 0.000000;;, + 26;3; 0.000000, 1.173850, 0.000000;;, + 27;3; 0.000000, 1.173850, 0.000000;;, + 28;3; 0.000000, 1.173850, 0.000000;;, + 29;3; 0.000000, 1.173850, 0.000000;;, + 30;3; 0.000000, 1.173850, 0.000000;;, + 31;3; 0.000000, 1.173850, 0.000000;;, + 32;3; 0.000000, 1.173850, 0.000000;;, + 33;3; 0.000000, 1.173850, 0.000000;;, + 34;3; 0.000000, 1.173850, 0.000000;;, + 35;3; 0.000000, 1.173850, 0.000000;;, + 36;3; 0.000000, 1.173850,-0.000001;;, + 37;3; -0.000000, 1.173850,-0.000000;;, + 38;3; -0.000000, 1.173850, 0.000001;;, + 39;3; -0.000000, 1.173849, 0.000000;;, + 40;3; -0.000000, 1.173850,-0.000001;;, + 41;3; 0.000000, 1.173850,-0.000000;;, + 42;3; 0.000000, 1.173850,-0.000003;;, + 43;3; 0.000000, 1.173850,-0.000000;;, + 44;3; 0.000000, 1.173850,-0.000002;;, + 45;3; 0.000000, 1.173850,-0.000001;;, + 46;3; -0.000000, 1.173850,-0.000002;;, + 47;3; 0.000000, 1.173850,-0.000004;;, + 48;3; 0.000000, 1.173850,-0.000004;;, + 49;3; 0.000000, 1.173850,-0.000002;;, + 50;3; 0.000000, 1.173850,-0.000001;;, + 51;3; 0.000000, 1.173850,-0.000002;;, + 52;3; 0.000000, 1.173850,-0.000001;;, + 53;3; -0.000000, 1.173850, 0.000000;;, + 54;3; -0.000000, 1.173850,-0.000000;;, + 55;3; 0.000000, 1.173850,-0.000000;;, + 56;3; -0.000000, 1.173850,-0.000000;;, + 57;3; -0.000000, 1.173850, 0.000000;;, + 58;3; 0.000000, 1.173850, 0.000000;;, + 59;3; 0.000000, 1.173850,-0.000000;;, + 60;3; 0.000000, 1.173850,-0.000000;;, + 61;3; 0.000000, 1.173850, 0.000000;;, + 62;3; 0.000000, 1.173850, 0.000000;;, + 63;3; 0.000000, 1.173850, 0.000000;;, + 64;3; 0.000000, 1.173850, 0.000000;;, + 65;3; 0.000000, 1.173850, 0.000000;;, + 66;3; 0.000000, 1.173850, 0.000000;;, + 67;3; 0.000000, 1.173850, 0.000000;;, + 68;3; 0.000000, 1.173850, 0.000000;;, + 69;3; 0.000000, 1.173850, 0.000000;;, + 70;3; 0.000000, 1.173850, 0.000000;;, + 71;3; 0.000000, 1.173850, 0.000000;;; + } + AnimationKey { //Rotation + 0; + 72; + 0;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 1;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 2;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 3;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 4;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 5;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 6;4; -0.000000,-0.000000, 0.993602, 0.111707;;, + 7;4; -0.000000,-0.000000, 0.991162, 0.131616;;, + 8;4; -0.000000,-0.000000, 0.990021, 0.140919;;, + 9;4; -0.000000,-0.000000, 0.990066, 0.140550;;, + 10;4; -0.000000,-0.000000, 0.990199, 0.139469;;, + 11;4; -0.000000,-0.000000, 0.990412, 0.137731;;, + 12;4; -0.000000,-0.000000, 0.990697, 0.135410;;, + 13;4; -0.000000,-0.000000, 0.991041, 0.132600;;, + 14;4; -0.000000,-0.000000, 0.991432, 0.129413;;, + 15;4; -0.000000,-0.000000, 0.991854, 0.125971;;, + 16;4; -0.000000,-0.000000, 0.992291, 0.122404;;, + 17;4; -0.000000,-0.000000, 0.992728, 0.118842;;, + 18;4; -0.000000,-0.000000, 0.993149, 0.115410;;, + 19;4; -0.000000,-0.000000, 0.993540, 0.112219;;, + 20;4; -0.000000,-0.000000, 0.993889, 0.109367;;, + 21;4; -0.000000,-0.000000, 0.994188, 0.106935;;, + 22;4; -0.000000,-0.000000, 0.994427, 0.104984;;, + 23;4; -0.000000,-0.000000, 0.994601, 0.103560;;, + 24;4; -0.000000,-0.000000, 0.994707, 0.102694;;, + 25;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 26;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 27;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 28;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 29;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 30;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 31;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 32;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 33;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 34;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 35;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 36;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 37;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 38;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 39;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 40;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 41;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 42;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 43;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 44;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 45;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 46;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 47;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 48;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 49;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 50;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 51;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 52;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 53;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 54;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 55;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 56;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 57;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 58;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 59;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 60;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 61;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 62;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 63;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 64;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 65;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 66;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 67;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 68;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 69;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 70;4; -0.000000,-0.000000, 0.994743, 0.102403;;, + 71;4; -0.000000,-0.000000, 0.994743, 0.102403;;; + } + AnimationKey { //Scale + 1; + 72; + 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;;; + } + } + Animation { + {Armature_nogi1} + AnimationKey { //Position + 2; + 72; + 0;3; 0.000000, 1.173850, 0.000000;;, + 1;3; 0.000000, 1.173850, 0.000000;;, + 2;3; 0.000000, 1.173850, 0.000000;;, + 3;3; 0.000000, 1.173850, 0.000000;;, + 4;3; 0.000000, 1.173850, 0.000000;;, + 5;3; 0.000000, 1.173850, 0.000000;;, + 6;3; 0.000000, 1.173850, 0.000000;;, + 7;3; 0.000000, 1.173850, 0.000000;;, + 8;3; 0.000000, 1.173850, 0.000000;;, + 9;3; 0.000000, 1.173850, 0.000000;;, + 10;3; 0.000000, 1.173850, 0.000000;;, + 11;3; 0.000000, 1.173850, 0.000000;;, + 12;3; 0.000000, 1.173850, 0.000000;;, + 13;3; 0.000000, 1.173850, 0.000000;;, + 14;3; 0.000000, 1.173850, 0.000000;;, + 15;3; 0.000000, 1.173850, 0.000000;;, + 16;3; 0.000000, 1.173850, 0.000000;;, + 17;3; 0.000000, 1.173850, 0.000000;;, + 18;3; 0.000000, 1.173850, 0.000000;;, + 19;3; 0.000000, 1.173850, 0.000000;;, + 20;3; 0.000000, 1.173850, 0.000000;;, + 21;3; 0.000000, 1.173850, 0.000000;;, + 22;3; 0.000000, 1.173850, 0.000000;;, + 23;3; 0.000000, 1.173850, 0.000000;;, + 24;3; 0.000000, 1.173850, 0.000000;;, + 25;3; 0.000000, 1.173850, 0.000000;;, + 26;3; 0.000000, 1.173850, 0.000000;;, + 27;3; 0.000000, 1.173850, 0.000000;;, + 28;3; 0.000000, 1.173850, 0.000000;;, + 29;3; 0.000000, 1.173850, 0.000000;;, + 30;3; 0.000000, 1.173850, 0.000000;;, + 31;3; 0.000000, 1.173850, 0.000000;;, + 32;3; 0.000000, 1.173850, 0.000000;;, + 33;3; 0.000000, 1.173850, 0.000000;;, + 34;3; 0.000000, 1.173850, 0.000000;;, + 35;3; 0.000000, 1.173850, 0.000000;;, + 36;3; 0.000000, 1.173850,-0.000001;;, + 37;3; -0.000000, 1.173850,-0.000000;;, + 38;3; -0.000000, 1.173850, 0.000001;;, + 39;3; -0.000000, 1.173849, 0.000000;;, + 40;3; -0.000000, 1.173850,-0.000001;;, + 41;3; 0.000000, 1.173850,-0.000000;;, + 42;3; 0.000000, 1.173850,-0.000003;;, + 43;3; 0.000000, 1.173850,-0.000000;;, + 44;3; 0.000000, 1.173850,-0.000002;;, + 45;3; 0.000000, 1.173850,-0.000001;;, + 46;3; -0.000000, 1.173850,-0.000002;;, + 47;3; 0.000000, 1.173850,-0.000004;;, + 48;3; 0.000000, 1.173850,-0.000004;;, + 49;3; 0.000000, 1.173850,-0.000002;;, + 50;3; 0.000000, 1.173850,-0.000001;;, + 51;3; 0.000000, 1.173850,-0.000002;;, + 52;3; 0.000000, 1.173850,-0.000001;;, + 53;3; -0.000000, 1.173850, 0.000000;;, + 54;3; -0.000000, 1.173850,-0.000000;;, + 55;3; 0.000000, 1.173850,-0.000000;;, + 56;3; -0.000000, 1.173850,-0.000000;;, + 57;3; -0.000000, 1.173850, 0.000000;;, + 58;3; 0.000000, 1.173850, 0.000000;;, + 59;3; 0.000000, 1.173850,-0.000000;;, + 60;3; 0.000000, 1.173850,-0.000000;;, + 61;3; 0.000000, 1.173850, 0.000000;;, + 62;3; 0.000000, 1.173850, 0.000000;;, + 63;3; 0.000000, 1.173850, 0.000000;;, + 64;3; 0.000000, 1.173850, 0.000000;;, + 65;3; 0.000000, 1.173850, 0.000000;;, + 66;3; 0.000000, 1.173850, 0.000000;;, + 67;3; 0.000000, 1.173850, 0.000000;;, + 68;3; 0.000000, 1.173850, 0.000000;;, + 69;3; 0.000000, 1.173850, 0.000000;;, + 70;3; 0.000000, 1.173850, 0.000000;;, + 71;3; 0.000000, 1.173850, 0.000000;;; + } + AnimationKey { //Rotation + 0; + 72; + 0;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 1;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 2;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 3;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 4;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 5;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 6;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 7;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 8;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 9;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 10;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 11;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 12;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 13;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 14;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 15;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 16;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 17;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 18;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 19;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 20;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 21;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 22;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 23;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 24;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 25;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 26;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 27;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 28;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 29;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 30;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 31;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 32;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 33;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 34;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 35;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 36;4; -0.209329, 0.672734, 0.657092, 0.254205;;, + 37;4; -0.257488, 0.650930, 0.632091, 0.300784;;, + 38;4; -0.319305, 0.622939, 0.599996, 0.360574;;, + 39;4; -0.367454, 0.601138, 0.574998, 0.407143;;, + 40;4; -0.384553, 0.593396, 0.566121, 0.423682;;, + 41;4; -0.383592, 0.593831, 0.566621, 0.422752;;, + 42;4; -0.380686, 0.595147, 0.568129, 0.419942;;, + 43;4; -0.375825, 0.597347, 0.570652, 0.415240;;, + 44;4; -0.369035, 0.600421, 0.574177, 0.408673;;, + 45;4; -0.360387, 0.604336, 0.578666, 0.400309;;, + 46;4; -0.350008, 0.609036, 0.584055, 0.390269;;, + 47;4; -0.338084, 0.614434, 0.590245, 0.378737;;, + 48;4; -0.324869, 0.620417, 0.597105, 0.365956;;, + 49;4; -0.310679, 0.626842, 0.604472, 0.352231;;, + 50;4; -0.295880, 0.633543, 0.612155, 0.337917;;, + 51;4; -0.280875, 0.640337, 0.619945, 0.323404;;, + 52;4; -0.266077, 0.647038, 0.627628, 0.309092;;, + 53;4; -0.251889, 0.653462, 0.634994, 0.295369;;, + 54;4; -0.238677, 0.659444, 0.641854, 0.282590;;, + 55;4; -0.226756, 0.664842, 0.648043, 0.271061;;, + 56;4; -0.216380, 0.669540, 0.653430, 0.261024;;, + 57;4; -0.207735, 0.673455, 0.657918, 0.252663;;, + 58;4; -0.200948, 0.676528, 0.661442, 0.246099;;, + 59;4; -0.196089, 0.678728, 0.663964, 0.241399;;, + 60;4; -0.193185, 0.680043, 0.665472, 0.238590;;, + 61;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 62;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 63;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 64;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 65;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 66;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 67;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 68;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 69;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 70;4; -0.192224, 0.680478, 0.665971, 0.237660;;, + 71;4; -0.192224, 0.680478, 0.665971, 0.237660;;; + } + AnimationKey { //Scale + 1; + 72; + 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;;; + } + } + Animation { + {Armature_nogi2} + AnimationKey { //Position + 2; + 72; + 0;3; 0.000000, 1.173850, 0.000000;;, + 1;3; 0.000000, 1.173850, 0.000000;;, + 2;3; 0.000000, 1.173850, 0.000000;;, + 3;3; 0.000000, 1.173850, 0.000000;;, + 4;3; 0.000000, 1.173850, 0.000000;;, + 5;3; 0.000000, 1.173850, 0.000000;;, + 6;3; 0.000000, 1.173850, 0.000000;;, + 7;3; 0.000000, 1.173850, 0.000000;;, + 8;3; 0.000000, 1.173850, 0.000000;;, + 9;3; 0.000000, 1.173850, 0.000000;;, + 10;3; 0.000000, 1.173850, 0.000000;;, + 11;3; 0.000000, 1.173850, 0.000000;;, + 12;3; 0.000000, 1.173850, 0.000000;;, + 13;3; 0.000000, 1.173850, 0.000000;;, + 14;3; 0.000000, 1.173850, 0.000000;;, + 15;3; 0.000000, 1.173850, 0.000000;;, + 16;3; 0.000000, 1.173850, 0.000000;;, + 17;3; 0.000000, 1.173850, 0.000000;;, + 18;3; 0.000000, 1.173850, 0.000000;;, + 19;3; 0.000000, 1.173850, 0.000000;;, + 20;3; 0.000000, 1.173850, 0.000000;;, + 21;3; 0.000000, 1.173850, 0.000000;;, + 22;3; 0.000000, 1.173850, 0.000000;;, + 23;3; 0.000000, 1.173850, 0.000000;;, + 24;3; 0.000000, 1.173850, 0.000000;;, + 25;3; 0.000000, 1.173850, 0.000000;;, + 26;3; 0.000000, 1.173850, 0.000000;;, + 27;3; 0.000000, 1.173850, 0.000000;;, + 28;3; 0.000000, 1.173850, 0.000000;;, + 29;3; 0.000000, 1.173850, 0.000000;;, + 30;3; 0.000000, 1.173850, 0.000000;;, + 31;3; 0.000000, 1.173850, 0.000000;;, + 32;3; 0.000000, 1.173850, 0.000000;;, + 33;3; 0.000000, 1.173850, 0.000000;;, + 34;3; 0.000000, 1.173850, 0.000000;;, + 35;3; 0.000000, 1.173850, 0.000000;;, + 36;3; 0.000000, 1.173850,-0.000001;;, + 37;3; -0.000000, 1.173850,-0.000000;;, + 38;3; -0.000000, 1.173850, 0.000001;;, + 39;3; -0.000000, 1.173849, 0.000000;;, + 40;3; -0.000000, 1.173850,-0.000001;;, + 41;3; 0.000000, 1.173850,-0.000000;;, + 42;3; 0.000000, 1.173850,-0.000003;;, + 43;3; 0.000000, 1.173850,-0.000000;;, + 44;3; 0.000000, 1.173850,-0.000002;;, + 45;3; 0.000000, 1.173850,-0.000001;;, + 46;3; -0.000000, 1.173850,-0.000002;;, + 47;3; 0.000000, 1.173850,-0.000004;;, + 48;3; 0.000000, 1.173850,-0.000004;;, + 49;3; 0.000000, 1.173850,-0.000002;;, + 50;3; 0.000000, 1.173850,-0.000001;;, + 51;3; 0.000000, 1.173850,-0.000002;;, + 52;3; 0.000000, 1.173850,-0.000001;;, + 53;3; -0.000000, 1.173850, 0.000000;;, + 54;3; -0.000000, 1.173850,-0.000000;;, + 55;3; 0.000000, 1.173850,-0.000000;;, + 56;3; -0.000000, 1.173850,-0.000000;;, + 57;3; -0.000000, 1.173850, 0.000000;;, + 58;3; 0.000000, 1.173850, 0.000000;;, + 59;3; 0.000000, 1.173850,-0.000000;;, + 60;3; 0.000000, 1.173850,-0.000000;;, + 61;3; 0.000000, 1.173850, 0.000000;;, + 62;3; 0.000000, 1.173850, 0.000000;;, + 63;3; 0.000000, 1.173850, 0.000000;;, + 64;3; 0.000000, 1.173850, 0.000000;;, + 65;3; 0.000000, 1.173850, 0.000000;;, + 66;3; 0.000000, 1.173850, 0.000000;;, + 67;3; 0.000000, 1.173850, 0.000000;;, + 68;3; 0.000000, 1.173850, 0.000000;;, + 69;3; 0.000000, 1.173850, 0.000000;;, + 70;3; 0.000000, 1.173850, 0.000000;;, + 71;3; 0.000000, 1.173850, 0.000000;;; + } + AnimationKey { //Rotation + 0; + 72; + 0;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 1;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 2;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 3;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 4;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 5;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 6;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 7;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 8;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 9;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 10;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 11;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 12;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 13;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 14;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 15;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 16;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 17;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 18;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 19;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 20;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 21;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 22;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 23;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 24;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 25;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 26;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 27;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 28;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 29;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 30;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 31;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 32;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 33;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 34;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 35;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 36;4; -0.199513, 0.674883,-0.659898,-0.244556;;, + 37;4; -0.254533, 0.649715,-0.631078,-0.297754;;, + 38;4; -0.325150, 0.617407,-0.594083,-0.366032;;, + 39;4; -0.380155, 0.592243,-0.565268,-0.419216;;, + 40;4; -0.399692, 0.583307,-0.555035,-0.438106;;, + 41;4; -0.398593, 0.583809,-0.555610,-0.437043;;, + 42;4; -0.395273, 0.585328,-0.557349,-0.433833;;, + 43;4; -0.389719, 0.587868,-0.560258,-0.428463;;, + 44;4; -0.381961, 0.591416,-0.564321,-0.420962;;, + 45;4; -0.372081, 0.595935,-0.569496,-0.411409;;, + 46;4; -0.360222, 0.601359,-0.575707,-0.399943;;, + 47;4; -0.346599, 0.607591,-0.582843,-0.386771;;, + 48;4; -0.331502, 0.614497,-0.590751,-0.372174;;, + 49;4; -0.315291, 0.621913,-0.599243,-0.356499;;, + 50;4; -0.298384, 0.629647,-0.608100,-0.340153;;, + 51;4; -0.281242, 0.637489,-0.617080,-0.323578;;, + 52;4; -0.264337, 0.645223,-0.625935,-0.307233;;, + 53;4; -0.248129, 0.652639,-0.634427,-0.291562;;, + 54;4; -0.233036, 0.659544,-0.642333,-0.276968;;, + 55;4; -0.219418, 0.665774,-0.649467,-0.263802;;, + 56;4; -0.207564, 0.671197,-0.655677,-0.252340;;, + 57;4; -0.197688, 0.675715,-0.660851,-0.242791;;, + 58;4; -0.189935, 0.679262,-0.664912,-0.235294;;, + 59;4; -0.184384, 0.681801,-0.667820,-0.229928;;, + 60;4; -0.181066, 0.683319,-0.669558,-0.226719;;, + 61;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 62;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 63;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 64;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 65;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 66;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 67;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 68;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 69;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 70;4; -0.179968, 0.683821,-0.670133,-0.225657;;, + 71;4; -0.179968, 0.683821,-0.670133,-0.225657;;; + } + AnimationKey { //Scale + 1; + 72; + 0;3; 1.000000, 0.999999, 1.000000;;, + 1;3; 1.000000, 0.999999, 1.000000;;, + 2;3; 1.000000, 0.999999, 1.000000;;, + 3;3; 1.000000, 0.999999, 1.000000;;, + 4;3; 1.000000, 0.999999, 1.000000;;, + 5;3; 1.000000, 0.999999, 1.000000;;, + 6;3; 1.000000, 0.999999, 1.000000;;, + 7;3; 1.000000, 0.999999, 1.000000;;, + 8;3; 1.000000, 0.999999, 1.000000;;, + 9;3; 1.000000, 0.999999, 1.000000;;, + 10;3; 1.000000, 0.999999, 1.000000;;, + 11;3; 1.000000, 0.999999, 1.000000;;, + 12;3; 1.000000, 0.999999, 1.000000;;, + 13;3; 1.000000, 0.999999, 1.000000;;, + 14;3; 1.000000, 0.999999, 1.000000;;, + 15;3; 1.000000, 0.999999, 1.000000;;, + 16;3; 1.000000, 0.999999, 1.000000;;, + 17;3; 1.000000, 0.999999, 1.000000;;, + 18;3; 1.000000, 0.999999, 1.000000;;, + 19;3; 1.000000, 0.999999, 1.000000;;, + 20;3; 1.000000, 0.999999, 1.000000;;, + 21;3; 1.000000, 0.999999, 1.000000;;, + 22;3; 1.000000, 0.999999, 1.000000;;, + 23;3; 1.000000, 0.999999, 1.000000;;, + 24;3; 1.000000, 0.999999, 1.000000;;, + 25;3; 1.000000, 0.999999, 1.000000;;, + 26;3; 1.000000, 0.999999, 1.000000;;, + 27;3; 1.000000, 0.999999, 1.000000;;, + 28;3; 1.000000, 0.999999, 1.000000;;, + 29;3; 1.000000, 0.999999, 1.000000;;, + 30;3; 1.000000, 0.999999, 1.000000;;, + 31;3; 1.000000, 0.999999, 1.000000;;, + 32;3; 1.000000, 0.999999, 1.000000;;, + 33;3; 1.000000, 0.999999, 1.000000;;, + 34;3; 1.000000, 0.999999, 1.000000;;, + 35;3; 1.000000, 0.999999, 1.000000;;, + 36;3; 1.000000, 0.999999, 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, 0.999999, 1.000000;;, + 62;3; 1.000000, 0.999999, 1.000000;;, + 63;3; 1.000000, 0.999999, 1.000000;;, + 64;3; 1.000000, 0.999999, 1.000000;;, + 65;3; 1.000000, 0.999999, 1.000000;;, + 66;3; 1.000000, 0.999999, 1.000000;;, + 67;3; 1.000000, 0.999999, 1.000000;;, + 68;3; 1.000000, 0.999999, 1.000000;;, + 69;3; 1.000000, 0.999999, 1.000000;;, + 70;3; 1.000000, 0.999999, 1.000000;;, + 71;3; 1.000000, 0.999999, 1.000000;;; + } + } + Animation { + {Armature_golova} + AnimationKey { //Position + 2; + 72; + 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.000001;;, + 39;3; -0.000000,-0.000000, 0.000000;;, + 40;3; -0.000000, 0.000000, 0.000000;;, + 41;3; 0.000000,-0.000000, 0.000001;;, + 42;3; 0.000000, 0.000000,-0.000001;;, + 43;3; 0.000000, 0.000000, 0.000001;;, + 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.000002;;, + 48;3; 0.000000, 0.000000,-0.000002;;, + 49;3; 0.000000, 0.000000,-0.000001;;, + 50;3; 0.000000,-0.000000, 0.000000;;, + 51;3; 0.000000,-0.000000,-0.000000;;, + 52;3; 0.000000, 0.000000,-0.000001;;, + 53;3; -0.000000, 0.000000,-0.000000;;, + 54;3; -0.000000,-0.000000,-0.000000;;, + 55;3; 0.000000, 0.000000,-0.000001;;, + 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;;; + } + AnimationKey { //Rotation + 0; + 72; + 0;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 1;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 2;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 3;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 4;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 5;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 6;4; -0.156764, 0.986995,-0.000000, 0.000000;;, + 7;4; -0.211132, 0.976666,-0.000000, 0.000000;;, + 8;4; -0.257363, 0.966315,-0.000000, 0.000000;;, + 9;4; -0.290954, 0.955942,-0.012361,-0.002399;;, + 10;4; -0.323006, 0.943617,-0.044691,-0.008676;;, + 11;4; -0.344393, 0.934121,-0.077021,-0.014953;;, + 12;4; -0.351061, 0.930891,-0.089381,-0.017353;;, + 13;4; -0.336011, 0.934372,-0.087769,-0.017559;;, + 14;4; -0.292954, 0.944458,-0.082761,-0.018124;;, + 15;4; -0.235871, 0.958164,-0.075080,-0.018807;;, + 16;4; -0.187914, 0.970308,-0.066661,-0.019256;;, + 17;4; -0.164533, 0.977290,-0.059244,-0.019266;;, + 18;4; -0.155673, 0.981054,-0.051727,-0.018413;;, + 19;4; -0.148265, 0.984288,-0.042554,-0.016314;;, + 20;4; -0.142573, 0.986870,-0.032274,-0.013151;;, + 21;4; -0.138695, 0.988731,-0.021882,-0.009371;;, + 22;4; -0.136455, 0.989904,-0.012631,-0.005629;;, + 23;4; -0.135426, 0.990525,-0.005602,-0.002576;;, + 24;4; -0.135106, 0.990781,-0.001368,-0.000645;;, + 25;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 26;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 27;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 28;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 29;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 30;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 31;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 32;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 33;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 34;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 35;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 36;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 37;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 38;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 39;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 40;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 41;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 42;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 43;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 44;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 45;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 46;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 47;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 48;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 49;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 50;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 51;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 52;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 53;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 54;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 55;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 56;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 57;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 58;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 59;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 60;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 61;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 62;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 63;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 64;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 65;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 66;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 67;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 68;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 69;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 70;4; -0.135069, 0.990836,-0.000000, 0.000000;;, + 71;4; -0.135069, 0.990836,-0.000000, 0.000000;;; + } + AnimationKey { //Scale + 1; + 72; + 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;;; + } + } + Animation { + {Armature_us1} + AnimationKey { //Position + 2; + 72; + 0;3; 0.000000, 0.535820, 1.341474;;, + 1;3; 0.000000, 0.535820, 1.341474;;, + 2;3; 0.000000, 0.535820, 1.341474;;, + 3;3; 0.000000, 0.535820, 1.341474;;, + 4;3; 0.000000, 0.535820, 1.341474;;, + 5;3; 0.000000, 0.535820, 1.341474;;, + 6;3; 0.000000, 0.535820, 1.341474;;, + 7;3; 0.000000, 0.535820, 1.341474;;, + 8;3; 0.000000, 0.535820, 1.341474;;, + 9;3; 0.000000, 0.535820, 1.341474;;, + 10;3; 0.000000, 0.535820, 1.341474;;, + 11;3; -0.000000, 0.535820, 1.341474;;, + 12;3; -0.000000, 0.535820, 1.341474;;, + 13;3; 0.000000, 0.535820, 1.341474;;, + 14;3; 0.000000, 0.535820, 1.341474;;, + 15;3; 0.000000, 0.535820, 1.341474;;, + 16;3; -0.000000, 0.535820, 1.341474;;, + 17;3; -0.000000, 0.535820, 1.341474;;, + 18;3; -0.000000, 0.535820, 1.341474;;, + 19;3; -0.000000, 0.535820, 1.341474;;, + 20;3; 0.000000, 0.535820, 1.341474;;, + 21;3; 0.000000, 0.535820, 1.341474;;, + 22;3; -0.000000, 0.535820, 1.341474;;, + 23;3; 0.000000, 0.535820, 1.341474;;, + 24;3; 0.000000, 0.535820, 1.341474;;, + 25;3; 0.000000, 0.535820, 1.341474;;, + 26;3; 0.000000, 0.535820, 1.341474;;, + 27;3; 0.000000, 0.535820, 1.341474;;, + 28;3; 0.000000, 0.535820, 1.341474;;, + 29;3; 0.000000, 0.535820, 1.341474;;, + 30;3; 0.000000, 0.535820, 1.341474;;, + 31;3; 0.000000, 0.535820, 1.341474;;, + 32;3; 0.000000, 0.535820, 1.341474;;, + 33;3; 0.000000, 0.535820, 1.341474;;, + 34;3; 0.000000, 0.535820, 1.341474;;, + 35;3; 0.000000, 0.535820, 1.341474;;, + 36;3; -0.000000, 0.535820, 1.341474;;, + 37;3; -0.000000, 0.535820, 1.341473;;, + 38;3; -0.000000, 0.535820, 1.341475;;, + 39;3; -0.000000, 0.535820, 1.341475;;, + 40;3; -0.000000, 0.535821, 1.341473;;, + 41;3; -0.000000, 0.535821, 1.341474;;, + 42;3; -0.000000, 0.535820, 1.341473;;, + 43;3; -0.000000, 0.535821, 1.341472;;, + 44;3; -0.000000, 0.535820, 1.341473;;, + 45;3; -0.000000, 0.535821, 1.341473;;, + 46;3; -0.000000, 0.535821, 1.341474;;, + 47;3; -0.000000, 0.535820, 1.341472;;, + 48;3; -0.000000, 0.535820, 1.341472;;, + 49;3; -0.000000, 0.535820, 1.341472;;, + 50;3; -0.000000, 0.535820, 1.341472;;, + 51;3; -0.000000, 0.535821, 1.341473;;, + 52;3; -0.000000, 0.535820, 1.341474;;, + 53;3; -0.000000, 0.535820, 1.341474;;, + 54;3; -0.000000, 0.535820, 1.341475;;, + 55;3; -0.000000, 0.535820, 1.341474;;, + 56;3; -0.000000, 0.535820, 1.341475;;, + 57;3; -0.000000, 0.535820, 1.341474;;, + 58;3; -0.000000, 0.535820, 1.341474;;, + 59;3; -0.000000, 0.535820, 1.341474;;, + 60;3; 0.000000, 0.535820, 1.341474;;, + 61;3; 0.000000, 0.535820, 1.341474;;, + 62;3; 0.000000, 0.535820, 1.341474;;, + 63;3; 0.000000, 0.535820, 1.341474;;, + 64;3; 0.000000, 0.535820, 1.341474;;, + 65;3; 0.000000, 0.535820, 1.341474;;, + 66;3; 0.000000, 0.535820, 1.341474;;, + 67;3; 0.000000, 0.535820, 1.341474;;, + 68;3; 0.000000, 0.535820, 1.341474;;, + 69;3; 0.000000, 0.535820, 1.341474;;, + 70;3; 0.000000, 0.535820, 1.341474;;, + 71;3; 0.000000, 0.535820, 1.341474;;; + } + AnimationKey { //Rotation + 0; + 72; + 0;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 1;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 2;4; -0.004254, 0.032017, 0.888040, 0.452075;;, + 3;4; -0.015397, 0.115672, 0.879684, 0.447816;;, + 4;4; -0.026547, 0.199275, 0.870869, 0.443327;;, + 5;4; -0.030808, 0.231245, 0.866580, 0.441154;;, + 6;4; -0.030330, 0.229140, 0.864693, 0.441564;;, + 7;4; -0.028882, 0.222777, 0.861790, 0.444197;;, + 8;4; -0.026462, 0.212139, 0.857875, 0.449068;;, + 9;4; -0.023085, 0.197295, 0.852973, 0.456142;;, + 10;4; -0.018793, 0.178430, 0.847136, 0.465330;;, + 11;4; -0.013659, 0.155865, 0.840454, 0.476468;;, + 12;4; -0.007789, 0.130071, 0.833050, 0.489318;;, + 13;4; -0.001329, 0.101679, 0.825089, 0.503555;;, + 14;4; 0.005548, 0.071460, 0.816766, 0.518785;;, + 15;4; 0.012639, 0.040298, 0.808305, 0.534551;;, + 16;4; 0.019731, 0.009137, 0.799940, 0.550365;;, + 17;4; 0.026608,-0.021080, 0.791905, 0.565738;;, + 18;4; 0.033069,-0.049470, 0.784413, 0.580212;;, + 19;4; 0.038939,-0.075261, 0.777652, 0.593383;;, + 20;4; 0.044074,-0.097823, 0.771769, 0.604922;;, + 21;4; 0.048367,-0.116685, 0.766874, 0.614580;;, + 22;4; 0.051745,-0.131527, 0.763037, 0.622187;;, + 23;4; 0.054165,-0.142163, 0.760298, 0.627643;;, + 24;4; 0.055613,-0.148524, 0.758664, 0.630909;;, + 25;4; 0.056092,-0.150629, 0.758125, 0.631991;;, + 26;4; 0.051106,-0.137240, 0.769952, 0.616138;;, + 27;4; 0.037063,-0.099527, 0.803261, 0.571495;;, + 28;4; 0.019031,-0.051105, 0.846028, 0.514176;;, + 29;4; 0.004986,-0.013390, 0.879340, 0.469527;;, + 30;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 31;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 32;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 33;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 34;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 35;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 36;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 37;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 38;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 39;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 40;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 41;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 42;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 43;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 44;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 45;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 46;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 47;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 48;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 49;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 50;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 51;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 52;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 53;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 54;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 55;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 56;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 57;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 58;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 59;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 60;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 61;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 62;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 63;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 64;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 65;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 66;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 67;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 68;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 69;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 70;4; -0.000000, 0.000000, 0.891169, 0.453672;;, + 71;4; -0.000000, 0.000000, 0.891169, 0.453672;;; + } + AnimationKey { //Scale + 1; + 72; + 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;;; + } + } + Animation { + {Armature_Bone_006} + AnimationKey { //Position + 2; + 72; + 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.000001;;, + 39;3; -0.000000,-0.000000, 0.000000;;, + 40;3; -0.000000, 0.000000, 0.000000;;, + 41;3; 0.000000,-0.000000, 0.000001;;, + 42;3; 0.000000, 0.000000,-0.000001;;, + 43;3; 0.000000, 0.000000, 0.000001;;, + 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.000002;;, + 48;3; 0.000000, 0.000000,-0.000002;;, + 49;3; 0.000000, 0.000000,-0.000001;;, + 50;3; 0.000000,-0.000000, 0.000000;;, + 51;3; 0.000000,-0.000000,-0.000000;;, + 52;3; 0.000000, 0.000000,-0.000001;;, + 53;3; -0.000000, 0.000000,-0.000000;;, + 54;3; -0.000000,-0.000000,-0.000000;;, + 55;3; 0.000000, 0.000000,-0.000001;;, + 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;;; + } + AnimationKey { //Rotation + 0; + 72; + 0;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 1;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 2;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 3;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 4;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 5;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 6;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 7;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 8;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 9;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 10;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 11;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 12;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 13;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 14;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 15;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 16;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 17;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 18;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 19;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 20;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 21;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 22;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 23;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 24;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 25;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 26;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 27;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 28;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 29;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 30;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 31;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 32;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 33;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 34;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 35;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 36;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 37;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 38;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 39;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 40;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 41;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 42;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 43;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 44;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 45;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 46;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 47;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 48;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 49;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 50;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 51;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 52;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 53;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 54;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 55;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 56;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 57;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 58;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 59;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 60;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 61;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 62;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 63;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 64;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 65;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 66;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 67;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 68;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 69;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 70;4; -0.000000, 0.000000, 0.874792,-0.484499;;, + 71;4; -0.000000, 0.000000, 0.874792,-0.484499;;; + } + AnimationKey { //Scale + 1; + 72; + 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;;; + } + } + Animation { + {Armature_Bone_007} + AnimationKey { //Position + 2; + 72; + 0;3; 0.000000, 1.619178, 0.000000;;, + 1;3; 0.000000, 1.619178, 0.000000;;, + 2;3; 0.000000, 1.619178, 0.000000;;, + 3;3; 0.000000, 1.619178, 0.000000;;, + 4;3; 0.000000, 1.619178, 0.000000;;, + 5;3; 0.000000, 1.619178, 0.000000;;, + 6;3; 0.000000, 1.619178, 0.000000;;, + 7;3; 0.000000, 1.619178, 0.000000;;, + 8;3; 0.000000, 1.619178, 0.000000;;, + 9;3; 0.000000, 1.619178, 0.000000;;, + 10;3; 0.000000, 1.619178, 0.000000;;, + 11;3; 0.000000, 1.619178, 0.000000;;, + 12;3; 0.000000, 1.619178, 0.000000;;, + 13;3; 0.000000, 1.619178, 0.000000;;, + 14;3; 0.000000, 1.619178, 0.000000;;, + 15;3; 0.000000, 1.619178, 0.000000;;, + 16;3; 0.000000, 1.619178, 0.000000;;, + 17;3; 0.000000, 1.619178, 0.000000;;, + 18;3; 0.000000, 1.619178, 0.000000;;, + 19;3; 0.000000, 1.619178, 0.000000;;, + 20;3; 0.000000, 1.619178, 0.000000;;, + 21;3; 0.000000, 1.619178, 0.000000;;, + 22;3; 0.000000, 1.619178, 0.000000;;, + 23;3; 0.000000, 1.619178, 0.000000;;, + 24;3; 0.000000, 1.619178, 0.000000;;, + 25;3; 0.000000, 1.619178, 0.000000;;, + 26;3; 0.000000, 1.619178, 0.000000;;, + 27;3; 0.000000, 1.619178, 0.000000;;, + 28;3; 0.000000, 1.619178, 0.000000;;, + 29;3; 0.000000, 1.619178, 0.000000;;, + 30;3; 0.000000, 1.619178, 0.000000;;, + 31;3; 0.000000, 1.619178, 0.000000;;, + 32;3; 0.000000, 1.619178, 0.000000;;, + 33;3; 0.000000, 1.619178, 0.000000;;, + 34;3; 0.000000, 1.619178, 0.000000;;, + 35;3; 0.000000, 1.619178, 0.000000;;, + 36;3; 0.000000, 1.619177,-0.000000;;, + 37;3; 0.000000, 1.619178,-0.000000;;, + 38;3; 0.000000, 1.619178, 0.000001;;, + 39;3; 0.000000, 1.619178, 0.000001;;, + 40;3; 0.000000, 1.619179, 0.000001;;, + 41;3; 0.000000, 1.619177,-0.000001;;, + 42;3; 0.000000, 1.619176,-0.000001;;, + 43;3; 0.000000, 1.619178, 0.000000;;, + 44;3; 0.000000, 1.619178,-0.000001;;, + 45;3; -0.000000, 1.619177, 0.000000;;, + 46;3; 0.000000, 1.619177, 0.000001;;, + 47;3; 0.000000, 1.619178, 0.000001;;, + 48;3; 0.000000, 1.619177, 0.000000;;, + 49;3; 0.000000, 1.619177,-0.000000;;, + 50;3; -0.000000, 1.619178, 0.000001;;, + 51;3; 0.000000, 1.619178,-0.000000;;, + 52;3; 0.000000, 1.619176,-0.000000;;, + 53;3; 0.000000, 1.619177, 0.000001;;, + 54;3; 0.000000, 1.619178, 0.000000;;, + 55;3; 0.000000, 1.619178, 0.000001;;, + 56;3; 0.000000, 1.619179, 0.000000;;, + 57;3; 0.000000, 1.619178,-0.000000;;, + 58;3; 0.000000, 1.619178,-0.000000;;, + 59;3; 0.000000, 1.619178, 0.000000;;, + 60;3; 0.000000, 1.619178, 0.000000;;, + 61;3; 0.000000, 1.619178, 0.000000;;, + 62;3; 0.000000, 1.619178, 0.000000;;, + 63;3; 0.000000, 1.619178, 0.000000;;, + 64;3; 0.000000, 1.619178, 0.000000;;, + 65;3; 0.000000, 1.619178, 0.000000;;, + 66;3; 0.000000, 1.619178, 0.000000;;, + 67;3; 0.000000, 1.619178, 0.000000;;, + 68;3; 0.000000, 1.619178, 0.000000;;, + 69;3; 0.000000, 1.619178, 0.000000;;, + 70;3; 0.000000, 1.619178, 0.000000;;, + 71;3; 0.000000, 1.619178, 0.000000;;; + } + AnimationKey { //Rotation + 0; + 72; + 0;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 1;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 2;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 3;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 4;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 5;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 6;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 7;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 8;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 9;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 10;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 11;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 12;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 13;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 14;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 15;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 16;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 17;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 18;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 19;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 20;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 21;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 22;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 23;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 24;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 25;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 26;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 27;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 28;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 29;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 30;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 31;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 32;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 33;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 34;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 35;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 36;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 37;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 38;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 39;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 40;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 41;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 42;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 43;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 44;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 45;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 46;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 47;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 48;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 49;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 50;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 51;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 52;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 53;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 54;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 55;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 56;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 57;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 58;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 59;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 60;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 61;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 62;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 63;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 64;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 65;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 66;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 67;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 68;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 69;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 70;4; -0.606665,-0.363260, 0.363260, 0.606665;;, + 71;4; -0.606665,-0.363260, 0.363260, 0.606665;;; + } + AnimationKey { //Scale + 1; + 72; + 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;;; + } + } + Animation { + {Armature_krilo1} + AnimationKey { //Position + 2; + 72; + 0;3; -0.000000, 0.328829,-0.000000;;, + 1;3; -0.000000, 0.328829,-0.000000;;, + 2;3; -0.000000, 0.328829,-0.000000;;, + 3;3; -0.000000, 0.328829,-0.000000;;, + 4;3; -0.000000, 0.328829,-0.000000;;, + 5;3; -0.000000, 0.328829,-0.000000;;, + 6;3; -0.000000, 0.328829,-0.000000;;, + 7;3; -0.000000, 0.328829,-0.000000;;, + 8;3; -0.000000, 0.328829,-0.000000;;, + 9;3; -0.000000, 0.328829,-0.000000;;, + 10;3; -0.000000, 0.328829,-0.000000;;, + 11;3; -0.000000, 0.328829,-0.000000;;, + 12;3; -0.000000, 0.328829,-0.000000;;, + 13;3; -0.000000, 0.328829,-0.000000;;, + 14;3; -0.000000, 0.328829,-0.000000;;, + 15;3; -0.000000, 0.328829,-0.000000;;, + 16;3; -0.000000, 0.328829,-0.000000;;, + 17;3; -0.000000, 0.328829,-0.000000;;, + 18;3; -0.000000, 0.328829,-0.000000;;, + 19;3; -0.000000, 0.328829,-0.000000;;, + 20;3; -0.000000, 0.328829,-0.000000;;, + 21;3; -0.000000, 0.328829,-0.000000;;, + 22;3; -0.000000, 0.328829,-0.000000;;, + 23;3; -0.000000, 0.328829,-0.000000;;, + 24;3; -0.000000, 0.328829,-0.000000;;, + 25;3; -0.000000, 0.328829,-0.000000;;, + 26;3; -0.000000, 0.328829,-0.000000;;, + 27;3; -0.000000, 0.328829,-0.000000;;, + 28;3; -0.000000, 0.328829,-0.000000;;, + 29;3; -0.000000, 0.328829,-0.000000;;, + 30;3; -0.000000, 0.328829,-0.000000;;, + 31;3; -0.000000, 0.328829,-0.000000;;, + 32;3; -0.000000, 0.328829,-0.000000;;, + 33;3; -0.000000, 0.328829,-0.000000;;, + 34;3; -0.000000, 0.328829,-0.000000;;, + 35;3; -0.000000, 0.328829,-0.000000;;, + 36;3; 0.000000, 0.328829, 0.000000;;, + 37;3; 0.000000, 0.328829, 0.000000;;, + 38;3; 0.000000, 0.328829, 0.000001;;, + 39;3; 0.000000, 0.328829, 0.000001;;, + 40;3; 0.000000, 0.328829, 0.000000;;, + 41;3; 0.000000, 0.328829, 0.000001;;, + 42;3; 0.000000, 0.328829, 0.000001;;, + 43;3; 0.000000, 0.328829, 0.000001;;, + 44;3; 0.000000, 0.328829, 0.000001;;, + 45;3; 0.000000, 0.328829, 0.000001;;, + 46;3; 0.000000, 0.328829, 0.000001;;, + 47;3; 0.000000, 0.328829, 0.000001;;, + 48;3; 0.000000, 0.328829, 0.000001;;, + 49;3; 0.000000, 0.328829, 0.000001;;, + 50;3; 0.000000, 0.328829, 0.000001;;, + 51;3; 0.000000, 0.328829, 0.000001;;, + 52;3; 0.000000, 0.328829,-0.000003;;, + 53;3; 0.000000, 0.328829,-0.000000;;, + 54;3; 0.000000, 0.328829, 0.000001;;, + 55;3; 0.000000, 0.328829, 0.000001;;, + 56;3; 0.000000, 0.328829, 0.000000;;, + 57;3; -0.000000, 0.328829, 0.000000;;, + 58;3; 0.000000, 0.328829, 0.000000;;, + 59;3; 0.000000, 0.328829, 0.000000;;, + 60;3; -0.000000, 0.328829, 0.000000;;, + 61;3; -0.000000, 0.328829,-0.000000;;, + 62;3; -0.000000, 0.328829,-0.000000;;, + 63;3; -0.000000, 0.328829,-0.000000;;, + 64;3; -0.000000, 0.328829,-0.000000;;, + 65;3; -0.000000, 0.328829,-0.000000;;, + 66;3; -0.000000, 0.328829,-0.000000;;, + 67;3; -0.000000, 0.328829,-0.000000;;, + 68;3; -0.000000, 0.328829,-0.000000;;, + 69;3; -0.000000, 0.328829,-0.000000;;, + 70;3; -0.000000, 0.328829,-0.000000;;, + 71;3; -0.000000, 0.328829,-0.000000;;; + } + AnimationKey { //Rotation + 0; + 72; + 0;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 1;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 2;4; -0.759791, 0.000000, 0.000000,-0.650020;;, + 3;4; -0.769068, 0.000000, 0.000000,-0.638852;;, + 4;4; -0.778344, 0.000000, 0.000000,-0.627685;;, + 5;4; -0.781891, 0.000000, 0.000000,-0.623416;;, + 6;4; -0.781749, 0.000000, 0.000000,-0.623586;;, + 7;4; -0.781322, 0.000000, 0.000000,-0.624100;;, + 8;4; -0.780608, 0.000000, 0.000000,-0.624960;;, + 9;4; -0.779611, 0.000000, 0.000000,-0.626160;;, + 10;4; -0.778344, 0.000000, 0.000000,-0.627685;;, + 11;4; -0.776829, 0.000000, 0.000000,-0.629509;;, + 12;4; -0.775097, 0.000000, 0.000000,-0.631594;;, + 13;4; -0.773190, 0.000000, 0.000000,-0.633890;;, + 14;4; -0.771160, 0.000000, 0.000000,-0.636333;;, + 15;4; -0.769068, 0.000000, 0.000000,-0.638852;;, + 16;4; -0.766975, 0.000000, 0.000000,-0.641372;;, + 17;4; -0.764945, 0.000000, 0.000000,-0.643815;;, + 18;4; -0.763038, 0.000000, 0.000000,-0.646110;;, + 19;4; -0.761306, 0.000000, 0.000000,-0.648196;;, + 20;4; -0.759791, 0.000000, 0.000000,-0.650020;;, + 21;4; -0.758524, 0.000000, 0.000000,-0.651545;;, + 22;4; -0.757527, 0.000000, 0.000000,-0.652745;;, + 23;4; -0.756813, 0.000000, 0.000000,-0.653605;;, + 24;4; -0.756386, 0.000000, 0.000000,-0.654119;;, + 25;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 26;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 27;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 28;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 29;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 30;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 31;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 32;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 33;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 34;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 35;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 36;4; -0.774609,-0.027614,-0.000881,-0.599671;;, + 37;4; -0.825683,-0.105349,-0.003363,-0.445659;;, + 38;4; -0.889878,-0.205182,-0.006550,-0.246972;;, + 39;4; -0.937492,-0.283030,-0.009028,-0.089985;;, + 40;4; -0.949971,-0.310709,-0.009905,-0.030285;;, + 41;4; -0.943262,-0.151135,-0.004838,-0.027171;;, + 42;4; -0.938209, 0.189674, 0.006037,-0.028546;;, + 43;4; -0.936624, 0.348885, 0.011122,-0.029859;;, + 44;4; -0.939848, 0.189782, 0.006032,-0.029962;;, + 45;4; -0.946747,-0.150903,-0.004849,-0.030182;;, + 46;4; -0.949971,-0.310709,-0.009905,-0.030285;;, + 47;4; -0.949971,-0.310709,-0.009905,-0.030285;;, + 48;4; -0.949971,-0.310709,-0.009905,-0.030285;;, + 49;4; -0.949971,-0.310709,-0.009905,-0.030285;;, + 50;4; -0.946747,-0.150903,-0.004849,-0.030182;;, + 51;4; -0.939848, 0.189782, 0.006032,-0.029962;;, + 52;4; -0.936624, 0.348885, 0.011122,-0.029859;;, + 53;4; -0.938209, 0.189690, 0.006037,-0.028546;;, + 54;4; -0.943263,-0.151101,-0.004839,-0.027171;;, + 55;4; -0.949971,-0.310709,-0.009905,-0.030285;;, + 56;4; -0.943101,-0.291464,-0.009296,-0.073312;;, + 57;4; -0.910087,-0.235530,-0.007519,-0.187106;;, + 58;4; -0.858994,-0.155234,-0.004958,-0.347366;;, + 59;4; -0.806373,-0.075003,-0.002395,-0.506312;;, + 60;4; -0.769161,-0.019189,-0.000612,-0.616487;;, + 61;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 62;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 63;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 64;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 65;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 66;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 67;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 68;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 69;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 70;4; -0.756244, 0.000000, 0.000000,-0.654289;;, + 71;4; -0.756244, 0.000000, 0.000000,-0.654289;;; + } + AnimationKey { //Scale + 1; + 72; + 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;;; + } + } + Animation { + {Armature_Bone_008} + AnimationKey { //Position + 2; + 72; + 0;3; 0.000000, 1.619178, 0.000000;;, + 1;3; 0.000000, 1.619178, 0.000000;;, + 2;3; 0.000000, 1.619178, 0.000000;;, + 3;3; 0.000000, 1.619178, 0.000000;;, + 4;3; 0.000000, 1.619178, 0.000000;;, + 5;3; 0.000000, 1.619178, 0.000000;;, + 6;3; 0.000000, 1.619178, 0.000000;;, + 7;3; 0.000000, 1.619178, 0.000000;;, + 8;3; 0.000000, 1.619178, 0.000000;;, + 9;3; 0.000000, 1.619178, 0.000000;;, + 10;3; 0.000000, 1.619178, 0.000000;;, + 11;3; 0.000000, 1.619178, 0.000000;;, + 12;3; 0.000000, 1.619178, 0.000000;;, + 13;3; 0.000000, 1.619178, 0.000000;;, + 14;3; 0.000000, 1.619178, 0.000000;;, + 15;3; 0.000000, 1.619178, 0.000000;;, + 16;3; 0.000000, 1.619178, 0.000000;;, + 17;3; 0.000000, 1.619178, 0.000000;;, + 18;3; 0.000000, 1.619178, 0.000000;;, + 19;3; 0.000000, 1.619178, 0.000000;;, + 20;3; 0.000000, 1.619178, 0.000000;;, + 21;3; 0.000000, 1.619178, 0.000000;;, + 22;3; 0.000000, 1.619178, 0.000000;;, + 23;3; 0.000000, 1.619178, 0.000000;;, + 24;3; 0.000000, 1.619178, 0.000000;;, + 25;3; 0.000000, 1.619178, 0.000000;;, + 26;3; 0.000000, 1.619178, 0.000000;;, + 27;3; 0.000000, 1.619178, 0.000000;;, + 28;3; 0.000000, 1.619178, 0.000000;;, + 29;3; 0.000000, 1.619178, 0.000000;;, + 30;3; 0.000000, 1.619178, 0.000000;;, + 31;3; 0.000000, 1.619178, 0.000000;;, + 32;3; 0.000000, 1.619178, 0.000000;;, + 33;3; 0.000000, 1.619178, 0.000000;;, + 34;3; 0.000000, 1.619178, 0.000000;;, + 35;3; 0.000000, 1.619178, 0.000000;;, + 36;3; 0.000000, 1.619177,-0.000000;;, + 37;3; 0.000000, 1.619178,-0.000000;;, + 38;3; 0.000000, 1.619178, 0.000001;;, + 39;3; 0.000000, 1.619178, 0.000001;;, + 40;3; 0.000000, 1.619179, 0.000001;;, + 41;3; 0.000000, 1.619177,-0.000001;;, + 42;3; 0.000000, 1.619176,-0.000001;;, + 43;3; 0.000000, 1.619178, 0.000000;;, + 44;3; 0.000000, 1.619178,-0.000001;;, + 45;3; -0.000000, 1.619177, 0.000000;;, + 46;3; 0.000000, 1.619177, 0.000001;;, + 47;3; 0.000000, 1.619178, 0.000001;;, + 48;3; 0.000000, 1.619177, 0.000000;;, + 49;3; 0.000000, 1.619177,-0.000000;;, + 50;3; -0.000000, 1.619178, 0.000001;;, + 51;3; 0.000000, 1.619178,-0.000000;;, + 52;3; 0.000000, 1.619176,-0.000000;;, + 53;3; 0.000000, 1.619177, 0.000001;;, + 54;3; 0.000000, 1.619178, 0.000000;;, + 55;3; 0.000000, 1.619178, 0.000001;;, + 56;3; 0.000000, 1.619179, 0.000000;;, + 57;3; 0.000000, 1.619178,-0.000000;;, + 58;3; 0.000000, 1.619178,-0.000000;;, + 59;3; 0.000000, 1.619178, 0.000000;;, + 60;3; 0.000000, 1.619178, 0.000000;;, + 61;3; 0.000000, 1.619178, 0.000000;;, + 62;3; 0.000000, 1.619178, 0.000000;;, + 63;3; 0.000000, 1.619178, 0.000000;;, + 64;3; 0.000000, 1.619178, 0.000000;;, + 65;3; 0.000000, 1.619178, 0.000000;;, + 66;3; 0.000000, 1.619178, 0.000000;;, + 67;3; 0.000000, 1.619178, 0.000000;;, + 68;3; 0.000000, 1.619178, 0.000000;;, + 69;3; 0.000000, 1.619178, 0.000000;;, + 70;3; 0.000000, 1.619178, 0.000000;;, + 71;3; 0.000000, 1.619178, 0.000000;;; + } + AnimationKey { //Rotation + 0; + 72; + 0;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 1;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 2;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 3;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 4;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 5;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 6;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 7;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 8;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 9;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 10;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 11;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 12;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 13;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 14;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 15;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 16;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 17;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 18;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 19;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 20;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 21;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 22;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 23;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 24;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 25;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 26;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 27;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 28;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 29;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 30;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 31;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 32;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 33;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 34;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 35;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 36;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 37;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 38;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 39;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 40;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 41;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 42;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 43;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 44;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 45;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 46;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 47;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 48;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 49;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 50;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 51;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 52;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 53;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 54;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 55;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 56;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 57;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 58;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 59;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 60;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 61;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 62;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 63;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 64;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 65;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 66;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 67;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 68;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 69;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 70;4; -0.606665,-0.363260,-0.363260,-0.606665;;, + 71;4; -0.606665,-0.363260,-0.363260,-0.606665;;; + } + AnimationKey { //Scale + 1; + 72; + 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;;; + } + } + Animation { + {Armature_krilo2} + AnimationKey { //Position + 2; + 72; + 0;3; -0.000000, 0.346481,-0.000000;;, + 1;3; -0.000000, 0.346481,-0.000000;;, + 2;3; -0.000000, 0.346481,-0.000000;;, + 3;3; -0.000000, 0.346481,-0.000000;;, + 4;3; -0.000000, 0.346481,-0.000000;;, + 5;3; -0.000000, 0.346481,-0.000000;;, + 6;3; -0.000000, 0.346481,-0.000000;;, + 7;3; -0.000000, 0.346481,-0.000000;;, + 8;3; -0.000000, 0.346481,-0.000000;;, + 9;3; -0.000000, 0.346481,-0.000000;;, + 10;3; -0.000000, 0.346481,-0.000000;;, + 11;3; -0.000000, 0.346481,-0.000000;;, + 12;3; -0.000000, 0.346481,-0.000000;;, + 13;3; -0.000000, 0.346481,-0.000000;;, + 14;3; -0.000000, 0.346481,-0.000000;;, + 15;3; -0.000000, 0.346481,-0.000000;;, + 16;3; -0.000000, 0.346481,-0.000000;;, + 17;3; -0.000000, 0.346481,-0.000000;;, + 18;3; -0.000000, 0.346481,-0.000000;;, + 19;3; -0.000000, 0.346481,-0.000000;;, + 20;3; -0.000000, 0.346481,-0.000000;;, + 21;3; -0.000000, 0.346481,-0.000000;;, + 22;3; -0.000000, 0.346481,-0.000000;;, + 23;3; -0.000000, 0.346481,-0.000000;;, + 24;3; -0.000000, 0.346481,-0.000000;;, + 25;3; -0.000000, 0.346481,-0.000000;;, + 26;3; -0.000000, 0.346481,-0.000000;;, + 27;3; -0.000000, 0.346481,-0.000000;;, + 28;3; -0.000000, 0.346481,-0.000000;;, + 29;3; -0.000000, 0.346481,-0.000000;;, + 30;3; -0.000000, 0.346481,-0.000000;;, + 31;3; -0.000000, 0.346481,-0.000000;;, + 32;3; -0.000000, 0.346481,-0.000000;;, + 33;3; -0.000000, 0.346481,-0.000000;;, + 34;3; -0.000000, 0.346481,-0.000000;;, + 35;3; -0.000000, 0.346481,-0.000000;;, + 36;3; -0.000000, 0.346481, 0.000000;;, + 37;3; -0.000000, 0.346481, 0.000000;;, + 38;3; -0.000000, 0.346481, 0.000001;;, + 39;3; -0.000000, 0.346481, 0.000001;;, + 40;3; -0.000000, 0.346481, 0.000000;;, + 41;3; -0.000000, 0.346481, 0.000001;;, + 42;3; -0.000000, 0.346481, 0.000001;;, + 43;3; -0.000000, 0.346482, 0.000001;;, + 44;3; -0.000000, 0.346481, 0.000001;;, + 45;3; -0.000000, 0.346481, 0.000001;;, + 46;3; -0.000000, 0.346481, 0.000001;;, + 47;3; -0.000000, 0.346481, 0.000001;;, + 48;3; -0.000000, 0.346481, 0.000001;;, + 49;3; -0.000000, 0.346481, 0.000001;;, + 50;3; -0.000000, 0.346481, 0.000001;;, + 51;3; -0.000000, 0.346481, 0.000001;;, + 52;3; 0.000000, 0.346481, 0.000000;;, + 53;3; 0.000000, 0.346481,-0.000001;;, + 54;3; -0.000000, 0.346481, 0.000000;;, + 55;3; 0.000000, 0.346481, 0.000001;;, + 56;3; -0.000000, 0.346481, 0.000000;;, + 57;3; -0.000000, 0.346481, 0.000000;;, + 58;3; -0.000000, 0.346481, 0.000000;;, + 59;3; -0.000000, 0.346481,-0.000000;;, + 60;3; -0.000000, 0.346481,-0.000000;;, + 61;3; -0.000000, 0.346481,-0.000000;;, + 62;3; -0.000000, 0.346481,-0.000000;;, + 63;3; -0.000000, 0.346481,-0.000000;;, + 64;3; -0.000000, 0.346481,-0.000000;;, + 65;3; -0.000000, 0.346481,-0.000000;;, + 66;3; -0.000000, 0.346481,-0.000000;;, + 67;3; -0.000000, 0.346481,-0.000000;;, + 68;3; -0.000000, 0.346481,-0.000000;;, + 69;3; -0.000000, 0.346481,-0.000000;;, + 70;3; -0.000000, 0.346481,-0.000000;;, + 71;3; -0.000000, 0.346481,-0.000000;;; + } + AnimationKey { //Rotation + 0; + 72; + 0;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 1;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 2;4; -0.754673,-0.000000, 0.000000, 0.656051;;, + 3;4; -0.760217,-0.000000, 0.000000, 0.649562;;, + 4;4; -0.765761,-0.000000, 0.000000, 0.643074;;, + 5;4; -0.767881,-0.000000, 0.000000, 0.640593;;, + 6;4; -0.767796,-0.000000, 0.000000, 0.640692;;, + 7;4; -0.767541,-0.000000, 0.000000, 0.640991;;, + 8;4; -0.767114,-0.000000, 0.000000, 0.641490;;, + 9;4; -0.766518,-0.000000, 0.000000, 0.642187;;, + 10;4; -0.765761,-0.000000, 0.000000, 0.643074;;, + 11;4; -0.764856,-0.000000, 0.000000, 0.644133;;, + 12;4; -0.763820,-0.000000, 0.000000, 0.645345;;, + 13;4; -0.762681,-0.000000, 0.000000, 0.646679;;, + 14;4; -0.761468,-0.000000, 0.000000, 0.648098;;, + 15;4; -0.760217,-0.000000, 0.000000, 0.649562;;, + 16;4; -0.758966,-0.000000, 0.000000, 0.651026;;, + 17;4; -0.757753,-0.000000, 0.000000, 0.652445;;, + 18;4; -0.756614,-0.000000, 0.000000, 0.653779;;, + 19;4; -0.755579,-0.000000, 0.000000, 0.654991;;, + 20;4; -0.754673,-0.000000, 0.000000, 0.656051;;, + 21;4; -0.753916,-0.000000, 0.000000, 0.656937;;, + 22;4; -0.753320,-0.000000, 0.000000, 0.657634;;, + 23;4; -0.752893,-0.000000, 0.000000, 0.658134;;, + 24;4; -0.752638,-0.000000, 0.000000, 0.658432;;, + 25;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 26;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 27;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 28;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 29;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 30;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 31;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 32;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 33;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 34;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 35;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 36;4; -0.773327,-0.026242,-0.001055, 0.603456;;, + 37;4; -0.830468,-0.100111,-0.004015, 0.447558;;, + 38;4; -0.900551,-0.194986,-0.007822, 0.244811;;, + 39;4; -0.949085,-0.268986,-0.010813, 0.081432;;, + 40;4; -0.955233,-0.295302,-0.011886, 0.013587;;, + 41;4; -0.938372,-0.129848,-0.005166, 0.005908;;, + 42;4; -0.925397, 0.223399, 0.009020, 0.009664;;, + 43;4; -0.921261, 0.388410, 0.015633, 0.013104;;, + 44;4; -0.929467, 0.223514, 0.009047, 0.013220;;, + 45;4; -0.947027,-0.129602,-0.005107, 0.013470;;, + 46;4; -0.955233,-0.295302,-0.011886, 0.013587;;, + 47;4; -0.955233,-0.295302,-0.011886, 0.013587;;, + 48;4; -0.955233,-0.295302,-0.011886, 0.013587;;, + 49;4; -0.955233,-0.295302,-0.011886, 0.013587;;, + 50;4; -0.947027,-0.129602,-0.005107, 0.013470;;, + 51;4; -0.929467, 0.223514, 0.009047, 0.013220;;, + 52;4; -0.921261, 0.388410, 0.015633, 0.013104;;, + 53;4; -0.925398, 0.223415, 0.009024, 0.009663;;, + 54;4; -0.938375,-0.129812,-0.005158, 0.005907;;, + 55;4; -0.955233,-0.295302,-0.011886, 0.013587;;, + 56;4; -0.955424,-0.277004,-0.011138, 0.064620;;, + 57;4; -0.923527,-0.223831,-0.008981, 0.184574;;, + 58;4; -0.868522,-0.147516,-0.005911, 0.348824;;, + 59;4; -0.809718,-0.071274,-0.002857, 0.509770;;, + 60;4; -0.767385,-0.018236,-0.000733, 0.620627;;, + 61;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 62;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 63;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 64;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 65;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 66;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 67;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 68;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 69;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 70;4; -0.752553,-0.000000, 0.000000, 0.658531;;, + 71;4; -0.752553,-0.000000, 0.000000, 0.658531;;; + } + AnimationKey { //Scale + 1; + 72; + 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;;; + } + } + Animation { + {Cube} + AnimationKey { //Position + 2; + 72; + 0;3; 0.142552,-0.710054, 0.633902;;, + 1;3; 0.142552,-0.710054, 0.633902;;, + 2;3; 0.142552,-0.710054, 0.633902;;, + 3;3; 0.142552,-0.710054, 0.633902;;, + 4;3; 0.142552,-0.710054, 0.633902;;, + 5;3; 0.142552,-0.710054, 0.633902;;, + 6;3; 0.142552,-0.710054, 0.633902;;, + 7;3; 0.142552,-0.710054, 0.633902;;, + 8;3; 0.142552,-0.710054, 0.633902;;, + 9;3; 0.142552,-0.710054, 0.633902;;, + 10;3; 0.142552,-0.710054, 0.633902;;, + 11;3; 0.142552,-0.710054, 0.633902;;, + 12;3; 0.142552,-0.710054, 0.633902;;, + 13;3; 0.142552,-0.710054, 0.633902;;, + 14;3; 0.142552,-0.710054, 0.633902;;, + 15;3; 0.142552,-0.710054, 0.633902;;, + 16;3; 0.142552,-0.710054, 0.633902;;, + 17;3; 0.142552,-0.710054, 0.633902;;, + 18;3; 0.142552,-0.710054, 0.633902;;, + 19;3; 0.142552,-0.710054, 0.633902;;, + 20;3; 0.142552,-0.710054, 0.633902;;, + 21;3; 0.142552,-0.710054, 0.633902;;, + 22;3; 0.142552,-0.710054, 0.633902;;, + 23;3; 0.142552,-0.710054, 0.633902;;, + 24;3; 0.142552,-0.710054, 0.633902;;, + 25;3; 0.142552,-0.710054, 0.633902;;, + 26;3; 0.142552,-0.710054, 0.633902;;, + 27;3; 0.142552,-0.710054, 0.633902;;, + 28;3; 0.142552,-0.710054, 0.633902;;, + 29;3; 0.142552,-0.710054, 0.633902;;, + 30;3; 0.142552,-0.710054, 0.633902;;, + 31;3; 0.142552,-0.710054, 0.633902;;, + 32;3; 0.142552,-0.710054, 0.633902;;, + 33;3; 0.142552,-0.710054, 0.633902;;, + 34;3; 0.142552,-0.710054, 0.633902;;, + 35;3; 0.142552,-0.710054, 0.633902;;, + 36;3; 0.142552,-0.710054, 0.633902;;, + 37;3; 0.142552,-0.710054, 0.633902;;, + 38;3; 0.142552,-0.710054, 0.633902;;, + 39;3; 0.142552,-0.710054, 0.633902;;, + 40;3; 0.142552,-0.710054, 0.633902;;, + 41;3; 0.142552,-0.710054, 0.633902;;, + 42;3; 0.142552,-0.710054, 0.633902;;, + 43;3; 0.142552,-0.710054, 0.633902;;, + 44;3; 0.142552,-0.710054, 0.633902;;, + 45;3; 0.142552,-0.710054, 0.633902;;, + 46;3; 0.142552,-0.710054, 0.633902;;, + 47;3; 0.142552,-0.710054, 0.633902;;, + 48;3; 0.142552,-0.710054, 0.633902;;, + 49;3; 0.142552,-0.710054, 0.633902;;, + 50;3; 0.142552,-0.710054, 0.633902;;, + 51;3; 0.142552,-0.710054, 0.633902;;, + 52;3; 0.142552,-0.710054, 0.633902;;, + 53;3; 0.142552,-0.710054, 0.633902;;, + 54;3; 0.142552,-0.710054, 0.633902;;, + 55;3; 0.142552,-0.710054, 0.633902;;, + 56;3; 0.142552,-0.710054, 0.633902;;, + 57;3; 0.142552,-0.710054, 0.633902;;, + 58;3; 0.142552,-0.710054, 0.633902;;, + 59;3; 0.142552,-0.710054, 0.633902;;, + 60;3; 0.142552,-0.710054, 0.633902;;, + 61;3; 0.142552,-0.710054, 0.633902;;, + 62;3; 0.142552,-0.710054, 0.633902;;, + 63;3; 0.142552,-0.710054, 0.633902;;, + 64;3; 0.142552,-0.710054, 0.633902;;, + 65;3; 0.142552,-0.710054, 0.633902;;, + 66;3; 0.142552,-0.710054, 0.633902;;, + 67;3; 0.142552,-0.710054, 0.633902;;, + 68;3; 0.142552,-0.710054, 0.633902;;, + 69;3; 0.142552,-0.710054, 0.633902;;, + 70;3; 0.142552,-0.710054, 0.633902;;, + 71;3; 0.142552,-0.710054, 0.633902;;; + } + AnimationKey { //Rotation + 0; + 72; + 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;;; + } + AnimationKey { //Scale + 1; + 72; + 0;3; 0.384873, 0.384873, 0.384873;;, + 1;3; 0.384873, 0.384873, 0.384873;;, + 2;3; 0.384873, 0.384873, 0.384873;;, + 3;3; 0.384873, 0.384873, 0.384873;;, + 4;3; 0.384873, 0.384873, 0.384873;;, + 5;3; 0.384873, 0.384873, 0.384873;;, + 6;3; 0.384873, 0.384873, 0.384873;;, + 7;3; 0.384873, 0.384873, 0.384873;;, + 8;3; 0.384873, 0.384873, 0.384873;;, + 9;3; 0.384873, 0.384873, 0.384873;;, + 10;3; 0.384873, 0.384873, 0.384873;;, + 11;3; 0.384873, 0.384873, 0.384873;;, + 12;3; 0.384873, 0.384873, 0.384873;;, + 13;3; 0.384873, 0.384873, 0.384873;;, + 14;3; 0.384873, 0.384873, 0.384873;;, + 15;3; 0.384873, 0.384873, 0.384873;;, + 16;3; 0.384873, 0.384873, 0.384873;;, + 17;3; 0.384873, 0.384873, 0.384873;;, + 18;3; 0.384873, 0.384873, 0.384873;;, + 19;3; 0.384873, 0.384873, 0.384873;;, + 20;3; 0.384873, 0.384873, 0.384873;;, + 21;3; 0.384873, 0.384873, 0.384873;;, + 22;3; 0.384873, 0.384873, 0.384873;;, + 23;3; 0.384873, 0.384873, 0.384873;;, + 24;3; 0.384873, 0.384873, 0.384873;;, + 25;3; 0.384873, 0.384873, 0.384873;;, + 26;3; 0.384873, 0.384873, 0.384873;;, + 27;3; 0.384873, 0.384873, 0.384873;;, + 28;3; 0.384873, 0.384873, 0.384873;;, + 29;3; 0.384873, 0.384873, 0.384873;;, + 30;3; 0.384873, 0.384873, 0.384873;;, + 31;3; 0.384873, 0.384873, 0.384873;;, + 32;3; 0.384873, 0.384873, 0.384873;;, + 33;3; 0.384873, 0.384873, 0.384873;;, + 34;3; 0.384873, 0.384873, 0.384873;;, + 35;3; 0.384873, 0.384873, 0.384873;;, + 36;3; 0.384873, 0.384873, 0.384873;;, + 37;3; 0.384873, 0.384873, 0.384873;;, + 38;3; 0.384873, 0.384873, 0.384873;;, + 39;3; 0.384873, 0.384873, 0.384873;;, + 40;3; 0.384873, 0.384873, 0.384873;;, + 41;3; 0.384873, 0.384873, 0.384873;;, + 42;3; 0.384873, 0.384873, 0.384873;;, + 43;3; 0.384873, 0.384873, 0.384873;;, + 44;3; 0.384873, 0.384873, 0.384873;;, + 45;3; 0.384873, 0.384873, 0.384873;;, + 46;3; 0.384873, 0.384873, 0.384873;;, + 47;3; 0.384873, 0.384873, 0.384873;;, + 48;3; 0.384873, 0.384873, 0.384873;;, + 49;3; 0.384873, 0.384873, 0.384873;;, + 50;3; 0.384873, 0.384873, 0.384873;;, + 51;3; 0.384873, 0.384873, 0.384873;;, + 52;3; 0.384873, 0.384873, 0.384873;;, + 53;3; 0.384873, 0.384873, 0.384873;;, + 54;3; 0.384873, 0.384873, 0.384873;;, + 55;3; 0.384873, 0.384873, 0.384873;;, + 56;3; 0.384873, 0.384873, 0.384873;;, + 57;3; 0.384873, 0.384873, 0.384873;;, + 58;3; 0.384873, 0.384873, 0.384873;;, + 59;3; 0.384873, 0.384873, 0.384873;;, + 60;3; 0.384873, 0.384873, 0.384873;;, + 61;3; 0.384873, 0.384873, 0.384873;;, + 62;3; 0.384873, 0.384873, 0.384873;;, + 63;3; 0.384873, 0.384873, 0.384873;;, + 64;3; 0.384873, 0.384873, 0.384873;;, + 65;3; 0.384873, 0.384873, 0.384873;;, + 66;3; 0.384873, 0.384873, 0.384873;;, + 67;3; 0.384873, 0.384873, 0.384873;;, + 68;3; 0.384873, 0.384873, 0.384873;;, + 69;3; 0.384873, 0.384873, 0.384873;;, + 70;3; 0.384873, 0.384873, 0.384873;;, + 71;3; 0.384873, 0.384873, 0.384873;;; + } + } +} //End of AnimationSet diff --git a/mods/mobs/models/mobs_chicken.png b/mods/mobs/models/mobs_chicken.png new file mode 100644 index 00000000..19cbd159 Binary files /dev/null and b/mods/mobs/models/mobs_chicken.png differ diff --git a/mods/mobs/models/mobs_cow.png b/mods/mobs/models/mobs_cow.png new file mode 100644 index 00000000..aa9cf57f Binary files /dev/null and b/mods/mobs/models/mobs_cow.png differ diff --git a/mods/mobs/models/mobs_cow.x b/mods/mobs/models/mobs_cow.x new file mode 100644 index 00000000..f0b61f82 --- /dev/null +++ b/mods/mobs/models/mobs_cow.x @@ -0,0 +1,7420 @@ +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 { + 3.749036, 0.000000, 0.000000, 0.000000, + 0.000000, 3.749036, 0.000000, 0.000000, + 0.000000, 0.000000, 3.749036, 0.000000, + -19.739037, 0.216398, 0.218101, 1.000000;; + } + Frame Armature_Body { + FrameTransformMatrix { + 1.000000, 0.000000, 0.000000, 0.000000, + 0.000000, 0.996529, 0.083252, 0.000000, + 0.000000,-0.083252, 0.996529, 0.000000, + 5.378092,-1.647068, 2.876912, 1.000000;; + } + Frame Armature_noga3 { + FrameTransformMatrix { + 0.000000,-0.996529, 0.083252, 0.000000, + -0.000000,-0.083252,-0.996529, 0.000000, + 1.000000, 0.000000,-0.000000, 0.000000, + 0.824256,-0.011078,-1.204985, 1.000000;; + } + } //End of Armature_noga3 + Frame Armature_noga1 { + FrameTransformMatrix { + 0.000000,-0.996529, 0.083252, 0.000000, + -0.000000,-0.083252,-0.996529, 0.000000, + 1.000000, 0.000000,-0.000000, 0.000000, + 0.784448, 3.021216,-1.494725, 1.000000;; + } + } //End of Armature_noga1 + Frame Armature_noga4 { + FrameTransformMatrix { + 0.000000,-0.996528, 0.083252, 0.000000, + -0.000000,-0.083252,-0.996528, 0.000000, + 1.000000, 0.000000,-0.000000, 0.000000, + -0.923299,-0.011159,-1.205961, 1.000000;; + } + } //End of Armature_noga4 + Frame Armature_noga2 { + FrameTransformMatrix { + 0.000000,-0.996529, 0.083252, 0.000000, + -0.000000,-0.083252,-0.996529, 0.000000, + 1.000000, 0.000000,-0.000000, 0.000000, + -0.921735, 3.022715,-1.476782, 1.000000;; + } + } //End of Armature_noga2 + Frame Armature_hvost { + FrameTransformMatrix { + 0.699967,-0.700526, 0.138963, 0.000000, + -0.057085,-0.248836,-0.966862, 0.000000, + 0.711890, 0.668838,-0.214166, 0.000000, + 0.105165,-0.291279, 0.358470, 1.000000;; + } + } //End of Armature_hvost + Frame Armature_sheya { + FrameTransformMatrix { + 0.997121, 0.067775,-0.033999, 0.000000, + -0.071692, 0.988697,-0.131678, 0.000000, + 0.024691, 0.133736, 0.990709, 0.000000, + 0.000000, 3.238709,-0.013816, 1.000000;; + } + Frame Armature_head { + FrameTransformMatrix { + 0.997121,-0.075824,-0.000243, 0.000000, + 0.074075, 0.974794,-0.210453, 0.000000, + 0.016195, 0.209829, 0.977604, 0.000000, + 0.067776, 0.891274, 0.002915, 1.000000;; + } + } //End of Armature_head + Frame Armature_zubi { + FrameTransformMatrix { + 0.997121,-0.075824,-0.000243, 0.000000, + 0.074236, 0.976877,-0.200501, 0.000000, + 0.015440, 0.199905, 0.979693, 0.000000, + 0.194650, 1.828288,-0.748248, 1.000000;; + } + } //End of Armature_zubi + } //End of Armature_sheya + } //End of Armature_Body + } //End of Armature + Frame Cube { + FrameTransformMatrix { + 3.749036, 0.000000, 0.000000, 0.000000, + 0.000000, 3.749036, 0.000000, 0.000000, + 0.000000, 0.000000, 3.749036, 0.000000, + 0.274003,-0.357581,11.859126, 1.000000;; + } + Mesh { //Mesh Mesh + 464; + -1.182819; 0.256475;-1.515163;, + -1.191885; 2.052689;-1.468648;, + -1.191885; 2.052689; 0.297009;, + -1.182819; 0.256475; 0.202888;, + -1.191885; 2.052689;-1.468648;, + 1.158376; 2.052689;-1.459295;, + 1.158376; 2.052689; 0.297009;, + -1.191885; 2.052689; 0.297009;, + 1.182819; 0.256475;-1.515163;, + 1.209352;-1.823040;-1.465410;, + 1.209352;-1.823040; 0.173570;, + 1.182819; 0.256475; 0.202888;, + 1.209352;-1.823040;-1.465410;, + -1.190063;-1.800769;-1.465410;, + -1.190063;-1.800769; 0.173570;, + 1.209352;-1.823040; 0.173570;, + 1.182819; 0.256475;-1.515163;, + 1.158376; 2.052689;-1.459295;, + -1.191885; 2.052689;-1.468648;, + -1.182819; 0.256475;-1.515163;, + -1.182819; 0.256475; 0.202888;, + -1.191885; 2.052689; 0.297009;, + 1.158376; 2.052689; 0.297009;, + 1.182819; 0.256475; 0.202888;, + -1.190063;-1.800769;-1.465410;, + -1.182819; 0.256475;-1.515163;, + -1.182819; 0.256475; 0.202888;, + -1.190063;-1.800769; 0.173570;, + 1.158376; 2.052689;-1.459295;, + 1.182819; 0.256475;-1.515163;, + 1.182819; 0.256475; 0.202888;, + 1.158376; 2.052689; 0.297009;, + 1.209352;-1.823040;-1.465410;, + 1.182819; 0.256475;-1.515163;, + -1.182819; 0.256475;-1.515163;, + -1.190063;-1.800769;-1.465410;, + -1.190063;-1.800769; 0.173570;, + -1.182819; 0.256475; 0.202888;, + 1.182819; 0.256475; 0.202888;, + 1.209352;-1.823040; 0.173570;, + -0.433904; 1.621176;-0.737264;, + -0.433904; 3.384479;-0.669402;, + -0.433904; 3.329543; 0.247469;, + -0.433904; 1.566239; 0.179607;, + -0.433904; 3.384479;-0.669402;, + 0.440838; 3.384479;-0.669402;, + 0.440838; 3.329543; 0.247469;, + -0.433904; 3.329543; 0.247469;, + 0.440838; 3.384479;-0.669402;, + 0.440838; 1.621176;-0.737264;, + 0.440838; 1.566239; 0.179607;, + 0.440838; 3.329543; 0.247469;, + 0.440838; 1.621176;-0.737264;, + -0.433904; 1.621176;-0.737264;, + -0.433904; 1.566239; 0.179607;, + 0.440838; 1.566239; 0.179607;, + 0.440838; 1.621176;-0.737264;, + 0.440838; 3.384479;-0.669402;, + -0.433904; 3.384479;-0.669402;, + -0.433904; 1.621176;-0.737264;, + -0.433904; 1.566239; 0.179607;, + -0.433904; 3.329543; 0.247469;, + 0.440838; 3.329543; 0.247469;, + 0.440838; 1.566239; 0.179607;, + -0.570123; 2.826026;-0.609147;, + -0.570123; 3.422311;-0.723481;, + -0.570123; 3.619422; 0.304511;, + -0.570123; 3.023137; 0.418845;, + 0.472727; 3.658540;-0.785318;, + -0.491013; 3.658540;-0.785318;, + -0.570123; 3.422311;-0.723481;, + 0.541260; 3.422311;-0.723481;, + 0.541260; 3.422311;-0.723481;, + 0.541260; 2.826026;-0.609147;, + 0.541260; 3.023137; 0.418845;, + 0.541260; 3.619422; 0.304511;, + 0.541260; 2.826026;-0.609147;, + -0.570123; 2.826026;-0.609147;, + -0.570123; 3.023137; 0.418845;, + 0.541260; 3.023137; 0.418845;, + 0.541260; 2.826026;-0.609147;, + 0.541260; 3.422311;-0.723481;, + -0.570123; 3.422311;-0.723481;, + -0.570123; 2.826026;-0.609147;, + -0.570123; 3.023137; 0.418845;, + -0.570123; 3.619422; 0.304511;, + 0.541260; 3.619422; 0.304511;, + 0.541260; 3.023137; 0.418845;, + 0.381228; 4.436496;-1.012536;, + -0.399515; 4.436496;-1.012536;, + -0.491013; 3.658540;-0.785318;, + 0.472727; 3.658540;-0.785318;, + -0.491013; 4.056458;-0.059518;, + 0.472727; 4.056458;-0.059518;, + 0.541260; 3.619422; 0.304511;, + -0.570123; 3.619422; 0.304511;, + 0.472727; 4.056458;-0.059518;, + 0.472727; 3.658540;-0.785318;, + 0.541260; 3.422311;-0.723481;, + 0.541260; 3.619422; 0.304511;, + -0.570123; 3.619422; 0.304511;, + -0.570123; 3.422311;-0.723481;, + -0.491013; 3.658540;-0.785318;, + -0.491013; 4.056458;-0.059518;, + -0.399515; 4.436496;-1.012536;, + 0.381228; 4.436496;-1.012536;, + 0.381228; 4.664130;-0.420370;, + -0.399515; 4.664130;-0.420370;, + -0.491013; 4.056458;-0.059518;, + -0.491013; 3.658540;-0.785318;, + -0.399515; 4.436496;-1.012536;, + -0.399515; 4.664130;-0.420370;, + -0.399515; 4.664130;-0.420370;, + 0.381228; 4.664130;-0.420370;, + 0.472727; 4.056458;-0.059518;, + -0.491013; 4.056458;-0.059518;, + 0.381228; 4.664130;-0.420370;, + 0.381228; 4.436496;-1.012536;, + 0.472727; 3.658540;-0.785318;, + 0.472727; 4.056458;-0.059518;, + 0.405161; 2.892449; 0.389317;, + 0.356167; 3.163855; 0.374390;, + 0.933491; 3.279887; 0.529882;, + 0.982485; 3.008481; 0.544809;, + 0.356167; 3.163855; 0.374390;, + 0.528218; 3.212470; 0.074339;, + 1.027210; 3.314350; 0.229683;, + 0.933491; 3.279887; 0.529882;, + 0.528218; 3.212470; 0.074339;, + 0.577212; 2.941064; 0.089265;, + 1.076203; 3.042944; 0.244609;, + 1.027210; 3.314350; 0.229683;, + 0.577212; 2.941064; 0.089265;, + 0.405161; 2.892449; 0.389317;, + 0.982485; 3.008481; 0.544809;, + 1.076203; 3.042944; 0.244609;, + 0.577212; 2.941064; 0.089265;, + 0.528218; 3.212470; 0.074339;, + 0.356167; 3.163855; 0.374390;, + 0.405161; 2.892449; 0.389317;, + 0.982485; 3.008481; 0.544809;, + 0.933491; 3.279887; 0.529882;, + 1.027210; 3.314350; 0.229683;, + 1.076203; 3.042944; 0.244609;, + -0.609625; 2.928426; 0.070173;, + -0.558808; 3.199832; 0.058956;, + -1.078051; 3.301528; 0.167247;, + -1.128868; 3.030122; 0.178463;, + -0.558808; 3.199832; 0.058956;, + -0.468088; 3.195864; 0.373960;, + -1.030881; 3.306796; 0.508425;, + -1.078051; 3.301528; 0.167247;, + -0.468088; 3.195864; 0.373960;, + -0.518905; 2.924458; 0.385176;, + -1.081698; 3.035390; 0.519641;, + -1.030881; 3.306796; 0.508425;, + -0.518905; 2.924458; 0.385176;, + -0.609625; 2.928426; 0.070173;, + -1.128868; 3.030122; 0.178463;, + -1.081698; 3.035390; 0.519641;, + -0.518905; 2.924458; 0.385176;, + -0.468088; 3.195864; 0.373960;, + -0.558808; 3.199832; 0.058956;, + -0.609625; 2.928426; 0.070173;, + -1.128868; 3.030122; 0.178463;, + -1.078051; 3.301528; 0.167247;, + -1.030881; 3.306796; 0.508425;, + -1.081698; 3.035390; 0.519641;, + 0.068099;-2.068482;-0.815726;, + 0.017526;-1.862952;-0.832142;, + 0.082807;-1.887635;-0.385204;, + 0.105635;-1.969985;-0.374655;, + 0.017526;-1.862952;-0.832142;, + 0.207545;-1.815554;-0.824100;, + 0.159407;-1.881011;-0.377324;, + 0.082807;-1.887635;-0.385204;, + 0.207545;-1.815554;-0.824100;, + 0.258117;-2.021084;-0.807684;, + 0.176925;-1.952203;-0.371637;, + 0.159407;-1.881011;-0.377324;, + 0.258117;-2.021084;-0.807684;, + 0.068099;-2.068482;-0.815726;, + 0.105635;-1.969985;-0.374655;, + 0.176925;-1.952203;-0.371637;, + 0.258117;-2.021084;-0.807684;, + 0.207545;-1.815554;-0.824100;, + 0.017526;-1.862952;-0.832142;, + 0.068099;-2.068482;-0.815726;, + 0.032801;-1.863856; 0.148379;, + 0.018910;-1.807401; 0.143870;, + 0.102635;-1.786517; 0.147413;, + 0.116527;-1.842972; 0.151922;, + 0.099551;-1.963196;-0.270905;, + 0.082033;-1.892004;-0.276591;, + 0.018910;-1.807401; 0.143870;, + 0.032801;-1.863856; 0.148379;, + 0.082033;-1.892004;-0.276591;, + 0.153323;-1.874221;-0.273574;, + 0.102635;-1.786517; 0.147413;, + 0.018910;-1.807401; 0.143870;, + 0.153323;-1.874221;-0.273574;, + 0.170840;-1.945413;-0.267887;, + 0.116527;-1.842972; 0.151922;, + 0.102635;-1.786517; 0.147413;, + 0.170840;-1.945413;-0.267887;, + 0.099551;-1.963196;-0.270905;, + 0.032801;-1.863856; 0.148379;, + 0.116527;-1.842972; 0.151922;, + 0.159407;-1.881011;-0.377324;, + 0.176925;-1.952203;-0.371637;, + 0.170840;-1.945413;-0.267887;, + 0.153323;-1.874221;-0.273574;, + 0.176925;-1.952203;-0.371637;, + 0.105635;-1.969985;-0.374655;, + 0.099551;-1.963196;-0.270905;, + 0.170840;-1.945413;-0.267887;, + -1.051378; 1.496758;-3.168478;, + -1.051378; 1.849385;-3.168478;, + -1.123806; 1.982406;-1.484576;, + -1.123806; 1.363736;-1.484576;, + 0.999745; 1.496758;-3.168478;, + 0.999745; 1.849385;-3.168478;, + 0.664487; 1.849385;-3.168478;, + 0.664487; 1.496758;-3.168478;, + 0.082807;-1.887635;-0.385204;, + 0.159407;-1.881011;-0.377324;, + 0.153323;-1.874221;-0.273574;, + 0.082033;-1.892004;-0.276591;, + 0.664487; 1.496758;-3.168478;, + 0.664487; 1.849385;-3.168478;, + 0.583813; 1.982406;-1.484576;, + 0.583813; 1.363736;-1.484576;, + 0.105635;-1.969985;-0.374655;, + 0.082807;-1.887635;-0.385204;, + 0.082033;-1.892004;-0.276591;, + 0.099551;-1.963196;-0.270905;, + 0.583813; 1.363736;-1.484576;, + 0.583813; 1.982406;-1.484576;, + 1.080419; 1.982406;-1.484576;, + 1.080419; 1.363736;-1.484576;, + 0.664487; 1.849385;-3.168478;, + 0.999745; 1.849385;-3.168478;, + 1.080419; 1.982406;-1.484576;, + 0.583813; 1.982406;-1.484576;, + -0.750392; 1.496758;-3.168478;, + -0.750392; 1.849385;-3.168478;, + -1.051378; 1.849385;-3.168478;, + -1.051378; 1.496758;-3.168478;, + 0.999745; 1.496758;-3.168478;, + 0.664487; 1.496758;-3.168478;, + 0.583813; 1.363736;-1.484576;, + 1.080419; 1.363736;-1.484576;, + 0.999745; 1.849385;-3.168478;, + 0.999745; 1.496758;-3.168478;, + 1.080419; 1.363736;-1.484576;, + 1.080419; 1.982406;-1.484576;, + -1.123806; 1.363736;-1.484576;, + -1.123806; 1.982406;-1.484576;, + -0.677966; 1.982406;-1.484576;, + -0.677966; 1.363736;-1.484576;, + -1.051378; 1.849385;-3.168478;, + -0.750392; 1.849385;-3.168478;, + -0.677966; 1.982406;-1.484576;, + -1.123806; 1.982406;-1.484576;, + -0.750392; 1.496758;-3.168478;, + -1.051378; 1.496758;-3.168478;, + -1.123806; 1.363736;-1.484576;, + -0.677966; 1.363736;-1.484576;, + -0.750392; 1.849385;-3.168478;, + -0.750392; 1.496758;-3.168478;, + -0.677966; 1.363736;-1.484576;, + -0.677966; 1.982406;-1.484576;, + -1.051378;-1.614760;-3.168478;, + -1.051378;-1.262132;-3.168478;, + -1.123806;-1.129111;-1.484576;, + -1.123806;-1.747781;-1.484576;, + -0.750392;-1.614760;-3.168478;, + -0.750392;-1.262132;-3.168478;, + -1.051378;-1.262132;-3.168478;, + -1.051378;-1.614760;-3.168478;, + -1.123806;-1.747781;-1.484576;, + -1.123806;-1.129111;-1.484576;, + -0.677966;-1.129111;-1.484576;, + -0.677966;-1.747781;-1.484576;, + -1.051378;-1.262132;-3.168478;, + -0.750392;-1.262132;-3.168478;, + -0.677966;-1.129111;-1.484576;, + -1.123806;-1.129111;-1.484576;, + -0.750392;-1.614760;-3.168478;, + -1.051378;-1.614760;-3.168478;, + -1.123806;-1.747781;-1.484576;, + -0.677966;-1.747781;-1.484576;, + -0.750392;-1.262132;-3.168478;, + -0.750392;-1.614760;-3.168478;, + -0.677966;-1.747781;-1.484576;, + -0.677966;-1.129111;-1.484576;, + 0.702960;-1.578270;-3.168478;, + 0.702960;-1.225643;-3.168478;, + 0.622286;-1.092621;-1.484576;, + 0.622286;-1.711292;-1.484576;, + 1.038219;-1.578270;-3.168478;, + 1.038219;-1.225643;-3.168478;, + 0.702960;-1.225643;-3.168478;, + 0.702960;-1.578270;-3.168478;, + 0.622286;-1.711292;-1.484576;, + 0.622286;-1.092621;-1.484576;, + 1.118893;-1.092621;-1.484576;, + 1.118893;-1.711292;-1.484576;, + 0.702960;-1.225643;-3.168478;, + 1.038219;-1.225643;-3.168478;, + 1.118893;-1.092621;-1.484576;, + 0.622286;-1.092621;-1.484576;, + 1.038219;-1.578270;-3.168478;, + 0.702960;-1.578270;-3.168478;, + 0.622286;-1.711292;-1.484576;, + 1.118893;-1.711292;-1.484576;, + 1.038219;-1.225643;-3.168478;, + 1.038219;-1.578270;-3.168478;, + 1.118893;-1.711292;-1.484576;, + 1.118893;-1.092621;-1.484576;, + -0.375302; 3.723651;-0.919717;, + -0.375302; 4.404733;-1.101104;, + -0.375302; 4.406694;-1.025498;, + -0.375302; 3.723651;-0.866785;, + -0.375302; 4.404733;-1.101104;, + 0.411050; 4.404733;-1.111786;, + 0.411050; 4.404733;-1.026451;, + -0.375302; 4.406694;-1.025498;, + 0.411050; 4.404733;-1.111786;, + 0.411050; 3.723651;-0.930399;, + 0.411050; 3.723651;-0.860715;, + 0.411050; 4.404733;-1.026451;, + 0.411050; 3.723651;-0.930399;, + -0.375302; 3.723651;-0.919717;, + -0.375302; 3.723651;-0.866785;, + 0.411050; 3.723651;-0.860715;, + 0.411050; 3.723651;-0.930399;, + 0.411050; 4.404733;-1.111786;, + -0.375302; 4.404733;-1.101104;, + -0.375302; 3.723651;-0.919717;, + -0.375302; 3.723651;-0.866785;, + -0.375302; 4.406694;-1.025498;, + 0.411050; 4.404733;-1.026451;, + 0.411050; 3.723651;-0.860715;, + -0.491839; 3.204797; 0.832126;, + -0.420050; 3.204797; 0.832126;, + -0.276340; 3.271977; 0.372442;, + -0.459907; 3.271977; 0.372442;, + -0.085533; 3.271977; 0.150769;, + 0.090794; 3.271977; 0.150769;, + 0.090794; 3.271977; 0.372442;, + -0.085533; 3.271977; 0.372442;, + 0.465169; 3.051323; 0.150769;, + 0.465169; 3.271977; 0.150769;, + 0.465169; 3.271977; 0.372442;, + 0.465169; 3.051323; 0.372442;, + 0.090794; 3.051323; 0.150769;, + -0.085533; 3.051323; 0.150769;, + -0.085533; 3.051323; 0.372442;, + 0.090794; 3.051323; 0.372442;, + 0.090794; 3.051323; 0.150769;, + 0.090794; 3.271977; 0.150769;, + -0.085533; 3.271977; 0.150769;, + -0.085533; 3.051323; 0.150769;, + -0.085533; 3.051323; 0.372442;, + -0.085533; 3.271977; 0.372442;, + 0.090794; 3.271977; 0.372442;, + 0.090794; 3.051323; 0.372442;, + -0.420050; 3.204797; 0.832126;, + -0.491839; 3.204797; 0.832126;, + -0.491839; 3.118504; 0.832126;, + -0.420050; 3.118504; 0.832126;, + -0.085533; 3.051323; 0.372442;, + 0.281602; 3.051323; 0.372442;, + 0.281602; 3.271977; 0.372442;, + -0.085533; 3.271977; 0.372442;, + -0.085533; 3.271977; 0.372442;, + 0.281602; 3.271977; 0.372442;, + 0.281602; 3.271977; 0.150769;, + -0.085533; 3.271977; 0.150769;, + -0.085533; 3.271977; 0.150769;, + 0.281602; 3.271977; 0.150769;, + 0.281602; 3.051323; 0.150769;, + -0.085533; 3.051323; 0.150769;, + -0.085533; 3.051323; 0.150769;, + 0.281602; 3.051323; 0.150769;, + 0.281602; 3.051323; 0.372442;, + -0.085533; 3.051323; 0.372442;, + 0.408578; 3.118362; 0.832126;, + 0.480603; 3.118362; 0.832126;, + 0.480603; 3.204938; 0.832126;, + 0.408578; 3.204938; 0.832126;, + 0.090794; 3.271977; 0.372442;, + -0.276340; 3.271977; 0.372442;, + -0.276340; 3.051323; 0.372442;, + 0.090794; 3.051323; 0.372442;, + 0.090794; 3.051323; 0.372442;, + -0.276340; 3.051323; 0.372442;, + -0.276340; 3.051323; 0.150769;, + 0.090794; 3.051323; 0.150769;, + 0.090794; 3.051323; 0.150769;, + -0.276340; 3.051323; 0.150769;, + -0.276340; 3.271977; 0.150769;, + 0.090794; 3.271977; 0.150769;, + 0.090794; 3.271977; 0.150769;, + -0.276340; 3.271977; 0.150769;, + -0.276340; 3.271977; 0.372442;, + 0.090794; 3.271977; 0.372442;, + 0.281602; 3.271977; 0.372442;, + 0.465169; 3.271977; 0.372442;, + 0.465169; 3.271977; 0.150769;, + 0.281602; 3.271977; 0.150769;, + 0.281602; 3.271977; 0.150769;, + 0.465169; 3.271977; 0.150769;, + 0.465169; 3.051323; 0.150769;, + 0.281602; 3.051323; 0.150769;, + 0.281602; 3.051323; 0.150769;, + 0.465169; 3.051323; 0.150769;, + 0.465169; 3.051323; 0.372442;, + 0.281602; 3.051323; 0.372442;, + -0.459907; 3.271977; 0.150769;, + -0.459907; 3.051323; 0.150769;, + -0.459907; 3.051323; 0.372442;, + -0.459907; 3.271977; 0.372442;, + 0.408578; 3.118362; 0.832126;, + 0.408578; 3.204938; 0.832126;, + 0.281602; 3.271977; 0.372442;, + 0.281602; 3.051323; 0.372442;, + -0.276340; 3.051323; 0.372442;, + -0.459907; 3.051323; 0.372442;, + -0.459907; 3.051323; 0.150769;, + -0.276340; 3.051323; 0.150769;, + -0.276340; 3.051323; 0.150769;, + -0.459907; 3.051323; 0.150769;, + -0.459907; 3.271977; 0.150769;, + -0.276340; 3.271977; 0.150769;, + -0.276340; 3.271977; 0.150769;, + -0.459907; 3.271977; 0.150769;, + -0.459907; 3.271977; 0.372442;, + -0.276340; 3.271977; 0.372442;, + -0.459907; 3.271977; 0.372442;, + -0.459907; 3.051323; 0.372442;, + -0.491839; 3.118504; 0.832126;, + -0.491839; 3.204797; 0.832126;, + 0.480603; 3.118362; 0.832126;, + 0.408578; 3.118362; 0.832126;, + 0.281602; 3.051323; 0.372442;, + 0.465169; 3.051323; 0.372442;, + 0.465169; 3.051323; 0.372442;, + 0.465169; 3.271977; 0.372442;, + 0.480603; 3.204938; 0.832126;, + 0.480603; 3.118362; 0.832126;, + -0.420050; 3.118504; 0.832126;, + -0.491839; 3.118504; 0.832126;, + -0.459907; 3.051323; 0.372442;, + -0.276340; 3.051323; 0.372442;, + -0.420050; 3.204797; 0.832126;, + -0.420050; 3.118504; 0.832126;, + -0.276340; 3.051323; 0.372442;, + -0.276340; 3.271977; 0.372442;, + 0.408578; 3.204938; 0.832126;, + 0.480603; 3.204938; 0.832126;, + 0.465169; 3.271977; 0.372442;, + 0.281602; 3.271977; 0.372442;; + 116; + 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;; + MeshNormals { //Mesh Normals + 464; + -0.999987;-0.005047; 0.000000;, + -0.999987;-0.005047; 0.000000;, + -0.999987;-0.005047; 0.000000;, + -0.999987;-0.005047; 0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.999919; 0.012758; 0.000000;, + 0.999919; 0.012758; 0.000000;, + 0.999919; 0.012758; 0.000000;, + 0.999919; 0.012758; 0.000000;, + -0.009281;-0.999957; 0.000000;, + -0.009281;-0.999957; 0.000000;, + -0.009281;-0.999957; 0.000000;, + -0.009281;-0.999957; 0.000000;, + 0.001982; 0.028507;-0.999592;, + 0.001982; 0.028507;-0.999592;, + 0.001982; 0.028507;-0.999592;, + 0.001982; 0.028507;-0.999592;, + -0.000000;-0.052328; 0.998630;, + -0.000000;-0.052328; 0.998630;, + -0.000000;-0.052328; 0.998630;, + -0.000000;-0.052328; 0.998630;, + -0.999994; 0.003521;-0.000000;, + -0.999994; 0.003521;-0.000000;, + -0.999994; 0.003521;-0.000000;, + -0.999994; 0.003521;-0.000000;, + 0.999907; 0.013606; 0.000000;, + 0.999907; 0.013606; 0.000000;, + 0.999907; 0.013606; 0.000000;, + 0.999907; 0.013606; 0.000000;, + -0.000112;-0.024047;-0.999711;, + -0.000112;-0.024047;-0.999711;, + -0.000112;-0.024047;-0.999711;, + -0.000112;-0.024047;-0.999711;, + -0.000066;-0.014174; 0.999900;, + -0.000066;-0.014174; 0.999900;, + -0.000066;-0.014174; 0.999900;, + -0.000066;-0.014174; 0.999900;, + -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.998210; 0.059810;, + 0.000000; 0.998210; 0.059810;, + 0.000000; 0.998210; 0.059810;, + 0.000000; 0.998210; 0.059810;, + 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.998210;-0.059810;, + 0.000000;-0.998210;-0.059810;, + 0.000000;-0.998210;-0.059810;, + 0.000000;-0.998210;-0.059810;, + 0.000000; 0.038457;-0.999260;, + 0.000000; 0.038457;-0.999260;, + 0.000000; 0.038457;-0.999260;, + 0.000000; 0.038457;-0.999260;, + 0.000000;-0.038457; 0.999260;, + 0.000000;-0.038457; 0.999260;, + 0.000000;-0.038457; 0.999260;, + 0.000000;-0.038457; 0.999260;, + -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.253236;-0.967405;, + 0.000000;-0.253236;-0.967405;, + 0.000000;-0.253236;-0.967405;, + 0.000000;-0.253236;-0.967405;, + 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.982109; 0.188312;, + 0.000000;-0.982109; 0.188312;, + 0.000000;-0.982109; 0.188312;, + 0.000000;-0.982109; 0.188312;, + 0.000000;-0.188312;-0.982109;, + 0.000000;-0.188312;-0.982109;, + 0.000000;-0.188312;-0.982109;, + 0.000000;-0.188312;-0.982109;, + 0.000000; 0.188312; 0.982109;, + 0.000000; 0.188312; 0.982109;, + 0.000000; 0.188312; 0.982109;, + 0.000000; 0.188312; 0.982109;, + 0.000000;-0.280357;-0.959896;, + 0.000000;-0.280357;-0.959896;, + 0.000000;-0.280357;-0.959896;, + 0.000000;-0.280357;-0.959896;, + 0.000000; 0.640010; 0.768367;, + 0.000000; 0.640010; 0.768367;, + 0.000000; 0.640010; 0.768367;, + 0.000000; 0.640010; 0.768367;, + 0.984694; 0.165048;-0.055998;, + 0.984694; 0.165048;-0.055998;, + 0.984694; 0.165048;-0.055998;, + 0.984694; 0.165048;-0.055998;, + -0.979760; 0.189564;-0.064316;, + -0.979760; 0.189564;-0.064316;, + -0.979760; 0.189564;-0.064316;, + -0.979760; 0.189564;-0.064316;, + 0.000000; 0.933410;-0.358811;, + 0.000000; 0.933410;-0.358811;, + 0.000000; 0.933410;-0.358811;, + 0.000000; 0.933410;-0.358811;, + -0.992678; 0.109120;-0.051792;, + -0.992678; 0.109120;-0.051792;, + -0.992678; 0.109120;-0.051792;, + -0.992678; 0.109120;-0.051792;, + 0.000000; 0.510587; 0.859826;, + 0.000000; 0.510587; 0.859826;, + 0.000000; 0.510587; 0.859826;, + 0.000000; 0.510587; 0.859826;, + 0.992678; 0.109120;-0.051792;, + 0.992678; 0.109120;-0.051792;, + 0.992678; 0.109120;-0.051792;, + 0.992678; 0.109120;-0.051792;, + -0.261173; 0.005940; 0.965274;, + -0.261173; 0.005940; 0.965274;, + -0.261173; 0.005940; 0.965274;, + -0.261173; 0.005940; 0.965274;, + -0.209960; 0.976798; 0.042231;, + -0.209960; 0.976798; 0.042231;, + -0.209960; 0.976798; 0.042231;, + -0.209960; 0.976798; 0.042231;, + 0.297039; 0.001107;-0.954865;, + 0.297039; 0.001107;-0.954865;, + 0.297039; 0.001107;-0.954865;, + 0.297039; 0.001107;-0.954865;, + 0.209960;-0.976798;-0.042233;, + 0.209960;-0.976798;-0.042233;, + 0.209960;-0.976798;-0.042233;, + 0.209960;-0.976798;-0.042233;, + -0.840506;-0.179834;-0.511087;, + -0.840506;-0.179834;-0.511087;, + -0.840506;-0.179834;-0.511087;, + -0.840506;-0.179834;-0.511087;, + 0.931767; 0.185369; 0.312167;, + 0.931767; 0.185369; 0.312167;, + 0.931767; 0.185369; 0.312167;, + 0.931767; 0.185369; 0.312167;, + -0.204566;-0.002152;-0.978850;, + -0.204566;-0.002152;-0.978850;, + -0.204566;-0.002152;-0.978850;, + -0.204566;-0.002152;-0.978850;, + 0.183886; 0.982109;-0.040588;, + 0.183886; 0.982109;-0.040588;, + 0.183886; 0.982109;-0.040588;, + 0.183886; 0.982109;-0.040588;, + 0.231786;-0.003196; 0.972761;, + 0.231786;-0.003196; 0.972761;, + 0.231786;-0.003196; 0.972761;, + 0.231786;-0.003196; 0.972761;, + -0.183886;-0.982109; 0.040589;, + -0.183886;-0.982109; 0.040589;, + -0.183886;-0.982109; 0.040589;, + -0.183886;-0.982109; 0.040589;, + 0.943190;-0.187923;-0.274003;, + 0.943190;-0.187923;-0.274003;, + 0.943190;-0.187923;-0.274003;, + 0.943190;-0.187923;-0.274003;, + -0.973362; 0.187690; 0.131676;, + -0.973362; 0.187690; 0.131676;, + -0.973362; 0.187690; 0.131676;, + -0.973362; 0.187690; 0.131676;, + -0.963521;-0.233403; 0.130961;, + -0.963521;-0.233403; 0.130961;, + -0.963521;-0.233403; 0.130961;, + -0.963521;-0.233403; 0.130961;, + -0.203399; 0.973756; 0.102115;, + -0.203399; 0.973756; 0.102115;, + -0.203399; 0.973756; 0.102115;, + -0.203399; 0.973756; 0.102115;, + 0.958897; 0.247088; 0.139516;, + 0.958897; 0.247088; 0.139516;, + 0.958897; 0.247088; 0.139516;, + 0.958897; 0.247088; 0.139516;, + 0.229736;-0.953833; 0.193451;, + 0.229736;-0.953833; 0.193451;, + 0.229736;-0.953833; 0.193451;, + 0.229736;-0.953833; 0.193451;, + 0.058422;-0.065189;-0.996161;, + 0.058422;-0.065189;-0.996161;, + 0.058422;-0.065189;-0.996161;, + 0.058422;-0.065189;-0.996161;, + -0.058422; 0.065189; 0.996161;, + -0.058422; 0.065189; 0.996161;, + -0.058422; 0.065189; 0.996161;, + -0.058422; 0.065189; 0.996161;, + -0.964797;-0.245028;-0.095541;, + -0.964797;-0.245028;-0.095541;, + -0.964797;-0.245028;-0.095541;, + -0.964797;-0.245028;-0.095541;, + -0.226867; 0.947641;-0.224738;, + -0.226867; 0.947641;-0.224738;, + -0.226867; 0.947641;-0.224738;, + -0.226867; 0.947641;-0.224738;, + 0.967699; 0.243367; 0.065811;, + 0.967699; 0.243367; 0.065811;, + 0.967699; 0.243367; 0.065811;, + 0.967699; 0.243367; 0.065811;, + 0.223509;-0.939864; 0.258262;, + 0.223509;-0.939864; 0.258262;, + 0.223509;-0.939864; 0.258262;, + 0.223509;-0.939864; 0.258262;, + 0.969453; 0.241820; 0.041031;, + 0.969453; 0.241820; 0.041031;, + 0.969453; 0.241820; 0.041031;, + 0.969453; 0.241820; 0.041031;, + 0.238217;-0.968129; 0.077326;, + 0.238217;-0.968129; 0.077326;, + 0.238217;-0.968129; 0.077326;, + 0.238217;-0.968129; 0.077326;, + -0.999076; 0.000000;-0.042972;, + -0.999076; 0.000000;-0.042972;, + -0.999076; 0.000000;-0.042972;, + -0.999076; 0.000000;-0.042972;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.161622; 0.986715;-0.016464;, + -0.161622; 0.986715;-0.016464;, + -0.161622; 0.986715;-0.016464;, + -0.161622; 0.986715;-0.016464;, + -0.998854; 0.000000;-0.047854;, + -0.998854; 0.000000;-0.047854;, + -0.998854; 0.000000;-0.047854;, + -0.998854; 0.000000;-0.047854;, + -0.966042;-0.256834;-0.028270;, + -0.966042;-0.256834;-0.028270;, + -0.966042;-0.256834;-0.028270;, + -0.966042;-0.256834;-0.028270;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + 0.000000; 0.996894;-0.078751;, + 0.000000; 0.996894;-0.078751;, + 0.000000; 0.996894;-0.078751;, + 0.000000; 0.996894;-0.078751;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000;-0.996894;-0.078751;, + 0.000000;-0.996894;-0.078751;, + 0.000000;-0.996894;-0.078751;, + 0.000000;-0.996894;-0.078751;, + 0.998854; 0.000000;-0.047854;, + 0.998854; 0.000000;-0.047854;, + 0.998854; 0.000000;-0.047854;, + 0.998854; 0.000000;-0.047854;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + 0.000000; 0.996894;-0.078751;, + 0.000000; 0.996894;-0.078751;, + 0.000000; 0.996894;-0.078751;, + 0.000000; 0.996894;-0.078751;, + 0.000000;-0.996894;-0.078751;, + 0.000000;-0.996894;-0.078751;, + 0.000000;-0.996894;-0.078751;, + 0.000000;-0.996894;-0.078751;, + 0.999076; 0.000000;-0.042972;, + 0.999076; 0.000000;-0.042972;, + 0.999076; 0.000000;-0.042972;, + 0.999076; 0.000000;-0.042972;, + -0.999076; 0.000000;-0.042972;, + -0.999076; 0.000000;-0.042972;, + -0.999076; 0.000000;-0.042972;, + -0.999076; 0.000000;-0.042972;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + 0.000000; 0.996894;-0.078751;, + 0.000000; 0.996894;-0.078751;, + 0.000000; 0.996894;-0.078751;, + 0.000000; 0.996894;-0.078751;, + 0.000000;-0.996894;-0.078751;, + 0.000000;-0.996894;-0.078751;, + 0.000000;-0.996894;-0.078751;, + 0.000000;-0.996894;-0.078751;, + 0.999076; 0.000000;-0.042972;, + 0.999076; 0.000000;-0.042972;, + 0.999076; 0.000000;-0.042972;, + 0.999076; 0.000000;-0.042972;, + -0.998854; 0.000000;-0.047854;, + -0.998854; 0.000000;-0.047854;, + -0.998854; 0.000000;-0.047854;, + -0.998854; 0.000000;-0.047854;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + 0.000000; 0.996894;-0.078751;, + 0.000000; 0.996894;-0.078751;, + 0.000000; 0.996894;-0.078751;, + 0.000000; 0.996894;-0.078751;, + 0.000000;-0.996894;-0.078751;, + 0.000000;-0.996894;-0.078751;, + 0.000000;-0.996894;-0.078751;, + 0.000000;-0.996894;-0.078751;, + 0.998854; 0.000000;-0.047854;, + 0.998854; 0.000000;-0.047854;, + 0.998854; 0.000000;-0.047854;, + 0.998854; 0.000000;-0.047854;, + -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.001157; 0.999925;-0.012185;, + 0.001157; 0.999925;-0.012185;, + 0.001157; 0.999925;-0.012185;, + 0.001157; 0.999925;-0.012185;, + 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.013126;-0.257330;-0.966235;, + -0.013126;-0.257330;-0.966235;, + -0.013126;-0.257330;-0.966235;, + -0.013126;-0.257330;-0.966235;, + -0.002877; 0.231388; 0.972857;, + -0.002877; 0.231388; 0.972857;, + -0.002877; 0.231388; 0.972857;, + -0.002877; 0.231388; 0.972857;, + 0.000000;-0.989489;-0.144609;, + 0.000000;-0.989489;-0.144609;, + 0.000000;-0.989489;-0.144609;, + 0.000000;-0.989489;-0.144609;, + 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; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + 0.000000;-0.000000;-1.000000;, + 0.000000;-0.000000;-1.000000;, + 0.000000;-0.000000;-1.000000;, + 0.000000;-0.000000;-1.000000;, + 0.000000; 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;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000;-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; 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.963903; 0.000000;-0.266253;, + 0.963903; 0.000000;-0.266253;, + 0.963903; 0.000000;-0.266253;, + 0.963903; 0.000000;-0.266253;, + 0.000000; 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.997596; 0.000000; 0.069296;, + 0.997596; 0.000000; 0.069296;, + 0.997596; 0.000000; 0.069296;, + 0.997596; 0.000000; 0.069296;, + 0.000000; 0.989532;-0.144311;, + 0.000000; 0.989532;-0.144311;, + 0.000000; 0.989532;-0.144311;, + 0.000000; 0.989532;-0.144311;, + -0.999437; 0.000000; 0.033555;, + -0.999437; 0.000000; 0.033555;, + -0.999437; 0.000000; 0.033555;, + -0.999437; 0.000000; 0.033555;, + 0.000000; 0.989489;-0.144610;, + 0.000000; 0.989489;-0.144610;, + 0.000000; 0.989489;-0.144610;, + 0.000000; 0.989489;-0.144610;, + -0.954446; 0.000000;-0.298385;, + -0.954446; 0.000000;-0.298385;, + -0.954446; 0.000000;-0.298385;, + -0.954446; 0.000000;-0.298385;, + 0.000000;-0.989532;-0.144311;, + 0.000000;-0.989532;-0.144311;, + 0.000000;-0.989532;-0.144311;, + 0.000000;-0.989532;-0.144311;; + 116; + 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;; + } //End of Mesh Normals + MeshMaterialList { //Mesh Material List + 1; + 1; + 0;; + Material Default_Material { + 0.800000; 0.800000; 0.800000; 0.800000;; + 96.078431; + 0.500000; 0.500000; 0.500000;; + 0.000000; 0.000000; 0.000000;; + } + } //End of Mesh Material List + MeshTextureCoords { //Mesh UV Coordinates + 464; + 0.444664; 0.882740;, + 0.453010; 0.994603;, + 0.352139; 0.990704;, + 0.370352; 0.882084;, + 0.699615; 0.826957;, + 0.888198; 0.826957;, + 0.888198; 0.999617;, + 0.699615; 0.999617;, + 0.566940; 0.877116;, + 0.559308; 0.768256;, + 0.664340; 0.764336;, + 0.671138; 0.868138;, + 0.999617; 0.397190;, + 0.811034; 0.397190;, + 0.811034; 0.271762;, + 0.999617; 0.271762;, + 0.566940; 0.877116;, + 0.565483; 0.991269;, + 0.453010; 0.994603;, + 0.444664; 0.882740;, + 0.370352; 0.882084;, + 0.352139; 0.990704;, + 0.243744; 0.976452;, + 0.255729; 0.872295;, + 0.447331; 0.770867;, + 0.444664; 0.882740;, + 0.370352; 0.882084;, + 0.373731; 0.773298;, + 0.565483; 0.991269;, + 0.566940; 0.877116;, + 0.671138; 0.868138;, + 0.670488; 0.977139;, + 0.559308; 0.768256;, + 0.566940; 0.877116;, + 0.444664; 0.882740;, + 0.447331; 0.770867;, + 0.373731; 0.773298;, + 0.370352; 0.882084;, + 0.255729; 0.872295;, + 0.261819; 0.766836;, + 0.694945; 0.168323;, + 0.694945; 0.057246;, + 0.784866; 0.057246;, + 0.784866; 0.168323;, + 0.978885; 0.802852;, + 0.978885; 0.908930;, + 0.888965; 0.908930;, + 0.888965; 0.802852;, + 0.980864; 0.057246;, + 0.980864; 0.168323;, + 0.890944; 0.168323;, + 0.890944; 0.057246;, + 0.995043; 0.999617;, + 0.888965; 0.999617;, + 0.888965; 0.909696;, + 0.995043; 0.909696;, + 0.588867; 0.168323;, + 0.588867; 0.057246;, + 0.694945; 0.057246;, + 0.694945; 0.168323;, + 0.784866; 0.168323;, + 0.784866; 0.057246;, + 0.890944; 0.057246;, + 0.890944; 0.168323;, + 0.581893; 0.381313;, + 0.525981; 0.490259;, + 0.379618; 0.402841;, + 0.398054; 0.301018;, + 0.815523; 0.662938;, + 0.815524; 0.728486;, + 0.769623; 0.748548;, + 0.769623; 0.642876;, + 0.048873; 0.480128;, + 0.006488; 0.386718;, + 0.167529; 0.313647;, + 0.194276; 0.403737;, + 0.988636; 0.730470;, + 0.896211; 0.730470;, + 0.896211; 0.660198;, + 0.988636; 0.660198;, + 0.723019; 0.642876;, + 0.769623; 0.642876;, + 0.769623; 0.748548;, + 0.723019; 0.748548;, + 0.398054; 0.301018;, + 0.379618; 0.402841;, + 0.194276; 0.403737;, + 0.167529; 0.313647;, + 0.877077; 0.662938;, + 0.877077; 0.728486;, + 0.815524; 0.728486;, + 0.815523; 0.662938;, + 0.357048; 0.517540;, + 0.216152; 0.507657;, + 0.194276; 0.403737;, + 0.379618; 0.402841;, + 0.216152; 0.507657;, + 0.120216; 0.568830;, + 0.048873; 0.480128;, + 0.194276; 0.403737;, + 0.379618; 0.402841;, + 0.525981; 0.490259;, + 0.444034; 0.577428;, + 0.357048; 0.517540;, + 0.362490; 0.686881;, + 0.215162; 0.682739;, + 0.251936; 0.612341;, + 0.315469; 0.601729;, + 0.357048; 0.517540;, + 0.444034; 0.577428;, + 0.362490; 0.686881;, + 0.315469; 0.601729;, + 0.315469; 0.601729;, + 0.251936; 0.612341;, + 0.216152; 0.507657;, + 0.357048; 0.517540;, + 0.251936; 0.612341;, + 0.215162; 0.682739;, + 0.120216; 0.568830;, + 0.216152; 0.507657;, + 0.882221; 0.248633;, + 0.854668; 0.246226;, + 0.860426; 0.180315;, + 0.887978; 0.182722;, + 0.854668; 0.246226;, + 0.811034; 0.225788;, + 0.836391; 0.169090;, + 0.860426; 0.180315;, + 0.955560; 0.229325;, + 0.928738; 0.236069;, + 0.913594; 0.175833;, + 0.940417; 0.169090;, + 0.928738; 0.236069;, + 0.882221; 0.248633;, + 0.887978; 0.182722;, + 0.913594; 0.175833;, + 0.568666; 0.188259;, + 0.570943; 0.215822;, + 0.522758; 0.215822;, + 0.520482; 0.188259;, + 0.557028; 0.187492;, + 0.557028; 0.159835;, + 0.583256; 0.155869;, + 0.583256; 0.183526;, + 0.831256; 0.582510;, + 0.811034; 0.563643;, + 0.853460; 0.518170;, + 0.873682; 0.537037;, + 0.941763; 0.626056;, + 0.893812; 0.623471;, + 0.917809; 0.562573;, + 0.941763; 0.563864;, + 0.893812; 0.623471;, + 0.868081; 0.613331;, + 0.892078; 0.552433;, + 0.917809; 0.562573;, + 0.868081; 0.613331;, + 0.831256; 0.582510;, + 0.873682; 0.537037;, + 0.892078; 0.552433;, + 0.680049; 0.227106;, + 0.680049; 0.254763;, + 0.632028; 0.254763;, + 0.632028; 0.227106;, + 0.631262; 0.227106;, + 0.631262; 0.254763;, + 0.607273; 0.254763;, + 0.607273; 0.227106;, + 0.151813; 0.952191;, + 0.112345; 0.947279;, + 0.113514; 0.904716;, + 0.158003; 0.906790;, + 0.112345; 0.947279;, + 0.077106; 0.948022;, + 0.069721; 0.907057;, + 0.113514; 0.904716;, + 0.077106; 0.948022;, + 0.041465; 0.957980;, + 0.021003; 0.917204;, + 0.069721; 0.907057;, + 0.189475; 0.963315;, + 0.151813; 0.952191;, + 0.158003; 0.906790;, + 0.212875; 0.914749;, + 0.563441; 0.216588;, + 0.563441; 0.263118;, + 0.520482; 0.263118;, + 0.520482; 0.216588;, + 0.758717; 0.826190;, + 0.758717; 0.792862;, + 0.808077; 0.792862;, + 0.808077; 0.826190;, + 0.160570; 0.844684;, + 0.116458; 0.842962;, + 0.117818; 0.795850;, + 0.145830; 0.795143;, + 0.116458; 0.842962;, + 0.069466; 0.841189;, + 0.076449; 0.791324;, + 0.117818; 0.795850;, + 0.069466; 0.841189;, + 0.014746; 0.837740;, + 0.047872; 0.785711;, + 0.076449; 0.791324;, + 0.209296; 0.833892;, + 0.160570; 0.844684;, + 0.145830; 0.795143;, + 0.184389; 0.782622;, + 0.069721; 0.907057;, + 0.021003; 0.917204;, + 0.014746; 0.837740;, + 0.069466; 0.841189;, + 0.212875; 0.914749;, + 0.158003; 0.906790;, + 0.160570; 0.844684;, + 0.209296; 0.833892;, + 0.696701; 0.623144;, + 0.663486; 0.624673;, + 0.640785; 0.404303;, + 0.699058; 0.401620;, + 0.556261; 0.154243;, + 0.556261; 0.187492;, + 0.520482; 0.187492;, + 0.520482; 0.154243;, + 0.113514; 0.904716;, + 0.069721; 0.907057;, + 0.069466; 0.841189;, + 0.116458; 0.842962;, + 0.696269; 0.621054;, + 0.663054; 0.622583;, + 0.640352; 0.402213;, + 0.698626; 0.399530;, + 0.158003; 0.906790;, + 0.113514; 0.904716;, + 0.116458; 0.842962;, + 0.160570; 0.844684;, + 0.621714; 0.314631;, + 0.680049; 0.314631;, + 0.680049; 0.367630;, + 0.621714; 0.367630;, + 0.663054; 0.622583;, + 0.627632; 0.627630;, + 0.587883; 0.409689;, + 0.640352; 0.402213;, + 0.844623; 0.792862;, + 0.844623; 0.826112;, + 0.808843; 0.826112;, + 0.808843; 0.792862;, + 0.732005; 0.622825;, + 0.696269; 0.621054;, + 0.698626; 0.399530;, + 0.751560; 0.402153;, + 0.764905; 0.627630;, + 0.732005; 0.622825;, + 0.751560; 0.402153;, + 0.809283; 0.410584;, + 0.699615; 0.773191;, + 0.757950; 0.773191;, + 0.757950; 0.826190;, + 0.699615; 0.826190;, + 0.663486; 0.624673;, + 0.628065; 0.629720;, + 0.588315; 0.411779;, + 0.640785; 0.404303;, + 0.732437; 0.624915;, + 0.696701; 0.623144;, + 0.699058; 0.401620;, + 0.751992; 0.404243;, + 0.765338; 0.629720;, + 0.732437; 0.624915;, + 0.751992; 0.404243;, + 0.809715; 0.412674;, + 0.697254; 0.619480;, + 0.664039; 0.621009;, + 0.641336; 0.400639;, + 0.699610; 0.397956;, + 0.680049; 0.193089;, + 0.680049; 0.226339;, + 0.644269; 0.226339;, + 0.644269; 0.193089;, + 0.680049; 0.255529;, + 0.680049; 0.313865;, + 0.627050; 0.313865;, + 0.627050; 0.255529;, + 0.664039; 0.621009;, + 0.628617; 0.626056;, + 0.588867; 0.408115;, + 0.641336; 0.400639;, + 0.732989; 0.621251;, + 0.697254; 0.619480;, + 0.699610; 0.397956;, + 0.752544; 0.400579;, + 0.765890; 0.626056;, + 0.732989; 0.621251;, + 0.752544; 0.400579;, + 0.810267; 0.409010;, + 0.697253; 0.620613;, + 0.664039; 0.622143;, + 0.641336; 0.401773;, + 0.699610; 0.399090;, + 0.643503; 0.193089;, + 0.643503; 0.226339;, + 0.607723; 0.226339;, + 0.607723; 0.193089;, + 0.573481; 0.263885;, + 0.573481; 0.322220;, + 0.520482; 0.322220;, + 0.520482; 0.263885;, + 0.664039; 0.622143;, + 0.628617; 0.627190;, + 0.588867; 0.409249;, + 0.641336; 0.401773;, + 0.732989; 0.622384;, + 0.697253; 0.620613;, + 0.699610; 0.399090;, + 0.752544; 0.401713;, + 0.765890; 0.627190;, + 0.732989; 0.622384;, + 0.752544; 0.401713;, + 0.810267; 0.410144;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;; + } //End of Mesh UV Coordinates + XSkinMeshHeader { + 1; + 3; + 9; + } + SkinWeights { + "Armature_noga4"; + 24; + 272, + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295; + 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, 1.000000, 0.000000, + -1.000000,-0.000000, 0.000000, 0.000000, + 0.000000,-1.000000,-0.000000, 0.000000, + -1.404690,-1.430863, 0.883390, 1.000000;; + } //End of Armature_noga4 Skin Weights + SkinWeights { + "Armature_noga2"; + 24; + 216, + 217, + 218, + 219, + 244, + 245, + 246, + 247, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 263, + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271; + 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, 1.000000, 0.000000, + -1.000000, 0.000000, 0.000000, 0.000000, + -0.000000,-1.000000,-0.000000, 0.000000, + 1.641199,-1.448169, 0.881825, 1.000000;; + } //End of Armature_noga2 Skin Weights + SkinWeights { + "Armature_hvost"; + 56; + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 224, + 225, + 226, + 227, + 232, + 233, + 234, + 235; + 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, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000; + 0.698127,-0.052851, 0.714020, 0.000000, + -0.710717,-0.171780, 0.682183, 0.000000, + 0.086601,-0.983717,-0.157487, 0.000000, + -1.399654,-0.200846, 1.150453, 1.000000;; + } //End of Armature_hvost Skin Weights + SkinWeights { + "Armature_sheya"; + 24; + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63; + 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.997121,-0.075824,-0.000243, 0.000000, + 0.075644, 0.994519, 0.072177, 0.000000, + -0.005231,-0.071988, 0.997392, 0.000000, + -0.170866,-1.720121,-0.152821, 1.000000;; + } //End of Armature_sheya Skin Weights + SkinWeights { + "Armature_head"; + 224; + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 344, + 345, + 346, + 347, + 348, + 349, + 350, + 351, + 352, + 353, + 354, + 355, + 356, + 357, + 358, + 359, + 360, + 361, + 362, + 363, + 364, + 365, + 366, + 367, + 368, + 369, + 370, + 371, + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, + 381, + 382, + 383, + 384, + 385, + 386, + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 412, + 413, + 414, + 415, + 416, + 417, + 418, + 419, + 420, + 421, + 422, + 423, + 424, + 425, + 426, + 427, + 428, + 429, + 430, + 431, + 432, + 433, + 434, + 435, + 436, + 437, + 438, + 439, + 440, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 456, + 457, + 458, + 459, + 460, + 461, + 462, + 463; + 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, + 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, + 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, + 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, + 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.959864, 0.280464, 0.000000, + -0.000000,-0.280465, 0.959864, 0.000000, + -0.039910,-2.530474,-0.704059, 1.000000;; + } //End of Armature_head Skin Weights + SkinWeights { + "Armature_zubi"; + 24; + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333, + 334, + 335, + 336, + 337, + 338, + 339, + 340, + 341, + 342, + 343; + 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.954399, 0.298535, 0.000000, + -0.000000,-0.298535, 0.954399, 0.000000, + -0.095552,-3.607529,-0.236531, 1.000000;; + } //End of Armature_zubi Skin Weights + SkinWeights { + "Armature_Body"; + 40; + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39; + 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.996529,-0.083252, 0.000000, + 0.000000, 0.083252, 0.996529, 0.000000, + -0.039910, 1.507776, 0.102992, 1.000000;; + } //End of Armature_Body Skin Weights + SkinWeights { + "Armature_noga3"; + 24; + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319; + 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, 1.000000, 0.000000, + -1.000000, 0.000000, 0.000000, 0.000000, + -0.000000,-1.000000,-0.000000, 0.000000, + -1.404690,-1.429884,-0.864167, 1.000000;; + } //End of Armature_noga3 Skin Weights + SkinWeights { + "Armature_noga1"; + 24; + 220, + 221, + 222, + 223, + 228, + 229, + 230, + 231, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255; + 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, 1.000000, 0.000000, + -1.000000, 0.000000, 0.000000, 0.000000, + -0.000000,-1.000000,-0.000000, 0.000000, + 1.641199,-1.466174,-0.824358, 1.000000;; + } //End of Armature_noga1 Skin Weights + } //End of Mesh Mesh + } //End of Cube +} //End of Root Frame +AnimationSet { + Animation { + {Armature} + AnimationKey { //Position + 2; + 136; + 0;3; -19.739037, 0.216398, 0.218101;;, + 1;3; -19.739037, 0.216398, 0.218101;;, + 2;3; -19.739037, 0.216398, 0.218101;;, + 3;3; -19.739037, 0.216398, 0.218101;;, + 4;3; -19.739037, 0.216398, 0.218101;;, + 5;3; -19.739037, 0.216398, 0.218101;;, + 6;3; -19.739037, 0.216398, 0.218101;;, + 7;3; -19.739037, 0.216398, 0.218101;;, + 8;3; -19.739037, 0.216398, 0.218101;;, + 9;3; -19.739037, 0.216398, 0.218101;;, + 10;3; -19.739037, 0.216398, 0.218101;;, + 11;3; -19.739037, 0.216398, 0.218101;;, + 12;3; -19.739037, 0.216398, 0.218101;;, + 13;3; -19.739037, 0.216398, 0.218101;;, + 14;3; -19.739037, 0.216398, 0.218101;;, + 15;3; -19.739037, 0.216398, 0.218101;;, + 16;3; -19.739037, 0.216398, 0.218101;;, + 17;3; -19.739037, 0.216398, 0.218101;;, + 18;3; -19.739037, 0.216398, 0.218101;;, + 19;3; -19.739037, 0.216398, 0.218101;;, + 20;3; -19.739037, 0.216398, 0.218101;;, + 21;3; -19.739037, 0.216398, 0.218101;;, + 22;3; -19.739037, 0.216398, 0.218101;;, + 23;3; -19.739037, 0.216398, 0.218101;;, + 24;3; -19.739037, 0.216398, 0.218101;;, + 25;3; -19.739037, 0.216398, 0.218101;;, + 26;3; -19.739037, 0.216398, 0.218101;;, + 27;3; -19.739037, 0.216398, 0.218101;;, + 28;3; -19.739037, 0.216398, 0.218101;;, + 29;3; -19.739037, 0.216398, 0.218101;;, + 30;3; -19.739037, 0.216398, 0.218101;;, + 31;3; -19.739037, 0.216398, 0.218101;;, + 32;3; -19.739037, 0.216398, 0.218101;;, + 33;3; -19.739037, 0.216398, 0.218101;;, + 34;3; -19.739037, 0.216398, 0.218101;;, + 35;3; -19.739037, 0.216398, 0.218101;;, + 36;3; -19.739037, 0.216398, 0.218101;;, + 37;3; -19.739037, 0.216398, 0.218101;;, + 38;3; -19.739037, 0.216398, 0.218101;;, + 39;3; -19.739037, 0.216398, 0.218101;;, + 40;3; -19.739037, 0.216398, 0.218101;;, + 41;3; -19.739037, 0.216398, 0.218101;;, + 42;3; -19.739037, 0.216398, 0.218101;;, + 43;3; -19.739037, 0.216398, 0.218101;;, + 44;3; -19.739037, 0.216398, 0.218101;;, + 45;3; -19.739037, 0.216398, 0.218101;;, + 46;3; -19.739037, 0.216398, 0.218101;;, + 47;3; -19.739037, 0.216398, 0.218101;;, + 48;3; -19.739037, 0.216398, 0.218101;;, + 49;3; -19.739037, 0.216398, 0.218101;;, + 50;3; -19.739037, 0.216398, 0.218101;;, + 51;3; -19.739037, 0.216398, 0.218101;;, + 52;3; -19.739037, 0.216398, 0.218101;;, + 53;3; -19.739037, 0.216398, 0.218101;;, + 54;3; -19.739037, 0.216398, 0.218101;;, + 55;3; -19.739037, 0.216398, 0.218101;;, + 56;3; -19.739037, 0.216398, 0.218101;;, + 57;3; -19.739037, 0.216398, 0.218101;;, + 58;3; -19.739037, 0.216398, 0.218101;;, + 59;3; -19.739037, 0.216398, 0.218101;;, + 60;3; -19.739037, 0.216398, 0.218101;;, + 61;3; -19.739037, 0.216398, 0.218101;;, + 62;3; -19.739037, 0.216398, 0.218101;;, + 63;3; -19.739037, 0.216398, 0.218101;;, + 64;3; -19.739037, 0.216398, 0.218101;;, + 65;3; -19.739037, 0.216398, 0.218101;;, + 66;3; -19.739037, 0.216398, 0.218101;;, + 67;3; -19.739037, 0.216398, 0.218101;;, + 68;3; -19.739037, 0.216398, 0.218101;;, + 69;3; -19.739037, 0.216398, 0.218101;;, + 70;3; -19.739037, 0.216398, 0.218101;;, + 71;3; -19.739037, 0.216398, 0.218101;;, + 72;3; -19.739037, 0.216398, 0.218101;;, + 73;3; -19.739037, 0.216398, 0.218101;;, + 74;3; -19.739037, 0.216398, 0.218101;;, + 75;3; -19.739037, 0.216398, 0.218101;;, + 76;3; -19.739037, 0.216398, 0.218101;;, + 77;3; -19.739037, 0.216398, 0.218101;;, + 78;3; -19.739037, 0.216398, 0.218101;;, + 79;3; -19.739037, 0.216398, 0.218101;;, + 80;3; -19.739037, 0.216398, 0.218101;;, + 81;3; -19.739037, 0.216398, 0.218101;;, + 82;3; -19.739037, 0.216398, 0.218101;;, + 83;3; -19.739037, 0.216398, 0.218101;;, + 84;3; -19.739037, 0.216398, 0.218101;;, + 85;3; -19.739037, 0.216398, 0.218101;;, + 86;3; -19.739037, 0.216398, 0.218101;;, + 87;3; -19.739037, 0.216398, 0.218101;;, + 88;3; -19.739037, 0.216398, 0.218101;;, + 89;3; -19.739037, 0.216398, 0.218101;;, + 90;3; -19.739037, 0.216398, 0.218101;;, + 91;3; -19.739037, 0.216398, 0.218101;;, + 92;3; -19.739037, 0.216398, 0.218101;;, + 93;3; -19.739037, 0.216398, 0.218101;;, + 94;3; -19.739037, 0.216398, 0.218101;;, + 95;3; -19.739037, 0.216398, 0.218101;;, + 96;3; -19.739037, 0.216398, 0.218101;;, + 97;3; -19.739037, 0.216398, 0.218101;;, + 98;3; -19.739037, 0.216398, 0.218101;;, + 99;3; -19.739037, 0.216398, 0.218101;;, + 100;3; -19.739037, 0.216398, 0.218101;;, + 101;3; -19.739037, 0.216398, 0.218101;;, + 102;3; -19.739037, 0.216398, 0.218101;;, + 103;3; -19.739037, 0.216398, 0.218101;;, + 104;3; -19.739037, 0.216398, 0.218101;;, + 105;3; -19.739037, 0.216398, 0.218101;;, + 106;3; -19.739037, 0.216398, 0.218101;;, + 107;3; -19.739037, 0.216398, 0.218101;;, + 108;3; -19.739037, 0.216398, 0.218101;;, + 109;3; -19.739037, 0.216398, 0.218101;;, + 110;3; -19.739037, 0.216398, 0.218101;;, + 111;3; -19.739037, 0.216398, 0.218101;;, + 112;3; -19.739037, 0.216398, 0.218101;;, + 113;3; -19.739037, 0.216398, 0.218101;;, + 114;3; -19.739037, 0.216398, 0.218101;;, + 115;3; -19.739037, 0.216398, 0.218101;;, + 116;3; -19.739037, 0.216398, 0.218101;;, + 117;3; -19.739037, 0.216398, 0.218101;;, + 118;3; -19.739037, 0.216398, 0.218101;;, + 119;3; -19.739037, 0.216398, 0.218101;;, + 120;3; -19.739037, 0.216398, 0.218101;;, + 121;3; -19.739037, 0.216398, 0.218101;;, + 122;3; -19.739037, 0.216398, 0.218101;;, + 123;3; -19.739037, 0.216398, 0.218101;;, + 124;3; -19.739037, 0.216398, 0.218101;;, + 125;3; -19.739037, 0.216398, 0.218101;;, + 126;3; -19.739037, 0.216398, 0.218101;;, + 127;3; -19.739037, 0.216398, 0.218101;;, + 128;3; -19.739037, 0.216398, 0.218101;;, + 129;3; -19.739037, 0.216398, 0.218101;;, + 130;3; -19.739037, 0.216398, 0.218101;;, + 131;3; -19.739037, 0.216398, 0.218101;;, + 132;3; -19.739037, 0.216398, 0.218101;;, + 133;3; -19.739037, 0.216398, 0.218101;;, + 134;3; -19.739037, 0.216398, 0.218101;;, + 135;3; -19.739037, 0.216398, 0.218101;;; + } + AnimationKey { //Rotation + 0; + 136; + 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;;; + } + AnimationKey { //Scale + 1; + 136; + 0;3; 3.749036, 3.749036, 3.749036;;, + 1;3; 3.749036, 3.749036, 3.749036;;, + 2;3; 3.749036, 3.749036, 3.749036;;, + 3;3; 3.749036, 3.749036, 3.749036;;, + 4;3; 3.749036, 3.749036, 3.749036;;, + 5;3; 3.749036, 3.749036, 3.749036;;, + 6;3; 3.749036, 3.749036, 3.749036;;, + 7;3; 3.749036, 3.749036, 3.749036;;, + 8;3; 3.749036, 3.749036, 3.749036;;, + 9;3; 3.749036, 3.749036, 3.749036;;, + 10;3; 3.749036, 3.749036, 3.749036;;, + 11;3; 3.749036, 3.749036, 3.749036;;, + 12;3; 3.749036, 3.749036, 3.749036;;, + 13;3; 3.749036, 3.749036, 3.749036;;, + 14;3; 3.749036, 3.749036, 3.749036;;, + 15;3; 3.749036, 3.749036, 3.749036;;, + 16;3; 3.749036, 3.749036, 3.749036;;, + 17;3; 3.749036, 3.749036, 3.749036;;, + 18;3; 3.749036, 3.749036, 3.749036;;, + 19;3; 3.749036, 3.749036, 3.749036;;, + 20;3; 3.749036, 3.749036, 3.749036;;, + 21;3; 3.749036, 3.749036, 3.749036;;, + 22;3; 3.749036, 3.749036, 3.749036;;, + 23;3; 3.749036, 3.749036, 3.749036;;, + 24;3; 3.749036, 3.749036, 3.749036;;, + 25;3; 3.749036, 3.749036, 3.749036;;, + 26;3; 3.749036, 3.749036, 3.749036;;, + 27;3; 3.749036, 3.749036, 3.749036;;, + 28;3; 3.749036, 3.749036, 3.749036;;, + 29;3; 3.749036, 3.749036, 3.749036;;, + 30;3; 3.749036, 3.749036, 3.749036;;, + 31;3; 3.749036, 3.749036, 3.749036;;, + 32;3; 3.749036, 3.749036, 3.749036;;, + 33;3; 3.749036, 3.749036, 3.749036;;, + 34;3; 3.749036, 3.749036, 3.749036;;, + 35;3; 3.749036, 3.749036, 3.749036;;, + 36;3; 3.749036, 3.749036, 3.749036;;, + 37;3; 3.749036, 3.749036, 3.749036;;, + 38;3; 3.749036, 3.749036, 3.749036;;, + 39;3; 3.749036, 3.749036, 3.749036;;, + 40;3; 3.749036, 3.749036, 3.749036;;, + 41;3; 3.749036, 3.749036, 3.749036;;, + 42;3; 3.749036, 3.749036, 3.749036;;, + 43;3; 3.749036, 3.749036, 3.749036;;, + 44;3; 3.749036, 3.749036, 3.749036;;, + 45;3; 3.749036, 3.749036, 3.749036;;, + 46;3; 3.749036, 3.749036, 3.749036;;, + 47;3; 3.749036, 3.749036, 3.749036;;, + 48;3; 3.749036, 3.749036, 3.749036;;, + 49;3; 3.749036, 3.749036, 3.749036;;, + 50;3; 3.749036, 3.749036, 3.749036;;, + 51;3; 3.749036, 3.749036, 3.749036;;, + 52;3; 3.749036, 3.749036, 3.749036;;, + 53;3; 3.749036, 3.749036, 3.749036;;, + 54;3; 3.749036, 3.749036, 3.749036;;, + 55;3; 3.749036, 3.749036, 3.749036;;, + 56;3; 3.749036, 3.749036, 3.749036;;, + 57;3; 3.749036, 3.749036, 3.749036;;, + 58;3; 3.749036, 3.749036, 3.749036;;, + 59;3; 3.749036, 3.749036, 3.749036;;, + 60;3; 3.749036, 3.749036, 3.749036;;, + 61;3; 3.749036, 3.749036, 3.749036;;, + 62;3; 3.749036, 3.749036, 3.749036;;, + 63;3; 3.749036, 3.749036, 3.749036;;, + 64;3; 3.749036, 3.749036, 3.749036;;, + 65;3; 3.749036, 3.749036, 3.749036;;, + 66;3; 3.749036, 3.749036, 3.749036;;, + 67;3; 3.749036, 3.749036, 3.749036;;, + 68;3; 3.749036, 3.749036, 3.749036;;, + 69;3; 3.749036, 3.749036, 3.749036;;, + 70;3; 3.749036, 3.749036, 3.749036;;, + 71;3; 3.749036, 3.749036, 3.749036;;, + 72;3; 3.749036, 3.749036, 3.749036;;, + 73;3; 3.749036, 3.749036, 3.749036;;, + 74;3; 3.749036, 3.749036, 3.749036;;, + 75;3; 3.749036, 3.749036, 3.749036;;, + 76;3; 3.749036, 3.749036, 3.749036;;, + 77;3; 3.749036, 3.749036, 3.749036;;, + 78;3; 3.749036, 3.749036, 3.749036;;, + 79;3; 3.749036, 3.749036, 3.749036;;, + 80;3; 3.749036, 3.749036, 3.749036;;, + 81;3; 3.749036, 3.749036, 3.749036;;, + 82;3; 3.749036, 3.749036, 3.749036;;, + 83;3; 3.749036, 3.749036, 3.749036;;, + 84;3; 3.749036, 3.749036, 3.749036;;, + 85;3; 3.749036, 3.749036, 3.749036;;, + 86;3; 3.749036, 3.749036, 3.749036;;, + 87;3; 3.749036, 3.749036, 3.749036;;, + 88;3; 3.749036, 3.749036, 3.749036;;, + 89;3; 3.749036, 3.749036, 3.749036;;, + 90;3; 3.749036, 3.749036, 3.749036;;, + 91;3; 3.749036, 3.749036, 3.749036;;, + 92;3; 3.749036, 3.749036, 3.749036;;, + 93;3; 3.749036, 3.749036, 3.749036;;, + 94;3; 3.749036, 3.749036, 3.749036;;, + 95;3; 3.749036, 3.749036, 3.749036;;, + 96;3; 3.749036, 3.749036, 3.749036;;, + 97;3; 3.749036, 3.749036, 3.749036;;, + 98;3; 3.749036, 3.749036, 3.749036;;, + 99;3; 3.749036, 3.749036, 3.749036;;, + 100;3; 3.749036, 3.749036, 3.749036;;, + 101;3; 3.749036, 3.749036, 3.749036;;, + 102;3; 3.749036, 3.749036, 3.749036;;, + 103;3; 3.749036, 3.749036, 3.749036;;, + 104;3; 3.749036, 3.749036, 3.749036;;, + 105;3; 3.749036, 3.749036, 3.749036;;, + 106;3; 3.749036, 3.749036, 3.749036;;, + 107;3; 3.749036, 3.749036, 3.749036;;, + 108;3; 3.749036, 3.749036, 3.749036;;, + 109;3; 3.749036, 3.749036, 3.749036;;, + 110;3; 3.749036, 3.749036, 3.749036;;, + 111;3; 3.749036, 3.749036, 3.749036;;, + 112;3; 3.749036, 3.749036, 3.749036;;, + 113;3; 3.749036, 3.749036, 3.749036;;, + 114;3; 3.749036, 3.749036, 3.749036;;, + 115;3; 3.749036, 3.749036, 3.749036;;, + 116;3; 3.749036, 3.749036, 3.749036;;, + 117;3; 3.749036, 3.749036, 3.749036;;, + 118;3; 3.749036, 3.749036, 3.749036;;, + 119;3; 3.749036, 3.749036, 3.749036;;, + 120;3; 3.749036, 3.749036, 3.749036;;, + 121;3; 3.749036, 3.749036, 3.749036;;, + 122;3; 3.749036, 3.749036, 3.749036;;, + 123;3; 3.749036, 3.749036, 3.749036;;, + 124;3; 3.749036, 3.749036, 3.749036;;, + 125;3; 3.749036, 3.749036, 3.749036;;, + 126;3; 3.749036, 3.749036, 3.749036;;, + 127;3; 3.749036, 3.749036, 3.749036;;, + 128;3; 3.749036, 3.749036, 3.749036;;, + 129;3; 3.749036, 3.749036, 3.749036;;, + 130;3; 3.749036, 3.749036, 3.749036;;, + 131;3; 3.749036, 3.749036, 3.749036;;, + 132;3; 3.749036, 3.749036, 3.749036;;, + 133;3; 3.749036, 3.749036, 3.749036;;, + 134;3; 3.749036, 3.749036, 3.749036;;, + 135;3; 3.749036, 3.749036, 3.749036;;; + } + } + Animation { + {Armature_Body} + AnimationKey { //Position + 2; + 136; + 0;3; 5.378092,-1.647068, 2.876912;;, + 1;3; 5.378092,-1.647068, 2.876912;;, + 2;3; 5.378092,-1.647068, 2.876912;;, + 3;3; 5.378092,-1.647068, 2.876912;;, + 4;3; 5.378092,-1.647068, 2.876912;;, + 5;3; 5.378092,-1.647068, 2.876912;;, + 6;3; 5.378092,-1.647068, 2.876912;;, + 7;3; 5.378092,-1.647068, 2.876912;;, + 8;3; 5.378092,-1.647068, 2.876912;;, + 9;3; 5.378092,-1.647068, 2.876912;;, + 10;3; 5.378092,-1.647068, 2.876912;;, + 11;3; 5.378092,-1.647068, 2.876912;;, + 12;3; 5.378092,-1.647068, 2.876912;;, + 13;3; 5.378092,-1.647068, 2.876912;;, + 14;3; 5.378092,-1.647068, 2.876912;;, + 15;3; 5.378092,-1.647068, 2.876912;;, + 16;3; 5.378092,-1.647068, 2.876912;;, + 17;3; 5.378092,-1.647068, 2.876912;;, + 18;3; 5.378092,-1.647068, 2.876912;;, + 19;3; 5.378092,-1.647068, 2.876912;;, + 20;3; 5.378092,-1.647068, 2.876912;;, + 21;3; 5.378092,-1.647068, 2.876912;;, + 22;3; 5.378092,-1.647068, 2.876912;;, + 23;3; 5.378092,-1.647068, 2.876912;;, + 24;3; 5.378092,-1.647068, 2.876912;;, + 25;3; 5.378092,-1.647068, 2.876912;;, + 26;3; 5.378092,-1.647068, 2.876912;;, + 27;3; 5.378092,-1.647068, 2.876912;;, + 28;3; 5.378092,-1.647068, 2.876912;;, + 29;3; 5.378092,-1.647068, 2.876912;;, + 30;3; 5.378092,-1.647068, 2.876912;;, + 31;3; 5.378092,-1.647068, 2.876912;;, + 32;3; 5.378092,-1.647068, 2.876912;;, + 33;3; 5.378092,-1.647068, 2.876912;;, + 34;3; 5.378092,-1.647068, 2.876912;;, + 35;3; 5.378092,-1.647068, 2.876912;;, + 36;3; 5.378092,-1.647068, 2.882412;;, + 37;3; 5.378092,-1.647068, 2.898830;;, + 38;3; 5.378092,-1.647068, 2.924675;;, + 39;3; 5.378092,-1.647068, 2.956158;;, + 40;3; 5.378092,-1.647068, 2.987640;;, + 41;3; 5.378092,-1.647068, 3.013484;;, + 42;3; 5.378092,-1.647068, 3.029901;;, + 43;3; 5.378092,-1.647068, 3.035401;;, + 44;3; 5.378092,-1.647068, 3.031038;;, + 45;3; 5.378092,-1.647068, 3.017950;;, + 46;3; 5.378092,-1.647068, 2.996935;;, + 47;3; 5.378092,-1.647068, 2.970201;;, + 48;3; 5.378092,-1.647068, 2.941358;;, + 49;3; 5.378092,-1.647068, 2.914623;;, + 50;3; 5.378092,-1.647068, 2.893608;;, + 51;3; 5.378092,-1.647068, 2.880520;;, + 52;3; 5.378092,-1.647068, 2.876157;;, + 53;3; 5.378092,-1.647068, 2.886195;;, + 54;3; 5.378092,-1.647068, 2.915410;;, + 55;3; 5.378092,-1.647068, 2.957406;;, + 56;3; 5.378092,-1.647068, 2.999403;;, + 57;3; 5.378092,-1.647068, 3.028617;;, + 58;3; 5.378092,-1.647068, 3.038655;;, + 59;3; 5.378092,-1.647068, 3.031317;;, + 60;3; 5.378092,-1.647068, 3.009612;;, + 61;3; 5.378092,-1.647068, 2.976541;;, + 62;3; 5.378092,-1.647069, 2.939030;;, + 63;3; 5.378092,-1.647069, 2.905957;;, + 64;3; 5.378092,-1.647068, 2.884250;;, + 65;3; 5.378092,-1.647068, 2.876912;;, + 66;3; 5.378092,-1.647068, 2.876912;;, + 67;3; 5.378092,-1.647068, 2.876912;;, + 68;3; 5.378092,-1.647068, 2.876912;;, + 69;3; 5.378092,-1.647068, 2.876912;;, + 70;3; 5.378092,-1.647068, 2.876912;;, + 71;3; 5.378092,-1.647068, 2.876912;;, + 72;3; 5.378092,-1.647068, 2.876912;;, + 73;3; 5.378092,-1.647068, 2.876912;;, + 74;3; 5.378092,-1.647068, 2.876912;;, + 75;3; 5.378092,-1.647068, 2.876912;;, + 76;3; 5.378092,-1.647068, 2.876912;;, + 77;3; 5.378092,-1.647068, 2.876912;;, + 78;3; 5.378092,-1.647068, 2.876912;;, + 79;3; 5.378092,-1.647068, 2.876912;;, + 80;3; 5.378092,-1.647068, 2.876912;;, + 81;3; 5.378092,-1.647068, 2.876912;;, + 82;3; 5.378092,-1.647068, 2.876912;;, + 83;3; 5.378092,-1.647068, 2.876912;;, + 84;3; 5.378092,-1.647068, 2.876912;;, + 85;3; 5.378092,-1.647068, 2.876912;;, + 86;3; 5.378092,-1.647068, 2.876912;;, + 87;3; 5.378092,-1.647068, 2.876912;;, + 88;3; 5.378092,-1.647068, 2.876912;;, + 89;3; 5.378092,-1.647068, 2.876912;;, + 90;3; 5.378092,-1.647068, 2.876912;;, + 91;3; 5.378092,-1.647068, 2.876912;;, + 92;3; 5.378092,-1.647068, 2.876912;;, + 93;3; 5.378092,-1.647068, 2.876912;;, + 94;3; 5.378092,-1.647068, 2.876912;;, + 95;3; 5.378092,-1.647068, 2.876912;;, + 96;3; 5.378092,-1.647068, 2.876912;;, + 97;3; 5.378092,-1.647068, 2.876912;;, + 98;3; 5.378092,-1.647068, 2.876912;;, + 99;3; 5.378092,-1.647068, 2.876912;;, + 100;3; 5.378092,-1.647068, 2.876912;;, + 101;3; 5.378092,-1.647068, 2.876912;;, + 102;3; 5.378092,-1.647068, 2.876912;;, + 103;3; 5.378092,-1.647068, 2.876912;;, + 104;3; 5.378092,-1.647068, 2.876912;;, + 105;3; 5.378092,-1.647068, 2.876912;;, + 106;3; 5.378092,-1.647068, 2.882412;;, + 107;3; 5.378092,-1.647068, 2.898830;;, + 108;3; 5.378092,-1.647068, 2.924675;;, + 109;3; 5.378092,-1.647068, 2.956157;;, + 110;3; 5.378092,-1.647068, 2.987640;;, + 111;3; 5.378092,-1.647068, 3.013484;;, + 112;3; 5.378092,-1.647068, 3.029901;;, + 113;3; 5.378092,-1.647068, 3.035401;;, + 114;3; 5.378092,-1.647068, 3.030918;;, + 115;3; 5.378092,-1.647068, 3.017950;;, + 116;3; 5.378092,-1.647068, 2.999916;;, + 117;3; 5.378092,-1.647068, 2.975391;;, + 118;3; 5.378092,-1.647068, 2.946747;;, + 119;3; 5.378092,-1.647068, 2.918379;;, + 120;3; 5.378092,-1.647068, 2.895288;;, + 121;3; 5.378092,-1.647068, 2.880877;;, + 122;3; 5.378092,-1.647068, 2.876157;;, + 123;3; 5.378092,-1.647068, 2.886195;;, + 124;3; 5.378092,-1.647068, 2.915409;;, + 125;3; 5.378092,-1.647068, 2.957406;;, + 126;3; 5.378092,-1.647068, 2.999403;;, + 127;3; 5.378092,-1.647068, 3.028617;;, + 128;3; 5.378092,-1.647068, 3.038655;;, + 129;3; 5.378092,-1.647068, 3.031318;;, + 130;3; 5.378092,-1.647069, 3.009614;;, + 131;3; 5.378092,-1.647069, 2.976547;;, + 132;3; 5.378092,-1.647069, 2.939038;;, + 133;3; 5.378092,-1.647069, 2.905964;;, + 134;3; 5.378092,-1.647069, 2.884252;;, + 135;3; 5.378092,-1.647068, 2.876912;;; + } + AnimationKey { //Rotation + 0; + 136; + 0;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 1;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 2;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 3;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 4;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 5;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 6;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 7;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 8;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 9;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 10;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 11;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 12;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 13;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 14;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 15;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 16;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 17;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 18;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 19;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 20;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 21;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 22;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 23;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 24;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 25;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 26;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 27;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 28;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 29;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 30;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 31;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 32;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 33;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 34;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 35;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 36;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 37;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 38;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 39;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 40;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 41;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 42;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 43;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 44;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 45;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 46;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 47;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 48;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 49;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 50;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 51;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 52;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 53;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 54;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 55;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 56;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 57;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 58;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 59;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 60;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 61;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 62;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 63;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 64;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 65;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 66;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 67;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 68;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 69;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 70;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 71;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 72;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 73;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 74;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 75;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 76;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 77;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 78;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 79;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 80;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 81;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 82;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 83;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 84;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 85;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 86;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 87;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 88;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 89;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 90;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 91;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 92;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 93;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 94;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 95;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 96;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 97;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 98;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 99;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 100;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 101;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 102;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 103;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 104;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 105;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 106;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 107;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 108;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 109;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 110;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 111;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 112;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 113;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 114;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 115;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 116;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 117;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 118;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 119;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 120;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 121;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 122;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 123;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 124;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 125;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 126;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 127;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 128;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 129;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 130;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 131;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 132;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 133;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 134;4; -0.999132, 0.041662, 0.000000, 0.000000;;, + 135;4; -0.999132, 0.041662, 0.000000, 0.000000;;; + } + AnimationKey { //Scale + 1; + 136; + 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;;; + } + } + Animation { + {Armature_noga3} + AnimationKey { //Position + 2; + 136; + 0;3; 0.824256,-0.011078,-1.204985;;, + 1;3; 0.824256,-0.011078,-1.204985;;, + 2;3; 0.824256,-0.011078,-1.204985;;, + 3;3; 0.824256,-0.011078,-1.204985;;, + 4;3; 0.824256,-0.011078,-1.204985;;, + 5;3; 0.824256,-0.011078,-1.204985;;, + 6;3; 0.824256,-0.011078,-1.204985;;, + 7;3; 0.824256,-0.011078,-1.204985;;, + 8;3; 0.824256,-0.011078,-1.204985;;, + 9;3; 0.824256,-0.011078,-1.204985;;, + 10;3; 0.824256,-0.011078,-1.204985;;, + 11;3; 0.824256,-0.011078,-1.204985;;, + 12;3; 0.824256,-0.011078,-1.204985;;, + 13;3; 0.824256,-0.011078,-1.204985;;, + 14;3; 0.824256,-0.011078,-1.204985;;, + 15;3; 0.824256,-0.011078,-1.204985;;, + 16;3; 0.824256,-0.011078,-1.204985;;, + 17;3; 0.824256,-0.011078,-1.204985;;, + 18;3; 0.824256,-0.011078,-1.204985;;, + 19;3; 0.824256,-0.011078,-1.204985;;, + 20;3; 0.824256,-0.011078,-1.204985;;, + 21;3; 0.824256,-0.011078,-1.204985;;, + 22;3; 0.824256,-0.011078,-1.204985;;, + 23;3; 0.824256,-0.011078,-1.204985;;, + 24;3; 0.824256,-0.011078,-1.204985;;, + 25;3; 0.824256,-0.011078,-1.204985;;, + 26;3; 0.824256,-0.011078,-1.204985;;, + 27;3; 0.824256,-0.011078,-1.204985;;, + 28;3; 0.824256,-0.011078,-1.204985;;, + 29;3; 0.824256,-0.011078,-1.204985;;, + 30;3; 0.824256,-0.011078,-1.204985;;, + 31;3; 0.824256,-0.011078,-1.204985;;, + 32;3; 0.824256,-0.011078,-1.204985;;, + 33;3; 0.824256,-0.011078,-1.204985;;, + 34;3; 0.824256,-0.011078,-1.204985;;, + 35;3; 0.824256,-0.011078,-1.204985;;, + 36;3; 0.824256,-0.011078,-1.204985;;, + 37;3; 0.824256,-0.011078,-1.204985;;, + 38;3; 0.824256,-0.011078,-1.204985;;, + 39;3; 0.824256,-0.011078,-1.204985;;, + 40;3; 0.824256,-0.011078,-1.204985;;, + 41;3; 0.824256,-0.011078,-1.204985;;, + 42;3; 0.824256,-0.011078,-1.204985;;, + 43;3; 0.824256,-0.011078,-1.204985;;, + 44;3; 0.824256,-0.011078,-1.204985;;, + 45;3; 0.824256,-0.011078,-1.204985;;, + 46;3; 0.824256,-0.011078,-1.204985;;, + 47;3; 0.824256,-0.011078,-1.204985;;, + 48;3; 0.824256,-0.011078,-1.204985;;, + 49;3; 0.824256,-0.011078,-1.204985;;, + 50;3; 0.824256,-0.011078,-1.204985;;, + 51;3; 0.824256,-0.011078,-1.204985;;, + 52;3; 0.824256,-0.011078,-1.204985;;, + 53;3; 0.824256,-0.011078,-1.204985;;, + 54;3; 0.824256,-0.011078,-1.204985;;, + 55;3; 0.824256,-0.011078,-1.204985;;, + 56;3; 0.824256,-0.011078,-1.204985;;, + 57;3; 0.824256,-0.011078,-1.204985;;, + 58;3; 0.824256,-0.011078,-1.204985;;, + 59;3; 0.824256,-0.011078,-1.204985;;, + 60;3; 0.824256,-0.011078,-1.204985;;, + 61;3; 0.824256,-0.011078,-1.204985;;, + 62;3; 0.824256,-0.011078,-1.204985;;, + 63;3; 0.824256,-0.011078,-1.204985;;, + 64;3; 0.824256,-0.011078,-1.204985;;, + 65;3; 0.824256,-0.011078,-1.204985;;, + 66;3; 0.824256,-0.011078,-1.204985;;, + 67;3; 0.824256,-0.011078,-1.204985;;, + 68;3; 0.824256,-0.011078,-1.204985;;, + 69;3; 0.824256,-0.011078,-1.204985;;, + 70;3; 0.824256,-0.011078,-1.204985;;, + 71;3; 0.824256,-0.011078,-1.204985;;, + 72;3; 0.824256,-0.011078,-1.204985;;, + 73;3; 0.824256,-0.011078,-1.204985;;, + 74;3; 0.824256,-0.011078,-1.204985;;, + 75;3; 0.824256,-0.011078,-1.204985;;, + 76;3; 0.824256,-0.011078,-1.204985;;, + 77;3; 0.824256,-0.011078,-1.204985;;, + 78;3; 0.824256,-0.011078,-1.204985;;, + 79;3; 0.824256,-0.011078,-1.204985;;, + 80;3; 0.824256,-0.011078,-1.204985;;, + 81;3; 0.824256,-0.011078,-1.204985;;, + 82;3; 0.824256,-0.011078,-1.204985;;, + 83;3; 0.824256,-0.011078,-1.204985;;, + 84;3; 0.824256,-0.011078,-1.204985;;, + 85;3; 0.824256,-0.011078,-1.204985;;, + 86;3; 0.824256,-0.011078,-1.204985;;, + 87;3; 0.824256,-0.011078,-1.204985;;, + 88;3; 0.824256,-0.011078,-1.204985;;, + 89;3; 0.824256,-0.011078,-1.204985;;, + 90;3; 0.824256,-0.011078,-1.204985;;, + 91;3; 0.824256,-0.011078,-1.204985;;, + 92;3; 0.824256,-0.011078,-1.204985;;, + 93;3; 0.824256,-0.011078,-1.204985;;, + 94;3; 0.824256,-0.011078,-1.204985;;, + 95;3; 0.824256,-0.011078,-1.204985;;, + 96;3; 0.824256,-0.011078,-1.204985;;, + 97;3; 0.824256,-0.011078,-1.204985;;, + 98;3; 0.824256,-0.011078,-1.204985;;, + 99;3; 0.824256,-0.011078,-1.204985;;, + 100;3; 0.824256,-0.011078,-1.204985;;, + 101;3; 0.824256,-0.011078,-1.204985;;, + 102;3; 0.824256,-0.011078,-1.204985;;, + 103;3; 0.824256,-0.011078,-1.204985;;, + 104;3; 0.824256,-0.011078,-1.204985;;, + 105;3; 0.824256,-0.011078,-1.204985;;, + 106;3; 0.824256,-0.011078,-1.204985;;, + 107;3; 0.824256,-0.011078,-1.204985;;, + 108;3; 0.824256,-0.011078,-1.204985;;, + 109;3; 0.824256,-0.011078,-1.204985;;, + 110;3; 0.824256,-0.011078,-1.204985;;, + 111;3; 0.824256,-0.011078,-1.204985;;, + 112;3; 0.824256,-0.011078,-1.204985;;, + 113;3; 0.824256,-0.011078,-1.204985;;, + 114;3; 0.824256,-0.011078,-1.204985;;, + 115;3; 0.824256,-0.011078,-1.204985;;, + 116;3; 0.824256,-0.011078,-1.204985;;, + 117;3; 0.824256,-0.011078,-1.204985;;, + 118;3; 0.824256,-0.011078,-1.204985;;, + 119;3; 0.824256,-0.011078,-1.204985;;, + 120;3; 0.824256,-0.011078,-1.204985;;, + 121;3; 0.824256,-0.011078,-1.204985;;, + 122;3; 0.824256,-0.011078,-1.204985;;, + 123;3; 0.824256,-0.011078,-1.204985;;, + 124;3; 0.824256,-0.011078,-1.204985;;, + 125;3; 0.824256,-0.011078,-1.204985;;, + 126;3; 0.824256,-0.011078,-1.204985;;, + 127;3; 0.824256,-0.011078,-1.204985;;, + 128;3; 0.824256,-0.011078,-1.204985;;, + 129;3; 0.824256,-0.011078,-1.204985;;, + 130;3; 0.824256,-0.011078,-1.204985;;, + 131;3; 0.824256,-0.011078,-1.204985;;, + 132;3; 0.824256,-0.011078,-1.204985;;, + 133;3; 0.824256,-0.011078,-1.204985;;, + 134;3; 0.824256,-0.011078,-1.204985;;, + 135;3; 0.824256,-0.011078,-1.204985;;; + } + AnimationKey { //Rotation + 0; + 136; + 0;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 1;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 2;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 3;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 4;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 5;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 6;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 7;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 8;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 9;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 10;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 11;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 12;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 13;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 14;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 15;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 16;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 17;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 18;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 19;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 20;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 21;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 22;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 23;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 24;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 25;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 26;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 27;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 28;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 29;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 30;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 31;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 32;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 33;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 34;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 35;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 36;4; -0.471419,-0.525048, 0.471419,-0.525048;;, + 37;4; -0.449585,-0.538928, 0.449585,-0.538928;;, + 38;4; -0.415216,-0.560776, 0.415216,-0.560775;;, + 39;4; -0.373354,-0.587385, 0.373354,-0.587385;;, + 40;4; -0.331496,-0.613991, 0.331496,-0.613991;;, + 41;4; -0.297134,-0.635832, 0.297134,-0.635832;;, + 42;4; -0.275307,-0.649706, 0.275307,-0.649706;;, + 43;4; -0.267994,-0.654354, 0.267994,-0.654354;;, + 44;4; -0.271164,-0.651497, 0.271164,-0.651497;;, + 45;4; -0.280754,-0.642868, 0.280754,-0.642868;;, + 46;4; -0.296731,-0.628532, 0.296731,-0.628532;;, + 47;4; -0.318782,-0.608809, 0.318782,-0.608809;;, + 48;4; -0.346239,-0.584351, 0.346239,-0.584351;;, + 49;4; -0.378024,-0.556181, 0.378024,-0.556181;;, + 50;4; -0.412665,-0.525678, 0.412665,-0.525678;;, + 51;4; -0.448397,-0.494478, 0.448398,-0.494477;;, + 52;4; -0.483345,-0.464307, 0.483345,-0.464307;;, + 53;4; -0.515728,-0.436788, 0.515728,-0.436788;;, + 54;4; -0.544052,-0.413272, 0.544052,-0.413272;;, + 55;4; -0.567204,-0.394746, 0.567204,-0.394746;;, + 56;4; -0.584482,-0.381824, 0.584482,-0.381824;;, + 57;4; -0.595539,-0.374790, 0.595539,-0.374790;;, + 58;4; -0.600308,-0.373672, 0.600308,-0.373671;;, + 59;4; -0.596120,-0.381769, 0.596120,-0.381769;;, + 60;4; -0.580435,-0.402142, 0.580435,-0.402142;;, + 61;4; -0.555540,-0.432097, 0.555540,-0.432097;;, + 62;4; -0.526829,-0.465563, 0.526829,-0.465563;;, + 63;4; -0.501294,-0.494832, 0.501294,-0.494832;;, + 64;4; -0.484447,-0.513952, 0.484447,-0.513952;;, + 65;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 66;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 67;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 68;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 69;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 70;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 71;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 72;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 73;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 74;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 75;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 76;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 77;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 78;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 79;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 80;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 81;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 82;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 83;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 84;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 85;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 86;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 87;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 88;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 89;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 90;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 91;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 92;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 93;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 94;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 95;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 96;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 97;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 98;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 99;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 100;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 101;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 102;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 103;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 104;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 105;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 106;4; -0.463301,-0.526860, 0.463301,-0.526859;;, + 107;4; -0.417252,-0.546134, 0.417252,-0.546134;;, + 108;4; -0.344789,-0.576451, 0.344789,-0.576451;;, + 109;4; -0.256546,-0.613358, 0.256546,-0.613358;;, + 110;4; -0.168312,-0.650257, 0.168312,-0.650257;;, + 111;4; -0.095870,-0.680556, 0.095870,-0.680556;;, + 112;4; -0.049840,-0.699813, 0.049840,-0.699813;;, + 113;4; -0.034414,-0.706269, 0.034414,-0.706269;;, + 114;4; -0.037872,-0.703537, 0.037872,-0.703537;;, + 115;4; -0.057302,-0.688805, 0.057302,-0.688805;;, + 116;4; -0.091541,-0.663016, 0.091541,-0.663016;;, + 117;4; -0.137489,-0.628455, 0.137490,-0.628455;;, + 118;4; -0.191915,-0.587762, 0.191915,-0.587762;;, + 119;4; -0.251696,-0.543478, 0.251696,-0.543478;;, + 120;4; -0.313906,-0.497971, 0.313906,-0.497971;;, + 121;4; -0.375876,-0.453394, 0.375877,-0.453394;;, + 122;4; -0.435236,-0.411649, 0.435236,-0.411649;;, + 123;4; -0.489928,-0.374380, 0.489928,-0.374380;;, + 124;4; -0.538212,-0.342968, 0.538212,-0.342968;;, + 125;4; -0.578647,-0.318547, 0.578647,-0.318547;;, + 126;4; -0.610074,-0.302025, 0.610074,-0.302024;;, + 127;4; -0.631585,-0.294102, 0.631585,-0.294102;;, + 128;4; -0.642492,-0.295303, 0.642492,-0.295303;;, + 129;4; -0.639410,-0.310234, 0.639410,-0.310233;;, + 130;4; -0.619509,-0.342661, 0.619509,-0.342661;;, + 131;4; -0.585929,-0.388513, 0.585929,-0.388513;;, + 132;4; -0.546281,-0.438858, 0.546281,-0.438858;;, + 133;4; -0.510571,-0.482497, 0.510571,-0.482497;;, + 134;4; -0.486826,-0.510862, 0.486826,-0.510862;;, + 135;4; -0.478735,-0.520397, 0.478735,-0.520397;;; + } + AnimationKey { //Scale + 1; + 136; + 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;;; + } + } + Animation { + {Armature_noga1} + AnimationKey { //Position + 2; + 136; + 0;3; 0.784448, 3.021216,-1.494725;;, + 1;3; 0.784448, 3.021216,-1.494725;;, + 2;3; 0.784448, 3.021216,-1.494725;;, + 3;3; 0.784448, 3.021216,-1.494725;;, + 4;3; 0.784448, 3.021216,-1.494725;;, + 5;3; 0.784448, 3.021216,-1.494725;;, + 6;3; 0.784448, 3.021216,-1.494725;;, + 7;3; 0.784448, 3.021216,-1.494725;;, + 8;3; 0.784448, 3.021216,-1.494725;;, + 9;3; 0.784448, 3.021216,-1.494725;;, + 10;3; 0.784448, 3.021216,-1.494725;;, + 11;3; 0.784448, 3.021216,-1.494725;;, + 12;3; 0.784448, 3.021216,-1.494725;;, + 13;3; 0.784448, 3.021216,-1.494725;;, + 14;3; 0.784448, 3.021216,-1.494725;;, + 15;3; 0.784448, 3.021216,-1.494725;;, + 16;3; 0.784448, 3.021216,-1.494725;;, + 17;3; 0.784448, 3.021216,-1.494725;;, + 18;3; 0.784448, 3.021216,-1.494725;;, + 19;3; 0.784448, 3.021216,-1.494725;;, + 20;3; 0.784448, 3.021216,-1.494725;;, + 21;3; 0.784448, 3.021216,-1.494725;;, + 22;3; 0.784448, 3.021216,-1.494725;;, + 23;3; 0.784448, 3.021216,-1.494725;;, + 24;3; 0.784448, 3.021216,-1.494725;;, + 25;3; 0.784448, 3.021216,-1.494725;;, + 26;3; 0.784448, 3.021216,-1.494725;;, + 27;3; 0.784448, 3.021216,-1.494725;;, + 28;3; 0.784448, 3.021216,-1.494725;;, + 29;3; 0.784448, 3.021216,-1.494725;;, + 30;3; 0.784448, 3.021216,-1.494725;;, + 31;3; 0.784448, 3.021216,-1.494725;;, + 32;3; 0.784448, 3.021216,-1.494725;;, + 33;3; 0.784448, 3.021216,-1.494725;;, + 34;3; 0.784448, 3.021216,-1.494725;;, + 35;3; 0.784448, 3.021216,-1.494725;;, + 36;3; 0.784448, 3.021216,-1.494725;;, + 37;3; 0.784448, 3.021216,-1.494725;;, + 38;3; 0.784448, 3.021216,-1.494725;;, + 39;3; 0.784448, 3.021216,-1.494725;;, + 40;3; 0.784448, 3.021216,-1.494725;;, + 41;3; 0.784448, 3.021216,-1.494725;;, + 42;3; 0.784448, 3.021216,-1.494725;;, + 43;3; 0.784448, 3.021216,-1.494725;;, + 44;3; 0.784448, 3.021216,-1.494725;;, + 45;3; 0.784448, 3.021216,-1.494725;;, + 46;3; 0.784448, 3.021216,-1.494725;;, + 47;3; 0.784448, 3.021216,-1.494725;;, + 48;3; 0.784448, 3.021216,-1.494725;;, + 49;3; 0.784448, 3.021216,-1.494725;;, + 50;3; 0.784448, 3.021216,-1.494725;;, + 51;3; 0.784448, 3.021216,-1.494725;;, + 52;3; 0.784448, 3.021216,-1.494725;;, + 53;3; 0.784448, 3.021216,-1.494725;;, + 54;3; 0.784448, 3.021216,-1.494725;;, + 55;3; 0.784448, 3.021216,-1.494725;;, + 56;3; 0.784448, 3.021216,-1.494725;;, + 57;3; 0.784448, 3.021216,-1.494725;;, + 58;3; 0.784448, 3.021216,-1.494725;;, + 59;3; 0.784448, 3.021216,-1.494725;;, + 60;3; 0.784448, 3.021216,-1.494725;;, + 61;3; 0.784448, 3.021216,-1.494725;;, + 62;3; 0.784448, 3.021216,-1.494725;;, + 63;3; 0.784448, 3.021216,-1.494725;;, + 64;3; 0.784448, 3.021216,-1.494725;;, + 65;3; 0.784448, 3.021216,-1.494725;;, + 66;3; 0.784448, 3.021216,-1.494725;;, + 67;3; 0.784448, 3.021216,-1.494725;;, + 68;3; 0.784448, 3.021216,-1.494725;;, + 69;3; 0.784448, 3.021216,-1.494725;;, + 70;3; 0.784448, 3.021216,-1.494725;;, + 71;3; 0.784448, 3.021216,-1.494725;;, + 72;3; 0.784448, 3.021216,-1.494725;;, + 73;3; 0.784448, 3.021216,-1.494725;;, + 74;3; 0.784448, 3.021216,-1.494725;;, + 75;3; 0.784448, 3.021216,-1.494725;;, + 76;3; 0.784448, 3.021216,-1.494725;;, + 77;3; 0.784448, 3.021216,-1.494725;;, + 78;3; 0.784448, 3.021216,-1.494725;;, + 79;3; 0.784448, 3.021216,-1.494725;;, + 80;3; 0.784448, 3.021216,-1.494725;;, + 81;3; 0.784448, 3.021216,-1.494725;;, + 82;3; 0.784448, 3.021216,-1.494725;;, + 83;3; 0.784448, 3.021216,-1.494725;;, + 84;3; 0.784448, 3.021216,-1.494725;;, + 85;3; 0.784448, 3.021216,-1.494725;;, + 86;3; 0.784448, 3.021216,-1.494725;;, + 87;3; 0.784448, 3.021216,-1.494725;;, + 88;3; 0.784448, 3.021216,-1.494725;;, + 89;3; 0.784448, 3.021216,-1.494725;;, + 90;3; 0.784448, 3.021216,-1.494725;;, + 91;3; 0.784448, 3.021216,-1.494725;;, + 92;3; 0.784448, 3.021216,-1.494725;;, + 93;3; 0.784448, 3.021216,-1.494725;;, + 94;3; 0.784448, 3.021216,-1.494725;;, + 95;3; 0.784448, 3.021216,-1.494725;;, + 96;3; 0.784448, 3.021216,-1.494725;;, + 97;3; 0.784448, 3.021216,-1.494725;;, + 98;3; 0.784448, 3.021216,-1.494725;;, + 99;3; 0.784448, 3.021216,-1.494725;;, + 100;3; 0.784448, 3.021216,-1.494725;;, + 101;3; 0.784448, 3.021216,-1.494725;;, + 102;3; 0.784448, 3.021216,-1.494725;;, + 103;3; 0.784448, 3.021216,-1.494725;;, + 104;3; 0.784448, 3.021216,-1.494725;;, + 105;3; 0.784448, 3.021216,-1.494725;;, + 106;3; 0.784448, 3.021216,-1.494725;;, + 107;3; 0.784448, 3.021216,-1.494725;;, + 108;3; 0.784448, 3.021216,-1.494725;;, + 109;3; 0.784448, 3.021216,-1.494725;;, + 110;3; 0.784448, 3.021216,-1.494725;;, + 111;3; 0.784448, 3.021216,-1.494725;;, + 112;3; 0.784448, 3.021216,-1.494725;;, + 113;3; 0.784448, 3.021216,-1.494725;;, + 114;3; 0.784448, 3.021216,-1.494725;;, + 115;3; 0.784448, 3.021216,-1.494725;;, + 116;3; 0.784448, 3.021216,-1.494725;;, + 117;3; 0.784448, 3.021216,-1.494725;;, + 118;3; 0.784448, 3.021216,-1.494725;;, + 119;3; 0.784448, 3.021216,-1.494725;;, + 120;3; 0.784448, 3.021216,-1.494725;;, + 121;3; 0.784448, 3.021216,-1.494725;;, + 122;3; 0.784448, 3.021216,-1.494725;;, + 123;3; 0.784448, 3.021216,-1.494725;;, + 124;3; 0.784448, 3.021216,-1.494725;;, + 125;3; 0.784448, 3.021216,-1.494725;;, + 126;3; 0.784448, 3.021216,-1.494725;;, + 127;3; 0.784448, 3.021216,-1.494725;;, + 128;3; 0.784448, 3.021216,-1.494725;;, + 129;3; 0.784448, 3.021216,-1.494725;;, + 130;3; 0.784448, 3.021216,-1.494725;;, + 131;3; 0.784448, 3.021216,-1.494725;;, + 132;3; 0.784448, 3.021216,-1.494725;;, + 133;3; 0.784448, 3.021216,-1.494725;;, + 134;3; 0.784448, 3.021216,-1.494725;;, + 135;3; 0.784448, 3.021216,-1.494725;;; + } + AnimationKey { //Rotation + 0; + 136; + 0;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 1;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 2;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 3;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 4;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 5;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 6;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 7;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 8;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 9;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 10;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 11;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 12;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 13;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 14;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 15;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 16;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 17;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 18;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 19;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 20;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 21;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 22;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 23;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 24;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 25;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 26;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 27;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 28;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 29;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 30;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 31;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 32;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 33;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 34;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 35;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 36;4; -0.483955,-0.513539, 0.483955,-0.513539;;, + 37;4; -0.499536,-0.493071, 0.499536,-0.493071;;, + 38;4; -0.524060,-0.460853, 0.524060,-0.460853;;, + 39;4; -0.553930,-0.421610, 0.553930,-0.421610;;, + 40;4; -0.583796,-0.382370, 0.583796,-0.382370;;, + 41;4; -0.608313,-0.350158, 0.608313,-0.350158;;, + 42;4; -0.623887,-0.329697, 0.623887,-0.329697;;, + 43;4; -0.629105,-0.322842, 0.629105,-0.322841;;, + 44;4; -0.626395,-0.325558, 0.626395,-0.325558;;, + 45;4; -0.618208,-0.333776, 0.618207,-0.333776;;, + 46;4; -0.604601,-0.347469, 0.604601,-0.347469;;, + 47;4; -0.585875,-0.366370, 0.585875,-0.366370;;, + 48;4; -0.562643,-0.389905, 0.562643,-0.389905;;, + 49;4; -0.535871,-0.417154, 0.535871,-0.417154;;, + 50;4; -0.506861,-0.446856, 0.506861,-0.446856;;, + 51;4; -0.477161,-0.477500, 0.477161,-0.477500;;, + 52;4; -0.448405,-0.507479, 0.448405,-0.507479;;, + 53;4; -0.422131,-0.535269, 0.422131,-0.535268;;, + 54;4; -0.399618,-0.559587, 0.399618,-0.559587;;, + 55;4; -0.381808,-0.579482, 0.381808,-0.579482;;, + 56;4; -0.369282,-0.594349, 0.369282,-0.594349;;, + 57;4; -0.362313,-0.603892, 0.362313,-0.603892;;, + 58;4; -0.360931,-0.608053, 0.360931,-0.608053;;, + 59;4; -0.367377,-0.605275, 0.367377,-0.605275;;, + 60;4; -0.383708,-0.594080, 0.383708,-0.594080;;, + 61;4; -0.407762,-0.576122, 0.407762,-0.576122;;, + 62;4; -0.434653,-0.555326, 0.434653,-0.555326;;, + 63;4; -0.458181,-0.536793, 0.458181,-0.536793;;, + 64;4; -0.473553,-0.524551, 0.473553,-0.524551;;, + 65;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 66;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 67;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 68;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 69;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 70;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 71;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 72;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 73;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 74;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 75;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 76;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 77;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 78;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 79;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 80;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 81;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 82;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 83;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 84;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 85;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 86;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 87;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 88;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 89;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 90;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 91;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 92;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 93;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 94;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 95;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 96;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 97;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 98;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 99;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 100;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 101;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 102;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 103;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 104;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 105;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 106;4; -0.486441,-0.505692, 0.486441,-0.505691;;, + 107;4; -0.509428,-0.461814, 0.509428,-0.461814;;, + 108;4; -0.545587,-0.392767, 0.545587,-0.392767;;, + 109;4; -0.589608,-0.308682, 0.589608,-0.308682;;, + 110;4; -0.633619,-0.224607, 0.633619,-0.224607;;, + 111;4; -0.669755,-0.155581, 0.669755,-0.155581;;, + 112;4; -0.692721,-0.111723, 0.692721,-0.111723;;, + 113;4; -0.700419,-0.097025, 0.700419,-0.097025;;, + 114;4; -0.696763,-0.100406, 0.696763,-0.100406;;, + 115;4; -0.676592,-0.119091, 0.676592,-0.119091;;, + 116;4; -0.641210,-0.152012, 0.641210,-0.152012;;, + 117;4; -0.593929,-0.196363, 0.593929,-0.196363;;, + 118;4; -0.538312,-0.249035, 0.538312,-0.249035;;, + 119;4; -0.477783,-0.307026, 0.477783,-0.307026;;, + 120;4; -0.415539,-0.367521, 0.415539,-0.367521;;, + 121;4; -0.354482,-0.427953, 0.354482,-0.427953;;, + 122;4; -0.297180,-0.486038, 0.297180,-0.486038;;, + 123;4; -0.245847,-0.539794, 0.245847,-0.539794;;, + 124;4; -0.202350,-0.587542, 0.202350,-0.587542;;, + 125;4; -0.168222,-0.627892, 0.168222,-0.627892;;, + 126;4; -0.144686,-0.659719, 0.144686,-0.659719;;, + 127;4; -0.132693,-0.682144, 0.132693,-0.682144;;, + 128;4; -0.132952,-0.694495, 0.132953,-0.694495;;, + 129;4; -0.153888,-0.692321, 0.153888,-0.692321;;, + 130;4; -0.202733,-0.671710, 0.202733,-0.671710;;, + 131;4; -0.273188,-0.636020, 0.273188,-0.636020;;, + 132;4; -0.351280,-0.593466, 0.351280,-0.593466;;, + 133;4; -0.419352,-0.554921, 0.419352,-0.554921;;, + 134;4; -0.463768,-0.529189, 0.463768,-0.529189;;, + 135;4; -0.478735,-0.520397, 0.478735,-0.520397;;; + } + AnimationKey { //Scale + 1; + 136; + 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;;; + } + } + Animation { + {Armature_noga4} + AnimationKey { //Position + 2; + 136; + 0;3; -0.923299,-0.011159,-1.205961;;, + 1;3; -0.923299,-0.011159,-1.205961;;, + 2;3; -0.923299,-0.011159,-1.205961;;, + 3;3; -0.923299,-0.011159,-1.205961;;, + 4;3; -0.923299,-0.011159,-1.205961;;, + 5;3; -0.923299,-0.011159,-1.205961;;, + 6;3; -0.923299,-0.011159,-1.205961;;, + 7;3; -0.923299,-0.011159,-1.205961;;, + 8;3; -0.923299,-0.011159,-1.205961;;, + 9;3; -0.923299,-0.011159,-1.205961;;, + 10;3; -0.923299,-0.011159,-1.205961;;, + 11;3; -0.923299,-0.011159,-1.205961;;, + 12;3; -0.923299,-0.011159,-1.205961;;, + 13;3; -0.923299,-0.011159,-1.205961;;, + 14;3; -0.923299,-0.011159,-1.205961;;, + 15;3; -0.923299,-0.011159,-1.205961;;, + 16;3; -0.923299,-0.011159,-1.205961;;, + 17;3; -0.923299,-0.011159,-1.205961;;, + 18;3; -0.923299,-0.011159,-1.205961;;, + 19;3; -0.923299,-0.011159,-1.205961;;, + 20;3; -0.923299,-0.011159,-1.205961;;, + 21;3; -0.923299,-0.011159,-1.205961;;, + 22;3; -0.923299,-0.011159,-1.205961;;, + 23;3; -0.923299,-0.011159,-1.205961;;, + 24;3; -0.923299,-0.011159,-1.205961;;, + 25;3; -0.923299,-0.011159,-1.205961;;, + 26;3; -0.923299,-0.011159,-1.205961;;, + 27;3; -0.923299,-0.011159,-1.205961;;, + 28;3; -0.923299,-0.011159,-1.205961;;, + 29;3; -0.923299,-0.011159,-1.205961;;, + 30;3; -0.923299,-0.011159,-1.205961;;, + 31;3; -0.923299,-0.011159,-1.205961;;, + 32;3; -0.923299,-0.011159,-1.205961;;, + 33;3; -0.923299,-0.011159,-1.205961;;, + 34;3; -0.923299,-0.011159,-1.205961;;, + 35;3; -0.923299,-0.011159,-1.205961;;, + 36;3; -0.923299,-0.011159,-1.205961;;, + 37;3; -0.923299,-0.011159,-1.205961;;, + 38;3; -0.923299,-0.011159,-1.205961;;, + 39;3; -0.923299,-0.011159,-1.205961;;, + 40;3; -0.923299,-0.011159,-1.205961;;, + 41;3; -0.923299,-0.011159,-1.205961;;, + 42;3; -0.923299,-0.011159,-1.205961;;, + 43;3; -0.923299,-0.011159,-1.205961;;, + 44;3; -0.923299,-0.011159,-1.205961;;, + 45;3; -0.923299,-0.011159,-1.205961;;, + 46;3; -0.923299,-0.011159,-1.205961;;, + 47;3; -0.923299,-0.011159,-1.205961;;, + 48;3; -0.923299,-0.011159,-1.205961;;, + 49;3; -0.923299,-0.011159,-1.205961;;, + 50;3; -0.923299,-0.011159,-1.205961;;, + 51;3; -0.923299,-0.011159,-1.205961;;, + 52;3; -0.923299,-0.011159,-1.205961;;, + 53;3; -0.923299,-0.011159,-1.205961;;, + 54;3; -0.923299,-0.011159,-1.205961;;, + 55;3; -0.923299,-0.011159,-1.205961;;, + 56;3; -0.923299,-0.011159,-1.205961;;, + 57;3; -0.923299,-0.011159,-1.205961;;, + 58;3; -0.923299,-0.011159,-1.205961;;, + 59;3; -0.923299,-0.011159,-1.205961;;, + 60;3; -0.923299,-0.011159,-1.205961;;, + 61;3; -0.923299,-0.011159,-1.205961;;, + 62;3; -0.923299,-0.011159,-1.205961;;, + 63;3; -0.923299,-0.011159,-1.205961;;, + 64;3; -0.923299,-0.011159,-1.205961;;, + 65;3; -0.923299,-0.011159,-1.205961;;, + 66;3; -0.923299,-0.011159,-1.205961;;, + 67;3; -0.923299,-0.011159,-1.205961;;, + 68;3; -0.923299,-0.011159,-1.205961;;, + 69;3; -0.923299,-0.011159,-1.205961;;, + 70;3; -0.923299,-0.011159,-1.205961;;, + 71;3; -0.923299,-0.011159,-1.205961;;, + 72;3; -0.923299,-0.011159,-1.205961;;, + 73;3; -0.923299,-0.011159,-1.205961;;, + 74;3; -0.923299,-0.011159,-1.205961;;, + 75;3; -0.923299,-0.011159,-1.205961;;, + 76;3; -0.923299,-0.011159,-1.205961;;, + 77;3; -0.923299,-0.011159,-1.205961;;, + 78;3; -0.923299,-0.011159,-1.205961;;, + 79;3; -0.923299,-0.011159,-1.205961;;, + 80;3; -0.923299,-0.011159,-1.205961;;, + 81;3; -0.923299,-0.011159,-1.205961;;, + 82;3; -0.923299,-0.011159,-1.205961;;, + 83;3; -0.923299,-0.011159,-1.205961;;, + 84;3; -0.923299,-0.011159,-1.205961;;, + 85;3; -0.923299,-0.011159,-1.205961;;, + 86;3; -0.923299,-0.011159,-1.205961;;, + 87;3; -0.923299,-0.011159,-1.205961;;, + 88;3; -0.923299,-0.011159,-1.205961;;, + 89;3; -0.923299,-0.011159,-1.205961;;, + 90;3; -0.923299,-0.011159,-1.205961;;, + 91;3; -0.923299,-0.011159,-1.205961;;, + 92;3; -0.923299,-0.011159,-1.205961;;, + 93;3; -0.923299,-0.011159,-1.205961;;, + 94;3; -0.923299,-0.011159,-1.205961;;, + 95;3; -0.923299,-0.011159,-1.205961;;, + 96;3; -0.923299,-0.011159,-1.205961;;, + 97;3; -0.923299,-0.011159,-1.205961;;, + 98;3; -0.923299,-0.011159,-1.205961;;, + 99;3; -0.923299,-0.011159,-1.205961;;, + 100;3; -0.923299,-0.011159,-1.205961;;, + 101;3; -0.923299,-0.011159,-1.205961;;, + 102;3; -0.923299,-0.011159,-1.205961;;, + 103;3; -0.923299,-0.011159,-1.205961;;, + 104;3; -0.923299,-0.011159,-1.205961;;, + 105;3; -0.923299,-0.011159,-1.205961;;, + 106;3; -0.923299,-0.011159,-1.205961;;, + 107;3; -0.923299,-0.011159,-1.205961;;, + 108;3; -0.923299,-0.011159,-1.205961;;, + 109;3; -0.923299,-0.011159,-1.205961;;, + 110;3; -0.923299,-0.011159,-1.205961;;, + 111;3; -0.923299,-0.011159,-1.205961;;, + 112;3; -0.923299,-0.011159,-1.205961;;, + 113;3; -0.923299,-0.011159,-1.205961;;, + 114;3; -0.923299,-0.011159,-1.205961;;, + 115;3; -0.923299,-0.011159,-1.205961;;, + 116;3; -0.923299,-0.011159,-1.205961;;, + 117;3; -0.923299,-0.011159,-1.205961;;, + 118;3; -0.923299,-0.011159,-1.205961;;, + 119;3; -0.923299,-0.011159,-1.205961;;, + 120;3; -0.923299,-0.011159,-1.205961;;, + 121;3; -0.923299,-0.011159,-1.205961;;, + 122;3; -0.923299,-0.011159,-1.205961;;, + 123;3; -0.923299,-0.011159,-1.205961;;, + 124;3; -0.923299,-0.011159,-1.205961;;, + 125;3; -0.923299,-0.011159,-1.205961;;, + 126;3; -0.923299,-0.011159,-1.205961;;, + 127;3; -0.923299,-0.011159,-1.205961;;, + 128;3; -0.923299,-0.011159,-1.205961;;, + 129;3; -0.923299,-0.011159,-1.205961;;, + 130;3; -0.923299,-0.011159,-1.205961;;, + 131;3; -0.923299,-0.011159,-1.205961;;, + 132;3; -0.923299,-0.011159,-1.205961;;, + 133;3; -0.923299,-0.011159,-1.205961;;, + 134;3; -0.923299,-0.011159,-1.205961;;, + 135;3; -0.923299,-0.011159,-1.205961;;; + } + AnimationKey { //Rotation + 0; + 136; + 0;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 1;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 2;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 3;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 4;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 5;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 6;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 7;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 8;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 9;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 10;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 11;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 12;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 13;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 14;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 15;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 16;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 17;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 18;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 19;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 20;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 21;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 22;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 23;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 24;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 25;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 26;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 27;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 28;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 29;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 30;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 31;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 32;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 33;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 34;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 35;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 36;4; -0.482184,-0.516822, 0.482185,-0.516822;;, + 37;4; -0.492450,-0.506118, 0.492450,-0.506118;;, + 38;4; -0.508534,-0.489186, 0.508534,-0.489186;;, + 39;4; -0.527984,-0.468405, 0.527984,-0.468405;;, + 40;4; -0.547196,-0.447367, 0.547196,-0.447367;;, + 41;4; -0.562604,-0.429702, 0.562604,-0.429702;;, + 42;4; -0.571844,-0.417885, 0.571844,-0.417885;;, + 43;4; -0.574016,-0.412923, 0.574016,-0.412923;;, + 44;4; -0.569663,-0.413978, 0.569663,-0.413978;;, + 45;4; -0.559287,-0.420193, 0.559287,-0.420193;;, + 46;4; -0.542949,-0.431542, 0.542949,-0.431542;;, + 47;4; -0.520977,-0.447777, 0.520977,-0.447776;;, + 48;4; -0.494044,-0.468360, 0.494044,-0.468360;;, + 49;4; -0.463210,-0.492430, 0.463210,-0.492430;;, + 50;4; -0.429904,-0.518806, 0.429904,-0.518806;;, + 51;4; -0.395827,-0.546074, 0.395827,-0.546074;;, + 52;4; -0.362775,-0.572726, 0.362775,-0.572726;;, + 53;4; -0.332436,-0.597335, 0.332436,-0.597335;;, + 54;4; -0.306220,-0.618699, 0.306220,-0.618698;;, + 55;4; -0.285160,-0.635924, 0.285160,-0.635924;;, + 56;4; -0.269898,-0.648444, 0.269898,-0.648443;;, + 57;4; -0.260736,-0.655978, 0.260736,-0.655978;;, + 58;4; -0.257707,-0.658473, 0.257707,-0.658473;;, + 59;4; -0.267733,-0.652210, 0.267733,-0.652210;;, + 60;4; -0.297392,-0.633683, 0.297392,-0.633683;;, + 61;4; -0.342579,-0.605457, 0.342579,-0.605457;;, + 62;4; -0.393836,-0.573438, 0.393836,-0.573438;;, + 63;4; -0.439033,-0.545202, 0.439033,-0.545202;;, + 64;4; -0.468704,-0.526665, 0.468704,-0.526665;;, + 65;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 66;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 67;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 68;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 69;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 70;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 71;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 72;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 73;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 74;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 75;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 76;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 77;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 78;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 79;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 80;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 81;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 82;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 83;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 84;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 85;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 86;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 87;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 88;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 89;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 90;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 91;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 92;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 93;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 94;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 95;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 96;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 97;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 98;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 99;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 100;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 101;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 102;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 103;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 104;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 105;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 106;4; -0.486744,-0.509400, 0.486744,-0.509400;;, + 107;4; -0.510455,-0.476386, 0.510455,-0.476386;;, + 108;4; -0.547311,-0.423935, 0.547311,-0.423935;;, + 109;4; -0.591333,-0.359126, 0.591333,-0.359126;;, + 110;4; -0.633927,-0.292779, 0.633927,-0.292779;;, + 111;4; -0.666718,-0.235944, 0.666718,-0.235944;;, + 112;4; -0.684263,-0.196259, 0.684263,-0.196259;;, + 113;4; -0.684609,-0.176946, 0.684609,-0.176946;;, + 114;4; -0.672960,-0.172187, 0.672960,-0.172187;;, + 115;4; -0.645206,-0.185654, 0.645206,-0.185654;;, + 116;4; -0.601532,-0.214884, 0.601532,-0.214884;;, + 117;4; -0.544660,-0.255951, 0.544660,-0.255951;;, + 118;4; -0.478481,-0.305578, 0.478481,-0.305578;;, + 119;4; -0.406739,-0.360603, 0.406739,-0.360603;;, + 120;4; -0.332928,-0.418069, 0.332928,-0.418069;;, + 121;4; -0.260224,-0.475279, 0.260224,-0.475279;;, + 122;4; -0.191436,-0.529837, 0.191436,-0.529837;;, + 123;4; -0.128993,-0.579668, 0.128993,-0.579668;;, + 124;4; -0.074942,-0.623014, 0.074942,-0.623014;;, + 125;4; -0.030964,-0.658422, 0.030964,-0.658422;;, + 126;4; 0.001591,-0.684719,-0.001591,-0.684719;;, + 127;4; 0.021676,-0.700988,-0.021675,-0.700988;;, + 128;4; 0.028506,-0.706532,-0.028506,-0.706532;;, + 129;4; 0.005515,-0.698107,-0.005515,-0.698107;;, + 130;4; -0.062432,-0.673232, 0.062432,-0.673232;;, + 131;4; -0.165922,-0.635355, 0.165922,-0.635355;;, + 132;4; -0.283421,-0.592296, 0.283422,-0.592296;;, + 133;4; -0.387246,-0.554146, 0.387246,-0.554146;;, + 134;4; -0.455581,-0.528956, 0.455581,-0.528956;;, + 135;4; -0.478735,-0.520397, 0.478735,-0.520397;;; + } + AnimationKey { //Scale + 1; + 136; + 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;;; + } + } + Animation { + {Armature_noga2} + AnimationKey { //Position + 2; + 136; + 0;3; -0.921735, 3.022715,-1.476782;;, + 1;3; -0.921735, 3.022715,-1.476782;;, + 2;3; -0.921735, 3.022715,-1.476782;;, + 3;3; -0.921735, 3.022715,-1.476782;;, + 4;3; -0.921735, 3.022715,-1.476782;;, + 5;3; -0.921735, 3.022715,-1.476782;;, + 6;3; -0.921735, 3.022715,-1.476782;;, + 7;3; -0.921735, 3.022715,-1.476782;;, + 8;3; -0.921735, 3.022715,-1.476782;;, + 9;3; -0.921735, 3.022715,-1.476782;;, + 10;3; -0.921735, 3.022715,-1.476782;;, + 11;3; -0.921735, 3.022715,-1.476782;;, + 12;3; -0.921735, 3.022715,-1.476782;;, + 13;3; -0.921735, 3.022715,-1.476782;;, + 14;3; -0.921735, 3.022715,-1.476782;;, + 15;3; -0.921735, 3.022715,-1.476782;;, + 16;3; -0.921735, 3.022715,-1.476782;;, + 17;3; -0.921735, 3.022715,-1.476782;;, + 18;3; -0.921735, 3.022715,-1.476782;;, + 19;3; -0.921735, 3.022715,-1.476782;;, + 20;3; -0.921735, 3.022715,-1.476782;;, + 21;3; -0.921735, 3.022715,-1.476782;;, + 22;3; -0.921735, 3.022715,-1.476782;;, + 23;3; -0.921735, 3.022715,-1.476782;;, + 24;3; -0.921735, 3.022715,-1.476782;;, + 25;3; -0.921735, 3.022715,-1.476782;;, + 26;3; -0.921735, 3.022715,-1.476782;;, + 27;3; -0.921735, 3.022715,-1.476782;;, + 28;3; -0.921735, 3.022715,-1.476782;;, + 29;3; -0.921735, 3.022715,-1.476782;;, + 30;3; -0.921735, 3.022715,-1.476782;;, + 31;3; -0.921735, 3.022715,-1.476782;;, + 32;3; -0.921735, 3.022715,-1.476782;;, + 33;3; -0.921735, 3.022715,-1.476782;;, + 34;3; -0.921735, 3.022715,-1.476782;;, + 35;3; -0.921735, 3.022715,-1.476782;;, + 36;3; -0.921735, 3.022715,-1.476782;;, + 37;3; -0.921735, 3.022715,-1.476782;;, + 38;3; -0.921735, 3.022716,-1.476782;;, + 39;3; -0.921735, 3.022715,-1.476782;;, + 40;3; -0.921735, 3.022715,-1.476782;;, + 41;3; -0.921735, 3.022715,-1.476782;;, + 42;3; -0.921735, 3.022715,-1.476782;;, + 43;3; -0.921735, 3.022715,-1.476782;;, + 44;3; -0.921735, 3.022715,-1.476782;;, + 45;3; -0.921735, 3.022715,-1.476782;;, + 46;3; -0.921735, 3.022715,-1.476782;;, + 47;3; -0.921735, 3.022715,-1.476782;;, + 48;3; -0.921735, 3.022715,-1.476782;;, + 49;3; -0.921735, 3.022715,-1.476782;;, + 50;3; -0.921735, 3.022715,-1.476782;;, + 51;3; -0.921735, 3.022715,-1.476782;;, + 52;3; -0.921735, 3.022715,-1.476782;;, + 53;3; -0.921735, 3.022715,-1.476782;;, + 54;3; -0.921735, 3.022715,-1.476782;;, + 55;3; -0.921735, 3.022715,-1.476782;;, + 56;3; -0.921735, 3.022715,-1.476782;;, + 57;3; -0.921735, 3.022715,-1.476782;;, + 58;3; -0.921735, 3.022715,-1.476782;;, + 59;3; -0.921735, 3.022715,-1.476782;;, + 60;3; -0.921735, 3.022716,-1.476782;;, + 61;3; -0.921735, 3.022715,-1.476782;;, + 62;3; -0.921735, 3.022715,-1.476782;;, + 63;3; -0.921735, 3.022715,-1.476782;;, + 64;3; -0.921735, 3.022715,-1.476782;;, + 65;3; -0.921735, 3.022715,-1.476782;;, + 66;3; -0.921735, 3.022715,-1.476782;;, + 67;3; -0.921735, 3.022715,-1.476782;;, + 68;3; -0.921735, 3.022715,-1.476782;;, + 69;3; -0.921735, 3.022715,-1.476782;;, + 70;3; -0.921735, 3.022715,-1.476782;;, + 71;3; -0.921735, 3.022715,-1.476782;;, + 72;3; -0.921735, 3.022715,-1.476782;;, + 73;3; -0.921735, 3.022715,-1.476782;;, + 74;3; -0.921735, 3.022715,-1.476782;;, + 75;3; -0.921735, 3.022715,-1.476782;;, + 76;3; -0.921735, 3.022715,-1.476782;;, + 77;3; -0.921735, 3.022715,-1.476782;;, + 78;3; -0.921735, 3.022715,-1.476782;;, + 79;3; -0.921735, 3.022715,-1.476782;;, + 80;3; -0.921735, 3.022715,-1.476782;;, + 81;3; -0.921735, 3.022715,-1.476782;;, + 82;3; -0.921735, 3.022715,-1.476782;;, + 83;3; -0.921735, 3.022715,-1.476782;;, + 84;3; -0.921735, 3.022715,-1.476782;;, + 85;3; -0.921735, 3.022715,-1.476782;;, + 86;3; -0.921735, 3.022715,-1.476782;;, + 87;3; -0.921735, 3.022715,-1.476782;;, + 88;3; -0.921735, 3.022715,-1.476782;;, + 89;3; -0.921735, 3.022715,-1.476782;;, + 90;3; -0.921735, 3.022715,-1.476782;;, + 91;3; -0.921735, 3.022715,-1.476782;;, + 92;3; -0.921735, 3.022715,-1.476782;;, + 93;3; -0.921735, 3.022715,-1.476782;;, + 94;3; -0.921735, 3.022715,-1.476782;;, + 95;3; -0.921735, 3.022715,-1.476782;;, + 96;3; -0.921735, 3.022715,-1.476782;;, + 97;3; -0.921735, 3.022715,-1.476782;;, + 98;3; -0.921735, 3.022715,-1.476782;;, + 99;3; -0.921735, 3.022715,-1.476782;;, + 100;3; -0.921735, 3.022715,-1.476782;;, + 101;3; -0.921735, 3.022715,-1.476782;;, + 102;3; -0.921735, 3.022715,-1.476782;;, + 103;3; -0.921735, 3.022715,-1.476782;;, + 104;3; -0.921735, 3.022715,-1.476782;;, + 105;3; -0.921735, 3.022715,-1.476782;;, + 106;3; -0.921735, 3.022715,-1.476782;;, + 107;3; -0.921735, 3.022715,-1.476782;;, + 108;3; -0.921735, 3.022715,-1.476782;;, + 109;3; -0.921735, 3.022715,-1.476782;;, + 110;3; -0.921735, 3.022715,-1.476782;;, + 111;3; -0.921735, 3.022716,-1.476782;;, + 112;3; -0.921735, 3.022715,-1.476782;;, + 113;3; -0.921735, 3.022715,-1.476782;;, + 114;3; -0.921735, 3.022715,-1.476782;;, + 115;3; -0.921735, 3.022715,-1.476782;;, + 116;3; -0.921735, 3.022715,-1.476782;;, + 117;3; -0.921735, 3.022715,-1.476782;;, + 118;3; -0.921735, 3.022715,-1.476782;;, + 119;3; -0.921735, 3.022715,-1.476782;;, + 120;3; -0.921735, 3.022715,-1.476782;;, + 121;3; -0.921735, 3.022716,-1.476782;;, + 122;3; -0.921735, 3.022715,-1.476782;;, + 123;3; -0.921735, 3.022715,-1.476782;;, + 124;3; -0.921735, 3.022716,-1.476782;;, + 125;3; -0.921735, 3.022715,-1.476782;;, + 126;3; -0.921735, 3.022715,-1.476782;;, + 127;3; -0.921735, 3.022715,-1.476782;;, + 128;3; -0.921735, 3.022715,-1.476782;;, + 129;3; -0.921735, 3.022715,-1.476782;;, + 130;3; -0.921735, 3.022715,-1.476782;;, + 131;3; -0.921735, 3.022715,-1.476782;;, + 132;3; -0.921735, 3.022715,-1.476782;;, + 133;3; -0.921735, 3.022715,-1.476782;;, + 134;3; -0.921735, 3.022715,-1.476782;;, + 135;3; -0.921735, 3.022715,-1.476782;;; + } + AnimationKey { //Rotation + 0; + 136; + 0;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 1;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 2;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 3;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 4;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 5;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 6;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 7;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 8;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 9;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 10;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 11;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 12;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 13;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 14;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 15;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 16;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 17;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 18;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 19;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 20;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 21;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 22;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 23;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 24;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 25;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 26;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 27;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 28;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 29;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 30;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 31;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 32;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 33;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 34;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 35;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 36;4; -0.473719,-0.524120, 0.473719,-0.524120;;, + 37;4; -0.458727,-0.535209, 0.458727,-0.535209;;, + 38;4; -0.435075,-0.552608, 0.435075,-0.552608;;, + 39;4; -0.406169,-0.573697, 0.406169,-0.573697;;, + 40;4; -0.377103,-0.594610, 0.377103,-0.594610;;, + 41;4; -0.352997,-0.611510, 0.352997,-0.611510;;, + 42;4; -0.337312,-0.621841, 0.337312,-0.621841;;, + 43;4; -0.331432,-0.624622, 0.331432,-0.624622;;, + 44;4; -0.333325,-0.621077, 0.333325,-0.621077;;, + 45;4; -0.340931,-0.612412, 0.340931,-0.612412;;, + 46;4; -0.354217,-0.598676, 0.354217,-0.598676;;, + 47;4; -0.372897,-0.580147, 0.372897,-0.580147;;, + 48;4; -0.396367,-0.557394, 0.396367,-0.557394;;, + 49;4; -0.423659,-0.531316, 0.423659,-0.531316;;, + 50;4; -0.453455,-0.503126, 0.453455,-0.503126;;, + 51;4; -0.484175,-0.474267, 0.484175,-0.474267;;, + 52;4; -0.514143,-0.446263, 0.514143,-0.446263;;, + 53;4; -0.541771,-0.420551, 0.541771,-0.420551;;, + 54;4; -0.565727,-0.398327, 0.565727,-0.398327;;, + 55;4; -0.585025,-0.380470, 0.585025,-0.380470;;, + 56;4; -0.599041,-0.367527, 0.599041,-0.367527;;, + 57;4; -0.607470,-0.359756, 0.607470,-0.359756;;, + 58;4; -0.610260,-0.357187, 0.610260,-0.357187;;, + 59;4; -0.604294,-0.364590, 0.604294,-0.364590;;, + 60;4; -0.586645,-0.386491, 0.586645,-0.386491;;, + 61;4; -0.559756,-0.419860, 0.559756,-0.419860;;, + 62;4; -0.529254,-0.457710, 0.529254,-0.457710;;, + 63;4; -0.502359,-0.491084, 0.502359,-0.491084;;, + 64;4; -0.484704,-0.512991, 0.484704,-0.512991;;, + 65;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 66;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 67;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 68;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 69;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 70;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 71;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 72;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 73;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 74;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 75;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 76;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 77;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 78;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 79;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 80;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 81;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 82;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 83;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 84;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 85;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 86;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 87;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 88;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 89;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 90;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 91;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 92;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 93;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 94;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 95;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 96;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 97;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 98;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 99;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 100;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 101;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 102;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 103;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 104;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 105;4; -0.478735,-0.520397, 0.478735,-0.520397;;, + 106;4; -0.469165,-0.526653, 0.469165,-0.526653;;, + 107;4; -0.440481,-0.545184, 0.440481,-0.545184;;, + 108;4; -0.395022,-0.574008, 0.395022,-0.574008;;, + 109;4; -0.339069,-0.608472, 0.339069,-0.608472;;, + 110;4; -0.282145,-0.641872, 0.282145,-0.641872;;, + 111;4; -0.233920,-0.667669, 0.233920,-0.667669;;, + 112;4; -0.201026,-0.681605, 0.201026,-0.681605;;, + 113;4; -0.186209,-0.682148, 0.186209,-0.682148;;, + 114;4; -0.184293,-0.673407, 0.184293,-0.673407;;, + 115;4; -0.198654,-0.652224, 0.198654,-0.652224;;, + 116;4; -0.227327,-0.618733, 0.227327,-0.618733;;, + 117;4; -0.266944,-0.575073, 0.266944,-0.575073;;, + 118;4; -0.314446,-0.524234, 0.314446,-0.524234;;, + 119;4; -0.366879,-0.469097, 0.366879,-0.469097;;, + 120;4; -0.421477,-0.412351, 0.421477,-0.412351;;, + 121;4; -0.475720,-0.356442, 0.475720,-0.356442;;, + 122;4; -0.527372,-0.303537, 0.527372,-0.303537;;, + 123;4; -0.574491,-0.255505, 0.574491,-0.255505;;, + 124;4; -0.615439,-0.213925, 0.615439,-0.213925;;, + 125;4; -0.648861,-0.180093, 0.648861,-0.180093;;, + 126;4; -0.673667,-0.155048, 0.673667,-0.155048;;, + 127;4; -0.689003,-0.139597, 0.689003,-0.139597;;, + 128;4; -0.694228,-0.134342, 0.694228,-0.134342;;, + 129;4; -0.684464,-0.151844, 0.684464,-0.151844;;, + 130;4; -0.655615,-0.203585, 0.655615,-0.203585;;, + 131;4; -0.611676,-0.282402, 0.611676,-0.282402;;, + 132;4; -0.561774,-0.371862, 0.561774,-0.371861;;, + 133;4; -0.517651,-0.450858, 0.517651,-0.450858;;, + 134;4; -0.488588,-0.502807, 0.488588,-0.502807;;, + 135;4; -0.478735,-0.520397, 0.478735,-0.520397;;; + } + AnimationKey { //Scale + 1; + 136; + 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;;; + } + } + Animation { + {Armature_hvost} + AnimationKey { //Position + 2; + 136; + 0;3; 0.105165,-0.291279, 0.358470;;, + 1;3; 0.105165,-0.291279, 0.358470;;, + 2;3; 0.105165,-0.291279, 0.358470;;, + 3;3; 0.105165,-0.291279, 0.358470;;, + 4;3; 0.105165,-0.291279, 0.358470;;, + 5;3; 0.105165,-0.291279, 0.358470;;, + 6;3; 0.105165,-0.291279, 0.358470;;, + 7;3; 0.105165,-0.291279, 0.358470;;, + 8;3; 0.105165,-0.291279, 0.358470;;, + 9;3; 0.105165,-0.291279, 0.358470;;, + 10;3; 0.105165,-0.291279, 0.358470;;, + 11;3; 0.105165,-0.291279, 0.358470;;, + 12;3; 0.105165,-0.291279, 0.358470;;, + 13;3; 0.105165,-0.291279, 0.358470;;, + 14;3; 0.105165,-0.291279, 0.358470;;, + 15;3; 0.105165,-0.291279, 0.358470;;, + 16;3; 0.105165,-0.291279, 0.358470;;, + 17;3; 0.105165,-0.291279, 0.358470;;, + 18;3; 0.105165,-0.291279, 0.358470;;, + 19;3; 0.105165,-0.291279, 0.358470;;, + 20;3; 0.105165,-0.291279, 0.358470;;, + 21;3; 0.105165,-0.291279, 0.358470;;, + 22;3; 0.105165,-0.291279, 0.358470;;, + 23;3; 0.105165,-0.291279, 0.358470;;, + 24;3; 0.105165,-0.291279, 0.358470;;, + 25;3; 0.105165,-0.291279, 0.358470;;, + 26;3; 0.105165,-0.291279, 0.358470;;, + 27;3; 0.105165,-0.291279, 0.358470;;, + 28;3; 0.105165,-0.291279, 0.358470;;, + 29;3; 0.105165,-0.291279, 0.358470;;, + 30;3; 0.105165,-0.291279, 0.358470;;, + 31;3; 0.105165,-0.291279, 0.358470;;, + 32;3; 0.105165,-0.291279, 0.358470;;, + 33;3; 0.105165,-0.291279, 0.358470;;, + 34;3; 0.105165,-0.291279, 0.358470;;, + 35;3; 0.105165,-0.291279, 0.358470;;, + 36;3; 0.105165,-0.291279, 0.358470;;, + 37;3; 0.105165,-0.291279, 0.358470;;, + 38;3; 0.105165,-0.291279, 0.358470;;, + 39;3; 0.105165,-0.291279, 0.358470;;, + 40;3; 0.105165,-0.291279, 0.358470;;, + 41;3; 0.105165,-0.291279, 0.358470;;, + 42;3; 0.105165,-0.291279, 0.358470;;, + 43;3; 0.105165,-0.291279, 0.358470;;, + 44;3; 0.105165,-0.291279, 0.358470;;, + 45;3; 0.105165,-0.291279, 0.358470;;, + 46;3; 0.105165,-0.291279, 0.358470;;, + 47;3; 0.105165,-0.291279, 0.358470;;, + 48;3; 0.105165,-0.291279, 0.358470;;, + 49;3; 0.105165,-0.291279, 0.358470;;, + 50;3; 0.105165,-0.291279, 0.358470;;, + 51;3; 0.105165,-0.291279, 0.358470;;, + 52;3; 0.105165,-0.291279, 0.358470;;, + 53;3; 0.105165,-0.291279, 0.358470;;, + 54;3; 0.105165,-0.291279, 0.358470;;, + 55;3; 0.105165,-0.291279, 0.358470;;, + 56;3; 0.105165,-0.291279, 0.358470;;, + 57;3; 0.105165,-0.291279, 0.358470;;, + 58;3; 0.105165,-0.291279, 0.358470;;, + 59;3; 0.105165,-0.291279, 0.358470;;, + 60;3; 0.105165,-0.291279, 0.358470;;, + 61;3; 0.105165,-0.291279, 0.358470;;, + 62;3; 0.105165,-0.291279, 0.358470;;, + 63;3; 0.105165,-0.291279, 0.358470;;, + 64;3; 0.105165,-0.291279, 0.358470;;, + 65;3; 0.105165,-0.291279, 0.358470;;, + 66;3; 0.105165,-0.291279, 0.358470;;, + 67;3; 0.105165,-0.291279, 0.358470;;, + 68;3; 0.105165,-0.291279, 0.358470;;, + 69;3; 0.105165,-0.291279, 0.358470;;, + 70;3; 0.105165,-0.291279, 0.358470;;, + 71;3; 0.105165,-0.291279, 0.358470;;, + 72;3; 0.105165,-0.291279, 0.358470;;, + 73;3; 0.105165,-0.291279, 0.358470;;, + 74;3; 0.105165,-0.291279, 0.358470;;, + 75;3; 0.105165,-0.291279, 0.358470;;, + 76;3; 0.105165,-0.291279, 0.358470;;, + 77;3; 0.105165,-0.291279, 0.358470;;, + 78;3; 0.105165,-0.291279, 0.358470;;, + 79;3; 0.105165,-0.291279, 0.358470;;, + 80;3; 0.105165,-0.291279, 0.358470;;, + 81;3; 0.105165,-0.291279, 0.358470;;, + 82;3; 0.105165,-0.291279, 0.358470;;, + 83;3; 0.105165,-0.291279, 0.358470;;, + 84;3; 0.105165,-0.291279, 0.358470;;, + 85;3; 0.105165,-0.291279, 0.358470;;, + 86;3; 0.105165,-0.291279, 0.358470;;, + 87;3; 0.105165,-0.291279, 0.358470;;, + 88;3; 0.105165,-0.291279, 0.358470;;, + 89;3; 0.105165,-0.291279, 0.358470;;, + 90;3; 0.105165,-0.291279, 0.358470;;, + 91;3; 0.105165,-0.291279, 0.358470;;, + 92;3; 0.105165,-0.291279, 0.358470;;, + 93;3; 0.105165,-0.291279, 0.358470;;, + 94;3; 0.105165,-0.291279, 0.358470;;, + 95;3; 0.105165,-0.291279, 0.358470;;, + 96;3; 0.105165,-0.291279, 0.358470;;, + 97;3; 0.105165,-0.291279, 0.358470;;, + 98;3; 0.105165,-0.291279, 0.358470;;, + 99;3; 0.105165,-0.291279, 0.358470;;, + 100;3; 0.105165,-0.291279, 0.358470;;, + 101;3; 0.105165,-0.291279, 0.358470;;, + 102;3; 0.105165,-0.291279, 0.358470;;, + 103;3; 0.105165,-0.291279, 0.358470;;, + 104;3; 0.105165,-0.291279, 0.358470;;, + 105;3; 0.105165,-0.291279, 0.358470;;, + 106;3; 0.105165,-0.291279, 0.358470;;, + 107;3; 0.105165,-0.291279, 0.358470;;, + 108;3; 0.105165,-0.291279, 0.358470;;, + 109;3; 0.105165,-0.291279, 0.358470;;, + 110;3; 0.105165,-0.291279, 0.358470;;, + 111;3; 0.105165,-0.291279, 0.358470;;, + 112;3; 0.105165,-0.291279, 0.358470;;, + 113;3; 0.105165,-0.291279, 0.358470;;, + 114;3; 0.105165,-0.291279, 0.358470;;, + 115;3; 0.105165,-0.291279, 0.358470;;, + 116;3; 0.105165,-0.291279, 0.358470;;, + 117;3; 0.105165,-0.291279, 0.358470;;, + 118;3; 0.105165,-0.291279, 0.358470;;, + 119;3; 0.105165,-0.291279, 0.358470;;, + 120;3; 0.105165,-0.291279, 0.358470;;, + 121;3; 0.105165,-0.291279, 0.358470;;, + 122;3; 0.105165,-0.291279, 0.358470;;, + 123;3; 0.105165,-0.291279, 0.358470;;, + 124;3; 0.105165,-0.291279, 0.358470;;, + 125;3; 0.105165,-0.291279, 0.358470;;, + 126;3; 0.105165,-0.291279, 0.358470;;, + 127;3; 0.105165,-0.291279, 0.358470;;, + 128;3; 0.105165,-0.291279, 0.358470;;, + 129;3; 0.105165,-0.291279, 0.358470;;, + 130;3; 0.105165,-0.291279, 0.358470;;, + 131;3; 0.105165,-0.291279, 0.358470;;, + 132;3; 0.105165,-0.291279, 0.358470;;, + 133;3; 0.105165,-0.291279, 0.358470;;, + 134;3; 0.105165,-0.291279, 0.358470;;, + 135;3; 0.105165,-0.291279, 0.358470;;; + } + AnimationKey { //Rotation + 0; + 136; + 0;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 1;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 2;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 3;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 4;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 5;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 6;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 7;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 8;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 9;4; -0.561014,-0.723949, 0.238921,-0.306999;;, + 10;4; -0.575060,-0.690426, 0.184552,-0.358451;;, + 11;4; -0.594567,-0.641346, 0.106104,-0.432044;;, + 12;4; -0.612765,-0.590529, 0.027051,-0.504947;;, + 13;4; -0.623212,-0.552233,-0.028979,-0.554504;;, + 14;4; -0.622945,-0.533953,-0.050020,-0.569504;;, + 15;4; -0.602096,-0.542017,-0.018023,-0.528442;;, + 16;4; -0.552670,-0.580372, 0.080254,-0.414877;;, + 17;4; -0.484828,-0.639724, 0.222965,-0.253333;;, + 18;4; -0.418300,-0.700808, 0.366270,-0.092486;;, + 19;4; -0.372482,-0.743929, 0.466192, 0.019170;;, + 20;4; -0.356823,-0.758866, 0.500575, 0.057496;;, + 21;4; -0.374538,-0.756775, 0.478970, 0.026669;;, + 22;4; -0.424425,-0.750892, 0.418140,-0.060142;;, + 23;4; -0.488475,-0.743339, 0.340039,-0.171601;;, + 24;4; -0.538373,-0.737448, 0.279186,-0.258430;;, + 25;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 26;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 27;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 28;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 29;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 30;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 31;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 32;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 33;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 34;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 35;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 36;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 37;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 38;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 39;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 40;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 41;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 42;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 43;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 44;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 45;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 46;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 47;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 48;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 49;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 50;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 51;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 52;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 53;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 54;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 55;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 56;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 57;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 58;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 59;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 60;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 61;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 62;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 63;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 64;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 65;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 66;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 67;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 68;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 69;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 70;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 71;4; -0.535274,-0.734089, 0.278584,-0.256249;;, + 72;4; -0.472375,-0.728553, 0.340072,-0.157917;;, + 73;4; -0.373158,-0.715527, 0.432069,-0.006370;;, + 74;4; -0.253969,-0.691881, 0.533281, 0.168995;;, + 75;4; -0.137653,-0.656171, 0.617367, 0.329535;;, + 76;4; -0.043608,-0.609320, 0.664455, 0.444255;;, + 77;4; 0.018224,-0.553672, 0.666527, 0.498859;;, + 78;4; 0.072989,-0.480623, 0.641269, 0.526461;;, + 79;4; 0.126603,-0.405510, 0.612225, 0.550007;;, + 80;4; 0.142409,-0.374454, 0.591492, 0.550778;;, + 81;4; 0.010358,-0.333466, 0.444038, 0.568002;;, + 82;4; -0.259884,-0.256623, 0.141437, 0.613428;;, + 83;4; -0.379890,-0.232545,-0.020516, 0.616913;;, + 84;4; -0.372974,-0.253638,-0.048164, 0.581873;;, + 85;4; -0.371218,-0.280405,-0.063925, 0.535909;;, + 86;4; -0.374319,-0.312239,-0.068399, 0.480151;;, + 87;4; -0.381838,-0.348358,-0.062484, 0.416061;;, + 88;4; -0.393205,-0.387811,-0.047375, 0.345415;;, + 89;4; -0.407725,-0.429513,-0.024540, 0.270246;;, + 90;4; -0.424611,-0.472281, 0.004336, 0.192764;;, + 91;4; -0.443016,-0.514898, 0.037430, 0.115252;;, + 92;4; -0.462079,-0.556169, 0.072865, 0.039947;;, + 93;4; -0.480964,-0.594981, 0.108810,-0.031057;;, + 94;4; -0.498900,-0.630348, 0.143556,-0.095902;;, + 95;4; -0.515206,-0.661438, 0.175579,-0.153017;;, + 96;4; -0.529309,-0.687595, 0.203581,-0.201149;;, + 97;4; -0.540751,-0.708328, 0.226500,-0.239360;;, + 98;4; -0.549181,-0.723307, 0.243510,-0.267005;;, + 99;4; -0.554349,-0.732341, 0.254005,-0.283697;;, + 100;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 101;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 102;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 103;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 104;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 105;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 106;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 107;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 108;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 109;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 110;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 111;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 112;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 113;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 114;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 115;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 116;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 117;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 118;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 119;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 120;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 121;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 122;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 123;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 124;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 125;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 126;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 127;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 128;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 129;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 130;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 131;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 132;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 133;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 134;4; -0.556095,-0.735353, 0.257568,-0.289268;;, + 135;4; -0.556095,-0.735353, 0.257568,-0.289268;;; + } + AnimationKey { //Scale + 1; + 136; + 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;;; + } + } + Animation { + {Armature_sheya} + AnimationKey { //Position + 2; + 136; + 0;3; 0.000000, 3.238709,-0.013816;;, + 1;3; 0.000000, 3.238709,-0.013816;;, + 2;3; 0.000000, 3.236990,-0.034342;;, + 3;3; 0.000000, 3.231916,-0.094984;;, + 4;3; 0.000000, 3.224207,-0.187240;;, + 5;3; 0.000000, 3.215480,-0.291771;;, + 6;3; 0.000000, 3.207790,-0.383908;;, + 7;3; 0.000000, 3.202737,-0.444412;;, + 8;3; 0.000000, 3.201027,-0.464880;;, + 9;3; 0.000000, 3.201027,-0.464880;;, + 10;3; 0.000000, 3.201027,-0.464880;;, + 11;3; 0.000000, 3.201027,-0.464880;;, + 12;3; 0.000000, 3.201027,-0.464880;;, + 13;3; 0.000000, 3.201027,-0.464880;;, + 14;3; 0.000000, 3.201027,-0.464880;;, + 15;3; 0.000000, 3.201027,-0.464880;;, + 16;3; 0.000000, 3.201027,-0.464880;;, + 17;3; 0.000000, 3.201027,-0.464880;;, + 18;3; 0.000000, 3.201027,-0.464880;;, + 19;3; 0.000000, 3.201027,-0.464880;;, + 20;3; 0.000000, 3.201027,-0.464880;;, + 21;3; 0.000000, 3.201027,-0.464880;;, + 22;3; 0.000000, 3.201027,-0.464880;;, + 23;3; 0.000000, 3.201027,-0.464880;;, + 24;3; 0.000000, 3.201027,-0.464880;;, + 25;3; 0.000000, 3.201027,-0.464880;;, + 26;3; 0.000000, 3.203358,-0.436993;;, + 27;3; 0.000000, 3.210135,-0.355884;;, + 28;3; 0.000000, 3.219868,-0.239348;;, + 29;3; 0.000000, 3.229601,-0.122812;;, + 30;3; 0.000000, 3.236378,-0.041703;;, + 31;3; 0.000000, 3.238709,-0.013816;;, + 32;3; 0.000000, 3.238709,-0.013816;;, + 33;3; 0.000000, 3.238709,-0.013816;;, + 34;3; 0.000000, 3.238709,-0.013816;;, + 35;3; 0.000000, 3.238709,-0.013816;;, + 36;3; 0.000000, 3.238709,-0.013816;;, + 37;3; 0.000000, 3.238709,-0.013816;;, + 38;3; 0.000000, 3.238709,-0.013816;;, + 39;3; 0.000000, 3.238709,-0.013816;;, + 40;3; 0.000000, 3.238709,-0.013816;;, + 41;3; 0.000000, 3.238709,-0.013816;;, + 42;3; 0.000000, 3.238709,-0.013816;;, + 43;3; 0.000000, 3.238709,-0.013816;;, + 44;3; 0.000000, 3.238709,-0.013816;;, + 45;3; 0.000000, 3.238709,-0.013816;;, + 46;3; 0.000000, 3.238709,-0.013816;;, + 47;3; 0.000000, 3.238709,-0.013816;;, + 48;3; 0.000000, 3.238709,-0.013816;;, + 49;3; 0.000000, 3.238709,-0.013816;;, + 50;3; 0.000000, 3.238709,-0.013816;;, + 51;3; 0.000000, 3.238709,-0.013816;;, + 52;3; 0.000000, 3.238709,-0.013816;;, + 53;3; 0.000000, 3.238709,-0.013816;;, + 54;3; 0.000000, 3.238709,-0.013816;;, + 55;3; 0.000000, 3.238709,-0.013816;;, + 56;3; 0.000000, 3.238709,-0.013816;;, + 57;3; 0.000000, 3.238709,-0.013816;;, + 58;3; 0.000000, 3.238709,-0.013816;;, + 59;3; 0.000000, 3.238709,-0.013816;;, + 60;3; 0.000000, 3.238709,-0.013816;;, + 61;3; 0.000000, 3.238709,-0.013816;;, + 62;3; 0.000000, 3.238709,-0.013816;;, + 63;3; 0.000000, 3.238709,-0.013816;;, + 64;3; 0.000000, 3.238709,-0.013816;;, + 65;3; 0.000000, 3.238709,-0.013816;;, + 66;3; 0.000000, 3.238709,-0.013816;;, + 67;3; 0.000000, 3.238709,-0.013816;;, + 68;3; 0.000000, 3.238709,-0.013816;;, + 69;3; 0.000000, 3.238709,-0.013816;;, + 70;3; 0.000000, 3.238709,-0.013816;;, + 71;3; 0.000000, 3.238709,-0.013816;;, + 72;3; 0.000000, 3.238709,-0.013816;;, + 73;3; 0.000000, 3.238709,-0.013816;;, + 74;3; 0.000000, 3.238709,-0.013816;;, + 75;3; 0.000000, 3.238709,-0.013816;;, + 76;3; 0.000000, 3.238709,-0.013816;;, + 77;3; 0.000000, 3.238709,-0.013816;;, + 78;3; 0.000000, 3.238709,-0.013816;;, + 79;3; 0.000000, 3.238709,-0.013816;;, + 80;3; 0.000000, 3.238709,-0.013816;;, + 81;3; 0.000000, 3.238709,-0.013816;;, + 82;3; 0.000000, 3.238709,-0.013816;;, + 83;3; 0.000000, 3.238709,-0.013816;;, + 84;3; 0.000000, 3.238709,-0.013816;;, + 85;3; 0.000000, 3.238709,-0.013816;;, + 86;3; 0.000000, 3.238709,-0.013816;;, + 87;3; 0.000000, 3.238709,-0.013816;;, + 88;3; 0.000000, 3.238709,-0.013816;;, + 89;3; 0.000000, 3.238709,-0.013816;;, + 90;3; 0.000000, 3.238709,-0.013816;;, + 91;3; 0.000000, 3.238709,-0.013816;;, + 92;3; 0.000000, 3.238709,-0.013816;;, + 93;3; 0.000000, 3.238709,-0.013816;;, + 94;3; 0.000000, 3.238709,-0.013816;;, + 95;3; 0.000000, 3.238709,-0.013816;;, + 96;3; 0.000000, 3.238709,-0.013816;;, + 97;3; 0.000000, 3.238709,-0.013816;;, + 98;3; 0.000000, 3.238709,-0.013816;;, + 99;3; 0.000000, 3.238709,-0.013816;;, + 100;3; 0.000000, 3.238709,-0.013816;;, + 101;3; 0.000000, 3.238709,-0.013816;;, + 102;3; 0.000000, 3.238709,-0.013816;;, + 103;3; 0.000000, 3.238709,-0.013816;;, + 104;3; 0.000000, 3.238709,-0.013816;;, + 105;3; 0.000000, 3.238709,-0.013816;;, + 106;3; 0.000000, 3.238709,-0.013816;;, + 107;3; 0.000000, 3.238709,-0.013816;;, + 108;3; 0.000000, 3.238709,-0.013816;;, + 109;3; 0.000000, 3.238709,-0.013816;;, + 110;3; 0.000000, 3.238709,-0.013816;;, + 111;3; 0.000000, 3.238709,-0.013816;;, + 112;3; 0.000000, 3.238709,-0.013816;;, + 113;3; 0.000000, 3.238709,-0.013816;;, + 114;3; 0.000000, 3.238709,-0.013816;;, + 115;3; 0.000000, 3.238709,-0.013816;;, + 116;3; 0.000000, 3.238709,-0.013816;;, + 117;3; 0.000000, 3.238709,-0.013816;;, + 118;3; 0.000000, 3.238709,-0.013816;;, + 119;3; 0.000000, 3.238709,-0.013816;;, + 120;3; 0.000000, 3.238709,-0.013816;;, + 121;3; 0.000000, 3.238709,-0.013816;;, + 122;3; 0.000000, 3.238709,-0.013816;;, + 123;3; 0.000000, 3.238709,-0.013816;;, + 124;3; 0.000000, 3.238709,-0.013816;;, + 125;3; 0.000000, 3.238709,-0.013816;;, + 126;3; 0.000000, 3.238709,-0.013816;;, + 127;3; 0.000000, 3.238709,-0.013816;;, + 128;3; 0.000000, 3.238709,-0.013816;;, + 129;3; 0.000000, 3.238709,-0.013816;;, + 130;3; 0.000000, 3.238709,-0.013816;;, + 131;3; 0.000000, 3.238709,-0.013816;;, + 132;3; 0.000000, 3.238709,-0.013816;;, + 133;3; 0.000000, 3.238709,-0.013816;;, + 134;3; 0.000000, 3.238709,-0.013816;;, + 135;3; 0.000000, 3.238709,-0.013816;;; + } + AnimationKey { //Rotation + 0; + 136; + 0;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 1;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 2;4; -0.976686,-0.085962, 0.015156, 0.033999;;, + 3;4; -0.957666,-0.146060, 0.017070, 0.032575;;, + 4;4; -0.928699,-0.237482, 0.019992, 0.030406;;, + 5;4; -0.895855,-0.341063, 0.023310, 0.027945;;, + 6;4; -0.866900,-0.432362, 0.026237, 0.025775;;, + 7;4; -0.847893,-0.492318, 0.028156, 0.024351;;, + 8;4; -0.841466,-0.512601, 0.028804, 0.023869;;, + 9;4; -0.841466,-0.512601, 0.028804, 0.023869;;, + 10;4; -0.841466,-0.512601, 0.028804, 0.023869;;, + 11;4; -0.841466,-0.512601, 0.028804, 0.023869;;, + 12;4; -0.841466,-0.512601, 0.028804, 0.023869;;, + 13;4; -0.841466,-0.512601, 0.028804, 0.023869;;, + 14;4; -0.841466,-0.512601, 0.028804, 0.023869;;, + 15;4; -0.841466,-0.512601, 0.028804, 0.023869;;, + 16;4; -0.841466,-0.512601, 0.028804, 0.023869;;, + 17;4; -0.841466,-0.512601, 0.028804, 0.023869;;, + 18;4; -0.841466,-0.512601, 0.028804, 0.023869;;, + 19;4; -0.841466,-0.512601, 0.028804, 0.023869;;, + 20;4; -0.841466,-0.512601, 0.028804, 0.023869;;, + 21;4; -0.841466,-0.512601, 0.028804, 0.023869;;, + 22;4; -0.841466,-0.512601, 0.028804, 0.023869;;, + 23;4; -0.841466,-0.512601, 0.028804, 0.023869;;, + 24;4; -0.841466,-0.512601, 0.028804, 0.023869;;, + 25;4; -0.841466,-0.512601, 0.028804, 0.023869;;, + 26;4; -0.850219,-0.484965, 0.027922, 0.024525;;, + 27;4; -0.875686,-0.404590, 0.025353, 0.026432;;, + 28;4; -0.912292,-0.289110, 0.021657, 0.029175;;, + 29;4; -0.948897,-0.173630, 0.017961, 0.031917;;, + 30;4; -0.974365,-0.093255, 0.015392, 0.033825;;, + 31;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 32;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 33;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 34;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 35;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 36;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 37;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 38;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 39;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 40;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 41;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 42;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 43;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 44;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 45;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 46;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 47;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 48;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 49;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 50;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 51;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 52;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 53;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 54;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 55;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 56;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 57;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 58;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 59;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 60;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 61;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 62;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 63;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 64;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 65;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 66;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 67;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 68;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 69;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 70;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 71;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 72;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 73;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 74;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 75;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 76;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 77;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 78;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 79;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 80;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 81;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 82;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 83;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 84;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 85;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 86;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 87;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 88;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 89;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 90;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 91;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 92;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 93;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 94;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 95;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 96;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 97;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 98;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 99;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 100;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 101;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 102;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 103;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 104;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 105;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 106;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 107;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 108;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 109;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 110;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 111;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 112;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 113;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 114;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 115;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 116;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 117;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 118;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 119;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 120;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 121;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 122;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 123;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 124;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 125;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 126;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 127;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 128;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 129;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 130;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 131;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 132;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 133;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 134;4; -0.983117,-0.065618, 0.014510, 0.034480;;, + 135;4; -0.983117,-0.065618, 0.014510, 0.034480;;; + } + AnimationKey { //Scale + 1; + 136; + 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;;; + } + } + Animation { + {Armature_head} + AnimationKey { //Position + 2; + 136; + 0;3; 0.067776, 0.891274, 0.002915;;, + 1;3; 0.067776, 0.891274, 0.002915;;, + 2;3; 0.067776, 0.891274, 0.002915;;, + 3;3; 0.067776, 0.891274, 0.002916;;, + 4;3; 0.067776, 0.891274, 0.002916;;, + 5;3; 0.067776, 0.891274, 0.002916;;, + 6;3; 0.067776, 0.891274, 0.002916;;, + 7;3; 0.067776, 0.891274, 0.002916;;, + 8;3; 0.067776, 0.891274, 0.002915;;, + 9;3; 0.067776, 0.891274, 0.002915;;, + 10;3; 0.067776, 0.891274, 0.002915;;, + 11;3; 0.067776, 0.891274, 0.002915;;, + 12;3; 0.067776, 0.891274, 0.002915;;, + 13;3; 0.067776, 0.891274, 0.002915;;, + 14;3; 0.067776, 0.891274, 0.002915;;, + 15;3; 0.067776, 0.891274, 0.002915;;, + 16;3; 0.067776, 0.891274, 0.002915;;, + 17;3; 0.067776, 0.891274, 0.002915;;, + 18;3; 0.067776, 0.891274, 0.002915;;, + 19;3; 0.067776, 0.891274, 0.002915;;, + 20;3; 0.067776, 0.891274, 0.002915;;, + 21;3; 0.067776, 0.891274, 0.002915;;, + 22;3; 0.067776, 0.891274, 0.002915;;, + 23;3; 0.067776, 0.891274, 0.002915;;, + 24;3; 0.067776, 0.891274, 0.002915;;, + 25;3; 0.067776, 0.891274, 0.002915;;, + 26;3; 0.067776, 0.891274, 0.002915;;, + 27;3; 0.067777, 0.891274, 0.002915;;, + 28;3; 0.067776, 0.891274, 0.002916;;, + 29;3; 0.067776, 0.891274, 0.002915;;, + 30;3; 0.067776, 0.891274, 0.002916;;, + 31;3; 0.067776, 0.891274, 0.002915;;, + 32;3; 0.067776, 0.891274, 0.002915;;, + 33;3; 0.067776, 0.891274, 0.002915;;, + 34;3; 0.067776, 0.891274, 0.002915;;, + 35;3; 0.067776, 0.891274, 0.002915;;, + 36;3; 0.067776, 0.891274, 0.002915;;, + 37;3; 0.067776, 0.891274, 0.002916;;, + 38;3; 0.067777, 0.891274, 0.002916;;, + 39;3; 0.067776, 0.891274, 0.002915;;, + 40;3; 0.067776, 0.891274, 0.002915;;, + 41;3; 0.067776, 0.891274, 0.002915;;, + 42;3; 0.067776, 0.891274, 0.002915;;, + 43;3; 0.067776, 0.891274, 0.002915;;, + 44;3; 0.067776, 0.891274, 0.002915;;, + 45;3; 0.067777, 0.891274, 0.002915;;, + 46;3; 0.067776, 0.891274, 0.002915;;, + 47;3; 0.067777, 0.891274, 0.002915;;, + 48;3; 0.067777, 0.891274, 0.002915;;, + 49;3; 0.067776, 0.891274, 0.002915;;, + 50;3; 0.067777, 0.891274, 0.002915;;, + 51;3; 0.067776, 0.891274, 0.002915;;, + 52;3; 0.067776, 0.891274, 0.002915;;, + 53;3; 0.067776, 0.891274, 0.002915;;, + 54;3; 0.067776, 0.891274, 0.002915;;, + 55;3; 0.067776, 0.891274, 0.002916;;, + 56;3; 0.067776, 0.891274, 0.002915;;, + 57;3; 0.067776, 0.891274, 0.002915;;, + 58;3; 0.067777, 0.891274, 0.002916;;, + 59;3; 0.067776, 0.891274, 0.002915;;, + 60;3; 0.067777, 0.891274, 0.002915;;, + 61;3; 0.067776, 0.891274, 0.002915;;, + 62;3; 0.067777, 0.891274, 0.002915;;, + 63;3; 0.067777, 0.891274, 0.002915;;, + 64;3; 0.067777, 0.891274, 0.002915;;, + 65;3; 0.067776, 0.891274, 0.002915;;, + 66;3; 0.067776, 0.891274, 0.002915;;, + 67;3; 0.067776, 0.891274, 0.002915;;, + 68;3; 0.067776, 0.891274, 0.002915;;, + 69;3; 0.067776, 0.891274, 0.002915;;, + 70;3; 0.067776, 0.891274, 0.002915;;, + 71;3; 0.067776, 0.891274, 0.002915;;, + 72;3; 0.067776, 0.891274, 0.002915;;, + 73;3; 0.067776, 0.891274, 0.002915;;, + 74;3; 0.067776, 0.891274, 0.002915;;, + 75;3; 0.067776, 0.891274, 0.002915;;, + 76;3; 0.067776, 0.891274, 0.002915;;, + 77;3; 0.067776, 0.891274, 0.002915;;, + 78;3; 0.067776, 0.891274, 0.002915;;, + 79;3; 0.067776, 0.891274, 0.002915;;, + 80;3; 0.067776, 0.891274, 0.002915;;, + 81;3; 0.067776, 0.891274, 0.002915;;, + 82;3; 0.067776, 0.891274, 0.002915;;, + 83;3; 0.067776, 0.891274, 0.002915;;, + 84;3; 0.067776, 0.891274, 0.002915;;, + 85;3; 0.067776, 0.891274, 0.002915;;, + 86;3; 0.067776, 0.891274, 0.002915;;, + 87;3; 0.067776, 0.891274, 0.002915;;, + 88;3; 0.067776, 0.891274, 0.002915;;, + 89;3; 0.067776, 0.891274, 0.002915;;, + 90;3; 0.067776, 0.891274, 0.002915;;, + 91;3; 0.067776, 0.891274, 0.002915;;, + 92;3; 0.067776, 0.891274, 0.002915;;, + 93;3; 0.067776, 0.891274, 0.002915;;, + 94;3; 0.067776, 0.891274, 0.002915;;, + 95;3; 0.067776, 0.891274, 0.002915;;, + 96;3; 0.067776, 0.891274, 0.002915;;, + 97;3; 0.067776, 0.891274, 0.002915;;, + 98;3; 0.067776, 0.891274, 0.002915;;, + 99;3; 0.067776, 0.891274, 0.002915;;, + 100;3; 0.067776, 0.891274, 0.002915;;, + 101;3; 0.067776, 0.891274, 0.002915;;, + 102;3; 0.067776, 0.891274, 0.002915;;, + 103;3; 0.067776, 0.891274, 0.002915;;, + 104;3; 0.067776, 0.891274, 0.002915;;, + 105;3; 0.067776, 0.891274, 0.002915;;, + 106;3; 0.067776, 0.891274, 0.002915;;, + 107;3; 0.067776, 0.891274, 0.002916;;, + 108;3; 0.067777, 0.891274, 0.002916;;, + 109;3; 0.067776, 0.891274, 0.002915;;, + 110;3; 0.067776, 0.891274, 0.002915;;, + 111;3; 0.067776, 0.891274, 0.002915;;, + 112;3; 0.067776, 0.891274, 0.002915;;, + 113;3; 0.067776, 0.891274, 0.002915;;, + 114;3; 0.067776, 0.891274, 0.002915;;, + 115;3; 0.067777, 0.891274, 0.002915;;, + 116;3; 0.067777, 0.891274, 0.002915;;, + 117;3; 0.067776, 0.891274, 0.002915;;, + 118;3; 0.067777, 0.891274, 0.002915;;, + 119;3; 0.067777, 0.891274, 0.002915;;, + 120;3; 0.067776, 0.891274, 0.002915;;, + 121;3; 0.067777, 0.891274, 0.002915;;, + 122;3; 0.067776, 0.891274, 0.002915;;, + 123;3; 0.067776, 0.891274, 0.002915;;, + 124;3; 0.067776, 0.891274, 0.002915;;, + 125;3; 0.067776, 0.891274, 0.002916;;, + 126;3; 0.067776, 0.891274, 0.002915;;, + 127;3; 0.067776, 0.891274, 0.002915;;, + 128;3; 0.067777, 0.891274, 0.002916;;, + 129;3; 0.067776, 0.891274, 0.002915;;, + 130;3; 0.067776, 0.891274, 0.002915;;, + 131;3; 0.067777, 0.891274, 0.002915;;, + 132;3; 0.067776, 0.891274, 0.002915;;, + 133;3; 0.067777, 0.891274, 0.002915;;, + 134;3; 0.067777, 0.891274, 0.002915;;, + 135;3; 0.067776, 0.891274, 0.002915;;; + } + AnimationKey { //Rotation + 0; + 136; + 0;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 1;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 2;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 3;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 4;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 5;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 6;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 7;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 8;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 9;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 10;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 11;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 12;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 13;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 14;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 15;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 16;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 17;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 18;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 19;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 20;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 21;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 22;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 23;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 24;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 25;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 26;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 27;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 28;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 29;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 30;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 31;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 32;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 33;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 34;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 35;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 36;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 37;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 38;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 39;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 40;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 41;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 42;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 43;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 44;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 45;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 46;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 47;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 48;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 49;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 50;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 51;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 52;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 53;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 54;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 55;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 56;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 57;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 58;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 59;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 60;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 61;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 62;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 63;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 64;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 65;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 66;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 67;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 68;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 69;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 70;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 71;4; -0.993396,-0.093970, 0.003706,-0.037410;;, + 72;4; -0.992585,-0.059156, 0.002434,-0.036511;;, + 73;4; -0.991349,-0.006118, 0.000497,-0.035141;;, + 74;4; -0.989946, 0.054035,-0.001699,-0.033587;;, + 75;4; -0.988710, 0.107069,-0.003636,-0.032217;;, + 76;4; -0.987899, 0.141879,-0.004908,-0.031318;;, + 77;4; -0.987625, 0.153647,-0.005337,-0.031014;;, + 78;4; -0.987650, 0.152567,-0.005298,-0.031042;;, + 79;4; -0.987726, 0.149304,-0.005179,-0.031126;;, + 80;4; -0.987853, 0.143842,-0.004979,-0.031267;;, + 81;4; -0.988031, 0.136199,-0.004700,-0.031464;;, + 82;4; -0.988258, 0.126432,-0.004343,-0.031717;;, + 83;4; -0.988533, 0.114647,-0.003913,-0.032021;;, + 84;4; -0.988851, 0.101005,-0.003415,-0.032373;;, + 85;4; -0.989207, 0.085729,-0.002857,-0.032768;;, + 86;4; -0.989594, 0.069101,-0.002250,-0.033197;;, + 87;4; -0.990005, 0.051460,-0.001605,-0.033653;;, + 88;4; -0.990431, 0.033191,-0.000938,-0.034125;;, + 89;4; -0.990862, 0.014709,-0.000263,-0.034602;;, + 90;4; -0.991288,-0.003560, 0.000404,-0.035074;;, + 91;4; -0.991699,-0.021201, 0.001048,-0.035530;;, + 92;4; -0.992087,-0.037828, 0.001656,-0.035959;;, + 93;4; -0.992443,-0.053103, 0.002213,-0.036354;;, + 94;4; -0.992761,-0.066744, 0.002712,-0.036706;;, + 95;4; -0.993036,-0.078528, 0.003142,-0.037011;;, + 96;4; -0.993263,-0.088294, 0.003499,-0.037263;;, + 97;4; -0.993441,-0.095936, 0.003778,-0.037460;;, + 98;4; -0.993569,-0.101397, 0.003977,-0.037601;;, + 99;4; -0.993645,-0.104660, 0.004096,-0.037686;;, + 100;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 101;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 102;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 103;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 104;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 105;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 106;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 107;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 108;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 109;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 110;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 111;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 112;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 113;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 114;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 115;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 116;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 117;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 118;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 119;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 120;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 121;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 122;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 123;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 124;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 125;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 126;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 127;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 128;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 129;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 130;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 131;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 132;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 133;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 134;4; -0.993670,-0.105740, 0.004136,-0.037714;;, + 135;4; -0.993670,-0.105740, 0.004136,-0.037714;;; + } + AnimationKey { //Scale + 1; + 136; + 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;;; + } + } + Animation { + {Armature_zubi} + AnimationKey { //Position + 2; + 136; + 0;3; 0.194650, 1.828288,-0.748248;;, + 1;3; 0.194650, 1.828288,-0.748248;;, + 2;3; 0.194650, 1.828288,-0.748248;;, + 3;3; 0.194649, 1.828288,-0.748248;;, + 4;3; 0.194650, 1.828288,-0.748248;;, + 5;3; 0.194650, 1.828288,-0.748248;;, + 6;3; 0.194649, 1.828288,-0.748248;;, + 7;3; 0.194650, 1.828288,-0.748248;;, + 8;3; 0.194650, 1.828288,-0.748248;;, + 9;3; 0.194650, 1.828288,-0.748248;;, + 10;3; 0.194650, 1.828288,-0.748248;;, + 11;3; 0.194650, 1.828288,-0.748248;;, + 12;3; 0.194650, 1.828288,-0.748248;;, + 13;3; 0.194650, 1.828288,-0.748248;;, + 14;3; 0.194650, 1.828288,-0.748248;;, + 15;3; 0.194650, 1.828288,-0.748248;;, + 16;3; 0.194650, 1.828288,-0.748248;;, + 17;3; 0.194650, 1.828288,-0.748248;;, + 18;3; 0.194650, 1.828288,-0.748248;;, + 19;3; 0.194650, 1.828288,-0.748248;;, + 20;3; 0.194650, 1.828288,-0.748248;;, + 21;3; 0.194650, 1.828288,-0.748248;;, + 22;3; 0.194650, 1.828288,-0.748248;;, + 23;3; 0.194650, 1.828288,-0.748248;;, + 24;3; 0.194650, 1.828288,-0.748248;;, + 25;3; 0.194650, 1.828288,-0.748248;;, + 26;3; 0.194650, 1.828288,-0.748248;;, + 27;3; 0.194650, 1.828288,-0.748248;;, + 28;3; 0.194650, 1.828288,-0.748248;;, + 29;3; 0.194650, 1.828288,-0.748248;;, + 30;3; 0.194650, 1.828288,-0.748248;;, + 31;3; 0.194650, 1.828288,-0.748248;;, + 32;3; 0.194650, 1.828288,-0.748248;;, + 33;3; 0.194650, 1.828288,-0.748248;;, + 34;3; 0.194650, 1.828288,-0.748248;;, + 35;3; 0.194650, 1.828288,-0.748248;;, + 36;3; 0.194650, 1.828288,-0.748248;;, + 37;3; 0.194650, 1.828288,-0.748248;;, + 38;3; 0.194650, 1.828288,-0.748248;;, + 39;3; 0.194650, 1.828288,-0.748248;;, + 40;3; 0.194650, 1.828288,-0.748248;;, + 41;3; 0.194650, 1.828288,-0.748248;;, + 42;3; 0.194650, 1.828288,-0.748248;;, + 43;3; 0.194650, 1.828288,-0.748248;;, + 44;3; 0.194650, 1.828288,-0.748248;;, + 45;3; 0.194651, 1.828288,-0.748248;;, + 46;3; 0.194650, 1.828288,-0.748248;;, + 47;3; 0.194650, 1.828288,-0.748248;;, + 48;3; 0.194650, 1.828288,-0.748248;;, + 49;3; 0.194650, 1.828288,-0.748248;;, + 50;3; 0.194650, 1.828288,-0.748248;;, + 51;3; 0.194650, 1.828288,-0.748248;;, + 52;3; 0.194650, 1.828288,-0.748248;;, + 53;3; 0.194650, 1.828288,-0.748248;;, + 54;3; 0.194650, 1.828288,-0.748248;;, + 55;3; 0.194650, 1.828288,-0.748248;;, + 56;3; 0.194650, 1.828288,-0.748248;;, + 57;3; 0.194650, 1.828288,-0.748248;;, + 58;3; 0.194650, 1.828288,-0.748248;;, + 59;3; 0.194650, 1.828288,-0.748248;;, + 60;3; 0.194650, 1.828288,-0.748248;;, + 61;3; 0.194650, 1.828288,-0.748248;;, + 62;3; 0.194650, 1.828288,-0.748248;;, + 63;3; 0.194651, 1.828288,-0.748249;;, + 64;3; 0.194650, 1.828288,-0.748248;;, + 65;3; 0.194650, 1.828288,-0.748248;;, + 66;3; 0.194650, 1.828288,-0.748248;;, + 67;3; 0.194650, 1.828288,-0.748248;;, + 68;3; 0.194650, 1.828288,-0.748248;;, + 69;3; 0.194650, 1.828288,-0.748248;;, + 70;3; 0.194650, 1.828288,-0.748248;;, + 71;3; 0.193824, 1.826865,-0.718989;;, + 72;3; 0.191380, 1.822641,-0.632490;;, + 73;3; 0.187655, 1.816186,-0.500793;;, + 74;3; 0.183428, 1.808853,-0.351470;;, + 75;3; 0.179702, 1.802391,-0.219807;;, + 76;3; 0.177257, 1.798159,-0.133348;;, + 77;3; 0.176431, 1.796732,-0.104106;;, + 78;3; 0.176538, 1.796916,-0.107892;;, + 79;3; 0.176887, 1.797517,-0.120255;;, + 80;3; 0.177464, 1.798515,-0.140691;;, + 81;3; 0.178165, 1.799728,-0.165500;;, + 82;3; 0.178872, 1.800950,-0.190476;;, + 83;3; 0.179610, 1.802228,-0.216583;;, + 84;3; 0.180459, 1.803698,-0.246602;;, + 85;3; 0.181415, 1.805352,-0.280384;;, + 86;3; 0.182468, 1.807176,-0.317636;;, + 87;3; 0.183607, 1.809149,-0.357892;;, + 88;3; 0.184812, 1.811236,-0.400490;;, + 89;3; 0.186059, 1.813397,-0.444573;;, + 90;3; 0.187319, 1.815581,-0.489110;;, + 91;3; 0.188559, 1.817731,-0.532954;;, + 92;3; 0.189747, 1.819790,-0.574925;;, + 93;3; 0.190850, 1.821702,-0.613904;;, + 94;3; 0.191840, 1.823419,-0.648918;;, + 95;3; 0.192697, 1.824904,-0.679203;;, + 96;3; 0.193405, 1.826131,-0.704224;;, + 97;3; 0.193955, 1.827084,-0.723676;;, + 98;3; 0.194345, 1.827759,-0.737448;;, + 99;3; 0.194575, 1.828157,-0.745585;;, + 100;3; 0.194650, 1.828288,-0.748248;;, + 101;3; 0.194650, 1.828288,-0.748248;;, + 102;3; 0.194650, 1.828288,-0.748248;;, + 103;3; 0.194650, 1.828288,-0.748248;;, + 104;3; 0.194650, 1.828288,-0.748248;;, + 105;3; 0.194650, 1.828288,-0.748248;;, + 106;3; 0.194650, 1.828288,-0.748248;;, + 107;3; 0.194650, 1.828288,-0.748248;;, + 108;3; 0.194650, 1.828288,-0.748248;;, + 109;3; 0.194650, 1.828288,-0.748248;;, + 110;3; 0.194650, 1.828288,-0.748248;;, + 111;3; 0.194650, 1.828288,-0.748248;;, + 112;3; 0.194650, 1.828288,-0.748248;;, + 113;3; 0.194650, 1.828288,-0.748248;;, + 114;3; 0.194650, 1.828288,-0.748248;;, + 115;3; 0.194651, 1.828288,-0.748248;;, + 116;3; 0.194651, 1.828288,-0.748248;;, + 117;3; 0.194650, 1.828288,-0.748248;;, + 118;3; 0.194650, 1.828288,-0.748248;;, + 119;3; 0.194650, 1.828288,-0.748248;;, + 120;3; 0.194650, 1.828288,-0.748248;;, + 121;3; 0.194650, 1.828288,-0.748248;;, + 122;3; 0.194650, 1.828288,-0.748248;;, + 123;3; 0.194650, 1.828288,-0.748248;;, + 124;3; 0.194650, 1.828288,-0.748248;;, + 125;3; 0.194650, 1.828288,-0.748248;;, + 126;3; 0.194650, 1.828288,-0.748248;;, + 127;3; 0.194650, 1.828288,-0.748248;;, + 128;3; 0.194650, 1.828288,-0.748248;;, + 129;3; 0.194650, 1.828288,-0.748248;;, + 130;3; 0.194650, 1.828288,-0.748248;;, + 131;3; 0.194650, 1.828288,-0.748248;;, + 132;3; 0.194650, 1.828288,-0.748248;;, + 133;3; 0.194650, 1.828288,-0.748248;;, + 134;3; 0.194650, 1.828288,-0.748248;;, + 135;3; 0.194650, 1.828288,-0.748248;;; + } + AnimationKey { //Rotation + 0; + 136; + 0;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 1;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 2;4; -0.992483,-0.108459, 0.004226,-0.037868;;, + 3;4; -0.987374,-0.131655, 0.005069,-0.038267;;, + 4;4; -0.979333,-0.168163, 0.006395,-0.038895;;, + 5;4; -0.969538,-0.212625, 0.008010,-0.039660;;, + 6;4; -0.959745,-0.257081, 0.009625,-0.040425;;, + 7;4; -0.951705,-0.293573, 0.010950,-0.041053;;, + 8;4; -0.946598,-0.316754, 0.011792,-0.041453;;, + 9;4; -0.944887,-0.324521, 0.012074,-0.041586;;, + 10;4; -0.946901,-0.314574, 0.011713,-0.041409;;, + 11;4; -0.952859,-0.285148, 0.010644,-0.040884;;, + 12;4; -0.961938,-0.240314, 0.009015,-0.040084;;, + 13;4; -0.972235,-0.189461, 0.007168,-0.039177;;, + 14;4; -0.981313,-0.144627, 0.005539,-0.038377;;, + 15;4; -0.987272,-0.115201, 0.004470,-0.037852;;, + 16;4; -0.989286,-0.105254, 0.004109,-0.037675;;, + 17;4; -0.986277,-0.121439, 0.004697,-0.037973;;, + 18;4; -0.977802,-0.167028, 0.006353,-0.038813;;, + 19;4; -0.966921,-0.225564, 0.008480,-0.039892;;, + 20;4; -0.958446,-0.271154, 0.010136,-0.040732;;, + 21;4; -0.955437,-0.287339, 0.010724,-0.041030;;, + 22;4; -0.959701,-0.261762, 0.009795,-0.040541;;, + 23;4; -0.971097,-0.194805, 0.007362,-0.039270;;, + 24;4; -0.983146,-0.127683, 0.004923,-0.038018;;, + 25;4; -0.989057,-0.101707, 0.003979,-0.037578;;, + 26;4; -0.990877,-0.101289, 0.003965,-0.037632;;, + 27;4; -0.992338,-0.100979, 0.003954,-0.037676;;, + 28;4; -0.993349,-0.100790, 0.003947,-0.037707;;, + 29;4; -0.993913,-0.100706, 0.003944,-0.037725;;, + 30;4; -0.994145,-0.100686, 0.003944,-0.037732;;, + 31;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 32;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 33;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 34;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 35;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 36;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 37;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 38;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 39;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 40;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 41;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 42;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 43;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 44;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 45;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 46;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 47;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 48;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 49;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 50;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 51;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 52;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 53;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 54;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 55;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 56;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 57;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 58;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 59;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 60;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 61;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 62;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 63;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 64;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 65;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 66;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 67;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 68;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 69;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 70;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 71;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 72;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 73;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 74;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 75;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 76;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 77;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 78;4; -0.991164,-0.115356, 0.004477,-0.037994;;, + 79;4; -0.982629,-0.156671, 0.005978,-0.038725;;, + 80;4; -0.971671,-0.209714, 0.007904,-0.039663;;, + 81;4; -0.963137,-0.251026, 0.009405,-0.040394;;, + 82;4; -0.960107,-0.265695, 0.009938,-0.040654;;, + 83;4; -0.960339,-0.264571, 0.009897,-0.040634;;, + 84;4; -0.961041,-0.261174, 0.009774,-0.040574;;, + 85;4; -0.962213,-0.255501, 0.009568,-0.040474;;, + 86;4; -0.963842,-0.247611, 0.009281,-0.040334;;, + 87;4; -0.965901,-0.237644, 0.008919,-0.040158;;, + 88;4; -0.968341,-0.225834, 0.008490,-0.039949;;, + 89;4; -0.971092,-0.212518, 0.008006,-0.039713;;, + 90;4; -0.974064,-0.198131, 0.007484,-0.039458;;, + 91;4; -0.977151,-0.183188, 0.006941,-0.039194;;, + 92;4; -0.980238,-0.168245, 0.006398,-0.038930;;, + 93;4; -0.983210,-0.153859, 0.005875,-0.038675;;, + 94;4; -0.985961,-0.140543, 0.005392,-0.038439;;, + 95;4; -0.988400,-0.128734, 0.004963,-0.038230;;, + 96;4; -0.990459,-0.118768, 0.004601,-0.038054;;, + 97;4; -0.992089,-0.110879, 0.004314,-0.037915;;, + 98;4; -0.993261,-0.105206, 0.004108,-0.037814;;, + 99;4; -0.993963,-0.101810, 0.003985,-0.037754;;, + 100;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 101;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 102;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 103;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 104;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 105;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 106;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 107;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 108;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 109;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 110;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 111;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 112;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 113;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 114;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 115;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 116;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 117;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 118;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 119;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 120;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 121;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 122;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 123;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 124;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 125;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 126;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 127;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 128;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 129;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 130;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 131;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 132;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 133;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 134;4; -0.994195,-0.100686, 0.003944,-0.037734;;, + 135;4; -0.994195,-0.100686, 0.003944,-0.037734;;; + } + AnimationKey { //Scale + 1; + 136; + 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;;; + } + } + Animation { + {Cube} + AnimationKey { //Position + 2; + 136; + 0;3; 0.274003,-0.357581,11.859126;;, + 1;3; 0.274003,-0.357581,11.859126;;, + 2;3; 0.274003,-0.357581,11.859126;;, + 3;3; 0.274003,-0.357581,11.859126;;, + 4;3; 0.274003,-0.357581,11.859126;;, + 5;3; 0.274003,-0.357581,11.859126;;, + 6;3; 0.274003,-0.357581,11.859126;;, + 7;3; 0.274003,-0.357581,11.859126;;, + 8;3; 0.274003,-0.357581,11.859126;;, + 9;3; 0.274003,-0.357581,11.859126;;, + 10;3; 0.274003,-0.357581,11.859126;;, + 11;3; 0.274003,-0.357581,11.859126;;, + 12;3; 0.274003,-0.357581,11.859126;;, + 13;3; 0.274003,-0.357581,11.859126;;, + 14;3; 0.274003,-0.357581,11.859126;;, + 15;3; 0.274003,-0.357581,11.859126;;, + 16;3; 0.274003,-0.357581,11.859126;;, + 17;3; 0.274003,-0.357581,11.859126;;, + 18;3; 0.274003,-0.357581,11.859126;;, + 19;3; 0.274003,-0.357581,11.859126;;, + 20;3; 0.274003,-0.357581,11.859126;;, + 21;3; 0.274003,-0.357581,11.859126;;, + 22;3; 0.274003,-0.357581,11.859126;;, + 23;3; 0.274003,-0.357581,11.859126;;, + 24;3; 0.274003,-0.357581,11.859126;;, + 25;3; 0.274003,-0.357581,11.859126;;, + 26;3; 0.274003,-0.357581,11.859126;;, + 27;3; 0.274003,-0.357581,11.859126;;, + 28;3; 0.274003,-0.357581,11.859126;;, + 29;3; 0.274003,-0.357581,11.859126;;, + 30;3; 0.274003,-0.357581,11.859126;;, + 31;3; 0.274003,-0.357581,11.859126;;, + 32;3; 0.274003,-0.357581,11.859126;;, + 33;3; 0.274003,-0.357581,11.859126;;, + 34;3; 0.274003,-0.357581,11.859126;;, + 35;3; 0.274003,-0.357581,11.859126;;, + 36;3; 0.274003,-0.357581,11.859126;;, + 37;3; 0.274003,-0.357581,11.859126;;, + 38;3; 0.274003,-0.357581,11.859126;;, + 39;3; 0.274003,-0.357581,11.859126;;, + 40;3; 0.274003,-0.357581,11.859126;;, + 41;3; 0.274003,-0.357581,11.859126;;, + 42;3; 0.274003,-0.357581,11.859126;;, + 43;3; 0.274003,-0.357581,11.859126;;, + 44;3; 0.274003,-0.357581,11.859126;;, + 45;3; 0.274003,-0.357581,11.859126;;, + 46;3; 0.274003,-0.357581,11.859126;;, + 47;3; 0.274003,-0.357581,11.859126;;, + 48;3; 0.274003,-0.357581,11.859126;;, + 49;3; 0.274003,-0.357581,11.859126;;, + 50;3; 0.274003,-0.357581,11.859126;;, + 51;3; 0.274003,-0.357581,11.859126;;, + 52;3; 0.274003,-0.357581,11.859126;;, + 53;3; 0.274003,-0.357581,11.859126;;, + 54;3; 0.274003,-0.357581,11.859126;;, + 55;3; 0.274003,-0.357581,11.859126;;, + 56;3; 0.274003,-0.357581,11.859126;;, + 57;3; 0.274003,-0.357581,11.859126;;, + 58;3; 0.274003,-0.357581,11.859126;;, + 59;3; 0.274003,-0.357581,11.859126;;, + 60;3; 0.274003,-0.357581,11.859126;;, + 61;3; 0.274003,-0.357581,11.859126;;, + 62;3; 0.274003,-0.357581,11.859126;;, + 63;3; 0.274003,-0.357581,11.859126;;, + 64;3; 0.274003,-0.357581,11.859126;;, + 65;3; 0.274003,-0.357581,11.859126;;, + 66;3; 0.274003,-0.357581,11.859126;;, + 67;3; 0.274003,-0.357581,11.859126;;, + 68;3; 0.274003,-0.357581,11.859126;;, + 69;3; 0.274003,-0.357581,11.859126;;, + 70;3; 0.274003,-0.357581,11.859126;;, + 71;3; 0.274003,-0.357581,11.859126;;, + 72;3; 0.274003,-0.357581,11.859126;;, + 73;3; 0.274003,-0.357581,11.859126;;, + 74;3; 0.274003,-0.357581,11.859126;;, + 75;3; 0.274003,-0.357581,11.859126;;, + 76;3; 0.274003,-0.357581,11.859126;;, + 77;3; 0.274003,-0.357581,11.859126;;, + 78;3; 0.274003,-0.357581,11.859126;;, + 79;3; 0.274003,-0.357581,11.859126;;, + 80;3; 0.274003,-0.357581,11.859126;;, + 81;3; 0.274003,-0.357581,11.859126;;, + 82;3; 0.274003,-0.357581,11.859126;;, + 83;3; 0.274003,-0.357581,11.859126;;, + 84;3; 0.274003,-0.357581,11.859126;;, + 85;3; 0.274003,-0.357581,11.859126;;, + 86;3; 0.274003,-0.357581,11.859126;;, + 87;3; 0.274003,-0.357581,11.859126;;, + 88;3; 0.274003,-0.357581,11.859126;;, + 89;3; 0.274003,-0.357581,11.859126;;, + 90;3; 0.274003,-0.357581,11.859126;;, + 91;3; 0.274003,-0.357581,11.859126;;, + 92;3; 0.274003,-0.357581,11.859126;;, + 93;3; 0.274003,-0.357581,11.859126;;, + 94;3; 0.274003,-0.357581,11.859126;;, + 95;3; 0.274003,-0.357581,11.859126;;, + 96;3; 0.274003,-0.357581,11.859126;;, + 97;3; 0.274003,-0.357581,11.859126;;, + 98;3; 0.274003,-0.357581,11.859126;;, + 99;3; 0.274003,-0.357581,11.859126;;, + 100;3; 0.274003,-0.357581,11.859126;;, + 101;3; 0.274003,-0.357581,11.859126;;, + 102;3; 0.274003,-0.357581,11.859126;;, + 103;3; 0.274003,-0.357581,11.859126;;, + 104;3; 0.274003,-0.357581,11.859126;;, + 105;3; 0.274003,-0.357581,11.859126;;, + 106;3; 0.274003,-0.357581,11.859126;;, + 107;3; 0.274003,-0.357581,11.859126;;, + 108;3; 0.274003,-0.357581,11.859126;;, + 109;3; 0.274003,-0.357581,11.859126;;, + 110;3; 0.274003,-0.357581,11.859126;;, + 111;3; 0.274003,-0.357581,11.859126;;, + 112;3; 0.274003,-0.357581,11.859126;;, + 113;3; 0.274003,-0.357581,11.859126;;, + 114;3; 0.274003,-0.357581,11.859126;;, + 115;3; 0.274003,-0.357581,11.859126;;, + 116;3; 0.274003,-0.357581,11.859126;;, + 117;3; 0.274003,-0.357581,11.859126;;, + 118;3; 0.274003,-0.357581,11.859126;;, + 119;3; 0.274003,-0.357581,11.859126;;, + 120;3; 0.274003,-0.357581,11.859126;;, + 121;3; 0.274003,-0.357581,11.859126;;, + 122;3; 0.274003,-0.357581,11.859126;;, + 123;3; 0.274003,-0.357581,11.859126;;, + 124;3; 0.274003,-0.357581,11.859126;;, + 125;3; 0.274003,-0.357581,11.859126;;, + 126;3; 0.274003,-0.357581,11.859126;;, + 127;3; 0.274003,-0.357581,11.859126;;, + 128;3; 0.274003,-0.357581,11.859126;;, + 129;3; 0.274003,-0.357581,11.859126;;, + 130;3; 0.274003,-0.357581,11.859126;;, + 131;3; 0.274003,-0.357581,11.859126;;, + 132;3; 0.274003,-0.357581,11.859126;;, + 133;3; 0.274003,-0.357581,11.859126;;, + 134;3; 0.274003,-0.357581,11.859126;;, + 135;3; 0.274003,-0.357581,11.859126;;; + } + AnimationKey { //Rotation + 0; + 136; + 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;;; + } + AnimationKey { //Scale + 1; + 136; + 0;3; 3.749036, 3.749036, 3.749036;;, + 1;3; 3.749036, 3.749036, 3.749036;;, + 2;3; 3.749036, 3.749036, 3.749036;;, + 3;3; 3.749036, 3.749036, 3.749036;;, + 4;3; 3.749036, 3.749036, 3.749036;;, + 5;3; 3.749036, 3.749036, 3.749036;;, + 6;3; 3.749036, 3.749036, 3.749036;;, + 7;3; 3.749036, 3.749036, 3.749036;;, + 8;3; 3.749036, 3.749036, 3.749036;;, + 9;3; 3.749036, 3.749036, 3.749036;;, + 10;3; 3.749036, 3.749036, 3.749036;;, + 11;3; 3.749036, 3.749036, 3.749036;;, + 12;3; 3.749036, 3.749036, 3.749036;;, + 13;3; 3.749036, 3.749036, 3.749036;;, + 14;3; 3.749036, 3.749036, 3.749036;;, + 15;3; 3.749036, 3.749036, 3.749036;;, + 16;3; 3.749036, 3.749036, 3.749036;;, + 17;3; 3.749036, 3.749036, 3.749036;;, + 18;3; 3.749036, 3.749036, 3.749036;;, + 19;3; 3.749036, 3.749036, 3.749036;;, + 20;3; 3.749036, 3.749036, 3.749036;;, + 21;3; 3.749036, 3.749036, 3.749036;;, + 22;3; 3.749036, 3.749036, 3.749036;;, + 23;3; 3.749036, 3.749036, 3.749036;;, + 24;3; 3.749036, 3.749036, 3.749036;;, + 25;3; 3.749036, 3.749036, 3.749036;;, + 26;3; 3.749036, 3.749036, 3.749036;;, + 27;3; 3.749036, 3.749036, 3.749036;;, + 28;3; 3.749036, 3.749036, 3.749036;;, + 29;3; 3.749036, 3.749036, 3.749036;;, + 30;3; 3.749036, 3.749036, 3.749036;;, + 31;3; 3.749036, 3.749036, 3.749036;;, + 32;3; 3.749036, 3.749036, 3.749036;;, + 33;3; 3.749036, 3.749036, 3.749036;;, + 34;3; 3.749036, 3.749036, 3.749036;;, + 35;3; 3.749036, 3.749036, 3.749036;;, + 36;3; 3.749036, 3.749036, 3.749036;;, + 37;3; 3.749036, 3.749036, 3.749036;;, + 38;3; 3.749036, 3.749036, 3.749036;;, + 39;3; 3.749036, 3.749036, 3.749036;;, + 40;3; 3.749036, 3.749036, 3.749036;;, + 41;3; 3.749036, 3.749036, 3.749036;;, + 42;3; 3.749036, 3.749036, 3.749036;;, + 43;3; 3.749036, 3.749036, 3.749036;;, + 44;3; 3.749036, 3.749036, 3.749036;;, + 45;3; 3.749036, 3.749036, 3.749036;;, + 46;3; 3.749036, 3.749036, 3.749036;;, + 47;3; 3.749036, 3.749036, 3.749036;;, + 48;3; 3.749036, 3.749036, 3.749036;;, + 49;3; 3.749036, 3.749036, 3.749036;;, + 50;3; 3.749036, 3.749036, 3.749036;;, + 51;3; 3.749036, 3.749036, 3.749036;;, + 52;3; 3.749036, 3.749036, 3.749036;;, + 53;3; 3.749036, 3.749036, 3.749036;;, + 54;3; 3.749036, 3.749036, 3.749036;;, + 55;3; 3.749036, 3.749036, 3.749036;;, + 56;3; 3.749036, 3.749036, 3.749036;;, + 57;3; 3.749036, 3.749036, 3.749036;;, + 58;3; 3.749036, 3.749036, 3.749036;;, + 59;3; 3.749036, 3.749036, 3.749036;;, + 60;3; 3.749036, 3.749036, 3.749036;;, + 61;3; 3.749036, 3.749036, 3.749036;;, + 62;3; 3.749036, 3.749036, 3.749036;;, + 63;3; 3.749036, 3.749036, 3.749036;;, + 64;3; 3.749036, 3.749036, 3.749036;;, + 65;3; 3.749036, 3.749036, 3.749036;;, + 66;3; 3.749036, 3.749036, 3.749036;;, + 67;3; 3.749036, 3.749036, 3.749036;;, + 68;3; 3.749036, 3.749036, 3.749036;;, + 69;3; 3.749036, 3.749036, 3.749036;;, + 70;3; 3.749036, 3.749036, 3.749036;;, + 71;3; 3.749036, 3.749036, 3.749036;;, + 72;3; 3.749036, 3.749036, 3.749036;;, + 73;3; 3.749036, 3.749036, 3.749036;;, + 74;3; 3.749036, 3.749036, 3.749036;;, + 75;3; 3.749036, 3.749036, 3.749036;;, + 76;3; 3.749036, 3.749036, 3.749036;;, + 77;3; 3.749036, 3.749036, 3.749036;;, + 78;3; 3.749036, 3.749036, 3.749036;;, + 79;3; 3.749036, 3.749036, 3.749036;;, + 80;3; 3.749036, 3.749036, 3.749036;;, + 81;3; 3.749036, 3.749036, 3.749036;;, + 82;3; 3.749036, 3.749036, 3.749036;;, + 83;3; 3.749036, 3.749036, 3.749036;;, + 84;3; 3.749036, 3.749036, 3.749036;;, + 85;3; 3.749036, 3.749036, 3.749036;;, + 86;3; 3.749036, 3.749036, 3.749036;;, + 87;3; 3.749036, 3.749036, 3.749036;;, + 88;3; 3.749036, 3.749036, 3.749036;;, + 89;3; 3.749036, 3.749036, 3.749036;;, + 90;3; 3.749036, 3.749036, 3.749036;;, + 91;3; 3.749036, 3.749036, 3.749036;;, + 92;3; 3.749036, 3.749036, 3.749036;;, + 93;3; 3.749036, 3.749036, 3.749036;;, + 94;3; 3.749036, 3.749036, 3.749036;;, + 95;3; 3.749036, 3.749036, 3.749036;;, + 96;3; 3.749036, 3.749036, 3.749036;;, + 97;3; 3.749036, 3.749036, 3.749036;;, + 98;3; 3.749036, 3.749036, 3.749036;;, + 99;3; 3.749036, 3.749036, 3.749036;;, + 100;3; 3.749036, 3.749036, 3.749036;;, + 101;3; 3.749036, 3.749036, 3.749036;;, + 102;3; 3.749036, 3.749036, 3.749036;;, + 103;3; 3.749036, 3.749036, 3.749036;;, + 104;3; 3.749036, 3.749036, 3.749036;;, + 105;3; 3.749036, 3.749036, 3.749036;;, + 106;3; 3.749036, 3.749036, 3.749036;;, + 107;3; 3.749036, 3.749036, 3.749036;;, + 108;3; 3.749036, 3.749036, 3.749036;;, + 109;3; 3.749036, 3.749036, 3.749036;;, + 110;3; 3.749036, 3.749036, 3.749036;;, + 111;3; 3.749036, 3.749036, 3.749036;;, + 112;3; 3.749036, 3.749036, 3.749036;;, + 113;3; 3.749036, 3.749036, 3.749036;;, + 114;3; 3.749036, 3.749036, 3.749036;;, + 115;3; 3.749036, 3.749036, 3.749036;;, + 116;3; 3.749036, 3.749036, 3.749036;;, + 117;3; 3.749036, 3.749036, 3.749036;;, + 118;3; 3.749036, 3.749036, 3.749036;;, + 119;3; 3.749036, 3.749036, 3.749036;;, + 120;3; 3.749036, 3.749036, 3.749036;;, + 121;3; 3.749036, 3.749036, 3.749036;;, + 122;3; 3.749036, 3.749036, 3.749036;;, + 123;3; 3.749036, 3.749036, 3.749036;;, + 124;3; 3.749036, 3.749036, 3.749036;;, + 125;3; 3.749036, 3.749036, 3.749036;;, + 126;3; 3.749036, 3.749036, 3.749036;;, + 127;3; 3.749036, 3.749036, 3.749036;;, + 128;3; 3.749036, 3.749036, 3.749036;;, + 129;3; 3.749036, 3.749036, 3.749036;;, + 130;3; 3.749036, 3.749036, 3.749036;;, + 131;3; 3.749036, 3.749036, 3.749036;;, + 132;3; 3.749036, 3.749036, 3.749036;;, + 133;3; 3.749036, 3.749036, 3.749036;;, + 134;3; 3.749036, 3.749036, 3.749036;;, + 135;3; 3.749036, 3.749036, 3.749036;;; + } + } +} //End of AnimationSet diff --git a/mods/mobs/models/mobs_dirt_monster.png b/mods/mobs/models/mobs_dirt_monster.png new file mode 100644 index 00000000..14da90be Binary files /dev/null and b/mods/mobs/models/mobs_dirt_monster.png differ diff --git a/mods/mobs/models/mobs_dungeon_master.png b/mods/mobs/models/mobs_dungeon_master.png new file mode 100644 index 00000000..dbc9584f Binary files /dev/null and b/mods/mobs/models/mobs_dungeon_master.png differ diff --git a/mods/mobs/models/mobs_dungeon_master.x b/mods/mobs/models/mobs_dungeon_master.x new file mode 100644 index 00000000..613536a6 --- /dev/null +++ b/mods/mobs/models/mobs_dungeon_master.x @@ -0,0 +1,2830 @@ +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, 0.000000, 1.000000;; + } + Frame Armature_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.013544,-0.083633, 1.540002, 1.000000;; + } + Frame Armature_Bone_001 { + FrameTransformMatrix { + 0.996330, 0.085600, 0.000000, 0.000000, + 0.085600,-0.996329,-0.000000, 0.000000, + 0.000000, 0.000000,-1.000000, 0.000000, + 0.692679, 1.523193, 0.000000, 1.000000;; + } + } //End of Armature_Bone_001 + Frame Armature_Bone_002 { + FrameTransformMatrix { + 0.996330,-0.085600, 0.000000, 0.000000, + -0.085600,-0.996329,-0.000000, 0.000000, + 0.000000, 0.000000,-1.000000, 0.000000, + -0.714786, 1.523193, 0.000000, 1.000000;; + } + } //End of Armature_Bone_002 + Frame Armature_Bone_003 { + FrameTransformMatrix { + 1.000000,-0.000000,-0.000000, 0.000000, + -0.000000,-1.000000,-0.000001, 0.000000, + -0.000000, 0.000001,-1.000000, 0.000000, + 0.449504,-0.650638, 0.000000, 1.000000;; + } + } //End of Armature_Bone_003 + Frame Armature_Bone_004 { + FrameTransformMatrix { + 1.000000,-0.000000,-0.000000, 0.000000, + -0.000000,-1.000000,-0.000001, 0.000000, + -0.000000, 0.000001,-1.000000, 0.000000, + -0.478980,-0.650638, 0.000000, 1.000000;; + } + } //End of Armature_Bone_004 + Frame Armature_Bone_005 { + 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, 1.402718,-0.262646, 1.000000;; + } + } //End of Armature_Bone_005 + } //End of Armature_root + Frame Cube_004 { + 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 { //Cube_010 Mesh + 144; + 0.318756; 0.789709; 3.232342;, + 0.318756;-0.016418; 3.232342;, + 0.318756;-0.016418; 3.887055;, + 0.318756; 0.789709; 3.887055;, + 0.318756;-0.016418; 3.232342;, + -0.348305;-0.016418; 3.232342;, + -0.348305;-0.016418; 3.887055;, + 0.318756;-0.016418; 3.887055;, + -0.348305;-0.016418; 3.232342;, + -0.348305; 0.789709; 3.232342;, + -0.348305; 0.789709; 3.887055;, + -0.348305;-0.016418; 3.887055;, + -0.348305; 0.789709; 3.232342;, + 0.318756; 0.789709; 3.232342;, + 0.318756; 0.789709; 3.887055;, + -0.348305; 0.789709; 3.887055;, + -0.348305; 0.789709; 3.232342;, + -0.348305;-0.016418; 3.232342;, + 0.318756;-0.016418; 3.232342;, + 0.318756; 0.789709; 3.232342;, + 0.318756; 0.789709; 3.887055;, + 0.318756;-0.016418; 3.887055;, + -0.348305;-0.016418; 3.887055;, + -0.348305; 0.789709; 3.887055;, + -0.705105; 0.178616; 1.633796;, + -0.705105;-0.325428; 1.633796;, + -0.705105;-0.325428; 3.633796;, + -0.705105; 0.178616; 3.633796;, + -0.705105;-0.325428; 1.633796;, + -1.047768;-0.325428; 1.633796;, + -1.047768;-0.325428; 3.633796;, + -0.705105;-0.325428; 3.633796;, + -1.047768;-0.325428; 1.633796;, + -1.047768; 0.178616; 1.633796;, + -1.047768; 0.178616; 3.633796;, + -1.047768;-0.325428; 3.633796;, + -1.047768; 0.178616; 1.633796;, + -0.705105; 0.178616; 1.633796;, + -0.705105; 0.178616; 3.633796;, + -1.047768; 0.178616; 3.633796;, + -1.047768; 0.178616; 1.633796;, + -1.047768;-0.325428; 1.633796;, + -0.705105;-0.325428; 1.633796;, + -0.705105; 0.178616; 1.633796;, + -0.705105; 0.178616; 3.633796;, + -0.705105;-0.325428; 3.633796;, + -1.047768;-0.325428; 3.633796;, + -1.047768; 0.178616; 3.633796;, + 0.677945;-0.325428; 3.633796;, + 0.677945;-0.325429; 1.633796;, + 0.677945; 0.178616; 1.633796;, + 0.677945; 0.178616; 3.633796;, + 1.020608;-0.325428; 3.633796;, + 1.020608;-0.325429; 1.633796;, + 0.677945;-0.325429; 1.633796;, + 0.677945;-0.325428; 3.633796;, + 1.020608; 0.178616; 3.633796;, + 1.020608; 0.178616; 1.633796;, + 1.020608;-0.325429; 1.633796;, + 1.020608;-0.325428; 3.633796;, + 0.677945; 0.178616; 3.633796;, + 0.677945; 0.178616; 1.633796;, + 1.020608; 0.178616; 1.633796;, + 1.020608; 0.178616; 3.633796;, + 0.677945;-0.325429; 1.633796;, + 1.020608;-0.325429; 1.633796;, + 1.020608; 0.178616; 1.633796;, + 0.677945; 0.178616; 1.633796;, + 1.020608;-0.325428; 3.633796;, + 0.677945;-0.325428; 3.633796;, + 0.677945; 0.178616; 3.633796;, + 1.020608; 0.178616; 3.633796;, + 0.301218;-0.337135; 1.403617;, + 0.301218;-0.337135; 0.551304;, + 0.301218; 0.166909; 0.551303;, + 0.301218; 0.166909; 1.403617;, + 0.643881;-0.337135; 1.403617;, + 0.643881;-0.337135; 0.551304;, + 0.301218;-0.337135; 0.551304;, + 0.301218;-0.337135; 1.403617;, + 0.643881; 0.166909; 1.403617;, + 0.643881; 0.166909; 0.551303;, + 0.643881;-0.337135; 0.551304;, + 0.643881;-0.337135; 1.403617;, + 0.301218; 0.166909; 1.403617;, + 0.301218; 0.166909; 0.551303;, + 0.643881; 0.166909; 0.551303;, + 0.643881; 0.166909; 1.403617;, + 0.301218;-0.337135; 0.551304;, + 0.643881;-0.337135; 0.551304;, + 0.643881; 0.166909; 0.551303;, + 0.301218; 0.166909; 0.551303;, + 0.643881;-0.337135; 1.403617;, + 0.301218;-0.337135; 1.403617;, + 0.301218; 0.166909; 1.403617;, + 0.643881; 0.166909; 1.403617;, + -0.284914; 0.166909; 1.403617;, + -0.284914; 0.166909; 0.551303;, + -0.284914;-0.337135; 0.551304;, + -0.284914;-0.337135; 1.403617;, + -0.627577; 0.166909; 1.403617;, + -0.627577; 0.166909; 0.551303;, + -0.284914; 0.166909; 0.551303;, + -0.284914; 0.166909; 1.403617;, + -0.627577;-0.337135; 1.403617;, + -0.627577;-0.337135; 0.551304;, + -0.627577; 0.166909; 0.551303;, + -0.627577; 0.166909; 1.403617;, + -0.284914;-0.337135; 1.403617;, + -0.284914;-0.337135; 0.551304;, + -0.627577;-0.337135; 0.551304;, + -0.627577;-0.337135; 1.403617;, + -0.284914; 0.166909; 0.551303;, + -0.627577; 0.166909; 0.551303;, + -0.627577;-0.337135; 0.551304;, + -0.284914;-0.337135; 0.551304;, + -0.627577; 0.166909; 1.403617;, + -0.284914; 0.166909; 1.403617;, + -0.284914;-0.337135; 1.403617;, + -0.627577;-0.337135; 1.403617;, + 0.665053; 0.418757; 1.363851;, + 0.665052;-0.399357; 1.363851;, + 0.665052;-0.399357; 3.791156;, + 0.665053; 0.418757; 3.791156;, + 0.665052;-0.399357; 1.363851;, + -0.694601;-0.399357; 1.363851;, + -0.694601;-0.399357; 3.791156;, + 0.665052;-0.399357; 3.791156;, + -0.694601;-0.399357; 1.363851;, + -0.694601; 0.418757; 1.363851;, + -0.694601; 0.418757; 3.791156;, + -0.694601;-0.399357; 3.791156;, + -0.694601; 0.418757; 1.363851;, + 0.665053; 0.418757; 1.363851;, + 0.665053; 0.418757; 3.791156;, + -0.694601; 0.418757; 3.791156;, + -0.694601; 0.418757; 1.363851;, + -0.694601;-0.399357; 1.363851;, + 0.665052;-0.399357; 1.363851;, + 0.665053; 0.418757; 1.363851;, + 0.665053; 0.418757; 3.791156;, + 0.665052;-0.399357; 3.791156;, + -0.694601;-0.399357; 3.791156;, + -0.694601; 0.418757; 3.791156;; + 36; + 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;; + MeshNormals { //Cube_010 Normals + 144; + 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;, + -0.000000;-0.000000;-1.000000;, + -0.000000;-0.000000;-1.000000;, + -0.000000;-0.000000;-1.000000;, + -0.000000;-0.000000;-1.000000;, + 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; 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;-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; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 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; 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; 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;-0.000000;-1.000000;, + -0.000000;-0.000000;-1.000000;, + -0.000000;-0.000000;-1.000000;, + -0.000000;-0.000000;-1.000000;, + 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; 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;; + 36; + 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;; + } //End of Cube_010 Normals + MeshMaterialList { //Cube_010 Material List + 1; + 36; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 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;; + } + } //End of Cube_010 Material List + MeshTextureCoords { //Cube_010 UV Coordinates + 144; + 0.387426; 0.459860;, + 0.094289; 0.459861;, + 0.094288; 0.286103;, + 0.387425; 0.286102;, + 0.059786; 0.262016;, + 0.418026; 0.261439;, + 0.418026; 0.433032;, + 0.059786; 0.433610;, + 0.389470; 0.458599;, + 0.095582; 0.458598;, + 0.094832; 0.288305;, + 0.388720; 0.288306;, + 0.417249; 0.254044;, + 0.059948; 0.254044;, + 0.059948; 0.055927;, + 0.417249; 0.055927;, + 0.419848; 0.262019;, + 0.419848; 0.457484;, + 0.059357; 0.457485;, + 0.059357; 0.262019;, + 0.058928; 0.455355;, + 0.058928; 0.259888;, + 0.419832; 0.259888;, + 0.419832; 0.455355;, + 0.202332; 0.663934;, + 0.202332; 0.543673;, + 0.822669; 0.543673;, + 0.822669; 0.663933;, + 0.202981; 0.662859;, + 0.202981; 0.542598;, + 0.823317; 0.542598;, + 0.823317; 0.662858;, + 0.000739; 0.691902;, + 0.000739; 0.542773;, + 0.728975; 0.542773;, + 0.728975; 0.691902;, + 0.030510; 0.562226;, + 0.030510; 0.441965;, + 0.650847; 0.441965;, + 0.650847; 0.562226;, + 0.033201; 0.715150;, + 0.033201; 0.564904;, + 0.228521; 0.564904;, + 0.228521; 0.715150;, + 0.430636; 0.539772;, + 0.430636; 0.688205;, + 0.237674; 0.688205;, + 0.237674; 0.539772;, + 0.822669; 0.543673;, + 0.202332; 0.543673;, + 0.202332; 0.663934;, + 0.822669; 0.663933;, + 0.823317; 0.542598;, + 0.202981; 0.542598;, + 0.202981; 0.662859;, + 0.823317; 0.662858;, + 0.728975; 0.542773;, + 0.000739; 0.542773;, + 0.000739; 0.691902;, + 0.728975; 0.691902;, + 0.650847; 0.441965;, + 0.030510; 0.441965;, + 0.030510; 0.562226;, + 0.650847; 0.562226;, + 0.228521; 0.564904;, + 0.033201; 0.564904;, + 0.033201; 0.715150;, + 0.228521; 0.715150;, + 0.237674; 0.688205;, + 0.430636; 0.688205;, + 0.430636; 0.539772;, + 0.237674; 0.539772;, + 0.748471; 0.491562;, + 0.747890; 0.636872;, + 0.866287; 0.636872;, + 0.866868; 0.491562;, + 0.873832; 0.491802;, + 0.873832; 0.636858;, + 0.962763; 0.636858;, + 0.962763; 0.491802;, + 0.747989; 0.490711;, + 0.747989; 0.636113;, + 0.865800; 0.636482;, + 0.865800; 0.491080;, + 0.616586; 0.490156;, + 0.616586; 0.639542;, + 0.741276; 0.639912;, + 0.741276; 0.490526;, + 0.865800; 0.740186;, + 0.865800; 0.640286;, + 0.745723; 0.640286;, + 0.745723; 0.740186;, + 0.866661; 0.488915;, + 0.866661; 0.387572;, + 0.746584; 0.387572;, + 0.746584; 0.488915;, + 0.736344; 0.489306;, + 0.736344; 0.642007;, + 0.865321; 0.642007;, + 0.865321; 0.489306;, + 0.866972; 0.489546;, + 0.866972; 0.642541;, + 0.966818; 0.642541;, + 0.966818; 0.489546;, + 0.735819; 0.488455;, + 0.735819; 0.642172;, + 0.864157; 0.642541;, + 0.864157; 0.488825;, + 0.607233; 0.488825;, + 0.607233; 0.638211;, + 0.732937; 0.638580;, + 0.732937; 0.489194;, + 0.864157; 0.742441;, + 0.864157; 0.642541;, + 0.733349; 0.642541;, + 0.733349; 0.742441;, + 0.865096; 0.486660;, + 0.865096; 0.385316;, + 0.734288; 0.385316;, + 0.734288; 0.486660;, + 0.707025; 0.460657;, + 0.520830; 0.459733;, + 0.520830; 0.042592;, + 0.707025; 0.043516;, + 0.998302; 0.458761;, + 0.521381; 0.458761;, + 0.521381; 0.041735;, + 0.998302; 0.041735;, + 0.996909; 0.458865;, + 0.809286; 0.458288;, + 0.809287; 0.043455;, + 0.996911; 0.044033;, + 0.997038; 0.458464;, + 0.521559; 0.458463;, + 0.521559; 0.043516;, + 0.997039; 0.043516;, + 0.995549; 0.309499;, + 0.995549; 0.458510;, + 0.518634; 0.458509;, + 0.518634; 0.309498;, + 0.520935; 0.199387;, + 0.520935; 0.040936;, + 0.996415; 0.040936;, + 0.996415; 0.199387;; + } //End of Cube_010 UV Coordinates + XSkinMeshHeader { + 6; + 18; + 6; + } + SkinWeights { + "Armature_Bone_003"; + 72; + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119; + 0.000128, + 0.000000, + 0.000000, + 0.000000, + 0.000050, + 0.000000, + 0.000000, + 0.000128, + 0.000000, + 0.000000, + 0.000000, + 0.000050, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000050, + 0.000128, + 0.000000, + 0.000000, + 1.000000, + 1.000000, + 0.999758, + 1.000000, + 0.997048, + 0.990071, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.990071, + 0.997048, + 1.000000, + 0.999758, + 1.000000, + 1.000000, + 1.000000, + 0.990071, + 1.000000, + 0.999758, + 0.997048, + 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; + 1.000000,-0.000000,-0.000000, 0.000000, + 0.000000, 0.000001, 1.000000, 0.000000, + -0.000000,-1.000000, 0.000001, 0.000000, + -0.463048, 1.430443, 0.083633, 1.000000;; + } //End of Armature_Bone_003 Skin Weights + SkinWeights { + "Armature_root"; + 78; + 49, + 50, + 54, + 61, + 64, + 67, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143; + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000018, + 0.009929, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.009929, + 0.000018, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.009929, + 0.000000, + 0.000000, + 0.000018, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.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.013544,-2.081081,-0.083634, 1.000000;; + } //End of Armature_root Skin Weights + SkinWeights { + "Armature_Bone_004"; + 72; + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119; + 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.000242, + 0.000000, + 0.002934, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.002934, + 0.000000, + 0.000242, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000242, + 0.002934, + 0.000000, + 0.000000, + 0.000000, + 1.000000, + 1.000000, + 1.000000, + 0.999999, + 0.998068, + 0.999999, + 1.000000, + 1.000000, + 0.999920, + 0.999974, + 0.999999, + 0.998068, + 0.999999, + 1.000000, + 0.999974, + 0.999920, + 1.000000, + 0.999999, + 0.999974, + 1.000000, + 0.998068, + 1.000000, + 0.999999, + 0.999920; + 1.000000,-0.000000,-0.000000, 0.000000, + 0.000000, 0.000001, 1.000000, 0.000000, + -0.000000,-1.000000, 0.000001, 0.000000, + 0.465436, 1.430442, 0.083633, 1.000000;; + } //End of Armature_Bone_004 Skin Weights + SkinWeights { + "Armature_Bone_002"; + 72; + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119; + 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, + 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.000001, + 0.001932, + 0.000001, + 0.000000, + 0.000000, + 0.000080, + 0.000026, + 0.000001, + 0.001932, + 0.000001, + 0.000000, + 0.000026, + 0.000080, + 0.000000, + 0.000001, + 0.000026, + 0.000000, + 0.001932, + 0.000000, + 0.000001, + 0.000080; + 0.996330,-0.085600, 0.000000, 0.000000, + -0.000000, 0.000000, 1.000000, 0.000000, + -0.085600,-0.996330, 0.000000, 0.000000, + 1.007194, 3.531019, 0.083633, 1.000000;; + } //End of Armature_Bone_002 Skin Weights + SkinWeights { + "Armature_Bone_005"; + 48; + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71; + 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, + 0.000000, + 0.000000, + 0.000000, + 0.000004, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000004, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000004; + 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.013544,-0.179013,-3.483799, 1.000000;; + } //End of Armature_Bone_005 Skin Weights + SkinWeights { + "Armature_Bone_001"; + 48; + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95; + 0.999872, + 1.000000, + 1.000000, + 1.000000, + 0.999950, + 1.000000, + 1.000000, + 0.999872, + 0.999996, + 0.999999, + 1.000000, + 0.999950, + 1.000000, + 1.000000, + 0.999999, + 0.999996, + 1.000000, + 1.000000, + 0.999999, + 1.000000, + 0.999950, + 0.999872, + 1.000000, + 0.999996, + 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.996330, 0.085600, 0.000000, 0.000000, + -0.000000, 0.000000, 1.000000, 0.000000, + 0.085600,-0.996330, 0.000000, 0.000000, + -1.012157, 3.530593, 0.083633, 1.000000;; + } //End of Armature_Bone_001 Skin Weights + } //End of Cube_010 Mesh + } //End of Cube_004 + } //End of Armature +} //End of Root Frame +AnimationSet { + Animation { + {Armature} + AnimationKey { //Position + 2; + 51; + 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;;; + } + AnimationKey { //Rotation + 0; + 51; + 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;;; + } + AnimationKey { //Scale + 1; + 51; + 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;;; + } + } + Animation { + {Armature_root} + AnimationKey { //Position + 2; + 51; + 0;3; 0.013544,-0.083633, 1.540002;;, + 1;3; 0.013544,-0.083633, 1.540002;;, + 2;3; 0.013544,-0.083633, 1.540002;;, + 3;3; 0.013544,-0.083633, 1.540002;;, + 4;3; 0.013544,-0.083633, 1.540002;;, + 5;3; 0.013544,-0.083633, 1.540002;;, + 6;3; 0.013544,-0.083633, 1.540002;;, + 7;3; 0.013544,-0.083633, 1.540002;;, + 8;3; 0.013544,-0.083633, 1.540002;;, + 9;3; 0.013544,-0.083633, 1.540002;;, + 10;3; 0.013544,-0.083633, 1.540002;;, + 11;3; 0.013544,-0.083633, 1.540002;;, + 12;3; 0.013544,-0.083633, 1.540002;;, + 13;3; 0.013544,-0.083633, 1.540002;;, + 14;3; 0.013544,-0.083633, 1.540002;;, + 15;3; 0.013544,-0.083633, 1.540002;;, + 16;3; 0.013544,-0.083633, 1.540002;;, + 17;3; 0.013544,-0.083633, 1.540002;;, + 18;3; 0.013544,-0.083633, 1.540002;;, + 19;3; 0.013544,-0.083633, 1.540002;;, + 20;3; 0.013544,-0.083633, 1.540002;;, + 21;3; 0.013544,-0.083633, 1.540002;;, + 22;3; 0.013544,-0.083633, 1.540002;;, + 23;3; 0.013544,-0.083633, 1.540002;;, + 24;3; 0.013544,-0.083633, 1.540002;;, + 25;3; 0.013544,-0.083633, 1.540002;;, + 26;3; 0.013544,-0.083633, 1.540002;;, + 27;3; 0.013544,-0.083633, 1.540002;;, + 28;3; 0.013544,-0.083633, 1.540002;;, + 29;3; 0.013544,-0.083633, 1.540002;;, + 30;3; 0.013544,-0.083633, 1.540002;;, + 31;3; 0.013544,-0.083633, 1.540002;;, + 32;3; 0.013544,-0.083633, 1.540002;;, + 33;3; 0.013544,-0.083633, 1.540002;;, + 34;3; 0.013544,-0.083633, 1.540002;;, + 35;3; 0.013544,-0.083633, 1.540002;;, + 36;3; 0.013544,-0.083633, 1.540002;;, + 37;3; 0.013544,-0.083633, 1.540002;;, + 38;3; 0.013544,-0.083633, 1.540002;;, + 39;3; 0.013544,-0.083633, 1.540002;;, + 40;3; 0.013544,-0.083633, 1.540002;;, + 41;3; 0.013544,-0.083633, 1.540002;;, + 42;3; 0.013544,-0.083633, 1.540002;;, + 43;3; 0.013544,-0.083633, 1.540002;;, + 44;3; 0.013544,-0.083633, 1.540002;;, + 45;3; 0.013544,-0.083633, 1.540002;;, + 46;3; 0.013544,-0.083633, 1.540002;;, + 47;3; 0.013544,-0.083633, 1.540002;;, + 48;3; 0.013544,-0.083633, 1.540002;;, + 49;3; 0.013544,-0.083633, 1.540002;;, + 50;3; 0.013544,-0.083633, 1.540002;;; + } + AnimationKey { //Rotation + 0; + 51; + 0;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 1;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 2;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 3;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 4;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 5;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 6;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 7;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 8;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 9;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 10;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 11;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 12;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 13;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 14;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 15;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 16;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 17;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 18;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 19;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 20;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 21;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 22;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 23;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 24;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 25;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 26;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 27;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 28;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 29;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 30;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 31;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 32;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 33;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 34;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 35;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 36;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 37;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 38;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 39;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 40;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 41;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 42;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 43;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 44;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 45;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 46;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 47;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 48;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 49;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 50;4; -0.707107, 0.707107, 0.000000, 0.000000;;; + } + AnimationKey { //Scale + 1; + 51; + 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;;; + } + } + Animation { + {Armature_Bone_001} + AnimationKey { //Position + 2; + 51; + 0;3; 0.692679, 1.523193, 0.000000;;, + 1;3; 0.692679, 1.523193, 0.000000;;, + 2;3; 0.692679, 1.523193, 0.000000;;, + 3;3; 0.692679, 1.523193, 0.000000;;, + 4;3; 0.692679, 1.523193, 0.000000;;, + 5;3; 0.692679, 1.523193, 0.000000;;, + 6;3; 0.692679, 1.523193, 0.000000;;, + 7;3; 0.692679, 1.523193, 0.000000;;, + 8;3; 0.692679, 1.523193, 0.000000;;, + 9;3; 0.692679, 1.523193, 0.000000;;, + 10;3; 0.692679, 1.523193, 0.000000;;, + 11;3; 0.692679, 1.523193, 0.000000;;, + 12;3; 0.692679, 1.523193, 0.000000;;, + 13;3; 0.692679, 1.523193, 0.000000;;, + 14;3; 0.692679, 1.523193, 0.000000;;, + 15;3; 0.692679, 1.523193, 0.000000;;, + 16;3; 0.692679, 1.523193, 0.000000;;, + 17;3; 0.692679, 1.523193, 0.000000;;, + 18;3; 0.692679, 1.523193, 0.000000;;, + 19;3; 0.692679, 1.523193, 0.000000;;, + 20;3; 0.692679, 1.523193, 0.000000;;, + 21;3; 0.692679, 1.523193, 0.000000;;, + 22;3; 0.692679, 1.523193, 0.000000;;, + 23;3; 0.692679, 1.523193, 0.000000;;, + 24;3; 0.692679, 1.523193, 0.000000;;, + 25;3; 0.692679, 1.523193, 0.000000;;, + 26;3; 0.692679, 1.523193, 0.000000;;, + 27;3; 0.692679, 1.523193, 0.000000;;, + 28;3; 0.692679, 1.523193, 0.000000;;, + 29;3; 0.692679, 1.523193, 0.000000;;, + 30;3; 0.692679, 1.523193, 0.000000;;, + 31;3; 0.692679, 1.523193, 0.000000;;, + 32;3; 0.692679, 1.523193, 0.000000;;, + 33;3; 0.692679, 1.523193, 0.000000;;, + 34;3; 0.692679, 1.523193, 0.000000;;, + 35;3; 0.692679, 1.523193, 0.000000;;, + 36;3; 0.692679, 1.523193, 0.000000;;, + 37;3; 0.692679, 1.523193, 0.000000;;, + 38;3; 0.692679, 1.523193, 0.000000;;, + 39;3; 0.692679, 1.523193, 0.000000;;, + 40;3; 0.692679, 1.523193, 0.000000;;, + 41;3; 0.692679, 1.523193, 0.000000;;, + 42;3; 0.692679, 1.523193, 0.000000;;, + 43;3; 0.692679, 1.523193, 0.000000;;, + 44;3; 0.692679, 1.523193, 0.000000;;, + 45;3; 0.692679, 1.523193, 0.000000;;, + 46;3; 0.692679, 1.523193, 0.000000;;, + 47;3; 0.692679, 1.523193, 0.000000;;, + 48;3; 0.692679, 1.523193, 0.000000;;, + 49;3; 0.692679, 1.523193, 0.000000;;, + 50;3; 0.692679, 1.523193, 0.000000;;; + } + AnimationKey { //Rotation + 0; + 51; + 0;4; -0.000000, 0.999054, 0.043483, 0.000000;;, + 1;4; -0.000000, 0.999054, 0.043483, 0.000000;;, + 2;4; -0.002786, 0.998997, 0.043893,-0.000311;;, + 3;4; -0.010065, 0.998846, 0.045127,-0.000920;;, + 4;4; -0.017323, 0.998682, 0.047110,-0.001040;;, + 5;4; -0.020088, 0.998523, 0.049636,-0.000842;;, + 6;4; -0.018689, 0.998359, 0.052361,-0.000658;;, + 7;4; -0.014500, 0.998211, 0.054887,-0.000453;;, + 8;4; -0.008418, 0.998097, 0.056873,-0.000262;;, + 9;4; -0.002308, 0.998029, 0.058110,-0.000095;;, + 10;4; 0.002359, 0.998007, 0.058522, 0.000050;;, + 11;4; 0.006399, 0.998054, 0.058190, 0.000214;;, + 12;4; 0.010483, 0.998189, 0.057189, 0.000409;;, + 13;4; 0.013328, 0.998365, 0.055560, 0.000560;;, + 14;4; 0.014240, 0.998526, 0.053427, 0.000611;;, + 15;4; 0.013361, 0.998670, 0.051008, 0.000573;;, + 16;4; 0.010801, 0.998803, 0.048589, 0.000463;;, + 17;4; 0.007120, 0.998914, 0.046454, 0.000305;;, + 18;4; 0.003440, 0.998994, 0.044821, 0.000148;;, + 19;4; 0.000880, 0.999040, 0.043816, 0.000038;;, + 20;4; -0.000000, 0.999054, 0.043483, 0.000000;;, + 21;4; 0.018035, 0.997872, 0.043432, 0.000785;;, + 22;4; 0.065205, 0.994781, 0.043298, 0.002838;;, + 23;4; 0.112371, 0.991689, 0.043163, 0.004891;;, + 24;4; 0.130403, 0.990507, 0.043111, 0.005676;;, + 25;4; 0.121352, 0.990507, 0.043111, 0.005282;;, + 26;4; 0.094337, 0.990507, 0.043111, 0.004106;;, + 27;4; 0.051808, 0.990507, 0.043111, 0.002255;;, + 28;4; -0.000000, 0.990507, 0.043111, 0.000000;;, + 29;4; -0.051808, 0.990507, 0.043111,-0.002255;;, + 30;4; -0.094338, 0.990507, 0.043111,-0.004106;;, + 31;4; -0.121352, 0.990507, 0.043111,-0.005282;;, + 32;4; -0.130403, 0.990507, 0.043111,-0.005676;;, + 33;4; -0.126687, 0.991693, 0.043073,-0.005509;;, + 34;4; -0.108005, 0.994795, 0.042975,-0.004685;;, + 35;4; -0.065065, 0.997896, 0.042877,-0.002811;;, + 36;4; -0.000000, 0.999082, 0.042839, 0.000000;;, + 37;4; 0.120436, 0.986490, 0.042299, 0.005178;;, + 38;4; 0.276464, 0.957580, 0.041060, 0.011891;;, + 39;4; 0.341430, 0.938931, 0.040260, 0.014640;;, + 40;4; 0.341438, 0.934855, 0.008219, 0.003024;;, + 41;4; 0.340581, 0.936196,-0.059903,-0.021794;;, + 42;4; 0.340108, 0.935297,-0.091824,-0.033391;;, + 43;4; 0.340866, 0.926626,-0.010721,-0.004014;;, + 44;4; 0.339248, 0.913310, 0.162947, 0.058982;;, + 45;4; 0.330009, 0.907523, 0.244160, 0.088785;;, + 46;4; 0.275994, 0.920184, 0.216318, 0.076868;;, + 47;4; 0.157556, 0.953297, 0.143541, 0.044720;;, + 48;4; 0.043241, 0.986416, 0.070721, 0.012386;;, + 49;4; -0.000000, 0.999082, 0.042839, 0.000000;;, + 50;4; -0.000000, 0.999082, 0.042839, 0.000000;;; + } + AnimationKey { //Scale + 1; + 51; + 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;;; + } + } + Animation { + {Armature_Bone_002} + AnimationKey { //Position + 2; + 51; + 0;3; -0.714786, 1.523193, 0.000000;;, + 1;3; -0.714786, 1.523193, 0.000000;;, + 2;3; -0.714786, 1.523193, 0.000000;;, + 3;3; -0.714786, 1.523193, 0.000000;;, + 4;3; -0.714786, 1.523193, 0.000000;;, + 5;3; -0.714786, 1.523193, 0.000000;;, + 6;3; -0.714786, 1.523193, 0.000000;;, + 7;3; -0.714786, 1.523193, 0.000000;;, + 8;3; -0.714786, 1.523193, 0.000000;;, + 9;3; -0.714786, 1.523193, 0.000000;;, + 10;3; -0.714786, 1.523193, 0.000000;;, + 11;3; -0.714786, 1.523193, 0.000000;;, + 12;3; -0.714786, 1.523193, 0.000000;;, + 13;3; -0.714786, 1.523193, 0.000000;;, + 14;3; -0.714786, 1.523193, 0.000000;;, + 15;3; -0.714786, 1.523193, 0.000000;;, + 16;3; -0.714786, 1.523193, 0.000000;;, + 17;3; -0.714786, 1.523193, 0.000000;;, + 18;3; -0.714786, 1.523193, 0.000000;;, + 19;3; -0.714786, 1.523193, 0.000000;;, + 20;3; -0.714786, 1.523193, 0.000000;;, + 21;3; -0.714786, 1.523193, 0.000000;;, + 22;3; -0.714786, 1.523193, 0.000000;;, + 23;3; -0.714786, 1.523193, 0.000000;;, + 24;3; -0.714786, 1.523193, 0.000000;;, + 25;3; -0.714786, 1.523193, 0.000000;;, + 26;3; -0.714786, 1.523193, 0.000000;;, + 27;3; -0.714786, 1.523193, 0.000000;;, + 28;3; -0.714786, 1.523193, 0.000000;;, + 29;3; -0.714786, 1.523193, 0.000000;;, + 30;3; -0.714786, 1.523193, 0.000000;;, + 31;3; -0.714786, 1.523193, 0.000000;;, + 32;3; -0.714786, 1.523193, 0.000000;;, + 33;3; -0.714786, 1.523193, 0.000000;;, + 34;3; -0.714786, 1.523193, 0.000000;;, + 35;3; -0.714786, 1.523193, 0.000000;;, + 36;3; -0.714786, 1.523193, 0.000000;;, + 37;3; -0.714786, 1.523193, 0.000000;;, + 38;3; -0.714786, 1.523193, 0.000000;;, + 39;3; -0.714786, 1.523193, 0.000000;;, + 40;3; -0.714786, 1.523193, 0.000000;;, + 41;3; -0.714786, 1.523193, 0.000000;;, + 42;3; -0.714786, 1.523193, 0.000000;;, + 43;3; -0.714786, 1.523193, 0.000000;;, + 44;3; -0.714786, 1.523193, 0.000000;;, + 45;3; -0.714786, 1.523193, 0.000000;;, + 46;3; -0.714786, 1.523193, 0.000000;;, + 47;3; -0.714786, 1.523193, 0.000000;;, + 48;3; -0.714786, 1.523193, 0.000000;;, + 49;3; -0.714786, 1.523193, 0.000000;;, + 50;3; -0.714786, 1.523193, 0.000000;;; + } + AnimationKey { //Rotation + 0; + 51; + 0;4; -0.000000, 0.999110,-0.042196, 0.000000;;, + 1;4; -0.000000, 0.999110,-0.042196, 0.000000;;, + 2;4; 0.000704, 0.999095,-0.042530,-0.000030;;, + 3;4; 0.002688, 0.999050,-0.043530,-0.000115;;, + 4;4; 0.005236, 0.998976,-0.045136,-0.000224;;, + 5;4; 0.007220, 0.998879,-0.047179,-0.000310;;, + 6;4; 0.007924, 0.998770,-0.049383,-0.000340;;, + 7;4; 0.006508, 0.998640,-0.051425,-0.000298;;, + 8;4; 0.002376, 0.998489,-0.053027,-0.000169;;, + 9;4; -0.002908, 0.998369,-0.054024, 0.000011;;, + 10;4; -0.007235, 0.998326,-0.054356, 0.000183;;, + 11;4; -0.011320, 0.998359,-0.054088, 0.000391;;, + 12;4; -0.015247, 0.998449,-0.053278, 0.000624;;, + 13;4; -0.016679, 0.998551,-0.051959, 0.000715;;, + 14;4; -0.015923, 0.998656,-0.050234, 0.000683;;, + 15;4; -0.013685, 0.998770,-0.048279, 0.000587;;, + 16;4; -0.010274, 0.998882,-0.046323, 0.000441;;, + 17;4; -0.006406, 0.998979,-0.044597, 0.000275;;, + 18;4; -0.002996, 0.999051,-0.043278, 0.000128;;, + 19;4; -0.000757, 0.999095,-0.042466, 0.000032;;, + 20;4; -0.000000, 0.999110,-0.042196, 0.000000;;, + 21;4; -0.018036, 0.997928,-0.042146, 0.000762;;, + 22;4; -0.065209, 0.994836,-0.042014, 0.002754;;, + 23;4; -0.112377, 0.991744,-0.041884, 0.004746;;, + 24;4; -0.130410, 0.990562,-0.041835, 0.005508;;, + 25;4; -0.121359, 0.990562,-0.041835, 0.005126;;, + 26;4; -0.094343, 0.990562,-0.041835, 0.003985;;, + 27;4; -0.051811, 0.990562,-0.041835, 0.002188;;, + 28;4; -0.000000, 0.990562,-0.041835, 0.000000;;, + 29;4; 0.051811, 0.990562,-0.041835,-0.002188;;, + 30;4; 0.094343, 0.990562,-0.041835,-0.003984;;, + 31;4; 0.121359, 0.990562,-0.041835,-0.005125;;, + 32;4; 0.130410, 0.990562,-0.041835,-0.005508;;, + 33;4; 0.112382, 0.991740,-0.041974,-0.004746;;, + 34;4; 0.065231, 0.994822,-0.042337,-0.002753;;, + 35;4; 0.018053, 0.997904,-0.042701,-0.000761;;, + 36;4; -0.000000, 0.999082,-0.042839, 0.000000;;, + 37;4; 0.083385, 0.985795,-0.042270,-0.003592;;, + 38;4; 0.261893, 0.955695,-0.040979,-0.011274;;, + 39;4; 0.345980, 0.937264,-0.040189,-0.014835;;, + 40;4; 0.346156, 0.933706,-0.010684,-0.003973;;, + 41;4; 0.345424, 0.934834, 0.052066, 0.019224;;, + 42;4; 0.344990, 0.934584, 0.081436, 0.030061;;, + 43;4; 0.345701, 0.928801, 0.012686, 0.004769;;, + 44;4; 0.344806, 0.919766,-0.134517,-0.049452;;, + 45;4; 0.338064, 0.915821,-0.203345,-0.075062;;, + 46;4; 0.285075, 0.927335,-0.181147,-0.064951;;, + 47;4; 0.163548, 0.957448,-0.123111,-0.037771;;, + 48;4; 0.045024, 0.987565,-0.065056,-0.010458;;, + 49;4; -0.000000, 0.999082,-0.042839, 0.000000;;, + 50;4; -0.000000, 0.999082,-0.042839, 0.000000;;; + } + AnimationKey { //Scale + 1; + 51; + 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;;; + } + } + Animation { + {Armature_Bone_003} + AnimationKey { //Position + 2; + 51; + 0;3; 0.449504,-0.650638, 0.000000;;, + 1;3; 0.449504,-0.650638, 0.000000;;, + 2;3; 0.449504,-0.650638, 0.000000;;, + 3;3; 0.449504,-0.650638, 0.000000;;, + 4;3; 0.449504,-0.650638, 0.000000;;, + 5;3; 0.449504,-0.650638, 0.000000;;, + 6;3; 0.449504,-0.650638, 0.000000;;, + 7;3; 0.449504,-0.650638, 0.000000;;, + 8;3; 0.449504,-0.650638, 0.000000;;, + 9;3; 0.449504,-0.650638, 0.000000;;, + 10;3; 0.449504,-0.650638, 0.000000;;, + 11;3; 0.449504,-0.650638, 0.000000;;, + 12;3; 0.449504,-0.650638, 0.000000;;, + 13;3; 0.449504,-0.650638, 0.000000;;, + 14;3; 0.449504,-0.650638, 0.000000;;, + 15;3; 0.449504,-0.650638, 0.000000;;, + 16;3; 0.449504,-0.650638, 0.000000;;, + 17;3; 0.449504,-0.650638, 0.000000;;, + 18;3; 0.449504,-0.650638, 0.000000;;, + 19;3; 0.449504,-0.650638, 0.000000;;, + 20;3; 0.449504,-0.650638, 0.000000;;, + 21;3; 0.449504,-0.650638, 0.000000;;, + 22;3; 0.449504,-0.650638, 0.000000;;, + 23;3; 0.449504,-0.650638, 0.000000;;, + 24;3; 0.449504,-0.650638, 0.000000;;, + 25;3; 0.449504,-0.650638, 0.000000;;, + 26;3; 0.449504,-0.650638, 0.000000;;, + 27;3; 0.449504,-0.650638, 0.000000;;, + 28;3; 0.449504,-0.650638, 0.000000;;, + 29;3; 0.449504,-0.650638, 0.000000;;, + 30;3; 0.449504,-0.650638, 0.000000;;, + 31;3; 0.449504,-0.650638, 0.000000;;, + 32;3; 0.449504,-0.650638, 0.000000;;, + 33;3; 0.449504,-0.650638, 0.000000;;, + 34;3; 0.449504,-0.650638, 0.000000;;, + 35;3; 0.449504,-0.650638, 0.000000;;, + 36;3; 0.449504,-0.650638, 0.000000;;, + 37;3; 0.449504,-0.650638, 0.000000;;, + 38;3; 0.449504,-0.650638, 0.000000;;, + 39;3; 0.449504,-0.650638, 0.000000;;, + 40;3; 0.449504,-0.650638, 0.000000;;, + 41;3; 0.449504,-0.650638, 0.000000;;, + 42;3; 0.449504,-0.650638, 0.000000;;, + 43;3; 0.449504,-0.650638, 0.000000;;, + 44;3; 0.449504,-0.650638, 0.000000;;, + 45;3; 0.449504,-0.650638, 0.000000;;, + 46;3; 0.449504,-0.650638, 0.000000;;, + 47;3; 0.449504,-0.650638, 0.000000;;, + 48;3; 0.449504,-0.650638, 0.000000;;, + 49;3; 0.449504,-0.650638, 0.000000;;, + 50;3; 0.449504,-0.650638, 0.000000;;; + } + AnimationKey { //Rotation + 0; + 51; + 0;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 1;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 2;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 3;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 4;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 5;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 6;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 7;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 8;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 9;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 10;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 11;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 12;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 13;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 14;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 15;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 16;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 17;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 18;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 19;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 20;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 21;4; -0.018053, 0.998817,-0.000000,-0.000000;;, + 22;4; -0.065268, 0.995722,-0.000000,-0.000000;;, + 23;4; -0.112478, 0.992628,-0.000000,-0.000000;;, + 24;4; -0.130527, 0.991445,-0.000000,-0.000000;;, + 25;4; -0.121468, 0.991445,-0.000000,-0.000000;;, + 26;4; -0.094427, 0.991445,-0.000000,-0.000000;;, + 27;4; -0.051857, 0.991445,-0.000000,-0.000000;;, + 28;4; -0.000000, 0.991445,-0.000000,-0.000000;;, + 29;4; 0.051857, 0.991445,-0.000000,-0.000000;;, + 30;4; 0.094426, 0.991445,-0.000000,-0.000000;;, + 31;4; 0.121467, 0.991445,-0.000000,-0.000000;;, + 32;4; 0.130526, 0.991445,-0.000000,-0.000000;;, + 33;4; 0.112480, 0.992628,-0.000000,-0.000000;;, + 34;4; 0.065279, 0.995722,-0.000000,-0.000000;;, + 35;4; 0.018062, 0.998817,-0.000000,-0.000000;;, + 36;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 37;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 38;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 39;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 40;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 41;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 42;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 43;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 44;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 45;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 46;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 47;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 48;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 49;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 50;4; -0.000000, 1.000000,-0.000000,-0.000000;;; + } + AnimationKey { //Scale + 1; + 51; + 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;;; + } + } + Animation { + {Armature_Bone_004} + AnimationKey { //Position + 2; + 51; + 0;3; -0.478980,-0.650638, 0.000000;;, + 1;3; -0.478980,-0.650638, 0.000000;;, + 2;3; -0.478980,-0.650638, 0.000000;;, + 3;3; -0.478980,-0.650638, 0.000000;;, + 4;3; -0.478980,-0.650638, 0.000000;;, + 5;3; -0.478980,-0.650638, 0.000000;;, + 6;3; -0.478980,-0.650638, 0.000000;;, + 7;3; -0.478980,-0.650638, 0.000000;;, + 8;3; -0.478980,-0.650638, 0.000000;;, + 9;3; -0.478980,-0.650638, 0.000000;;, + 10;3; -0.478980,-0.650638, 0.000000;;, + 11;3; -0.478980,-0.650638, 0.000000;;, + 12;3; -0.478980,-0.650638, 0.000000;;, + 13;3; -0.478980,-0.650638, 0.000000;;, + 14;3; -0.478980,-0.650638, 0.000000;;, + 15;3; -0.478980,-0.650638, 0.000000;;, + 16;3; -0.478980,-0.650638, 0.000000;;, + 17;3; -0.478980,-0.650638, 0.000000;;, + 18;3; -0.478980,-0.650638, 0.000000;;, + 19;3; -0.478980,-0.650638, 0.000000;;, + 20;3; -0.478980,-0.650638, 0.000000;;, + 21;3; -0.478980,-0.650638, 0.000000;;, + 22;3; -0.478980,-0.650638, 0.000000;;, + 23;3; -0.478980,-0.650638, 0.000000;;, + 24;3; -0.478980,-0.650638, 0.000000;;, + 25;3; -0.478980,-0.650638, 0.000000;;, + 26;3; -0.478980,-0.650638, 0.000000;;, + 27;3; -0.478980,-0.650638, 0.000000;;, + 28;3; -0.478980,-0.650638, 0.000000;;, + 29;3; -0.478980,-0.650638, 0.000000;;, + 30;3; -0.478980,-0.650638, 0.000000;;, + 31;3; -0.478980,-0.650638, 0.000000;;, + 32;3; -0.478980,-0.650638, 0.000000;;, + 33;3; -0.478980,-0.650638, 0.000000;;, + 34;3; -0.478980,-0.650638, 0.000000;;, + 35;3; -0.478980,-0.650638, 0.000000;;, + 36;3; -0.478980,-0.650638, 0.000000;;, + 37;3; -0.478980,-0.650638, 0.000000;;, + 38;3; -0.478980,-0.650638, 0.000000;;, + 39;3; -0.478980,-0.650638, 0.000000;;, + 40;3; -0.478980,-0.650638, 0.000000;;, + 41;3; -0.478980,-0.650638, 0.000000;;, + 42;3; -0.478980,-0.650638, 0.000000;;, + 43;3; -0.478980,-0.650638, 0.000000;;, + 44;3; -0.478980,-0.650638, 0.000000;;, + 45;3; -0.478980,-0.650638, 0.000000;;, + 46;3; -0.478980,-0.650638, 0.000000;;, + 47;3; -0.478980,-0.650638, 0.000000;;, + 48;3; -0.478980,-0.650638, 0.000000;;, + 49;3; -0.478980,-0.650638, 0.000000;;, + 50;3; -0.478980,-0.650638, 0.000000;;; + } + AnimationKey { //Rotation + 0; + 51; + 0;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 1;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 2;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 3;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 4;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 5;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 6;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 7;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 8;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 9;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 10;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 11;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 12;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 13;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 14;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 15;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 16;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 17;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 18;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 19;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 20;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 21;4; 0.018052, 0.998817,-0.000000,-0.000000;;, + 22;4; 0.065267, 0.995722,-0.000000,-0.000000;;, + 23;4; 0.112477, 0.992628,-0.000000,-0.000000;;, + 24;4; 0.130526, 0.991445,-0.000000,-0.000000;;, + 25;4; 0.121467, 0.991445,-0.000000,-0.000000;;, + 26;4; 0.094426, 0.991445,-0.000000,-0.000000;;, + 27;4; 0.051856, 0.991445,-0.000000,-0.000000;;, + 28;4; -0.000000, 0.991445,-0.000000,-0.000000;;, + 29;4; -0.051857, 0.991445,-0.000000,-0.000000;;, + 30;4; -0.094427, 0.991445,-0.000000,-0.000000;;, + 31;4; -0.121468, 0.991445,-0.000000,-0.000000;;, + 32;4; -0.130527, 0.991445,-0.000000,-0.000000;;, + 33;4; -0.112481, 0.992628,-0.000000,-0.000000;;, + 34;4; -0.065280, 0.995722,-0.000000,-0.000000;;, + 35;4; -0.018062, 0.998817,-0.000000,-0.000000;;, + 36;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 37;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 38;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 39;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 40;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 41;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 42;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 43;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 44;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 45;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 46;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 47;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 48;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 49;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 50;4; -0.000000, 1.000000,-0.000000,-0.000000;;; + } + AnimationKey { //Scale + 1; + 51; + 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;;; + } + } + Animation { + {Armature_Bone_005} + AnimationKey { //Position + 2; + 51; + 0;3; 0.000000, 1.402718,-0.262646;;, + 1;3; 0.000000, 1.402718,-0.262646;;, + 2;3; 0.000000, 1.402718,-0.262646;;, + 3;3; 0.000000, 1.402718,-0.262646;;, + 4;3; 0.000000, 1.402718,-0.262646;;, + 5;3; 0.000000, 1.402718,-0.262646;;, + 6;3; 0.000000, 1.402718,-0.262646;;, + 7;3; 0.000000, 1.402718,-0.262646;;, + 8;3; 0.000000, 1.402718,-0.262646;;, + 9;3; 0.000000, 1.402718,-0.262646;;, + 10;3; 0.000000, 1.402718,-0.262646;;, + 11;3; 0.000000, 1.402718,-0.262646;;, + 12;3; 0.000000, 1.402718,-0.262646;;, + 13;3; 0.000000, 1.402718,-0.262646;;, + 14;3; 0.000000, 1.402718,-0.262646;;, + 15;3; 0.000000, 1.402718,-0.262646;;, + 16;3; 0.000000, 1.402718,-0.262646;;, + 17;3; 0.000000, 1.402718,-0.262646;;, + 18;3; 0.000000, 1.402718,-0.262646;;, + 19;3; 0.000000, 1.402718,-0.262646;;, + 20;3; 0.000000, 1.402718,-0.262646;;, + 21;3; 0.000000, 1.402718,-0.262646;;, + 22;3; 0.000000, 1.402718,-0.262646;;, + 23;3; 0.000000, 1.402718,-0.262646;;, + 24;3; 0.000000, 1.402718,-0.262646;;, + 25;3; 0.000000, 1.402718,-0.262646;;, + 26;3; 0.000000, 1.402718,-0.262646;;, + 27;3; 0.000000, 1.402718,-0.262646;;, + 28;3; 0.000000, 1.402718,-0.262646;;, + 29;3; 0.000000, 1.402718,-0.262646;;, + 30;3; 0.000000, 1.402718,-0.262646;;, + 31;3; 0.000000, 1.402718,-0.262646;;, + 32;3; 0.000000, 1.402718,-0.262646;;, + 33;3; 0.000000, 1.402718,-0.262646;;, + 34;3; 0.000000, 1.402718,-0.262646;;, + 35;3; 0.000000, 1.402718,-0.262646;;, + 36;3; 0.000000, 1.402718,-0.262646;;, + 37;3; 0.000000, 1.402718,-0.262646;;, + 38;3; 0.000000, 1.402718,-0.262646;;, + 39;3; 0.000000, 1.402718,-0.262646;;, + 40;3; 0.000000, 1.402718,-0.262646;;, + 41;3; 0.000000, 1.402718,-0.262646;;, + 42;3; 0.000000, 1.402718,-0.262646;;, + 43;3; 0.000000, 1.402718,-0.262646;;, + 44;3; 0.000000, 1.402718,-0.262646;;, + 45;3; 0.000000, 1.402718,-0.262646;;, + 46;3; 0.000000, 1.402718,-0.262646;;, + 47;3; 0.000000, 1.402718,-0.262646;;, + 48;3; 0.000000, 1.402718,-0.262646;;, + 49;3; 0.000000, 1.402718,-0.262646;;, + 50;3; 0.000000, 1.402718,-0.262646;;; + } + AnimationKey { //Rotation + 0; + 51; + 0;4; -0.707107,-0.707107, 0.000000, 0.000000;;, + 1;4; -0.707107,-0.707107, 0.000000, 0.000000;;, + 2;4; -0.706531,-0.707666,-0.000000, 0.000000;;, + 3;4; -0.704805,-0.709343,-0.000000, 0.000000;;, + 4;4; -0.702032,-0.712035,-0.000000, 0.000000;;, + 5;4; -0.698505,-0.715460,-0.000000, 0.000000;;, + 6;4; -0.694700,-0.719156,-0.000000, 0.000000;;, + 7;4; -0.691173,-0.722581,-0.000000, 0.000000;;, + 8;4; -0.688400,-0.725274,-0.000000, 0.000000;;, + 9;4; -0.686673,-0.726951,-0.000000, 0.000000;;, + 10;4; -0.686098,-0.727509,-0.000000, 0.000000;;, + 11;4; -0.686563,-0.727057,-0.000000, 0.000000;;, + 12;4; -0.687965,-0.725696,-0.000000, 0.000000;;, + 13;4; -0.690244,-0.723483,-0.000000, 0.000000;;, + 14;4; -0.693225,-0.720588,-0.000000, 0.000000;;, + 15;4; -0.696602,-0.717308,-0.000000, 0.000000;;, + 16;4; -0.699979,-0.714029,-0.000000, 0.000000;;, + 17;4; -0.702960,-0.711134,-0.000000, 0.000000;;, + 18;4; -0.705239,-0.708920,-0.000000, 0.000000;;, + 19;4; -0.706641,-0.707559,-0.000000, 0.000000;;, + 20;4; -0.707107,-0.707107,-0.000000, 0.000000;;, + 21;4; -0.706907,-0.706907,-0.006243, 0.006243;;, + 22;4; -0.706386,-0.706385,-0.022573, 0.022573;;, + 23;4; -0.705864,-0.705864,-0.038903, 0.038903;;, + 24;4; -0.705664,-0.705664,-0.045146, 0.045146;;, + 25;4; -0.705665,-0.705665,-0.042301, 0.042301;;, + 26;4; -0.705672,-0.705672,-0.033810, 0.033810;;, + 27;4; -0.705691,-0.705691,-0.020443, 0.020443;;, + 28;4; -0.705730,-0.705730,-0.004159, 0.004159;;, + 29;4; -0.705794,-0.705794, 0.012125,-0.012125;;, + 30;4; -0.705887,-0.705887, 0.025492,-0.025492;;, + 31;4; -0.706006,-0.706006, 0.033983,-0.033983;;, + 32;4; -0.706147,-0.706147, 0.036828,-0.036828;;, + 33;4; -0.706376,-0.706376, 0.031735,-0.031735;;, + 34;4; -0.706715,-0.706715, 0.018415,-0.018415;;, + 35;4; -0.707004,-0.707004, 0.005093,-0.005093;;, + 36;4; -0.707107,-0.707107, 0.000000, 0.000000;;, + 37;4; -0.707107,-0.707107, 0.000000, 0.000000;;, + 38;4; -0.707107,-0.707107, 0.000000, 0.000000;;, + 39;4; -0.707107,-0.707107, 0.000000, 0.000000;;, + 40;4; -0.707107,-0.707107, 0.000000, 0.000000;;, + 41;4; -0.707107,-0.707107, 0.000000, 0.000000;;, + 42;4; -0.707107,-0.707107, 0.000000, 0.000000;;, + 43;4; -0.707107,-0.707107, 0.000000, 0.000000;;, + 44;4; -0.707107,-0.707107, 0.000000, 0.000000;;, + 45;4; -0.707107,-0.707107, 0.000000, 0.000000;;, + 46;4; -0.707107,-0.707107, 0.000000, 0.000000;;, + 47;4; -0.707107,-0.707107, 0.000000, 0.000000;;, + 48;4; -0.707107,-0.707107, 0.000000, 0.000000;;, + 49;4; -0.707107,-0.707107, 0.000000, 0.000000;;, + 50;4; -0.707107,-0.707107, 0.000000, 0.000000;;; + } + AnimationKey { //Scale + 1; + 51; + 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;;; + } + } + Animation { + {Cube_004} + AnimationKey { //Position + 2; + 51; + 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;;; + } + AnimationKey { //Rotation + 0; + 51; + 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;;; + } + AnimationKey { //Scale + 1; + 51; + 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;;; + } + } +} //End of AnimationSet diff --git a/mods/mobs/models/mobs_oerkki.png b/mods/mobs/models/mobs_oerkki.png new file mode 100644 index 00000000..a2791fa4 Binary files /dev/null and b/mods/mobs/models/mobs_oerkki.png differ diff --git a/mods/mobs/models/mobs_oerkki.x b/mods/mobs/models/mobs_oerkki.x new file mode 100644 index 00000000..93f17019 --- /dev/null +++ b/mods/mobs/models/mobs_oerkki.x @@ -0,0 +1,3858 @@ +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.004457,-0.009078, 0.009382, 1.000000;; + } + Frame Armature_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_Right_Hand { + FrameTransformMatrix { + 0.986046,-0.166475, 0.000000, 0.000000, + -0.166475,-0.986046,-0.000000, 0.000000, + 0.000000, 0.000000,-1.000000, 0.000000, + -0.290493, 2.355259, 0.000000, 1.000000;; + } + } //End of Armature_Right_Hand + Frame Armature_Bone_002 { + FrameTransformMatrix { + 0.984885, 0.173207, 0.000000, 0.000000, + 0.173208,-0.984885,-0.000000, 0.000000, + -0.000000, 0.000000,-1.000000, 0.000000, + 0.259914, 2.347614, 0.000000, 1.000000;; + } + } //End of Armature_Bone_002 + Frame Armature_back { + FrameTransformMatrix { + 0.999771, 0.021400,-0.000000, 0.000000, + 0.021400,-0.999771,-0.000000, 0.000000, + -0.000000, 0.000000,-1.000000, 0.000000, + -0.013083, 2.483388,-0.152575, 1.000000;; + } + } //End of Armature_back + Frame Armature_root_001 { + 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.108388, 3.011908,-0.000000, 1.000000;; + } + } //End of Armature_root_001 + Frame Armature_root_002 { + 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.157125, 2.995103,-0.000000, 1.000000;; + } + } //End of Armature_root_002 + } //End of Armature_root + Frame Plane { + FrameTransformMatrix { + 0.800000, 0.000000, 0.000000, 0.000000, + 0.000000, 1.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + -0.006223, 0.000000,-0.013009, 1.000000;; + } + Mesh { //Plane_009 Mesh + 328; + -0.264941;-0.186165; 3.341238;, + -0.103393;-0.186165; 3.341238;, + -0.103393;-0.186165; 3.179691;, + -0.264941;-0.186165; 3.179691;, + -0.240167;-0.190033; 2.271265;, + 0.225248;-0.190033; 2.271265;, + 0.225248;-0.190033; 2.500485;, + -0.240167;-0.190033; 2.500485;, + -0.240167;-0.190033; 2.271265;, + -0.240167; 0.208188; 2.271265;, + 0.225248; 0.208188; 2.271265;, + 0.225248;-0.190033; 2.271265;, + 0.225248;-0.190033; 2.271265;, + 0.225248; 0.208188; 2.271265;, + 0.225248; 0.208188; 2.500485;, + 0.225248;-0.190033; 2.500485;, + -0.240167; 0.208188; 2.271265;, + -0.240167;-0.190033; 2.271265;, + -0.240167;-0.190033; 2.500485;, + -0.240167; 0.208188; 2.500485;, + 0.225248; 0.208188; 2.271265;, + -0.240167; 0.208188; 2.271265;, + -0.240167; 0.208188; 2.500485;, + 0.225248; 0.208188; 2.500485;, + -0.343863;-0.278758; 0.009591;, + -0.343863; 0.296914; 0.009591;, + -0.343863; 0.296914; 2.500485;, + -0.343863;-0.278758; 2.500485;, + -0.343863; 0.296914; 0.009591;, + 0.328944; 0.296914; 0.009591;, + 0.328944; 0.296914; 2.500485;, + -0.343863; 0.296914; 2.500485;, + 0.328944; 0.296914; 0.009591;, + 0.328944;-0.278758; 0.009591;, + 0.328944;-0.278758; 2.500485;, + 0.328944; 0.296914; 2.500485;, + 0.328944;-0.278758; 0.009591;, + -0.343863;-0.278758; 0.009591;, + -0.343863;-0.278758; 2.500485;, + 0.328944;-0.278758; 2.500485;, + -0.240167;-0.190033; 2.500485;, + 0.225248;-0.190033; 2.500485;, + 0.328944;-0.278758; 2.500485;, + -0.343863;-0.278758; 2.500485;, + -0.343863;-0.278758; 0.009591;, + 0.328944;-0.278758; 0.009591;, + 0.328944; 0.296914; 0.009591;, + -0.343863; 0.296914; 0.009591;, + 0.225248; 0.208188; 2.500485;, + -0.240167; 0.208188; 2.500485;, + -0.343863; 0.296914; 2.500485;, + 0.328944; 0.296914; 2.500485;, + -0.240167; 0.208188; 2.500485;, + -0.240167;-0.190033; 2.500485;, + -0.343863;-0.278758; 2.500485;, + -0.343863; 0.296914; 2.500485;, + 0.225248;-0.190033; 2.500485;, + 0.225248; 0.208188; 2.500485;, + 0.328944; 0.296914; 2.500485;, + 0.328944;-0.278758; 2.500485;, + 0.066079;-0.186165; 3.341238;, + 0.227626;-0.186165; 3.341238;, + 0.227626;-0.186165; 3.179691;, + 0.066079;-0.186165; 3.179691;, + -0.756877;-0.170174; 1.267350;, + -0.756877; 0.188330; 1.267350;, + -0.756877; 0.188330; 2.204780;, + -0.756877;-0.170174; 2.204780;, + -0.756877; 0.188330; 1.267350;, + -0.398373; 0.188330; 1.267350;, + -0.398373; 0.188330; 2.204780;, + -0.756877; 0.188330; 2.204780;, + -0.398373; 0.188330; 1.267350;, + -0.398373;-0.170174; 1.267350;, + -0.398373;-0.170174; 2.204780;, + -0.398373; 0.188330; 2.204780;, + -0.398373;-0.170174; 1.267350;, + -0.756877;-0.170174; 1.267350;, + -0.756877;-0.170174; 2.204780;, + -0.398373;-0.170174; 2.204780;, + -0.398373;-0.170174; 1.267350;, + -0.398373; 0.188330; 1.267350;, + -0.756877; 0.188330; 1.267350;, + -0.756877;-0.170174; 1.267350;, + -0.810406;-0.223703; 2.204780;, + -0.344844;-0.223703; 2.204780;, + -0.398373;-0.170174; 2.204780;, + -0.756877;-0.170174; 2.204780;, + -0.810406;-0.223703; 2.495205;, + -0.344844;-0.223703; 2.495205;, + -0.344844;-0.223703; 2.204780;, + -0.810406;-0.223703; 2.204780;, + -0.344844; 0.241859; 2.204780;, + -0.810406; 0.241859; 2.204780;, + -0.756877; 0.188330; 2.204780;, + -0.398373; 0.188330; 2.204780;, + -0.810406; 0.241859; 2.204780;, + -0.810406;-0.223703; 2.204780;, + -0.756877;-0.170174; 2.204780;, + -0.756877; 0.188330; 2.204780;, + -0.344844;-0.223703; 2.204780;, + -0.344844; 0.241859; 2.204780;, + -0.398373; 0.188330; 2.204780;, + -0.398373;-0.170174; 2.204780;, + -0.810406;-0.223703; 2.495205;, + -0.810406; 0.241859; 2.495205;, + -0.344844; 0.241859; 2.495205;, + -0.344844;-0.223703; 2.495205;, + -0.344844;-0.223703; 2.495205;, + -0.344844; 0.241859; 2.495205;, + -0.344844; 0.241859; 2.204780;, + -0.344844;-0.223703; 2.204780;, + -0.810406; 0.241859; 2.495205;, + -0.810406;-0.223703; 2.495205;, + -0.810406;-0.223703; 2.204780;, + -0.810406; 0.241859; 2.204780;, + -0.344844; 0.241859; 2.495205;, + -0.810406; 0.241859; 2.495205;, + -0.810406; 0.241859; 2.204780;, + -0.344844; 0.241859; 2.204780;, + 0.748465;-0.170174; 1.267350;, + 0.748465; 0.188330; 1.267350;, + 0.389960; 0.188330; 1.267350;, + 0.389960;-0.170174; 1.267350;, + 0.748465;-0.170174; 1.267350;, + 0.389960;-0.170174; 1.267350;, + 0.389960;-0.170174; 2.204780;, + 0.748465;-0.170174; 2.204780;, + 0.748465; 0.188330; 1.267350;, + 0.748465;-0.170174; 1.267350;, + 0.748465;-0.170174; 2.204780;, + 0.748465; 0.188330; 2.204780;, + 0.389960; 0.188330; 1.267350;, + 0.748465; 0.188330; 1.267350;, + 0.748465; 0.188330; 2.204780;, + 0.389960; 0.188330; 2.204780;, + 0.801994; 0.241859; 2.495205;, + 0.336431; 0.241859; 2.495205;, + 0.336431; 0.241859; 2.204780;, + 0.801994; 0.241859; 2.204780;, + 0.336431; 0.241859; 2.495205;, + 0.336431;-0.223703; 2.495205;, + 0.336431;-0.223703; 2.204780;, + 0.336431; 0.241859; 2.204780;, + 0.801994;-0.223703; 2.495205;, + 0.801994; 0.241859; 2.495205;, + 0.801994; 0.241859; 2.204780;, + 0.801994;-0.223703; 2.204780;, + 0.389960;-0.170174; 1.267350;, + 0.389960; 0.188330; 1.267350;, + 0.389960; 0.188330; 2.204780;, + 0.389960;-0.170174; 2.204780;, + 0.336431;-0.223703; 2.495205;, + 0.336431; 0.241859; 2.495205;, + 0.801994; 0.241859; 2.495205;, + 0.801994;-0.223703; 2.495205;, + 0.801994;-0.223703; 2.204780;, + 0.801994; 0.241859; 2.204780;, + 0.748465; 0.188330; 2.204780;, + 0.748465;-0.170174; 2.204780;, + 0.336431; 0.241859; 2.204780;, + 0.336431;-0.223703; 2.204780;, + 0.389960;-0.170174; 2.204780;, + 0.389960; 0.188330; 2.204780;, + 0.801994; 0.241859; 2.204780;, + 0.336431; 0.241859; 2.204780;, + 0.389960; 0.188330; 2.204780;, + 0.748465; 0.188330; 2.204780;, + 0.336431;-0.223703; 2.495205;, + 0.801994;-0.223703; 2.495205;, + 0.801994;-0.223703; 2.204780;, + 0.336431;-0.223703; 2.204780;, + 0.336431;-0.223703; 2.204780;, + 0.801994;-0.223703; 2.204780;, + 0.748465;-0.170174; 2.204780;, + 0.389960;-0.170174; 2.204780;, + -1.003181;-0.315065; 0.315260;, + -1.003181; 0.351327; 0.315260;, + -1.003181; 0.351327; 2.746741;, + -1.003181;-0.315065; 2.746741;, + -1.003181; 0.351327; 0.315260;, + -0.791421; 0.351327; 0.315260;, + -0.791421; 0.351327; 2.563308;, + -1.003181; 0.351327; 2.746741;, + -0.791421; 0.351327; 0.315260;, + -0.791421;-0.315065; 0.315260;, + -0.791421;-0.315065; 2.563308;, + -0.791421; 0.351327; 2.563308;, + -0.791421;-0.315065; 0.315260;, + -1.003181;-0.315065; 0.315260;, + -1.003181;-0.315065; 2.746741;, + -0.791421;-0.315065; 2.563308;, + -0.791421;-0.315065; 0.315260;, + -0.791421; 0.351327; 0.315260;, + -1.003181; 0.351327; 0.315260;, + -1.003181;-0.315065; 0.315260;, + -0.514026;-0.315065; 2.746741;, + -0.302267;-0.315065; 2.563308;, + -0.791421;-0.315065; 2.563308;, + -1.003181;-0.315065; 2.746741;, + -0.514026;-0.315065; 3.804539;, + -0.302267;-0.315065; 3.587476;, + -0.302267;-0.315065; 2.563308;, + -0.514026;-0.315065; 2.746741;, + -0.514026; 0.351327; 2.746741;, + -0.514026;-0.315065; 2.746741;, + -1.003181;-0.315065; 2.746741;, + -1.003181; 0.351327; 2.746741;, + -0.302267;-0.315065; 2.563308;, + -0.302267; 0.351327; 2.563308;, + -0.791421; 0.351327; 2.563308;, + -0.791421;-0.315065; 2.563308;, + -0.302267; 0.351327; 2.563308;, + -0.514026; 0.351327; 2.746741;, + -1.003181; 0.351327; 2.746741;, + -0.791421; 0.351327; 2.563308;, + 0.522487;-0.315065; 3.804539;, + 0.306120;-0.315065; 3.587476;, + -0.302267;-0.315065; 3.587476;, + -0.514026;-0.315065; 3.804539;, + -0.514026; 0.351327; 3.804539;, + -0.514026;-0.315065; 3.804539;, + -0.514026;-0.315065; 2.746741;, + -0.514026; 0.351327; 2.746741;, + -0.302267; 0.351327; 3.587476;, + -0.514026; 0.351327; 3.804539;, + -0.514026; 0.351327; 2.746741;, + -0.302267; 0.351327; 2.563308;, + -0.302267;-0.315065; 3.587476;, + -0.302267; 0.351327; 3.587476;, + -0.302267; 0.351327; 2.563308;, + -0.302267;-0.315065; 2.563308;, + 0.522487;-0.315065; 2.747673;, + 0.306120;-0.315065; 2.564813;, + 0.306120;-0.315065; 3.587476;, + 0.522487;-0.315065; 3.804539;, + 0.522487; 0.351327; 3.804539;, + 0.522487;-0.315065; 3.804539;, + -0.514026;-0.315065; 3.804539;, + -0.514026; 0.351327; 3.804539;, + 0.306120; 0.351327; 3.587476;, + 0.522487; 0.351327; 3.804539;, + -0.514026; 0.351327; 3.804539;, + -0.302267; 0.351327; 3.587476;, + 0.306120;-0.315065; 3.587476;, + 0.306120; 0.351327; 3.587476;, + -0.302267; 0.351327; 3.587476;, + -0.302267;-0.315065; 3.587476;, + 1.002260;-0.315065; 2.747673;, + 0.805352;-0.315065; 2.564813;, + 0.306120;-0.315065; 2.564813;, + 0.522487;-0.315065; 2.747673;, + 0.306120;-0.315065; 2.564813;, + 0.306120; 0.351327; 2.564813;, + 0.306120; 0.351327; 3.587476;, + 0.306120;-0.315065; 3.587476;, + 0.522487; 0.351327; 2.747673;, + 0.522487;-0.315065; 2.747673;, + 0.522487;-0.315065; 3.804539;, + 0.522487; 0.351327; 3.804539;, + 0.306120; 0.351327; 2.564813;, + 0.522487; 0.351327; 2.747673;, + 0.522487; 0.351327; 3.804539;, + 0.306120; 0.351327; 3.587476;, + 1.002260;-0.315065; 0.313008;, + 0.805352;-0.315065; 0.312940;, + 0.805352;-0.315065; 2.564813;, + 1.002260;-0.315065; 2.747673;, + 1.002260; 0.351327; 2.747673;, + 1.002260;-0.315065; 2.747673;, + 0.522487;-0.315065; 2.747673;, + 0.522487; 0.351327; 2.747673;, + 0.805352; 0.351327; 2.564813;, + 1.002260; 0.351327; 2.747673;, + 0.522487; 0.351327; 2.747673;, + 0.306120; 0.351327; 2.564813;, + 0.805352;-0.315065; 2.564813;, + 0.805352; 0.351327; 2.564813;, + 0.306120; 0.351327; 2.564813;, + 0.306120;-0.315065; 2.564813;, + 1.002260;-0.315065; 0.313008;, + 1.002260; 0.351327; 0.313008;, + 0.805352; 0.351327; 0.312940;, + 0.805352;-0.315065; 0.312940;, + 0.805352; 0.351327; 0.312940;, + 1.002260; 0.351327; 0.313008;, + 1.002260; 0.351327; 2.747673;, + 0.805352; 0.351327; 2.564813;, + 0.805352;-0.315065; 0.312940;, + 0.805352; 0.351327; 0.312940;, + 0.805352; 0.351327; 2.564813;, + 0.805352;-0.315065; 2.564813;, + 1.002260; 0.351327; 0.313008;, + 1.002260;-0.315065; 0.313008;, + 1.002260;-0.315065; 2.747673;, + 1.002260; 0.351327; 2.747673;, + 0.306120; 0.351327; 3.587476;, + -0.302267; 0.351327; 3.587476;, + -0.302267; 0.351327; 2.563308;, + 0.306120; 0.351327; 2.564813;, + -0.302267; 0.351327; 0.328521;, + 0.306120; 0.351327; 0.330025;, + 0.306120; 0.351327; 2.564813;, + -0.302267; 0.351327; 2.563308;, + 0.805352; 0.351327; 0.312940;, + 0.805352; 0.351327; 2.564813;, + 0.306120; 0.351327; 2.564813;, + 0.306120; 0.351327; 0.330025;, + -0.302267; 0.351327; 2.563308;, + -0.791421; 0.351327; 2.563308;, + -0.791421; 0.351327; 0.315260;, + -0.302267; 0.351327; 0.328521;, + -0.306120; 0.294175; 3.587476;, + 0.302267; 0.294175; 3.587476;, + 0.302267; 0.294175; 2.563308;, + -0.306120; 0.294175; 2.564813;, + 0.302267; 0.294175; 0.328521;, + -0.306120; 0.294175; 0.330025;, + -0.306120; 0.294175; 2.564813;, + 0.302267; 0.294175; 2.563308;, + -0.805353; 0.294175; 0.312940;, + -0.805353; 0.294175; 2.564813;, + -0.306120; 0.294175; 2.564813;, + -0.306120; 0.294175; 0.330025;, + 0.302267; 0.294175; 2.563308;, + 0.791421; 0.294175; 2.563308;, + 0.791421; 0.294175; 0.315260;, + 0.302267; 0.294175; 0.328521;; + 82; + 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;; + MeshNormals { //Plane_009 Normals + 328; + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000; 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;, + -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;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000000; 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;, + 0.000000;-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;-1.000000;, + 0.000000;-0.000000;-1.000000;, + 0.000000;-0.000000;-1.000000;, + 0.000000;-0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -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;, + 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;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -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;-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;, + 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;-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;, + -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;, + 0.000000; 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;, + 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;, + 0.000344; 0.000000;-1.000000;, + 0.000344; 0.000000;-1.000000;, + 0.000344; 0.000000;-1.000000;, + 0.000344; 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; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;; + 82; + 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;; + } //End of Plane_009 Normals + MeshMaterialList { //Plane_009 Material List + 1; + 82; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 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;; + } + } //End of Plane_009 Material List + MeshTextureCoords { //Plane_009 UV Coordinates + 328; + 0.590104; 0.824304;, + 0.684339; 0.824304;, + 0.684339; 0.918540;, + 0.590104; 0.918540;, + 0.083084; 0.002736;, + 0.083084; 0.002736;, + 0.083084; 0.002736;, + 0.083084; 0.002736;, + 0.125368; 0.490119;, + 0.220998; 0.490119;, + 0.220998; 0.601885;, + 0.125368; 0.601885;, + 0.220998; 0.574180;, + 0.125368; 0.574180;, + 0.125368; 0.519134;, + 0.220998; 0.519134;, + 0.147080; 0.595536;, + 0.147080; 0.499906;, + 0.202125; 0.499906;, + 0.202125; 0.595536;, + 0.146076; 0.601885;, + 0.146076; 0.490119;, + 0.201122; 0.490119;, + 0.201122; 0.601885;, + 0.829089; 0.044516;, + 0.983477; 0.044516;, + 0.983477; 0.762585;, + 0.829089; 0.762585;, + 0.813932; 0.043009;, + 0.994371; 0.043009;, + 0.994371; 0.761078;, + 0.813932; 0.761078;, + 0.827629; 0.043009;, + 0.982018; 0.043009;, + 0.982018; 0.761078;, + 0.827629; 0.761078;, + 0.988587; 0.818148;, + 0.815138; 0.818148;, + 0.815138; 0.115436;, + 0.988587; 0.115436;, + 0.184396; 0.491532;, + 0.184396; 0.603298;, + 0.163090; 0.628199;, + 0.163090; 0.466630;, + 0.746600; 0.513391;, + 0.746600; 0.778189;, + 0.520031; 0.778190;, + 0.520031; 0.513391;, + 0.163222; 0.602319;, + 0.163222; 0.490553;, + 0.184529; 0.465652;, + 0.184529; 0.627221;, + 0.161564; 0.595141;, + 0.161564; 0.499511;, + 0.186466; 0.478204;, + 0.186466; 0.616447;, + 0.186336; 0.500163;, + 0.186336; 0.595793;, + 0.161434; 0.617100;, + 0.161434; 0.478857;, + 0.590103; 0.824304;, + 0.684339; 0.824304;, + 0.684339; 0.918539;, + 0.590104; 0.918540;, + 0.700007; 0.967919;, + 0.700007; 0.858136;, + 0.987072; 0.858136;, + 0.987072; 0.967919;, + 0.700007; 0.969657;, + 0.700007; 0.859874;, + 0.987072; 0.859874;, + 0.987072; 0.969657;, + 0.700007; 0.967792;, + 0.700007; 0.858009;, + 0.987072; 0.858009;, + 0.987072; 0.967792;, + 0.700007; 0.969530;, + 0.700007; 0.859747;, + 0.987072; 0.859747;, + 0.987072; 0.969530;, + 0.897067; 0.969657;, + 0.787284; 0.969657;, + 0.787284; 0.859874;, + 0.897067; 0.859874;, + 0.866803; 0.495976;, + 0.937974; 0.495976;, + 0.929684; 0.506969;, + 0.874959; 0.506955;, + 0.868177; 0.493911;, + 0.939769; 0.493911;, + 0.939769; 0.553131;, + 0.868177; 0.553131;, + 0.938927; 0.549502;, + 0.867756; 0.549502;, + 0.876047; 0.538508;, + 0.930772; 0.538522;, + 0.938937; 0.548225;, + 0.867766; 0.548225;, + 0.876057; 0.537231;, + 0.930782; 0.537245;, + 0.868729; 0.496859;, + 0.939900; 0.496859;, + 0.931610; 0.507852;, + 0.876885; 0.507838;, + 0.867766; 0.571553;, + 0.867766; 0.476620;, + 0.939358; 0.476620;, + 0.939358; 0.571553;, + 0.867766; 0.493911;, + 0.939358; 0.493911;, + 0.939358; 0.553131;, + 0.867766; 0.553131;, + 0.882070; 0.572285;, + 0.882070; 0.477352;, + 0.926730; 0.477352;, + 0.926730; 0.572285;, + 0.939769; 0.551122;, + 0.868177; 0.551122;, + 0.868177; 0.491902;, + 0.939769; 0.491902;, + 0.897067; 0.969657;, + 0.787284; 0.969657;, + 0.787284; 0.859874;, + 0.897067; 0.859874;, + 0.700007; 0.969530;, + 0.700007; 0.859747;, + 0.987072; 0.859747;, + 0.987072; 0.969530;, + 0.700007; 0.967792;, + 0.700007; 0.858009;, + 0.987072; 0.858009;, + 0.987072; 0.967792;, + 0.700007; 0.969657;, + 0.700007; 0.859874;, + 0.987072; 0.859874;, + 0.987072; 0.969657;, + 0.939769; 0.551122;, + 0.868177; 0.551122;, + 0.868177; 0.491902;, + 0.939769; 0.491902;, + 0.882070; 0.572285;, + 0.882070; 0.477352;, + 0.926730; 0.477352;, + 0.926730; 0.572285;, + 0.867766; 0.493911;, + 0.939358; 0.493911;, + 0.939358; 0.553131;, + 0.867766; 0.553131;, + 0.700007; 0.967919;, + 0.700007; 0.858136;, + 0.987072; 0.858136;, + 0.987072; 0.967919;, + 0.867766; 0.571553;, + 0.867766; 0.476620;, + 0.939358; 0.476620;, + 0.939358; 0.571553;, + 0.868729; 0.496859;, + 0.939900; 0.496859;, + 0.931610; 0.507852;, + 0.876885; 0.507838;, + 0.938937; 0.548225;, + 0.867766; 0.548225;, + 0.876057; 0.537231;, + 0.930782; 0.537245;, + 0.938927; 0.549502;, + 0.867756; 0.549502;, + 0.876047; 0.538508;, + 0.930772; 0.538522;, + 0.868177; 0.493911;, + 0.939769; 0.493911;, + 0.939769; 0.553131;, + 0.868177; 0.553131;, + 0.866803; 0.495976;, + 0.937974; 0.495976;, + 0.929684; 0.506969;, + 0.874959; 0.506955;, + 0.103963; 0.380808;, + 0.103963; 0.203072;, + 0.752472; 0.203072;, + 0.752472; 0.380808;, + 0.100685; 0.369755;, + 0.098221; 0.303170;, + 0.606799; 0.303124;, + 0.650386; 0.369755;, + 0.117449; 0.202819;, + 0.117449; 0.025083;, + 0.717034; 0.025083;, + 0.717034; 0.202819;, + 0.102377; 0.617822;, + 0.104464; 0.552160;, + 0.661450; 0.550091;, + 0.603217; 0.617823;, + 0.679364; 0.385480;, + 0.679364; 0.563216;, + 0.622885; 0.563216;, + 0.622885; 0.385480;, + 0.676160; 0.130421;, + 0.676159; 0.205144;, + 0.590739; 0.106532;, + 0.590739; 0.031810;, + 0.448501; 0.692908;, + 0.390608; 0.749388;, + 0.117449; 0.749388;, + 0.166373; 0.692908;, + 0.548351; 0.171150;, + 0.726087; 0.171150;, + 0.726087; 0.301614;, + 0.548351; 0.301614;, + 0.641753; 0.371055;, + 0.641753; 0.548791;, + 0.511288; 0.548791;, + 0.511288; 0.371055;, + 0.729588; 0.563216;, + 0.680664; 0.506737;, + 0.680664; 0.376272;, + 0.729588; 0.432751;, + 0.737833; 0.317205;, + 0.679940; 0.259497;, + 0.679940; 0.097232;, + 0.737833; 0.040753;, + 0.383486; 0.028454;, + 0.383486; 0.206190;, + 0.101357; 0.206190;, + 0.101357; 0.028454;, + 0.375536; 0.684708;, + 0.433430; 0.741188;, + 0.151301; 0.741188;, + 0.102377; 0.684709;, + 0.375537; 0.371055;, + 0.375537; 0.548791;, + 0.102377; 0.548791;, + 0.102377; 0.371055;, + 0.166220; 0.691608;, + 0.117449; 0.633900;, + 0.390207; 0.633900;, + 0.448100; 0.691608;, + 0.315381; 0.303860;, + 0.137645; 0.303860;, + 0.137645; 0.027408;, + 0.315381; 0.027408;, + 0.785280; 0.376460;, + 0.727387; 0.434168;, + 0.727387; 0.157716;, + 0.785280; 0.214195;, + 0.534337; 0.385480;, + 0.534337; 0.563216;, + 0.372072; 0.563216;, + 0.372072; 0.385480;, + 0.711585; 0.735744;, + 0.662796; 0.683243;, + 0.662750; 0.550091;, + 0.711541; 0.607782;, + 0.316681; 0.205144;, + 0.316681; 0.027408;, + 0.589439; 0.027408;, + 0.589439; 0.205144;, + 0.088891; 0.563216;, + 0.088891; 0.385480;, + 0.370772; 0.385480;, + 0.370772; 0.563216;, + 0.316681; 0.303860;, + 0.365452; 0.246152;, + 0.647332; 0.246152;, + 0.589439; 0.303860;, + 0.105206; 0.683409;, + 0.102377; 0.619185;, + 0.593508; 0.619123;, + 0.635692; 0.683409;, + 0.548351; 0.028454;, + 0.726087; 0.028454;, + 0.726087; 0.156416;, + 0.548351; 0.156416;, + 0.621585; 0.487177;, + 0.618235; 0.558770;, + 0.535637; 0.461037;, + 0.535637; 0.385480;, + 0.509988; 0.371055;, + 0.509988; 0.548791;, + 0.376836; 0.548791;, + 0.376836; 0.371055;, + 0.695570; 0.371055;, + 0.695570; 0.548791;, + 0.643053; 0.548791;, + 0.643053; 0.371055;, + 0.136796; 0.384180;, + 0.139107; 0.321101;, + 0.678640; 0.318505;, + 0.618236; 0.384180;, + 0.103963; 0.559844;, + 0.103963; 0.382108;, + 0.704568; 0.382108;, + 0.704568; 0.559844;, + 0.103963; 0.201772;, + 0.103963; 0.024037;, + 0.753321; 0.024036;, + 0.753321; 0.201773;, + 0.547051; 0.301614;, + 0.384786; 0.301614;, + 0.384786; 0.028454;, + 0.547051; 0.028856;, + 0.117449; 0.366384;, + 0.117850; 0.204119;, + 0.713898; 0.204119;, + 0.713497; 0.366384;, + 0.117449; 0.500836;, + 0.718053; 0.500836;, + 0.718053; 0.367684;, + 0.122006; 0.367684;, + 0.717033; 0.502136;, + 0.717033; 0.632601;, + 0.117449; 0.632601;, + 0.120986; 0.502136;, + 0.547051; 0.291078;, + 0.384786; 0.291078;, + 0.384786; 0.017919;, + 0.547051; 0.018320;, + 0.117449; 0.355848;, + 0.117850; 0.193583;, + 0.713898; 0.193583;, + 0.713497; 0.355848;, + 0.117449; 0.490300;, + 0.718053; 0.490300;, + 0.718053; 0.357148;, + 0.122006; 0.357148;, + 0.717033; 0.491600;, + 0.717033; 0.622065;, + 0.117449; 0.622065;, + 0.120986; 0.491601;; + } //End of Plane_009 UV Coordinates + XSkinMeshHeader { + 3; + 9; + 6; + } + SkinWeights { + "Armature_back"; + 319; + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 65, + 66, + 67, + 68, + 70, + 71, + 74, + 75, + 78, + 79, + 82, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 263, + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327; + 0.000021, + 0.000000, + 0.000000, + 0.000000, + 0.000037, + 0.004535, + 0.000000, + 0.000001, + 0.000037, + 0.000000, + 0.000000, + 0.004535, + 0.004535, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000037, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000039, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000039, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000039, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000039, + 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.000011, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000011, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000011, + 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, + 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, + 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, + 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, + 1.000000, + 1.000000, + 1.000000, + 1.000000; + 0.799817, 0.017120,-0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + 0.021400,-0.999771, 0.000000, 0.000000, + -0.046566, 2.495971,-0.152575, 1.000000;; + } //End of Armature_back Skin Weights + SkinWeights { + "Armature_Bone_002"; + 124; + 5, + 6, + 10, + 11, + 12, + 13, + 14, + 15, + 20, + 23, + 30, + 34, + 35, + 39, + 41, + 42, + 48, + 51, + 56, + 57, + 58, + 59, + 69, + 72, + 73, + 76, + 80, + 81, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 232, + 233, + 248, + 249, + 250, + 251, + 252, + 253, + 256, + 257, + 260, + 261, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 286, + 287, + 290, + 291, + 294, + 295, + 299, + 302, + 305, + 306, + 314, + 319, + 324, + 325; + 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, + 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, + 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.787908, 0.138566,-0.000000, 0.000000, + -0.000000, 0.000000, 1.000000, 0.000000, + 0.173208,-0.984885, 0.000000, 0.000000, + -0.670992, 2.278846,-0.000000, 1.000000;; + } //End of Armature_Bone_002 Skin Weights + SkinWeights { + "Armature_Right_Hand"; + 56; + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119; + 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.999989, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.999989, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.999989, + 1.000000, + 1.000000; + 0.788837,-0.133180, 0.000000, 0.000000, + -0.000000, 0.000000, 1.000000, 0.000000, + -0.166475,-0.986046, 0.000000, 0.000000, + 0.674561, 2.287896,-0.000000, 1.000000;; + } //End of Armature_Right_Hand Skin Weights + SkinWeights { + "Armature_root_001"; + 4; + 60, + 61, + 62, + 63; + 1.000000, + 1.000000, + 1.000000, + 1.000000; + 0.800000, 0.000000, 0.000000, 0.000000, + 0.000000, 0.000000,-1.000000, 0.000000, + 0.000000, 1.000000, 0.000000, 0.000000, + -0.114611,-3.024917,-0.000000, 1.000000;; + } //End of Armature_root_001 Skin Weights + SkinWeights { + "Armature_root_002"; + 4; + 0, + 1, + 2, + 3; + 0.999979, + 1.000000, + 1.000000, + 1.000000; + 0.800000, 0.000000, 0.000000, 0.000000, + 0.000000, 0.000000,-1.000000, 0.000000, + 0.000000, 1.000000, 0.000000, 0.000000, + 0.150902,-3.008112,-0.000000, 1.000000;; + } //End of Armature_root_002 Skin Weights + SkinWeights { + "Armature_root"; + 64; + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63; + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.999963, + 0.995465, + 1.000000, + 0.999999, + 0.999963, + 1.000000, + 1.000000, + 0.995465, + 0.995465, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.999963, + 0.999999, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.999961, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.999961, + 1.000000, + 0.999999, + 1.000000, + 1.000000, + 0.999961, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.999999, + 0.999961, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000; + 0.800000, 0.000000, 0.000000, 0.000000, + 0.000000, 0.000000,-1.000000, 0.000000, + 0.000000, 1.000000, 0.000000, 0.000000, + -0.006223,-0.013009,-0.000000, 1.000000;; + } //End of Armature_root Skin Weights + } //End of Plane_009 Mesh + } //End of Plane + } //End of Armature +} //End of Root Frame +AnimationSet { + Animation { + {Armature} + AnimationKey { //Position + 2; + 50; + 0;3; 0.004457,-0.009078, 0.009382;;, + 1;3; 0.004457,-0.009078, 0.009382;;, + 2;3; 0.004457,-0.009078, 0.009382;;, + 3;3; 0.004457,-0.009078, 0.009382;;, + 4;3; 0.004457,-0.009078, 0.009382;;, + 5;3; 0.004457,-0.009078, 0.009382;;, + 6;3; 0.004457,-0.009078, 0.009382;;, + 7;3; 0.004457,-0.009078, 0.009382;;, + 8;3; 0.004457,-0.009078, 0.009382;;, + 9;3; 0.004457,-0.009078, 0.009382;;, + 10;3; 0.004457,-0.009078, 0.009382;;, + 11;3; 0.004457,-0.009078, 0.009382;;, + 12;3; 0.004457,-0.009078, 0.009382;;, + 13;3; 0.004457,-0.009078, 0.009382;;, + 14;3; 0.004457,-0.009078, 0.009382;;, + 15;3; 0.004457,-0.009078, 0.009382;;, + 16;3; 0.004457,-0.009078, 0.009382;;, + 17;3; 0.004457,-0.009078, 0.009382;;, + 18;3; 0.004457,-0.009078, 0.009382;;, + 19;3; 0.004457,-0.009078, 0.009382;;, + 20;3; 0.004457,-0.009078, 0.009382;;, + 21;3; 0.004457,-0.009078, 0.009382;;, + 22;3; 0.004457,-0.009078, 0.009382;;, + 23;3; 0.004457,-0.009078, 0.009382;;, + 24;3; 0.004457,-0.009078, 0.009382;;, + 25;3; 0.004457,-0.009078, 0.009382;;, + 26;3; 0.004457,-0.009078, 0.009382;;, + 27;3; 0.004457,-0.009078, 0.009382;;, + 28;3; 0.004457,-0.009078, 0.009382;;, + 29;3; 0.004457,-0.009078, 0.009382;;, + 30;3; 0.004457,-0.009078, 0.009382;;, + 31;3; 0.004457,-0.009078, 0.009382;;, + 32;3; 0.004457,-0.009078, 0.009382;;, + 33;3; 0.004457,-0.009078, 0.009382;;, + 34;3; 0.004457,-0.009078, 0.009382;;, + 35;3; 0.004457,-0.009078, 0.009382;;, + 36;3; 0.004457,-0.009078, 0.009382;;, + 37;3; 0.004457,-0.009078, 0.009382;;, + 38;3; 0.004457,-0.009078, 0.009382;;, + 39;3; 0.004457,-0.009078, 0.009382;;, + 40;3; 0.004457,-0.009078, 0.009382;;, + 41;3; 0.004457,-0.009078, 0.009382;;, + 42;3; 0.004457,-0.009078, 0.009382;;, + 43;3; 0.004457,-0.009078, 0.009382;;, + 44;3; 0.004457,-0.009078, 0.009382;;, + 45;3; 0.004457,-0.009078, 0.009382;;, + 46;3; 0.004457,-0.009078, 0.009382;;, + 47;3; 0.004457,-0.009078, 0.009382;;, + 48;3; 0.004457,-0.009078, 0.009382;;, + 49;3; 0.004457,-0.009078, 0.009382;;; + } + AnimationKey { //Rotation + 0; + 50; + 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;;; + } + AnimationKey { //Scale + 1; + 50; + 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;;; + } + } + Animation { + {Armature_root} + AnimationKey { //Position + 2; + 50; + 0;3; 0.000000, 0.000000, 0.000000;;, + 1;3; 0.000000, 0.000000, 0.067862;;, + 2;3; 0.000000, 0.000000, 0.137716;;, + 3;3; 0.000000, 0.000000, 0.196372;;, + 4;3; 0.000000, 0.000000, 0.236159;;, + 5;3; 0.000000, 0.000000, 0.250800;;, + 6;3; 0.000000,-0.000000, 0.242481;;, + 7;3; 0.000000,-0.000000, 0.217369;;, + 8;3; 0.000000,-0.000000, 0.175960;;, + 9;3; 0.000000,-0.000000, 0.120071;;, + 10;3; 0.000000,-0.000000, 0.053144;;, + 11;3; 0.000000,-0.000000,-0.019800;;, + 12;3; 0.000000,-0.000000,-0.092744;;, + 13;3; 0.000000, 0.000000,-0.159671;;, + 14;3; 0.000000, 0.000000,-0.215560;;, + 15;3; 0.000000, 0.000000,-0.256968;;, + 16;3; 0.000000, 0.000000,-0.282081;;, + 17;3; 0.000000, 0.000000,-0.290400;;, + 18;3; 0.000000,-0.000000,-0.277947;;, + 19;3; 0.000000,-0.000000,-0.244260;;, + 20;3; 0.000000,-0.000000,-0.194118;;, + 21;3; 0.000000,-0.000000,-0.132041;;, + 22;3; 0.000000,-0.000000,-0.063637;;, + 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;;; + } + AnimationKey { //Rotation + 0; + 50; + 0;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 1;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 2;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 3;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 4;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 5;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 6;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 7;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 8;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 9;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 10;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 11;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 12;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 13;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 14;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 15;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 16;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 17;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 18;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 19;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 20;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 21;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 22;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 23;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 24;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 25;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 26;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 27;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 28;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 29;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 30;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 31;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 32;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 33;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 34;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 35;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 36;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 37;4; -0.000000, 0.000000, 0.726457, 0.687212;;, + 38;4; -0.000000, 0.000000, 0.726457, 0.687212;;, + 39;4; -0.000000, 0.000000, 0.726457, 0.687212;;, + 40;4; -0.000000, 0.000000, 0.726457, 0.687212;;, + 41;4; -0.000000, 0.000000, 0.726457, 0.687212;;, + 42;4; -0.000000, 0.000000, 0.726457, 0.687212;;, + 43;4; -0.000000, 0.000000, 0.726457, 0.687212;;, + 44;4; -0.000000, 0.000000, 0.726457, 0.687212;;, + 45;4; -0.000000, 0.000000, 0.726457, 0.687212;;, + 46;4; -0.000000, 0.000000, 0.726457, 0.687212;;, + 47;4; -0.000000, 0.000000, 0.726457, 0.687212;;, + 48;4; -0.000000, 0.000000, 0.726457, 0.687212;;, + 49;4; -0.000000, 0.000000, 0.726457, 0.687212;;; + } + AnimationKey { //Scale + 1; + 50; + 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;;; + } + } + Animation { + {Armature_Right_Hand} + AnimationKey { //Position + 2; + 50; + 0;3; -0.290493, 2.355259, 0.000000;;, + 1;3; -0.290493, 2.355259, 0.000000;;, + 2;3; -0.290493, 2.355259, 0.000000;;, + 3;3; -0.290493, 2.355259, 0.000000;;, + 4;3; -0.290493, 2.355259, 0.000000;;, + 5;3; -0.290493, 2.355259, 0.000000;;, + 6;3; -0.290493, 2.355259, 0.000000;;, + 7;3; -0.290493, 2.355259, 0.000000;;, + 8;3; -0.290493, 2.355259, 0.000000;;, + 9;3; -0.290493, 2.355259, 0.000000;;, + 10;3; -0.290493, 2.355259, 0.000000;;, + 11;3; -0.290493, 2.355259, 0.000000;;, + 12;3; -0.290493, 2.355259, 0.000000;;, + 13;3; -0.290493, 2.355259, 0.000000;;, + 14;3; -0.290493, 2.355259, 0.000000;;, + 15;3; -0.290493, 2.355259, 0.000000;;, + 16;3; -0.290493, 2.355259, 0.000000;;, + 17;3; -0.290493, 2.355259, 0.000000;;, + 18;3; -0.290493, 2.355259, 0.000000;;, + 19;3; -0.290493, 2.355259, 0.000000;;, + 20;3; -0.290493, 2.355259, 0.000000;;, + 21;3; -0.290493, 2.355259, 0.000000;;, + 22;3; -0.290493, 2.355259, 0.000000;;, + 23;3; -0.290493, 2.355259, 0.000000;;, + 24;3; -0.290496, 2.355064,-0.001203;;, + 25;3; -0.290496, 2.355064,-0.001203;;, + 26;3; -0.290496, 2.355064,-0.001203;;, + 27;3; -0.290496, 2.355064,-0.001203;;, + 28;3; -0.290496, 2.355064,-0.001203;;, + 29;3; -0.290496, 2.355064,-0.001203;;, + 30;3; -0.290496, 2.355064,-0.001203;;, + 31;3; -0.290496, 2.355064,-0.001203;;, + 32;3; -0.290496, 2.355064,-0.001203;;, + 33;3; -0.290496, 2.355064,-0.001203;;, + 34;3; -0.290496, 2.355064,-0.001203;;, + 35;3; -0.290496, 2.355064,-0.001203;;, + 36;3; -0.290496, 2.355064,-0.001203;;, + 37;3; -0.290496, 2.355065,-0.001203;;, + 38;3; -0.290496, 2.355065,-0.001203;;, + 39;3; -0.290496, 2.355065,-0.001203;;, + 40;3; -0.290496, 2.355065,-0.001203;;, + 41;3; -0.290496, 2.355065,-0.001203;;, + 42;3; -0.290496, 2.355065,-0.001203;;, + 43;3; -0.290496, 2.355065,-0.001203;;, + 44;3; -0.290496, 2.355065,-0.001203;;, + 45;3; -0.290496, 2.355065,-0.001203;;, + 46;3; -0.290496, 2.355065,-0.001203;;, + 47;3; -0.290496, 2.355065,-0.001203;;, + 48;3; -0.290496, 2.355065,-0.001203;;, + 49;3; -0.290496, 2.355065,-0.001203;;; + } + AnimationKey { //Rotation + 0; + 50; + 0;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 1;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 2;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 3;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 4;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 5;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 6;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 7;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 8;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 9;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 10;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 11;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 12;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 13;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 14;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 15;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 16;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 17;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 18;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 19;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 20;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 21;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 22;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 23;4; -0.000000, 0.996505,-0.083529, 0.000000;;, + 24;4; -0.159024, 0.983765,-0.082462, 0.010852;;, + 25;4; -0.159024, 0.983765,-0.082462, 0.010852;;, + 26;4; -0.159024, 0.983765,-0.082462, 0.010852;;, + 27;4; -0.159024, 0.983765,-0.082462, 0.010852;;, + 28;4; -0.159024, 0.983765,-0.082462, 0.010852;;, + 29;4; -0.159024, 0.983765,-0.082462, 0.010852;;, + 30;4; -0.159024, 0.983765,-0.082462, 0.010852;;, + 31;4; -0.159024, 0.983765,-0.082462, 0.010852;;, + 32;4; -0.159024, 0.983765,-0.082462, 0.010852;;, + 33;4; -0.159024, 0.983765,-0.082462, 0.010852;;, + 34;4; -0.159024, 0.983765,-0.082462, 0.010852;;, + 35;4; -0.159024, 0.983765,-0.082462, 0.010852;;, + 36;4; -0.159024, 0.983765,-0.082462, 0.010852;;, + 37;4; -0.703772, 0.706324,-0.059206, 0.048025;;, + 38;4; -0.697387, 0.712289,-0.059561, 0.047525;;, + 39;4; -0.684270, 0.724913,-0.060311, 0.046411;;, + 40;4; -0.678183, 0.730801,-0.060660, 0.045887;;, + 41;4; -0.681625, 0.727351,-0.060437, 0.046175;;, + 42;4; -0.691644, 0.717311,-0.059789, 0.047016;;, + 43;4; -0.706047, 0.702877,-0.058857, 0.048224;;, + 44;4; -0.720450, 0.688444,-0.057925, 0.049433;;, + 45;4; -0.730469, 0.678404,-0.057277, 0.050273;;, + 46;4; -0.733911, 0.674954,-0.057055, 0.050562;;, + 47;4; -0.726631, 0.682531,-0.057574, 0.049950;;, + 48;4; -0.711052, 0.698746,-0.058686, 0.048638;;, + 49;4; -0.703772, 0.706324,-0.059206, 0.048025;;; + } + AnimationKey { //Scale + 1; + 50; + 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;;; + } + } + Animation { + {Armature_Bone_002} + AnimationKey { //Position + 2; + 50; + 0;3; 0.259914, 2.347614, 0.000000;;, + 1;3; 0.259914, 2.347614, 0.000000;;, + 2;3; 0.259914, 2.347614, 0.000000;;, + 3;3; 0.259914, 2.347614, 0.000000;;, + 4;3; 0.259914, 2.347614, 0.000000;;, + 5;3; 0.259914, 2.347614, 0.000000;;, + 6;3; 0.259914, 2.347614, 0.000000;;, + 7;3; 0.259914, 2.347614, 0.000000;;, + 8;3; 0.259914, 2.347614, 0.000000;;, + 9;3; 0.259914, 2.347614, 0.000000;;, + 10;3; 0.259914, 2.347614, 0.000000;;, + 11;3; 0.259914, 2.347614, 0.000000;;, + 12;3; 0.259914, 2.347614, 0.000000;;, + 13;3; 0.259914, 2.347614, 0.000000;;, + 14;3; 0.259914, 2.347614, 0.000000;;, + 15;3; 0.259914, 2.347614, 0.000000;;, + 16;3; 0.259914, 2.347614, 0.000000;;, + 17;3; 0.259914, 2.347614, 0.000000;;, + 18;3; 0.259914, 2.347614, 0.000000;;, + 19;3; 0.259914, 2.347614, 0.000000;;, + 20;3; 0.259914, 2.347614, 0.000000;;, + 21;3; 0.259914, 2.347614, 0.000000;;, + 22;3; 0.259914, 2.347614, 0.000000;;, + 23;3; 0.259914, 2.347614, 0.000000;;, + 24;3; 0.259911, 2.347808, 0.001203;;, + 25;3; 0.259911, 2.347808, 0.001203;;, + 26;3; 0.259911, 2.347808, 0.001203;;, + 27;3; 0.259911, 2.347808, 0.001203;;, + 28;3; 0.259911, 2.347808, 0.001203;;, + 29;3; 0.259911, 2.347808, 0.001203;;, + 30;3; 0.259911, 2.347808, 0.001203;;, + 31;3; 0.259911, 2.347808, 0.001203;;, + 32;3; 0.259911, 2.347808, 0.001203;;, + 33;3; 0.259911, 2.347808, 0.001203;;, + 34;3; 0.259911, 2.347808, 0.001203;;, + 35;3; 0.259911, 2.347808, 0.001203;;, + 36;3; 0.259911, 2.347808, 0.001203;;, + 37;3; 0.259911, 2.347809, 0.001203;;, + 38;3; 0.259911, 2.347809, 0.001203;;, + 39;3; 0.259911, 2.347809, 0.001203;;, + 40;3; 0.259911, 2.347809, 0.001203;;, + 41;3; 0.259911, 2.347809, 0.001203;;, + 42;3; 0.259911, 2.347809, 0.001203;;, + 43;3; 0.259911, 2.347809, 0.001203;;, + 44;3; 0.259911, 2.347809, 0.001203;;, + 45;3; 0.259911, 2.347809, 0.001203;;, + 46;3; 0.259911, 2.347809, 0.001203;;, + 47;3; 0.259911, 2.347809, 0.001203;;, + 48;3; 0.259911, 2.347809, 0.001203;;, + 49;3; 0.259911, 2.347809, 0.001203;;; + } + AnimationKey { //Rotation + 0; + 50; + 0;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 1;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 2;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 3;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 4;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 5;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 6;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 7;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 8;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 9;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 10;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 11;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 12;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 13;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 14;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 15;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 16;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 17;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 18;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 19;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 20;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 21;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 22;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 23;4; -0.000000, 0.996214, 0.086933, 0.000000;;, + 24;4; -0.158993, 0.983478, 0.085821,-0.011298;;, + 25;4; -0.158993, 0.983478, 0.085821,-0.011298;;, + 26;4; -0.158993, 0.983478, 0.085821,-0.011298;;, + 27;4; -0.158993, 0.983478, 0.085821,-0.011298;;, + 28;4; -0.158993, 0.983478, 0.085821,-0.011298;;, + 29;4; -0.158993, 0.983478, 0.085821,-0.011298;;, + 30;4; -0.158993, 0.983478, 0.085821,-0.011298;;, + 31;4; -0.158993, 0.983478, 0.085821,-0.011298;;, + 32;4; -0.158993, 0.983478, 0.085821,-0.011298;;, + 33;4; -0.158993, 0.983478, 0.085821,-0.011298;;, + 34;4; -0.158993, 0.983478, 0.085821,-0.011298;;, + 35;4; -0.158993, 0.983478, 0.085821,-0.011298;;, + 36;4; -0.158993, 0.983478, 0.085821,-0.011298;;, + 37;4; -0.694552, 0.715031, 0.062396,-0.049354;;, + 38;4; -0.692475, 0.716912, 0.062529,-0.049186;;, + 39;4; -0.688216, 0.720832, 0.062807,-0.048826;;, + 40;4; -0.683196, 0.725494, 0.063136,-0.048391;;, + 41;4; -0.678075, 0.730271, 0.063474,-0.047942;;, + 42;4; -0.673260, 0.734774, 0.063792,-0.047517;;, + 43;4; -0.669052, 0.738712, 0.064070,-0.047145;;, + 44;4; -0.665715, 0.741833, 0.064291,-0.046850;;, + 45;4; -0.663506, 0.743896, 0.064436,-0.046656;;, + 46;4; -0.662702, 0.744646, 0.064489,-0.046585;;, + 47;4; -0.670395, 0.737492, 0.063984,-0.047254;;, + 48;4; -0.686858, 0.722185, 0.062902,-0.048685;;, + 49;4; -0.694552, 0.715031, 0.062396,-0.049354;;; + } + AnimationKey { //Scale + 1; + 50; + 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;;; + } + } + Animation { + {Armature_back} + AnimationKey { //Position + 2; + 50; + 0;3; -0.013083, 2.483388,-0.152575;;, + 1;3; -0.013083, 2.483388,-0.152575;;, + 2;3; -0.013083, 2.483388,-0.152575;;, + 3;3; -0.013083, 2.483388,-0.152575;;, + 4;3; -0.013083, 2.483388,-0.152575;;, + 5;3; -0.013083, 2.483388,-0.152575;;, + 6;3; -0.013083, 2.483388,-0.152575;;, + 7;3; -0.013083, 2.483388,-0.152575;;, + 8;3; -0.013083, 2.483388,-0.152575;;, + 9;3; -0.013083, 2.483388,-0.152575;;, + 10;3; -0.013083, 2.483388,-0.152575;;, + 11;3; -0.013083, 2.483388,-0.152575;;, + 12;3; -0.013083, 2.483388,-0.152575;;, + 13;3; -0.013083, 2.483388,-0.152575;;, + 14;3; -0.013083, 2.483388,-0.152575;;, + 15;3; -0.013083, 2.483388,-0.152575;;, + 16;3; -0.013083, 2.483388,-0.152575;;, + 17;3; -0.013083, 2.483388,-0.152575;;, + 18;3; -0.013083, 2.483388,-0.152575;;, + 19;3; -0.013083, 2.483388,-0.152575;;, + 20;3; -0.013083, 2.483388,-0.152575;;, + 21;3; -0.013083, 2.483388,-0.152575;;, + 22;3; -0.013083, 2.483388,-0.152575;;, + 23;3; -0.013083, 2.483388,-0.152575;;, + 24;3; -0.013083, 2.483388,-0.152575;;, + 25;3; -0.013083, 2.483388,-0.152575;;, + 26;3; -0.013083, 2.483388,-0.152575;;, + 27;3; -0.013083, 2.483388,-0.152575;;, + 28;3; -0.013083, 2.483388,-0.152575;;, + 29;3; -0.013083, 2.483388,-0.152575;;, + 30;3; -0.013083, 2.483388,-0.152575;;, + 31;3; -0.013083, 2.483388,-0.152575;;, + 32;3; -0.013083, 2.483388,-0.152575;;, + 33;3; -0.013083, 2.483388,-0.152575;;, + 34;3; -0.013083, 2.483388,-0.152575;;, + 35;3; -0.013083, 2.483388,-0.152575;;, + 36;3; -0.013083, 2.483388,-0.152575;;, + 37;3; -0.013083, 2.483388,-0.152575;;, + 38;3; -0.013083, 2.483388,-0.152575;;, + 39;3; -0.013083, 2.483388,-0.152575;;, + 40;3; -0.013083, 2.483388,-0.152575;;, + 41;3; -0.013083, 2.483388,-0.152575;;, + 42;3; -0.013083, 2.483388,-0.152575;;, + 43;3; -0.013083, 2.483388,-0.152575;;, + 44;3; -0.013083, 2.483388,-0.152575;;, + 45;3; -0.013083, 2.483388,-0.152575;;, + 46;3; -0.013083, 2.483388,-0.152575;;, + 47;3; -0.013083, 2.483388,-0.152575;;, + 48;3; -0.013083, 2.483388,-0.152575;;, + 49;3; -0.013083, 2.483388,-0.152575;;; + } + AnimationKey { //Rotation + 0; + 50; + 0;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 1;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 2;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 3;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 4;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 5;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 6;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 7;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 8;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 9;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 10;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 11;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 12;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 13;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 14;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 15;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 16;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 17;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 18;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 19;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 20;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 21;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 22;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 23;4; -0.000000, 0.999943, 0.010701,-0.000000;;, + 24;4; 0.130519, 0.991388, 0.010609, 0.001397;;, + 25;4; 0.168031, 0.986326, 0.010555, 0.001797;;, + 26;4; 0.192937, 0.982312, 0.010512, 0.002064;;, + 27;4; 0.207254, 0.979400, 0.010481, 0.002218;;, + 28;4; 0.213957, 0.977524, 0.010461, 0.002290;;, + 29;4; 0.216150, 0.976531, 0.010450, 0.002313;;, + 30;4; 0.216427, 0.976240, 0.010447, 0.002316;;, + 31;4; 0.216150, 0.976619, 0.010451, 0.002313;;, + 32;4; 0.213954, 0.977830, 0.010464, 0.002290;;, + 33;4; 0.207242, 0.979956, 0.010487, 0.002218;;, + 34;4; 0.192910, 0.983007, 0.010520, 0.002064;;, + 35;4; 0.167995, 0.986883, 0.010561, 0.001797;;, + 36;4; 0.130519, 0.991388, 0.010609, 0.001397;;, + 37;4; 0.056614, 0.998339, 0.010684, 0.000606;;, + 38;4; 0.058708, 0.998193, 0.010682, 0.000628;;, + 39;4; 0.063994, 0.997824, 0.010678, 0.000685;;, + 40;4; 0.070663, 0.997358, 0.010673, 0.000756;;, + 41;4; 0.076873, 0.996924, 0.010669, 0.000823;;, + 42;4; 0.081185, 0.996623, 0.010665, 0.000869;;, + 43;4; 0.082728, 0.996515, 0.010664, 0.000885;;, + 44;4; 0.081115, 0.996515, 0.010664, 0.000903;;, + 45;4; 0.076422, 0.996515, 0.010664, 0.000953;;, + 46;4; 0.069674, 0.996515, 0.010664, 0.001025;;, + 47;4; 0.062927, 0.996515, 0.010664, 0.001097;;, + 48;4; 0.058233, 0.996515, 0.010664, 0.001147;;, + 49;4; 0.056620, 0.996515, 0.010664, 0.001165;;; + } + AnimationKey { //Scale + 1; + 50; + 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;;; + } + } + Animation { + {Armature_root_001} + AnimationKey { //Position + 2; + 50; + 0;3; 0.108388, 3.011908,-0.000000;;, + 1;3; 0.108388, 3.011908,-0.000000;;, + 2;3; 0.108388, 3.011908,-0.000000;;, + 3;3; 0.108388, 3.011908,-0.000000;;, + 4;3; 0.108388, 3.011908,-0.000000;;, + 5;3; 0.108388, 3.011908,-0.000000;;, + 6;3; 0.108388, 3.011908,-0.000000;;, + 7;3; 0.108388, 3.011908,-0.000000;;, + 8;3; 0.108388, 3.011908,-0.000000;;, + 9;3; 0.108388, 3.011908,-0.000000;;, + 10;3; 0.108388, 3.011908,-0.000000;;, + 11;3; 0.108388, 3.011908,-0.000000;;, + 12;3; 0.108388, 3.011908,-0.000000;;, + 13;3; 0.108388, 3.011908,-0.000000;;, + 14;3; 0.108388, 3.011908,-0.000000;;, + 15;3; 0.108388, 3.011908,-0.000000;;, + 16;3; 0.108388, 3.011908,-0.000000;;, + 17;3; 0.108388, 3.011908,-0.000000;;, + 18;3; 0.108388, 3.011908,-0.000000;;, + 19;3; 0.108388, 3.011908,-0.000000;;, + 20;3; 0.108388, 3.011908,-0.000000;;, + 21;3; 0.108388, 3.011908,-0.000000;;, + 22;3; 0.108388, 3.011908,-0.000000;;, + 23;3; 0.108388, 3.011908,-0.000000;;, + 24;3; 0.108388, 3.011908,-0.000000;;, + 25;3; 0.108388, 3.011908,-0.000000;;, + 26;3; 0.108388, 3.011908,-0.000000;;, + 27;3; 0.108388, 3.011908,-0.000000;;, + 28;3; 0.108388, 3.011908,-0.000000;;, + 29;3; 0.108388, 3.011908,-0.000000;;, + 30;3; 0.108388, 3.011908,-0.000000;;, + 31;3; 0.108388, 3.011908,-0.000000;;, + 32;3; 0.108388, 3.011908,-0.000000;;, + 33;3; 0.108388, 3.011908,-0.000000;;, + 34;3; 0.108388, 3.011908,-0.000000;;, + 35;3; 0.108388, 3.011908,-0.000000;;, + 36;3; 0.108388, 3.011908,-0.000000;;, + 37;3; 0.108388, 3.011908,-0.000000;;, + 38;3; 0.111282, 3.014802, 0.002893;;, + 39;3; 0.102914, 3.006433,-0.005475;;, + 40;3; 0.100667, 3.004187,-0.007722;;, + 41;3; 0.117499, 3.021019, 0.009111;;, + 42;3; 0.107302, 3.010822,-0.001086;;, + 43;3; 0.105187, 3.008707,-0.003202;;, + 44;3; 0.101925, 3.005445,-0.006463;;, + 45;3; 0.116975, 3.020495, 0.008586;;, + 46;3; 0.110424, 3.013944, 0.002036;;, + 47;3; 0.119450, 3.022970, 0.011062;;, + 48;3; 0.118807, 3.022327, 0.010418;;, + 49;3; 0.108388, 3.011908,-0.000000;;; + } + AnimationKey { //Rotation + 0; + 50; + 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;;; + } + AnimationKey { //Scale + 1; + 50; + 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;;; + } + } + Animation { + {Armature_root_002} + AnimationKey { //Position + 2; + 50; + 0;3; -0.157125, 2.995103,-0.000000;;, + 1;3; -0.157125, 2.995103,-0.000000;;, + 2;3; -0.157125, 2.995103,-0.000000;;, + 3;3; -0.157125, 2.995103,-0.000000;;, + 4;3; -0.157125, 2.995103,-0.000000;;, + 5;3; -0.157125, 2.995103,-0.000000;;, + 6;3; -0.157125, 2.995103,-0.000000;;, + 7;3; -0.157125, 2.995103,-0.000000;;, + 8;3; -0.157125, 2.995103,-0.000000;;, + 9;3; -0.157125, 2.995103,-0.000000;;, + 10;3; -0.157125, 2.995103,-0.000000;;, + 11;3; -0.157125, 2.995103,-0.000000;;, + 12;3; -0.157125, 2.995103,-0.000000;;, + 13;3; -0.157125, 2.995103,-0.000000;;, + 14;3; -0.157125, 2.995103,-0.000000;;, + 15;3; -0.157125, 2.995103,-0.000000;;, + 16;3; -0.157125, 2.995103,-0.000000;;, + 17;3; -0.157125, 2.995103,-0.000000;;, + 18;3; -0.157125, 2.995103,-0.000000;;, + 19;3; -0.157125, 2.995103,-0.000000;;, + 20;3; -0.157125, 2.995103,-0.000000;;, + 21;3; -0.157125, 2.995103,-0.000000;;, + 22;3; -0.157125, 2.995103,-0.000000;;, + 23;3; -0.157125, 2.995103,-0.000000;;, + 24;3; -0.157125, 2.995103,-0.000000;;, + 25;3; -0.157125, 2.995103,-0.000000;;, + 26;3; -0.157125, 2.995103,-0.000000;;, + 27;3; -0.157125, 2.995103,-0.000000;;, + 28;3; -0.157125, 2.995103,-0.000000;;, + 29;3; -0.157125, 2.995103,-0.000000;;, + 30;3; -0.157125, 2.995103,-0.000000;;, + 31;3; -0.157125, 2.995103,-0.000000;;, + 32;3; -0.157125, 2.995103,-0.000000;;, + 33;3; -0.157125, 2.995103,-0.000000;;, + 34;3; -0.157125, 2.995103,-0.000000;;, + 35;3; -0.157125, 2.995103,-0.000000;;, + 36;3; -0.157125, 2.995103,-0.000000;;, + 37;3; -0.157125, 2.995103,-0.000000;;, + 38;3; -0.154231, 2.998278,-0.000000;;, + 39;3; -0.162599, 2.996521,-0.000000;;, + 40;3; -0.164846, 2.997358,-0.000000;;, + 41;3; -0.148014, 3.013568,-0.000000;;, + 42;3; -0.158211, 2.983142,-0.000000;;, + 43;3; -0.160326, 2.976145,-0.000000;;, + 44;3; -0.163588, 2.992257,-0.000000;;, + 45;3; -0.148538, 2.988948,-0.000000;;, + 46;3; -0.155088, 2.985346,-0.000000;;, + 47;3; -0.146063, 2.997540,-0.000000;;, + 48;3; -0.146706, 2.989561,-0.000000;;, + 49;3; -0.157125, 2.995103,-0.000000;;; + } + AnimationKey { //Rotation + 0; + 50; + 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;;; + } + AnimationKey { //Scale + 1; + 50; + 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;;; + } + } + Animation { + {Plane} + AnimationKey { //Position + 2; + 50; + 0;3; -0.006223, 0.000000,-0.013009;;, + 1;3; -0.006223, 0.000000,-0.013009;;, + 2;3; -0.006223, 0.000000,-0.013009;;, + 3;3; -0.006223, 0.000000,-0.013009;;, + 4;3; -0.006223, 0.000000,-0.013009;;, + 5;3; -0.006223, 0.000000,-0.013009;;, + 6;3; -0.006223, 0.000000,-0.013009;;, + 7;3; -0.006223, 0.000000,-0.013009;;, + 8;3; -0.006223, 0.000000,-0.013009;;, + 9;3; -0.006223, 0.000000,-0.013009;;, + 10;3; -0.006223, 0.000000,-0.013009;;, + 11;3; -0.006223, 0.000000,-0.013009;;, + 12;3; -0.006223, 0.000000,-0.013009;;, + 13;3; -0.006223, 0.000000,-0.013009;;, + 14;3; -0.006223, 0.000000,-0.013009;;, + 15;3; -0.006223, 0.000000,-0.013009;;, + 16;3; -0.006223, 0.000000,-0.013009;;, + 17;3; -0.006223, 0.000000,-0.013009;;, + 18;3; -0.006223, 0.000000,-0.013009;;, + 19;3; -0.006223, 0.000000,-0.013009;;, + 20;3; -0.006223, 0.000000,-0.013009;;, + 21;3; -0.006223, 0.000000,-0.013009;;, + 22;3; -0.006223, 0.000000,-0.013009;;, + 23;3; -0.006223, 0.000000,-0.013009;;, + 24;3; -0.006223, 0.000000,-0.013009;;, + 25;3; -0.006223, 0.000000,-0.013009;;, + 26;3; -0.006223, 0.000000,-0.013009;;, + 27;3; -0.006223, 0.000000,-0.013009;;, + 28;3; -0.006223, 0.000000,-0.013009;;, + 29;3; -0.006223, 0.000000,-0.013009;;, + 30;3; -0.006223, 0.000000,-0.013009;;, + 31;3; -0.006223, 0.000000,-0.013009;;, + 32;3; -0.006223, 0.000000,-0.013009;;, + 33;3; -0.006223, 0.000000,-0.013009;;, + 34;3; -0.006223, 0.000000,-0.013009;;, + 35;3; -0.006223, 0.000000,-0.013009;;, + 36;3; -0.006223, 0.000000,-0.013009;;, + 37;3; -0.006223, 0.000000,-0.013009;;, + 38;3; -0.006223, 0.000000,-0.013009;;, + 39;3; -0.006223, 0.000000,-0.013009;;, + 40;3; -0.006223, 0.000000,-0.013009;;, + 41;3; -0.006223, 0.000000,-0.013009;;, + 42;3; -0.006223, 0.000000,-0.013009;;, + 43;3; -0.006223, 0.000000,-0.013009;;, + 44;3; -0.006223, 0.000000,-0.013009;;, + 45;3; -0.006223, 0.000000,-0.013009;;, + 46;3; -0.006223, 0.000000,-0.013009;;, + 47;3; -0.006223, 0.000000,-0.013009;;, + 48;3; -0.006223, 0.000000,-0.013009;;, + 49;3; -0.006223, 0.000000,-0.013009;;; + } + AnimationKey { //Rotation + 0; + 50; + 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;;; + } + AnimationKey { //Scale + 1; + 50; + 0;3; 0.800000, 1.000000, 1.000000;;, + 1;3; 0.800000, 1.000000, 1.000000;;, + 2;3; 0.800000, 1.000000, 1.000000;;, + 3;3; 0.800000, 1.000000, 1.000000;;, + 4;3; 0.800000, 1.000000, 1.000000;;, + 5;3; 0.800000, 1.000000, 1.000000;;, + 6;3; 0.800000, 1.000000, 1.000000;;, + 7;3; 0.800000, 1.000000, 1.000000;;, + 8;3; 0.800000, 1.000000, 1.000000;;, + 9;3; 0.800000, 1.000000, 1.000000;;, + 10;3; 0.800000, 1.000000, 1.000000;;, + 11;3; 0.800000, 1.000000, 1.000000;;, + 12;3; 0.800000, 1.000000, 1.000000;;, + 13;3; 0.800000, 1.000000, 1.000000;;, + 14;3; 0.800000, 1.000000, 1.000000;;, + 15;3; 0.800000, 1.000000, 1.000000;;, + 16;3; 0.800000, 1.000000, 1.000000;;, + 17;3; 0.800000, 1.000000, 1.000000;;, + 18;3; 0.800000, 1.000000, 1.000000;;, + 19;3; 0.800000, 1.000000, 1.000000;;, + 20;3; 0.800000, 1.000000, 1.000000;;, + 21;3; 0.800000, 1.000000, 1.000000;;, + 22;3; 0.800000, 1.000000, 1.000000;;, + 23;3; 0.800000, 1.000000, 1.000000;;, + 24;3; 0.800000, 1.000000, 1.000000;;, + 25;3; 0.800000, 1.000000, 1.000000;;, + 26;3; 0.800000, 1.000000, 1.000000;;, + 27;3; 0.800000, 1.000000, 1.000000;;, + 28;3; 0.800000, 1.000000, 1.000000;;, + 29;3; 0.800000, 1.000000, 1.000000;;, + 30;3; 0.800000, 1.000000, 1.000000;;, + 31;3; 0.800000, 1.000000, 1.000000;;, + 32;3; 0.800000, 1.000000, 1.000000;;, + 33;3; 0.800000, 1.000000, 1.000000;;, + 34;3; 0.800000, 1.000000, 1.000000;;, + 35;3; 0.800000, 1.000000, 1.000000;;, + 36;3; 0.800000, 1.000000, 1.000000;;, + 37;3; 0.800000, 1.000000, 1.000000;;, + 38;3; 0.800000, 1.000000, 1.000000;;, + 39;3; 0.800000, 1.000000, 1.000000;;, + 40;3; 0.800000, 1.000000, 1.000000;;, + 41;3; 0.800000, 1.000000, 1.000000;;, + 42;3; 0.800000, 1.000000, 1.000000;;, + 43;3; 0.800000, 1.000000, 1.000000;;, + 44;3; 0.800000, 1.000000, 1.000000;;, + 45;3; 0.800000, 1.000000, 1.000000;;, + 46;3; 0.800000, 1.000000, 1.000000;;, + 47;3; 0.800000, 1.000000, 1.000000;;, + 48;3; 0.800000, 1.000000, 1.000000;;, + 49;3; 0.800000, 1.000000, 1.000000;;; + } + } +} //End of AnimationSet diff --git a/mods/mobs/models/mobs_pumba.png b/mods/mobs/models/mobs_pumba.png new file mode 100644 index 00000000..ce87f6a1 Binary files /dev/null and b/mods/mobs/models/mobs_pumba.png differ diff --git a/mods/mobs/models/mobs_pumba.x b/mods/mobs/models/mobs_pumba.x new file mode 100644 index 00000000..895ec425 --- /dev/null +++ b/mods/mobs/models/mobs_pumba.x @@ -0,0 +1,5316 @@ +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 { + -0.000234, 2.732761, 0.000000, 0.000000, + -2.732761,-0.000234, 0.000000, 0.000000, + 0.000000, 0.000000, 2.732761, 0.000000, + 0.164184,-2.791352, 4.770043, 1.000000;; + } + Frame Armature_body2 { + FrameTransformMatrix { + 0.087606,-0.000000,-0.996155, 0.000000, + 0.996155, 0.000000, 0.087606, 0.000000, + 0.000000,-1.000000, 0.000000, 0.000000, + -0.155674, 0.000000, 0.000000, 1.000000;; + } + Frame Armature_head { + FrameTransformMatrix { + 0.000000, 0.000000, 1.000000, 0.000000, + 0.007902, 0.999969,-0.000000, 0.000000, + -0.999969, 0.007902, 0.000000, 0.000000, + -0.000000, 1.674146, 0.000000, 1.000000;; + } + } //End of Armature_head + Frame Armature_hvost { + FrameTransformMatrix { + -0.961313, 0.212562,-0.175201, 0.000000, + -0.203920,-0.976750,-0.066147, 0.000000, + -0.185188,-0.027861, 0.982308, 0.000000, + -0.371885,-0.304373,-0.053265, 1.000000;; + } + } //End of Armature_hvost + Frame Armature_noga3 { + FrameTransformMatrix { + 0.073289, 0.972682, 0.220268, 0.000000, + 0.997097,-0.076035, 0.004003, 0.000000, + 0.020641, 0.219336,-0.975431, 0.000000, + 0.532289,-0.143643, 0.710859, 1.000000;; + } + } //End of Armature_noga3 + Frame Armature_noga4 { + FrameTransformMatrix { + 0.073289, 0.972682, 0.220268, 0.000000, + 0.997097,-0.076035, 0.004003, 0.000000, + 0.020641, 0.219336,-0.975431, 0.000000, + 0.532289,-0.143643,-0.879248, 1.000000;; + } + } //End of Armature_noga4 + Frame Armature_noga2 { + FrameTransformMatrix { + 0.073289, 0.972682, 0.220268, 0.000000, + 0.997097,-0.076035, 0.004003, 0.000000, + 0.020641, 0.219335,-0.975431, 0.000000, + 0.700789, 1.772341,-0.879248, 1.000000;; + } + } //End of Armature_noga2 + Frame Armature_noga1 { + FrameTransformMatrix { + 0.073289, 0.972682, 0.220268, 0.000000, + 0.997097,-0.076035, 0.004003, 0.000000, + 0.020641, 0.219336,-0.975431, 0.000000, + 0.700789, 1.772341, 0.698612, 1.000000;; + } + } //End of Armature_noga1 + } //End of Armature_body2 + } //End of Armature + Frame Cube { + FrameTransformMatrix { + -0.000234, 2.732761, 0.000000, 0.000000, + -2.732761,-0.000234, 0.000000, 0.000000, + 0.000000, 0.000000, 2.732761, 0.000000, + -0.022274,-1.486684, 5.904222, 1.000000;; + } + Mesh { //Mesh Mesh + 408; + -1.000000;-1.000000;-1.000000;, + -1.000000; 1.000000;-1.000000;, + -1.000000; 1.000000; 0.013041;, + -1.000000;-1.000000; 0.013041;, + -1.000000; 1.000000;-1.000000;, + 1.000000; 1.000000;-1.000000;, + 1.000000; 1.000000; 1.000000;, + -1.000000; 1.000000; 0.013041;, + 1.782056;-1.000000;-1.494922;, + 1.782056; 1.000000;-1.494922;, + 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.013041;, + 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.013041;, + -1.000000; 1.000000; 0.013041;, + 1.000000; 1.000000; 1.000000;, + 1.000000;-1.000000; 1.000000;, + 2.929399;-0.653627;-1.366374;, + 2.929399; 0.653627;-1.366374;, + 1.782056; 1.000000;-1.494922;, + 1.782056;-1.000000;-1.494922;, + 1.000000; 1.000000; 1.000000;, + 1.000000; 1.000000;-1.000000;, + 1.782056; 1.000000;-1.494922;, + 1.782056; 1.000000; 1.000000;, + 1.782056; 1.000000; 1.000000;, + 1.782056;-1.000000; 1.000000;, + 1.000000;-1.000000; 1.000000;, + 1.000000; 1.000000; 1.000000;, + 1.782056;-1.000000; 1.000000;, + 1.782056;-1.000000;-1.494922;, + 1.000000;-1.000000;-1.000000;, + 1.000000;-1.000000; 1.000000;, + 3.192818;-0.423998;-0.769693;, + 3.192818; 0.423998;-0.769693;, + 2.929399; 0.653627;-1.366374;, + 2.929399;-0.653627;-1.366374;, + 2.389777;-0.653627; 0.653627;, + 2.929399;-0.653627;-1.366374;, + 1.782056;-1.000000;-1.494922;, + 1.782056;-1.000000; 1.000000;, + 1.782056; 1.000000; 1.000000;, + 1.782056; 1.000000;-1.494922;, + 2.929399; 0.653627;-1.366374;, + 2.389777; 0.653627; 0.653627;, + 2.389777; 0.653627; 0.653627;, + 2.389777;-0.653627; 0.653627;, + 1.782056;-1.000000; 1.000000;, + 1.782056; 1.000000; 1.000000;, + 3.363553;-0.423998;-0.551867;, + 3.363553; 0.423998;-0.551867;, + 3.192818; 0.423998;-0.769693;, + 3.192818;-0.423998;-0.769693;, + 2.389777; 0.653627; 0.653627;, + 2.929399; 0.653627;-1.366374;, + 3.192818; 0.423998;-0.769693;, + 2.653195; 0.423998; 0.296128;, + 2.653195; 0.423998; 0.296128;, + 2.653195;-0.423998; 0.296128;, + 2.389777;-0.653627; 0.653627;, + 2.389777; 0.653627; 0.653627;, + 2.653195;-0.423998; 0.296128;, + 3.192818;-0.423998;-0.769693;, + 2.929399;-0.653627;-1.366374;, + 2.389777;-0.653627; 0.653627;, + 3.363553; 0.423998;-0.551867;, + 3.363553;-0.423998;-0.551867;, + 3.363553;-0.423998; 0.296128;, + 3.363553; 0.423998; 0.296128;, + 3.363553; 0.423998; 0.296128;, + 3.363553;-0.423998; 0.296128;, + 2.653195;-0.423998; 0.296128;, + 2.653195; 0.423998; 0.296128;, + 3.363553;-0.423998; 0.296128;, + 3.363553;-0.423998;-0.551867;, + 3.192818;-0.423998;-0.769693;, + 2.653195;-0.423998; 0.296128;, + 2.653195; 0.423998; 0.296128;, + 3.192818; 0.423998;-0.769693;, + 3.363553; 0.423998;-0.551867;, + 3.363553; 0.423998; 0.296128;, + 2.944614;-0.144918;-0.645865;, + 2.944614; 0.200745;-0.645865;, + 2.944614; 0.200745;-0.319240;, + 2.944614;-0.144918;-0.319240;, + 2.944614;-0.144918;-0.645865;, + 3.271239;-0.144918;-0.645865;, + 3.271239;-0.144918;-0.645865;, + 2.944614;-0.144918;-0.645865;, + 3.271239; 0.200745;-0.645865;, + 3.271239;-0.144918;-0.645865;, + 3.271239;-0.144918;-0.319240;, + 3.271239; 0.200745;-0.319240;, + 2.944614; 0.200745;-0.319240;, + 3.271239; 0.200745;-0.319240;, + 3.271239; 0.200745;-0.319240;, + 2.944614; 0.200745;-0.319240;, + 3.271239;-0.144918;-0.645865;, + 3.271239; 0.200745;-0.645865;, + 2.944614; 0.200745;-0.645865;, + 2.944614;-0.144918;-0.645865;, + 2.944614;-0.144918;-0.319240;, + 2.944614; 0.200745;-0.319240;, + 3.271239; 0.200745;-0.319240;, + 3.271239;-0.144918;-0.319240;, + 3.271239; 0.200745;-0.645865;, + 2.944614; 0.200745;-0.645865;, + 2.944614; 0.200745;-0.645865;, + 3.271239; 0.200745;-0.645865;, + 2.944614; 0.200745;-0.319240;, + 2.944614; 0.200745;-0.645865;, + 2.944614; 0.200745;-0.645865;, + 2.944614; 0.200745;-0.319240;, + 3.271239;-0.144918;-0.319240;, + 3.271239;-0.144918;-0.645865;, + 3.271239;-0.144918;-0.645865;, + 3.271239;-0.144918;-0.319240;, + 2.944614;-0.144918;-0.645865;, + 2.944614;-0.144918;-0.319240;, + 2.944614;-0.144918;-0.319240;, + 2.944614;-0.144918;-0.645865;, + 3.271239;-0.144918;-0.319240;, + 2.944614;-0.144918;-0.319240;, + 2.944614;-0.144918;-0.319240;, + 3.271239;-0.144918;-0.319240;, + 3.271239; 0.200745;-0.319240;, + 3.271239; 0.200745;-0.645865;, + 3.271239; 0.200745;-0.645865;, + 3.271239; 0.200745;-0.319240;, + 3.158436;-0.843188; 0.129739;, + 3.158436;-0.935268; 0.129739;, + 3.057417;-0.935268; 0.129739;, + 3.057417;-0.843188; 0.129739;, + 2.944614; 0.200745;-0.319240;, + 2.944614; 0.647331;-0.319240;, + 3.271239; 0.647331;-0.319240;, + 3.271239; 0.200745;-0.319240;, + 3.271239; 0.200745;-0.319240;, + 3.271239; 0.647331;-0.319240;, + 3.271239; 0.647331;-0.645865;, + 3.271239; 0.200745;-0.645865;, + 3.271239; 0.200745;-0.645865;, + 3.271239; 0.647331;-0.645865;, + 2.944614; 0.647331;-0.645865;, + 2.944614; 0.200745;-0.645865;, + 2.944614; 0.200745;-0.645865;, + 2.944614; 0.647331;-0.645865;, + 2.944614; 0.647331;-0.319240;, + 2.944614; 0.200745;-0.319240;, + 3.063179; 0.860849; 0.129739;, + 3.063179; 0.942425; 0.129739;, + 3.152674; 0.942425; 0.129739;, + 3.152674; 0.860849; 0.129739;, + 3.271239;-0.144918;-0.319240;, + 3.271239;-0.591504;-0.319240;, + 2.944614;-0.591504;-0.319240;, + 2.944614;-0.144918;-0.319240;, + 2.944614;-0.144918;-0.319240;, + 2.944614;-0.591504;-0.319240;, + 2.944614;-0.591504;-0.645865;, + 2.944614;-0.144918;-0.645865;, + 2.944614;-0.144918;-0.645865;, + 2.944614;-0.591504;-0.645865;, + 3.271239;-0.591504;-0.645865;, + 3.271239;-0.144918;-0.645865;, + 3.271239;-0.144918;-0.645865;, + 3.271239;-0.591504;-0.645865;, + 3.271239;-0.591504;-0.319240;, + 3.271239;-0.144918;-0.319240;, + 2.944614; 0.945055;-0.645865;, + 3.271239; 0.945055;-0.645865;, + 3.271239; 0.945055;-0.319240;, + 2.944614; 0.945055;-0.319240;, + 3.152674; 0.860849; 0.129739;, + 3.152674; 0.942425; 0.129739;, + 3.271239; 0.945055;-0.319240;, + 3.271239; 0.647331;-0.319240;, + 3.271239; 0.647331;-0.319240;, + 3.271239; 0.945055;-0.319240;, + 3.271239; 0.945055;-0.645865;, + 3.271239; 0.647331;-0.645865;, + 3.271239; 0.647331;-0.645865;, + 3.271239; 0.945055;-0.645865;, + 2.944614; 0.945055;-0.645865;, + 2.944614; 0.647331;-0.645865;, + 2.944614; 0.647331;-0.645865;, + 2.944614; 0.945055;-0.645865;, + 2.944614; 0.945055;-0.319240;, + 2.944614; 0.647331;-0.319240;, + 3.271239;-0.889228;-0.645865;, + 2.944614;-0.889228;-0.645865;, + 2.944614;-0.889228;-0.319240;, + 3.271239;-0.889228;-0.319240;, + 3.158436;-0.843188; 0.129739;, + 3.057417;-0.843188; 0.129739;, + 2.944614;-0.591504;-0.319240;, + 3.271239;-0.591504;-0.319240;, + 2.944614;-0.591504;-0.319240;, + 2.944614;-0.889228;-0.319240;, + 2.944614;-0.889228;-0.645865;, + 2.944614;-0.591504;-0.645865;, + 2.944614;-0.591504;-0.645865;, + 2.944614;-0.889228;-0.645865;, + 3.271239;-0.889228;-0.645865;, + 3.271239;-0.591504;-0.645865;, + 3.271239;-0.591504;-0.645865;, + 3.271239;-0.889228;-0.645865;, + 3.271239;-0.889228;-0.319240;, + 3.271239;-0.591504;-0.319240;, + 3.063179; 0.860849; 0.129739;, + 3.152674; 0.860849; 0.129739;, + 3.271239; 0.647331;-0.319240;, + 2.944614; 0.647331;-0.319240;, + 3.158436;-0.935268; 0.129739;, + 3.158436;-0.843188; 0.129739;, + 3.271239;-0.591504;-0.319240;, + 3.271239;-0.889228;-0.319240;, + 3.271239;-0.889228;-0.319240;, + 2.944614;-0.889228;-0.319240;, + 3.057417;-0.935268; 0.129739;, + 3.158436;-0.935268; 0.129739;, + 3.063179; 0.942425; 0.129739;, + 3.063179; 0.860849; 0.129739;, + 2.944614; 0.647331;-0.319240;, + 2.944614; 0.945055;-0.319240;, + 2.944614; 0.945055;-0.319240;, + 3.271239; 0.945055;-0.319240;, + 3.152674; 0.942425; 0.129739;, + 3.063179; 0.942425; 0.129739;, + 3.057417;-0.843188; 0.129739;, + 3.057417;-0.935268; 0.129739;, + 2.944614;-0.889228;-0.319240;, + 2.944614;-0.591504;-0.319240;, + -0.905841;-0.958383;-2.117298;, + -0.905841;-0.605846;-2.117298;, + -0.905841;-0.605846;-1.011325;, + -0.905841;-0.958383;-1.011325;, + -0.905841;-0.605846;-2.117298;, + -0.553305;-0.605846;-2.117298;, + -0.553305;-0.605846;-1.011325;, + -0.905841;-0.605846;-1.011325;, + -0.553305;-0.605846;-2.117298;, + -0.553305;-0.958383;-2.117298;, + -0.553305;-0.958383;-1.011325;, + -0.553305;-0.605846;-1.011325;, + -0.553305;-0.958383;-2.117298;, + -0.905841;-0.958383;-2.117298;, + -0.905841;-0.958383;-1.011325;, + -0.553305;-0.958383;-1.011325;, + -0.553305;-0.958383;-2.117298;, + -0.553305;-0.605846;-2.117298;, + -0.905841;-0.605846;-2.117298;, + -0.905841;-0.958383;-2.117298;, + -0.905841;-0.958383;-1.011325;, + -0.905841;-0.605846;-1.011325;, + -0.553305;-0.605846;-1.011325;, + -0.553305;-0.958383;-1.011325;, + -0.905841; 0.626523;-2.117298;, + -0.905841; 0.979060;-2.117298;, + -0.905841; 0.979060;-1.011325;, + -0.905841; 0.626523;-1.011325;, + -0.905841; 0.979060;-2.117298;, + -0.553305; 0.979060;-2.117298;, + -0.553305; 0.979060;-1.011325;, + -0.905841; 0.979060;-1.011325;, + -0.553305; 0.979060;-2.117298;, + -0.553305; 0.626523;-2.117298;, + -0.553305; 0.626523;-1.011325;, + -0.553305; 0.979060;-1.011325;, + -0.553305; 0.626523;-2.117298;, + -0.905841; 0.626523;-2.117298;, + -0.905841; 0.626523;-1.011325;, + -0.553305; 0.626523;-1.011325;, + -0.553305; 0.626523;-2.117298;, + -0.553305; 0.979060;-2.117298;, + -0.905841; 0.979060;-2.117298;, + -0.905841; 0.626523;-2.117298;, + -0.905841; 0.626523;-1.011325;, + -0.905841; 0.979060;-1.011325;, + -0.553305; 0.979060;-1.011325;, + -0.553305; 0.626523;-1.011325;, + 1.029230; 0.626523;-2.117298;, + 1.029230; 0.979060;-2.117298;, + 1.029230; 0.979060;-1.011325;, + 1.029230; 0.626523;-1.011325;, + 1.029230; 0.979060;-2.117298;, + 1.381767; 0.979060;-2.117298;, + 1.381767; 0.979060;-1.011325;, + 1.029230; 0.979060;-1.011325;, + 1.381767; 0.979060;-2.117298;, + 1.381767; 0.626523;-2.117298;, + 1.381767; 0.626523;-1.011325;, + 1.381767; 0.979060;-1.011325;, + 1.381767; 0.626523;-2.117298;, + 1.029230; 0.626523;-2.117298;, + 1.029230; 0.626523;-1.011325;, + 1.381767; 0.626523;-1.011325;, + 1.381767; 0.626523;-2.117298;, + 1.381767; 0.979060;-2.117298;, + 1.029230; 0.979060;-2.117298;, + 1.029230; 0.626523;-2.117298;, + 1.029230; 0.626523;-1.011325;, + 1.029230; 0.979060;-1.011325;, + 1.381767; 0.979060;-1.011325;, + 1.381767; 0.626523;-1.011325;, + 1.029230;-0.968674;-2.117298;, + 1.029230;-0.616137;-2.117298;, + 1.029230;-0.616137;-1.011325;, + 1.029230;-0.968674;-1.011325;, + 1.029230;-0.616137;-2.117298;, + 1.381767;-0.616137;-2.117298;, + 1.381767;-0.616137;-1.011325;, + 1.029230;-0.616137;-1.011325;, + 1.381767;-0.616137;-2.117298;, + 1.381767;-0.968674;-2.117298;, + 1.381767;-0.968674;-1.011325;, + 1.381767;-0.616137;-1.011325;, + 1.381767;-0.968674;-2.117298;, + 1.029230;-0.968674;-2.117298;, + 1.029230;-0.968674;-1.011325;, + 1.381767;-0.968674;-1.011325;, + 1.381767;-0.968674;-2.117298;, + 1.381767;-0.616137;-2.117298;, + 1.029230;-0.616137;-2.117298;, + 1.029230;-0.968674;-2.117298;, + 1.029230;-0.968674;-1.011325;, + 1.029230;-0.616137;-1.011325;, + 1.381767;-0.616137;-1.011325;, + 1.381767;-0.968674;-1.011325;, + -1.798844;-0.135824;-0.084023;, + -1.798844; 0.174168;-0.084023;, + -1.798844; 0.174168; 0.225970;, + -1.798844;-0.135824; 0.225970;, + -1.798844; 0.174168;-0.084023;, + -0.975902; 0.174168;-0.272977;, + -0.975902; 0.174168; 0.037015;, + -1.798844; 0.174168; 0.225970;, + -0.975902; 0.174168;-0.272977;, + -0.975902;-0.135824;-0.272977;, + -0.975902;-0.135824; 0.037015;, + -0.975902; 0.174168; 0.037015;, + -0.975902;-0.135824;-0.272977;, + -1.798844;-0.135824;-0.084023;, + -1.798844;-0.135824; 0.225970;, + -0.975902;-0.135824; 0.037015;, + -0.975902;-0.135824;-0.272977;, + -0.975902; 0.174168;-0.272977;, + -1.798844; 0.174168;-0.084023;, + -1.798844;-0.135824;-0.084023;, + -1.798844;-0.135824; 0.225970;, + -1.798844; 0.174168; 0.225970;, + -0.975902; 0.174168; 0.037015;, + -0.975902;-0.135824; 0.037015;, + 1.449429;-0.717499; 0.974606;, + 1.643658;-0.708508; 0.974200;, + 1.649909;-0.819067; 1.747433;, + 1.455680;-0.828058; 1.747839;, + 1.643658;-0.708508; 0.974200;, + 1.653159;-0.915680; 0.931782;, + 1.662708;-1.100848; 1.398462;, + 1.649909;-0.819067; 1.747433;, + 1.653159;-0.915680; 0.931782;, + 1.458930;-0.924671; 0.932188;, + 1.468478;-1.109839; 1.398868;, + 1.662708;-1.100848; 1.398462;, + 1.458930;-0.924671; 0.932188;, + 1.449429;-0.717499; 0.974606;, + 1.455680;-0.828058; 1.747839;, + 1.468478;-1.109839; 1.398868;, + 1.458930;-0.924671; 0.932188;, + 1.653159;-0.915680; 0.931782;, + 1.643658;-0.708508; 0.974200;, + 1.449429;-0.717499; 0.974606;, + 1.455680;-0.828058; 1.747839;, + 1.649909;-0.819067; 1.747433;, + 1.662708;-1.100848; 1.398462;, + 1.468478;-1.109839; 1.398868;, + 1.405700; 0.856790; 0.983993;, + 1.596236; 0.818034; 0.984066;, + 1.645591; 1.061609; 1.662321;, + 1.455054; 1.100365; 1.662248;, + 1.596236; 0.818034; 0.984066;, + 1.633956; 1.003299; 0.888862;, + 1.693816; 1.298348; 1.290771;, + 1.645591; 1.061609; 1.662321;, + 1.633956; 1.003299; 0.888862;, + 1.443419; 1.042055; 0.888789;, + 1.503279; 1.337104; 1.290698;, + 1.693816; 1.298348; 1.290771;, + 1.443419; 1.042055; 0.888789;, + 1.405700; 0.856790; 0.983993;, + 1.455054; 1.100365; 1.662248;, + 1.503279; 1.337104; 1.290698;, + 1.443419; 1.042055; 0.888789;, + 1.633956; 1.003299; 0.888862;, + 1.596236; 0.818034; 0.984066;, + 1.405700; 0.856790; 0.983993;, + 1.455054; 1.100365; 1.662248;, + 1.645591; 1.061609; 1.662321;, + 1.693816; 1.298348; 1.290771;, + 1.503279; 1.337104; 1.290698;; + 102; + 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;; + MeshNormals { //Mesh Normals + 408; + -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.534759; 0.000000;-0.845005;, + -0.534759; 0.000000;-0.845005;, + -0.534759; 0.000000;-0.845005;, + -0.534759; 0.000000;-0.845005;, + 0.000000;-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.442530; 0.000000; 0.896754;, + -0.442530; 0.000000; 0.896754;, + -0.442530; 0.000000; 0.896754;, + -0.442530; 0.000000; 0.896754;, + 0.111343; 0.000000;-0.993782;, + 0.111343; 0.000000;-0.993782;, + 0.111343; 0.000000;-0.993782;, + 0.111343; 0.000000;-0.993782;, + -0.000000; 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.914818; 0.000000;-0.403867;, + 0.914818; 0.000000;-0.403867;, + 0.914818; 0.000000;-0.403867;, + 0.914818; 0.000000;-0.403867;, + 0.371549;-0.927351; 0.044407;, + 0.371549;-0.927351; 0.044407;, + 0.371549;-0.927351; 0.044407;, + 0.371549;-0.927351; 0.044407;, + 0.371549; 0.927351; 0.044407;, + 0.371549; 0.927351; 0.044407;, + 0.371549; 0.927351; 0.044407;, + 0.371549; 0.927351; 0.044407;, + 0.495174; 0.000000; 0.868794;, + 0.495174; 0.000000; 0.868794;, + 0.495174; 0.000000; 0.868794;, + 0.495174; 0.000000; 0.868794;, + 0.787044; 0.000000;-0.616897;, + 0.787044; 0.000000;-0.616897;, + 0.787044; 0.000000;-0.616897;, + 0.787044; 0.000000;-0.616897;, + 0.588302; 0.782027; 0.205754;, + 0.588302; 0.782027; 0.205754;, + 0.588302; 0.782027; 0.205754;, + 0.588302; 0.782027; 0.205754;, + 0.805057; 0.000000; 0.593197;, + 0.805057; 0.000000; 0.593197;, + 0.805057; 0.000000; 0.593197;, + 0.805057; 0.000000; 0.593197;, + 0.588302;-0.782027; 0.205754;, + 0.588302;-0.782027; 0.205754;, + 0.588302;-0.782027; 0.205754;, + 0.588302;-0.782027; 0.205754;, + 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;, + -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; 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;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.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;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000; 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; 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; 0.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;, + 0.000000; 0.000000; 1.000000;, + -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;, + -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;, + 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.966856; 0.000000; 0.255323;, + 0.966856; 0.000000; 0.255323;, + 0.966856; 0.000000; 0.255323;, + 0.966856; 0.000000; 0.255323;, + 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;, + 0.000000; 0.872294; 0.488981;, + 0.000000; 0.872294; 0.488981;, + 0.000000; 0.872294; 0.488981;, + 0.000000; 0.872294; 0.488981;, + -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.903080; 0.429472;, + 0.000000;-0.903080; 0.429472;, + 0.000000;-0.903080; 0.429472;, + 0.000000;-0.903080; 0.429472;, + 0.969858; 0.000000; 0.243670;, + 0.969858; 0.000000; 0.243670;, + 0.969858; 0.000000; 0.243670;, + 0.969858; 0.000000; 0.243670;, + 0.000000;-0.994784;-0.102009;, + 0.000000;-0.994784;-0.102009;, + 0.000000;-0.994784;-0.102009;, + 0.000000;-0.994784;-0.102009;, + -0.966856; 0.000000; 0.255323;, + -0.966856; 0.000000; 0.255323;, + -0.966856; 0.000000; 0.255323;, + -0.966856; 0.000000; 0.255323;, + 0.000000; 0.999983; 0.005858;, + 0.000000; 0.999983; 0.005858;, + 0.000000; 0.999983; 0.005858;, + 0.000000; 0.999983; 0.005858;, + -0.969858; 0.000000; 0.243669;, + -0.969858; 0.000000; 0.243669;, + -0.969858; 0.000000; 0.243669;, + -0.969858; 0.000000; 0.243669;, + -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;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -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;-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; 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; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -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;-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; 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.223785; 0.000000;-0.974638;, + -0.223785; 0.000000;-0.974638;, + -0.223785; 0.000000;-0.974638;, + -0.223785; 0.000000;-0.974638;, + 0.223785; 0.000000; 0.974638;, + 0.223785; 0.000000; 0.974638;, + 0.223785; 0.000000; 0.974638;, + 0.223785; 0.000000; 0.974638;, + -0.045477; 0.988856; 0.141757;, + -0.045477; 0.988856; 0.141757;, + -0.045477; 0.988856; 0.141757;, + -0.045477; 0.988856; 0.141757;, + 0.998903; 0.046809;-0.001564;, + 0.998903; 0.046809;-0.001564;, + 0.998903; 0.046809;-0.001564;, + 0.998903; 0.046809;-0.001564;, + 0.042202;-0.928382;-0.369224;, + 0.042202;-0.928382;-0.369224;, + 0.042202;-0.928382;-0.369224;, + 0.042202;-0.928382;-0.369224;, + -0.998903;-0.046808; 0.001564;, + -0.998903;-0.046808; 0.001564;, + -0.998903;-0.046808; 0.001564;, + -0.998903;-0.046808; 0.001564;, + -0.011313; 0.200076;-0.979715;, + -0.011313; 0.200076;-0.979715;, + -0.011313; 0.200076;-0.979715;, + -0.011313; 0.200076;-0.979715;, + 0.037275;-0.776820; 0.628619;, + 0.037275;-0.776820; 0.628619;, + 0.037275;-0.776820; 0.628619;, + 0.037275;-0.776820; 0.628619;, + 0.187279; 0.920085;-0.344049;, + 0.187279; 0.920085;-0.344049;, + 0.187279; 0.920085;-0.344049;, + 0.187279; 0.920085;-0.344049;, + -0.979946; 0.199263;-0.000281;, + -0.979946; 0.199263;-0.000281;, + -0.979946; 0.199263;-0.000281;, + -0.979946; 0.199263;-0.000281;, + -0.159748;-0.784251; 0.599525;, + -0.159748;-0.784251; 0.599525;, + -0.159748;-0.784251; 0.599525;, + -0.159748;-0.784251; 0.599525;, + 0.979946;-0.199262; 0.000281;, + 0.979946;-0.199262; 0.000281;, + 0.979946;-0.199262; 0.000281;, + 0.979946;-0.199262; 0.000281;, + 0.089315; 0.440791; 0.893155;, + 0.089315; 0.440791; 0.893155;, + 0.089315; 0.440791; 0.893155;, + 0.089315; 0.440791; 0.893155;, + -0.166899;-0.821566;-0.545137;, + -0.166899;-0.821566;-0.545137;, + -0.166899;-0.821566;-0.545137;, + -0.166899;-0.821566;-0.545137;; + 102; + 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;; + } //End of Mesh Normals + MeshMaterialList { //Mesh Material List + 1; + 1; + 0;; + Material Default_Material { + 0.800000; 0.800000; 0.800000; 0.800000;; + 96.078431; + 0.500000; 0.500000; 0.500000;; + 0.000000; 0.000000; 0.000000;; + } + } //End of Mesh Material List + MeshTextureCoords { //Mesh UV Coordinates + 408; + 0.386811; 0.472283;, + 0.272912; 0.618747;, + 0.227425; 0.549647;, + 0.299564; 0.438277;, + 0.272912; 0.618747;, + 0.082190; 0.676898;, + 0.050502; 0.456036;, + 0.227425; 0.549647;, + 0.522138; 0.121679;, + 0.417251; 0.121679;, + 0.417251; 0.073143;, + 0.522138; 0.073143;, + 0.396334; 0.265386;, + 0.386811; 0.472283;, + 0.299564; 0.438277;, + 0.181004; 0.294413;, + 0.396334; 0.265386;, + 0.603231; 0.274910;, + 0.593707; 0.481806;, + 0.386811; 0.472283;, + 0.299564; 0.438277;, + 0.227425; 0.549647;, + 0.050502; 0.456036;, + 0.181004; 0.294413;, + 0.503973; 0.182226;, + 0.435416; 0.182226;, + 0.417251; 0.121679;, + 0.522138; 0.121679;, + 0.750355; 0.507719;, + 0.987093; 0.687609;, + 0.960706; 0.838343;, + 0.716963; 0.603832;, + 0.716963; 0.603832;, + 0.458562; 0.612200;, + 0.423581; 0.504655;, + 0.750355; 0.507719;, + 0.458562; 0.612200;, + 0.226735; 0.850015;, + 0.191236; 0.703989;, + 0.423581; 0.504655;, + 0.491930; 0.216432;, + 0.447459; 0.216432;, + 0.435416; 0.182226;, + 0.503973; 0.182226;, + 0.492461; 0.693426;, + 0.392732; 0.954402;, + 0.226735; 0.850015;, + 0.458562; 0.612200;, + 0.716963; 0.603832;, + 0.960706; 0.838343;, + 0.802252; 0.955339;, + 0.691288; 0.690751;, + 0.691288; 0.690751;, + 0.492461; 0.693426;, + 0.458562; 0.612200;, + 0.716963; 0.603832;, + 0.491930; 0.230946;, + 0.447459; 0.230946;, + 0.447459; 0.216432;, + 0.491930; 0.216432;, + 0.691288; 0.690751;, + 0.802252; 0.955339;, + 0.707973; 0.950323;, + 0.691716; 0.787540;, + 0.691716; 0.787540;, + 0.493187; 0.787479;, + 0.492461; 0.693426;, + 0.691288; 0.690751;, + 0.493187; 0.787479;, + 0.486624; 0.943277;, + 0.392732; 0.954402;, + 0.492461; 0.693426;, + 0.637145; 0.955620;, + 0.553870; 0.954715;, + 0.554556; 0.858307;, + 0.637506; 0.861349;, + 0.637506; 0.861349;, + 0.554556; 0.858307;, + 0.493187; 0.787479;, + 0.691716; 0.787540;, + 0.554556; 0.858307;, + 0.553870; 0.954715;, + 0.486624; 0.943277;, + 0.493187; 0.787479;, + 0.691716; 0.787540;, + 0.707973; 0.950323;, + 0.637145; 0.955620;, + 0.637506; 0.861349;, + 0.136776; 0.106951;, + 0.175398; 0.107104;, + 0.176964; 0.144298;, + 0.136301; 0.144608;, + 0.132081; 0.106610;, + 0.131875; 0.071042;, + 0.136422; 0.071293;, + 0.136776; 0.106951;, + 0.175568; 0.219895;, + 0.137892; 0.219264;, + 0.136586; 0.182582;, + 0.177191; 0.182467;, + 0.181818; 0.144471;, + 0.182095; 0.182855;, + 0.177191; 0.182467;, + 0.176964; 0.144298;, + 0.136422; 0.071293;, + 0.174123; 0.070400;, + 0.175398; 0.107104;, + 0.136776; 0.106951;, + 0.136301; 0.144608;, + 0.176964; 0.144298;, + 0.177191; 0.182467;, + 0.136586; 0.182582;, + 0.178805; 0.070528;, + 0.180156; 0.107246;, + 0.175398; 0.107104;, + 0.174123; 0.070400;, + 0.176964; 0.144298;, + 0.175398; 0.107104;, + 0.180156; 0.107246;, + 0.181818; 0.144471;, + 0.136586; 0.182582;, + 0.137892; 0.219264;, + 0.133247; 0.219107;, + 0.131735; 0.182402;, + 0.136776; 0.106951;, + 0.136301; 0.144608;, + 0.131453; 0.144299;, + 0.132081; 0.106610;, + 0.131735; 0.182402;, + 0.131453; 0.144299;, + 0.136301; 0.144608;, + 0.136586; 0.182582;, + 0.182095; 0.182855;, + 0.180287; 0.220459;, + 0.175568; 0.219895;, + 0.177191; 0.182467;, + 0.376197; 0.227521;, + 0.376197; 0.238034;, + 0.364664; 0.238034;, + 0.364664; 0.227521;, + 0.181818; 0.144471;, + 0.239430; 0.142279;, + 0.240753; 0.187646;, + 0.182095; 0.182855;, + 0.182095; 0.182855;, + 0.240753; 0.187646;, + 0.229919; 0.226625;, + 0.180287; 0.220459;, + 0.178805; 0.070528;, + 0.228965; 0.068210;, + 0.228236; 0.104812;, + 0.180156; 0.107246;, + 0.180156; 0.107246;, + 0.228236; 0.104812;, + 0.239430; 0.142279;, + 0.181818; 0.144471;, + 0.365979; 0.226984;, + 0.365979; 0.217670;, + 0.376197; 0.217670;, + 0.376197; 0.226984;, + 0.131735; 0.182402;, + 0.073243; 0.184232;, + 0.075088; 0.140495;, + 0.131453; 0.144299;, + 0.131453; 0.144299;, + 0.075088; 0.140495;, + 0.085363; 0.103454;, + 0.132081; 0.106610;, + 0.132081; 0.106610;, + 0.085363; 0.103454;, + 0.084043; 0.071544;, + 0.131875; 0.071042;, + 0.133247; 0.219107;, + 0.085694; 0.225219;, + 0.073243; 0.184232;, + 0.131735; 0.182402;, + 0.253165; 0.098905;, + 0.263783; 0.073376;, + 0.293335; 0.096939;, + 0.267343; 0.121520;, + 0.300314; 0.167277;, + 0.306474; 0.173391;, + 0.271868; 0.208653;, + 0.240753; 0.187646;, + 0.240753; 0.187646;, + 0.271868; 0.208653;, + 0.257409; 0.238034;, + 0.229919; 0.226625;, + 0.228965; 0.068210;, + 0.263783; 0.073376;, + 0.253165; 0.098905;, + 0.228236; 0.104812;, + 0.228236; 0.104812;, + 0.253165; 0.098905;, + 0.267343; 0.121520;, + 0.239430; 0.142279;, + 0.053926; 0.074823;, + 0.063678; 0.101658;, + 0.046916; 0.118072;, + 0.026989; 0.093996;, + 0.012396; 0.160519;, + 0.013229; 0.150105;, + 0.075088; 0.140495;, + 0.073243; 0.184232;, + 0.075088; 0.140495;, + 0.046916; 0.118072;, + 0.063678; 0.101658;, + 0.085363; 0.103454;, + 0.085363; 0.103454;, + 0.063678; 0.101658;, + 0.053926; 0.074823;, + 0.084043; 0.071544;, + 0.085694; 0.225219;, + 0.053143; 0.238034;, + 0.039084; 0.202323;, + 0.073243; 0.184232;, + 0.299601; 0.157935;, + 0.300314; 0.167277;, + 0.240753; 0.187646;, + 0.239430; 0.142279;, + 0.004685; 0.166594;, + 0.012396; 0.160519;, + 0.073243; 0.184232;, + 0.039084; 0.202323;, + 0.026989; 0.093996;, + 0.046916; 0.118072;, + 0.007433; 0.142454;, + 0.000268; 0.134683;, + 0.305143; 0.151001;, + 0.299601; 0.157935;, + 0.239430; 0.142279;, + 0.267343; 0.121520;, + 0.267343; 0.121520;, + 0.293335; 0.096939;, + 0.313027; 0.145070;, + 0.305143; 0.151001;, + 0.013229; 0.150105;, + 0.007433; 0.142454;, + 0.046916; 0.118072;, + 0.075088; 0.140495;, + 0.674790; 0.390072;, + 0.623481; 0.390072;, + 0.625199; 0.074486;, + 0.676508; 0.074486;, + 0.828718; 0.390072;, + 0.777409; 0.390072;, + 0.779127; 0.074486;, + 0.830436; 0.074486;, + 0.777409; 0.390072;, + 0.726099; 0.390072;, + 0.727817; 0.074486;, + 0.779127; 0.074486;, + 0.726099; 0.390072;, + 0.674790; 0.390072;, + 0.676508; 0.074486;, + 0.727817; 0.074486;, + 0.376734; 0.197783;, + 0.416984; 0.197783;, + 0.416984; 0.238034;, + 0.376734; 0.238034;, + 0.338959; 0.032478;, + 0.379210; 0.032478;, + 0.379210; 0.072728;, + 0.338959; 0.072728;, + 0.672241; 0.389947;, + 0.620931; 0.389947;, + 0.622649; 0.074361;, + 0.673959; 0.074361;, + 0.826169; 0.389947;, + 0.774859; 0.389947;, + 0.776577; 0.074361;, + 0.827887; 0.074361;, + 0.774859; 0.389947;, + 0.723550; 0.389947;, + 0.725268; 0.074361;, + 0.776577; 0.074361;, + 0.723550; 0.389947;, + 0.672241; 0.389947;, + 0.673959; 0.074361;, + 0.725268; 0.074361;, + 0.932559; 0.503812;, + 0.972810; 0.503812;, + 0.972810; 0.544062;, + 0.932559; 0.544062;, + 0.416984; 0.156996;, + 0.416984; 0.197247;, + 0.376734; 0.197247;, + 0.376734; 0.156996;, + 0.675511; 0.387510;, + 0.624201; 0.387510;, + 0.625919; 0.071924;, + 0.677229; 0.071924;, + 0.829438; 0.387510;, + 0.778129; 0.387510;, + 0.779847; 0.071924;, + 0.831157; 0.071925;, + 0.778129; 0.387510;, + 0.726820; 0.387510;, + 0.728538; 0.071924;, + 0.779847; 0.071924;, + 0.726820; 0.387510;, + 0.675511; 0.387510;, + 0.677229; 0.071924;, + 0.728538; 0.071924;, + 0.932559; 0.287954;, + 0.972810; 0.287954;, + 0.972810; 0.328204;, + 0.932559; 0.328204;, + 0.972810; 0.463024;, + 0.972810; 0.503275;, + 0.932559; 0.503275;, + 0.932559; 0.463024;, + 0.673879; 0.389027;, + 0.622570; 0.389027;, + 0.624287; 0.073442;, + 0.675597; 0.073442;, + 0.827807; 0.389027;, + 0.776497; 0.389027;, + 0.778216; 0.073442;, + 0.829525; 0.073442;, + 0.776497; 0.389027;, + 0.725188; 0.389027;, + 0.726906; 0.073442;, + 0.778216; 0.073442;, + 0.725188; 0.389027;, + 0.673879; 0.389027;, + 0.675597; 0.073442;, + 0.726906; 0.073442;, + 0.379210; 0.073265;, + 0.379210; 0.113515;, + 0.338959; 0.113515;, + 0.338959; 0.073265;, + 0.932559; 0.287417;, + 0.932559; 0.247167;, + 0.972810; 0.247167;, + 0.972810; 0.287417;, + 0.967952; 0.328741;, + 0.967952; 0.364134;, + 0.932559; 0.364134;, + 0.932559; 0.328741;, + 0.879503; 0.118087;, + 0.879503; 0.214490;, + 0.845007; 0.206570;, + 0.845007; 0.110167;, + 0.967952; 0.462488;, + 0.932559; 0.462488;, + 0.932559; 0.427095;, + 0.967952; 0.427095;, + 0.914896; 0.214490;, + 0.914896; 0.118087;, + 0.949391; 0.110167;, + 0.949391; 0.206570;, + 0.914896; 0.214490;, + 0.879503; 0.214490;, + 0.879503; 0.118087;, + 0.914896; 0.118087;, + 0.949391; 0.110167;, + 0.984784; 0.110167;, + 0.984784; 0.206570;, + 0.949391; 0.206570;, + 0.118063; 0.784242;, + 0.116259; 0.796985;, + 0.037635; 0.759206;, + 0.056242; 0.733033;, + 0.116259; 0.796985;, + 0.147033; 0.813827;, + 0.062771; 0.835151;, + 0.037635; 0.759206;, + 0.147033; 0.813827;, + 0.130208; 0.785009;, + 0.133534; 0.733033;, + 0.162499; 0.739022;, + 0.130208; 0.785009;, + 0.118063; 0.784242;, + 0.056242; 0.733033;, + 0.133534; 0.733033;, + 0.130208; 0.785009;, + 0.147033; 0.813827;, + 0.116259; 0.796985;, + 0.118063; 0.784242;, + 0.196420; 0.835210;, + 0.196395; 0.858875;, + 0.141782; 0.858875;, + 0.141807; 0.835210;, + 0.092391; 0.909330;, + 0.079222; 0.905191;, + 0.115874; 0.835210;, + 0.141722; 0.852985;, + 0.079222; 0.905191;, + 0.061070; 0.933885;, + 0.037635; 0.850835;, + 0.115874; 0.835210;, + 0.061070; 0.933885;, + 0.090075; 0.921329;, + 0.141722; 0.932145;, + 0.131792; 0.959529;, + 0.090075; 0.921329;, + 0.092391; 0.909330;, + 0.141722; 0.852985;, + 0.141722; 0.932145;, + 0.090075; 0.921329;, + 0.061070; 0.933885;, + 0.079222; 0.905191;, + 0.092391; 0.909330;, + 0.141785; 0.959529;, + 0.141782; 0.935864;, + 0.195723; 0.935864;, + 0.195726; 0.959529;; + } //End of Mesh UV Coordinates + XSkinMeshHeader { + 1; + 3; + 7; + } + SkinWeights { + "Armature_noga3"; + 24; + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 263; + 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.975363, 0.011610, 0.220301, 0.000000, + -0.220268,-0.004003, 0.975431, 0.000000, + 0.012206,-0.999924,-0.001347, 0.000000, + 0.551675,-0.952433, 0.919341, 1.000000;; + } //End of Armature_noga3 Skin Weights + SkinWeights { + "Armature_body2"; + 28; + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 28, + 29, + 34, + 35, + 38, + 39; + 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.087606, 0.996155, 0.000000, 0.000000, + -0.000000, 0.000000,-1.000000, 0.000000, + -0.996155, 0.087606, 0.000000, 0.000000, + -0.357971, 0.667023,-0.068190, 1.000000;; + } //End of Armature_body2 Skin Weights + SkinWeights { + "Armature_noga4"; + 24; + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + 287; + 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.975363, 0.011610, 0.220301, 0.000000, + -0.220268,-0.004003, 0.975431, 0.000000, + 0.012206,-0.999924,-0.001347, 0.000000, + 0.901926,-0.946068,-0.631700, 1.000000;; + } //End of Armature_noga4 Skin Weights + SkinWeights { + "Armature_head"; + 260; + 8, + 9, + 24, + 25, + 26, + 27, + 30, + 31, + 32, + 33, + 36, + 37, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 360, + 361, + 362, + 363, + 364, + 365, + 366, + 367, + 368, + 369, + 370, + 371, + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, + 381, + 382, + 383, + 384, + 385, + 386, + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407; + 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, + 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, + 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, + 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, + 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, + 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, 1.000000, 0.000000, 0.000000, + -1.000000, 0.000000,-0.000000, 0.000000, + -0.000000, 0.000000, 1.000000, 0.000000, + -0.068190,-1.034611, 0.268365, 1.000000;; + } //End of Armature_head Skin Weights + SkinWeights { + "Armature_noga1"; + 24; + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333, + 334, + 335; + 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.975363, 0.011610, 0.220301, 0.000000, + -0.220268,-0.004003, 0.975431, 0.000000, + 0.012206,-0.999924,-0.001347, 0.000000, + -1.321620,-0.974714, 0.483673, 1.000000;; + } //End of Armature_noga1 Skin Weights + SkinWeights { + "Armature_noga2"; + 24; + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311; + 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.975363, 0.011610, 0.220301, 0.000000, + -0.220268,-0.004003, 0.975431, 0.000000, + 0.012206,-0.999924,-0.001347, 0.000000, + -0.974068,-0.968398,-1.055421, 1.000000;; + } //End of Armature_noga2 Skin Weights + SkinWeights { + "Armature_hvost"; + 24; + 336, + 337, + 338, + 339, + 340, + 341, + 342, + 343, + 344, + 345, + 346, + 347, + 348, + 349, + 350, + 351, + 352, + 353, + 354, + 355, + 356, + 357, + 358, + 359; + 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.124841,-0.990569,-0.056459, 0.000000, + 0.006976, 0.057779,-0.998305, 0.000000, + 0.992152, 0.124235, 0.014123, 0.000000, + 0.191741,-0.950030,-0.068595, 1.000000;; + } //End of Armature_hvost Skin Weights + } //End of Mesh Mesh + } //End of Cube +} //End of Root Frame +AnimationSet { + Animation { + {Armature} + AnimationKey { //Position + 2; + 102; + 0;3; 0.164184,-2.791352, 4.770043;;, + 1;3; 0.164184,-2.791352, 4.770043;;, + 2;3; 0.164184,-2.791352, 4.770043;;, + 3;3; 0.164184,-2.791352, 4.770043;;, + 4;3; 0.164184,-2.791352, 4.770043;;, + 5;3; 0.164184,-2.791352, 4.770043;;, + 6;3; 0.164184,-2.791352, 4.770043;;, + 7;3; 0.164184,-2.791352, 4.770043;;, + 8;3; 0.164184,-2.791352, 4.770043;;, + 9;3; 0.164184,-2.791352, 4.770043;;, + 10;3; 0.164184,-2.791352, 4.770043;;, + 11;3; 0.164184,-2.791352, 4.770043;;, + 12;3; 0.164184,-2.791352, 4.770043;;, + 13;3; 0.164184,-2.791352, 4.770043;;, + 14;3; 0.164184,-2.791352, 4.770043;;, + 15;3; 0.164184,-2.791352, 4.770043;;, + 16;3; 0.164184,-2.791352, 4.770043;;, + 17;3; 0.164184,-2.791352, 4.770043;;, + 18;3; 0.164184,-2.791352, 4.770043;;, + 19;3; 0.164184,-2.791352, 4.770043;;, + 20;3; 0.164184,-2.791352, 4.770043;;, + 21;3; 0.164184,-2.791352, 4.770043;;, + 22;3; 0.164184,-2.791352, 4.770043;;, + 23;3; 0.164184,-2.791352, 4.770043;;, + 24;3; 0.164184,-2.791352, 4.770043;;, + 25;3; 0.164184,-2.791352, 4.770043;;, + 26;3; 0.164184,-2.791352, 4.770043;;, + 27;3; 0.164184,-2.791352, 4.770043;;, + 28;3; 0.164184,-2.791352, 4.770043;;, + 29;3; 0.164184,-2.791352, 4.770043;;, + 30;3; 0.164184,-2.791352, 4.770043;;, + 31;3; 0.164184,-2.791352, 4.770043;;, + 32;3; 0.164184,-2.791352, 4.770043;;, + 33;3; 0.164184,-2.791352, 4.770043;;, + 34;3; 0.164184,-2.791352, 4.770043;;, + 35;3; 0.164184,-2.791352, 4.770043;;, + 36;3; 0.164184,-2.791352, 4.770043;;, + 37;3; 0.164184,-2.791352, 4.770043;;, + 38;3; 0.164184,-2.791352, 4.770043;;, + 39;3; 0.164184,-2.791352, 4.770043;;, + 40;3; 0.164184,-2.791352, 4.770043;;, + 41;3; 0.164184,-2.791352, 4.770043;;, + 42;3; 0.164184,-2.791352, 4.770043;;, + 43;3; 0.164184,-2.791352, 4.770043;;, + 44;3; 0.164184,-2.791352, 4.770043;;, + 45;3; 0.164184,-2.791352, 4.770043;;, + 46;3; 0.164184,-2.791352, 4.770043;;, + 47;3; 0.164184,-2.791352, 4.770043;;, + 48;3; 0.164184,-2.791352, 4.770043;;, + 49;3; 0.164184,-2.791352, 4.770043;;, + 50;3; 0.164184,-2.791352, 4.770043;;, + 51;3; 0.164184,-2.791352, 4.770043;;, + 52;3; 0.164184,-2.791352, 4.770043;;, + 53;3; 0.164184,-2.791352, 4.770043;;, + 54;3; 0.164184,-2.791352, 4.770043;;, + 55;3; 0.164184,-2.791352, 4.770043;;, + 56;3; 0.164184,-2.791352, 4.770043;;, + 57;3; 0.164184,-2.791352, 4.770043;;, + 58;3; 0.164184,-2.791352, 4.770043;;, + 59;3; 0.164184,-2.791352, 4.770043;;, + 60;3; 0.164184,-2.791352, 4.770043;;, + 61;3; 0.164184,-2.791352, 4.770043;;, + 62;3; 0.164184,-2.791352, 4.770043;;, + 63;3; 0.164184,-2.791352, 4.770043;;, + 64;3; 0.164184,-2.791352, 4.770043;;, + 65;3; 0.164184,-2.791352, 4.770043;;, + 66;3; 0.164184,-2.791352, 4.770043;;, + 67;3; 0.164184,-2.791352, 4.770043;;, + 68;3; 0.164184,-2.791352, 4.770043;;, + 69;3; 0.164184,-2.791352, 4.770043;;, + 70;3; 0.164184,-2.791352, 4.770043;;, + 71;3; 0.164184,-2.791352, 4.770043;;, + 72;3; 0.164184,-2.791352, 4.770043;;, + 73;3; 0.164184,-2.791352, 4.770043;;, + 74;3; 0.164184,-2.791352, 4.770043;;, + 75;3; 0.164184,-2.791352, 4.770043;;, + 76;3; 0.164184,-2.791352, 4.770043;;, + 77;3; 0.164184,-2.791352, 4.770043;;, + 78;3; 0.164184,-2.791352, 4.770043;;, + 79;3; 0.164184,-2.791352, 4.770043;;, + 80;3; 0.164184,-2.791352, 4.770043;;, + 81;3; 0.164184,-2.791352, 4.770043;;, + 82;3; 0.164184,-2.791352, 4.770043;;, + 83;3; 0.164184,-2.791352, 4.770043;;, + 84;3; 0.164184,-2.791352, 4.770043;;, + 85;3; 0.164184,-2.791352, 4.770043;;, + 86;3; 0.164184,-2.791352, 4.770043;;, + 87;3; 0.164184,-2.791352, 4.770043;;, + 88;3; 0.164184,-2.791352, 4.770043;;, + 89;3; 0.164184,-2.791352, 4.770043;;, + 90;3; 0.164184,-2.791352, 4.770043;;, + 91;3; 0.164184,-2.791352, 4.770043;;, + 92;3; 0.164184,-2.791352, 4.770043;;, + 93;3; 0.164184,-2.791352, 4.770043;;, + 94;3; 0.164184,-2.791352, 4.770043;;, + 95;3; 0.164184,-2.791352, 4.770043;;, + 96;3; 0.164184,-2.791352, 4.770043;;, + 97;3; 0.164184,-2.791352, 4.770043;;, + 98;3; 0.164184,-2.791352, 4.770043;;, + 99;3; 0.164184,-2.791352, 4.770043;;, + 100;3; 0.164184,-2.791352, 4.770043;;, + 101;3; 0.164184,-2.791352, 4.770043;;; + } + AnimationKey { //Rotation + 0; + 102; + 0;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 1;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 2;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 3;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 4;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 5;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 6;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 7;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 8;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 9;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 10;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 11;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 12;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 13;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 14;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 15;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 16;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 17;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 18;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 19;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 20;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 21;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 22;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 23;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 24;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 25;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 26;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 27;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 28;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 29;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 30;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 31;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 32;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 33;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 34;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 35;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 36;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 37;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 38;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 39;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 40;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 41;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 42;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 43;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 44;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 45;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 46;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 47;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 48;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 49;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 50;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 51;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 52;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 53;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 54;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 55;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 56;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 57;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 58;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 59;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 60;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 61;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 62;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 63;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 64;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 65;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 66;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 67;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 68;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 69;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 70;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 71;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 72;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 73;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 74;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 75;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 76;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 77;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 78;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 79;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 80;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 81;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 82;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 83;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 84;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 85;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 86;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 87;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 88;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 89;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 90;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 91;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 92;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 93;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 94;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 95;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 96;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 97;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 98;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 99;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 100;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 101;4; -0.707076, 0.000000, 0.000000, 0.707137;;; + } + AnimationKey { //Scale + 1; + 102; + 0;3; 2.732761, 2.732761, 2.732761;;, + 1;3; 2.732761, 2.732761, 2.732761;;, + 2;3; 2.732761, 2.732761, 2.732761;;, + 3;3; 2.732761, 2.732761, 2.732761;;, + 4;3; 2.732761, 2.732761, 2.732761;;, + 5;3; 2.732761, 2.732761, 2.732761;;, + 6;3; 2.732761, 2.732761, 2.732761;;, + 7;3; 2.732761, 2.732761, 2.732761;;, + 8;3; 2.732761, 2.732761, 2.732761;;, + 9;3; 2.732761, 2.732761, 2.732761;;, + 10;3; 2.732761, 2.732761, 2.732761;;, + 11;3; 2.732761, 2.732761, 2.732761;;, + 12;3; 2.732761, 2.732761, 2.732761;;, + 13;3; 2.732761, 2.732761, 2.732761;;, + 14;3; 2.732761, 2.732761, 2.732761;;, + 15;3; 2.732761, 2.732761, 2.732761;;, + 16;3; 2.732761, 2.732761, 2.732761;;, + 17;3; 2.732761, 2.732761, 2.732761;;, + 18;3; 2.732761, 2.732761, 2.732761;;, + 19;3; 2.732761, 2.732761, 2.732761;;, + 20;3; 2.732761, 2.732761, 2.732761;;, + 21;3; 2.732761, 2.732761, 2.732761;;, + 22;3; 2.732761, 2.732761, 2.732761;;, + 23;3; 2.732761, 2.732761, 2.732761;;, + 24;3; 2.732761, 2.732761, 2.732761;;, + 25;3; 2.732761, 2.732761, 2.732761;;, + 26;3; 2.732761, 2.732761, 2.732761;;, + 27;3; 2.732761, 2.732761, 2.732761;;, + 28;3; 2.732761, 2.732761, 2.732761;;, + 29;3; 2.732761, 2.732761, 2.732761;;, + 30;3; 2.732761, 2.732761, 2.732761;;, + 31;3; 2.732761, 2.732761, 2.732761;;, + 32;3; 2.732761, 2.732761, 2.732761;;, + 33;3; 2.732761, 2.732761, 2.732761;;, + 34;3; 2.732761, 2.732761, 2.732761;;, + 35;3; 2.732761, 2.732761, 2.732761;;, + 36;3; 2.732761, 2.732761, 2.732761;;, + 37;3; 2.732761, 2.732761, 2.732761;;, + 38;3; 2.732761, 2.732761, 2.732761;;, + 39;3; 2.732761, 2.732761, 2.732761;;, + 40;3; 2.732761, 2.732761, 2.732761;;, + 41;3; 2.732761, 2.732761, 2.732761;;, + 42;3; 2.732761, 2.732761, 2.732761;;, + 43;3; 2.732761, 2.732761, 2.732761;;, + 44;3; 2.732761, 2.732761, 2.732761;;, + 45;3; 2.732761, 2.732761, 2.732761;;, + 46;3; 2.732761, 2.732761, 2.732761;;, + 47;3; 2.732761, 2.732761, 2.732761;;, + 48;3; 2.732761, 2.732761, 2.732761;;, + 49;3; 2.732761, 2.732761, 2.732761;;, + 50;3; 2.732761, 2.732761, 2.732761;;, + 51;3; 2.732761, 2.732761, 2.732761;;, + 52;3; 2.732761, 2.732761, 2.732761;;, + 53;3; 2.732761, 2.732761, 2.732761;;, + 54;3; 2.732761, 2.732761, 2.732761;;, + 55;3; 2.732761, 2.732761, 2.732761;;, + 56;3; 2.732761, 2.732761, 2.732761;;, + 57;3; 2.732761, 2.732761, 2.732761;;, + 58;3; 2.732761, 2.732761, 2.732761;;, + 59;3; 2.732761, 2.732761, 2.732761;;, + 60;3; 2.732761, 2.732761, 2.732761;;, + 61;3; 2.732761, 2.732761, 2.732761;;, + 62;3; 2.732761, 2.732761, 2.732761;;, + 63;3; 2.732761, 2.732761, 2.732761;;, + 64;3; 2.732761, 2.732761, 2.732761;;, + 65;3; 2.732761, 2.732761, 2.732761;;, + 66;3; 2.732761, 2.732761, 2.732761;;, + 67;3; 2.732761, 2.732761, 2.732761;;, + 68;3; 2.732761, 2.732761, 2.732761;;, + 69;3; 2.732761, 2.732761, 2.732761;;, + 70;3; 2.732761, 2.732761, 2.732761;;, + 71;3; 2.732761, 2.732761, 2.732761;;, + 72;3; 2.732761, 2.732761, 2.732761;;, + 73;3; 2.732761, 2.732761, 2.732761;;, + 74;3; 2.732761, 2.732761, 2.732761;;, + 75;3; 2.732761, 2.732761, 2.732761;;, + 76;3; 2.732761, 2.732761, 2.732761;;, + 77;3; 2.732761, 2.732761, 2.732761;;, + 78;3; 2.732761, 2.732761, 2.732761;;, + 79;3; 2.732761, 2.732761, 2.732761;;, + 80;3; 2.732761, 2.732761, 2.732761;;, + 81;3; 2.732761, 2.732761, 2.732761;;, + 82;3; 2.732761, 2.732761, 2.732761;;, + 83;3; 2.732761, 2.732761, 2.732761;;, + 84;3; 2.732761, 2.732761, 2.732761;;, + 85;3; 2.732761, 2.732761, 2.732761;;, + 86;3; 2.732761, 2.732761, 2.732761;;, + 87;3; 2.732761, 2.732761, 2.732761;;, + 88;3; 2.732761, 2.732761, 2.732761;;, + 89;3; 2.732761, 2.732761, 2.732761;;, + 90;3; 2.732761, 2.732761, 2.732761;;, + 91;3; 2.732761, 2.732761, 2.732761;;, + 92;3; 2.732761, 2.732761, 2.732761;;, + 93;3; 2.732761, 2.732761, 2.732761;;, + 94;3; 2.732761, 2.732761, 2.732761;;, + 95;3; 2.732761, 2.732761, 2.732761;;, + 96;3; 2.732761, 2.732761, 2.732761;;, + 97;3; 2.732761, 2.732761, 2.732761;;, + 98;3; 2.732761, 2.732761, 2.732761;;, + 99;3; 2.732761, 2.732761, 2.732761;;, + 100;3; 2.732761, 2.732761, 2.732761;;, + 101;3; 2.732761, 2.732761, 2.732761;;; + } + } + Animation { + {Armature_body2} + AnimationKey { //Position + 2; + 102; + 0;3; -0.155674, 0.000000, 0.000000;;, + 1;3; -0.155674, 0.000000, 0.000000;;, + 2;3; -0.155674, 0.000000, 0.000000;;, + 3;3; -0.155674, 0.000000, 0.000000;;, + 4;3; -0.155674, 0.000000, 0.000000;;, + 5;3; -0.155674, 0.000000, 0.000000;;, + 6;3; -0.155674, 0.000000, 0.000000;;, + 7;3; -0.155674, 0.000000, 0.000000;;, + 8;3; -0.155674, 0.000000, 0.000000;;, + 9;3; -0.155674, 0.000000, 0.000000;;, + 10;3; -0.155674, 0.000000, 0.000000;;, + 11;3; -0.155674, 0.000000, 0.000000;;, + 12;3; -0.155674, 0.000000, 0.000000;;, + 13;3; -0.155674, 0.000000, 0.000000;;, + 14;3; -0.155674, 0.000000, 0.000000;;, + 15;3; -0.155674, 0.000000, 0.000000;;, + 16;3; -0.155674, 0.000000, 0.000000;;, + 17;3; -0.155674, 0.000000, 0.000000;;, + 18;3; -0.155674, 0.000000, 0.000000;;, + 19;3; -0.155674, 0.000000, 0.000000;;, + 20;3; -0.155674, 0.000000, 0.000000;;, + 21;3; -0.155674, 0.000000, 0.000000;;, + 22;3; -0.155674, 0.000000, 0.000000;;, + 23;3; -0.155674, 0.000000, 0.000000;;, + 24;3; -0.155674, 0.000000, 0.000000;;, + 25;3; -0.155674, 0.000000, 0.000000;;, + 26;3; -0.155674, 0.000000, 0.000000;;, + 27;3; -0.155674, 0.000000, 0.000000;;, + 28;3; -0.155674, 0.000000, 0.000000;;, + 29;3; -0.155674, 0.000000, 0.000000;;, + 30;3; -0.155674, 0.000000, 0.000000;;, + 31;3; -0.155674, 0.000000, 0.000000;;, + 32;3; -0.155674, 0.000000, 0.000000;;, + 33;3; -0.155674, 0.000000, 0.000000;;, + 34;3; -0.155674, 0.000000, 0.000000;;, + 35;3; -0.155674, 0.000000, 0.000000;;, + 36;3; -0.155674, 0.000000, 0.000000;;, + 37;3; -0.155674, 0.000000, 0.000000;;, + 38;3; -0.155674, 0.000000, 0.000000;;, + 39;3; -0.155674, 0.000000, 0.000000;;, + 40;3; -0.155674, 0.000000, 0.000000;;, + 41;3; -0.155674, 0.000000, 0.000000;;, + 42;3; -0.155674, 0.000000, 0.000000;;, + 43;3; -0.155674, 0.000000, 0.000000;;, + 44;3; -0.155674, 0.000000, 0.000000;;, + 45;3; -0.155674, 0.000000, 0.000000;;, + 46;3; -0.155674, 0.000000, 0.000000;;, + 47;3; -0.155674, 0.000000, 0.000000;;, + 48;3; -0.155674, 0.000000, 0.000000;;, + 49;3; -0.155674, 0.000000, 0.000000;;, + 50;3; -0.155674, 0.000000, 0.000000;;, + 51;3; -0.155674, 0.000000, 0.000000;;, + 52;3; -0.155674, 0.000000, 0.000000;;, + 53;3; -0.155674, 0.000000, 0.000000;;, + 54;3; -0.155674, 0.000000, 0.000000;;, + 55;3; -0.155674, 0.000000, 0.000000;;, + 56;3; -0.155674, 0.000000, 0.000000;;, + 57;3; -0.155674, 0.000000, 0.000000;;, + 58;3; -0.155674, 0.000000, 0.000000;;, + 59;3; -0.155674, 0.000000, 0.000000;;, + 60;3; -0.155674, 0.000000, 0.000000;;, + 61;3; -0.155674, 0.000000, 0.000000;;, + 62;3; -0.155674, 0.000000, 0.000000;;, + 63;3; -0.155674, 0.000000, 0.000000;;, + 64;3; -0.155674, 0.000000, 0.000000;;, + 65;3; -0.155674, 0.000000, 0.000000;;, + 66;3; -0.155674, 0.000000, 0.000000;;, + 67;3; -0.155674, 0.000000, 0.000000;;, + 68;3; -0.155674, 0.000000, 0.000000;;, + 69;3; -0.155674, 0.000000, 0.000000;;, + 70;3; -0.155674, 0.000000, 0.000000;;, + 71;3; -0.155675, 0.000000, 0.013041;;, + 72;3; -0.155675, 0.000000, 0.049769;;, + 73;3; -0.155674, 0.000000, 0.096925;;, + 74;3; -0.155674,-0.000000, 0.133652;;, + 75;3; -0.155674,-0.000000, 0.146692;;, + 76;3; -0.155674,-0.000000, 0.145010;;, + 77;3; -0.155674,-0.000000, 0.139965;;, + 78;3; -0.155674,-0.000000, 0.131865;;, + 79;3; -0.155674,-0.000000, 0.121561;;, + 80;3; -0.155674,-0.000000, 0.110444;;, + 81;3; -0.155674,-0.000000, 0.100140;;, + 82;3; -0.155674,-0.000000, 0.092041;;, + 83;3; -0.155674,-0.000000, 0.086996;;, + 84;3; -0.155674,-0.000000, 0.085315;;, + 85;3; -0.155674,-0.000000, 0.093929;;, + 86;3; -0.155674,-0.000000, 0.118191;;, + 87;3; -0.155674,-0.000000, 0.149343;;, + 88;3; -0.155674,-0.000000, 0.173605;;, + 89;3; -0.155674,-0.000000, 0.182218;;, + 90;3; -0.155674,-0.000000, 0.176670;;, + 91;3; -0.155674,-0.000000, 0.159839;;, + 92;3; -0.155674, 0.000000, 0.133860;;, + 93;3; -0.155675, 0.000000, 0.104420;;, + 94;3; -0.155674, 0.000000, 0.078076;;, + 95;3; -0.155674,-0.000000, 0.058822;;, + 96;3; -0.155674, 0.000000, 0.043558;;, + 97;3; -0.155674, 0.000000, 0.028825;;, + 98;3; -0.155675, 0.000000, 0.016073;;, + 99;3; -0.155675, 0.000000, 0.006782;;, + 100;3; -0.155674, 0.000000, 0.001560;;, + 101;3; -0.155674, 0.000000, 0.000000;;; + } + AnimationKey { //Rotation + 0; + 102; + 0;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 1;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 2;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 3;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 4;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 5;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 6;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 7;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 8;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 9;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 10;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 11;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 12;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 13;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 14;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 15;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 16;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 17;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 18;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 19;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 20;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 21;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 22;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 23;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 24;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 25;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 26;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 27;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 28;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 29;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 30;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 31;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 32;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 33;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 34;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 35;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 36;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 37;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 38;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 39;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 40;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 41;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 42;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 43;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 44;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 45;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 46;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 47;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 48;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 49;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 50;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 51;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 52;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 53;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 54;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 55;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 56;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 57;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 58;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 59;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 60;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 61;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 62;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 63;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 64;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 65;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 66;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 67;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 68;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 69;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 70;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 71;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 72;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 73;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 74;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 75;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 76;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 77;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 78;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 79;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 80;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 81;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 82;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 83;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 84;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 85;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 86;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 87;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 88;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 89;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 90;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 91;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 92;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 93;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 94;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 95;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 96;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 97;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 98;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 99;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 100;4; -0.521442, 0.521442, 0.477597,-0.477597;;, + 101;4; -0.521442, 0.521442, 0.477597,-0.477597;;; + } + AnimationKey { //Scale + 1; + 102; + 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;;; + } + } + Animation { + {Armature_noga3} + AnimationKey { //Position + 2; + 102; + 0;3; 0.532289,-0.143643, 0.710859;;, + 1;3; 0.532289,-0.143643, 0.710859;;, + 2;3; 0.532289,-0.143643, 0.710859;;, + 3;3; 0.532289,-0.143643, 0.710859;;, + 4;3; 0.532289,-0.143643, 0.710859;;, + 5;3; 0.532289,-0.143643, 0.710859;;, + 6;3; 0.532289,-0.143643, 0.710859;;, + 7;3; 0.532289,-0.143643, 0.710859;;, + 8;3; 0.532289,-0.143643, 0.710859;;, + 9;3; 0.532289,-0.143643, 0.710859;;, + 10;3; 0.532289,-0.143643, 0.710859;;, + 11;3; 0.532289,-0.143643, 0.710859;;, + 12;3; 0.532289,-0.143643, 0.710859;;, + 13;3; 0.532289,-0.143643, 0.710859;;, + 14;3; 0.532289,-0.143643, 0.710859;;, + 15;3; 0.532289,-0.143643, 0.710859;;, + 16;3; 0.532289,-0.143643, 0.710859;;, + 17;3; 0.532289,-0.143643, 0.710859;;, + 18;3; 0.532289,-0.143643, 0.710859;;, + 19;3; 0.532289,-0.143643, 0.710859;;, + 20;3; 0.532289,-0.143643, 0.710859;;, + 21;3; 0.532289,-0.143643, 0.710859;;, + 22;3; 0.532289,-0.143643, 0.710859;;, + 23;3; 0.532289,-0.143643, 0.710859;;, + 24;3; 0.532289,-0.143643, 0.710859;;, + 25;3; 0.532289,-0.143643, 0.710859;;, + 26;3; 0.532289,-0.143643, 0.710859;;, + 27;3; 0.532289,-0.143643, 0.710859;;, + 28;3; 0.532289,-0.143643, 0.710859;;, + 29;3; 0.532289,-0.143643, 0.710859;;, + 30;3; 0.532289,-0.143643, 0.710859;;, + 31;3; 0.532289,-0.143643, 0.710859;;, + 32;3; 0.532289,-0.143643, 0.710859;;, + 33;3; 0.532289,-0.143643, 0.710859;;, + 34;3; 0.532289,-0.143643, 0.710859;;, + 35;3; 0.532289,-0.143643, 0.710859;;, + 36;3; 0.532289,-0.143643, 0.710859;;, + 37;3; 0.532289,-0.143643, 0.710859;;, + 38;3; 0.532289,-0.143643, 0.710859;;, + 39;3; 0.532289,-0.143643, 0.710859;;, + 40;3; 0.532289,-0.143643, 0.710859;;, + 41;3; 0.532289,-0.143643, 0.710859;;, + 42;3; 0.532289,-0.143643, 0.710859;;, + 43;3; 0.532289,-0.143643, 0.710859;;, + 44;3; 0.532289,-0.143643, 0.710859;;, + 45;3; 0.532289,-0.143643, 0.710859;;, + 46;3; 0.532289,-0.143643, 0.710859;;, + 47;3; 0.532289,-0.143643, 0.710859;;, + 48;3; 0.532289,-0.143643, 0.710859;;, + 49;3; 0.532289,-0.143643, 0.710859;;, + 50;3; 0.532289,-0.143643, 0.710859;;, + 51;3; 0.532289,-0.143643, 0.710859;;, + 52;3; 0.532289,-0.143643, 0.710859;;, + 53;3; 0.532289,-0.143643, 0.710859;;, + 54;3; 0.532289,-0.143643, 0.710859;;, + 55;3; 0.532289,-0.143643, 0.710859;;, + 56;3; 0.532289,-0.143643, 0.710859;;, + 57;3; 0.532289,-0.143643, 0.710859;;, + 58;3; 0.532289,-0.143643, 0.710859;;, + 59;3; 0.532289,-0.143643, 0.710859;;, + 60;3; 0.532289,-0.143643, 0.710859;;, + 61;3; 0.532289,-0.143643, 0.710859;;, + 62;3; 0.532289,-0.143643, 0.710859;;, + 63;3; 0.532289,-0.143643, 0.710859;;, + 64;3; 0.532289,-0.143643, 0.710859;;, + 65;3; 0.532289,-0.143643, 0.710859;;, + 66;3; 0.532289,-0.143643, 0.710859;;, + 67;3; 0.532289,-0.143643, 0.710859;;, + 68;3; 0.532289,-0.143643, 0.710859;;, + 69;3; 0.532289,-0.143643, 0.710859;;, + 70;3; 0.532289,-0.143643, 0.710859;;, + 71;3; 0.532289,-0.143643, 0.710859;;, + 72;3; 0.532289,-0.143644, 0.710859;;, + 73;3; 0.532289,-0.143644, 0.710859;;, + 74;3; 0.532289,-0.143643, 0.710859;;, + 75;3; 0.532289,-0.143643, 0.710859;;, + 76;3; 0.532289,-0.143644, 0.710859;;, + 77;3; 0.532289,-0.143643, 0.710859;;, + 78;3; 0.532289,-0.143643, 0.710859;;, + 79;3; 0.532289,-0.143644, 0.710859;;, + 80;3; 0.532289,-0.143643, 0.710859;;, + 81;3; 0.532289,-0.143643, 0.710859;;, + 82;3; 0.532289,-0.143644, 0.710859;;, + 83;3; 0.532289,-0.143643, 0.710859;;, + 84;3; 0.532289,-0.143643, 0.710859;;, + 85;3; 0.532289,-0.143643, 0.710859;;, + 86;3; 0.532289,-0.143643, 0.710859;;, + 87;3; 0.532289,-0.143644, 0.710859;;, + 88;3; 0.532289,-0.143643, 0.710859;;, + 89;3; 0.532289,-0.143643, 0.710859;;, + 90;3; 0.532289,-0.143644, 0.710859;;, + 91;3; 0.532289,-0.143643, 0.710859;;, + 92;3; 0.532289,-0.143643, 0.710859;;, + 93;3; 0.532289,-0.143643, 0.710859;;, + 94;3; 0.532289,-0.143644, 0.710859;;, + 95;3; 0.532289,-0.143643, 0.710859;;, + 96;3; 0.532289,-0.143644, 0.710859;;, + 97;3; 0.532289,-0.143643, 0.710859;;, + 98;3; 0.532289,-0.143643, 0.710859;;, + 99;3; 0.532289,-0.143644, 0.710859;;, + 100;3; 0.532289,-0.143643, 0.710859;;, + 101;3; 0.532289,-0.143643, 0.710859;;; + } + AnimationKey { //Rotation + 0; + 102; + 0;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 1;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 2;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 3;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 4;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 5;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 6;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 7;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 8;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 9;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 10;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 11;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 12;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 13;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 14;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 15;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 16;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 17;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 18;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 19;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 20;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 21;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 22;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 23;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 24;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 25;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 26;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 27;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 28;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 29;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 30;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 31;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 32;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 33;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 34;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 35;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 36;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 37;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 38;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 39;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 40;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 41;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 42;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 43;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 44;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 45;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 46;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 47;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 48;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 49;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 50;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 51;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 52;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 53;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 54;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 55;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 56;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 57;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 58;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 59;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 60;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 61;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 62;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 63;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 64;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 65;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 66;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 67;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 68;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 69;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 70;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 71;4; -0.076249,-0.699385,-0.696587,-0.079400;;, + 72;4; -0.082977,-0.616503,-0.755460,-0.070282;;, + 73;4; -0.091621,-0.510132,-0.830999,-0.058570;;, + 74;4; -0.098353,-0.427291,-0.889827,-0.049447;;, + 75;4; -0.100743,-0.397872,-0.910722,-0.046209;;, + 76;4; -0.100385,-0.400798,-0.907565,-0.046529;;, + 77;4; -0.099304,-0.409646,-0.898028,-0.047496;;, + 78;4; -0.097497,-0.424442,-0.882083,-0.049113;;, + 79;4; -0.094976,-0.445092,-0.859841,-0.051369;;, + 80;4; -0.091773,-0.471343,-0.831583,-0.054238;;, + 81;4; -0.087942,-0.502754,-0.797792,-0.057672;;, + 82;4; -0.083565,-0.538673,-0.759182,-0.061598;;, + 83;4; -0.078748,-0.578230,-0.716701,-0.065923;;, + 84;4; -0.073623,-0.620356,-0.671512,-0.070529;;, + 85;4; -0.068342,-0.663828,-0.624942,-0.075283;;, + 86;4; -0.063064,-0.707339,-0.578410,-0.080041;;, + 87;4; -0.057951,-0.749580,-0.533331,-0.084660;;, + 88;4; -0.053153,-0.789325,-0.491032,-0.089007;;, + 89;4; -0.048802,-0.825501,-0.452669,-0.092964;;, + 90;4; -0.045003,-0.857233,-0.419185,-0.096435;;, + 91;4; -0.041838,-0.883862,-0.391287,-0.099347;;, + 92;4; -0.039361,-0.904942,-0.369452,-0.101654;;, + 93;4; -0.037602,-0.920214,-0.353954,-0.103325;;, + 94;4; -0.036573,-0.929575,-0.344897,-0.104350;;, + 95;4; -0.036271,-0.933049,-0.342250,-0.104732;;, + 96;4; -0.038638,-0.920872,-0.363238,-0.103416;;, + 97;4; -0.045417,-0.884355,-0.423275,-0.099456;;, + 98;4; -0.055130,-0.831547,-0.509292,-0.093729;;, + 99;4; -0.064823,-0.778549,-0.595258,-0.087993;;, + 100;4; -0.071553,-0.741566,-0.655092,-0.084005;;, + 101;4; -0.073863,-0.728827,-0.675668,-0.082636;;; + } + AnimationKey { //Scale + 1; + 102; + 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;;; + } + } + Animation { + {Armature_noga4} + AnimationKey { //Position + 2; + 102; + 0;3; 0.532289,-0.143643,-0.879248;;, + 1;3; 0.532289,-0.143643,-0.879248;;, + 2;3; 0.532289,-0.143643,-0.879248;;, + 3;3; 0.532289,-0.143643,-0.879248;;, + 4;3; 0.532289,-0.143643,-0.879248;;, + 5;3; 0.532289,-0.143643,-0.879248;;, + 6;3; 0.532289,-0.143643,-0.879248;;, + 7;3; 0.532289,-0.143643,-0.879248;;, + 8;3; 0.532289,-0.143643,-0.879248;;, + 9;3; 0.532289,-0.143643,-0.879248;;, + 10;3; 0.532289,-0.143643,-0.879248;;, + 11;3; 0.532289,-0.143643,-0.879248;;, + 12;3; 0.532289,-0.143643,-0.879248;;, + 13;3; 0.532289,-0.143643,-0.879248;;, + 14;3; 0.532289,-0.143643,-0.879248;;, + 15;3; 0.532289,-0.143643,-0.879248;;, + 16;3; 0.532289,-0.143643,-0.879248;;, + 17;3; 0.532289,-0.143643,-0.879248;;, + 18;3; 0.532289,-0.143643,-0.879248;;, + 19;3; 0.532289,-0.143643,-0.879248;;, + 20;3; 0.532289,-0.143643,-0.879248;;, + 21;3; 0.532289,-0.143643,-0.879248;;, + 22;3; 0.532289,-0.143643,-0.879248;;, + 23;3; 0.532289,-0.143643,-0.879248;;, + 24;3; 0.532289,-0.143643,-0.879248;;, + 25;3; 0.532289,-0.143643,-0.879248;;, + 26;3; 0.532289,-0.143643,-0.879248;;, + 27;3; 0.532289,-0.143643,-0.879248;;, + 28;3; 0.532289,-0.143643,-0.879248;;, + 29;3; 0.532289,-0.143643,-0.879248;;, + 30;3; 0.532289,-0.143643,-0.879248;;, + 31;3; 0.532289,-0.143643,-0.879248;;, + 32;3; 0.532289,-0.143643,-0.879248;;, + 33;3; 0.532289,-0.143643,-0.879248;;, + 34;3; 0.532289,-0.143643,-0.879248;;, + 35;3; 0.532289,-0.143643,-0.879248;;, + 36;3; 0.532289,-0.143643,-0.879248;;, + 37;3; 0.532289,-0.143643,-0.879248;;, + 38;3; 0.532289,-0.143643,-0.879248;;, + 39;3; 0.532289,-0.143643,-0.879248;;, + 40;3; 0.532289,-0.143643,-0.879248;;, + 41;3; 0.532289,-0.143643,-0.879248;;, + 42;3; 0.532289,-0.143643,-0.879248;;, + 43;3; 0.532289,-0.143643,-0.879248;;, + 44;3; 0.532289,-0.143643,-0.879248;;, + 45;3; 0.532289,-0.143643,-0.879248;;, + 46;3; 0.532289,-0.143643,-0.879248;;, + 47;3; 0.532289,-0.143643,-0.879248;;, + 48;3; 0.532289,-0.143643,-0.879248;;, + 49;3; 0.532289,-0.143643,-0.879248;;, + 50;3; 0.532289,-0.143643,-0.879248;;, + 51;3; 0.532289,-0.143643,-0.879248;;, + 52;3; 0.532289,-0.143643,-0.879248;;, + 53;3; 0.532289,-0.143643,-0.879248;;, + 54;3; 0.532289,-0.143643,-0.879248;;, + 55;3; 0.532289,-0.143643,-0.879248;;, + 56;3; 0.532289,-0.143643,-0.879248;;, + 57;3; 0.532289,-0.143643,-0.879248;;, + 58;3; 0.532289,-0.143643,-0.879248;;, + 59;3; 0.532289,-0.143643,-0.879248;;, + 60;3; 0.532289,-0.143643,-0.879248;;, + 61;3; 0.532289,-0.143643,-0.879248;;, + 62;3; 0.532289,-0.143643,-0.879248;;, + 63;3; 0.532289,-0.143643,-0.879248;;, + 64;3; 0.532289,-0.143643,-0.879248;;, + 65;3; 0.532289,-0.143643,-0.879248;;, + 66;3; 0.532289,-0.143643,-0.879248;;, + 67;3; 0.532289,-0.143643,-0.879248;;, + 68;3; 0.532289,-0.143643,-0.879248;;, + 69;3; 0.532289,-0.143643,-0.879248;;, + 70;3; 0.532289,-0.143643,-0.879248;;, + 71;3; 0.532289,-0.143643,-0.879248;;, + 72;3; 0.532289,-0.143643,-0.879248;;, + 73;3; 0.532289,-0.143644,-0.879248;;, + 74;3; 0.532289,-0.143643,-0.879248;;, + 75;3; 0.532289,-0.143643,-0.879248;;, + 76;3; 0.532289,-0.143643,-0.879248;;, + 77;3; 0.532289,-0.143643,-0.879248;;, + 78;3; 0.532289,-0.143643,-0.879248;;, + 79;3; 0.532289,-0.143643,-0.879248;;, + 80;3; 0.532289,-0.143643,-0.879248;;, + 81;3; 0.532289,-0.143643,-0.879248;;, + 82;3; 0.532289,-0.143643,-0.879248;;, + 83;3; 0.532289,-0.143643,-0.879248;;, + 84;3; 0.532289,-0.143643,-0.879248;;, + 85;3; 0.532289,-0.143643,-0.879248;;, + 86;3; 0.532289,-0.143643,-0.879248;;, + 87;3; 0.532289,-0.143643,-0.879248;;, + 88;3; 0.532289,-0.143643,-0.879248;;, + 89;3; 0.532289,-0.143643,-0.879248;;, + 90;3; 0.532289,-0.143644,-0.879248;;, + 91;3; 0.532289,-0.143643,-0.879248;;, + 92;3; 0.532289,-0.143643,-0.879248;;, + 93;3; 0.532289,-0.143643,-0.879248;;, + 94;3; 0.532289,-0.143643,-0.879248;;, + 95;3; 0.532289,-0.143643,-0.879248;;, + 96;3; 0.532289,-0.143643,-0.879248;;, + 97;3; 0.532289,-0.143643,-0.879248;;, + 98;3; 0.532289,-0.143643,-0.879248;;, + 99;3; 0.532289,-0.143644,-0.879248;;, + 100;3; 0.532289,-0.143643,-0.879248;;, + 101;3; 0.532289,-0.143643,-0.879248;;; + } + AnimationKey { //Rotation + 0; + 102; + 0;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 1;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 2;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 3;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 4;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 5;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 6;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 7;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 8;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 9;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 10;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 11;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 12;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 13;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 14;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 15;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 16;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 17;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 18;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 19;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 20;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 21;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 22;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 23;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 24;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 25;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 26;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 27;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 28;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 29;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 30;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 31;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 32;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 33;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 34;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 35;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 36;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 37;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 38;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 39;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 40;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 41;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 42;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 43;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 44;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 45;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 46;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 47;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 48;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 49;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 50;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 51;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 52;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 53;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 54;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 55;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 56;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 57;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 58;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 59;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 60;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 61;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 62;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 63;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 64;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 65;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 66;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 67;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 68;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 69;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 70;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 71;4; -0.070609,-0.746717,-0.646769,-0.084568;;, + 72;4; -0.061439,-0.797068,-0.565414,-0.090014;;, + 73;4; -0.049661,-0.861678,-0.461000,-0.097011;;, + 74;4; -0.040487,-0.911996,-0.379680,-0.102461;;, + 75;4; -0.037231,-0.929868,-0.350802,-0.104395;;, + 76;4; -0.037545,-0.927307,-0.353566,-0.104115;;, + 77;4; -0.038492,-0.919575,-0.361929,-0.103270;;, + 78;4; -0.040078,-0.906660,-0.375924,-0.101859;;, + 79;4; -0.042293,-0.888662,-0.395471,-0.099893;;, + 80;4; -0.045112,-0.865822,-0.420343,-0.097397;;, + 81;4; -0.048488,-0.838547,-0.450135,-0.094417;;, + 82;4; -0.052354,-0.807433,-0.484245,-0.091017;;, + 83;4; -0.056618,-0.773265,-0.521865,-0.087284;;, + 84;4; -0.061167,-0.737002,-0.562000,-0.083322;;, + 85;4; -0.065871,-0.699737,-0.603507,-0.079250;;, + 86;4; -0.070592,-0.662633,-0.645161,-0.075196;;, + 87;4; -0.075189,-0.626848,-0.685733,-0.071288;;, + 88;4; -0.079532,-0.593461,-0.724070,-0.067642;;, + 89;4; -0.083506,-0.563413,-0.759158,-0.064362;;, + 90;4; -0.087017,-0.537466,-0.790169,-0.061531;;, + 91;4; -0.089994,-0.516186,-0.816476,-0.059211;;, + 92;4; -0.092388,-0.499954,-0.837651,-0.057444;;, + 93;4; -0.094171,-0.488984,-0.853441,-0.056253;;, + 94;4; -0.095331,-0.483348,-0.863743,-0.055645;;, + 95;4; -0.095870,-0.483014,-0.868570,-0.055618;;, + 96;4; -0.094687,-0.499943,-0.858279,-0.057485;;, + 97;4; -0.090792,-0.544737,-0.824204,-0.062416;;, + 98;4; -0.085063,-0.607865,-0.774043,-0.069360;;, + 99;4; -0.079285,-0.670505,-0.723365,-0.076242;;, + 100;4; -0.075251,-0.713930,-0.687899,-0.081005;;, + 101;4; -0.073863,-0.728827,-0.675668,-0.082636;;; + } + AnimationKey { //Scale + 1; + 102; + 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;;; + } + } + Animation { + {Armature_noga2} + AnimationKey { //Position + 2; + 102; + 0;3; 0.700789, 1.772341,-0.879248;;, + 1;3; 0.700789, 1.772341,-0.879248;;, + 2;3; 0.700789, 1.772341,-0.879248;;, + 3;3; 0.700789, 1.772341,-0.879248;;, + 4;3; 0.700789, 1.772341,-0.879248;;, + 5;3; 0.700789, 1.772341,-0.879248;;, + 6;3; 0.700789, 1.772341,-0.879248;;, + 7;3; 0.700789, 1.772341,-0.879248;;, + 8;3; 0.700789, 1.772341,-0.879248;;, + 9;3; 0.700789, 1.772341,-0.879248;;, + 10;3; 0.700789, 1.772341,-0.879248;;, + 11;3; 0.700789, 1.772341,-0.879248;;, + 12;3; 0.700789, 1.772341,-0.879248;;, + 13;3; 0.700789, 1.772341,-0.879248;;, + 14;3; 0.700789, 1.772341,-0.879248;;, + 15;3; 0.700789, 1.772341,-0.879248;;, + 16;3; 0.700789, 1.772341,-0.879248;;, + 17;3; 0.700789, 1.772341,-0.879248;;, + 18;3; 0.700789, 1.772341,-0.879248;;, + 19;3; 0.700789, 1.772341,-0.879248;;, + 20;3; 0.700789, 1.772341,-0.879248;;, + 21;3; 0.700789, 1.772341,-0.879248;;, + 22;3; 0.700789, 1.772341,-0.879248;;, + 23;3; 0.700789, 1.772341,-0.879248;;, + 24;3; 0.700789, 1.772341,-0.879248;;, + 25;3; 0.700789, 1.772341,-0.879248;;, + 26;3; 0.700789, 1.772341,-0.879248;;, + 27;3; 0.700789, 1.772341,-0.879248;;, + 28;3; 0.700789, 1.772341,-0.879248;;, + 29;3; 0.700789, 1.772341,-0.879248;;, + 30;3; 0.700789, 1.772341,-0.879248;;, + 31;3; 0.700789, 1.772341,-0.879248;;, + 32;3; 0.700789, 1.772341,-0.879248;;, + 33;3; 0.700789, 1.772341,-0.879248;;, + 34;3; 0.700789, 1.772341,-0.879248;;, + 35;3; 0.700789, 1.772341,-0.879248;;, + 36;3; 0.700789, 1.772341,-0.879248;;, + 37;3; 0.700789, 1.772341,-0.879248;;, + 38;3; 0.700789, 1.772341,-0.879248;;, + 39;3; 0.700789, 1.772341,-0.879248;;, + 40;3; 0.700789, 1.772341,-0.879248;;, + 41;3; 0.700789, 1.772341,-0.879248;;, + 42;3; 0.700789, 1.772341,-0.879248;;, + 43;3; 0.700789, 1.772341,-0.879248;;, + 44;3; 0.700789, 1.772341,-0.879248;;, + 45;3; 0.700789, 1.772341,-0.879248;;, + 46;3; 0.700789, 1.772341,-0.879248;;, + 47;3; 0.700789, 1.772341,-0.879248;;, + 48;3; 0.700789, 1.772341,-0.879248;;, + 49;3; 0.700789, 1.772341,-0.879248;;, + 50;3; 0.700789, 1.772341,-0.879248;;, + 51;3; 0.700789, 1.772341,-0.879248;;, + 52;3; 0.700789, 1.772341,-0.879248;;, + 53;3; 0.700789, 1.772341,-0.879248;;, + 54;3; 0.700789, 1.772341,-0.879248;;, + 55;3; 0.700789, 1.772341,-0.879248;;, + 56;3; 0.700789, 1.772341,-0.879248;;, + 57;3; 0.700789, 1.772341,-0.879248;;, + 58;3; 0.700789, 1.772341,-0.879248;;, + 59;3; 0.700789, 1.772341,-0.879248;;, + 60;3; 0.700789, 1.772341,-0.879248;;, + 61;3; 0.700789, 1.772341,-0.879248;;, + 62;3; 0.700789, 1.772341,-0.879248;;, + 63;3; 0.700789, 1.772341,-0.879248;;, + 64;3; 0.700789, 1.772341,-0.879248;;, + 65;3; 0.700789, 1.772341,-0.879248;;, + 66;3; 0.700789, 1.772341,-0.879248;;, + 67;3; 0.700789, 1.772341,-0.879248;;, + 68;3; 0.700789, 1.772341,-0.879248;;, + 69;3; 0.700789, 1.772341,-0.879248;;, + 70;3; 0.700789, 1.772341,-0.879248;;, + 71;3; 0.700789, 1.772341,-0.879248;;, + 72;3; 0.700789, 1.772341,-0.879248;;, + 73;3; 0.700789, 1.772341,-0.879248;;, + 74;3; 0.700789, 1.772341,-0.879248;;, + 75;3; 0.700789, 1.772341,-0.879248;;, + 76;3; 0.700789, 1.772341,-0.879248;;, + 77;3; 0.700789, 1.772341,-0.879248;;, + 78;3; 0.700789, 1.772341,-0.879248;;, + 79;3; 0.700789, 1.772341,-0.879248;;, + 80;3; 0.700789, 1.772341,-0.879248;;, + 81;3; 0.700789, 1.772341,-0.879248;;, + 82;3; 0.700789, 1.772341,-0.879248;;, + 83;3; 0.700789, 1.772341,-0.879248;;, + 84;3; 0.700789, 1.772341,-0.879248;;, + 85;3; 0.700789, 1.772341,-0.879248;;, + 86;3; 0.700789, 1.772341,-0.879248;;, + 87;3; 0.700789, 1.772341,-0.879248;;, + 88;3; 0.700789, 1.772341,-0.879248;;, + 89;3; 0.700789, 1.772341,-0.879248;;, + 90;3; 0.700789, 1.772341,-0.879248;;, + 91;3; 0.700789, 1.772341,-0.879248;;, + 92;3; 0.700789, 1.772341,-0.879248;;, + 93;3; 0.700789, 1.772341,-0.879248;;, + 94;3; 0.700789, 1.772341,-0.879248;;, + 95;3; 0.700789, 1.772341,-0.879248;;, + 96;3; 0.700789, 1.772341,-0.879248;;, + 97;3; 0.700789, 1.772341,-0.879248;;, + 98;3; 0.700789, 1.772341,-0.879248;;, + 99;3; 0.700789, 1.772341,-0.879248;;, + 100;3; 0.700789, 1.772341,-0.879248;;, + 101;3; 0.700789, 1.772341,-0.879248;;; + } + AnimationKey { //Rotation + 0; + 102; + 0;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 1;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 2;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 3;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 4;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 5;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 6;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 7;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 8;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 9;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 10;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 11;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 12;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 13;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 14;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 15;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 16;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 17;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 18;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 19;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 20;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 21;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 22;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 23;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 24;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 25;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 26;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 27;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 28;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 29;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 30;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 31;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 32;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 33;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 34;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 35;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 36;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 37;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 38;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 39;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 40;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 41;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 42;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 43;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 44;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 45;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 46;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 47;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 48;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 49;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 50;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 51;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 52;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 53;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 54;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 55;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 56;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 57;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 58;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 59;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 60;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 61;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 62;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 63;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 64;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 65;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 66;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 67;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 68;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 69;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 70;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 71;4; -0.076219,-0.699980,-0.696324,-0.079466;;, + 72;4; -0.082861,-0.618772,-0.754457,-0.070533;;, + 73;4; -0.091395,-0.514549,-0.829049,-0.059058;;, + 74;4; -0.098042,-0.433380,-0.887140,-0.050121;;, + 75;4; -0.100400,-0.404555,-0.907772,-0.046949;;, + 76;4; -0.100049,-0.407434,-0.904668,-0.047263;;, + 77;4; -0.098985,-0.416138,-0.895284,-0.048214;;, + 78;4; -0.097207,-0.430694,-0.879598,-0.049805;;, + 79;4; -0.094727,-0.451008,-0.857716,-0.052025;;, + 80;4; -0.091576,-0.476832,-0.829914,-0.054847;;, + 81;4; -0.087807,-0.507731,-0.796668,-0.058225;;, + 82;4; -0.083500,-0.543064,-0.758681,-0.062087;;, + 83;4; -0.078760,-0.581975,-0.716884,-0.066341;;, + 84;4; -0.073718,-0.623411,-0.672420,-0.070872;;, + 85;4; -0.068521,-0.666170,-0.626597,-0.075547;;, + 86;4; -0.063328,-0.708965,-0.580808,-0.080227;;, + 87;4; -0.058297,-0.750508,-0.536447,-0.084770;;, + 88;4; -0.053575,-0.789592,-0.494819,-0.089045;;, + 89;4; -0.049292,-0.825163,-0.457061,-0.092935;;, + 90;4; -0.045553,-0.856360,-0.424100,-0.096347;;, + 91;4; -0.042437,-0.882536,-0.396632,-0.099210;;, + 92;4; -0.039998,-0.903249,-0.375128,-0.101476;;, + 93;4; -0.038265,-0.918245,-0.359856,-0.103117;;, + 94;4; -0.037250,-0.927426,-0.350918,-0.104123;;, + 95;4; -0.036949,-0.930813,-0.348286,-0.104495;;, + 96;4; -0.039271,-0.918742,-0.368873,-0.103189;;, + 97;4; -0.045926,-0.882614,-0.427816,-0.099272;;, + 98;4; -0.055464,-0.830387,-0.512283,-0.093607;;, + 99;4; -0.064984,-0.777983,-0.596703,-0.087934;;, + 100;4; -0.071595,-0.741420,-0.655462,-0.083990;;, + 101;4; -0.073863,-0.728827,-0.675668,-0.082636;;; + } + AnimationKey { //Scale + 1; + 102; + 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;;; + } + } + Animation { + {Armature_noga1} + AnimationKey { //Position + 2; + 102; + 0;3; 0.700789, 1.772341, 0.698612;;, + 1;3; 0.700789, 1.772341, 0.698612;;, + 2;3; 0.700789, 1.772341, 0.698612;;, + 3;3; 0.700789, 1.772341, 0.698612;;, + 4;3; 0.700789, 1.772341, 0.698612;;, + 5;3; 0.700789, 1.772341, 0.698612;;, + 6;3; 0.700789, 1.772341, 0.698612;;, + 7;3; 0.700789, 1.772341, 0.698612;;, + 8;3; 0.700789, 1.772341, 0.698612;;, + 9;3; 0.700789, 1.772341, 0.698612;;, + 10;3; 0.700789, 1.772341, 0.698612;;, + 11;3; 0.700789, 1.772341, 0.698612;;, + 12;3; 0.700789, 1.772341, 0.698612;;, + 13;3; 0.700789, 1.772341, 0.698612;;, + 14;3; 0.700789, 1.772341, 0.698612;;, + 15;3; 0.700789, 1.772341, 0.698612;;, + 16;3; 0.700789, 1.772341, 0.698612;;, + 17;3; 0.700789, 1.772341, 0.698612;;, + 18;3; 0.700789, 1.772341, 0.698612;;, + 19;3; 0.700789, 1.772341, 0.698612;;, + 20;3; 0.700789, 1.772341, 0.698612;;, + 21;3; 0.700789, 1.772341, 0.698612;;, + 22;3; 0.700789, 1.772341, 0.698612;;, + 23;3; 0.700789, 1.772341, 0.698612;;, + 24;3; 0.700789, 1.772341, 0.698612;;, + 25;3; 0.700789, 1.772341, 0.698612;;, + 26;3; 0.700789, 1.772341, 0.698612;;, + 27;3; 0.700789, 1.772341, 0.698612;;, + 28;3; 0.700789, 1.772341, 0.698612;;, + 29;3; 0.700789, 1.772341, 0.698612;;, + 30;3; 0.700789, 1.772341, 0.698612;;, + 31;3; 0.700789, 1.772341, 0.698612;;, + 32;3; 0.700789, 1.772341, 0.698612;;, + 33;3; 0.700789, 1.772341, 0.698612;;, + 34;3; 0.700789, 1.772341, 0.698612;;, + 35;3; 0.700789, 1.772341, 0.698612;;, + 36;3; 0.700789, 1.772341, 0.698612;;, + 37;3; 0.700789, 1.772341, 0.698612;;, + 38;3; 0.700789, 1.772341, 0.698612;;, + 39;3; 0.700789, 1.772341, 0.698612;;, + 40;3; 0.700789, 1.772341, 0.698612;;, + 41;3; 0.700789, 1.772341, 0.698612;;, + 42;3; 0.700789, 1.772341, 0.698612;;, + 43;3; 0.700789, 1.772341, 0.698612;;, + 44;3; 0.700789, 1.772341, 0.698612;;, + 45;3; 0.700789, 1.772341, 0.698612;;, + 46;3; 0.700789, 1.772341, 0.698612;;, + 47;3; 0.700789, 1.772341, 0.698612;;, + 48;3; 0.700789, 1.772341, 0.698612;;, + 49;3; 0.700789, 1.772341, 0.698612;;, + 50;3; 0.700789, 1.772341, 0.698612;;, + 51;3; 0.700789, 1.772341, 0.698612;;, + 52;3; 0.700789, 1.772341, 0.698612;;, + 53;3; 0.700789, 1.772341, 0.698612;;, + 54;3; 0.700789, 1.772341, 0.698612;;, + 55;3; 0.700789, 1.772341, 0.698612;;, + 56;3; 0.700789, 1.772341, 0.698612;;, + 57;3; 0.700789, 1.772341, 0.698612;;, + 58;3; 0.700789, 1.772341, 0.698612;;, + 59;3; 0.700789, 1.772341, 0.698612;;, + 60;3; 0.700789, 1.772341, 0.698612;;, + 61;3; 0.700789, 1.772341, 0.698612;;, + 62;3; 0.700789, 1.772341, 0.698612;;, + 63;3; 0.700789, 1.772341, 0.698612;;, + 64;3; 0.700789, 1.772341, 0.698612;;, + 65;3; 0.700789, 1.772341, 0.698612;;, + 66;3; 0.700789, 1.772341, 0.698612;;, + 67;3; 0.700789, 1.772341, 0.698612;;, + 68;3; 0.700789, 1.772341, 0.698612;;, + 69;3; 0.700789, 1.772341, 0.698612;;, + 70;3; 0.700789, 1.772341, 0.698612;;, + 71;3; 0.700789, 1.772341, 0.698612;;, + 72;3; 0.700789, 1.772341, 0.698612;;, + 73;3; 0.700789, 1.772341, 0.698612;;, + 74;3; 0.700789, 1.772341, 0.698612;;, + 75;3; 0.700789, 1.772341, 0.698612;;, + 76;3; 0.700789, 1.772341, 0.698612;;, + 77;3; 0.700789, 1.772341, 0.698612;;, + 78;3; 0.700789, 1.772341, 0.698612;;, + 79;3; 0.700789, 1.772341, 0.698612;;, + 80;3; 0.700789, 1.772341, 0.698612;;, + 81;3; 0.700789, 1.772341, 0.698612;;, + 82;3; 0.700789, 1.772341, 0.698612;;, + 83;3; 0.700789, 1.772341, 0.698612;;, + 84;3; 0.700789, 1.772341, 0.698612;;, + 85;3; 0.700789, 1.772341, 0.698612;;, + 86;3; 0.700789, 1.772341, 0.698612;;, + 87;3; 0.700789, 1.772341, 0.698612;;, + 88;3; 0.700789, 1.772341, 0.698612;;, + 89;3; 0.700789, 1.772341, 0.698612;;, + 90;3; 0.700789, 1.772341, 0.698612;;, + 91;3; 0.700789, 1.772341, 0.698612;;, + 92;3; 0.700789, 1.772341, 0.698612;;, + 93;3; 0.700789, 1.772341, 0.698612;;, + 94;3; 0.700789, 1.772341, 0.698612;;, + 95;3; 0.700789, 1.772341, 0.698612;;, + 96;3; 0.700789, 1.772341, 0.698612;;, + 97;3; 0.700789, 1.772341, 0.698612;;, + 98;3; 0.700789, 1.772341, 0.698612;;, + 99;3; 0.700789, 1.772341, 0.698612;;, + 100;3; 0.700789, 1.772341, 0.698612;;, + 101;3; 0.700789, 1.772341, 0.698612;;; + } + AnimationKey { //Rotation + 0; + 102; + 0;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 1;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 2;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 3;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 4;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 5;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 6;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 7;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 8;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 9;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 10;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 11;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 12;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 13;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 14;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 15;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 16;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 17;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 18;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 19;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 20;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 21;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 22;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 23;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 24;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 25;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 26;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 27;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 28;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 29;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 30;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 31;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 32;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 33;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 34;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 35;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 36;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 37;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 38;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 39;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 40;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 41;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 42;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 43;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 44;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 45;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 46;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 47;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 48;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 49;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 50;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 51;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 52;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 53;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 54;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 55;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 56;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 57;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 58;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 59;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 60;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 61;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 62;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 63;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 64;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 65;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 66;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 67;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 68;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 69;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 70;4; -0.073863,-0.728827,-0.675668,-0.082636;;, + 71;4; -0.071225,-0.744892,-0.652281,-0.084377;;, + 72;4; -0.063779,-0.789971,-0.586299,-0.089268;;, + 73;4; -0.054176,-0.847438,-0.501243,-0.095506;;, + 74;4; -0.046619,-0.891430,-0.434297,-0.100278;;, + 75;4; -0.043797,-0.905669,-0.409243,-0.101815;;, + 76;4; -0.043909,-0.901068,-0.410168,-0.101304;;, + 77;4; -0.044672,-0.891343,-0.416839,-0.100233;;, + 78;4; -0.046091,-0.876482,-0.429292,-0.098602;;, + 79;4; -0.048155,-0.856583,-0.447443,-0.096420;;, + 80;4; -0.050837,-0.831881,-0.471056,-0.093713;;, + 81;4; -0.054092,-0.802780,-0.499714,-0.090527;;, + 82;4; -0.057847,-0.769867,-0.532797,-0.086924;;, + 83;4; -0.062010,-0.733918,-0.569474,-0.082989;;, + 84;4; -0.066464,-0.695882,-0.608720,-0.078827;;, + 85;4; -0.071075,-0.656840,-0.649360,-0.074556;;, + 86;4; -0.075701,-0.617942,-0.690133,-0.070301;;, + 87;4; -0.080198,-0.580335,-0.729777,-0.066187;;, + 88;4; -0.084432,-0.545089,-0.767105,-0.062333;;, + 89;4; -0.088285,-0.513136,-0.801078,-0.058838;;, + 90;4; -0.091660,-0.485229,-0.830844,-0.055787;;, + 91;4; -0.094485,-0.461934,-0.855760,-0.053240;;, + 92;4; -0.096711,-0.443627,-0.875386,-0.051239;;, + 93;4; -0.098307,-0.430521,-0.889466,-0.049806;;, + 94;4; -0.099262,-0.422690,-0.897893,-0.048951;;, + 95;4; -0.099578,-0.420101,-0.900683,-0.048668;;, + 96;4; -0.097989,-0.439166,-0.886790,-0.050766;;, + 97;4; -0.093361,-0.494628,-0.846380,-0.056877;;, + 98;4; -0.086709,-0.574357,-0.788290,-0.065662;;, + 99;4; -0.080062,-0.654143,-0.730138,-0.074441;;, + 100;4; -0.075446,-0.709712,-0.689615,-0.080542;;, + 101;4; -0.073863,-0.728827,-0.675668,-0.082636;;; + } + AnimationKey { //Scale + 1; + 102; + 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;;; + } + } + Animation { + {Armature_head} + AnimationKey { //Position + 2; + 102; + 0;3; -0.000000, 1.674146, 0.000000;;, + 1;3; -0.000000, 1.674146, 0.000000;;, + 2;3; -0.000000, 1.674146, 0.000000;;, + 3;3; -0.000000, 1.674146, 0.000000;;, + 4;3; -0.000000, 1.674146, 0.000000;;, + 5;3; -0.000000, 1.674146, 0.000000;;, + 6;3; -0.000000, 1.674146, 0.000000;;, + 7;3; -0.000000, 1.674146, 0.000000;;, + 8;3; -0.000000, 1.674146, 0.000000;;, + 9;3; -0.000000, 1.674146, 0.000000;;, + 10;3; -0.000000, 1.674146, 0.000000;;, + 11;3; -0.000000, 1.674146, 0.000000;;, + 12;3; -0.000000, 1.674146, 0.000000;;, + 13;3; -0.000000, 1.674146, 0.000000;;, + 14;3; -0.000000, 1.674146, 0.000000;;, + 15;3; -0.000000, 1.674146, 0.000000;;, + 16;3; -0.000000, 1.674146, 0.000000;;, + 17;3; -0.000000, 1.674146, 0.000000;;, + 18;3; -0.000000, 1.674146, 0.000000;;, + 19;3; -0.000000, 1.674146, 0.000000;;, + 20;3; -0.000000, 1.674146, 0.000000;;, + 21;3; -0.000000, 1.674146, 0.000000;;, + 22;3; -0.000000, 1.674146, 0.000000;;, + 23;3; -0.000000, 1.674146, 0.000000;;, + 24;3; -0.000000, 1.674146, 0.000000;;, + 25;3; -0.000000, 1.674146, 0.000000;;, + 26;3; -0.000000, 1.674146, 0.000000;;, + 27;3; -0.000000, 1.674146, 0.000000;;, + 28;3; -0.000000, 1.674146, 0.000000;;, + 29;3; -0.000000, 1.674146, 0.000000;;, + 30;3; -0.000000, 1.674146, 0.000000;;, + 31;3; -0.000000, 1.674146, 0.000000;;, + 32;3; -0.000000, 1.674146, 0.000000;;, + 33;3; -0.000000, 1.674146, 0.000000;;, + 34;3; -0.000000, 1.674146, 0.000000;;, + 35;3; -0.000000, 1.674146, 0.000000;;, + 36;3; -0.000000, 1.674146, 0.000000;;, + 37;3; -0.000000, 1.674146, 0.000000;;, + 38;3; -0.000000, 1.674146, 0.000000;;, + 39;3; -0.000000, 1.674146, 0.000000;;, + 40;3; -0.000000, 1.674146, 0.000000;;, + 41;3; -0.000000, 1.674146, 0.000000;;, + 42;3; -0.000000, 1.674146, 0.000000;;, + 43;3; -0.000000, 1.674146, 0.000000;;, + 44;3; -0.000000, 1.674146, 0.000000;;, + 45;3; -0.000000, 1.674146, 0.000000;;, + 46;3; -0.000000, 1.674146, 0.000000;;, + 47;3; -0.000000, 1.674146, 0.000000;;, + 48;3; -0.000000, 1.674146, 0.000000;;, + 49;3; -0.000000, 1.674146, 0.000000;;, + 50;3; -0.000000, 1.674146, 0.000000;;, + 51;3; -0.000000, 1.674146, 0.000000;;, + 52;3; -0.000000, 1.674146, 0.000000;;, + 53;3; -0.000000, 1.674146, 0.000000;;, + 54;3; -0.000000, 1.674146, 0.000000;;, + 55;3; -0.000000, 1.674146, 0.000000;;, + 56;3; -0.000000, 1.674146, 0.000000;;, + 57;3; -0.000000, 1.674146, 0.000000;;, + 58;3; -0.000000, 1.674146, 0.000000;;, + 59;3; -0.000000, 1.674146, 0.000000;;, + 60;3; -0.000000, 1.674146, 0.000000;;, + 61;3; -0.000000, 1.674146, 0.000000;;, + 62;3; -0.000000, 1.674146, 0.000000;;, + 63;3; -0.000000, 1.674146, 0.000000;;, + 64;3; -0.000000, 1.674146, 0.000000;;, + 65;3; -0.000000, 1.674146, 0.000000;;, + 66;3; -0.000000, 1.674146, 0.000000;;, + 67;3; -0.000000, 1.674146, 0.000000;;, + 68;3; -0.000000, 1.674146, 0.000000;;, + 69;3; -0.000000, 1.674146, 0.000000;;, + 70;3; -0.000000, 1.674146, 0.000000;;, + 71;3; -0.000000, 1.674146, 0.000000;;, + 72;3; 0.000000, 1.674146, 0.000000;;, + 73;3; -0.000000, 1.674146, 0.000000;;, + 74;3; -0.000000, 1.674146, 0.000000;;, + 75;3; -0.000000, 1.674146, 0.000000;;, + 76;3; -0.000000, 1.674146, 0.000000;;, + 77;3; -0.000000, 1.674146, 0.000000;;, + 78;3; -0.000000, 1.674146, 0.000000;;, + 79;3; -0.000000, 1.674146, 0.000000;;, + 80;3; -0.000000, 1.674146, 0.000000;;, + 81;3; -0.000000, 1.674146,-0.000000;;, + 82;3; -0.000000, 1.674146, 0.000000;;, + 83;3; -0.000000, 1.674146, 0.000000;;, + 84;3; -0.000000, 1.674146,-0.000000;;, + 85;3; 0.000000, 1.674146, 0.000000;;, + 86;3; -0.000000, 1.674146, 0.000000;;, + 87;3; -0.000000, 1.674146, 0.000000;;, + 88;3; 0.000000, 1.674146, 0.000000;;, + 89;3; -0.000000, 1.674146, 0.000000;;, + 90;3; -0.000000, 1.674146, 0.000000;;, + 91;3; -0.000000, 1.674146, 0.000000;;, + 92;3; -0.000000, 1.674146, 0.000000;;, + 93;3; 0.000000, 1.674146,-0.000000;;, + 94;3; -0.000000, 1.674146,-0.000000;;, + 95;3; -0.000000, 1.674146, 0.000000;;, + 96;3; -0.000000, 1.674146, 0.000000;;, + 97;3; -0.000000, 1.674146, 0.000000;;, + 98;3; -0.000000, 1.674146, 0.000000;;, + 99;3; -0.000000, 1.674146,-0.000000;;, + 100;3; -0.000000, 1.674146, 0.000000;;, + 101;3; -0.000000, 1.674146, 0.000000;;; + } + AnimationKey { //Rotation + 0; + 102; + 0;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 1;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 2;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 3;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 4;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 5;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 6;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 7;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 8;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 9;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 10;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 11;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 12;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 13;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 14;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 15;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 16;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 17;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 18;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 19;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 20;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 21;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 22;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 23;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 24;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 25;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 26;4; -0.706775, 0.008456,-0.706775, 0.008456;;, + 27;4; -0.706077, 0.032526,-0.706077, 0.032526;;, + 28;4; -0.705751, 0.043775,-0.705751, 0.043775;;, + 29;4; -0.706039, 0.035432,-0.706039, 0.035432;;, + 30;4; -0.706656, 0.017578,-0.706656, 0.017578;;, + 31;4; -0.706945, 0.009235,-0.706945, 0.009235;;, + 32;4; -0.706844, 0.012135,-0.706844, 0.012135;;, + 33;4; -0.706558, 0.020306,-0.706558, 0.020306;;, + 34;4; -0.706192, 0.030797,-0.706192, 0.030797;;, + 35;4; -0.705906, 0.038967,-0.705906, 0.038967;;, + 36;4; -0.705805, 0.041868,-0.705805, 0.041868;;, + 37;4; -0.705991, 0.038144,-0.705990, 0.038144;;, + 38;4; -0.706447, 0.027738,-0.706447, 0.027738;;, + 39;4; -0.706824, 0.015541,-0.706824, 0.015541;;, + 40;4; -0.706811, 0.007295,-0.706811, 0.007295;;, + 41;4; -0.701904, 0.025942,-0.705927,-0.020202;;, + 42;4; -0.689478, 0.083985,-0.704022,-0.082801;;, + 43;4; -0.677123, 0.143604,-0.702186,-0.143793;;, + 44;4; -0.672393, 0.166254,-0.701478,-0.167257;;, + 45;4; -0.674517, 0.155352,-0.701805,-0.157557;;, + 46;4; -0.680750, 0.124798,-0.702809,-0.128156;;, + 47;4; -0.689724, 0.081209,-0.704267,-0.085558;;, + 48;4; -0.698704, 0.037754,-0.705730,-0.042821;;, + 49;4; -0.704954, 0.007570,-0.706750,-0.013038;;, + 50;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 51;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 52;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 53;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 54;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 55;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 56;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 57;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 58;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 59;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 60;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 61;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 62;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 63;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 64;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 65;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 66;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 67;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 68;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 69;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 70;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 71;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 72;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 73;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 74;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 75;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 76;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 77;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 78;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 79;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 80;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 81;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 82;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 83;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 84;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 85;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 86;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 87;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 88;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 89;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 90;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 91;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 92;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 93;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 94;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 95;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 96;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 97;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 98;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 99;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 100;4; -0.707101,-0.002794,-0.707101,-0.002794;;, + 101;4; -0.707101,-0.002794,-0.707101,-0.002794;;; + } + AnimationKey { //Scale + 1; + 102; + 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;;; + } + } + Animation { + {Armature_hvost} + AnimationKey { //Position + 2; + 102; + 0;3; -0.371885,-0.304373,-0.053265;;, + 1;3; -0.371885,-0.304373,-0.053265;;, + 2;3; -0.371885,-0.304373,-0.053265;;, + 3;3; -0.371885,-0.304373,-0.053265;;, + 4;3; -0.371885,-0.304373,-0.053265;;, + 5;3; -0.371885,-0.304373,-0.053265;;, + 6;3; -0.371885,-0.304373,-0.053265;;, + 7;3; -0.371885,-0.304373,-0.053265;;, + 8;3; -0.371885,-0.304373,-0.053265;;, + 9;3; -0.371885,-0.304373,-0.053265;;, + 10;3; -0.371885,-0.304373,-0.053265;;, + 11;3; -0.371885,-0.304373,-0.053265;;, + 12;3; -0.371885,-0.304373,-0.053265;;, + 13;3; -0.371885,-0.304373,-0.053265;;, + 14;3; -0.371885,-0.304373,-0.053265;;, + 15;3; -0.371885,-0.304373,-0.053265;;, + 16;3; -0.371885,-0.304373,-0.053265;;, + 17;3; -0.371885,-0.304373,-0.053265;;, + 18;3; -0.371885,-0.304373,-0.053265;;, + 19;3; -0.371885,-0.304373,-0.053265;;, + 20;3; -0.371885,-0.304373,-0.053265;;, + 21;3; -0.371885,-0.304373,-0.053265;;, + 22;3; -0.371885,-0.304373,-0.053265;;, + 23;3; -0.371885,-0.304373,-0.053265;;, + 24;3; -0.371885,-0.304373,-0.053265;;, + 25;3; -0.371885,-0.304373,-0.053265;;, + 26;3; -0.371885,-0.304373,-0.053265;;, + 27;3; -0.371885,-0.304373,-0.053265;;, + 28;3; -0.371885,-0.304373,-0.053265;;, + 29;3; -0.371885,-0.304373,-0.053265;;, + 30;3; -0.371885,-0.304373,-0.053265;;, + 31;3; -0.371885,-0.304373,-0.053265;;, + 32;3; -0.371885,-0.304373,-0.053265;;, + 33;3; -0.371885,-0.304373,-0.053265;;, + 34;3; -0.371885,-0.304373,-0.053265;;, + 35;3; -0.371885,-0.304373,-0.053265;;, + 36;3; -0.371885,-0.304373,-0.053265;;, + 37;3; -0.371885,-0.304373,-0.053265;;, + 38;3; -0.371885,-0.304373,-0.053265;;, + 39;3; -0.371885,-0.304373,-0.053265;;, + 40;3; -0.371885,-0.304373,-0.053265;;, + 41;3; -0.371885,-0.304373,-0.053265;;, + 42;3; -0.371885,-0.304373,-0.053265;;, + 43;3; -0.371885,-0.304373,-0.053265;;, + 44;3; -0.371885,-0.304373,-0.053265;;, + 45;3; -0.371885,-0.304373,-0.053265;;, + 46;3; -0.371885,-0.304373,-0.053265;;, + 47;3; -0.371885,-0.304373,-0.053265;;, + 48;3; -0.371885,-0.304373,-0.053265;;, + 49;3; -0.371885,-0.304373,-0.053265;;, + 50;3; -0.371885,-0.304373,-0.053265;;, + 51;3; -0.371885,-0.304373,-0.053265;;, + 52;3; -0.371885,-0.304373,-0.053265;;, + 53;3; -0.371885,-0.304373,-0.053265;;, + 54;3; -0.371885,-0.304373,-0.053265;;, + 55;3; -0.371885,-0.304373,-0.053265;;, + 56;3; -0.371885,-0.304373,-0.053265;;, + 57;3; -0.371885,-0.304373,-0.053265;;, + 58;3; -0.371885,-0.304373,-0.053265;;, + 59;3; -0.371885,-0.304373,-0.053265;;, + 60;3; -0.371885,-0.304373,-0.053265;;, + 61;3; -0.371885,-0.304373,-0.053265;;, + 62;3; -0.371885,-0.304373,-0.053265;;, + 63;3; -0.371885,-0.304373,-0.053265;;, + 64;3; -0.371885,-0.304373,-0.053265;;, + 65;3; -0.371885,-0.304373,-0.053265;;, + 66;3; -0.371885,-0.304373,-0.053265;;, + 67;3; -0.371885,-0.304373,-0.053265;;, + 68;3; -0.371885,-0.304373,-0.053265;;, + 69;3; -0.371885,-0.304373,-0.053265;;, + 70;3; -0.371885,-0.304373,-0.053265;;, + 71;3; -0.371885,-0.304373,-0.053265;;, + 72;3; -0.371885,-0.304373,-0.053265;;, + 73;3; -0.371885,-0.304373,-0.053265;;, + 74;3; -0.371885,-0.304373,-0.053265;;, + 75;3; -0.371885,-0.304373,-0.053265;;, + 76;3; -0.371885,-0.304373,-0.053265;;, + 77;3; -0.371885,-0.304373,-0.053265;;, + 78;3; -0.371885,-0.304373,-0.053265;;, + 79;3; -0.371885,-0.304373,-0.053265;;, + 80;3; -0.371885,-0.304373,-0.053265;;, + 81;3; -0.371885,-0.304373,-0.053265;;, + 82;3; -0.371885,-0.304373,-0.053265;;, + 83;3; -0.371885,-0.304373,-0.053265;;, + 84;3; -0.371885,-0.304373,-0.053265;;, + 85;3; -0.371885,-0.304373,-0.053265;;, + 86;3; -0.371885,-0.304373,-0.053265;;, + 87;3; -0.371885,-0.304373,-0.053265;;, + 88;3; -0.371885,-0.304373,-0.053265;;, + 89;3; -0.371885,-0.304373,-0.053265;;, + 90;3; -0.371885,-0.304373,-0.053265;;, + 91;3; -0.371885,-0.304373,-0.053265;;, + 92;3; -0.371885,-0.304373,-0.053265;;, + 93;3; -0.371885,-0.304373,-0.053265;;, + 94;3; -0.371885,-0.304373,-0.053265;;, + 95;3; -0.371885,-0.304373,-0.053265;;, + 96;3; -0.371885,-0.304373,-0.053265;;, + 97;3; -0.371885,-0.304373,-0.053265;;, + 98;3; -0.371885,-0.304373,-0.053265;;, + 99;3; -0.371885,-0.304373,-0.053265;;, + 100;3; -0.371885,-0.304373,-0.053265;;, + 101;3; -0.371885,-0.304373,-0.053265;;; + } + AnimationKey { //Rotation + 0; + 102; + 0;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 1;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 2;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 3;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 4;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 5;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 6;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 7;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 8;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 9;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 10;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 11;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 12;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 13;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 14;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 15;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 16;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 17;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 18;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 19;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 20;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 21;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 22;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 23;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 24;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 25;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 26;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 27;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 28;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 29;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 30;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 31;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 32;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 33;4; -0.092171,-0.091801, 0.103340, 0.977726;;, + 34;4; -0.079170,-0.092602, 0.230341, 0.965454;;, + 35;4; -0.080174,-0.092981, 0.226130, 0.966924;;, + 36;4; -0.083078,-0.093954, 0.212380, 0.971164;;, + 37;4; -0.087206,-0.095018, 0.188694, 0.977155;;, + 38;4; -0.091248,-0.095436, 0.157386, 0.982942;;, + 39;4; -0.093909,-0.094633, 0.122667, 0.986621;;, + 40;4; -0.094558,-0.092458, 0.088213, 0.987284;;, + 41;4; -0.004325,-0.088704, 0.040224, 0.979222;;, + 42;4; 0.187822,-0.084584,-0.015920, 0.963174;;, + 43;4; 0.277597,-0.082988,-0.038278, 0.955781;;, + 44;4; 0.260219,-0.083351,-0.037618, 0.957332;;, + 45;4; 0.208831,-0.084427,-0.035667, 0.961922;;, + 46;4; 0.130568,-0.086067,-0.032694, 0.968918;;, + 47;4; 0.041820,-0.087927,-0.029322, 0.976856;;, + 48;4; -0.036429,-0.089568,-0.026350, 0.983854;;, + 49;4; -0.087801,-0.090644,-0.024399, 0.988445;;, + 50;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 51;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 52;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 53;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 54;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 55;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 56;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 57;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 58;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 59;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 60;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 61;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 62;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 63;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 64;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 65;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 66;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 67;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 68;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 69;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 70;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 71;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 72;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 73;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 74;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 75;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 76;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 77;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 78;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 79;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 80;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 81;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 82;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 83;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 84;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 85;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 86;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 87;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 88;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 89;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 90;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 91;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 92;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 93;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 94;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 95;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 96;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 97;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 98;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 99;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 100;4; -0.105172,-0.091008,-0.023740, 0.989996;;, + 101;4; -0.105172,-0.091008,-0.023740, 0.989996;;; + } + AnimationKey { //Scale + 1; + 102; + 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;;; + } + } + Animation { + {Cube} + AnimationKey { //Position + 2; + 102; + 0;3; -0.022274,-1.486684, 5.904222;;, + 1;3; -0.022274,-1.486684, 5.904222;;, + 2;3; -0.022274,-1.486684, 5.904222;;, + 3;3; -0.022274,-1.486684, 5.904222;;, + 4;3; -0.022274,-1.486684, 5.904222;;, + 5;3; -0.022274,-1.486684, 5.904222;;, + 6;3; -0.022274,-1.486684, 5.904222;;, + 7;3; -0.022274,-1.486684, 5.904222;;, + 8;3; -0.022274,-1.486684, 5.904222;;, + 9;3; -0.022274,-1.486684, 5.904222;;, + 10;3; -0.022274,-1.486684, 5.904222;;, + 11;3; -0.022274,-1.486684, 5.904222;;, + 12;3; -0.022274,-1.486684, 5.904222;;, + 13;3; -0.022274,-1.486684, 5.904222;;, + 14;3; -0.022274,-1.486684, 5.904222;;, + 15;3; -0.022274,-1.486684, 5.904222;;, + 16;3; -0.022274,-1.486684, 5.904222;;, + 17;3; -0.022274,-1.486684, 5.904222;;, + 18;3; -0.022274,-1.486684, 5.904222;;, + 19;3; -0.022274,-1.486684, 5.904222;;, + 20;3; -0.022274,-1.486684, 5.904222;;, + 21;3; -0.022274,-1.486684, 5.904222;;, + 22;3; -0.022274,-1.486684, 5.904222;;, + 23;3; -0.022274,-1.486684, 5.904222;;, + 24;3; -0.022274,-1.486684, 5.904222;;, + 25;3; -0.022274,-1.486684, 5.904222;;, + 26;3; -0.022274,-1.486684, 5.904222;;, + 27;3; -0.022274,-1.486684, 5.904222;;, + 28;3; -0.022274,-1.486684, 5.904222;;, + 29;3; -0.022274,-1.486684, 5.904222;;, + 30;3; -0.022274,-1.486684, 5.904222;;, + 31;3; -0.022274,-1.486684, 5.904222;;, + 32;3; -0.022274,-1.486684, 5.904222;;, + 33;3; -0.022274,-1.486684, 5.904222;;, + 34;3; -0.022274,-1.486684, 5.904222;;, + 35;3; -0.022274,-1.486684, 5.904222;;, + 36;3; -0.022274,-1.486684, 5.904222;;, + 37;3; -0.022274,-1.486684, 5.904222;;, + 38;3; -0.022274,-1.486684, 5.904222;;, + 39;3; -0.022274,-1.486684, 5.904222;;, + 40;3; -0.022274,-1.486684, 5.904222;;, + 41;3; -0.022274,-1.486684, 5.904222;;, + 42;3; -0.022274,-1.486684, 5.904222;;, + 43;3; -0.022274,-1.486684, 5.904222;;, + 44;3; -0.022274,-1.486684, 5.904222;;, + 45;3; -0.022274,-1.486684, 5.904222;;, + 46;3; -0.022274,-1.486684, 5.904222;;, + 47;3; -0.022274,-1.486684, 5.904222;;, + 48;3; -0.022274,-1.486684, 5.904222;;, + 49;3; -0.022274,-1.486684, 5.904222;;, + 50;3; -0.022274,-1.486684, 5.904222;;, + 51;3; -0.022274,-1.486684, 5.904222;;, + 52;3; -0.022274,-1.486684, 5.904222;;, + 53;3; -0.022274,-1.486684, 5.904222;;, + 54;3; -0.022274,-1.486684, 5.904222;;, + 55;3; -0.022274,-1.486684, 5.904222;;, + 56;3; -0.022274,-1.486684, 5.904222;;, + 57;3; -0.022274,-1.486684, 5.904222;;, + 58;3; -0.022274,-1.486684, 5.904222;;, + 59;3; -0.022274,-1.486684, 5.904222;;, + 60;3; -0.022274,-1.486684, 5.904222;;, + 61;3; -0.022274,-1.486684, 5.904222;;, + 62;3; -0.022274,-1.486684, 5.904222;;, + 63;3; -0.022274,-1.486684, 5.904222;;, + 64;3; -0.022274,-1.486684, 5.904222;;, + 65;3; -0.022274,-1.486684, 5.904222;;, + 66;3; -0.022274,-1.486684, 5.904222;;, + 67;3; -0.022274,-1.486684, 5.904222;;, + 68;3; -0.022274,-1.486684, 5.904222;;, + 69;3; -0.022274,-1.486684, 5.904222;;, + 70;3; -0.022274,-1.486684, 5.904222;;, + 71;3; -0.022274,-1.486684, 5.904222;;, + 72;3; -0.022274,-1.486684, 5.904222;;, + 73;3; -0.022274,-1.486684, 5.904222;;, + 74;3; -0.022274,-1.486684, 5.904222;;, + 75;3; -0.022274,-1.486684, 5.904222;;, + 76;3; -0.022274,-1.486684, 5.904222;;, + 77;3; -0.022274,-1.486684, 5.904222;;, + 78;3; -0.022274,-1.486684, 5.904222;;, + 79;3; -0.022274,-1.486684, 5.904222;;, + 80;3; -0.022274,-1.486684, 5.904222;;, + 81;3; -0.022274,-1.486684, 5.904222;;, + 82;3; -0.022274,-1.486684, 5.904222;;, + 83;3; -0.022274,-1.486684, 5.904222;;, + 84;3; -0.022274,-1.486684, 5.904222;;, + 85;3; -0.022274,-1.486684, 5.904222;;, + 86;3; -0.022274,-1.486684, 5.904222;;, + 87;3; -0.022274,-1.486684, 5.904222;;, + 88;3; -0.022274,-1.486684, 5.904222;;, + 89;3; -0.022274,-1.486684, 5.904222;;, + 90;3; -0.022274,-1.486684, 5.904222;;, + 91;3; -0.022274,-1.486684, 5.904222;;, + 92;3; -0.022274,-1.486684, 5.904222;;, + 93;3; -0.022274,-1.486684, 5.904222;;, + 94;3; -0.022274,-1.486684, 5.904222;;, + 95;3; -0.022274,-1.486684, 5.904222;;, + 96;3; -0.022274,-1.486684, 5.904222;;, + 97;3; -0.022274,-1.486684, 5.904222;;, + 98;3; -0.022274,-1.486684, 5.904222;;, + 99;3; -0.022274,-1.486684, 5.904222;;, + 100;3; -0.022274,-1.486684, 5.904222;;, + 101;3; -0.022274,-1.486684, 5.904222;;; + } + AnimationKey { //Rotation + 0; + 102; + 0;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 1;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 2;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 3;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 4;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 5;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 6;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 7;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 8;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 9;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 10;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 11;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 12;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 13;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 14;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 15;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 16;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 17;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 18;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 19;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 20;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 21;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 22;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 23;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 24;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 25;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 26;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 27;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 28;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 29;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 30;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 31;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 32;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 33;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 34;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 35;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 36;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 37;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 38;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 39;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 40;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 41;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 42;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 43;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 44;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 45;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 46;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 47;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 48;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 49;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 50;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 51;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 52;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 53;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 54;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 55;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 56;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 57;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 58;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 59;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 60;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 61;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 62;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 63;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 64;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 65;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 66;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 67;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 68;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 69;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 70;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 71;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 72;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 73;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 74;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 75;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 76;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 77;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 78;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 79;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 80;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 81;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 82;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 83;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 84;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 85;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 86;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 87;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 88;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 89;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 90;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 91;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 92;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 93;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 94;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 95;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 96;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 97;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 98;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 99;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 100;4; -0.707076, 0.000000, 0.000000, 0.707137;;, + 101;4; -0.707076, 0.000000, 0.000000, 0.707137;;; + } + AnimationKey { //Scale + 1; + 102; + 0;3; 2.732761, 2.732761, 2.732761;;, + 1;3; 2.732761, 2.732761, 2.732761;;, + 2;3; 2.732761, 2.732761, 2.732761;;, + 3;3; 2.732761, 2.732761, 2.732761;;, + 4;3; 2.732761, 2.732761, 2.732761;;, + 5;3; 2.732761, 2.732761, 2.732761;;, + 6;3; 2.732761, 2.732761, 2.732761;;, + 7;3; 2.732761, 2.732761, 2.732761;;, + 8;3; 2.732761, 2.732761, 2.732761;;, + 9;3; 2.732761, 2.732761, 2.732761;;, + 10;3; 2.732761, 2.732761, 2.732761;;, + 11;3; 2.732761, 2.732761, 2.732761;;, + 12;3; 2.732761, 2.732761, 2.732761;;, + 13;3; 2.732761, 2.732761, 2.732761;;, + 14;3; 2.732761, 2.732761, 2.732761;;, + 15;3; 2.732761, 2.732761, 2.732761;;, + 16;3; 2.732761, 2.732761, 2.732761;;, + 17;3; 2.732761, 2.732761, 2.732761;;, + 18;3; 2.732761, 2.732761, 2.732761;;, + 19;3; 2.732761, 2.732761, 2.732761;;, + 20;3; 2.732761, 2.732761, 2.732761;;, + 21;3; 2.732761, 2.732761, 2.732761;;, + 22;3; 2.732761, 2.732761, 2.732761;;, + 23;3; 2.732761, 2.732761, 2.732761;;, + 24;3; 2.732761, 2.732761, 2.732761;;, + 25;3; 2.732761, 2.732761, 2.732761;;, + 26;3; 2.732761, 2.732761, 2.732761;;, + 27;3; 2.732761, 2.732761, 2.732761;;, + 28;3; 2.732761, 2.732761, 2.732761;;, + 29;3; 2.732761, 2.732761, 2.732761;;, + 30;3; 2.732761, 2.732761, 2.732761;;, + 31;3; 2.732761, 2.732761, 2.732761;;, + 32;3; 2.732761, 2.732761, 2.732761;;, + 33;3; 2.732761, 2.732761, 2.732761;;, + 34;3; 2.732761, 2.732761, 2.732761;;, + 35;3; 2.732761, 2.732761, 2.732761;;, + 36;3; 2.732761, 2.732761, 2.732761;;, + 37;3; 2.732761, 2.732761, 2.732761;;, + 38;3; 2.732761, 2.732761, 2.732761;;, + 39;3; 2.732761, 2.732761, 2.732761;;, + 40;3; 2.732761, 2.732761, 2.732761;;, + 41;3; 2.732761, 2.732761, 2.732761;;, + 42;3; 2.732761, 2.732761, 2.732761;;, + 43;3; 2.732761, 2.732761, 2.732761;;, + 44;3; 2.732761, 2.732761, 2.732761;;, + 45;3; 2.732761, 2.732761, 2.732761;;, + 46;3; 2.732761, 2.732761, 2.732761;;, + 47;3; 2.732761, 2.732761, 2.732761;;, + 48;3; 2.732761, 2.732761, 2.732761;;, + 49;3; 2.732761, 2.732761, 2.732761;;, + 50;3; 2.732761, 2.732761, 2.732761;;, + 51;3; 2.732761, 2.732761, 2.732761;;, + 52;3; 2.732761, 2.732761, 2.732761;;, + 53;3; 2.732761, 2.732761, 2.732761;;, + 54;3; 2.732761, 2.732761, 2.732761;;, + 55;3; 2.732761, 2.732761, 2.732761;;, + 56;3; 2.732761, 2.732761, 2.732761;;, + 57;3; 2.732761, 2.732761, 2.732761;;, + 58;3; 2.732761, 2.732761, 2.732761;;, + 59;3; 2.732761, 2.732761, 2.732761;;, + 60;3; 2.732761, 2.732761, 2.732761;;, + 61;3; 2.732761, 2.732761, 2.732761;;, + 62;3; 2.732761, 2.732761, 2.732761;;, + 63;3; 2.732761, 2.732761, 2.732761;;, + 64;3; 2.732761, 2.732761, 2.732761;;, + 65;3; 2.732761, 2.732761, 2.732761;;, + 66;3; 2.732761, 2.732761, 2.732761;;, + 67;3; 2.732761, 2.732761, 2.732761;;, + 68;3; 2.732761, 2.732761, 2.732761;;, + 69;3; 2.732761, 2.732761, 2.732761;;, + 70;3; 2.732761, 2.732761, 2.732761;;, + 71;3; 2.732761, 2.732761, 2.732761;;, + 72;3; 2.732761, 2.732761, 2.732761;;, + 73;3; 2.732761, 2.732761, 2.732761;;, + 74;3; 2.732761, 2.732761, 2.732761;;, + 75;3; 2.732761, 2.732761, 2.732761;;, + 76;3; 2.732761, 2.732761, 2.732761;;, + 77;3; 2.732761, 2.732761, 2.732761;;, + 78;3; 2.732761, 2.732761, 2.732761;;, + 79;3; 2.732761, 2.732761, 2.732761;;, + 80;3; 2.732761, 2.732761, 2.732761;;, + 81;3; 2.732761, 2.732761, 2.732761;;, + 82;3; 2.732761, 2.732761, 2.732761;;, + 83;3; 2.732761, 2.732761, 2.732761;;, + 84;3; 2.732761, 2.732761, 2.732761;;, + 85;3; 2.732761, 2.732761, 2.732761;;, + 86;3; 2.732761, 2.732761, 2.732761;;, + 87;3; 2.732761, 2.732761, 2.732761;;, + 88;3; 2.732761, 2.732761, 2.732761;;, + 89;3; 2.732761, 2.732761, 2.732761;;, + 90;3; 2.732761, 2.732761, 2.732761;;, + 91;3; 2.732761, 2.732761, 2.732761;;, + 92;3; 2.732761, 2.732761, 2.732761;;, + 93;3; 2.732761, 2.732761, 2.732761;;, + 94;3; 2.732761, 2.732761, 2.732761;;, + 95;3; 2.732761, 2.732761, 2.732761;;, + 96;3; 2.732761, 2.732761, 2.732761;;, + 97;3; 2.732761, 2.732761, 2.732761;;, + 98;3; 2.732761, 2.732761, 2.732761;;, + 99;3; 2.732761, 2.732761, 2.732761;;, + 100;3; 2.732761, 2.732761, 2.732761;;, + 101;3; 2.732761, 2.732761, 2.732761;;; + } + } +} //End of AnimationSet diff --git a/mods/mobs/models/mobs_rat.png b/mods/mobs/models/mobs_rat.png new file mode 100644 index 00000000..f83da087 Binary files /dev/null and b/mods/mobs/models/mobs_rat.png differ diff --git a/mods/mobs/models/mobs_rat.x b/mods/mobs/models/mobs_rat.x new file mode 100644 index 00000000..f5a69bd7 --- /dev/null +++ b/mods/mobs/models/mobs_rat.x @@ -0,0 +1,699 @@ +xof 0303txt 0032 + +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 Cube_004 { + 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 { //Cube_005 Mesh + 176; + 0.336296; 1.101631; 1.340231;, + 1.524099; 1.101631; 1.348138;, + 1.516191; 1.101631; 2.535941;, + 0.328389; 1.101631; 2.528034;, + 0.328389; 1.101631; 2.528034;, + 0.336296; 1.101631; 1.340231;, + 0.336296; 1.101631; 1.340231;, + 0.328389; 1.101631; 2.528034;, + 1.524099; 1.101631; 1.348138;, + 1.516191; 1.101631; 2.535941;, + 1.516191; 1.101631; 2.535941;, + 1.524099; 1.101631; 1.348138;, + 1.516191; 1.101631; 2.535941;, + 0.328389; 1.101631; 2.528034;, + 0.328389; 1.101631; 2.528034;, + 1.516191; 1.101631; 2.535941;, + 0.336296; 1.101631; 1.340231;, + 1.524099; 1.101631; 1.348138;, + 1.524099; 1.101631; 1.348138;, + 0.336296; 1.101631; 1.340231;, + -1.564649; 0.817637; 1.334045;, + -1.564649; 1.101631; 1.334045;, + -1.596119; 1.101631; 2.521457;, + -1.596119; 0.817637; 2.521457;, + -1.564649; 1.101631; 1.334045;, + -0.377237; 1.101631; 1.365515;, + -0.408707; 1.101631; 2.552927;, + -1.596119; 1.101631; 2.521457;, + -0.377237; 1.101631; 1.365515;, + -0.377237; 0.817638; 1.365515;, + -0.408707; 0.817638; 2.552928;, + -0.408707; 1.101631; 2.552927;, + -0.377237; 0.817638; 1.365515;, + -1.564649; 0.817637; 1.334045;, + -1.596119; 0.817637; 2.521457;, + -0.408707; 0.817638; 2.552928;, + -0.377237; 0.817638; 1.365515;, + -0.377237; 1.101631; 1.365515;, + -1.564649; 1.101631; 1.334045;, + -1.564649; 0.817637; 1.334045;, + -1.596119; 0.817637; 2.521457;, + -1.596119; 1.101631; 2.521457;, + -0.408707; 1.101631; 2.552927;, + -0.408707; 0.817638; 2.552928;, + 0.336296; 0.817638; 1.340231;, + 0.336296; 1.101631; 1.340231;, + 0.328389; 1.101631; 2.528034;, + 0.328389; 0.817638; 2.528034;, + 1.524099; 1.101631; 1.348138;, + 1.524099; 0.817637; 1.348139;, + 1.516192; 0.817637; 2.535942;, + 1.516191; 1.101631; 2.535941;, + 1.524099; 0.817637; 1.348139;, + 0.336296; 0.817638; 1.340231;, + 0.328389; 0.817638; 2.528034;, + 1.516192; 0.817637; 2.535942;, + 1.524099; 0.817637; 1.348139;, + 1.524099; 1.101631; 1.348138;, + 0.336296; 1.101631; 1.340231;, + 0.336296; 0.817638; 1.340231;, + 0.328389; 0.817638; 2.528034;, + 0.328389; 1.101631; 2.528034;, + 1.516191; 1.101631; 2.535941;, + 1.516192; 0.817637; 2.535942;, + -0.117394;-5.732621; 0.182654;, + -0.186090;-2.477838; 0.265415;, + -0.186090;-2.477838; 0.668304;, + -0.117394;-5.732621; 0.448150;, + -0.186090;-2.477838; 0.265415;, + 0.216799;-2.477838; 0.265415;, + 0.216799;-2.477838; 0.668304;, + -0.186090;-2.477838; 0.668304;, + 0.216799;-2.477838; 0.265415;, + 0.148102;-5.732621; 0.182654;, + 0.148102;-5.732621; 0.448150;, + 0.216799;-2.477838; 0.668304;, + 0.148102;-5.732621; 0.182654;, + -0.117394;-5.732621; 0.182654;, + -0.117394;-5.732621; 0.448150;, + 0.148102;-5.732621; 0.448150;, + 0.148102;-5.732621; 0.182654;, + 0.216799;-2.477838; 0.265415;, + -0.186090;-2.477838; 0.265415;, + -0.117394;-5.732621; 0.182654;, + -0.117394;-5.732621; 0.448150;, + -0.186090;-2.477838; 0.668304;, + 0.216799;-2.477838; 0.668304;, + 0.148102;-5.732621; 0.448150;, + -0.933130;-2.573576; 0.130200;, + -0.933130; 0.667430; 0.130200;, + -0.933130; 0.667430; 2.038438;, + -0.933130;-2.573576; 2.038438;, + -0.933130; 0.667430; 0.130200;, + 0.963839; 0.667430; 0.130200;, + 0.963839; 0.667430; 2.038438;, + -0.933130; 0.667430; 2.038438;, + 0.963839; 0.667430; 0.130200;, + 0.963839;-2.573576; 0.130200;, + 0.963839;-2.573576; 2.038438;, + 0.963839; 0.667430; 2.038438;, + 0.963839;-2.573576; 0.130200;, + -0.933130;-2.573576; 0.130200;, + -0.933130;-2.573576; 2.038438;, + 0.963839;-2.573576; 2.038438;, + 0.963839;-2.573576; 0.130200;, + 0.963839; 0.667430; 0.130200;, + -0.933130; 0.667430; 0.130200;, + -0.933130;-2.573576; 0.130200;, + -0.933130;-2.573576; 2.038438;, + -0.933130; 0.667430; 2.038438;, + 0.963839; 0.667430; 2.038438;, + 0.963839;-2.573576; 2.038438;, + -0.694354; 0.619175; 0.175005;, + -0.469990; 2.744857; 0.240792;, + -0.469990; 2.744857; 1.874725;, + -0.694354; 0.619175; 1.814122;, + 0.015354; 2.744857; 0.240792;, + 0.500698; 2.744857; 0.240792;, + 0.500698; 2.744857; 1.874725;, + 0.015354; 2.744857; 1.874725;, + 0.500698; 2.744857; 0.240792;, + 0.725062; 0.619175; 0.175005;, + 0.725062; 0.619175; 1.814122;, + 0.500698; 2.744857; 1.874725;, + 0.015354; 0.619175; 0.175005;, + -0.694354; 0.619175; 0.175005;, + -0.694354; 0.619175; 1.814122;, + 0.015354; 0.619175; 1.814122;, + 0.725062; 0.619175; 0.175005;, + 0.500698; 2.744857; 0.240792;, + 0.015354; 2.744857; 0.240792;, + 0.015354; 0.619175; 0.175005;, + -0.694354; 0.619175; 1.814122;, + -0.469990; 2.744857; 1.874725;, + 0.015354; 2.744857; 1.874725;, + 0.015354; 0.619175; 1.814122;, + -0.281961; 2.574486; 0.745273;, + -0.281961; 3.169116; 0.745273;, + -0.281961; 3.169116; 1.339903;, + -0.281961; 2.574486; 1.339903;, + -0.281961; 3.169116; 0.745273;, + 0.312669; 3.169116; 0.745273;, + 0.312669; 3.169116; 1.339903;, + -0.281961; 3.169116; 1.339903;, + 0.312669; 3.169116; 0.745273;, + 0.312669; 2.574486; 0.745273;, + 0.312669; 2.574486; 1.339903;, + 0.312669; 3.169116; 1.339903;, + 0.312669; 2.574486; 0.745273;, + -0.281961; 2.574486; 0.745273;, + -0.281961; 2.574486; 1.339903;, + 0.312669; 2.574486; 1.339903;, + 0.312669; 2.574486; 0.745273;, + 0.312669; 3.169116; 0.745273;, + -0.281961; 3.169116; 0.745273;, + -0.281961; 2.574486; 0.745273;, + -0.281961; 2.574486; 1.339903;, + -0.281961; 3.169116; 1.339903;, + 0.312669; 3.169116; 1.339903;, + 0.312669; 2.574486; 1.339903;, + -0.469990; 2.744857; 0.240792;, + 0.015354; 2.744857; 0.240792;, + 0.015354; 2.744857; 1.874725;, + -0.469990; 2.744857; 1.874725;, + 0.725062; 0.619175; 0.175005;, + 0.015354; 0.619175; 0.175005;, + 0.015354; 0.619175; 1.814122;, + 0.725062; 0.619175; 1.814122;, + 0.015354; 0.619175; 0.175005;, + 0.015354; 2.744857; 0.240792;, + -0.469990; 2.744857; 0.240792;, + -0.694354; 0.619175; 0.175005;, + 0.015354; 0.619175; 1.814122;, + 0.015354; 2.744857; 1.874725;, + 0.500698; 2.744857; 1.874725;, + 0.725062; 0.619175; 1.814122;; + 44; + 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;; + MeshNormals { //Cube_005 Normals + 176; + 0.000000; 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;, + 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.999649; 0.000000;-0.026494;, + -0.999649; 0.000000;-0.026494;, + -0.999649; 0.000000;-0.026494;, + -0.999649; 0.000000;-0.026494;, + -0.000000; 1.000000; 0.000000;, + -0.000000; 1.000000; 0.000000;, + -0.000000; 1.000000; 0.000000;, + -0.000000; 1.000000; 0.000000;, + 0.999649; 0.000001; 0.026494;, + 0.999649; 0.000001; 0.026494;, + 0.999649; 0.000001; 0.026494;, + 0.999649; 0.000001; 0.026494;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.026494; 0.000000;-0.999649;, + 0.026494; 0.000000;-0.999649;, + 0.026494; 0.000000;-0.999649;, + 0.026494; 0.000000;-0.999649;, + -0.026494; 0.000000; 0.999649;, + -0.026494; 0.000000; 0.999649;, + -0.026494; 0.000000; 0.999649;, + -0.026494; 0.000000; 0.999649;, + -0.999978;-0.000000;-0.006657;, + -0.999978;-0.000000;-0.006657;, + -0.999978;-0.000000;-0.006657;, + -0.999978;-0.000000;-0.006657;, + 0.999978; 0.000001; 0.006657;, + 0.999978; 0.000001; 0.006657;, + 0.999978; 0.000001; 0.006657;, + 0.999978; 0.000001; 0.006657;, + -0.000000;-1.000000;-0.000000;, + -0.000000;-1.000000;-0.000000;, + -0.000000;-1.000000;-0.000000;, + -0.000000;-1.000000;-0.000000;, + 0.006657; 0.000000;-0.999978;, + 0.006657; 0.000000;-0.999978;, + 0.006657; 0.000000;-0.999978;, + 0.006657; 0.000000;-0.999978;, + -0.006657; 0.000000; 0.999978;, + -0.006657; 0.000000; 0.999978;, + -0.006657; 0.000000; 0.999978;, + -0.006657; 0.000000; 0.999978;, + -0.999777;-0.021102; 0.000000;, + -0.999777;-0.021102; 0.000000;, + -0.999777;-0.021102; 0.000000;, + -0.999777;-0.021102; 0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.999777;-0.021102; 0.000000;, + 0.999777;-0.021102; 0.000000;, + 0.999777;-0.021102; 0.000000;, + 0.999777;-0.021102; 0.000000;, + 0.000000;-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.025419;-0.999677;, + 0.000000; 0.025419;-0.999677;, + 0.000000; 0.025419;-0.999677;, + 0.000000; 0.025419;-0.999677;, + 0.000000;-0.067486; 0.997720;, + 0.000000;-0.067486; 0.997720;, + 0.000000;-0.067486; 0.997720;, + 0.000000;-0.067486; 0.997720;, + -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;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.994476; 0.104966; 0.000000;, + -0.994476; 0.104966; 0.000000;, + -0.994476; 0.104966; 0.000000;, + -0.994476; 0.104966; 0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.994476; 0.104966; 0.000000;, + 0.994476; 0.104966; 0.000000;, + 0.994476; 0.104966; 0.000000;, + 0.994476; 0.104966; 0.000000;, + 0.000000;-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.030934;-0.999521;, + 0.000000; 0.030934;-0.999521;, + 0.000000; 0.030934;-0.999521;, + 0.000000; 0.030934;-0.999521;, + 0.000000;-0.028498; 0.999594;, + 0.000000;-0.028498; 0.999594;, + 0.000000;-0.028498; 0.999594;, + 0.000000;-0.028498; 0.999594;, + -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;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 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.030934;-0.999521;, + 0.000000; 0.030934;-0.999521;, + 0.000000; 0.030934;-0.999521;, + 0.000000; 0.030934;-0.999521;, + 0.000000;-0.028498; 0.999594;, + 0.000000;-0.028498; 0.999594;, + 0.000000;-0.028498; 0.999594;, + 0.000000;-0.028498; 0.999594;; + 44; + 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;; + } //End of Cube_005 Normals + MeshMaterialList { //Cube_005 Material List + 1; + 44; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 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_001 { + 0.640000; 0.640000; 0.640000; 1.000000;; + 96.078431; + 0.500000; 0.500000; 0.500000;; + 0.000000; 0.000000; 0.000000;; + } + } //End of Cube_005 Material List + MeshTextureCoords { //Cube_005 UV Coordinates + 176; + 0.635817; 0.275819;, + 0.635817; 0.046728;, + 0.864908; 0.046728;, + 0.864908; 0.275819;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.864346; 0.986031;, + 0.783570; 0.986031;, + 0.783570; 0.648180;, + 0.864346; 0.648180;, + 0.635817; 0.274669;, + 0.635817; 0.045578;, + 0.864908; 0.045578;, + 0.864908; 0.274669;, + 0.863901; 0.987104;, + 0.783126; 0.987104;, + 0.783126; 0.649254;, + 0.863901; 0.649254;, + 0.991231; 0.987104;, + 0.653381; 0.987104;, + 0.653381; 0.649254;, + 0.991232; 0.649254;, + 0.991232; 0.777658;, + 0.991232; 0.858433;, + 0.653381; 0.858433;, + 0.653381; 0.777658;, + 0.655529; 0.859063;, + 0.655529; 0.778288;, + 0.993379; 0.778288;, + 0.993379; 0.859063;, + 0.335443; 0.861158;, + 0.265926; 0.861158;, + 0.265926; 0.570397;, + 0.335443; 0.570397;, + 0.334205; 0.859816;, + 0.264688; 0.859816;, + 0.264688; 0.569055;, + 0.334205; 0.569055;, + 0.444367; 0.858474;, + 0.153606; 0.858474;, + 0.153606; 0.567713;, + 0.444367; 0.567713;, + 0.333996; 0.859816;, + 0.264479; 0.859816;, + 0.264479; 0.569055;, + 0.333996; 0.569055;, + 0.264228; 0.568595;, + 0.333745; 0.568595;, + 0.333745; 0.859357;, + 0.264228; 0.859357;, + 0.910309; 0.067094;, + 0.990888; 0.067068;, + 0.991634; 0.077574;, + 0.911094; 0.077574;, + 0.910309; 0.024149;, + 0.921538; 0.024149;, + 0.921538; 0.035379;, + 0.910309; 0.035379;, + 0.990708; 0.067037;, + 0.910309; 0.067041;, + 0.910896; 0.056534;, + 0.991418; 0.056534;, + 0.928966; 0.035379;, + 0.921565; 0.035379;, + 0.921565; 0.027979;, + 0.928966; 0.027979;, + 0.910595; 0.035408;, + 0.990869; 0.035406;, + 0.990583; 0.045937;, + 0.910309; 0.045939;, + 0.910597; 0.045966;, + 0.990951; 0.045966;, + 0.990662; 0.056507;, + 0.910309; 0.056507;, + 0.461795; 0.725720;, + 0.002369; 0.725720;, + 0.002369; 0.455219;, + 0.461795; 0.455219;, + 0.728915; 0.630399;, + 0.460011; 0.630399;, + 0.460011; 0.359898;, + 0.728915; 0.359898;, + 0.459622; 0.999805;, + 0.000195; 0.999805;, + 0.000195; 0.729304;, + 0.459622; 0.729304;, + 0.990155; 1.001469;, + 0.721251; 1.001469;, + 0.721251; 0.730968;, + 0.990155; 0.730968;, + 0.000987; 0.351616;, + 0.460413; 0.351616;, + 0.460413; 0.620520;, + 0.000987; 0.620520;, + 0.728915; 0.540378;, + 0.728915; 0.999805;, + 0.460011; 0.999805;, + 0.460011; 0.540378;, + 0.006594; 0.353635;, + 0.507556; 0.369053;, + 0.507556; 0.596553;, + 0.006594; 0.737794;, + 0.752538; 0.533913;, + 0.752538; 0.647662;, + 0.525038; 0.647662;, + 0.525038; 0.533913;, + 0.509703; 0.731028;, + 0.008741; 0.746446;, + 0.008741; 0.362287;, + 0.509703; 0.503529;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.003201; 0.349292;, + 0.501634; 0.401876;, + 0.501634; 0.515626;, + 0.003201; 0.515626;, + 0.529333; 0.186216;, + 0.171158; 0.150188;, + 0.171083; 0.071516;, + 0.529224; 0.071176;, + 0.636995; 0.428681;, + 0.636995; 0.545208;, + 0.520468; 0.545208;, + 0.520468; 0.428681;, + 0.340480; 0.361873;, + 0.452832; 0.361873;, + 0.452832; 0.474224;, + 0.340480; 0.474224;, + 0.453577; 0.475130;, + 0.341226; 0.475130;, + 0.341226; 0.362779;, + 0.453577; 0.362779;, + 0.453737; 0.472732;, + 0.341386; 0.472732;, + 0.341386; 0.360381;, + 0.453737; 0.360381;, + 0.454483; 0.362033;, + 0.454483; 0.474384;, + 0.342132; 0.474384;, + 0.342132; 0.362033;, + 0.342132; 0.472732;, + 0.342132; 0.360381;, + 0.454483; 0.360381;, + 0.454483; 0.472732;, + 0.752538; 0.420163;, + 0.752538; 0.533913;, + 0.525038; 0.533913;, + 0.525038; 0.420163;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.003201; 0.515626;, + 0.501634; 0.515626;, + 0.501634; 0.629375;, + 0.003201; 0.681959;, + 0.529223; 0.070318;, + 0.171082; 0.070658;, + 0.171157; 0.149330;, + 0.529332; 0.185358;; + } //End of Cube_005 UV Coordinates + } //End of Cube_005 Mesh + } //End of Cube_004 +} //End of Root Frame diff --git a/mods/mobs/models/mobs_sand_monster.png b/mods/mobs/models/mobs_sand_monster.png new file mode 100644 index 00000000..75fcc4ba Binary files /dev/null and b/mods/mobs/models/mobs_sand_monster.png differ diff --git a/mods/mobs/models/mobs_sand_monster.x b/mods/mobs/models/mobs_sand_monster.x new file mode 100644 index 00000000..52750d8c --- /dev/null +++ b/mods/mobs/models/mobs_sand_monster.x @@ -0,0 +1,8573 @@ +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, 0.000000, 1.000000;; + } + Frame Armature_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.001246, 1.000000;; + } + Frame Armature_Body { + 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.855036, 0.000000, 1.000000;; + } + Frame Armature_Bone_001 { + FrameTransformMatrix { + 0.995733, 0.092285,-0.000000, 0.000000, + 0.092285,-0.995732,-0.000000, 0.000000, + -0.000000, 0.000000,-1.000000, 0.000000, + 0.225856, 0.800000, 0.000000, 1.000000;; + } + } //End of Armature_Bone_001 + Frame Armature_Bone_002 { + FrameTransformMatrix { + 0.995624,-0.093449,-0.000000, 0.000000, + -0.093449,-0.995624,-0.000000, 0.000000, + -0.000000, 0.000000,-1.000000, 0.000000, + -0.238835, 0.800000, 0.000000, 1.000000;; + } + } //End of Armature_Bone_002 + Frame Armature_Bone_003 { + FrameTransformMatrix { + 1.000000,-0.000000,-0.000000, 0.000000, + -0.000000,-1.000000,-0.000001, 0.000000, + -0.000000, 0.000001,-1.000000, 0.000000, + -0.144872, 0.061513, 0.000000, 1.000000;; + } + } //End of Armature_Bone_003 + Frame Armature_Bone_004 { + FrameTransformMatrix { + 1.000000,-0.000000,-0.000000, 0.000000, + -0.000000,-1.000000,-0.000001, 0.000000, + -0.000000, 0.000001,-1.000000, 0.000000, + 0.135398, 0.070410, 0.000000, 1.000000;; + } + } //End of Armature_Bone_004 + Frame Armature_Bone_005 { + FrameTransformMatrix { + 1.000000,-0.000000,-0.000000, 0.000000, + 0.000000, 0.999976,-0.006964, 0.000000, + 0.000000, 0.006964, 0.999976, 0.000000, + -0.002513, 0.866015, 0.122502, 1.000000;; + } + Frame Armature_Bone_006 { + FrameTransformMatrix { + 0.101367,-0.994825,-0.006928, 0.000000, + 0.000001, 0.006964,-0.999976, 0.000000, + 0.994849, 0.101365, 0.000707, 0.000000, + -0.000000, 0.306782, 0.000000, 1.000000;; + } + Frame Armature_Bone_007 { + FrameTransformMatrix { + 0.101366, 0.000001, 0.994849, 0.000000, + 0.570623, 0.819152,-0.058142, 0.000000, + -0.814932, 0.573577, 0.083034, 0.000000, + 0.078315, 0.084604,-0.007980, 1.000000;; + } + } //End of Armature_Bone_007 + } //End of Armature_Bone_006 + } //End of Armature_Bone_005 + Frame Armature_Body_001 { + 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.187946,-0.206990, 1.000000;; + } + } //End of Armature_Body_001 + Frame Armature_Body_002 { + 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.185728, 0.203380, 1.000000;; + } + } //End of Armature_Body_002 + } //End of Armature_Body + Frame Armature_IK_Right_Leg { + FrameTransformMatrix { + 1.000000, 0.000000,-0.000000, 0.000000, + -0.000000,-1.000000,-0.000001, 0.000000, + -0.000000, 0.000001,-1.000000, 0.000000, + 0.135398, 0.015523, 0.000000, 1.000000;; + } + } //End of Armature_IK_Right_Leg + Frame Armature_IK_Left_Leg { + FrameTransformMatrix { + 1.000000, 0.000000,-0.000000, 0.000000, + -0.000000,-1.000000,-0.000001, 0.000000, + -0.000000, 0.000001,-1.000000, 0.000000, + -0.148583, 0.015523, 0.000000, 1.000000;; + } + } //End of Armature_IK_Left_Leg + Frame Armature_IK_Left_Hand { + FrameTransformMatrix { + 1.000000, 0.000000,-0.000000, 0.000000, + -0.000000,-1.000000,-0.000001, 0.000000, + -0.000000, 0.000001,-1.000000, 0.000000, + -0.316097, 0.754556, 0.000000, 1.000000;; + } + } //End of Armature_IK_Left_Hand + Frame Armature_IK_Right_hand { + FrameTransformMatrix { + 1.000000, 0.000000,-0.000000, 0.000000, + -0.000000,-1.000000,-0.000001, 0.000000, + -0.000000, 0.000001,-1.000000, 0.000000, + 0.304691, 0.744702, 0.000000, 1.000000;; + } + } //End of Armature_IK_Right_hand + Frame Armature_IK_head { + FrameTransformMatrix { + 1.000000,-0.000000,-0.000000, 0.000000, + 0.000000, 0.999976,-0.006964, 0.000000, + 0.000000, 0.006964, 0.999976, 0.000000, + -0.002513, 2.032632,-0.710142, 1.000000;; + } + } //End of Armature_IK_head + } //End of Armature_Root + Frame Sand_monster { + FrameTransformMatrix { + 0.746845, 0.000000, 0.000000, 0.000000, + 0.000000, 0.740784, 0.000000, 0.000000, + 0.000000, 0.000000, 0.740784, 0.000000, + -0.000000, 0.000000, 0.000000, 1.000000;; + } + Mesh { //Cube_000 Mesh + 332; + -0.320902;-0.288770; 0.936493;, + -0.317184;-0.213477; 0.936493;, + -0.317184;-0.213477; 1.431149;, + -0.320902;-0.288770; 1.431149;, + -0.317184;-0.213477; 0.936493;, + -0.106107;-0.213477; 0.936493;, + -0.106107;-0.213477; 1.431149;, + -0.317184;-0.213477; 1.431149;, + -0.106107;-0.213477; 0.936493;, + -0.109825;-0.288770; 0.936493;, + -0.109825;-0.288770; 1.431149;, + -0.106107;-0.213477; 1.431149;, + -0.109825;-0.288770; 0.936493;, + -0.320902;-0.288770; 0.936493;, + -0.320902;-0.288770; 1.431149;, + -0.109825;-0.288770; 1.431149;, + -0.109825;-0.288770; 0.936493;, + -0.106107;-0.213477; 0.936493;, + -0.317184;-0.213477; 0.936493;, + -0.320902;-0.288770; 0.936493;, + -0.320902;-0.288770; 1.431149;, + -0.317184;-0.213477; 1.431149;, + -0.106107;-0.213477; 1.431149;, + -0.109825;-0.288770; 1.431149;, + 0.083499;-0.288770; 0.936493;, + 0.081037;-0.213477; 0.936493;, + 0.081037;-0.213477; 1.431149;, + 0.083499;-0.288770; 1.431149;, + 0.081037;-0.213477; 0.936493;, + 0.297651;-0.213477; 0.936493;, + 0.297651;-0.213477; 1.431149;, + 0.081037;-0.213477; 1.431149;, + 0.297651;-0.213477; 0.936493;, + 0.300113;-0.288770; 0.936493;, + 0.300113;-0.288770; 1.431149;, + 0.297651;-0.213477; 1.431149;, + 0.300113;-0.288770; 0.936493;, + 0.083499;-0.288770; 0.936493;, + 0.083499;-0.288770; 1.431149;, + 0.300113;-0.288770; 1.431149;, + 0.300113;-0.288770; 0.936493;, + 0.297651;-0.213477; 0.936493;, + 0.081037;-0.213477; 0.936493;, + 0.083499;-0.288770; 0.936493;, + 0.083499;-0.288770; 1.431149;, + 0.081037;-0.213477; 1.431149;, + 0.297651;-0.213477; 1.431149;, + 0.300113;-0.288770; 1.431149;, + -0.167631;-0.323303; 0.771836;, + -0.168232;-0.248010; 0.771836;, + -0.168232;-0.248010; 1.438394;, + -0.167631;-0.323303; 1.438394;, + -0.168232;-0.248010; 0.771836;, + 0.149701;-0.248010; 0.771836;, + 0.149701;-0.248010; 1.438394;, + -0.168232;-0.248010; 1.438394;, + 0.149701;-0.248010; 0.771836;, + 0.150301;-0.323303; 0.771836;, + 0.150301;-0.323303; 1.438394;, + 0.149701;-0.248010; 1.438394;, + 0.150301;-0.323303; 0.771836;, + -0.167631;-0.323303; 0.771836;, + -0.167631;-0.323303; 1.438394;, + 0.150301;-0.323303; 1.438394;, + 0.150301;-0.323303; 0.771836;, + 0.149701;-0.248010; 0.771836;, + -0.168232;-0.248010; 0.771836;, + -0.167631;-0.323303; 0.771836;, + -0.167631;-0.323303; 1.438394;, + -0.168232;-0.248010; 1.438394;, + 0.149701;-0.248010; 1.438394;, + 0.150301;-0.323303; 1.438394;, + 0.299315;-0.086578; 0.978290;, + 0.299315; 0.101043; 0.978290;, + 0.299315; 0.101043; 2.336183;, + 0.299315;-0.086578; 2.336183;, + 0.299315; 0.101043; 0.978290;, + 0.485414; 0.101043; 0.978290;, + 0.485414; 0.101043; 2.336183;, + 0.299315; 0.101043; 2.336183;, + 0.485414; 0.101043; 0.978290;, + 0.485414;-0.086578; 0.978290;, + 0.485414;-0.086578; 2.336183;, + 0.485414; 0.101043; 2.336183;, + 0.485414;-0.086578; 0.978290;, + 0.299315;-0.086578; 0.978290;, + 0.299315;-0.086578; 2.336183;, + 0.485414;-0.086578; 2.336183;, + 0.485414;-0.086578; 0.978290;, + 0.485414; 0.101043; 0.978290;, + 0.299315; 0.101043; 0.978290;, + 0.299315;-0.086578; 0.978290;, + 0.299315;-0.086578; 2.336183;, + 0.299315; 0.101043; 2.336183;, + 0.485414; 0.101043; 2.336183;, + 0.485414;-0.086578; 2.336183;, + 0.299346; 0.342641; 3.011453;, + 0.299346;-0.285110; 3.011453;, + -0.323311;-0.285110; 3.011453;, + -0.323311; 0.342641; 3.011453;, + 0.299346; 0.342641; 2.590401;, + 0.299346;-0.285110; 2.590401;, + 0.299346;-0.285110; 3.011453;, + 0.299346; 0.342641; 3.011453;, + 0.299346;-0.285110; 2.590401;, + -0.323311;-0.285110; 2.590401;, + -0.323311;-0.285110; 3.011453;, + 0.299346;-0.285110; 3.011453;, + -0.323311;-0.285110; 2.590401;, + -0.323311; 0.342641; 2.590401;, + -0.323311; 0.342641; 3.011453;, + -0.323311;-0.285110; 3.011453;, + -0.323311; 0.342641; 2.590401;, + 0.299346; 0.342641; 2.590401;, + 0.299346; 0.342641; 3.011453;, + -0.323311; 0.342641; 3.011453;, + 0.299346; 0.342641; 2.590401;, + -0.323311; 0.342641; 2.590401;, + -0.323311;-0.285110; 2.590401;, + 0.299346;-0.285110; 2.590401;, + 0.222447; 0.335658; 2.376415;, + 0.222447;-0.063423; 2.376415;, + 0.222447;-0.063423; 2.583114;, + 0.222447; 0.335658; 2.583114;, + 0.222447;-0.063423; 2.376415;, + -0.245101;-0.063423; 2.376415;, + -0.245101;-0.063423; 2.583114;, + 0.222447;-0.063423; 2.583114;, + -0.245101;-0.063423; 2.376415;, + -0.245101; 0.335658; 2.376415;, + -0.245101; 0.335658; 2.583114;, + -0.245101;-0.063423; 2.583114;, + -0.245101; 0.335658; 2.376415;, + 0.222447; 0.335658; 2.376415;, + 0.222447; 0.335658; 2.583114;, + -0.245101; 0.335658; 2.583114;, + -0.245101; 0.335658; 2.376415;, + -0.245101;-0.063423; 2.376415;, + 0.222447;-0.063423; 2.376415;, + 0.222447; 0.335658; 2.376415;, + -0.322044; 0.107436; 0.978290;, + -0.322043;-0.080185; 0.978290;, + -0.322043;-0.080185; 2.336183;, + -0.322044; 0.107436; 2.336183;, + -0.322043;-0.080185; 0.978290;, + -0.508142;-0.080185; 0.978290;, + -0.508142;-0.080185; 2.336183;, + -0.322043;-0.080185; 2.336183;, + -0.508142;-0.080185; 0.978290;, + -0.508142; 0.107436; 0.978290;, + -0.508142; 0.107436; 2.336183;, + -0.508142;-0.080185; 2.336183;, + -0.508142; 0.107436; 0.978290;, + -0.322044; 0.107436; 0.978290;, + -0.322044; 0.107436; 2.336183;, + -0.508142; 0.107436; 2.336183;, + -0.508142; 0.107436; 0.978290;, + -0.508142;-0.080185; 0.978290;, + -0.322043;-0.080185; 0.978290;, + -0.322044; 0.107436; 0.978290;, + -0.322044; 0.107436; 2.336183;, + -0.322043;-0.080185; 2.336183;, + -0.508142;-0.080185; 2.336183;, + -0.508142; 0.107436; 2.336183;, + 0.292988; 0.271646; 1.259217;, + 0.292988;-0.244395; 1.259217;, + 0.292988;-0.244395; 2.334600;, + 0.292988; 0.271646; 2.334600;, + 0.292988;-0.244395; 1.259217;, + -0.316111;-0.244395; 1.259217;, + -0.316111;-0.244395; 2.334600;, + 0.292988;-0.244395; 2.334600;, + -0.316111;-0.244395; 1.259217;, + -0.316111; 0.271646; 1.259217;, + -0.316111; 0.271646; 2.334600;, + -0.316111;-0.244395; 2.334600;, + -0.316111; 0.271646; 1.259217;, + 0.292988; 0.271646; 1.259217;, + 0.292988; 0.271646; 2.334600;, + -0.316111; 0.271646; 2.334600;, + -0.316111; 0.271646; 1.259217;, + -0.316111;-0.244395; 1.259217;, + 0.292988;-0.244395; 1.259217;, + 0.292988; 0.271646; 1.259217;, + 0.292988; 0.271646; 2.334600;, + 0.292988;-0.244395; 2.334600;, + -0.316111;-0.244395; 2.334600;, + -0.316111; 0.271646; 2.334600;, + 0.302371; 0.292906; 0.936493;, + 0.298653; 0.217613; 0.936493;, + 0.298653; 0.217613; 1.431149;, + 0.302371; 0.292906; 1.431149;, + 0.298653; 0.217613; 0.936493;, + 0.087576; 0.217613; 0.936493;, + 0.087576; 0.217613; 1.431149;, + 0.298653; 0.217613; 1.431149;, + 0.087576; 0.217613; 0.936493;, + 0.091294; 0.292906; 0.936493;, + 0.091294; 0.292906; 1.431149;, + 0.087576; 0.217613; 1.431149;, + 0.091294; 0.292906; 0.936493;, + 0.302371; 0.292906; 0.936493;, + 0.302371; 0.292906; 1.431149;, + 0.091294; 0.292906; 1.431149;, + 0.091294; 0.292906; 0.936493;, + 0.087576; 0.217613; 0.936493;, + 0.298653; 0.217613; 0.936493;, + 0.302371; 0.292906; 0.936493;, + 0.302371; 0.292906; 1.431149;, + 0.298653; 0.217613; 1.431149;, + 0.087576; 0.217613; 1.431149;, + 0.091294; 0.292906; 1.431149;, + -0.102030; 0.292906; 0.936493;, + -0.099568; 0.217613; 0.936493;, + -0.099568; 0.217613; 1.431149;, + -0.102030; 0.292906; 1.431149;, + -0.099568; 0.217613; 0.936493;, + -0.316183; 0.217613; 0.936493;, + -0.316183; 0.217613; 1.431149;, + -0.099568; 0.217613; 1.431149;, + -0.316183; 0.217613; 0.936493;, + -0.318644; 0.292906; 0.936493;, + -0.318644; 0.292906; 1.431149;, + -0.316183; 0.217613; 1.431149;, + -0.318644; 0.292906; 0.936493;, + -0.102030; 0.292906; 0.936493;, + -0.102030; 0.292906; 1.431149;, + -0.318644; 0.292906; 1.431149;, + -0.318644; 0.292906; 0.936493;, + -0.316183; 0.217613; 0.936493;, + -0.099568; 0.217613; 0.936493;, + -0.102030; 0.292906; 0.936493;, + -0.102030; 0.292906; 1.431149;, + -0.099568; 0.217613; 1.431149;, + -0.316183; 0.217613; 1.431149;, + -0.318644; 0.292906; 1.431149;, + 0.149100; 0.327439; 0.771836;, + 0.149701; 0.252146; 0.771836;, + 0.149701; 0.252146; 1.438394;, + 0.149100; 0.327439; 1.438394;, + 0.149701; 0.252146; 0.771836;, + -0.168232; 0.252146; 0.771836;, + -0.168232; 0.252146; 1.438394;, + 0.149701; 0.252146; 1.438394;, + -0.168232; 0.252146; 0.771836;, + -0.168833; 0.327439; 0.771836;, + -0.168833; 0.327439; 1.438394;, + -0.168232; 0.252146; 1.438394;, + -0.168833; 0.327439; 0.771836;, + 0.149100; 0.327439; 0.771836;, + 0.149100; 0.327439; 1.438394;, + -0.168833; 0.327439; 1.438394;, + -0.168833; 0.327439; 0.771836;, + -0.168232; 0.252146; 0.771836;, + 0.149701; 0.252146; 0.771836;, + 0.149100; 0.327439; 0.771836;, + 0.149100; 0.327439; 1.438394;, + 0.149701; 0.252146; 1.438394;, + -0.168232; 0.252146; 1.438394;, + -0.168833; 0.327439; 1.438394;, + 0.103285;-0.086578;-0.135133;, + 0.103285; 0.101043;-0.135133;, + 0.103285; 0.101043; 1.222760;, + 0.103285;-0.086578; 1.222760;, + 0.103285; 0.101043;-0.135133;, + 0.289383; 0.101043;-0.135133;, + 0.289383; 0.101043; 1.222760;, + 0.103285; 0.101043; 1.222760;, + 0.289383; 0.101043;-0.135133;, + 0.289383;-0.086578;-0.135133;, + 0.289383;-0.086578; 1.222760;, + 0.289383; 0.101043; 1.222760;, + 0.289383;-0.086578;-0.135133;, + 0.103285;-0.086578;-0.135133;, + 0.103285;-0.086578; 1.222760;, + 0.289383;-0.086578; 1.222760;, + 0.289383;-0.086578;-0.135133;, + 0.289383; 0.101043;-0.135133;, + 0.103285; 0.101043;-0.135133;, + 0.103285;-0.086578;-0.135133;, + 0.103285;-0.086578; 1.222760;, + 0.103285; 0.101043; 1.222760;, + 0.289383; 0.101043; 1.222760;, + 0.289383;-0.086578; 1.222760;, + -0.095249; 0.107436;-0.115250;, + -0.095249;-0.080185;-0.115250;, + -0.095249;-0.080185; 1.242642;, + -0.095249; 0.107436; 1.242642;, + -0.095249;-0.080185;-0.115250;, + -0.281348;-0.080185;-0.115250;, + -0.281348;-0.080185; 1.242642;, + -0.095249;-0.080185; 1.242642;, + -0.281348;-0.080185;-0.115250;, + -0.281348; 0.107436;-0.115250;, + -0.281348; 0.107436; 1.242642;, + -0.281348;-0.080185; 1.242642;, + -0.281348; 0.107436;-0.115250;, + -0.095249; 0.107436;-0.115250;, + -0.095249; 0.107436; 1.242642;, + -0.281348; 0.107436; 1.242642;, + -0.281348; 0.107436;-0.115250;, + -0.281348;-0.080185;-0.115250;, + -0.095249;-0.080185;-0.115250;, + -0.095249; 0.107436;-0.115250;, + -0.095249; 0.107436; 1.242642;, + -0.095249;-0.080185; 1.242642;, + -0.281348;-0.080185; 1.242642;, + -0.281348; 0.107436; 1.242642;, + 0.038491;-0.113120; 2.301639;, + 0.038491;-0.214044; 2.301639;, + 0.038491;-0.214044; 2.635183;, + 0.038491;-0.113120; 2.635183;, + 0.038491;-0.214044; 2.301639;, + -0.061613;-0.214044; 2.301639;, + -0.061613;-0.214044; 2.635183;, + 0.038491;-0.214044; 2.635183;, + -0.061613;-0.214044; 2.301639;, + -0.061614;-0.113120; 2.301639;, + -0.061614;-0.113120; 2.635183;, + -0.061613;-0.214044; 2.635183;, + -0.061614;-0.113120; 2.301639;, + 0.038491;-0.113120; 2.301639;, + 0.038491;-0.113120; 2.635183;, + -0.061614;-0.113120; 2.635183;, + -0.061614;-0.113120; 2.301639;, + -0.061613;-0.214044; 2.301639;, + 0.038491;-0.214044; 2.301639;, + 0.038491;-0.113120; 2.301639;, + 0.038491;-0.113120; 2.635183;, + 0.038491;-0.214044; 2.635183;, + -0.061613;-0.214044; 2.635183;, + -0.061614;-0.113120; 2.635183;; + 83; + 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;; + MeshNormals { //Cube_000 Normals + 332; + -0.998783; 0.049315;-0.000000;, + -0.998783; 0.049315;-0.000000;, + -0.998783; 0.049315;-0.000000;, + -0.998783; 0.049315;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.998783;-0.049314; 0.000000;, + 0.998783;-0.049314; 0.000000;, + 0.998783;-0.049314; 0.000000;, + 0.998783;-0.049314; 0.000000;, + 0.000000;-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.999466;-0.032675; 0.000000;, + -0.999466;-0.032675; 0.000000;, + -0.999466;-0.032675; 0.000000;, + -0.999466;-0.032675; 0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.999466; 0.032675; 0.000000;, + 0.999466; 0.032675; 0.000000;, + 0.999466; 0.032675; 0.000000;, + 0.999466; 0.032675; 0.000000;, + 0.000000;-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.999968;-0.007979; 0.000000;, + -0.999968;-0.007979; 0.000000;, + -0.999968;-0.007979; 0.000000;, + -0.999968;-0.007979; 0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.999968; 0.007979; 0.000000;, + 0.999968; 0.007979; 0.000000;, + 0.999968; 0.007979; 0.000000;, + 0.999968; 0.007979; 0.000000;, + 0.000000;-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; 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; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + 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; 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;, + -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;, + -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;, + 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;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.998783;-0.049314;-0.000000;, + 0.998783;-0.049314;-0.000000;, + 0.998783;-0.049314;-0.000000;, + 0.998783;-0.049314;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -0.998783; 0.049314; 0.000000;, + -0.998783; 0.049314; 0.000000;, + -0.998783; 0.049314; 0.000000;, + -0.998783; 0.049314; 0.000000;, + -0.000000; 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.999466; 0.032676; 0.000000;, + 0.999466; 0.032676; 0.000000;, + 0.999466; 0.032676; 0.000000;, + 0.999466; 0.032676; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -0.999466;-0.032675; 0.000000;, + -0.999466;-0.032675; 0.000000;, + -0.999466;-0.032675; 0.000000;, + -0.999466;-0.032675; 0.000000;, + -0.000000; 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.999968; 0.007979;-0.000000;, + 0.999968; 0.007979;-0.000000;, + 0.999968; 0.007979;-0.000000;, + 0.999968; 0.007979;-0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -0.999968;-0.007979; 0.000000;, + -0.999968;-0.007979; 0.000000;, + -0.999968;-0.007979; 0.000000;, + -0.999968;-0.007979; 0.000000;, + -0.000000; 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; 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; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -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; 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;-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; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;; + 83; + 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;; + } //End of Cube_000 Normals + MeshMaterialList { //Cube_000 Material List + 1; + 1; + 0;; + Material Default_Material { + 0.800000; 0.800000; 0.800000; 0.800000;; + 96.078431; + 0.500000; 0.500000; 0.500000;; + 0.000000; 0.000000; 0.000000;; + } + } //End of Cube_000 Material List + MeshTextureCoords { //Cube_000 UV Coordinates + 332; + 0.750000; 0.812500;, + 0.734375; 0.812500;, + 0.734375; 0.625000;, + 0.750000; 0.625000;, + 0.750000; 0.812500;, + 0.796875; 0.812500;, + 0.796875; 0.625000;, + 0.750000; 0.625000;, + 0.812500; 0.812500;, + 0.796875; 0.812500;, + 0.796875; 0.625000;, + 0.812500; 0.625000;, + 0.796875; 0.812500;, + 0.750000; 0.812500;, + 0.750000; 0.625000;, + 0.796875; 0.625000;, + 0.796875; 0.812500;, + 0.796875; 0.843750;, + 0.750000; 0.843750;, + 0.750000; 0.812500;, + 0.750000; 0.593750;, + 0.750000; 0.625000;, + 0.796875; 0.625000;, + 0.796875; 0.593750;, + 0.921875; 0.812500;, + 0.906250; 0.812500;, + 0.906250; 0.625000;, + 0.921875; 0.625000;, + 0.921875; 0.812500;, + 0.968750; 0.812500;, + 0.968750; 0.625000;, + 0.921875; 0.625000;, + 0.984375; 0.812500;, + 0.968750; 0.812500;, + 0.968750; 0.625000;, + 0.984375; 0.625000;, + 0.968750; 0.812500;, + 0.921875; 0.812500;, + 0.921875; 0.625000;, + 0.968750; 0.625000;, + 0.968750; 0.812500;, + 0.968750; 0.843750;, + 0.921875; 0.843750;, + 0.921875; 0.812500;, + 0.921875; 0.593750;, + 0.921875; 0.625000;, + 0.968750; 0.625000;, + 0.968750; 0.593750;, + 0.828125; 0.812500;, + 0.812500; 0.812500;, + 0.812500; 0.562500;, + 0.828125; 0.562500;, + 0.890625; 0.812500;, + 0.828125; 0.812500;, + 0.828125; 0.562500;, + 0.890625; 0.562500;, + 0.906250; 0.812500;, + 0.890625; 0.812500;, + 0.890625; 0.562500;, + 0.906250; 0.562500;, + 0.890625; 0.812500;, + 0.828125; 0.812500;, + 0.828125; 0.562500;, + 0.890625; 0.562500;, + 0.890625; 0.812500;, + 0.890625; 0.843750;, + 0.828125; 0.843750;, + 0.828125; 0.812500;, + 0.828125; 0.531250;, + 0.828125; 0.562500;, + 0.890625; 0.562500;, + 0.890625; 0.531250;, + 0.703125; 0.187500;, + 0.703125; 0.250000;, + 0.515625; 0.250000;, + 0.515625; 0.187500;, + 0.703125; 0.125000;, + 0.703125; 0.187500;, + 0.515625; 0.187500;, + 0.515625; 0.125000;, + 0.703125; 0.062500;, + 0.703125; 0.125000;, + 0.515625; 0.125000;, + 0.515625; 0.062500;, + 0.703125; 0.000000;, + 0.703125; 0.062500;, + 0.515625; 0.062500;, + 0.515625; 0.000000;, + 0.703125; 0.125000;, + 0.734375; 0.125000;, + 0.734375; 0.187500;, + 0.703125; 0.187500;, + 0.734375; 0.250000;, + 0.703125; 0.250000;, + 0.703125; 0.187500;, + 0.734375; 0.187500;, + 0.250000; 0.437500;, + 0.250000; 0.187500;, + 0.375000; 0.187500;, + 0.375000; 0.437500;, + 0.375000; 0.000000;, + 0.500000; 0.000000;, + 0.500000; 0.187500;, + 0.375000; 0.187500;, + 0.250000; 0.000000;, + 0.375000; 0.000000;, + 0.375000; 0.187500;, + 0.250000; 0.187500;, + 0.250000; 0.187500;, + 0.125000; 0.187500;, + 0.125000; 0.000000;, + 0.250000; 0.000000;, + 0.125000; 0.187500;, + 0.000000; 0.187500;, + 0.000000; 0.000000;, + 0.125000; 0.000000;, + 0.375000; 0.437500;, + 0.375000; 0.187500;, + 0.500000; 0.187500;, + 0.500000; 0.437500;, + 0.078125; 0.250000;, + 0.000000; 0.250000;, + 0.000000; 0.187500;, + 0.078125; 0.187500;, + 0.078125; 0.375000;, + 0.171875; 0.375000;, + 0.171875; 0.437500;, + 0.078125; 0.437500;, + 0.250000; 0.250000;, + 0.171875; 0.250000;, + 0.171875; 0.187500;, + 0.250000; 0.187500;, + 0.171875; 0.250000;, + 0.078125; 0.250000;, + 0.078125; 0.187500;, + 0.171875; 0.187500;, + 0.078125; 0.250000;, + 0.171875; 0.250000;, + 0.171875; 0.375000;, + 0.078125; 0.375000;, + 0.734375; 0.250000;, + 0.734375; 0.187500;, + 0.921875; 0.187500;, + 0.921875; 0.250000;, + 0.734375; 0.062500;, + 0.734375; 0.000000;, + 0.921875; 0.000000;, + 0.921875; 0.062500;, + 0.734375; 0.125000;, + 0.734375; 0.062500;, + 0.921875; 0.062500;, + 0.921875; 0.125000;, + 0.734375; 0.187500;, + 0.734375; 0.125000;, + 0.921875; 0.125000;, + 0.921875; 0.187500;, + 0.734375; 0.062500;, + 0.703125; 0.062500;, + 0.703125; 0.000000;, + 0.734375; 0.000000;, + 0.703125; 0.062500;, + 0.734375; 0.062500;, + 0.734375; 0.125000;, + 0.703125; 0.125000;, + 0.109375; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 0.625000;, + 0.109375; 0.625000;, + 0.234375; 1.000000;, + 0.109375; 1.000000;, + 0.109375; 0.625000;, + 0.234375; 0.625000;, + 0.234375; 1.000000;, + 0.343750; 1.000000;, + 0.343750; 0.625000;, + 0.234375; 0.625000;, + 0.468750; 1.000000;, + 0.343750; 1.000000;, + 0.343750; 0.625000;, + 0.468750; 0.625000;, + 0.468750; 0.437500;, + 0.468750; 0.625000;, + 0.343750; 0.625000;, + 0.343750; 0.437500;, + 0.109375; 0.625000;, + 0.109375; 0.437500;, + 0.234375; 0.437500;, + 0.234375; 0.625000;, + 0.500000; 0.812500;, + 0.484375; 0.812500;, + 0.484375; 0.625000;, + 0.500000; 0.625000;, + 0.500000; 0.812500;, + 0.546875; 0.812500;, + 0.546875; 0.625000;, + 0.500000; 0.625000;, + 0.562500; 0.812500;, + 0.546875; 0.812500;, + 0.546875; 0.625000;, + 0.562500; 0.625000;, + 0.546875; 0.812500;, + 0.500000; 0.812500;, + 0.500000; 0.625000;, + 0.546875; 0.625000;, + 0.546875; 0.843750;, + 0.546875; 0.812500;, + 0.500000; 0.812500;, + 0.500000; 0.843750;, + 0.500000; 0.625000;, + 0.500000; 0.593750;, + 0.546875; 0.593750;, + 0.546875; 0.625000;, + 0.671875; 0.812500;, + 0.656250; 0.812500;, + 0.656250; 0.625000;, + 0.671875; 0.625000;, + 0.671875; 0.812500;, + 0.718750; 0.812500;, + 0.718750; 0.625000;, + 0.671875; 0.625000;, + 0.734375; 0.812500;, + 0.718750; 0.812500;, + 0.718750; 0.625000;, + 0.734375; 0.625000;, + 0.718750; 0.812500;, + 0.671875; 0.812500;, + 0.671875; 0.625000;, + 0.718750; 0.625000;, + 0.718750; 0.843750;, + 0.718750; 0.812500;, + 0.671875; 0.812500;, + 0.671875; 0.843750;, + 0.671875; 0.625000;, + 0.671875; 0.593750;, + 0.718750; 0.593750;, + 0.718750; 0.625000;, + 0.578125; 0.812500;, + 0.562500; 0.812500;, + 0.562500; 0.562500;, + 0.578125; 0.562500;, + 0.640625; 0.812500;, + 0.578125; 0.812500;, + 0.578125; 0.562500;, + 0.640625; 0.562500;, + 0.656250; 0.812500;, + 0.640625; 0.812500;, + 0.640625; 0.562500;, + 0.656250; 0.562500;, + 0.640625; 0.812500;, + 0.578125; 0.812500;, + 0.578125; 0.562500;, + 0.640625; 0.562500;, + 0.640625; 0.843750;, + 0.640625; 0.812500;, + 0.578125; 0.812500;, + 0.578125; 0.843750;, + 0.578125; 0.562500;, + 0.578125; 0.531250;, + 0.640625; 0.531250;, + 0.640625; 0.562500;, + 0.703125; 0.437500;, + 0.703125; 0.500000;, + 0.515625; 0.500000;, + 0.515625; 0.437500;, + 0.703125; 0.375000;, + 0.703125; 0.437500;, + 0.515625; 0.437500;, + 0.515625; 0.375000;, + 0.703125; 0.312500;, + 0.703125; 0.375000;, + 0.515625; 0.375000;, + 0.515625; 0.312500;, + 0.703125; 0.250000;, + 0.703125; 0.312500;, + 0.515625; 0.312500;, + 0.515625; 0.250000;, + 0.734375; 0.312500;, + 0.734375; 0.375000;, + 0.703125; 0.375000;, + 0.703125; 0.312500;, + 0.703125; 0.312500;, + 0.703125; 0.250000;, + 0.734375; 0.250000;, + 0.734375; 0.312500;, + 0.734375; 0.312500;, + 0.734375; 0.250000;, + 0.921875; 0.250000;, + 0.921875; 0.312500;, + 0.734375; 0.500000;, + 0.734375; 0.437500;, + 0.921875; 0.437500;, + 0.921875; 0.500000;, + 0.734375; 0.437500;, + 0.734375; 0.375000;, + 0.921875; 0.375000;, + 0.921875; 0.437500;, + 0.734375; 0.375000;, + 0.734375; 0.312500;, + 0.921875; 0.312500;, + 0.921875; 0.375000;, + 0.734375; 0.437500;, + 0.734375; 0.500000;, + 0.703125; 0.500000;, + 0.703125; 0.437500;, + 0.703125; 0.437500;, + 0.703125; 0.375000;, + 0.734375; 0.375000;, + 0.734375; 0.437500;, + 0.046875; 0.250000;, + 0.062500; 0.250000;, + 0.062500; 0.375000;, + 0.046875; 0.375000;, + 0.031250; 0.250000;, + 0.046875; 0.250000;, + 0.046875; 0.375000;, + 0.031250; 0.375000;, + 0.015625; 0.250000;, + 0.031250; 0.250000;, + 0.031250; 0.375000;, + 0.015625; 0.375000;, + 0.000000; 0.250000;, + 0.015625; 0.250000;, + 0.015625; 0.375000;, + 0.000000; 0.375000;, + 0.062500; 0.281250;, + 0.062500; 0.250000;, + 0.078125; 0.250000;, + 0.078125; 0.281250;, + 0.078125; 0.281250;, + 0.078125; 0.312500;, + 0.062500; 0.312500;, + 0.062500; 0.281250;; + } //End of Cube_000 UV Coordinates + XSkinMeshHeader { + 2; + 6; + 10; + } + SkinWeights { + "Armature_Body"; + 168; + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259; + 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.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.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.000001, + 0.000000, + 0.000134, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000134, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000134, + 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.746845, 0.000000, 0.000000, 0.000000, + 0.000000, 0.000000,-0.740784, 0.000000, + 0.000000, 0.740784, 0.000000, 0.000000, + -0.000000,-0.856282,-0.000000, 1.000000;; + } //End of Armature_Body Skin Weights + SkinWeights { + "Armature_Bone_001"; + 24; + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95; + 1.000000, + 0.999144, + 0.999987, + 1.000000, + 0.999144, + 1.000000, + 1.000000, + 0.999987, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.999144, + 1.000000, + 1.000000, + 0.999987, + 1.000000, + 1.000000; + 0.743658, 0.068922,-0.000000, 0.000000, + 0.000000, 0.000000, 0.740784, 0.000000, + 0.068363,-0.737623, 0.000000, 0.000000, + -0.377741, 1.628371,-0.000000, 1.000000;; + } //End of Armature_Bone_001 Skin Weights + SkinWeights { + "Armature_Bone_002"; + 48; + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163; + 0.000000, + 0.000856, + 0.000013, + 0.000000, + 0.000856, + 0.000000, + 0.000000, + 0.000013, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000856, + 0.000000, + 0.000000, + 0.000013, + 0.000000, + 0.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.743577,-0.069792,-0.000000, 0.000000, + 0.000000, 0.000000, 0.740784, 0.000000, + -0.069226,-0.737543, 0.000000, 0.000000, + 0.392568, 1.626715,-0.000001, 1.000000;; + } //End of Armature_Bone_002 Skin Weights + SkinWeights { + "Armature_Bone_003"; + 24; + 284, + 285, + 286, + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307; + 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.746845,-0.000000,-0.000000, 0.000000, + 0.000000, 0.000000, 0.740784, 0.000000, + -0.000000,-0.740784, 0.000000, 0.000000, + 0.144872, 0.917795,-0.000000, 1.000000;; + } //End of Armature_Bone_003 Skin Weights + SkinWeights { + "Armature_Bone_004"; + 24; + 260, + 261, + 262, + 263, + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283; + 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.746845,-0.000000,-0.000000, 0.000000, + 0.000000, 0.000000, 0.740784, 0.000000, + -0.000000,-0.740784, 0.000000, 0.000000, + -0.135397, 0.926692,-0.000000, 1.000000;; + } //End of Armature_Bone_004 Skin Weights + SkinWeights { + "Armature_Bone_005"; + 39; + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 131, + 133, + 134, + 137, + 138, + 139, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331; + 0.088015, + 0.374496, + 0.207032, + 0.066484, + 0.374496, + 0.074593, + 0.049815, + 0.207032, + 0.074593, + 0.049815, + 0.088015, + 0.066484, + 0.074593, + 0.374496, + 0.088015, + 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.746845, 0.000000, 0.000000, 0.000000, + 0.000000, 0.005159,-0.740766, 0.000000, + -0.000000, 0.740766, 0.005159, 0.000000, + 0.002514,-1.721402,-0.134493, 1.000000;; + } //End of Armature_Bone_005 Skin Weights + SkinWeights { + "Armature_Body_001"; + 72; + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259; + 0.999999, + 1.000000, + 0.999866, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.999866, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.999999, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.999999, + 1.000000, + 0.999866, + 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, + 1.000000; + 0.746845,-0.000000,-0.000000, 0.000000, + 0.000000, 0.000000, 0.740784, 0.000000, + 0.000000,-0.740784, 0.000000, 0.000000, + -0.000000, 1.044227,-0.206990, 1.000000;; + } //End of Armature_Body_001 Skin Weights + SkinWeights { + "Armature_Body_002"; + 72; + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71; + 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, + 1.000000, + 1.000000, + 0.999999, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.999999, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.999999, + 1.000000, + 1.000000, + 1.000000; + 0.746845, 0.000000, 0.000000, 0.000000, + -0.000000, 0.000000, 0.740784, 0.000000, + -0.000000,-0.740784, 0.000000, 0.000000, + -0.000000, 1.042009, 0.203380, 1.000000;; + } //End of Armature_Body_002 Skin Weights + SkinWeights { + "Armature_Bone_006"; + 24; + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119; + 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.075705, 0.000000, 0.742998, 0.000000, + -0.000000, 0.740784,-0.000000, 0.000000, + -0.736968, 0.000000, 0.075091, 0.000000, + 2.018875, 0.120365,-0.203181, 1.000000;; + } //End of Armature_Bone_006 Skin Weights + SkinWeights { + "Armature_Bone_007"; + 20; + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139; + 0.911985, + 0.625504, + 0.792968, + 0.933516, + 0.625504, + 0.925407, + 0.950185, + 0.792968, + 0.925407, + 1.000000, + 1.000000, + 0.950185, + 1.000000, + 0.911985, + 0.933516, + 1.000000, + 1.000000, + 0.925407, + 0.625504, + 0.911985; + 0.746845, 0.000000,-0.000001, 0.000000, + -0.000000, 0.606815, 0.424897, 0.000000, + 0.000001,-0.424897, 0.606815, 0.000000, + 0.002511, 1.147970,-1.577121, 1.000000;; + } //End of Armature_Bone_007 Skin Weights + } //End of Cube_000 Mesh + } //End of Sand_monster + } //End of Armature +} //End of Root Frame +AnimationSet { + Animation { + {Armature} + AnimationKey { //Position + 2; + 108; + 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;;; + } + AnimationKey { //Rotation + 0; + 108; + 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;;; + } + AnimationKey { //Scale + 1; + 108; + 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;;; + } + } + Animation { + {Armature_Root} + AnimationKey { //Position + 2; + 108; + 0;3; 0.000000, 0.000000, 0.001246;;, + 1;3; 0.000000, 0.000000, 0.001246;;, + 2;3; 0.000000, 0.000000, 0.001246;;, + 3;3; 0.000000, 0.000000, 0.001246;;, + 4;3; 0.000000, 0.000000, 0.001246;;, + 5;3; 0.000000, 0.000000, 0.001246;;, + 6;3; 0.000000, 0.000000, 0.001246;;, + 7;3; 0.000000, 0.000000, 0.001246;;, + 8;3; 0.000000, 0.000000, 0.001246;;, + 9;3; 0.000000, 0.000000, 0.001246;;, + 10;3; 0.000000, 0.000000, 0.001246;;, + 11;3; 0.000000, 0.000000, 0.001246;;, + 12;3; 0.000000, 0.000000, 0.001246;;, + 13;3; 0.000000, 0.000000, 0.001246;;, + 14;3; 0.000000, 0.000000, 0.001246;;, + 15;3; 0.000000, 0.000000, 0.001246;;, + 16;3; 0.000000, 0.000000, 0.001246;;, + 17;3; 0.000000, 0.000000, 0.001246;;, + 18;3; 0.000000, 0.000000, 0.001246;;, + 19;3; 0.000000, 0.000000, 0.001246;;, + 20;3; 0.000000, 0.000000, 0.001246;;, + 21;3; 0.000000, 0.000000, 0.001246;;, + 22;3; 0.000000, 0.000000, 0.001246;;, + 23;3; 0.000000, 0.000000, 0.001246;;, + 24;3; 0.000000, 0.000000, 0.001246;;, + 25;3; 0.000000, 0.000000, 0.001246;;, + 26;3; 0.000000, 0.000000, 0.001246;;, + 27;3; 0.000000, 0.000000, 0.001246;;, + 28;3; 0.000000, 0.000000, 0.001246;;, + 29;3; 0.000000, 0.000000, 0.001246;;, + 30;3; 0.000000, 0.000000, 0.001246;;, + 31;3; 0.000000, 0.000000, 0.001246;;, + 32;3; 0.000000, 0.000000, 0.001246;;, + 33;3; 0.000000, 0.000000, 0.001246;;, + 34;3; 0.000000, 0.000000, 0.001246;;, + 35;3; 0.000000, 0.000000, 0.001246;;, + 36;3; 0.000000, 0.000000, 0.001246;;, + 37;3; 0.000000, 0.000000, 0.001246;;, + 38;3; 0.000000, 0.000000, 0.001246;;, + 39;3; 0.000000, 0.000000, 0.001246;;, + 40;3; 0.000000, 0.000000, 0.001246;;, + 41;3; 0.000000, 0.000000, 0.001246;;, + 42;3; 0.000000, 0.000000, 0.001246;;, + 43;3; 0.000000, 0.000000, 0.001246;;, + 44;3; 0.000000, 0.000000, 0.001246;;, + 45;3; 0.000000, 0.000000, 0.001246;;, + 46;3; 0.000000, 0.000000, 0.001246;;, + 47;3; 0.000000, 0.000000, 0.001246;;, + 48;3; 0.000000, 0.000000, 0.001246;;, + 49;3; 0.000000, 0.000000, 0.001246;;, + 50;3; 0.000000, 0.000000, 0.001246;;, + 51;3; 0.000000, 0.000000, 0.001246;;, + 52;3; 0.000000, 0.000000, 0.001246;;, + 53;3; 0.000000, 0.000000, 0.001246;;, + 54;3; 0.000000, 0.000000, 0.001246;;, + 55;3; 0.000000, 0.000000, 0.001246;;, + 56;3; 0.000000, 0.000000, 0.001246;;, + 57;3; 0.000000, 0.000000, 0.001246;;, + 58;3; 0.000000, 0.000000, 0.001246;;, + 59;3; 0.000000, 0.000000, 0.001246;;, + 60;3; 0.000000, 0.000000, 0.001246;;, + 61;3; 0.000000, 0.000000, 0.001246;;, + 62;3; 0.000000, 0.000000, 0.001246;;, + 63;3; 0.000000, 0.000000, 0.001246;;, + 64;3; 0.000000, 0.000000, 0.001246;;, + 65;3; 0.000000, 0.000000, 0.001246;;, + 66;3; 0.000000, 0.000000, 0.001246;;, + 67;3; 0.000000, 0.000000, 0.001246;;, + 68;3; 0.000000, 0.000000, 0.001246;;, + 69;3; 0.000000, 0.000000, 0.001246;;, + 70;3; 0.000000, 0.000000, 0.001246;;, + 71;3; 0.000000, 0.000000, 0.001246;;, + 72;3; 0.000000, 0.000000, 0.001246;;, + 73;3; 0.000000, 0.000000, 0.001246;;, + 74;3; 0.000000, 0.000000, 0.001246;;, + 75;3; 0.000000,-0.000000,-0.008573;;, + 76;3; 0.000000,-0.000000,-0.037880;;, + 77;3; 0.000000,-0.000000,-0.084018;;, + 78;3; 0.000000,-0.000000,-0.140222;;, + 79;3; 0.000000,-0.000000,-0.196425;;, + 80;3; 0.000000,-0.000000,-0.242563;;, + 81;3; 0.000000,-0.000000,-0.271870;;, + 82;3; 0.000000,-0.000000,-0.281689;;, + 83;3; 0.000000,-0.000000,-0.271870;;, + 84;3; 0.000000,-0.000000,-0.242563;;, + 85;3; 0.000000,-0.000000,-0.196425;;, + 86;3; 0.000000,-0.000000,-0.140222;;, + 87;3; 0.000000,-0.000000,-0.084018;;, + 88;3; 0.000000,-0.000000,-0.037880;;, + 89;3; 0.000000,-0.000000,-0.008573;;, + 90;3; 0.000000,-0.000000, 0.001246;;, + 91;3; 0.000000,-0.000000,-0.008567;;, + 92;3; 0.000000,-0.000000,-0.037842;;, + 93;3; 0.000000,-0.000000,-0.083914;;, + 94;3; 0.000000,-0.000000,-0.140052;;, + 95;3; 0.000000,-0.000000,-0.196244;;, + 96;3; 0.000000,-0.000000,-0.242440;;, + 97;3; 0.000000,-0.000000,-0.271830;;, + 98;3; 0.000000,-0.000000,-0.281689;;, + 99;3; 0.000000,-0.000000,-0.271755;;, + 100;3; 0.000000,-0.000000,-0.241887;;, + 101;3; 0.000000,-0.000000,-0.194722;;, + 102;3; 0.000000,-0.000000,-0.137587;;, + 103;3; 0.000000,-0.000000,-0.081320;;, + 104;3; 0.000000,-0.000000,-0.036105;;, + 105;3; 0.000000,-0.000000,-0.008005;;, + 106;3; 0.000000, 0.000000, 0.001246;;, + 107;3; 0.000000, 0.000000, 0.001246;;; + } + AnimationKey { //Rotation + 0; + 108; + 0;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 1;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 2;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 3;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 4;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 5;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 6;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 7;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 8;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 9;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 10;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 11;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 12;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 13;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 14;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 15;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 16;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 17;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 18;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 19;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 20;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 21;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 22;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 23;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 24;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 25;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 26;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 27;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 28;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 29;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 30;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 31;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 32;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 33;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 34;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 35;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 36;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 37;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 38;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 39;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 40;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 41;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 42;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 43;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 44;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 45;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 46;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 47;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 48;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 49;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 50;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 51;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 52;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 53;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 54;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 55;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 56;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 57;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 58;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 59;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 60;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 61;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 62;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 63;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 64;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 65;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 66;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 67;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 68;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 69;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 70;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 71;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 72;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 73;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 74;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 75;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 76;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 77;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 78;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 79;4; -0.707107, 0.707107, 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.707107, 0.707107, 0.000000, 0.000000;;, + 83;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 84;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 85;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 86;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 87;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 88;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 89;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 90;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 91;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 92;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 93;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 94;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 95;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 96;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 97;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 98;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 99;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 100;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 101;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 102;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 103;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 104;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 105;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 106;4; -0.707107, 0.707107, 0.000000, 0.000000;;, + 107;4; -0.707107, 0.707107, 0.000000, 0.000000;;; + } + AnimationKey { //Scale + 1; + 108; + 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;;; + } + } + Animation { + {Armature_IK_Right_Leg} + AnimationKey { //Position + 2; + 108; + 0;3; 0.135398, 0.015523, 0.000000;;, + 1;3; 0.135398, 0.015523, 0.000000;;, + 2;3; 0.135398, 0.015523, 0.000000;;, + 3;3; 0.135398, 0.015523, 0.000000;;, + 4;3; 0.135398, 0.015523, 0.000000;;, + 5;3; 0.135398, 0.015523, 0.000000;;, + 6;3; 0.135398, 0.015523, 0.000000;;, + 7;3; 0.135398, 0.015523, 0.000000;;, + 8;3; 0.135398, 0.015523, 0.000000;;, + 9;3; 0.135398, 0.015523, 0.000000;;, + 10;3; 0.135398, 0.015523, 0.000000;;, + 11;3; 0.135398, 0.015523, 0.000000;;, + 12;3; 0.135398, 0.015523, 0.000000;;, + 13;3; 0.135398, 0.015523, 0.000000;;, + 14;3; 0.135398, 0.015523, 0.000000;;, + 15;3; 0.135398, 0.015523, 0.000000;;, + 16;3; 0.135398, 0.015523, 0.000000;;, + 17;3; 0.135398, 0.015523, 0.000000;;, + 18;3; 0.135398, 0.015523, 0.000000;;, + 19;3; 0.135398, 0.015523, 0.000000;;, + 20;3; 0.135398, 0.015523, 0.000000;;, + 21;3; 0.135398, 0.015523, 0.000000;;, + 22;3; 0.135398, 0.015523, 0.000000;;, + 23;3; 0.135398, 0.015523, 0.000000;;, + 24;3; 0.135398, 0.015523, 0.000000;;, + 25;3; 0.135398, 0.015523, 0.000000;;, + 26;3; 0.135398, 0.015523, 0.000000;;, + 27;3; 0.135398, 0.015523, 0.000000;;, + 28;3; 0.135398, 0.015523, 0.000000;;, + 29;3; 0.135398, 0.015523, 0.000000;;, + 30;3; 0.135398, 0.015523, 0.000000;;, + 31;3; 0.135398, 0.015523, 0.000000;;, + 32;3; 0.135398, 0.015523, 0.000000;;, + 33;3; 0.135398, 0.015523, 0.000000;;, + 34;3; 0.135398, 0.015523, 0.000000;;, + 35;3; 0.135398, 0.015523, 0.000000;;, + 36;3; 0.135398, 0.015523, 0.000000;;, + 37;3; 0.135398, 0.015523, 0.000000;;, + 38;3; 0.135398, 0.015523, 0.000000;;, + 39;3; 0.135398, 0.015523, 0.000000;;, + 40;3; 0.135398, 0.015523, 0.000000;;, + 41;3; 0.135398, 0.015523, 0.000000;;, + 42;3; 0.135398, 0.015523, 0.087189;;, + 43;3; 0.135398, 0.015523, 0.162188;;, + 44;3; 0.135398, 0.015523, 0.222434;;, + 45;3; 0.135398, 0.015523, 0.266237;;, + 46;3; 0.135398, 0.015523, 0.293922;;, + 47;3; 0.135398, 0.015523, 0.308311;;, + 48;3; 0.135398, 0.015523, 0.313815;;, + 49;3; 0.135398, 0.015523, 0.314835;;, + 50;3; 0.135398, 0.015523, 0.309148;;, + 51;3; 0.135398, 0.015523, 0.290771;;, + 52;3; 0.135398, 0.015523, 0.258454;;, + 53;3; 0.135398, 0.015523, 0.213080;;, + 54;3; 0.135398, 0.015523, 0.158686;;, + 55;3; 0.135398, 0.015523, 0.101401;;, + 56;3; 0.135398, 0.015523, 0.046755;;, + 57;3; 0.135398, 0.015523,-0.001999;;, + 58;3; 0.135398, 0.015523,-0.051857;;, + 59;3; 0.135398, 0.015523,-0.106460;;, + 60;3; 0.135398, 0.015523,-0.154925;;, + 61;3; 0.135398, 0.015523,-0.206693;;, + 62;3; 0.135398, 0.015523,-0.268486;;, + 63;3; 0.135398, 0.015523,-0.311509;;, + 64;3; 0.135398, 0.015523,-0.330121;;, + 65;3; 0.135398, 0.015523,-0.334719;;, + 66;3; 0.135398, 0.015523,-0.332228;;, + 67;3; 0.135398, 0.015523,-0.322988;;, + 68;3; 0.135398, 0.015523,-0.303845;;, + 69;3; 0.135398, 0.015523,-0.271522;;, + 70;3; 0.135398, 0.015523,-0.223860;;, + 71;3; 0.135398, 0.015523,-0.160993;;, + 72;3; 0.135398, 0.015523,-0.085268;;, + 73;3; 0.135398, 0.015523, 0.000000;;, + 74;3; 0.135398, 0.015523, 0.000000;;, + 75;3; 0.135398, 0.021308, 0.095588;;, + 76;3; 0.135398, 0.038571, 0.206502;;, + 77;3; 0.135398, 0.065746, 0.326063;;, + 78;3; 0.135398, 0.098852, 0.443345;;, + 79;3; 0.135398, 0.131970, 0.545509;;, + 80;3; 0.135398, 0.159170, 0.622083;;, + 81;3; 0.135398, 0.176457, 0.667861;;, + 82;3; 0.135398, 0.182252, 0.682612;;, + 83;3; 0.135398, 0.181203, 0.666972;;, + 84;3; 0.135398, 0.177911, 0.618550;;, + 85;3; 0.135398, 0.172332, 0.537822;;, + 86;3; 0.135398, 0.164785, 0.430589;;, + 87;3; 0.135398, 0.155990, 0.308211;;, + 88;3; 0.135398, 0.146856, 0.184430;;, + 89;3; 0.135398, 0.138160, 0.070810;;, + 90;3; 0.135398, 0.130378,-0.025691;;, + 91;3; 0.135398, 0.122923,-0.121019;;, + 92;3; 0.135398, 0.115040,-0.231131;;, + 93;3; 0.135398, 0.106791,-0.349520;;, + 94;3; 0.135398, 0.098329,-0.465728;;, + 95;3; 0.135398, 0.089877,-0.567400;;, + 96;3; 0.135398, 0.081658,-0.644145;;, + 97;3; 0.135398, 0.073821,-0.690390;;, + 98;3; 0.135398, 0.066422,-0.705393;;, + 99;3; 0.135398, 0.058693,-0.689356;;, + 100;3; 0.135398, 0.050027,-0.639602;;, + 101;3; 0.135398, 0.040924,-0.556855;;, + 102;3; 0.135398, 0.032220,-0.447937;;, + 103;3; 0.135398, 0.024869,-0.325462;;, + 104;3; 0.135398, 0.019552,-0.203592;;, + 105;3; 0.135398, 0.016483,-0.093171;;, + 106;3; 0.135398, 0.015523, 0.000000;;, + 107;3; 0.152259, 0.021305, 0.053347;;; + } + AnimationKey { //Rotation + 0; + 108; + 0;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 1;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 2;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 3;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 4;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 5;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 6;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 7;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 8;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 9;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 10;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 11;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 12;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 13;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 14;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 15;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 16;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 17;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 18;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 19;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 20;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 21;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 22;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 23;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 24;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 25;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 26;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 27;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 28;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 29;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 30;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 31;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 32;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 33;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 34;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 35;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 36;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 37;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 38;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 39;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 40;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 41;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 42;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 43;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 44;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 45;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 46;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 47;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 48;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 49;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 50;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 51;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 52;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 53;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 54;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 55;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 56;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 57;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 58;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 59;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 60;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 61;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 62;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 63;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 64;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 65;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 66;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 67;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 68;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 69;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 70;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 71;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 72;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 73;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 74;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 75;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 76;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 77;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 78;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 79;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 80;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 81;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 82;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 83;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 84;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 85;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 86;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 87;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 88;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 89;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 90;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 91;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 92;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 93;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 94;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 95;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 96;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 97;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 98;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 99;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 100;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 101;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 102;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 103;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 104;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 105;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 106;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 107;4; -0.000000, 1.000000, 0.000000,-0.000000;;; + } + AnimationKey { //Scale + 1; + 108; + 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;;; + } + } + Animation { + {Armature_IK_Left_Leg} + AnimationKey { //Position + 2; + 108; + 0;3; -0.148583, 0.015523, 0.000000;;, + 1;3; -0.148583, 0.015523, 0.000000;;, + 2;3; -0.148583, 0.015523, 0.000000;;, + 3;3; -0.148583, 0.015523, 0.000000;;, + 4;3; -0.148583, 0.015523, 0.000000;;, + 5;3; -0.148583, 0.015523, 0.000000;;, + 6;3; -0.148583, 0.015523, 0.000000;;, + 7;3; -0.148583, 0.015523, 0.000000;;, + 8;3; -0.148583, 0.015523, 0.000000;;, + 9;3; -0.148583, 0.015523, 0.000000;;, + 10;3; -0.148583, 0.015523, 0.000000;;, + 11;3; -0.148583, 0.015523, 0.000000;;, + 12;3; -0.148583, 0.015523, 0.000000;;, + 13;3; -0.148583, 0.015523, 0.000000;;, + 14;3; -0.148583, 0.015523, 0.000000;;, + 15;3; -0.148583, 0.015523, 0.000000;;, + 16;3; -0.148583, 0.015523, 0.000000;;, + 17;3; -0.148583, 0.015523, 0.000000;;, + 18;3; -0.148583, 0.015523, 0.000000;;, + 19;3; -0.148583, 0.015523, 0.000000;;, + 20;3; -0.148583, 0.015523, 0.000000;;, + 21;3; -0.148583, 0.015523, 0.000000;;, + 22;3; -0.148583, 0.015523, 0.000000;;, + 23;3; -0.148583, 0.015523, 0.000000;;, + 24;3; -0.148583, 0.015523, 0.000000;;, + 25;3; -0.148583, 0.015523, 0.000000;;, + 26;3; -0.148583, 0.015523, 0.000000;;, + 27;3; -0.148583, 0.015523, 0.000000;;, + 28;3; -0.148583, 0.015523, 0.000000;;, + 29;3; -0.148583, 0.015523, 0.000000;;, + 30;3; -0.148583, 0.015523, 0.000000;;, + 31;3; -0.148583, 0.015523, 0.000000;;, + 32;3; -0.148583, 0.015523, 0.000000;;, + 33;3; -0.148583, 0.015523, 0.000000;;, + 34;3; -0.148583, 0.015523, 0.000000;;, + 35;3; -0.148583, 0.015523, 0.000000;;, + 36;3; -0.148583, 0.015523, 0.000000;;, + 37;3; -0.148583, 0.015523, 0.000000;;, + 38;3; -0.148583, 0.015523, 0.000000;;, + 39;3; -0.148583, 0.015523, 0.000000;;, + 40;3; -0.148583, 0.015523, 0.000000;;, + 41;3; -0.148583, 0.015523, 0.000000;;, + 42;3; -0.148583, 0.015523,-0.090308;;, + 43;3; -0.148583, 0.015523,-0.169272;;, + 44;3; -0.148583, 0.015523,-0.234146;;, + 45;3; -0.148583, 0.015523,-0.282853;;, + 46;3; -0.148583, 0.015523,-0.315143;;, + 47;3; -0.148583, 0.015523,-0.333217;;, + 48;3; -0.148583, 0.015523,-0.341039;;, + 49;3; -0.148583, 0.015523,-0.342830;;, + 50;3; -0.148583, 0.015523,-0.336980;;, + 51;3; -0.148583, 0.015523,-0.318078;;, + 52;3; -0.148583, 0.015523,-0.284836;;, + 53;3; -0.148583, 0.015523,-0.238166;;, + 54;3; -0.148583, 0.015523,-0.182217;;, + 55;3; -0.148583, 0.015523,-0.123293;;, + 56;3; -0.148583, 0.015523,-0.067082;;, + 57;3; -0.148583, 0.015523,-0.016933;;, + 58;3; -0.148583, 0.015523, 0.034348;;, + 59;3; -0.148583, 0.015523, 0.090509;;, + 60;3; -0.148583, 0.015523, 0.140371;;, + 61;3; -0.148583, 0.015523, 0.193625;;, + 62;3; -0.148583, 0.015523, 0.257180;;, + 63;3; -0.148583, 0.015523, 0.301524;;, + 64;3; -0.148583, 0.015523, 0.320745;;, + 65;3; -0.148583, 0.015523, 0.325497;;, + 66;3; -0.148583, 0.015523, 0.323525;;, + 67;3; -0.148583, 0.015523, 0.315809;;, + 68;3; -0.148583, 0.015523, 0.299009;;, + 69;3; -0.148583, 0.015523, 0.269414;;, + 70;3; -0.148583, 0.015523, 0.224199;;, + 71;3; -0.148583, 0.015523, 0.162782;;, + 72;3; -0.148583, 0.015523, 0.087006;;, + 73;3; -0.148583, 0.015523, 0.000000;;, + 74;3; -0.148583, 0.015523, 0.000000;;, + 75;3; -0.148583, 0.019677,-0.099088;;, + 76;3; -0.148583, 0.032074,-0.215379;;, + 77;3; -0.148583, 0.051589,-0.341752;;, + 78;3; -0.148583, 0.075362,-0.466453;;, + 79;3; -0.148583, 0.099140,-0.575568;;, + 80;3; -0.148583, 0.118665,-0.657638;;, + 81;3; -0.148583, 0.131070,-0.706840;;, + 82;3; -0.148583, 0.135227,-0.722727;;, + 83;3; -0.148583, 0.134475,-0.707252;;, + 84;3; -0.148583, 0.132113,-0.659277;;, + 85;3; -0.148583, 0.128109,-0.579134;;, + 86;3; -0.148583, 0.122691,-0.472371;;, + 87;3; -0.148583, 0.116377,-0.350035;;, + 88;3; -0.148583, 0.109818,-0.225621;;, + 89;3; -0.148583, 0.103574,-0.110588;;, + 90;3; -0.148583, 0.097987,-0.011924;;, + 91;3; -0.148583, 0.092634, 0.086791;;, + 92;3; -0.148583, 0.086975, 0.201930;;, + 93;3; -0.148583, 0.081052, 0.326595;;, + 94;3; -0.148583, 0.074976, 0.449630;;, + 95;3; -0.148583, 0.068908, 0.557766;;, + 96;3; -0.148583, 0.063007, 0.639718;;, + 97;3; -0.148583, 0.057380, 0.689273;;, + 98;3; -0.148583, 0.052068, 0.705393;;, + 99;3; -0.148583, 0.046518, 0.689573;;, + 100;3; -0.148583, 0.040296, 0.640453;;, + 101;3; -0.148583, 0.033760, 0.558641;;, + 102;3; -0.148583, 0.027511, 0.450678;;, + 103;3; -0.148583, 0.022233, 0.328767;;, + 104;3; -0.148583, 0.018415, 0.206706;;, + 105;3; -0.148583, 0.016213, 0.095177;;, + 106;3; -0.148583, 0.015523, 0.000000;;, + 107;3; -0.156161, 0.012832,-0.060350;;; + } + AnimationKey { //Rotation + 0; + 108; + 0;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 1;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 2;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 3;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 4;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 5;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 6;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 7;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 8;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 9;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 10;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 11;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 12;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 13;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 14;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 15;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 16;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 17;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 18;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 19;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 20;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 21;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 22;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 23;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 24;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 25;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 26;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 27;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 28;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 29;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 30;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 31;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 32;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 33;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 34;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 35;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 36;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 37;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 38;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 39;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 40;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 41;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 42;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 43;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 44;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 45;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 46;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 47;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 48;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 49;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 50;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 51;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 52;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 53;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 54;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 55;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 56;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 57;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 58;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 59;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 60;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 61;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 62;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 63;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 64;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 65;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 66;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 67;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 68;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 69;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 70;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 71;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 72;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 73;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 74;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 75;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 76;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 77;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 78;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 79;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 80;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 81;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 82;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 83;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 84;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 85;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 86;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 87;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 88;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 89;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 90;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 91;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 92;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 93;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 94;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 95;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 96;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 97;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 98;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 99;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 100;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 101;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 102;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 103;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 104;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 105;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 106;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 107;4; -0.000000, 1.000000, 0.000000,-0.000000;;; + } + AnimationKey { //Scale + 1; + 108; + 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;;; + } + } + Animation { + {Armature_IK_Left_Hand} + AnimationKey { //Position + 2; + 108; + 0;3; -0.316097, 0.754556, 0.000000;;, + 1;3; -0.316097, 0.754556,-0.000553;;, + 2;3; -0.316097, 0.754556,-0.002272;;, + 3;3; -0.316097, 0.754556,-0.005193;;, + 4;3; -0.316097, 0.754556,-0.009241;;, + 5;3; -0.316097, 0.754556,-0.014196;;, + 6;3; -0.316097, 0.754556,-0.019709;;, + 7;3; -0.316097, 0.754556,-0.025373;;, + 8;3; -0.316097, 0.754556,-0.030822;;, + 9;3; -0.316097, 0.754556,-0.035797;;, + 10;3; -0.316097, 0.754556,-0.040148;;, + 11;3; -0.316097, 0.754556,-0.044499;;, + 12;3; -0.316097, 0.754556,-0.049474;;, + 13;3; -0.316097, 0.754556,-0.054923;;, + 14;3; -0.316097, 0.754556,-0.060587;;, + 15;3; -0.316097, 0.754556,-0.066100;;, + 16;3; -0.316097, 0.754556,-0.071055;;, + 17;3; -0.316097, 0.754556,-0.075103;;, + 18;3; -0.316097, 0.754556,-0.078023;;, + 19;3; -0.316097, 0.754556,-0.079743;;, + 20;3; -0.316097, 0.754556,-0.080296;;, + 21;3; -0.316097, 0.754556,-0.080289;;, + 22;3; -0.316097, 0.754556,-0.080236;;, + 23;3; -0.316097, 0.754556,-0.080073;;, + 24;3; -0.316097, 0.754556,-0.079720;;, + 25;3; -0.316097, 0.754556,-0.079093;;, + 26;3; -0.316097, 0.754556,-0.078123;;, + 27;3; -0.316097, 0.754556,-0.076777;;, + 28;3; -0.316097, 0.754556,-0.075061;;, + 29;3; -0.316097, 0.754556,-0.073009;;, + 30;3; -0.316097, 0.754556,-0.070670;;, + 31;3; -0.316097, 0.754556,-0.067890;;, + 32;3; -0.316097, 0.754556,-0.064517;;, + 33;3; -0.316097, 0.754556,-0.060592;;, + 34;3; -0.316097, 0.754556,-0.056133;;, + 35;3; -0.316097, 0.754556,-0.051142;;, + 36;3; -0.316097, 0.754556,-0.045596;;, + 37;3; -0.316097, 0.754556,-0.039444;;, + 38;3; -0.316097, 0.754556,-0.032578;;, + 39;3; -0.316097, 0.754556,-0.024774;;, + 40;3; -0.316097, 0.754556,-0.015466;;, + 41;3; -0.316097, 0.754556, 0.000000;;, + 42;3; -0.316097, 0.754556, 0.059460;;, + 43;3; -0.316097, 0.754556, 0.141717;;, + 44;3; -0.316097, 0.754556, 0.230109;;, + 45;3; -0.316097, 0.754556, 0.314858;;, + 46;3; -0.316097, 0.754556, 0.389209;;, + 47;3; -0.316097, 0.754556, 0.447871;;, + 48;3; -0.316097, 0.754556, 0.486247;;, + 49;3; -0.316097, 0.754556, 0.500000;;, + 50;3; -0.316097, 0.754556, 0.489995;;, + 51;3; -0.316097, 0.754556, 0.458566;;, + 52;3; -0.316097, 0.754556, 0.405218;;, + 53;3; -0.316097, 0.754556, 0.332884;;, + 54;3; -0.316097, 0.754556, 0.248325;;, + 55;3; -0.316097, 0.754556, 0.160156;;, + 56;3; -0.316097, 0.754556, 0.075835;;, + 57;3; -0.316097, 0.754556, 0.000000;;, + 58;3; -0.316097, 0.754556,-0.077935;;, + 59;3; -0.316097, 0.754556,-0.162805;;, + 60;3; -0.316097, 0.754556,-0.236963;;, + 61;3; -0.316097, 0.754556,-0.307531;;, + 62;3; -0.316097, 0.754556,-0.382085;;, + 63;3; -0.316097, 0.754556,-0.446637;;, + 64;3; -0.316097, 0.754556,-0.487225;;, + 65;3; -0.316097, 0.754556,-0.500000;;, + 66;3; -0.316097, 0.754556,-0.484078;;, + 67;3; -0.316097, 0.754556,-0.440649;;, + 68;3; -0.316097, 0.754556,-0.375753;;, + 69;3; -0.316097, 0.754556,-0.295300;;, + 70;3; -0.316097, 0.754556,-0.205809;;, + 71;3; -0.316097, 0.754556,-0.115669;;, + 72;3; -0.316097, 0.754556,-0.038027;;, + 73;3; -0.316097, 0.754556, 0.000000;;, + 74;3; -0.280185, 1.779512,-1.040664;;, + 75;3; -0.280185, 1.791992,-1.040664;;, + 76;3; -0.280185, 1.829242,-1.040664;;, + 77;3; -0.280185, 1.887885,-1.040664;;, + 78;3; -0.280185, 1.959322,-1.040664;;, + 79;3; -0.280185, 2.030761,-1.040664;;, + 80;3; -0.280185, 2.089408,-1.040664;;, + 81;3; -0.280185, 2.126663,-1.040664;;, + 82;3; -0.280185, 2.139145,-1.040664;;, + 83;3; -0.280185, 2.127405,-1.040664;;, + 84;3; -0.280185, 2.092366,-1.040664;;, + 85;3; -0.280185, 2.037206,-1.040664;;, + 86;3; -0.280185, 1.970016,-1.040664;;, + 87;3; -0.280185, 1.902828,-1.040664;;, + 88;3; -0.280185, 1.847672,-1.040664;;, + 89;3; -0.280185, 1.812637,-1.040664;;, + 90;3; -0.280185, 1.800899,-1.040664;;, + 91;3; -0.280185, 1.811608,-1.040664;;, + 92;3; -0.280185, 1.843557,-1.040664;;, + 93;3; -0.280185, 1.893841,-1.040664;;, + 94;3; -0.280185, 1.955109,-1.040664;;, + 95;3; -0.280185, 2.016426,-1.040664;;, + 96;3; -0.280185, 2.066823,-1.040664;;, + 97;3; -0.280185, 2.098878,-1.040664;;, + 98;3; -0.280185, 2.109629,-1.040664;;, + 99;3; -0.280185, 2.098046,-1.040664;;, + 100;3; -0.280185, 2.063213,-1.040664;;, + 101;3; -0.280185, 2.008193,-1.040664;;, + 102;3; -0.280185, 1.941528,-1.040664;;, + 103;3; -0.280185, 1.875865,-1.040664;;, + 104;3; -0.280185, 1.823099,-1.040664;;, + 105;3; -0.280185, 1.790307,-1.040664;;, + 106;3; -0.280185, 1.779512,-1.040664;;, + 107;3; -0.296230, 1.779106,-1.035724;;; + } + AnimationKey { //Rotation + 0; + 108; + 0;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 1;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 2;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 3;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 4;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 5;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 6;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 7;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 8;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 9;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 10;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 11;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 12;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 13;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 14;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 15;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 16;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 17;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 18;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 19;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 20;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 21;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 22;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 23;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 24;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 25;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 26;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 27;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 28;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 29;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 30;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 31;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 32;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 33;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 34;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 35;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 36;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 37;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 38;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 39;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 40;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 41;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 42;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 43;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 44;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 45;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 46;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 47;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 48;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 49;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 50;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 51;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 52;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 53;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 54;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 55;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 56;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 57;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 58;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 59;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 60;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 61;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 62;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 63;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 64;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 65;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 66;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 67;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 68;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 69;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 70;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 71;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 72;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 73;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 74;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 75;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 76;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 77;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 78;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 79;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 80;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 81;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 82;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 83;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 84;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 85;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 86;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 87;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 88;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 89;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 90;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 91;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 92;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 93;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 94;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 95;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 96;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 97;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 98;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 99;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 100;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 101;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 102;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 103;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 104;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 105;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 106;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 107;4; -0.000000, 1.000000, 0.000000,-0.000000;;; + } + AnimationKey { //Scale + 1; + 108; + 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;;; + } + } + Animation { + {Armature_IK_Right_hand} + AnimationKey { //Position + 2; + 108; + 0;3; 0.304691, 0.744702, 0.000000;;, + 1;3; 0.304691, 0.744702,-0.000157;;, + 2;3; 0.304691, 0.744702,-0.000649;;, + 3;3; 0.304691, 0.744702,-0.001493;;, + 4;3; 0.304691, 0.744702,-0.002680;;, + 5;3; 0.304691, 0.744702,-0.004156;;, + 6;3; 0.304691, 0.744702,-0.005831;;, + 7;3; 0.304691, 0.744702,-0.007595;;, + 8;3; 0.304691, 0.744702,-0.009345;;, + 9;3; 0.304691, 0.744702,-0.011001;;, + 10;3; 0.304691, 0.744702,-0.012516;;, + 11;3; 0.304691, 0.744702,-0.014113;;, + 12;3; 0.304691, 0.744702,-0.016015;;, + 13;3; 0.304691, 0.744702,-0.018164;;, + 14;3; 0.304691, 0.744702,-0.020452;;, + 15;3; 0.304691, 0.744702,-0.022720;;, + 16;3; 0.304691, 0.744702,-0.024788;;, + 17;3; 0.304691, 0.744702,-0.026497;;, + 18;3; 0.304691, 0.744702,-0.027742;;, + 19;3; 0.304691, 0.744702,-0.028480;;, + 20;3; 0.304691, 0.744702,-0.028719;;, + 21;3; 0.304691, 0.744702,-0.028537;;, + 22;3; 0.304691, 0.744702,-0.027970;;, + 23;3; 0.304691, 0.744702,-0.027003;;, + 24;3; 0.304691, 0.744702,-0.025658;;, + 25;3; 0.304691, 0.744702,-0.024003;;, + 26;3; 0.304691, 0.744702,-0.022149;;, + 27;3; 0.304691, 0.744702,-0.020229;;, + 28;3; 0.304691, 0.744702,-0.018363;;, + 29;3; 0.304691, 0.744702,-0.016638;;, + 30;3; 0.304691, 0.744702,-0.015105;;, + 31;3; 0.304691, 0.744702,-0.013623;;, + 32;3; 0.304691, 0.744702,-0.012053;;, + 33;3; 0.304691, 0.744702,-0.010419;;, + 34;3; 0.304691, 0.744702,-0.008746;;, + 35;3; 0.304691, 0.744702,-0.007059;;, + 36;3; 0.304691, 0.744702,-0.005387;;, + 37;3; 0.304691, 0.744702,-0.003770;;, + 38;3; 0.304691, 0.744702,-0.002265;;, + 39;3; 0.304691, 0.744702,-0.000977;;, + 40;3; 0.304691, 0.744702,-0.000156;;, + 41;3; 0.304691, 0.744702, 0.000000;;, + 42;3; 0.304691, 0.744702,-0.033814;;, + 43;3; 0.304691, 0.744702,-0.108158;;, + 44;3; 0.304691, 0.744702,-0.198239;;, + 45;3; 0.304691, 0.744702,-0.289641;;, + 46;3; 0.304691, 0.744702,-0.372553;;, + 47;3; 0.304691, 0.744702,-0.439437;;, + 48;3; 0.304691, 0.744702,-0.483890;;, + 49;3; 0.304691, 0.744702,-0.500000;;, + 50;3; 0.304691, 0.744702,-0.489994;;, + 51;3; 0.304691, 0.744702,-0.458565;;, + 52;3; 0.304691, 0.744702,-0.405217;;, + 53;3; 0.304691, 0.744702,-0.332884;;, + 54;3; 0.304691, 0.744702,-0.248324;;, + 55;3; 0.304691, 0.744702,-0.160156;;, + 56;3; 0.304691, 0.744702,-0.075834;;, + 57;3; 0.304691, 0.744702, 0.000000;;, + 58;3; 0.304691, 0.744702, 0.077935;;, + 59;3; 0.304691, 0.744702, 0.162806;;, + 60;3; 0.304691, 0.744702, 0.236963;;, + 61;3; 0.304691, 0.744702, 0.307532;;, + 62;3; 0.304691, 0.744702, 0.382086;;, + 63;3; 0.304691, 0.744702, 0.446638;;, + 64;3; 0.304691, 0.744702, 0.487225;;, + 65;3; 0.304691, 0.744702, 0.500000;;, + 66;3; 0.304691, 0.744702, 0.499392;;, + 67;3; 0.304691, 0.744702, 0.495075;;, + 68;3; 0.304691, 0.744702, 0.482976;;, + 69;3; 0.304691, 0.744702, 0.458109;;, + 70;3; 0.304691, 0.744702, 0.413662;;, + 71;3; 0.304691, 0.744702, 0.339134;;, + 72;3; 0.304691, 0.744702, 0.215665;;, + 73;3; 0.304691, 0.744702, 0.000000;;, + 74;3; 0.340603, 1.781662,-1.045200;;, + 75;3; 0.340603, 1.791563,-1.045200;;, + 76;3; 0.340603, 1.821117,-1.045200;;, + 77;3; 0.340603, 1.867644,-1.045200;;, + 78;3; 0.340603, 1.924320,-1.045200;;, + 79;3; 0.340603, 1.980997,-1.045200;;, + 80;3; 0.340603, 2.027524,-1.045200;;, + 81;3; 0.340603, 2.057079,-1.045200;;, + 82;3; 0.340603, 2.066980,-1.045200;;, + 83;3; 0.340603, 2.059355,-1.045200;;, + 84;3; 0.340603, 2.036595,-1.045200;;, + 85;3; 0.340603, 2.000763,-1.045200;;, + 86;3; 0.340603, 1.957116,-1.045200;;, + 87;3; 0.340603, 1.913468,-1.045200;;, + 88;3; 0.340603, 1.877638,-1.045200;;, + 89;3; 0.340603, 1.854878,-1.045200;;, + 90;3; 0.340603, 1.847253,-1.045200;;, + 91;3; 0.340603, 1.856014,-1.045200;;, + 92;3; 0.340603, 1.882160,-1.045200;;, + 93;3; 0.340603, 1.923317,-1.045200;;, + 94;3; 0.340603, 1.973458,-1.045200;;, + 95;3; 0.340603, 2.023617,-1.045200;;, + 96;3; 0.340603, 2.064815,-1.045200;;, + 97;3; 0.340603, 2.090999,-1.045200;;, + 98;3; 0.340603, 2.099775,-1.045200;;, + 99;3; 0.340603, 2.088636,-1.045200;;, + 100;3; 0.340603, 2.055114,-1.045200;;, + 101;3; 0.340603, 2.002126,-1.045200;;, + 102;3; 0.340603, 1.937877,-1.045200;;, + 103;3; 0.340603, 1.874564,-1.045200;;, + 104;3; 0.340603, 1.823682,-1.045200;;, + 105;3; 0.340603, 1.792067,-1.045200;;, + 106;3; 0.340603, 1.781662,-1.045200;;, + 107;3; 0.347242, 1.784378,-1.046669;;; + } + AnimationKey { //Rotation + 0; + 108; + 0;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 1;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 2;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 3;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 4;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 5;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 6;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 7;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 8;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 9;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 10;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 11;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 12;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 13;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 14;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 15;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 16;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 17;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 18;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 19;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 20;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 21;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 22;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 23;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 24;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 25;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 26;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 27;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 28;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 29;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 30;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 31;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 32;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 33;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 34;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 35;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 36;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 37;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 38;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 39;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 40;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 41;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 42;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 43;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 44;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 45;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 46;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 47;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 48;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 49;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 50;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 51;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 52;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 53;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 54;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 55;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 56;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 57;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 58;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 59;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 60;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 61;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 62;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 63;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 64;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 65;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 66;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 67;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 68;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 69;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 70;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 71;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 72;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 73;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 74;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 75;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 76;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 77;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 78;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 79;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 80;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 81;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 82;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 83;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 84;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 85;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 86;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 87;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 88;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 89;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 90;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 91;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 92;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 93;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 94;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 95;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 96;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 97;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 98;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 99;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 100;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 101;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 102;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 103;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 104;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 105;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 106;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 107;4; -0.000000, 1.000000, 0.000000,-0.000000;;; + } + AnimationKey { //Scale + 1; + 108; + 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;;; + } + } + Animation { + {Armature_Body} + AnimationKey { //Position + 2; + 108; + 0;3; 0.000000, 0.855036, 0.000000;;, + 1;3; 0.000000, 0.855036, 0.000000;;, + 2;3; 0.000000, 0.855036, 0.000000;;, + 3;3; 0.000000, 0.855036, 0.000000;;, + 4;3; 0.000000, 0.855036, 0.000000;;, + 5;3; 0.000000, 0.855036, 0.000000;;, + 6;3; 0.000000, 0.855036, 0.000000;;, + 7;3; 0.000000, 0.855036, 0.000000;;, + 8;3; 0.000000, 0.855036, 0.000000;;, + 9;3; 0.000000, 0.855036, 0.000000;;, + 10;3; 0.000000, 0.855036, 0.000000;;, + 11;3; 0.000000, 0.855036, 0.000000;;, + 12;3; 0.000000, 0.855036, 0.000000;;, + 13;3; 0.000000, 0.855036, 0.000000;;, + 14;3; 0.000000, 0.855036, 0.000000;;, + 15;3; 0.000000, 0.855036, 0.000000;;, + 16;3; 0.000000, 0.855036, 0.000000;;, + 17;3; 0.000000, 0.855036, 0.000000;;, + 18;3; 0.000000, 0.855036, 0.000000;;, + 19;3; 0.000000, 0.855036, 0.000000;;, + 20;3; 0.000000, 0.855036, 0.000000;;, + 21;3; 0.000000, 0.855036, 0.000000;;, + 22;3; 0.000000, 0.855036, 0.000000;;, + 23;3; 0.000000, 0.855036, 0.000000;;, + 24;3; 0.000000, 0.855036, 0.000000;;, + 25;3; 0.000000, 0.855036, 0.000000;;, + 26;3; 0.000000, 0.855036, 0.000000;;, + 27;3; 0.000000, 0.855036, 0.000000;;, + 28;3; 0.000000, 0.855036, 0.000000;;, + 29;3; 0.000000, 0.855036, 0.000000;;, + 30;3; 0.000000, 0.855036, 0.000000;;, + 31;3; 0.000000, 0.855036, 0.000000;;, + 32;3; 0.000000, 0.855036, 0.000000;;, + 33;3; 0.000000, 0.855036, 0.000000;;, + 34;3; 0.000000, 0.855036, 0.000000;;, + 35;3; 0.000000, 0.855036, 0.000000;;, + 36;3; 0.000000, 0.855036, 0.000000;;, + 37;3; 0.000000, 0.855036, 0.000000;;, + 38;3; 0.000000, 0.855036, 0.000000;;, + 39;3; 0.000000, 0.855036, 0.000000;;, + 40;3; 0.000000, 0.855036, 0.000000;;, + 41;3; 0.000000, 0.855036, 0.000000;;, + 42;3; 0.000000, 0.855036, 0.000000;;, + 43;3; 0.000000, 0.855036, 0.000000;;, + 44;3; 0.000000, 0.855036, 0.000000;;, + 45;3; 0.000000, 0.855036, 0.000000;;, + 46;3; 0.000000, 0.855036, 0.000000;;, + 47;3; 0.000000, 0.855036, 0.000000;;, + 48;3; 0.000000, 0.855036, 0.000000;;, + 49;3; 0.000000, 0.855036, 0.000000;;, + 50;3; 0.000000, 0.855036, 0.000000;;, + 51;3; 0.000000, 0.855036, 0.000000;;, + 52;3; 0.000000, 0.855036, 0.000000;;, + 53;3; 0.000000, 0.855036, 0.000000;;, + 54;3; 0.000000, 0.855036, 0.000000;;, + 55;3; 0.000000, 0.855036, 0.000000;;, + 56;3; 0.000000, 0.855036, 0.000000;;, + 57;3; 0.000000, 0.855036, 0.000000;;, + 58;3; 0.000000, 0.855036, 0.000000;;, + 59;3; 0.000000, 0.855036, 0.000000;;, + 60;3; 0.000000, 0.855036, 0.000000;;, + 61;3; 0.000000, 0.855036, 0.000000;;, + 62;3; 0.000000, 0.855036, 0.000000;;, + 63;3; 0.000000, 0.855036, 0.000000;;, + 64;3; 0.000000, 0.855036, 0.000000;;, + 65;3; 0.000000, 0.855036, 0.000000;;, + 66;3; 0.000000, 0.855036, 0.000000;;, + 67;3; 0.000000, 0.855036, 0.000000;;, + 68;3; 0.000000, 0.855036, 0.000000;;, + 69;3; 0.000000, 0.855036, 0.000000;;, + 70;3; 0.000000, 0.855036, 0.000000;;, + 71;3; 0.000000, 0.855036, 0.000000;;, + 72;3; 0.000000, 0.855036, 0.000000;;, + 73;3; 0.000000, 0.855036, 0.000000;;, + 74;3; 0.000000, 1.033846, 0.000000;;, + 75;3; 0.000000, 1.033846, 0.000000;;, + 76;3; 0.000000, 1.033846, 0.000000;;, + 77;3; 0.000000, 1.033846, 0.000000;;, + 78;3; 0.000000, 1.033846, 0.000000;;, + 79;3; 0.000000, 1.033846, 0.000000;;, + 80;3; 0.000000, 1.033846, 0.000000;;, + 81;3; 0.000000, 1.033846, 0.000000;;, + 82;3; 0.000000, 1.033846, 0.000000;;, + 83;3; 0.000000, 1.033846, 0.000000;;, + 84;3; 0.000000, 1.033846, 0.000000;;, + 85;3; 0.000000, 1.033846, 0.000000;;, + 86;3; 0.000000, 1.033846, 0.000000;;, + 87;3; 0.000000, 1.033846, 0.000000;;, + 88;3; 0.000000, 1.033846, 0.000000;;, + 89;3; 0.000000, 1.033846, 0.000000;;, + 90;3; 0.000000, 1.033846, 0.000000;;, + 91;3; 0.000000, 1.033846, 0.000000;;, + 92;3; 0.000000, 1.033846, 0.000000;;, + 93;3; 0.000000, 1.033846, 0.000000;;, + 94;3; 0.000000, 1.033846, 0.000000;;, + 95;3; 0.000000, 1.033846, 0.000000;;, + 96;3; 0.000000, 1.033846, 0.000000;;, + 97;3; 0.000000, 1.033846, 0.000000;;, + 98;3; 0.000000, 1.033846, 0.000000;;, + 99;3; 0.000000, 1.033846, 0.000000;;, + 100;3; 0.000000, 1.033846, 0.000000;;, + 101;3; 0.000000, 1.033846, 0.000000;;, + 102;3; 0.000000, 1.033846, 0.000000;;, + 103;3; 0.000000, 1.033846, 0.000000;;, + 104;3; 0.000000, 1.033846, 0.000000;;, + 105;3; 0.000000, 1.033846, 0.000000;;, + 106;3; 0.000000, 1.033846, 0.000000;;, + 107;3; 0.000000, 1.033846, 0.000000;;; + } + AnimationKey { //Rotation + 0; + 108; + 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; -0.998689,-0.051182,-0.000000, 0.000000;;, + 75;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 76;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 77;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 78;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 79;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 80;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 81;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 82;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 83;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 84;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 85;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 86;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 87;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 88;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 89;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 90;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 91;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 92;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 93;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 94;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 95;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 96;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 97;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 98;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 99;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 100;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 101;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 102;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 103;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 104;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 105;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 106;4; -0.998689,-0.051182,-0.000000, 0.000000;;, + 107;4; -0.998689,-0.051182,-0.000000, 0.000000;;; + } + AnimationKey { //Scale + 1; + 108; + 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;;; + } + } + Animation { + {Armature_Bone_001} + AnimationKey { //Position + 2; + 108; + 0;3; 0.225856, 0.800000, 0.000000;;, + 1;3; 0.225856, 0.800000, 0.000000;;, + 2;3; 0.225856, 0.800000, 0.000000;;, + 3;3; 0.225856, 0.800000, 0.000000;;, + 4;3; 0.225856, 0.800000, 0.000000;;, + 5;3; 0.225856, 0.800000, 0.000000;;, + 6;3; 0.225856, 0.800000, 0.000000;;, + 7;3; 0.225856, 0.800000, 0.000000;;, + 8;3; 0.225856, 0.800000, 0.000000;;, + 9;3; 0.225856, 0.800000, 0.000000;;, + 10;3; 0.225856, 0.800000, 0.000000;;, + 11;3; 0.225856, 0.800000, 0.000000;;, + 12;3; 0.225856, 0.800000, 0.000000;;, + 13;3; 0.225856, 0.800000, 0.000000;;, + 14;3; 0.225856, 0.800000, 0.000000;;, + 15;3; 0.225856, 0.800000, 0.000000;;, + 16;3; 0.225856, 0.800000, 0.000000;;, + 17;3; 0.225856, 0.800000, 0.000000;;, + 18;3; 0.225856, 0.800000, 0.000000;;, + 19;3; 0.225856, 0.800000, 0.000000;;, + 20;3; 0.225856, 0.800000, 0.000000;;, + 21;3; 0.225856, 0.800000, 0.000000;;, + 22;3; 0.225856, 0.800000, 0.000000;;, + 23;3; 0.225856, 0.800000, 0.000000;;, + 24;3; 0.225856, 0.800000, 0.000000;;, + 25;3; 0.225856, 0.800000, 0.000000;;, + 26;3; 0.225856, 0.800000, 0.000000;;, + 27;3; 0.225856, 0.800000, 0.000000;;, + 28;3; 0.225856, 0.800000, 0.000000;;, + 29;3; 0.225856, 0.800000, 0.000000;;, + 30;3; 0.225856, 0.800000, 0.000000;;, + 31;3; 0.225856, 0.800000, 0.000000;;, + 32;3; 0.225856, 0.800000, 0.000000;;, + 33;3; 0.225856, 0.800000, 0.000000;;, + 34;3; 0.225856, 0.800000, 0.000000;;, + 35;3; 0.225856, 0.800000, 0.000000;;, + 36;3; 0.225856, 0.800000, 0.000000;;, + 37;3; 0.225856, 0.800000, 0.000000;;, + 38;3; 0.225856, 0.800000, 0.000000;;, + 39;3; 0.225856, 0.800000, 0.000000;;, + 40;3; 0.225856, 0.800000, 0.000000;;, + 41;3; 0.225856, 0.800000, 0.000000;;, + 42;3; 0.225856, 0.800000, 0.000000;;, + 43;3; 0.225856, 0.800000, 0.000000;;, + 44;3; 0.225856, 0.800000, 0.000000;;, + 45;3; 0.225856, 0.800000, 0.000000;;, + 46;3; 0.225856, 0.800000, 0.000000;;, + 47;3; 0.225856, 0.800000, 0.000000;;, + 48;3; 0.225856, 0.800000, 0.000000;;, + 49;3; 0.225856, 0.800000, 0.000000;;, + 50;3; 0.225856, 0.800000, 0.000000;;, + 51;3; 0.225856, 0.800000, 0.000000;;, + 52;3; 0.225856, 0.800000, 0.000000;;, + 53;3; 0.225856, 0.800000, 0.000000;;, + 54;3; 0.225856, 0.800000, 0.000000;;, + 55;3; 0.225856, 0.800000, 0.000000;;, + 56;3; 0.225856, 0.800000, 0.000000;;, + 57;3; 0.225856, 0.800000, 0.000000;;, + 58;3; 0.225856, 0.800000, 0.000000;;, + 59;3; 0.225856, 0.800000, 0.000000;;, + 60;3; 0.225856, 0.800000, 0.000000;;, + 61;3; 0.225856, 0.800000, 0.000000;;, + 62;3; 0.225856, 0.800000, 0.000000;;, + 63;3; 0.225856, 0.800000, 0.000000;;, + 64;3; 0.225856, 0.800000, 0.000000;;, + 65;3; 0.225856, 0.800000, 0.000000;;, + 66;3; 0.225856, 0.800000, 0.000000;;, + 67;3; 0.225856, 0.800000, 0.000000;;, + 68;3; 0.225856, 0.800000, 0.000000;;, + 69;3; 0.225856, 0.800000, 0.000000;;, + 70;3; 0.225856, 0.800000, 0.000000;;, + 71;3; 0.225856, 0.800000, 0.000000;;, + 72;3; 0.225856, 0.800000, 0.000000;;, + 73;3; 0.225856, 0.800000, 0.000000;;, + 74;3; 0.225856, 0.800000, 0.000000;;, + 75;3; 0.225856, 0.800000, 0.000000;;, + 76;3; 0.225856, 0.800000, 0.000000;;, + 77;3; 0.225856, 0.800000, 0.000000;;, + 78;3; 0.225856, 0.800000, 0.000000;;, + 79;3; 0.225856, 0.800000, 0.000000;;, + 80;3; 0.225856, 0.800000, 0.000000;;, + 81;3; 0.225856, 0.800000, 0.000000;;, + 82;3; 0.225856, 0.800000, 0.000000;;, + 83;3; 0.225856, 0.800000, 0.000000;;, + 84;3; 0.225856, 0.800000, 0.000000;;, + 85;3; 0.225856, 0.800000, 0.000000;;, + 86;3; 0.225856, 0.800000, 0.000000;;, + 87;3; 0.225856, 0.800000, 0.000000;;, + 88;3; 0.225856, 0.800000, 0.000000;;, + 89;3; 0.225856, 0.800000, 0.000000;;, + 90;3; 0.225856, 0.800000, 0.000000;;, + 91;3; 0.225856, 0.800000, 0.000000;;, + 92;3; 0.225856, 0.800000, 0.000000;;, + 93;3; 0.225856, 0.800000, 0.000000;;, + 94;3; 0.225856, 0.800000, 0.000000;;, + 95;3; 0.225856, 0.800000, 0.000000;;, + 96;3; 0.225856, 0.800000, 0.000000;;, + 97;3; 0.225856, 0.800000, 0.000000;;, + 98;3; 0.225856, 0.800000, 0.000000;;, + 99;3; 0.225856, 0.800000, 0.000000;;, + 100;3; 0.225856, 0.800000, 0.000000;;, + 101;3; 0.225856, 0.800000, 0.000000;;, + 102;3; 0.225856, 0.800000, 0.000000;;, + 103;3; 0.225856, 0.800000, 0.000000;;, + 104;3; 0.225856, 0.800000, 0.000000;;, + 105;3; 0.225856, 0.800000, 0.000000;;, + 106;3; 0.225856, 0.800000, 0.000000;;, + 107;3; 0.225856, 0.800000, 0.000000;;; + } + AnimationKey { //Rotation + 0; + 108; + 0;4; -0.000000, 0.998933, 0.046192,-0.000000;;, + 1;4; 0.000113, 0.998932, 0.046192, 0.000005;;, + 2;4; 0.000463, 0.998931, 0.046192, 0.000021;;, + 3;4; 0.001052, 0.998930, 0.046191, 0.000049;;, + 4;4; 0.001861, 0.998928, 0.046191, 0.000086;;, + 5;4; 0.002839, 0.998925, 0.046191, 0.000131;;, + 6;4; 0.003910, 0.998921, 0.046191, 0.000181;;, + 7;4; 0.004990, 0.998917, 0.046191, 0.000231;;, + 8;4; 0.006002, 0.998912, 0.046191, 0.000277;;, + 9;4; 0.006897, 0.998908, 0.046190, 0.000319;;, + 10;4; 0.007645, 0.998903, 0.046190, 0.000353;;, + 11;4; 0.008353, 0.998898, 0.046190, 0.000386;;, + 12;4; 0.009124, 0.998891, 0.046190, 0.000422;;, + 13;4; 0.009935, 0.998884, 0.046189, 0.000459;;, + 14;4; 0.010752, 0.998875, 0.046189, 0.000497;;, + 15;4; 0.011526, 0.998866, 0.046189, 0.000533;;, + 16;4; 0.012206, 0.998858, 0.046188, 0.000564;;, + 17;4; 0.012752, 0.998851, 0.046188, 0.000590;;, + 18;4; 0.013140, 0.998846, 0.046188, 0.000608;;, + 19;4; 0.013366, 0.998843, 0.046187, 0.000618;;, + 20;4; 0.013438, 0.998842, 0.046187, 0.000621;;, + 21;4; 0.013396, 0.998843, 0.046187, 0.000619;;, + 22;4; 0.013259, 0.998845, 0.046188, 0.000613;;, + 23;4; 0.013015, 0.998849, 0.046188, 0.000602;;, + 24;4; 0.012659, 0.998854, 0.046188, 0.000585;;, + 25;4; 0.012193, 0.998861, 0.046188, 0.000564;;, + 26;4; 0.011633, 0.998868, 0.046189, 0.000538;;, + 27;4; 0.011006, 0.998875, 0.046189, 0.000509;;, + 28;4; 0.010339, 0.998881, 0.046189, 0.000478;;, + 29;4; 0.009657, 0.998887, 0.046189, 0.000447;;, + 30;4; 0.008979, 0.998892, 0.046190, 0.000415;;, + 31;4; 0.008235, 0.998897, 0.046190, 0.000381;;, + 32;4; 0.007367, 0.998902, 0.046190, 0.000341;;, + 33;4; 0.006405, 0.998906, 0.046190, 0.000296;;, + 34;4; 0.005374, 0.998911, 0.046191, 0.000248;;, + 35;4; 0.004301, 0.998916, 0.046191, 0.000199;;, + 36;4; 0.003216, 0.998920, 0.046191, 0.000149;;, + 37;4; 0.002157, 0.998924, 0.046191, 0.000100;;, + 38;4; 0.001180, 0.998928, 0.046191, 0.000055;;, + 39;4; 0.000383, 0.998931, 0.046192, 0.000018;;, + 40;4; -0.000000, 0.998933, 0.046192,-0.000000;;, + 41;4; -0.000000, 0.998933, 0.046192,-0.000000;;, + 42;4; 0.016411, 0.996908, 0.046098, 0.000759;;, + 43;4; 0.052503, 0.992456, 0.045892, 0.002427;;, + 44;4; 0.096241, 0.987060, 0.045643, 0.004450;;, + 45;4; 0.140624, 0.981585, 0.045389, 0.006502;;, + 46;4; 0.180886, 0.976618, 0.045160, 0.008364;;, + 47;4; 0.213365, 0.972611, 0.044974, 0.009866;;, + 48;4; 0.234951, 0.969948, 0.044851, 0.010864;;, + 49;4; 0.242773, 0.968983, 0.044807, 0.011226;;, + 50;4; 0.234348, 0.970022, 0.044855, 0.010836;;, + 51;4; 0.209203, 0.973124, 0.044998, 0.009674;;, + 52;4; 0.169616, 0.978008, 0.045224, 0.007843;;, + 53;4; 0.121393, 0.983958, 0.045499, 0.005613;;, + 54;4; 0.073168, 0.989907, 0.045774, 0.003383;;, + 55;4; 0.033576, 0.994791, 0.046000, 0.001552;;, + 56;4; 0.008426, 0.997893, 0.046144, 0.000389;;, + 57;4; -0.000000, 0.998933, 0.046192,-0.000000;;, + 58;4; -0.000000, 0.998933, 0.046192,-0.000000;;, + 59;4; -0.000000, 0.998933, 0.046192,-0.000000;;, + 60;4; -0.000000, 0.998933, 0.046192,-0.000000;;, + 61;4; -0.021739, 0.996233, 0.046067,-0.001004;;, + 62;4; -0.082955, 0.988627, 0.045715,-0.003834;;, + 63;4; -0.161536, 0.978863, 0.045264,-0.007469;;, + 64;4; -0.222735, 0.971258, 0.044912,-0.010299;;, + 65;4; -0.244464, 0.968558, 0.044787,-0.011304;;, + 66;4; -0.244163, 0.969535, 0.044832,-0.011290;;, + 67;4; -0.242008, 0.972228, 0.044957,-0.011186;;, + 68;4; -0.235917, 0.976278, 0.045144,-0.010887;;, + 69;4; -0.223338, 0.981298, 0.045376,-0.010263;;, + 70;4; -0.200843, 0.986838, 0.045632,-0.009147;;, + 71;4; -0.163332, 0.992312, 0.045885,-0.007310;;, + 72;4; -0.102212, 0.996851, 0.046095,-0.004424;;, + 73;4; -0.000000, 0.998933, 0.046192,-0.000000;;, + 74;4; 0.726097, 0.686039, 0.031723, 0.033575;;, + 75;4; 0.765734, 0.638365, 0.029519, 0.035296;;, + 76;4; 0.789482, 0.608852, 0.028154, 0.036416;;, + 77;4; 0.804069, 0.590470, 0.027304, 0.037129;;, + 78;4; 0.812819, 0.579387, 0.026791, 0.037561;;, + 79;4; 0.817712, 0.573190, 0.026505, 0.037803;;, + 80;4; 0.820080, 0.570202, 0.026367, 0.037919;;, + 81;4; 0.820918, 0.569151, 0.026318, 0.037960;;, + 82;4; 0.821035, 0.569006, 0.026311, 0.037965;;, + 83;4; 0.818160, 0.572615, 0.026478, 0.037832;;, + 84;4; 0.809580, 0.583387, 0.026976, 0.037436;;, + 85;4; 0.796072, 0.600345, 0.027761, 0.036811;;, + 86;4; 0.779617, 0.621003, 0.028716, 0.036050;;, + 87;4; 0.763162, 0.641661, 0.029671, 0.035289;;, + 88;4; 0.749653, 0.658620, 0.030455, 0.034665;;, + 89;4; 0.741073, 0.669392, 0.030953, 0.034268;;, + 90;4; 0.738198, 0.673000, 0.031120, 0.034135;;, + 91;4; 0.741328, 0.669018, 0.030936, 0.034280;;, + 92;4; 0.750670, 0.657133, 0.030386, 0.034712;;, + 93;4; 0.765376, 0.638421, 0.029521, 0.035392;;, + 94;4; 0.783291, 0.615627, 0.028467, 0.036220;;, + 95;4; 0.801206, 0.592833, 0.027413, 0.037048;;, + 96;4; 0.815912, 0.574122, 0.026548, 0.037729;;, + 97;4; 0.825254, 0.562236, 0.025998, 0.038160;;, + 98;4; 0.828383, 0.558254, 0.025814, 0.038305;;, + 99;4; 0.824723, 0.562805, 0.026025, 0.038136;;, + 100;4; 0.813799, 0.576388, 0.026653, 0.037631;;, + 101;4; 0.796600, 0.597771, 0.027642, 0.036835;;, + 102;4; 0.775650, 0.623820, 0.028846, 0.035867;;, + 103;4; 0.754698, 0.649870, 0.030051, 0.034898;;, + 104;4; 0.737498, 0.671257, 0.031040, 0.034102;;, + 105;4; 0.726572, 0.684843, 0.031668, 0.033597;;, + 106;4; 0.722912, 0.689395, 0.031878, 0.033428;;, + 107;4; 0.722912, 0.689395, 0.031878, 0.033428;;; + } + AnimationKey { //Scale + 1; + 108; + 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, 0.999999;;, + 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;;; + } + } + Animation { + {Armature_Bone_002} + AnimationKey { //Position + 2; + 108; + 0;3; -0.238835, 0.800000, 0.000000;;, + 1;3; -0.238835, 0.800000, 0.000000;;, + 2;3; -0.238835, 0.800000, 0.000000;;, + 3;3; -0.238835, 0.800000, 0.000000;;, + 4;3; -0.238835, 0.800000, 0.000000;;, + 5;3; -0.238835, 0.800000, 0.000000;;, + 6;3; -0.238835, 0.800000, 0.000000;;, + 7;3; -0.238835, 0.800000, 0.000000;;, + 8;3; -0.238835, 0.800000, 0.000000;;, + 9;3; -0.238835, 0.800000, 0.000000;;, + 10;3; -0.238835, 0.800000, 0.000000;;, + 11;3; -0.238835, 0.800000, 0.000000;;, + 12;3; -0.238835, 0.800000, 0.000000;;, + 13;3; -0.238835, 0.800000, 0.000000;;, + 14;3; -0.238835, 0.800000, 0.000000;;, + 15;3; -0.238835, 0.800000, 0.000000;;, + 16;3; -0.238835, 0.800000, 0.000000;;, + 17;3; -0.238835, 0.800000, 0.000000;;, + 18;3; -0.238835, 0.800000, 0.000000;;, + 19;3; -0.238835, 0.800000, 0.000000;;, + 20;3; -0.238835, 0.800000, 0.000000;;, + 21;3; -0.238835, 0.800000, 0.000000;;, + 22;3; -0.238835, 0.800000, 0.000000;;, + 23;3; -0.238835, 0.800000, 0.000000;;, + 24;3; -0.238835, 0.800000, 0.000000;;, + 25;3; -0.238835, 0.800000, 0.000000;;, + 26;3; -0.238835, 0.800000, 0.000000;;, + 27;3; -0.238835, 0.800000, 0.000000;;, + 28;3; -0.238835, 0.800000, 0.000000;;, + 29;3; -0.238835, 0.800000, 0.000000;;, + 30;3; -0.238835, 0.800000, 0.000000;;, + 31;3; -0.238835, 0.800000, 0.000000;;, + 32;3; -0.238835, 0.800000, 0.000000;;, + 33;3; -0.238835, 0.800000, 0.000000;;, + 34;3; -0.238835, 0.800000, 0.000000;;, + 35;3; -0.238835, 0.800000, 0.000000;;, + 36;3; -0.238835, 0.800000, 0.000000;;, + 37;3; -0.238835, 0.800000, 0.000000;;, + 38;3; -0.238835, 0.800000, 0.000000;;, + 39;3; -0.238835, 0.800000, 0.000000;;, + 40;3; -0.238835, 0.800000, 0.000000;;, + 41;3; -0.238835, 0.800000, 0.000000;;, + 42;3; -0.238835, 0.800000, 0.000000;;, + 43;3; -0.238835, 0.800000, 0.000000;;, + 44;3; -0.238835, 0.800000, 0.000000;;, + 45;3; -0.238835, 0.800000, 0.000000;;, + 46;3; -0.238835, 0.800000, 0.000000;;, + 47;3; -0.238835, 0.800000, 0.000000;;, + 48;3; -0.238835, 0.800000, 0.000000;;, + 49;3; -0.238835, 0.800000, 0.000000;;, + 50;3; -0.238835, 0.800000, 0.000000;;, + 51;3; -0.238835, 0.800000, 0.000000;;, + 52;3; -0.238835, 0.800000, 0.000000;;, + 53;3; -0.238835, 0.800000, 0.000000;;, + 54;3; -0.238835, 0.800000, 0.000000;;, + 55;3; -0.238835, 0.800000, 0.000000;;, + 56;3; -0.238835, 0.800000, 0.000000;;, + 57;3; -0.238835, 0.800000, 0.000000;;, + 58;3; -0.238835, 0.800000, 0.000000;;, + 59;3; -0.238835, 0.800000, 0.000000;;, + 60;3; -0.238835, 0.800000, 0.000000;;, + 61;3; -0.238835, 0.800000, 0.000000;;, + 62;3; -0.238835, 0.800000, 0.000000;;, + 63;3; -0.238835, 0.800000, 0.000000;;, + 64;3; -0.238835, 0.800000, 0.000000;;, + 65;3; -0.238835, 0.800000, 0.000000;;, + 66;3; -0.238835, 0.800000, 0.000000;;, + 67;3; -0.238835, 0.800000, 0.000000;;, + 68;3; -0.238835, 0.800000, 0.000000;;, + 69;3; -0.238835, 0.800000, 0.000000;;, + 70;3; -0.238835, 0.800000, 0.000000;;, + 71;3; -0.238835, 0.800000, 0.000000;;, + 72;3; -0.238835, 0.800000, 0.000000;;, + 73;3; -0.238835, 0.800000, 0.000000;;, + 74;3; -0.238835, 0.800000, 0.000000;;, + 75;3; -0.238835, 0.800000, 0.000000;;, + 76;3; -0.238835, 0.800000, 0.000000;;, + 77;3; -0.238835, 0.800000, 0.000000;;, + 78;3; -0.238835, 0.800000, 0.000000;;, + 79;3; -0.238835, 0.800000, 0.000000;;, + 80;3; -0.238835, 0.800000, 0.000000;;, + 81;3; -0.238835, 0.800000, 0.000000;;, + 82;3; -0.238835, 0.800000, 0.000000;;, + 83;3; -0.238835, 0.800000, 0.000000;;, + 84;3; -0.238835, 0.800000, 0.000000;;, + 85;3; -0.238835, 0.800000, 0.000000;;, + 86;3; -0.238835, 0.800000, 0.000000;;, + 87;3; -0.238835, 0.800000, 0.000000;;, + 88;3; -0.238835, 0.800000, 0.000000;;, + 89;3; -0.238835, 0.800000, 0.000000;;, + 90;3; -0.238835, 0.800000, 0.000000;;, + 91;3; -0.238835, 0.800000, 0.000000;;, + 92;3; -0.238835, 0.800000, 0.000000;;, + 93;3; -0.238835, 0.800000, 0.000000;;, + 94;3; -0.238835, 0.800000, 0.000000;;, + 95;3; -0.238835, 0.800000, 0.000000;;, + 96;3; -0.238835, 0.800000, 0.000000;;, + 97;3; -0.238835, 0.800000, 0.000000;;, + 98;3; -0.238835, 0.800000, 0.000000;;, + 99;3; -0.238835, 0.800000, 0.000000;;, + 100;3; -0.238835, 0.800000, 0.000000;;, + 101;3; -0.238835, 0.800000, 0.000000;;, + 102;3; -0.238835, 0.800000, 0.000000;;, + 103;3; -0.238835, 0.800000, 0.000000;;, + 104;3; -0.238835, 0.800000, 0.000000;;, + 105;3; -0.238835, 0.800000, 0.000000;;, + 106;3; -0.238835, 0.800000, 0.000000;;, + 107;3; -0.238835, 0.800000, 0.000000;;; + } + AnimationKey { //Rotation + 0; + 108; + 0;4; -0.000000, 0.998905,-0.046776,-0.000000;;, + 1;4; 0.000396, 0.998902,-0.046776,-0.000019;;, + 2;4; 0.001620, 0.998891,-0.046775,-0.000076;;, + 3;4; 0.003679, 0.998871,-0.046774,-0.000172;;, + 4;4; 0.006500, 0.998842,-0.046773,-0.000304;;, + 5;4; 0.009901, 0.998805,-0.046771,-0.000464;;, + 6;4; 0.013615, 0.998761,-0.046769,-0.000638;;, + 7;4; 0.017338, 0.998712,-0.046767,-0.000812;;, + 8;4; 0.020809, 0.998661,-0.046764,-0.000975;;, + 9;4; 0.023851, 0.998609,-0.046762,-0.001117;;, + 10;4; 0.026368, 0.998557,-0.046760,-0.001235;;, + 11;4; 0.028711, 0.998499,-0.046757,-0.001345;;, + 12;4; 0.031226, 0.998427,-0.046754,-0.001462;;, + 13;4; 0.033841, 0.998341,-0.046750,-0.001585;;, + 14;4; 0.036445, 0.998248,-0.046745,-0.001707;;, + 15;4; 0.038889, 0.998154,-0.046741,-0.001821;;, + 16;4; 0.041022, 0.998067,-0.046737,-0.001921;;, + 17;4; 0.042723, 0.997994,-0.046733,-0.002001;;, + 18;4; 0.043926, 0.997941,-0.046731,-0.002057;;, + 19;4; 0.044623, 0.997909,-0.046729,-0.002090;;, + 20;4; 0.044845, 0.997898,-0.046729,-0.002100;;, + 21;4; 0.044841, 0.997899,-0.046729,-0.002100;;, + 22;4; 0.044817, 0.997900,-0.046729,-0.002099;;, + 23;4; 0.044742, 0.997905,-0.046729,-0.002095;;, + 24;4; 0.044579, 0.997913,-0.046729,-0.002088;;, + 25;4; 0.044290, 0.997926,-0.046730,-0.002074;;, + 26;4; 0.043842, 0.997946,-0.046731,-0.002053;;, + 27;4; 0.043222, 0.997973,-0.046732,-0.002024;;, + 28;4; 0.042430, 0.998006,-0.046734,-0.001987;;, + 29;4; 0.041484, 0.998044,-0.046736,-0.001943;;, + 30;4; 0.040405, 0.998088,-0.046738,-0.001892;;, + 31;4; 0.039231, 0.998138,-0.046740,-0.001837;;, + 32;4; 0.037955, 0.998194,-0.046743,-0.001777;;, + 33;4; 0.036535, 0.998257,-0.046746,-0.001711;;, + 34;4; 0.034919, 0.998325,-0.046749,-0.001635;;, + 35;4; 0.033044, 0.998398,-0.046752,-0.001547;;, + 36;4; 0.030822, 0.998476,-0.046756,-0.001443;;, + 37;4; 0.028124, 0.998556,-0.046760,-0.001317;;, + 38;4; 0.024742, 0.998640,-0.046763,-0.001159;;, + 39;4; 0.020284, 0.998725,-0.046767,-0.000950;;, + 40;4; 0.013794, 0.998810,-0.046771,-0.000646;;, + 41;4; -0.000000, 0.998905,-0.046776,-0.000000;;, + 42;4; -0.031189, 0.996841,-0.046679, 0.001460;;, + 43;4; -0.072145, 0.992300,-0.046467, 0.003378;;, + 44;4; -0.115348, 0.986796,-0.046209, 0.005401;;, + 45;4; -0.156373, 0.981211,-0.045947, 0.007322;;, + 46;4; -0.192148, 0.976145,-0.045710, 0.008998;;, + 47;4; -0.220256, 0.972058,-0.045519, 0.010314;;, + 48;4; -0.238588, 0.969342,-0.045392, 0.011172;;, + 49;4; -0.245143, 0.968358,-0.045346, 0.011479;;, + 50;4; -0.236636, 0.969418,-0.045395, 0.011081;;, + 51;4; -0.211245, 0.972582,-0.045543, 0.009892;;, + 52;4; -0.171272, 0.977564,-0.045777, 0.008020;;, + 53;4; -0.122578, 0.983632,-0.046061, 0.005739;;, + 54;4; -0.073882, 0.989700,-0.046345, 0.003459;;, + 55;4; -0.033905, 0.994681,-0.046578, 0.001587;;, + 56;4; -0.008509, 0.997845,-0.046726, 0.000398;;, + 57;4; -0.000000, 0.998905,-0.046776,-0.000000;;, + 58;4; -0.000000, 0.998905,-0.046776,-0.000000;;, + 59;4; -0.000000, 0.998905,-0.046776,-0.000000;;, + 60;4; -0.000000, 0.998905,-0.046776,-0.000000;;, + 61;4; 0.021615, 0.996236,-0.046651,-0.001011;;, + 62;4; 0.082482, 0.988719,-0.046299,-0.003861;;, + 63;4; 0.160618, 0.979066,-0.045847,-0.007521;;, + 64;4; 0.221468, 0.971548,-0.045495,-0.010371;;, + 65;4; 0.243074, 0.968879,-0.045370,-0.011383;;, + 66;4; 0.235291, 0.969846,-0.045415,-0.011014;;, + 67;4; 0.213947, 0.972508,-0.045540,-0.009989;;, + 68;4; 0.181951, 0.976512,-0.045727,-0.008442;;, + 69;4; 0.142284, 0.981474,-0.045960,-0.006525;;, + 70;4; 0.098338, 0.986951,-0.046216,-0.004421;;, + 71;4; 0.054509, 0.992362,-0.046470,-0.002372;;, + 72;4; 0.017496, 0.996849,-0.046680,-0.000720;;, + 73;4; -0.000000, 0.998905,-0.046776,-0.000000;;, + 74;4; 0.721174, 0.691173,-0.032366,-0.033771;;, + 75;4; 0.763079, 0.641077,-0.030020,-0.035614;;, + 76;4; 0.788198, 0.610058,-0.028567,-0.036814;;, + 77;4; 0.803629, 0.590736,-0.027662,-0.037576;;, + 78;4; 0.812887, 0.579085,-0.027117,-0.038040;;, + 79;4; 0.818063, 0.572572,-0.026812,-0.038299;;, + 80;4; 0.820568, 0.569430,-0.026665,-0.038423;;, + 81;4; 0.821455, 0.568326,-0.026613,-0.038466;;, + 82;4; 0.821578, 0.568173,-0.026606,-0.038472;;, + 83;4; 0.818731, 0.571759,-0.026774,-0.038339;;, + 84;4; 0.810231, 0.582463,-0.027275,-0.037941;;, + 85;4; 0.796849, 0.599314,-0.028064,-0.037314;;, + 86;4; 0.780548, 0.619842,-0.029025,-0.036551;;, + 87;4; 0.764247, 0.640369,-0.029987,-0.035788;;, + 88;4; 0.750865, 0.657220,-0.030776,-0.035161;;, + 89;4; 0.742365, 0.667924,-0.031277,-0.034763;;, + 90;4; 0.739518, 0.671510,-0.031445,-0.034630;;, + 91;4; 0.742645, 0.667513,-0.031258,-0.034776;;, + 92;4; 0.751981, 0.655582,-0.030699,-0.035213;;, + 93;4; 0.766679, 0.636798,-0.029819,-0.035901;;, + 94;4; 0.784583, 0.613917,-0.028748,-0.036740;;, + 95;4; 0.802487, 0.591036,-0.027676,-0.037578;;, + 96;4; 0.817184, 0.572253,-0.026797,-0.038266;;, + 97;4; 0.826520, 0.560322,-0.026238,-0.038704;;, + 98;4; 0.829648, 0.556324,-0.026051,-0.038850;;, + 99;4; 0.825855, 0.561033,-0.026272,-0.038673;;, + 100;4; 0.814535, 0.575088,-0.026930,-0.038142;;, + 101;4; 0.796714, 0.597215,-0.027966,-0.037308;;, + 102;4; 0.775005, 0.624169,-0.029228,-0.036291;;, + 103;4; 0.753296, 0.651125,-0.030490,-0.035275;;, + 104;4; 0.735473, 0.673255,-0.031527,-0.034440;;, + 105;4; 0.724152, 0.687313,-0.032185,-0.033910;;, + 106;4; 0.720358, 0.692023,-0.032405,-0.033732;;, + 107;4; 0.720358, 0.692023,-0.032405,-0.033732;;; + } + AnimationKey { //Scale + 1; + 108; + 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;;; + } + } + Animation { + {Armature_Bone_003} + AnimationKey { //Position + 2; + 108; + 0;3; -0.144872, 0.061513, 0.000000;;, + 1;3; -0.144872, 0.061513, 0.000000;;, + 2;3; -0.144872, 0.061513, 0.000000;;, + 3;3; -0.144872, 0.061513, 0.000000;;, + 4;3; -0.144872, 0.061513, 0.000000;;, + 5;3; -0.144872, 0.061513, 0.000000;;, + 6;3; -0.144872, 0.061513, 0.000000;;, + 7;3; -0.144872, 0.061513, 0.000000;;, + 8;3; -0.144872, 0.061513, 0.000000;;, + 9;3; -0.144872, 0.061513, 0.000000;;, + 10;3; -0.144872, 0.061513, 0.000000;;, + 11;3; -0.144872, 0.061513, 0.000000;;, + 12;3; -0.144872, 0.061513, 0.000000;;, + 13;3; -0.144872, 0.061513, 0.000000;;, + 14;3; -0.144872, 0.061513, 0.000000;;, + 15;3; -0.144872, 0.061513, 0.000000;;, + 16;3; -0.144872, 0.061513, 0.000000;;, + 17;3; -0.144872, 0.061513, 0.000000;;, + 18;3; -0.144872, 0.061513, 0.000000;;, + 19;3; -0.144872, 0.061513, 0.000000;;, + 20;3; -0.144872, 0.061513, 0.000000;;, + 21;3; -0.144872, 0.061513, 0.000000;;, + 22;3; -0.144872, 0.061513, 0.000000;;, + 23;3; -0.144872, 0.061513, 0.000000;;, + 24;3; -0.144872, 0.061513, 0.000000;;, + 25;3; -0.144872, 0.061513, 0.000000;;, + 26;3; -0.144872, 0.061513, 0.000000;;, + 27;3; -0.144872, 0.061513, 0.000000;;, + 28;3; -0.144872, 0.061513, 0.000000;;, + 29;3; -0.144872, 0.061513, 0.000000;;, + 30;3; -0.144872, 0.061513, 0.000000;;, + 31;3; -0.144872, 0.061513, 0.000000;;, + 32;3; -0.144872, 0.061513, 0.000000;;, + 33;3; -0.144872, 0.061513, 0.000000;;, + 34;3; -0.144872, 0.061513, 0.000000;;, + 35;3; -0.144872, 0.061513, 0.000000;;, + 36;3; -0.144872, 0.061513, 0.000000;;, + 37;3; -0.144872, 0.061513, 0.000000;;, + 38;3; -0.144872, 0.061513, 0.000000;;, + 39;3; -0.144872, 0.061513, 0.000000;;, + 40;3; -0.144872, 0.061513, 0.000000;;, + 41;3; -0.144872, 0.061513, 0.000000;;, + 42;3; -0.144872, 0.061513, 0.000000;;, + 43;3; -0.144872, 0.061513, 0.000000;;, + 44;3; -0.144872, 0.061513, 0.000000;;, + 45;3; -0.144872, 0.061513, 0.000000;;, + 46;3; -0.144872, 0.061513, 0.000000;;, + 47;3; -0.144872, 0.061513, 0.000000;;, + 48;3; -0.144872, 0.061513, 0.000000;;, + 49;3; -0.144872, 0.061513, 0.000000;;, + 50;3; -0.144872, 0.061513, 0.000000;;, + 51;3; -0.144872, 0.061513, 0.000000;;, + 52;3; -0.144872, 0.061513, 0.000000;;, + 53;3; -0.144872, 0.061513, 0.000000;;, + 54;3; -0.144872, 0.061513, 0.000000;;, + 55;3; -0.144872, 0.061513, 0.000000;;, + 56;3; -0.144872, 0.061513, 0.000000;;, + 57;3; -0.144872, 0.061513, 0.000000;;, + 58;3; -0.144872, 0.061513, 0.000000;;, + 59;3; -0.144872, 0.061513, 0.000000;;, + 60;3; -0.144872, 0.061513, 0.000000;;, + 61;3; -0.144872, 0.061513, 0.000000;;, + 62;3; -0.144872, 0.061513, 0.000000;;, + 63;3; -0.144872, 0.061513, 0.000000;;, + 64;3; -0.144872, 0.061513, 0.000000;;, + 65;3; -0.144872, 0.061513, 0.000000;;, + 66;3; -0.144872, 0.061513, 0.000000;;, + 67;3; -0.144872, 0.061513, 0.000000;;, + 68;3; -0.144872, 0.061513, 0.000000;;, + 69;3; -0.144872, 0.061513, 0.000000;;, + 70;3; -0.144872, 0.061513, 0.000000;;, + 71;3; -0.144872, 0.061513, 0.000000;;, + 72;3; -0.144872, 0.061513, 0.000000;;, + 73;3; -0.144872, 0.061513, 0.000000;;, + 74;3; -0.144872, 0.061513, 0.000000;;, + 75;3; -0.144872, 0.061513, 0.000000;;, + 76;3; -0.144872, 0.061513, 0.000000;;, + 77;3; -0.144872, 0.061513, 0.000000;;, + 78;3; -0.144872, 0.061513, 0.000000;;, + 79;3; -0.144872, 0.061513, 0.000000;;, + 80;3; -0.144872, 0.061513, 0.000000;;, + 81;3; -0.144872, 0.061513, 0.000000;;, + 82;3; -0.144872, 0.061513, 0.000000;;, + 83;3; -0.144872, 0.061513, 0.000000;;, + 84;3; -0.144872, 0.061513, 0.000000;;, + 85;3; -0.144872, 0.061513, 0.000000;;, + 86;3; -0.144872, 0.061513, 0.000000;;, + 87;3; -0.144872, 0.061513, 0.000000;;, + 88;3; -0.144872, 0.061513, 0.000000;;, + 89;3; -0.144872, 0.061513, 0.000000;;, + 90;3; -0.144872, 0.061513, 0.000000;;, + 91;3; -0.144872, 0.061513, 0.000000;;, + 92;3; -0.144872, 0.061513, 0.000000;;, + 93;3; -0.144872, 0.061513, 0.000000;;, + 94;3; -0.144872, 0.061513, 0.000000;;, + 95;3; -0.144872, 0.061513, 0.000000;;, + 96;3; -0.144872, 0.061513, 0.000000;;, + 97;3; -0.144872, 0.061513, 0.000000;;, + 98;3; -0.144872, 0.061513, 0.000000;;, + 99;3; -0.144872, 0.061513, 0.000000;;, + 100;3; -0.144872, 0.061513, 0.000000;;, + 101;3; -0.144872, 0.061513, 0.000000;;, + 102;3; -0.144872, 0.061513, 0.000000;;, + 103;3; -0.144872, 0.061513, 0.000000;;, + 104;3; -0.144872, 0.061513, 0.000000;;, + 105;3; -0.144872, 0.061513, 0.000000;;, + 106;3; -0.144872, 0.061513, 0.000000;;, + 107;3; -0.144872, 0.061513, 0.000000;;; + } + AnimationKey { //Rotation + 0; + 108; + 0;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 1;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 2;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 3;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 4;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 5;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 6;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 7;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 8;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 9;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 10;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 11;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 12;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 13;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 14;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 15;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 16;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 17;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 18;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 19;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 20;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 21;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 22;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 23;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 24;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 25;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 26;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 27;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 28;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 29;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 30;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 31;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 32;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 33;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 34;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 35;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 36;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 37;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 38;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 39;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 40;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 41;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 42;4; 0.012248, 0.998881,-0.000000,-0.000000;;, + 43;4; 0.039184, 0.996421,-0.000000,-0.000000;;, + 44;4; 0.071828, 0.993438,-0.000000,-0.000000;;, + 45;4; 0.104954, 0.990412,-0.000000,-0.000000;;, + 46;4; 0.135005, 0.987667,-0.000000,-0.000000;;, + 47;4; 0.159246, 0.985452,-0.000000,-0.000000;;, + 48;4; 0.175357, 0.983980,-0.000000,-0.000000;;, + 49;4; 0.181195, 0.983447,-0.000000,-0.000000;;, + 50;4; 0.174908, 0.984022,-0.000000,-0.000000;;, + 51;4; 0.156139, 0.985736,-0.000000,-0.000000;;, + 52;4; 0.126593, 0.988435,-0.000000,-0.000000;;, + 53;4; 0.090600, 0.991724,-0.000000,-0.000000;;, + 54;4; 0.054607, 0.995012,-0.000000,-0.000000;;, + 55;4; 0.025058, 0.997711,-0.000000,-0.000000;;, + 56;4; 0.006288, 0.999426,-0.000000,-0.000000;;, + 57;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 58;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 59;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 60;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 61;4; -0.015047, 0.998718,-0.000000,-0.000000;;, + 62;4; -0.057422, 0.995106,-0.000000,-0.000000;;, + 63;4; -0.111826, 0.990469,-0.000000,-0.000000;;, + 64;4; -0.154196, 0.986857,-0.000000,-0.000000;;, + 65;4; -0.169240, 0.985575,-0.000000,-0.000000;;, + 66;4; -0.166047, 0.986040,-0.000000,-0.000000;;, + 67;4; -0.156832, 0.987322,-0.000000,-0.000000;;, + 68;4; -0.142082, 0.989252,-0.000000,-0.000000;;, + 69;4; -0.122229, 0.991645,-0.000000,-0.000000;;, + 70;4; -0.097673, 0.994282,-0.000000,-0.000000;;, + 71;4; -0.068804, 0.996881,-0.000000,-0.000000;;, + 72;4; -0.036052, 0.999025,-0.000000,-0.000000;;, + 73;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 74;4; 0.053673, 0.998559,-0.000000,-0.000000;;, + 75;4; 0.106079, 0.991342,-0.000000,-0.000000;;, + 76;4; 0.163098, 0.980061,-0.000000,-0.000000;;, + 77;4; 0.218649, 0.967459,-0.000000,-0.000000;;, + 78;4; 0.269086, 0.955138,-0.000000,-0.000000;;, + 79;4; 0.311807, 0.944200,-0.000000,-0.000000;;, + 80;4; 0.344689, 0.935502,-0.000000,-0.000000;;, + 81;4; 0.365809, 0.929779,-0.000000,-0.000000;;, + 82;4; 0.373278, 0.927719,-0.000000,-0.000000;;, + 83;4; 0.365966, 0.930188,-0.000000,-0.000000;;, + 84;4; 0.343286, 0.937556,-0.000000,-0.000000;;, + 85;4; 0.305474, 0.949156,-0.000000,-0.000000;;, + 86;4; 0.255428, 0.963286,-0.000000,-0.000000;;, + 87;4; 0.198768, 0.977416,-0.000000,-0.000000;;, + 88;4; 0.142120, 0.989015,-0.000000,-0.000000;;, + 89;4; 0.090827, 0.996384,-0.000000,-0.000000;;, + 90;4; 0.047904, 0.998852,-0.000000,-0.000000;;, + 91;4; 0.006316, 0.997886,-0.000000,-0.000000;;, + 92;4; -0.040994, 0.995002,-0.000000,-0.000000;;, + 93;4; -0.091373, 0.990461,-0.000000,-0.000000;;, + 94;4; -0.140400, 0.984931,-0.000000,-0.000000;;, + 95;4; -0.182814, 0.979400,-0.000000,-0.000000;;, + 96;4; -0.214363, 0.974859,-0.000000,-0.000000;;, + 97;4; -0.233064, 0.971975,-0.000000,-0.000000;;, + 98;4; -0.239043, 0.971009,-0.000000,-0.000000;;, + 99;4; -0.229083, 0.971975,-0.000000,-0.000000;;, + 100;4; -0.199358, 0.974859,-0.000000,-0.000000;;, + 101;4; -0.152566, 0.979398,-0.000000,-0.000000;;, + 102;4; -0.095562, 0.984928,-0.000000,-0.000000;;, + 103;4; -0.038544, 0.990458,-0.000000,-0.000000;;, + 104;4; 0.008280, 0.994997,-0.000000,-0.000000;;, + 105;4; 0.038035, 0.997881,-0.000000,-0.000000;;, + 106;4; 0.048007, 0.998847,-0.000000,-0.000000;;, + 107;4; 0.048007, 0.998847,-0.000000,-0.000000;;; + } + AnimationKey { //Scale + 1; + 108; + 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;;; + } + } + Animation { + {Armature_Bone_004} + AnimationKey { //Position + 2; + 108; + 0;3; 0.135398, 0.070410, 0.000000;;, + 1;3; 0.135398, 0.070410, 0.000000;;, + 2;3; 0.135398, 0.070410, 0.000000;;, + 3;3; 0.135398, 0.070410, 0.000000;;, + 4;3; 0.135398, 0.070410, 0.000000;;, + 5;3; 0.135398, 0.070410, 0.000000;;, + 6;3; 0.135398, 0.070410, 0.000000;;, + 7;3; 0.135398, 0.070410, 0.000000;;, + 8;3; 0.135398, 0.070410, 0.000000;;, + 9;3; 0.135398, 0.070410, 0.000000;;, + 10;3; 0.135398, 0.070410, 0.000000;;, + 11;3; 0.135398, 0.070410, 0.000000;;, + 12;3; 0.135398, 0.070410, 0.000000;;, + 13;3; 0.135398, 0.070410, 0.000000;;, + 14;3; 0.135398, 0.070410, 0.000000;;, + 15;3; 0.135398, 0.070410, 0.000000;;, + 16;3; 0.135398, 0.070410, 0.000000;;, + 17;3; 0.135398, 0.070410, 0.000000;;, + 18;3; 0.135398, 0.070410, 0.000000;;, + 19;3; 0.135398, 0.070410, 0.000000;;, + 20;3; 0.135398, 0.070410, 0.000000;;, + 21;3; 0.135398, 0.070410, 0.000000;;, + 22;3; 0.135398, 0.070410, 0.000000;;, + 23;3; 0.135398, 0.070410, 0.000000;;, + 24;3; 0.135398, 0.070410, 0.000000;;, + 25;3; 0.135398, 0.070410, 0.000000;;, + 26;3; 0.135398, 0.070410, 0.000000;;, + 27;3; 0.135398, 0.070410, 0.000000;;, + 28;3; 0.135398, 0.070410, 0.000000;;, + 29;3; 0.135398, 0.070410, 0.000000;;, + 30;3; 0.135398, 0.070410, 0.000000;;, + 31;3; 0.135398, 0.070410, 0.000000;;, + 32;3; 0.135398, 0.070410, 0.000000;;, + 33;3; 0.135398, 0.070410, 0.000000;;, + 34;3; 0.135398, 0.070410, 0.000000;;, + 35;3; 0.135398, 0.070410, 0.000000;;, + 36;3; 0.135398, 0.070410, 0.000000;;, + 37;3; 0.135398, 0.070410, 0.000000;;, + 38;3; 0.135398, 0.070410, 0.000000;;, + 39;3; 0.135398, 0.070410, 0.000000;;, + 40;3; 0.135398, 0.070410, 0.000000;;, + 41;3; 0.135398, 0.070410, 0.000000;;, + 42;3; 0.135398, 0.070410, 0.000000;;, + 43;3; 0.135398, 0.070410, 0.000000;;, + 44;3; 0.135398, 0.070410, 0.000000;;, + 45;3; 0.135398, 0.070410, 0.000000;;, + 46;3; 0.135398, 0.070410, 0.000000;;, + 47;3; 0.135398, 0.070410, 0.000000;;, + 48;3; 0.135398, 0.070410, 0.000000;;, + 49;3; 0.135398, 0.070410, 0.000000;;, + 50;3; 0.135398, 0.070410, 0.000000;;, + 51;3; 0.135398, 0.070410, 0.000000;;, + 52;3; 0.135398, 0.070410, 0.000000;;, + 53;3; 0.135398, 0.070410, 0.000000;;, + 54;3; 0.135398, 0.070410, 0.000000;;, + 55;3; 0.135398, 0.070410, 0.000000;;, + 56;3; 0.135398, 0.070410, 0.000000;;, + 57;3; 0.135398, 0.070410, 0.000000;;, + 58;3; 0.135398, 0.070410, 0.000000;;, + 59;3; 0.135398, 0.070410, 0.000000;;, + 60;3; 0.135398, 0.070410, 0.000000;;, + 61;3; 0.135398, 0.070410, 0.000000;;, + 62;3; 0.135398, 0.070410, 0.000000;;, + 63;3; 0.135398, 0.070410, 0.000000;;, + 64;3; 0.135398, 0.070410, 0.000000;;, + 65;3; 0.135398, 0.070410, 0.000000;;, + 66;3; 0.135398, 0.070410, 0.000000;;, + 67;3; 0.135398, 0.070410, 0.000000;;, + 68;3; 0.135398, 0.070410, 0.000000;;, + 69;3; 0.135398, 0.070410, 0.000000;;, + 70;3; 0.135398, 0.070410, 0.000000;;, + 71;3; 0.135398, 0.070410, 0.000000;;, + 72;3; 0.135398, 0.070410, 0.000000;;, + 73;3; 0.135398, 0.070410, 0.000000;;, + 74;3; 0.135398, 0.070410, 0.000000;;, + 75;3; 0.135398, 0.070410, 0.000000;;, + 76;3; 0.135398, 0.070410, 0.000000;;, + 77;3; 0.135398, 0.070410, 0.000000;;, + 78;3; 0.135398, 0.070410, 0.000000;;, + 79;3; 0.135398, 0.070410, 0.000000;;, + 80;3; 0.135398, 0.070410, 0.000000;;, + 81;3; 0.135398, 0.070410, 0.000000;;, + 82;3; 0.135398, 0.070410, 0.000000;;, + 83;3; 0.135398, 0.070410, 0.000000;;, + 84;3; 0.135398, 0.070410, 0.000000;;, + 85;3; 0.135398, 0.070410, 0.000000;;, + 86;3; 0.135398, 0.070410, 0.000000;;, + 87;3; 0.135398, 0.070410, 0.000000;;, + 88;3; 0.135398, 0.070410, 0.000000;;, + 89;3; 0.135398, 0.070410, 0.000000;;, + 90;3; 0.135398, 0.070410, 0.000000;;, + 91;3; 0.135398, 0.070410, 0.000000;;, + 92;3; 0.135398, 0.070411, 0.000000;;, + 93;3; 0.135398, 0.070410, 0.000000;;, + 94;3; 0.135398, 0.070410, 0.000000;;, + 95;3; 0.135398, 0.070410, 0.000000;;, + 96;3; 0.135398, 0.070410, 0.000000;;, + 97;3; 0.135398, 0.070410, 0.000000;;, + 98;3; 0.135398, 0.070410, 0.000000;;, + 99;3; 0.135398, 0.070410, 0.000000;;, + 100;3; 0.135398, 0.070410, 0.000000;;, + 101;3; 0.135398, 0.070410, 0.000000;;, + 102;3; 0.135398, 0.070410, 0.000000;;, + 103;3; 0.135398, 0.070410, 0.000000;;, + 104;3; 0.135398, 0.070410, 0.000000;;, + 105;3; 0.135398, 0.070410, 0.000000;;, + 106;3; 0.135398, 0.070410, 0.000000;;, + 107;3; 0.135398, 0.070410, 0.000000;;; + } + AnimationKey { //Rotation + 0; + 108; + 0;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 1;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 2;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 3;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 4;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 5;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 6;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 7;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 8;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 9;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 10;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 11;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 12;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 13;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 14;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 15;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 16;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 17;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 18;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 19;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 20;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 21;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 22;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 23;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 24;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 25;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 26;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 27;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 28;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 29;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 30;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 31;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 32;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 33;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 34;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 35;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 36;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 37;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 38;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 39;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 40;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 41;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 42;4; -0.011497, 0.999015,-0.000000,-0.000000;;, + 43;4; -0.036781, 0.996849,-0.000000,-0.000000;;, + 44;4; -0.067423, 0.994224,-0.000000,-0.000000;;, + 45;4; -0.098518, 0.991561,-0.000000,-0.000000;;, + 46;4; -0.126725, 0.989144,-0.000000,-0.000000;;, + 47;4; -0.149480, 0.987195,-0.000000,-0.000000;;, + 48;4; -0.164603, 0.985899,-0.000000,-0.000000;;, + 49;4; -0.170083, 0.985430,-0.000000,-0.000000;;, + 50;4; -0.164181, 0.985935,-0.000000,-0.000000;;, + 51;4; -0.146564, 0.987445,-0.000000,-0.000000;;, + 52;4; -0.118829, 0.989821,-0.000000,-0.000000;;, + 53;4; -0.085044, 0.992715,-0.000000,-0.000000;;, + 54;4; -0.051258, 0.995609,-0.000000,-0.000000;;, + 55;4; -0.023522, 0.997985,-0.000000,-0.000000;;, + 56;4; -0.005903, 0.999494,-0.000000,-0.000000;;, + 57;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 58;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 59;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 60;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 61;4; 0.015161, 0.998698,-0.000000,-0.000000;;, + 62;4; 0.057858, 0.995031,-0.000000,-0.000000;;, + 63;4; 0.112676, 0.990322,-0.000000,-0.000000;;, + 64;4; 0.155368, 0.986655,-0.000000,-0.000000;;, + 65;4; 0.170525, 0.985353,-0.000000,-0.000000;;, + 66;4; 0.165031, 0.985825,-0.000000,-0.000000;;, + 67;4; 0.149868, 0.987128,-0.000000,-0.000000;;, + 68;4; 0.127055, 0.989087,-0.000000,-0.000000;;, + 69;4; 0.098775, 0.991516,-0.000000,-0.000000;;, + 70;4; 0.067600, 0.994194,-0.000000,-0.000000;;, + 71;4; 0.036878, 0.996833,-0.000000,-0.000000;;, + 72;4; 0.011527, 0.999010,-0.000000,-0.000000;;, + 73;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 74;4; 0.055475, 0.998460,-0.000000,-0.000000;;, + 75;4; 0.034281, 0.994439,-0.000000,-0.000000;;, + 76;4; -0.012328, 0.989066,-0.000000,-0.000000;;, + 77;4; -0.068815, 0.983361,-0.000000,-0.000000;;, + 78;4; -0.126137, 0.977927,-0.000000,-0.000000;;, + 79;4; -0.178136, 0.973177,-0.000000,-0.000000;;, + 80;4; -0.220084, 0.969440,-0.000000,-0.000000;;, + 81;4; -0.247962, 0.967001,-0.000000,-0.000000;;, + 82;4; -0.258065, 0.966128,-0.000000,-0.000000;;, + 83;4; -0.251248, 0.967264,-0.000000,-0.000000;;, + 84;4; -0.230090, 0.970657,-0.000000,-0.000000;;, + 85;4; -0.194778, 0.975997,-0.000000,-0.000000;;, + 86;4; -0.147975, 0.982503,-0.000000,-0.000000;;, + 87;4; -0.094886, 0.989009,-0.000000,-0.000000;;, + 88;4; -0.041671, 0.994350,-0.000000,-0.000000;;, + 89;4; 0.006683, 0.997742,-0.000000,-0.000000;;, + 90;4; 0.047348, 0.998878,-0.000000,-0.000000;;, + 91;4; 0.087012, 0.997046,-0.000000,-0.000000;;, + 92;4; 0.132380, 0.991576,-0.000000,-0.000000;;, + 93;4; 0.180897, 0.982965,-0.000000,-0.000000;;, + 94;4; 0.228266, 0.972475,-0.000000,-0.000000;;, + 95;4; 0.269349, 0.961985,-0.000000,-0.000000;;, + 96;4; 0.299967, 0.953373,-0.000000,-0.000000;;, + 97;4; 0.318143, 0.947904,-0.000000,-0.000000;;, + 98;4; 0.323959, 0.946071,-0.000000,-0.000000;;, + 99;4; 0.314574, 0.947893,-0.000000,-0.000000;;, + 100;4; 0.286565, 0.953331,-0.000000,-0.000000;;, + 101;4; 0.242473, 0.961891,-0.000000,-0.000000;;, + 102;4; 0.188759, 0.972320,-0.000000,-0.000000;;, + 103;4; 0.135032, 0.982748,-0.000000,-0.000000;;, + 104;4; 0.090913, 0.991309,-0.000000,-0.000000;;, + 105;4; 0.062878, 0.996747,-0.000000,-0.000000;;, + 106;4; 0.053483, 0.998569,-0.000000,-0.000000;;, + 107;4; 0.053483, 0.998569,-0.000000,-0.000000;;; + } + AnimationKey { //Scale + 1; + 108; + 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;;; + } + } + Animation { + {Armature_Bone_005} + AnimationKey { //Position + 2; + 108; + 0;3; -0.002513, 0.866015, 0.122502;;, + 1;3; -0.002513, 0.866015, 0.122502;;, + 2;3; -0.002513, 0.866015, 0.122502;;, + 3;3; -0.002513, 0.866015, 0.122502;;, + 4;3; -0.002513, 0.866015, 0.122502;;, + 5;3; -0.002513, 0.866015, 0.122502;;, + 6;3; -0.002513, 0.866015, 0.122502;;, + 7;3; -0.002513, 0.866015, 0.122502;;, + 8;3; -0.002513, 0.866015, 0.122502;;, + 9;3; -0.002513, 0.866015, 0.122502;;, + 10;3; -0.002513, 0.866015, 0.122502;;, + 11;3; -0.002513, 0.866015, 0.122502;;, + 12;3; -0.002513, 0.866015, 0.122502;;, + 13;3; -0.002513, 0.866015, 0.122502;;, + 14;3; -0.002513, 0.866015, 0.122502;;, + 15;3; -0.002513, 0.866015, 0.122502;;, + 16;3; -0.002513, 0.866015, 0.122502;;, + 17;3; -0.002513, 0.866015, 0.122502;;, + 18;3; -0.002513, 0.866015, 0.122502;;, + 19;3; -0.002513, 0.866015, 0.122502;;, + 20;3; -0.002513, 0.866015, 0.122502;;, + 21;3; -0.002513, 0.866015, 0.122502;;, + 22;3; -0.002513, 0.866015, 0.122502;;, + 23;3; -0.002513, 0.866015, 0.122502;;, + 24;3; -0.002513, 0.866015, 0.122502;;, + 25;3; -0.002513, 0.866015, 0.122502;;, + 26;3; -0.002513, 0.866015, 0.122502;;, + 27;3; -0.002513, 0.866015, 0.122502;;, + 28;3; -0.002513, 0.866015, 0.122502;;, + 29;3; -0.002513, 0.866015, 0.122502;;, + 30;3; -0.002513, 0.866015, 0.122502;;, + 31;3; -0.002513, 0.866015, 0.122502;;, + 32;3; -0.002513, 0.866015, 0.122502;;, + 33;3; -0.002513, 0.866015, 0.122502;;, + 34;3; -0.002513, 0.866015, 0.122502;;, + 35;3; -0.002513, 0.866015, 0.122502;;, + 36;3; -0.002513, 0.866015, 0.122502;;, + 37;3; -0.002513, 0.866015, 0.122502;;, + 38;3; -0.002513, 0.866015, 0.122502;;, + 39;3; -0.002513, 0.866015, 0.122502;;, + 40;3; -0.002513, 0.866015, 0.122502;;, + 41;3; -0.002513, 0.866015, 0.122502;;, + 42;3; -0.002513, 0.866015, 0.122502;;, + 43;3; -0.002513, 0.866015, 0.122502;;, + 44;3; -0.002513, 0.866015, 0.122502;;, + 45;3; -0.002513, 0.866015, 0.122502;;, + 46;3; -0.002513, 0.866015, 0.122502;;, + 47;3; -0.002513, 0.866015, 0.122502;;, + 48;3; -0.002513, 0.866015, 0.122502;;, + 49;3; -0.002513, 0.866015, 0.122502;;, + 50;3; -0.002513, 0.866015, 0.122502;;, + 51;3; -0.002513, 0.866015, 0.122502;;, + 52;3; -0.002513, 0.866015, 0.122502;;, + 53;3; -0.002513, 0.866015, 0.122502;;, + 54;3; -0.002513, 0.866015, 0.122502;;, + 55;3; -0.002513, 0.866015, 0.122502;;, + 56;3; -0.002513, 0.866015, 0.122502;;, + 57;3; -0.002513, 0.866015, 0.122502;;, + 58;3; -0.002513, 0.866015, 0.122502;;, + 59;3; -0.002513, 0.866015, 0.122502;;, + 60;3; -0.002513, 0.866015, 0.122502;;, + 61;3; -0.002513, 0.866015, 0.122502;;, + 62;3; -0.002513, 0.866015, 0.122502;;, + 63;3; -0.002513, 0.866015, 0.122502;;, + 64;3; -0.002513, 0.866015, 0.122502;;, + 65;3; -0.002513, 0.866015, 0.122502;;, + 66;3; -0.002513, 0.866015, 0.122502;;, + 67;3; -0.002513, 0.866015, 0.122502;;, + 68;3; -0.002513, 0.866015, 0.122502;;, + 69;3; -0.002513, 0.866015, 0.122502;;, + 70;3; -0.002513, 0.866015, 0.122502;;, + 71;3; -0.002513, 0.866015, 0.122502;;, + 72;3; -0.002513, 0.866015, 0.122502;;, + 73;3; -0.002513, 0.866015, 0.122502;;, + 74;3; -0.002513, 0.866015, 0.122502;;, + 75;3; -0.002513, 0.866015, 0.122502;;, + 76;3; -0.002513, 0.866015, 0.122502;;, + 77;3; -0.002513, 0.866015, 0.122502;;, + 78;3; -0.002513, 0.866015, 0.122502;;, + 79;3; -0.002513, 0.866015, 0.122502;;, + 80;3; -0.002513, 0.866015, 0.122502;;, + 81;3; -0.002513, 0.866015, 0.122502;;, + 82;3; -0.002513, 0.866015, 0.122502;;, + 83;3; -0.002513, 0.866015, 0.122502;;, + 84;3; -0.002513, 0.866015, 0.122502;;, + 85;3; -0.002513, 0.866015, 0.122502;;, + 86;3; -0.002513, 0.866015, 0.122502;;, + 87;3; -0.002513, 0.866015, 0.122502;;, + 88;3; -0.002513, 0.866015, 0.122502;;, + 89;3; -0.002513, 0.866015, 0.122502;;, + 90;3; -0.002513, 0.866015, 0.122502;;, + 91;3; -0.002513, 0.866015, 0.122502;;, + 92;3; -0.002513, 0.866015, 0.122502;;, + 93;3; -0.002513, 0.866015, 0.122502;;, + 94;3; -0.002513, 0.866015, 0.122502;;, + 95;3; -0.002513, 0.866015, 0.122502;;, + 96;3; -0.002513, 0.866015, 0.122502;;, + 97;3; -0.002513, 0.866015, 0.122502;;, + 98;3; -0.002513, 0.866015, 0.122502;;, + 99;3; -0.002513, 0.866015, 0.122502;;, + 100;3; -0.002513, 0.866015, 0.122502;;, + 101;3; -0.002513, 0.866015, 0.122502;;, + 102;3; -0.002513, 0.866015, 0.122502;;, + 103;3; -0.002513, 0.866015, 0.122502;;, + 104;3; -0.002513, 0.866015, 0.122502;;, + 105;3; -0.002513, 0.866015, 0.122502;;, + 106;3; -0.002513, 0.866015, 0.122502;;, + 107;3; -0.002513, 0.866015, 0.122502;;; + } + AnimationKey { //Rotation + 0; + 108; + 0;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 1;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 2;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 3;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 4;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 5;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 6;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 7;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 8;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 9;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 10;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 11;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 12;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 13;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 14;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 15;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 16;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 17;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 18;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 19;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 20;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 21;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 22;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 23;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 24;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 25;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 26;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 27;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 28;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 29;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 30;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 31;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 32;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 33;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 34;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 35;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 36;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 37;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 38;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 39;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 40;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 41;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 42;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 43;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 44;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 45;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 46;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 47;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 48;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 49;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 50;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 51;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 52;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 53;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 54;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 55;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 56;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 57;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 58;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 59;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 60;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 61;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 62;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 63;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 64;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 65;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 66;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 67;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 68;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 69;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 70;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 71;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 72;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 73;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 74;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 75;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 76;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 77;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 78;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 79;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 80;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 81;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 82;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 83;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 84;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 85;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 86;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 87;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 88;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 89;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 90;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 91;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 92;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 93;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 94;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 95;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 96;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 97;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 98;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 99;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 100;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 101;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 102;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 103;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 104;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 105;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 106;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 107;4; -0.999935,-0.004138, 0.000565,-0.000851;;; + } + AnimationKey { //Scale + 1; + 108; + 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;;; + } + } + Animation { + {Armature_Body_001} + AnimationKey { //Position + 2; + 108; + 0;3; 0.000000, 0.187946,-0.206990;;, + 1;3; 0.000000, 0.187946,-0.206990;;, + 2;3; 0.000000, 0.187946,-0.206990;;, + 3;3; 0.000000, 0.187946,-0.206990;;, + 4;3; 0.000000, 0.187946,-0.206990;;, + 5;3; 0.000000, 0.187946,-0.206990;;, + 6;3; 0.000000, 0.187946,-0.206990;;, + 7;3; 0.000000, 0.187946,-0.206990;;, + 8;3; 0.000000, 0.187946,-0.206990;;, + 9;3; 0.000000, 0.187946,-0.206990;;, + 10;3; 0.000000, 0.187946,-0.206990;;, + 11;3; 0.000000, 0.187946,-0.206990;;, + 12;3; 0.000000, 0.187946,-0.206990;;, + 13;3; 0.000000, 0.187946,-0.206990;;, + 14;3; 0.000000, 0.187946,-0.206990;;, + 15;3; 0.000000, 0.187946,-0.206990;;, + 16;3; 0.000000, 0.187946,-0.206990;;, + 17;3; 0.000000, 0.187946,-0.206990;;, + 18;3; 0.000000, 0.187946,-0.206990;;, + 19;3; 0.000000, 0.187946,-0.206990;;, + 20;3; 0.000000, 0.187946,-0.206990;;, + 21;3; 0.000000, 0.187946,-0.206990;;, + 22;3; 0.000000, 0.187946,-0.206990;;, + 23;3; 0.000000, 0.187946,-0.206990;;, + 24;3; 0.000000, 0.187946,-0.206990;;, + 25;3; 0.000000, 0.187946,-0.206990;;, + 26;3; 0.000000, 0.187946,-0.206990;;, + 27;3; 0.000000, 0.187946,-0.206990;;, + 28;3; 0.000000, 0.187946,-0.206990;;, + 29;3; 0.000000, 0.187946,-0.206990;;, + 30;3; 0.000000, 0.187946,-0.206990;;, + 31;3; 0.000000, 0.187946,-0.206990;;, + 32;3; 0.000000, 0.187946,-0.206990;;, + 33;3; 0.000000, 0.187946,-0.206990;;, + 34;3; 0.000000, 0.187946,-0.206990;;, + 35;3; 0.000000, 0.187946,-0.206990;;, + 36;3; 0.000000, 0.187946,-0.206990;;, + 37;3; 0.000000, 0.187946,-0.206990;;, + 38;3; 0.000000, 0.187946,-0.206990;;, + 39;3; 0.000000, 0.187946,-0.206990;;, + 40;3; 0.000000, 0.187946,-0.206990;;, + 41;3; 0.000000, 0.187946,-0.206990;;, + 42;3; 0.000000, 0.187946,-0.206990;;, + 43;3; 0.000000, 0.187946,-0.206990;;, + 44;3; 0.000000, 0.187946,-0.206990;;, + 45;3; 0.000000, 0.187946,-0.206990;;, + 46;3; 0.000000, 0.187946,-0.206990;;, + 47;3; 0.000000, 0.187946,-0.206990;;, + 48;3; 0.000000, 0.187946,-0.206990;;, + 49;3; 0.000000, 0.187946,-0.206990;;, + 50;3; 0.000000, 0.187946,-0.206990;;, + 51;3; 0.000000, 0.187946,-0.206990;;, + 52;3; 0.000000, 0.187946,-0.206990;;, + 53;3; 0.000000, 0.187946,-0.206990;;, + 54;3; 0.000000, 0.187946,-0.206990;;, + 55;3; 0.000000, 0.187946,-0.206990;;, + 56;3; 0.000000, 0.187946,-0.206990;;, + 57;3; 0.000000, 0.187946,-0.206990;;, + 58;3; 0.000000, 0.187946,-0.206990;;, + 59;3; 0.000000, 0.187946,-0.206990;;, + 60;3; 0.000000, 0.187946,-0.206990;;, + 61;3; 0.000000, 0.187946,-0.206990;;, + 62;3; 0.000000, 0.187946,-0.206990;;, + 63;3; 0.000000, 0.187946,-0.206990;;, + 64;3; 0.000000, 0.187946,-0.206990;;, + 65;3; 0.000000, 0.187946,-0.206990;;, + 66;3; 0.000000, 0.187946,-0.206990;;, + 67;3; 0.000000, 0.187946,-0.206990;;, + 68;3; 0.000000, 0.187946,-0.206990;;, + 69;3; 0.000000, 0.187946,-0.206990;;, + 70;3; 0.000000, 0.187946,-0.206990;;, + 71;3; 0.000000, 0.187946,-0.206990;;, + 72;3; 0.000000, 0.187946,-0.206990;;, + 73;3; 0.000000, 0.187946,-0.206990;;, + 74;3; 0.000000, 0.187946,-0.206990;;, + 75;3; 0.000000, 0.187946,-0.206990;;, + 76;3; 0.000000, 0.187946,-0.206990;;, + 77;3; 0.000000, 0.187946,-0.206990;;, + 78;3; 0.000000, 0.187946,-0.206990;;, + 79;3; 0.000000, 0.187946,-0.206990;;, + 80;3; 0.000000, 0.187946,-0.206990;;, + 81;3; 0.000000, 0.187946,-0.206990;;, + 82;3; 0.000000, 0.187946,-0.206990;;, + 83;3; 0.000000, 0.187946,-0.206990;;, + 84;3; 0.000000, 0.187946,-0.206990;;, + 85;3; 0.000000, 0.187946,-0.206990;;, + 86;3; 0.000000, 0.187946,-0.206990;;, + 87;3; 0.000000, 0.187946,-0.206990;;, + 88;3; 0.000000, 0.187946,-0.206990;;, + 89;3; 0.000000, 0.187946,-0.206990;;, + 90;3; 0.000000, 0.187946,-0.206990;;, + 91;3; 0.000000, 0.187946,-0.206990;;, + 92;3; 0.000000, 0.187946,-0.206990;;, + 93;3; 0.000000, 0.187946,-0.206990;;, + 94;3; 0.000000, 0.187946,-0.206990;;, + 95;3; 0.000000, 0.187946,-0.206990;;, + 96;3; 0.000000, 0.187946,-0.206990;;, + 97;3; 0.000000, 0.187946,-0.206990;;, + 98;3; 0.000000, 0.187946,-0.206990;;, + 99;3; 0.000000, 0.187946,-0.206990;;, + 100;3; 0.000000, 0.187946,-0.206990;;, + 101;3; 0.000000, 0.187946,-0.206990;;, + 102;3; 0.000000, 0.187946,-0.206990;;, + 103;3; 0.000000, 0.187946,-0.206990;;, + 104;3; 0.000000, 0.187946,-0.206990;;, + 105;3; 0.000000, 0.187946,-0.206990;;, + 106;3; 0.000000, 0.187946,-0.206990;;, + 107;3; 0.000000, 0.187946,-0.206990;;; + } + AnimationKey { //Rotation + 0; + 108; + 0;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 1;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 2;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 3;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 4;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 5;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 6;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 7;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 8;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 9;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 10;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 11;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 12;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 13;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 14;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 15;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 16;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 17;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 18;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 19;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 20;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 21;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 22;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 23;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 24;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 25;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 26;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 27;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 28;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 29;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 30;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 31;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 32;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 33;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 34;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 35;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 36;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 37;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 38;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 39;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 40;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 41;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 42;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 43;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 44;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 45;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 46;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 47;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 48;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 49;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 50;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 51;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 52;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 53;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 54;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 55;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 56;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 57;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 58;4; 0.001880, 0.999959, 0.000000,-0.000000;;, + 59;4; 0.007192, 0.999844, 0.000000,-0.000000;;, + 60;4; 0.013047, 0.999717, 0.000000,-0.000000;;, + 61;4; 0.019463, 0.999578, 0.000000,-0.000000;;, + 62;4; 0.027724, 0.999400, 0.000000,-0.000000;;, + 63;4; 0.035868, 0.999223, 0.000000,-0.000000;;, + 64;4; 0.041445, 0.999102, 0.000000,-0.000000;;, + 65;4; 0.043294, 0.999062, 0.000000,-0.000000;;, + 66;4; 0.041899, 0.999093, 0.000000,-0.000000;;, + 67;4; 0.038050, 0.999176, 0.000000,-0.000000;;, + 68;4; 0.032257, 0.999301, 0.000000,-0.000000;;, + 69;4; 0.025077, 0.999457, 0.000000,-0.000000;;, + 70;4; 0.017162, 0.999628, 0.000000,-0.000000;;, + 71;4; 0.009362, 0.999797, 0.000000,-0.000000;;, + 72;4; 0.002926, 0.999937, 0.000000,-0.000000;;, + 73;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 74;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 75;4; 0.015626, 0.998169, 0.000000,-0.000000;;, + 76;4; 0.049991, 0.994143, 0.000000,-0.000000;;, + 77;4; 0.091638, 0.989263, 0.000000,-0.000000;;, + 78;4; 0.133898, 0.984312, 0.000000,-0.000000;;, + 79;4; 0.172235, 0.979820, 0.000000,-0.000000;;, + 80;4; 0.203160, 0.976196, 0.000000,-0.000000;;, + 81;4; 0.223714, 0.973788, 0.000000,-0.000000;;, + 82;4; 0.231162, 0.972915, 0.000000,-0.000000;;, + 83;4; 0.223140, 0.973855, 0.000000,-0.000000;;, + 84;4; 0.199196, 0.976661, 0.000000,-0.000000;;, + 85;4; 0.161500, 0.981077, 0.000000,-0.000000;;, + 86;4; 0.115581, 0.986458, 0.000000,-0.000000;;, + 87;4; 0.069662, 0.991838, 0.000000,-0.000000;;, + 88;4; 0.031966, 0.996255, 0.000000,-0.000000;;, + 89;4; 0.008022, 0.999060, 0.000000,-0.000000;;, + 90;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 91;4; 0.006839, 0.999319, 0.000000,-0.000000;;, + 92;4; 0.027254, 0.997288, 0.000000,-0.000000;;, + 93;4; 0.059392, 0.994089, 0.000000,-0.000000;;, + 94;4; 0.098542, 0.990193, 0.000000,-0.000000;;, + 95;4; 0.137691, 0.986297, 0.000000,-0.000000;;, + 96;4; 0.169830, 0.983099, 0.000000,-0.000000;;, + 97;4; 0.190244, 0.981067, 0.000000,-0.000000;;, + 98;4; 0.197083, 0.980387, 0.000000,-0.000000;;, + 99;4; 0.190245, 0.981067, 0.000000,-0.000000;;, + 100;4; 0.169833, 0.983099, 0.000000,-0.000000;;, + 101;4; 0.137700, 0.986297, 0.000000,-0.000000;;, + 102;4; 0.098556, 0.990193, 0.000000,-0.000000;;, + 103;4; 0.059407, 0.994089, 0.000000,-0.000000;;, + 104;4; 0.027264, 0.997288, 0.000000,-0.000000;;, + 105;4; 0.006842, 0.999319, 0.000000,-0.000000;;, + 106;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 107;4; -0.000000, 1.000000, 0.000000,-0.000000;;; + } + AnimationKey { //Scale + 1; + 108; + 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;;; + } + } + Animation { + {Armature_Body_002} + AnimationKey { //Position + 2; + 108; + 0;3; 0.000000, 0.185728, 0.203380;;, + 1;3; 0.000000, 0.185728, 0.203380;;, + 2;3; 0.000000, 0.185728, 0.203380;;, + 3;3; 0.000000, 0.185728, 0.203380;;, + 4;3; 0.000000, 0.185728, 0.203380;;, + 5;3; 0.000000, 0.185728, 0.203380;;, + 6;3; 0.000000, 0.185728, 0.203380;;, + 7;3; 0.000000, 0.185728, 0.203380;;, + 8;3; 0.000000, 0.185728, 0.203380;;, + 9;3; 0.000000, 0.185728, 0.203380;;, + 10;3; 0.000000, 0.185728, 0.203380;;, + 11;3; 0.000000, 0.185728, 0.203380;;, + 12;3; 0.000000, 0.185728, 0.203380;;, + 13;3; 0.000000, 0.185728, 0.203380;;, + 14;3; 0.000000, 0.185728, 0.203380;;, + 15;3; 0.000000, 0.185728, 0.203380;;, + 16;3; 0.000000, 0.185728, 0.203380;;, + 17;3; 0.000000, 0.185728, 0.203380;;, + 18;3; 0.000000, 0.185728, 0.203380;;, + 19;3; 0.000000, 0.185728, 0.203380;;, + 20;3; 0.000000, 0.185728, 0.203380;;, + 21;3; 0.000000, 0.185728, 0.203380;;, + 22;3; 0.000000, 0.185728, 0.203380;;, + 23;3; 0.000000, 0.185728, 0.203380;;, + 24;3; 0.000000, 0.185728, 0.203380;;, + 25;3; 0.000000, 0.185728, 0.203380;;, + 26;3; 0.000000, 0.185728, 0.203380;;, + 27;3; 0.000000, 0.185728, 0.203380;;, + 28;3; 0.000000, 0.185728, 0.203380;;, + 29;3; 0.000000, 0.185728, 0.203380;;, + 30;3; 0.000000, 0.185728, 0.203380;;, + 31;3; 0.000000, 0.185728, 0.203380;;, + 32;3; 0.000000, 0.185728, 0.203380;;, + 33;3; 0.000000, 0.185728, 0.203380;;, + 34;3; 0.000000, 0.185728, 0.203380;;, + 35;3; 0.000000, 0.185728, 0.203380;;, + 36;3; 0.000000, 0.185728, 0.203380;;, + 37;3; 0.000000, 0.185728, 0.203380;;, + 38;3; 0.000000, 0.185728, 0.203380;;, + 39;3; 0.000000, 0.185728, 0.203380;;, + 40;3; 0.000000, 0.185728, 0.203380;;, + 41;3; 0.000000, 0.185728, 0.203380;;, + 42;3; 0.000000, 0.185728, 0.203380;;, + 43;3; 0.000000, 0.185728, 0.203380;;, + 44;3; 0.000000, 0.185728, 0.203380;;, + 45;3; 0.000000, 0.185728, 0.203380;;, + 46;3; 0.000000, 0.185728, 0.203380;;, + 47;3; 0.000000, 0.185728, 0.203380;;, + 48;3; 0.000000, 0.185728, 0.203380;;, + 49;3; 0.000000, 0.185728, 0.203380;;, + 50;3; 0.000000, 0.185728, 0.203380;;, + 51;3; 0.000000, 0.185728, 0.203380;;, + 52;3; 0.000000, 0.185728, 0.203380;;, + 53;3; 0.000000, 0.185728, 0.203380;;, + 54;3; 0.000000, 0.185728, 0.203380;;, + 55;3; 0.000000, 0.185728, 0.203380;;, + 56;3; 0.000000, 0.185728, 0.203380;;, + 57;3; 0.000000, 0.185728, 0.203380;;, + 58;3; 0.000000, 0.185728, 0.203380;;, + 59;3; 0.000000, 0.185728, 0.203380;;, + 60;3; 0.000000, 0.185728, 0.203380;;, + 61;3; 0.000000, 0.185728, 0.203380;;, + 62;3; 0.000000, 0.185728, 0.203380;;, + 63;3; 0.000000, 0.185728, 0.203380;;, + 64;3; 0.000000, 0.185728, 0.203380;;, + 65;3; 0.000000, 0.185728, 0.203380;;, + 66;3; 0.000000, 0.185728, 0.203380;;, + 67;3; 0.000000, 0.185728, 0.203380;;, + 68;3; 0.000000, 0.185728, 0.203380;;, + 69;3; 0.000000, 0.185728, 0.203380;;, + 70;3; 0.000000, 0.185728, 0.203380;;, + 71;3; 0.000000, 0.185728, 0.203380;;, + 72;3; 0.000000, 0.185728, 0.203380;;, + 73;3; 0.000000, 0.185728, 0.203380;;, + 74;3; 0.000000, 0.185728, 0.203380;;, + 75;3; 0.000000, 0.185728, 0.203380;;, + 76;3; 0.000000, 0.185728, 0.203380;;, + 77;3; 0.000000, 0.185728, 0.203380;;, + 78;3; 0.000000, 0.185728, 0.203380;;, + 79;3; 0.000000, 0.185728, 0.203380;;, + 80;3; 0.000000, 0.185727, 0.203380;;, + 81;3; 0.000000, 0.185728, 0.203380;;, + 82;3; 0.000000, 0.185728, 0.203380;;, + 83;3; 0.000000, 0.185728, 0.203380;;, + 84;3; 0.000000, 0.185727, 0.203380;;, + 85;3; 0.000000, 0.185728, 0.203380;;, + 86;3; 0.000000, 0.185728, 0.203380;;, + 87;3; 0.000000, 0.185728, 0.203380;;, + 88;3; 0.000000, 0.185728, 0.203380;;, + 89;3; 0.000000, 0.185728, 0.203380;;, + 90;3; 0.000000, 0.185728, 0.203380;;, + 91;3; 0.000000, 0.185728, 0.203380;;, + 92;3; 0.000000, 0.185728, 0.203380;;, + 93;3; 0.000000, 0.185728, 0.203380;;, + 94;3; 0.000000, 0.185728, 0.203380;;, + 95;3; 0.000000, 0.185728, 0.203380;;, + 96;3; 0.000000, 0.185728, 0.203380;;, + 97;3; 0.000000, 0.185728, 0.203380;;, + 98;3; 0.000000, 0.185728, 0.203380;;, + 99;3; 0.000000, 0.185728, 0.203380;;, + 100;3; 0.000000, 0.185728, 0.203380;;, + 101;3; 0.000000, 0.185728, 0.203380;;, + 102;3; 0.000000, 0.185728, 0.203380;;, + 103;3; 0.000000, 0.185728, 0.203380;;, + 104;3; 0.000000, 0.185728, 0.203380;;, + 105;3; 0.000000, 0.185728, 0.203380;;, + 106;3; 0.000000, 0.185728, 0.203380;;, + 107;3; 0.000000, 0.185728, 0.203380;;; + } + AnimationKey { //Rotation + 0; + 108; + 0;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 1;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 2;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 3;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 4;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 5;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 6;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 7;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 8;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 9;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 10;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 11;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 12;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 13;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 14;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 15;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 16;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 17;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 18;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 19;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 20;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 21;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 22;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 23;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 24;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 25;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 26;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 27;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 28;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 29;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 30;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 31;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 32;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 33;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 34;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 35;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 36;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 37;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 38;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 39;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 40;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 41;4; -0.000000, 1.000000,-0.000000, 0.000000;;, + 42;4; -0.004277, 0.999865, 0.000000, 0.000000;;, + 43;4; -0.013685, 0.999567, 0.000000, 0.000000;;, + 44;4; -0.025085, 0.999205, 0.000000, 0.000000;;, + 45;4; -0.036655, 0.998839, 0.000000, 0.000000;;, + 46;4; -0.047150, 0.998507, 0.000000, 0.000000;;, + 47;4; -0.055616, 0.998239, 0.000000, 0.000000;;, + 48;4; -0.061243, 0.998060, 0.000000, 0.000000;;, + 49;4; -0.063282, 0.997996, 0.000000, 0.000000;;, + 50;4; -0.061086, 0.998065, 0.000000, 0.000000;;, + 51;4; -0.054531, 0.998273, 0.000000, 0.000000;;, + 52;4; -0.044212, 0.998600, 0.000000, 0.000000;;, + 53;4; -0.031641, 0.998998, 0.000000, 0.000000;;, + 54;4; -0.019070, 0.999396, 0.000000, 0.000000;;, + 55;4; -0.008751, 0.999723, 0.000000, 0.000000;;, + 56;4; -0.002196, 0.999930, 0.000000, 0.000000;;, + 57;4; -0.000000, 1.000000,-0.000000, 0.000000;;, + 58;4; -0.002423, 0.999932, 0.000000, 0.000000;;, + 59;4; -0.009268, 0.999741, 0.000000, 0.000000;;, + 60;4; -0.016812, 0.999531, 0.000000, 0.000000;;, + 61;4; -0.025079, 0.999300, 0.000000, 0.000000;;, + 62;4; -0.035723, 0.999003, 0.000000, 0.000000;;, + 63;4; -0.046218, 0.998710, 0.000000, 0.000000;;, + 64;4; -0.053403, 0.998509, 0.000000, 0.000000;;, + 65;4; -0.055786, 0.998443, 0.000000, 0.000000;;, + 66;4; -0.053989, 0.998493, 0.000000, 0.000000;;, + 67;4; -0.049029, 0.998631, 0.000000, 0.000000;;, + 68;4; -0.041565, 0.998840, 0.000000, 0.000000;;, + 69;4; -0.032313, 0.999098, 0.000000, 0.000000;;, + 70;4; -0.022114, 0.999383, 0.000000, 0.000000;;, + 71;4; -0.012064, 0.999663, 0.000000, 0.000000;;, + 72;4; -0.003771, 0.999895, 0.000000, 0.000000;;, + 73;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 74;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 75;4; -0.007476, 0.999644, 0.000000, 0.000000;;, + 76;4; -0.023917, 0.998849, 0.000000, 0.000000;;, + 77;4; -0.043843, 0.997862, 0.000000, 0.000000;;, + 78;4; -0.064063, 0.996828, 0.000000, 0.000000;;, + 79;4; -0.082406, 0.995842, 0.000000, 0.000000;;, + 80;4; -0.097203, 0.994979, 0.000000, 0.000000;;, + 81;4; -0.107038, 0.994301, 0.000000, 0.000000;;, + 82;4; -0.110602, 0.993865, 0.000000, 0.000000;;, + 83;4; -0.102646, 0.993617, 0.000000, 0.000000;;, + 84;4; -0.078897, 0.993470, 0.000000, 0.000000;;, + 85;4; -0.041511, 0.993409, 0.000000, 0.000000;;, + 86;4; 0.004030, 0.993400,-0.000000, 0.000000;;, + 87;4; 0.049571, 0.993391,-0.000000, 0.000000;;, + 88;4; 0.086957, 0.993330,-0.000000, 0.000000;;, + 89;4; 0.110704, 0.993182,-0.000000, 0.000000;;, + 90;4; 0.118660, 0.992935,-0.000000, 0.000000;;, + 91;4; 0.108565, 0.992415,-0.000000, 0.000000;;, + 92;4; 0.078432, 0.991462,-0.000000, 0.000000;;, + 93;4; 0.030993, 0.990149,-0.000000, 0.000000;;, + 94;4; -0.026794, 0.988645, 0.000000, 0.000000;;, + 95;4; -0.084582, 0.987193, 0.000000, 0.000000;;, + 96;4; -0.132021, 0.986026, 0.000000, 0.000000;;, + 97;4; -0.162155, 0.985296, 0.000000, 0.000000;;, + 98;4; -0.172251, 0.985053, 0.000000, 0.000000;;, + 99;4; -0.166274, 0.985572, 0.000000, 0.000000;;, + 100;4; -0.148433, 0.987120, 0.000000, 0.000000;;, + 101;4; -0.120347, 0.989557, 0.000000, 0.000000;;, + 102;4; -0.086134, 0.992527, 0.000000, 0.000000;;, + 103;4; -0.051918, 0.995496, 0.000000, 0.000000;;, + 104;4; -0.023827, 0.997933, 0.000000, 0.000000;;, + 105;4; -0.005980, 0.999481, 0.000000, 0.000000;;, + 106;4; -0.000000, 1.000000, 0.000000, 0.000000;;, + 107;4; -0.000000, 1.000000, 0.000000, 0.000000;;; + } + AnimationKey { //Scale + 1; + 108; + 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;;; + } + } + Animation { + {Armature_IK_head} + AnimationKey { //Position + 2; + 108; + 0;3; -0.002513, 2.032632,-0.710142;;, + 1;3; 0.003029, 2.032632,-0.710205;;, + 2;3; 0.019705, 2.032632,-0.710394;;, + 3;3; 0.046815, 2.032632,-0.710702;;, + 4;3; 0.082268, 2.032632,-0.711105;;, + 5;3; 0.122426, 2.032632,-0.711561;;, + 6;3; 0.162579, 2.032632,-0.712017;;, + 7;3; 0.198022, 2.032632,-0.712420;;, + 8;3; 0.225121, 2.032632,-0.712728;;, + 9;3; 0.241788, 2.032632,-0.712917;;, + 10;3; 0.247326, 2.032632,-0.712980;;, + 11;3; 0.244145, 2.032632,-0.712714;;, + 12;3; 0.234264, 2.032632,-0.711886;;, + 13;3; 0.217479, 2.032632,-0.710481;;, + 14;3; 0.194218, 2.032632,-0.708534;;, + 15;3; 0.165740, 2.032632,-0.706149;;, + 16;3; 0.134057, 2.032632,-0.703497;;, + 17;3; 0.101506, 2.032632,-0.700772;;, + 18;3; 0.070184, 2.032632,-0.698150;;, + 19;3; 0.041593, 2.032632,-0.695756;;, + 20;3; 0.016584, 2.032632,-0.693663;;, + 21;3; -0.008426, 2.032632,-0.691569;;, + 22;3; -0.037016, 2.032632,-0.689175;;, + 23;3; -0.068338, 2.032632,-0.686553;;, + 24;3; -0.100890, 2.032632,-0.683828;;, + 25;3; -0.132572, 2.032632,-0.681176;;, + 26;3; -0.161050, 2.032632,-0.678791;;, + 27;3; -0.184311, 2.032632,-0.676844;;, + 28;3; -0.201096, 2.032632,-0.675439;;, + 29;3; -0.210978, 2.032632,-0.674611;;, + 30;3; -0.214159, 2.032632,-0.674345;;, + 31;3; -0.209825, 2.032632,-0.675078;;, + 32;3; -0.197888, 2.032632,-0.677097;;, + 33;3; -0.179747, 2.032632,-0.680165;;, + 34;3; -0.156637, 2.032632,-0.684074;;, + 35;3; -0.129732, 2.032632,-0.688625;;, + 36;3; -0.100266, 2.032632,-0.693608;;, + 37;3; -0.069709, 2.032632,-0.698777;;, + 38;3; -0.040113, 2.032632,-0.703782;;, + 39;3; -0.014989, 2.032632,-0.708032;;, + 40;3; -0.002513, 2.032632,-0.710142;;, + 41;3; -0.002513, 2.032632,-0.710142;;, + 42;3; -0.008930, 2.032632,-0.710142;;, + 43;3; -0.023043, 2.032632,-0.710142;;, + 44;3; -0.040147, 2.032632,-0.710142;;, + 45;3; -0.057504, 2.032632,-0.710142;;, + 46;3; -0.073249, 2.032632,-0.710142;;, + 47;3; -0.085951, 2.032632,-0.710142;;, + 48;3; -0.094393, 2.032632,-0.710142;;, + 49;3; -0.097452, 2.032632,-0.710142;;, + 50;3; -0.095389, 2.032632,-0.710092;;, + 51;3; -0.088904, 2.032632,-0.709935;;, + 52;3; -0.077889, 2.032632,-0.709668;;, + 53;3; -0.062950, 2.032632,-0.709307;;, + 54;3; -0.045489, 2.032632,-0.708884;;, + 55;3; -0.027292, 2.032632,-0.708443;;, + 56;3; -0.009895, 2.032632,-0.708022;;, + 57;3; 0.005751, 2.032632,-0.707643;;, + 58;3; 0.021832, 2.032632,-0.707254;;, + 59;3; 0.039347, 2.032632,-0.706830;;, + 60;3; 0.054648, 2.032632,-0.706460;;, + 61;3; 0.069212, 2.032632,-0.706107;;, + 62;3; 0.084604, 2.032632,-0.705735;;, + 63;3; 0.097938, 2.032632,-0.705412;;, + 64;3; 0.106319, 2.032632,-0.705209;;, + 65;3; 0.108954, 2.032632,-0.705145;;, + 66;3; 0.105086, 2.032632,-0.705318;;, + 67;3; 0.093540, 2.032632,-0.705836;;, + 68;3; 0.075363, 2.032632,-0.706651;;, + 69;3; 0.053221, 2.032632,-0.707643;;, + 70;3; 0.031078, 2.032632,-0.708636;;, + 71;3; 0.012901, 2.032632,-0.709451;;, + 72;3; 0.001355, 2.032632,-0.709968;;, + 73;3; -0.002513, 2.032632,-0.710142;;, + 74;3; -0.002513, 1.936344,-1.928771;;, + 75;3; -0.002513, 1.945240,-1.927712;;, + 76;3; -0.002513, 1.971791,-1.924551;;, + 77;3; -0.002513, 2.013590,-1.919574;;, + 78;3; -0.002513, 2.064508,-1.913512;;, + 79;3; -0.002513, 2.115429,-1.907449;;, + 80;3; -0.002513, 2.157234,-1.902473;;, + 81;3; -0.002513, 2.183791,-1.899312;;, + 82;3; -0.002513, 2.192689,-1.898253;;, + 83;3; -0.002513, 2.179227,-1.899748;;, + 84;3; -0.002513, 2.139049,-1.904208;;, + 85;3; -0.002513, 2.075801,-1.911230;;, + 86;3; -0.002513, 1.998762,-1.919784;;, + 87;3; -0.002513, 1.921726,-1.928343;;, + 88;3; -0.002513, 1.858487,-1.935375;;, + 89;3; -0.002513, 1.818318,-1.939846;;, + 90;3; -0.002513, 1.804860,-1.941345;;, + 91;3; -0.002513, 1.818518,-1.925309;;, + 92;3; -0.002513, 1.859243,-1.877552;;, + 93;3; -0.002513, 1.923315,-1.802499;;, + 94;3; -0.002513, 2.001404,-1.711082;;, + 95;3; -0.002513, 2.079635,-1.619478;;, + 96;3; -0.002513, 2.144034,-1.543998;;, + 97;3; -0.002513, 2.185064,-1.495840;;, + 98;3; -0.002513, 2.198845,-1.479644;;, + 99;3; -0.002513, 2.189593,-1.495524;;, + 100;3; -0.002513, 2.161810,-1.543163;;, + 101;3; -0.002513, 2.118002,-1.618187;;, + 102;3; -0.002513, 2.065008,-1.708839;;, + 103;3; -0.002513, 2.012862,-1.797974;;, + 104;3; -0.002513, 1.970968,-1.869573;;, + 105;3; -0.002513, 1.944924,-1.914098;;, + 106;3; -0.002513, 1.936344,-1.928771;;, + 107;3; -0.015253, 1.944273,-1.915417;;; + } + AnimationKey { //Rotation + 0; + 108; + 0;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 1;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 2;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 3;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 4;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 5;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 6;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 7;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 8;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 9;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 10;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 11;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 12;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 13;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 14;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 15;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 16;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 17;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 18;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 19;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 20;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 21;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 22;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 23;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 24;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 25;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 26;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 27;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 28;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 29;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 30;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 31;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 32;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 33;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 34;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 35;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 36;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 37;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 38;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 39;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 40;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 41;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 42;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 43;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 44;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 45;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 46;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 47;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 48;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 49;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 50;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 51;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 52;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 53;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 54;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 55;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 56;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 57;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 58;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 59;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 60;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 61;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 62;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 63;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 64;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 65;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 66;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 67;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 68;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 69;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 70;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 71;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 72;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 73;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 74;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 75;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 76;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 77;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 78;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 79;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 80;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 81;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 82;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 83;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 84;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 85;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 86;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 87;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 88;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 89;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 90;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 91;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 92;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 93;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 94;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 95;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 96;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 97;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 98;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 99;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 100;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 101;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 102;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 103;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 104;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 105;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 106;4; -0.999994,-0.003482, 0.000000,-0.000000;;, + 107;4; -0.999994,-0.003482, 0.000000,-0.000000;;; + } + AnimationKey { //Scale + 1; + 108; + 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;;; + } + } + Animation { + {Armature_Bone_006} + AnimationKey { //Position + 2; + 108; + 0;3; -0.000000, 0.306782, 0.000000;;, + 1;3; -0.000000, 0.306782, 0.000000;;, + 2;3; -0.000000, 0.306782, 0.000000;;, + 3;3; -0.000000, 0.306782, 0.000000;;, + 4;3; -0.000000, 0.306782, 0.000000;;, + 5;3; -0.000000, 0.306782, 0.000000;;, + 6;3; -0.000000, 0.306782, 0.000000;;, + 7;3; -0.000000, 0.306782, 0.000000;;, + 8;3; -0.000000, 0.306782, 0.000000;;, + 9;3; -0.000000, 0.306782, 0.000000;;, + 10;3; -0.000000, 0.306782, 0.000000;;, + 11;3; -0.000000, 0.306782, 0.000000;;, + 12;3; -0.000000, 0.306782, 0.000000;;, + 13;3; -0.000000, 0.306782, 0.000000;;, + 14;3; -0.000000, 0.306782, 0.000000;;, + 15;3; -0.000000, 0.306782, 0.000000;;, + 16;3; -0.000000, 0.306782, 0.000000;;, + 17;3; -0.000000, 0.306782, 0.000000;;, + 18;3; -0.000000, 0.306782, 0.000000;;, + 19;3; -0.000000, 0.306782, 0.000000;;, + 20;3; -0.000000, 0.306782, 0.000000;;, + 21;3; -0.000000, 0.306782, 0.000000;;, + 22;3; -0.000000, 0.306782, 0.000000;;, + 23;3; -0.000000, 0.306782, 0.000000;;, + 24;3; -0.000000, 0.306782, 0.000000;;, + 25;3; -0.000000, 0.306782, 0.000000;;, + 26;3; -0.000000, 0.306782, 0.000000;;, + 27;3; -0.000000, 0.306782, 0.000000;;, + 28;3; -0.000000, 0.306782, 0.000000;;, + 29;3; -0.000000, 0.306782, 0.000000;;, + 30;3; -0.000000, 0.306782, 0.000000;;, + 31;3; -0.000000, 0.306782, 0.000000;;, + 32;3; -0.000000, 0.306782, 0.000000;;, + 33;3; -0.000000, 0.306782, 0.000000;;, + 34;3; -0.000000, 0.306782, 0.000000;;, + 35;3; -0.000000, 0.306782, 0.000000;;, + 36;3; -0.000000, 0.306782, 0.000000;;, + 37;3; -0.000000, 0.306782, 0.000000;;, + 38;3; -0.000000, 0.306782, 0.000000;;, + 39;3; -0.000000, 0.306782, 0.000000;;, + 40;3; -0.000000, 0.306782, 0.000000;;, + 41;3; -0.000000, 0.306782, 0.000000;;, + 42;3; -0.000000, 0.306782, 0.000000;;, + 43;3; -0.000000, 0.306782, 0.000000;;, + 44;3; -0.000000, 0.306782, 0.000000;;, + 45;3; -0.000000, 0.306782, 0.000000;;, + 46;3; -0.000000, 0.306782, 0.000000;;, + 47;3; -0.000000, 0.306782, 0.000000;;, + 48;3; -0.000000, 0.306782, 0.000000;;, + 49;3; -0.000000, 0.306782, 0.000000;;, + 50;3; -0.000000, 0.306782, 0.000000;;, + 51;3; -0.000000, 0.306782, 0.000000;;, + 52;3; -0.000000, 0.306782, 0.000000;;, + 53;3; -0.000000, 0.306782, 0.000000;;, + 54;3; -0.000000, 0.306782, 0.000000;;, + 55;3; -0.000000, 0.306782, 0.000000;;, + 56;3; -0.000000, 0.306782, 0.000000;;, + 57;3; -0.000000, 0.306782, 0.000000;;, + 58;3; -0.000000, 0.306782, 0.000000;;, + 59;3; -0.000000, 0.306782, 0.000000;;, + 60;3; -0.000000, 0.306782, 0.000000;;, + 61;3; -0.000000, 0.306782, 0.000000;;, + 62;3; -0.000000, 0.306782, 0.000000;;, + 63;3; -0.000000, 0.306782, 0.000000;;, + 64;3; -0.000000, 0.306782, 0.000000;;, + 65;3; -0.000000, 0.306782, 0.000000;;, + 66;3; -0.000000, 0.306782, 0.000000;;, + 67;3; -0.000000, 0.306782, 0.000000;;, + 68;3; -0.000000, 0.306782, 0.000000;;, + 69;3; -0.000000, 0.306782, 0.000000;;, + 70;3; -0.000000, 0.306782, 0.000000;;, + 71;3; -0.000000, 0.306782, 0.000000;;, + 72;3; -0.000000, 0.306782, 0.000000;;, + 73;3; -0.000000, 0.306782, 0.000000;;, + 74;3; 0.000000, 0.306782,-0.000000;;, + 75;3; 0.000000, 0.306782,-0.000000;;, + 76;3; 0.000000, 0.306782,-0.000000;;, + 77;3; 0.000000, 0.306782, 0.000000;;, + 78;3; 0.000000, 0.306782,-0.000000;;, + 79;3; 0.000000, 0.306782,-0.000000;;, + 80;3; 0.000000, 0.306782,-0.000000;;, + 81;3; 0.000000, 0.306782,-0.000000;;, + 82;3; 0.000000, 0.306782,-0.000000;;, + 83;3; 0.000000, 0.306782,-0.000000;;, + 84;3; 0.000000, 0.306782,-0.000000;;, + 85;3; 0.000000, 0.306782,-0.000000;;, + 86;3; 0.000000, 0.306782,-0.000000;;, + 87;3; 0.000000, 0.306782, 0.000000;;, + 88;3; 0.000000, 0.306782, 0.000000;;, + 89;3; 0.000000, 0.306782,-0.000000;;, + 90;3; 0.000000, 0.306782,-0.000000;;, + 91;3; 0.000000, 0.306782, 0.000000;;, + 92;3; 0.000000, 0.306782,-0.000000;;, + 93;3; 0.000000, 0.306782,-0.000000;;, + 94;3; 0.000000, 0.306782,-0.000000;;, + 95;3; 0.000000, 0.306782,-0.000000;;, + 96;3; 0.000000, 0.306782, 0.000000;;, + 97;3; 0.000000, 0.306782,-0.000000;;, + 98;3; 0.000000, 0.306782,-0.000000;;, + 99;3; 0.000000, 0.306782, 0.000000;;, + 100;3; 0.000000, 0.306782, 0.000000;;, + 101;3; 0.000000, 0.306782, 0.000000;;, + 102;3; 0.000000, 0.306782, 0.000000;;, + 103;3; 0.000000, 0.306782,-0.000000;;, + 104;3; 0.000000, 0.306782,-0.000000;;, + 105;3; 0.000000, 0.306782,-0.000000;;, + 106;3; 0.000000, 0.306782,-0.000000;;, + 107;3; -0.000000, 0.306782,-0.000000;;; + } + AnimationKey { //Rotation + 0; + 108; + 0;4; -0.526554,-0.522900, 0.475629,-0.472328;;, + 1;4; -0.527614,-0.521697, 0.474320,-0.473524;;, + 2;4; -0.530802,-0.518079, 0.470380,-0.477122;;, + 3;4; -0.535985,-0.512196, 0.463975,-0.482972;;, + 4;4; -0.542764,-0.504502, 0.455598,-0.490624;;, + 5;4; -0.550443,-0.495786, 0.446109,-0.499292;;, + 6;4; -0.558122,-0.487070, 0.436619,-0.507959;;, + 7;4; -0.564900,-0.479376, 0.428242,-0.515611;;, + 8;4; -0.570083,-0.473494, 0.421838,-0.521461;;, + 9;4; -0.573270,-0.469876, 0.417899,-0.525058;;, + 10;4; -0.574329,-0.468674, 0.416590,-0.526254;;, + 11;4; -0.573665,-0.469478, 0.417462,-0.525499;;, + 12;4; -0.571604,-0.471962, 0.420154,-0.523156;;, + 13;4; -0.568105,-0.476149, 0.424694,-0.519183;;, + 14;4; -0.563262,-0.481894, 0.430929,-0.513690;;, + 15;4; -0.557341,-0.488840, 0.438472,-0.506982;;, + 16;4; -0.550765,-0.496445, 0.446740,-0.499544;;, + 17;4; -0.544025,-0.504100, 0.455074,-0.491936;;, + 18;4; -0.537558,-0.511276, 0.462901,-0.484654;;, + 19;4; -0.531676,-0.517607, 0.469822,-0.478052;;, + 20;4; -0.526554,-0.522900, 0.475629,-0.472328;;, + 21;4; -0.521480,-0.527910, 0.481147,-0.466682;;, + 22;4; -0.515742,-0.533392, 0.487201,-0.460317;;, + 23;4; -0.509507,-0.539187, 0.493617,-0.453419;;, + 24;4; -0.503070,-0.545036, 0.500108,-0.446312;;, + 25;4; -0.496839,-0.550595, 0.506286,-0.439444;;, + 26;4; -0.491262,-0.555494, 0.511740,-0.433305;;, + 27;4; -0.486723,-0.559433, 0.516130,-0.428313;;, + 28;4; -0.483456,-0.562239, 0.519260,-0.424724;;, + 29;4; -0.481538,-0.563874, 0.521085,-0.422618;;, + 30;4; -0.480921,-0.564396, 0.521669,-0.421941;;, + 31;4; -0.481856,-0.563546, 0.520726,-0.422973;;, + 32;4; -0.484429,-0.561206, 0.518129,-0.425815;;, + 33;4; -0.488341,-0.557649, 0.514183,-0.430133;;, + 34;4; -0.493324,-0.553118, 0.509156,-0.435635;;, + 35;4; -0.499125,-0.547843, 0.503303,-0.442041;;, + 36;4; -0.505478,-0.542065, 0.496893,-0.449056;;, + 37;4; -0.512066,-0.536074, 0.490246,-0.456331;;, + 38;4; -0.518448,-0.530272, 0.483808,-0.463377;;, + 39;4; -0.523865,-0.525346, 0.478343,-0.469358;;, + 40;4; -0.526554,-0.522900, 0.475629,-0.472328;;, + 41;4; -0.526554,-0.522900, 0.475629,-0.472328;;, + 42;4; -0.524850,-0.524520, 0.477419,-0.470438;;, + 43;4; -0.521100,-0.528085, 0.481358,-0.466281;;, + 44;4; -0.516557,-0.532405, 0.486132,-0.461244;;, + 45;4; -0.511945,-0.536789, 0.490976,-0.456131;;, + 46;4; -0.507763,-0.540766, 0.495370,-0.451494;;, + 47;4; -0.504388,-0.543974, 0.498915,-0.447753;;, + 48;4; -0.502146,-0.546106, 0.501270,-0.445267;;, + 49;4; -0.501333,-0.546878, 0.502124,-0.444366;;, + 50;4; -0.502208,-0.546046, 0.501205,-0.445336;;, + 51;4; -0.504821,-0.543562, 0.498460,-0.448232;;, + 52;4; -0.508934,-0.539652, 0.494140,-0.452792;;, + 53;4; -0.513944,-0.534889, 0.488876,-0.458347;;, + 54;4; -0.518954,-0.530126, 0.483613,-0.463901;;, + 55;4; -0.523067,-0.526216, 0.479293,-0.468461;;, + 56;4; -0.525679,-0.523732, 0.476548,-0.471358;;, + 57;4; -0.526554,-0.522900, 0.475629,-0.472328;;, + 58;4; -0.526554,-0.522900, 0.475629,-0.472328;;, + 59;4; -0.526554,-0.522900, 0.475629,-0.472328;;, + 60;4; -0.526554,-0.522900, 0.475629,-0.472328;;, + 61;4; -0.528979,-0.520291, 0.472777,-0.475049;;, + 62;4; -0.535807,-0.512944, 0.464744,-0.482712;;, + 63;4; -0.544574,-0.503511, 0.454430,-0.492552;;, + 64;4; -0.551403,-0.496165, 0.446398,-0.500216;;, + 65;4; -0.553827,-0.493556, 0.443546,-0.502936;;, + 66;4; -0.552948,-0.494502, 0.444580,-0.501950;;, + 67;4; -0.550523,-0.497111, 0.447433,-0.499228;;, + 68;4; -0.546874,-0.501037, 0.451725,-0.495133;;, + 69;4; -0.542351,-0.505903, 0.457046,-0.490057;;, + 70;4; -0.537365,-0.511268, 0.462911,-0.484461;;, + 71;4; -0.532452,-0.516554, 0.468691,-0.478947;;, + 72;4; -0.528398,-0.520916, 0.473460,-0.474397;;, + 73;4; -0.526554,-0.522900, 0.475629,-0.472328;;, + 74;4; -0.526554,-0.522900, 0.475629,-0.472328;;, + 75;4; -0.528282,-0.521070, 0.477189,-0.470676;;, + 76;4; -0.532082,-0.517047, 0.480621,-0.467041;;, + 77;4; -0.536687,-0.512171, 0.484781,-0.462637;;, + 78;4; -0.541360,-0.507223, 0.489002,-0.458168;;, + 79;4; -0.545599,-0.502735, 0.492831,-0.454113;;, + 80;4; -0.549019,-0.499114, 0.495920,-0.450843;;, + 81;4; -0.551291,-0.496707, 0.497973,-0.448669;;, + 82;4; -0.552115,-0.495835, 0.498717,-0.447881;;, + 83;4; -0.550457,-0.497520, 0.497219,-0.449403;;, + 84;4; -0.545507,-0.502547, 0.492748,-0.453943;;, + 85;4; -0.537714,-0.510461, 0.485709,-0.461092;;, + 86;4; -0.528222,-0.520101, 0.477135,-0.469800;;, + 87;4; -0.518730,-0.529742, 0.468560,-0.478509;;, + 88;4; -0.510937,-0.537656, 0.461522,-0.485657;;, + 89;4; -0.505987,-0.542683, 0.457051,-0.490198;;, + 90;4; -0.504329,-0.544367, 0.455553,-0.491720;;, + 91;4; -0.505971,-0.542702, 0.457035,-0.490215;;, + 92;4; -0.510870,-0.537730, 0.461461,-0.485724;;, + 93;4; -0.518584,-0.529904, 0.468429,-0.478655;;, + 94;4; -0.527981,-0.520369, 0.476917,-0.470042;;, + 95;4; -0.537378,-0.510835, 0.485405,-0.461430;;, + 96;4; -0.545092,-0.503008, 0.492373,-0.454360;;, + 97;4; -0.549992,-0.498037, 0.496799,-0.449870;;, + 98;4; -0.551633,-0.496371, 0.498282,-0.448365;;, + 99;4; -0.550763,-0.497292, 0.497496,-0.449197;;, + 100;4; -0.548165,-0.500040, 0.495150,-0.451679;;, + 101;4; -0.544076,-0.504366, 0.491455,-0.455586;;, + 102;4; -0.539094,-0.509635, 0.486955,-0.460346;;, + 103;4; -0.534112,-0.514905, 0.482455,-0.465107;;, + 104;4; -0.530023,-0.519231, 0.478761,-0.469014;;, + 105;4; -0.527425,-0.521979, 0.476415,-0.471496;;, + 106;4; -0.526554,-0.522900, 0.475629,-0.472328;;, + 107;4; -0.526554,-0.522900, 0.475629,-0.472328;;; + } + AnimationKey { //Scale + 1; + 108; + 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;;; + } + } + Animation { + {Armature_Bone_007} + AnimationKey { //Position + 2; + 108; + 0;3; 0.078315, 0.084604,-0.007980;;, + 1;3; 0.078315, 0.084604,-0.007980;;, + 2;3; 0.078315, 0.084604,-0.007980;;, + 3;3; 0.078315, 0.084604,-0.007980;;, + 4;3; 0.078315, 0.084604,-0.007980;;, + 5;3; 0.078315, 0.084604,-0.007980;;, + 6;3; 0.078315, 0.084604,-0.007980;;, + 7;3; 0.078315, 0.084604,-0.007980;;, + 8;3; 0.078315, 0.084604,-0.007980;;, + 9;3; 0.078315, 0.084604,-0.007980;;, + 10;3; 0.078315, 0.084604,-0.007980;;, + 11;3; 0.078315, 0.084604,-0.007980;;, + 12;3; 0.078315, 0.084604,-0.007980;;, + 13;3; 0.078315, 0.084604,-0.007980;;, + 14;3; 0.078315, 0.084604,-0.007980;;, + 15;3; 0.078315, 0.084604,-0.007980;;, + 16;3; 0.078315, 0.084604,-0.007980;;, + 17;3; 0.078315, 0.084604,-0.007980;;, + 18;3; 0.078315, 0.084604,-0.007980;;, + 19;3; 0.078315, 0.084604,-0.007980;;, + 20;3; 0.078315, 0.084604,-0.007980;;, + 21;3; 0.078316, 0.084604,-0.007980;;, + 22;3; 0.078315, 0.084604,-0.007980;;, + 23;3; 0.078315, 0.084604,-0.007980;;, + 24;3; 0.078315, 0.084604,-0.007980;;, + 25;3; 0.078316, 0.084604,-0.007980;;, + 26;3; 0.078316, 0.084604,-0.007980;;, + 27;3; 0.078315, 0.084604,-0.007980;;, + 28;3; 0.078315, 0.084604,-0.007980;;, + 29;3; 0.078315, 0.084604,-0.007980;;, + 30;3; 0.078315, 0.084604,-0.007980;;, + 31;3; 0.078315, 0.084604,-0.007980;;, + 32;3; 0.078315, 0.084604,-0.007980;;, + 33;3; 0.078315, 0.084604,-0.007980;;, + 34;3; 0.078315, 0.084604,-0.007980;;, + 35;3; 0.078315, 0.084604,-0.007980;;, + 36;3; 0.078315, 0.084604,-0.007980;;, + 37;3; 0.078315, 0.084604,-0.007980;;, + 38;3; 0.078315, 0.084604,-0.007980;;, + 39;3; 0.078316, 0.084604,-0.007980;;, + 40;3; 0.078315, 0.084604,-0.007980;;, + 41;3; 0.078315, 0.084604,-0.007980;;, + 42;3; 0.078315, 0.084604,-0.007980;;, + 43;3; 0.078316, 0.084604,-0.007980;;, + 44;3; 0.078315, 0.084604,-0.007980;;, + 45;3; 0.078315, 0.084604,-0.007980;;, + 46;3; 0.078315, 0.084604,-0.007980;;, + 47;3; 0.078315, 0.084604,-0.007980;;, + 48;3; 0.078315, 0.084604,-0.007980;;, + 49;3; 0.078315, 0.084604,-0.007980;;, + 50;3; 0.078315, 0.084604,-0.007980;;, + 51;3; 0.078315, 0.084604,-0.007980;;, + 52;3; 0.078315, 0.084604,-0.007980;;, + 53;3; 0.078315, 0.084604,-0.007980;;, + 54;3; 0.078316, 0.084604,-0.007980;;, + 55;3; 0.078316, 0.084604,-0.007980;;, + 56;3; 0.078315, 0.084604,-0.007980;;, + 57;3; 0.078315, 0.084604,-0.007980;;, + 58;3; 0.078315, 0.084604,-0.007980;;, + 59;3; 0.078315, 0.084604,-0.007980;;, + 60;3; 0.078315, 0.084604,-0.007980;;, + 61;3; 0.078315, 0.084604,-0.007980;;, + 62;3; 0.078315, 0.084604,-0.007980;;, + 63;3; 0.078316, 0.084604,-0.007980;;, + 64;3; 0.078315, 0.084604,-0.007980;;, + 65;3; 0.078315, 0.084604,-0.007980;;, + 66;3; 0.078315, 0.084604,-0.007980;;, + 67;3; 0.078315, 0.084604,-0.007980;;, + 68;3; 0.078315, 0.084604,-0.007980;;, + 69;3; 0.078315, 0.084604,-0.007980;;, + 70;3; 0.078315, 0.084604,-0.007980;;, + 71;3; 0.078315, 0.084604,-0.007980;;, + 72;3; 0.078315, 0.084604,-0.007980;;, + 73;3; 0.078315, 0.084604,-0.007980;;, + 74;3; 0.078315, 0.084604,-0.007980;;, + 75;3; 0.078315, 0.084604,-0.007980;;, + 76;3; 0.078315, 0.084604,-0.007980;;, + 77;3; 0.078316, 0.084604,-0.007980;;, + 78;3; 0.078315, 0.084604,-0.007980;;, + 79;3; 0.078315, 0.084604,-0.007980;;, + 80;3; 0.078315, 0.084604,-0.007980;;, + 81;3; 0.078315, 0.084604,-0.007980;;, + 82;3; 0.078315, 0.084604,-0.007980;;, + 83;3; 0.078315, 0.084604,-0.007980;;, + 84;3; 0.078315, 0.084604,-0.007980;;, + 85;3; 0.078315, 0.084604,-0.007980;;, + 86;3; 0.078316, 0.084604,-0.007980;;, + 87;3; 0.078316, 0.084604,-0.007980;;, + 88;3; 0.078316, 0.084604,-0.007980;;, + 89;3; 0.078315, 0.084604,-0.007980;;, + 90;3; 0.078315, 0.084604,-0.007980;;, + 91;3; 0.078315, 0.084604,-0.007980;;, + 92;3; 0.078315, 0.084604,-0.007980;;, + 93;3; 0.078315, 0.084604,-0.007980;;, + 94;3; 0.078315, 0.084604,-0.007980;;, + 95;3; 0.078316, 0.084604,-0.007980;;, + 96;3; 0.078315, 0.084604,-0.007980;;, + 97;3; 0.078315, 0.084604,-0.007980;;, + 98;3; 0.078315, 0.084604,-0.007980;;, + 99;3; 0.078315, 0.084604,-0.007980;;, + 100;3; 0.078315, 0.084604,-0.007980;;, + 101;3; 0.078315, 0.084604,-0.007980;;, + 102;3; 0.078315, 0.084604,-0.007980;;, + 103;3; 0.078316, 0.084604,-0.007980;;, + 104;3; 0.078315, 0.084604,-0.007980;;, + 105;3; 0.078315, 0.084604,-0.007980;;, + 106;3; 0.078315, 0.084604,-0.007980;;, + 107;3; 0.078315, 0.084604,-0.007980;;; + } + AnimationKey { //Rotation + 0; + 108; + 0;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 1;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 2;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 3;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 4;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 5;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 6;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 7;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 8;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 9;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 10;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 11;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 12;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 13;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 14;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 15;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 16;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 17;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 18;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 19;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 20;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 21;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 22;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 23;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 24;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 25;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 26;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 27;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 28;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 29;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 30;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 31;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 32;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 33;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 34;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 35;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 36;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 37;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 38;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 39;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 40;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 41;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 42;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 43;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 44;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 45;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 46;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 47;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 48;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 49;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 50;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 51;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 52;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 53;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 54;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 55;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 56;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 57;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 58;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 59;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 60;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 61;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 62;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 63;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 64;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 65;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 66;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 67;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 68;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 69;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 70;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 71;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 72;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 73;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 74;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 75;4; -0.706230,-0.227278,-0.637929,-0.205297;;, + 76;4; -0.702922,-0.236361,-0.634941,-0.213502;;, + 77;4; -0.698913,-0.247369,-0.631319,-0.223445;;, + 78;4; -0.694845,-0.258540,-0.627644,-0.233535;;, + 79;4; -0.691154,-0.268673,-0.624311,-0.242689;;, + 80;4; -0.688177,-0.276848,-0.621622,-0.250073;;, + 81;4; -0.686199,-0.282281,-0.619834,-0.254980;;, + 82;4; -0.685482,-0.284249,-0.619187,-0.256758;;, + 83;4; -0.686254,-0.282129,-0.619884,-0.254843;;, + 84;4; -0.688559,-0.275800,-0.621966,-0.249126;;, + 85;4; -0.692188,-0.265836,-0.625244,-0.240126;;, + 86;4; -0.696608,-0.253699,-0.629237,-0.229162;;, + 87;4; -0.701028,-0.241561,-0.633230,-0.218199;;, + 88;4; -0.704657,-0.231598,-0.636508,-0.209199;;, + 89;4; -0.706962,-0.225269,-0.638590,-0.203482;;, + 90;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 91;4; -0.706658,-0.225928,-0.638315,-0.204078;;, + 92;4; -0.703445,-0.234227,-0.635412,-0.211573;;, + 93;4; -0.698386,-0.247291,-0.630843,-0.223374;;, + 94;4; -0.692224,-0.263205,-0.625277,-0.237749;;, + 95;4; -0.686062,-0.279119,-0.619711,-0.252124;;, + 96;4; -0.681003,-0.292183,-0.615141,-0.263925;;, + 97;4; -0.677790,-0.300481,-0.612239,-0.271420;;, + 98;4; -0.676713,-0.303261,-0.611266,-0.273932;;, + 99;4; -0.677790,-0.300481,-0.612239,-0.271420;;, + 100;4; -0.681003,-0.292183,-0.615141,-0.263925;;, + 101;4; -0.686062,-0.279119,-0.619711,-0.252124;;, + 102;4; -0.692224,-0.263205,-0.625277,-0.237749;;, + 103;4; -0.698386,-0.247291,-0.630843,-0.223374;;, + 104;4; -0.703445,-0.234227,-0.635412,-0.211573;;, + 105;4; -0.706658,-0.225928,-0.638315,-0.204078;;, + 106;4; -0.707734,-0.223148,-0.639287,-0.201567;;, + 107;4; -0.707120,-0.224647,-0.638732,-0.202920;;; + } + AnimationKey { //Scale + 1; + 108; + 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;;; + } + } + Animation { + {Sand_monster} + AnimationKey { //Position + 2; + 108; + 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;;; + } + AnimationKey { //Rotation + 0; + 108; + 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;;; + } + AnimationKey { //Scale + 1; + 108; + 0;3; 0.746845, 0.740784, 0.740784;;, + 1;3; 0.746845, 0.740784, 0.740784;;, + 2;3; 0.746845, 0.740784, 0.740784;;, + 3;3; 0.746845, 0.740784, 0.740784;;, + 4;3; 0.746845, 0.740784, 0.740784;;, + 5;3; 0.746845, 0.740784, 0.740784;;, + 6;3; 0.746845, 0.740784, 0.740784;;, + 7;3; 0.746845, 0.740784, 0.740784;;, + 8;3; 0.746845, 0.740784, 0.740784;;, + 9;3; 0.746845, 0.740784, 0.740784;;, + 10;3; 0.746845, 0.740784, 0.740784;;, + 11;3; 0.746845, 0.740784, 0.740784;;, + 12;3; 0.746845, 0.740784, 0.740784;;, + 13;3; 0.746845, 0.740784, 0.740784;;, + 14;3; 0.746845, 0.740784, 0.740784;;, + 15;3; 0.746845, 0.740784, 0.740784;;, + 16;3; 0.746845, 0.740784, 0.740784;;, + 17;3; 0.746845, 0.740784, 0.740784;;, + 18;3; 0.746845, 0.740784, 0.740784;;, + 19;3; 0.746845, 0.740784, 0.740784;;, + 20;3; 0.746845, 0.740784, 0.740784;;, + 21;3; 0.746845, 0.740784, 0.740784;;, + 22;3; 0.746845, 0.740784, 0.740784;;, + 23;3; 0.746845, 0.740784, 0.740784;;, + 24;3; 0.746845, 0.740784, 0.740784;;, + 25;3; 0.746845, 0.740784, 0.740784;;, + 26;3; 0.746845, 0.740784, 0.740784;;, + 27;3; 0.746845, 0.740784, 0.740784;;, + 28;3; 0.746845, 0.740784, 0.740784;;, + 29;3; 0.746845, 0.740784, 0.740784;;, + 30;3; 0.746845, 0.740784, 0.740784;;, + 31;3; 0.746845, 0.740784, 0.740784;;, + 32;3; 0.746845, 0.740784, 0.740784;;, + 33;3; 0.746845, 0.740784, 0.740784;;, + 34;3; 0.746845, 0.740784, 0.740784;;, + 35;3; 0.746845, 0.740784, 0.740784;;, + 36;3; 0.746845, 0.740784, 0.740784;;, + 37;3; 0.746845, 0.740784, 0.740784;;, + 38;3; 0.746845, 0.740784, 0.740784;;, + 39;3; 0.746845, 0.740784, 0.740784;;, + 40;3; 0.746845, 0.740784, 0.740784;;, + 41;3; 0.746845, 0.740784, 0.740784;;, + 42;3; 0.746845, 0.740784, 0.740784;;, + 43;3; 0.746845, 0.740784, 0.740784;;, + 44;3; 0.746845, 0.740784, 0.740784;;, + 45;3; 0.746845, 0.740784, 0.740784;;, + 46;3; 0.746845, 0.740784, 0.740784;;, + 47;3; 0.746845, 0.740784, 0.740784;;, + 48;3; 0.746845, 0.740784, 0.740784;;, + 49;3; 0.746845, 0.740784, 0.740784;;, + 50;3; 0.746845, 0.740784, 0.740784;;, + 51;3; 0.746845, 0.740784, 0.740784;;, + 52;3; 0.746845, 0.740784, 0.740784;;, + 53;3; 0.746845, 0.740784, 0.740784;;, + 54;3; 0.746845, 0.740784, 0.740784;;, + 55;3; 0.746845, 0.740784, 0.740784;;, + 56;3; 0.746845, 0.740784, 0.740784;;, + 57;3; 0.746845, 0.740784, 0.740784;;, + 58;3; 0.746845, 0.740784, 0.740784;;, + 59;3; 0.746845, 0.740784, 0.740784;;, + 60;3; 0.746845, 0.740784, 0.740784;;, + 61;3; 0.746845, 0.740784, 0.740784;;, + 62;3; 0.746845, 0.740784, 0.740784;;, + 63;3; 0.746845, 0.740784, 0.740784;;, + 64;3; 0.746845, 0.740784, 0.740784;;, + 65;3; 0.746845, 0.740784, 0.740784;;, + 66;3; 0.746845, 0.740784, 0.740784;;, + 67;3; 0.746845, 0.740784, 0.740784;;, + 68;3; 0.746845, 0.740784, 0.740784;;, + 69;3; 0.746845, 0.740784, 0.740784;;, + 70;3; 0.746845, 0.740784, 0.740784;;, + 71;3; 0.746845, 0.740784, 0.740784;;, + 72;3; 0.746845, 0.740784, 0.740784;;, + 73;3; 0.746845, 0.740784, 0.740784;;, + 74;3; 0.746845, 0.740784, 0.740784;;, + 75;3; 0.746845, 0.740784, 0.740784;;, + 76;3; 0.746845, 0.740784, 0.740784;;, + 77;3; 0.746845, 0.740784, 0.740784;;, + 78;3; 0.746845, 0.740784, 0.740784;;, + 79;3; 0.746845, 0.740784, 0.740784;;, + 80;3; 0.746845, 0.740784, 0.740784;;, + 81;3; 0.746845, 0.740784, 0.740784;;, + 82;3; 0.746845, 0.740784, 0.740784;;, + 83;3; 0.746845, 0.740784, 0.740784;;, + 84;3; 0.746845, 0.740784, 0.740784;;, + 85;3; 0.746845, 0.740784, 0.740784;;, + 86;3; 0.746845, 0.740784, 0.740784;;, + 87;3; 0.746845, 0.740784, 0.740784;;, + 88;3; 0.746845, 0.740784, 0.740784;;, + 89;3; 0.746845, 0.740784, 0.740784;;, + 90;3; 0.746845, 0.740784, 0.740784;;, + 91;3; 0.746845, 0.740784, 0.740784;;, + 92;3; 0.746845, 0.740784, 0.740784;;, + 93;3; 0.746845, 0.740784, 0.740784;;, + 94;3; 0.746845, 0.740784, 0.740784;;, + 95;3; 0.746845, 0.740784, 0.740784;;, + 96;3; 0.746845, 0.740784, 0.740784;;, + 97;3; 0.746845, 0.740784, 0.740784;;, + 98;3; 0.746845, 0.740784, 0.740784;;, + 99;3; 0.746845, 0.740784, 0.740784;;, + 100;3; 0.746845, 0.740784, 0.740784;;, + 101;3; 0.746845, 0.740784, 0.740784;;, + 102;3; 0.746845, 0.740784, 0.740784;;, + 103;3; 0.746845, 0.740784, 0.740784;;, + 104;3; 0.746845, 0.740784, 0.740784;;, + 105;3; 0.746845, 0.740784, 0.740784;;, + 106;3; 0.746845, 0.740784, 0.740784;;, + 107;3; 0.746845, 0.740784, 0.740784;;; + } + } +} //End of AnimationSet diff --git a/mods/mobs/models/mobs_sheep.png b/mods/mobs/models/mobs_sheep.png new file mode 100644 index 00000000..c0c6b6ac Binary files /dev/null and b/mods/mobs/models/mobs_sheep.png differ diff --git a/mods/mobs/models/mobs_sheep.x b/mods/mobs/models/mobs_sheep.x new file mode 100644 index 00000000..04a1dadd --- /dev/null +++ b/mods/mobs/models/mobs_sheep.x @@ -0,0 +1,7169 @@ +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.020581, 0.043608, 0.162447, 1.000000;; + } + Frame Armature_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.030899,-0.009276, 5.987902, 1.000000;; + } + Frame Armature_Bone_001 { + 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.460671,-0.139217, 4.073730, 1.000000;; + } + } //End of Armature_Bone_001 + Frame Armature_Bone_002 { + 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.460671,-0.139216,-3.633328, 1.000000;; + } + } //End of Armature_Bone_002 + Frame Armature_Bone_003 { + 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.438651,-0.139217, 4.073730, 1.000000;; + } + } //End of Armature_Bone_003 + Frame Armature_RR_leg { + 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.438651,-0.139216,-3.633328, 1.000000;; + } + } //End of Armature_RR_leg + Frame Armature_Head { + 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, 4.052525, 3.788038, 1.000000;; + } + } //End of Armature_Head + } //End of Armature_Root + Frame sheep { + 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 { //Cube_000 Mesh + 500; + 1.998222; 2.998158; 8.227857;, + 1.998223; 2.998159;12.113163;, + 1.998224; 6.883465;12.113163;, + 1.998224; 6.883465; 8.227857;, + 1.998223; 2.998159;12.113163;, + 1.998222; 2.998158; 8.227857;, + -1.887084; 2.998160; 8.227857;, + -1.887085; 2.998161;12.113163;, + 1.998222; 2.998158; 8.227857;, + 1.998224; 6.883465; 8.227857;, + -1.887082; 6.883466; 8.227857;, + -1.887084; 2.998160; 8.227857;, + -1.887081; 6.883467;12.113163;, + 1.998224; 6.883465;12.113163;, + 1.998223; 2.998159;12.113163;, + -1.887085; 2.998161;12.113163;, + -1.887082; 6.883466; 8.227857;, + -1.887081; 6.883467;12.113163;, + -1.887085; 2.998161;12.113163;, + -1.887084; 2.998160; 8.227857;, + -1.568521; 6.883467;11.794603;, + 1.679665; 6.883465;11.794603;, + 1.998224; 6.883465;12.113163;, + -1.887081; 6.883467;12.113163;, + -1.568521; 7.249873;11.794603;, + 1.679665; 7.249870;11.794603;, + 1.679665; 6.883465;11.794603;, + -1.568521; 6.883467;11.794603;, + -1.568522; 6.883466; 8.546416;, + -1.568521; 6.883467;11.794603;, + -1.887081; 6.883467;12.113163;, + -1.887082; 6.883466; 8.227857;, + 1.679665; 6.883465;11.794603;, + 1.679664; 6.883465; 8.546416;, + 1.998224; 6.883465; 8.227857;, + 1.998224; 6.883465;12.113163;, + 1.679664; 6.883465; 8.546416;, + -1.568522; 6.883466; 8.546416;, + -1.887082; 6.883466; 8.227857;, + 1.998224; 6.883465; 8.227857;, + -0.939442; 7.249872;10.610328;, + 1.050586; 7.249870;10.610328;, + 1.679665; 7.249870;11.794603;, + -1.568521; 7.249873;11.794603;, + -1.568522; 7.249871; 8.546416;, + -1.568521; 7.249873;11.794603;, + -1.568521; 6.883467;11.794603;, + -1.568522; 6.883466; 8.546416;, + 1.679665; 7.249870; 8.546416;, + -1.568522; 7.249871; 8.546416;, + -1.568522; 6.883466; 8.546416;, + 1.679664; 6.883465; 8.546416;, + 1.679665; 7.249870;11.794603;, + 1.679665; 7.249870; 8.546416;, + 1.679664; 6.883465; 8.546416;, + 1.679665; 6.883465;11.794603;, + -0.939441; 7.625868;10.610328;, + 1.050586; 7.625866;10.610328;, + 1.050586; 7.249870;10.610328;, + -0.939442; 7.249872;10.610328;, + 1.050586; 7.249870;10.610328;, + 1.050585; 7.249870; 8.689556;, + 1.679665; 7.249870; 8.546416;, + 1.679665; 7.249870;11.794603;, + -0.939442; 7.249871; 8.689556;, + -0.939442; 7.249872;10.610328;, + -1.568521; 7.249873;11.794603;, + -1.568522; 7.249871; 8.546416;, + 1.050585; 7.249870; 8.689556;, + -0.939442; 7.249871; 8.689556;, + -1.568522; 7.249871; 8.546416;, + 1.679665; 7.249870; 8.546416;, + 1.050586; 7.625866; 8.689556;, + 1.050586; 7.625866;10.610328;, + -0.939441; 7.625868;10.610328;, + -0.939442; 7.625867; 8.689556;, + 1.050586; 7.625866;10.610328;, + 1.050586; 7.625866; 8.689556;, + 1.050585; 7.249870; 8.689556;, + 1.050586; 7.249870;10.610328;, + -0.939442; 7.625867; 8.689556;, + -0.939441; 7.625868;10.610328;, + -0.939442; 7.249872;10.610328;, + -0.939442; 7.249871; 8.689556;, + 1.050586; 7.625866; 8.689556;, + -0.939442; 7.625867; 8.689556;, + -0.939442; 7.249871; 8.689556;, + 1.050585; 7.249870; 8.689556;, + -0.605994; 3.121706;-0.078749;, + -2.241733; 3.121707;-0.078749;, + -2.241733; 3.121707; 0.786420;, + -0.605994; 3.121706; 0.786420;, + -2.241732; 5.023183;-0.078749;, + -0.605994; 5.023182;-0.078749;, + -0.605994; 5.023182; 0.786420;, + -2.241732; 5.023183; 0.786420;, + -0.605994; 5.023182;-0.078749;, + -0.605994; 3.121706;-0.078749;, + -0.605994; 3.121706; 0.786420;, + -0.605994; 5.023182; 0.786420;, + -0.605994; 3.121706;-0.078749;, + -0.605994; 5.023182;-0.078749;, + -2.241732; 5.023183;-0.078749;, + -2.241733; 3.121707;-0.078749;, + -0.600140; 5.030460; 4.316999;, + -0.600140; 5.030460; 5.986964;, + -2.247585; 5.030461; 5.986964;, + -2.247585; 5.030461; 4.317000;, + -2.247585; 2.982151; 5.986965;, + -0.600140; 2.982150; 5.986964;, + -0.600141; 2.982150; 4.317000;, + -2.247586; 2.982151; 4.317000;, + -2.247585; 5.030461; 5.986964;, + -2.247585; 2.982151; 5.986965;, + -2.247586; 2.982151; 4.317000;, + -2.247585; 5.030461; 4.317000;, + -0.600140; 5.030460; 5.986964;, + -0.600140; 2.982150; 5.986964;, + -2.247585; 2.982151; 5.986965;, + -2.247585; 5.030461; 5.986964;, + -0.600140; 5.030460; 4.316999;, + -0.600141; 2.982150; 4.317000;, + -0.600140; 2.982150; 5.986964;, + -0.600140; 5.030460; 5.986964;, + -0.802528; 4.778826; 4.317000;, + -0.802529; 3.233785; 4.317000;, + -0.600141; 2.982150; 4.317000;, + -0.600140; 5.030460; 4.316999;, + -2.241732; 5.023183; 0.786420;, + -0.605994; 5.023182; 0.786420;, + -0.802529; 4.778825; 0.786420;, + -2.045197; 4.778826; 0.786420;, + -0.605994; 3.121706; 0.786420;, + -2.241733; 3.121707; 0.786420;, + -2.045198; 3.233785; 0.786420;, + -0.802529; 3.233784; 0.786420;, + -2.241733; 3.121707; 0.786420;, + -2.241732; 5.023183; 0.786420;, + -2.045197; 4.778826; 0.786420;, + -2.045198; 3.233785; 0.786420;, + -2.241733; 3.121707;-0.078749;, + -2.241732; 5.023183;-0.078749;, + -2.241732; 5.023183; 0.786420;, + -2.241733; 3.121707; 0.786420;, + -2.045197; 4.778826; 0.786420;, + -0.802529; 4.778825; 0.786420;, + -0.802528; 4.778826; 4.317000;, + -2.045197; 4.778826; 4.317000;, + -0.802529; 4.778825; 0.786420;, + -0.802529; 3.233784; 0.786420;, + -0.802529; 3.233785; 4.317000;, + -0.802528; 4.778826; 4.317000;, + -0.802529; 3.233784; 0.786420;, + -2.045198; 3.233785; 0.786420;, + -2.045197; 3.233785; 4.317000;, + -0.802529; 3.233785; 4.317000;, + -0.605994; 5.023182; 0.786420;, + -0.605994; 3.121706; 0.786420;, + -0.802529; 3.233784; 0.786420;, + -0.802529; 4.778825; 0.786420;, + -2.045197; 4.778826; 4.317000;, + -0.802528; 4.778826; 4.317000;, + -0.600140; 5.030460; 4.316999;, + -2.247585; 5.030461; 4.317000;, + -2.045197; 3.233785; 4.317000;, + -2.045197; 4.778826; 4.317000;, + -2.247585; 5.030461; 4.317000;, + -2.247586; 2.982151; 4.317000;, + -0.802529; 3.233785; 4.317000;, + -2.045197; 3.233785; 4.317000;, + -2.247586; 2.982151; 4.317000;, + -0.600141; 2.982150; 4.317000;, + -2.045198; 3.233785; 0.786420;, + -2.045197; 4.778826; 0.786420;, + -2.045197; 4.778826; 4.317000;, + -2.045197; 3.233785; 4.317000;, + 2.289855; 3.121706;-0.078749;, + 0.654117; 3.121706;-0.078749;, + 0.654117; 3.121706; 0.786420;, + 2.289855; 3.121706; 0.786420;, + 0.654118; 5.023182;-0.078749;, + 2.289856; 5.023181;-0.078749;, + 2.289856; 5.023181; 0.786420;, + 0.654118; 5.023182; 0.786420;, + 2.289856; 5.023181;-0.078749;, + 2.289855; 3.121706;-0.078749;, + 2.289855; 3.121706; 0.786420;, + 2.289856; 5.023181; 0.786420;, + 2.289855; 3.121706;-0.078749;, + 2.289856; 5.023181;-0.078749;, + 0.654118; 5.023182;-0.078749;, + 0.654117; 3.121706;-0.078749;, + 2.295710; 5.030459; 4.316999;, + 2.295710; 5.030459; 5.986964;, + 0.648265; 5.030460; 5.986964;, + 0.648265; 5.030460; 4.317000;, + 0.648265; 2.982150; 5.986965;, + 2.295710; 2.982149; 5.986964;, + 2.295709; 2.982149; 4.317000;, + 0.648264; 2.982150; 4.317000;, + 0.648265; 5.030460; 5.986964;, + 0.648265; 2.982150; 5.986965;, + 0.648264; 2.982150; 4.317000;, + 0.648265; 5.030460; 4.317000;, + 2.295710; 5.030459; 5.986964;, + 2.295710; 2.982149; 5.986964;, + 0.648265; 2.982150; 5.986965;, + 0.648265; 5.030460; 5.986964;, + 2.295710; 5.030459; 4.316999;, + 2.295709; 2.982149; 4.317000;, + 2.295710; 2.982149; 5.986964;, + 2.295710; 5.030459; 5.986964;, + 2.093321; 4.778825; 4.317000;, + 2.093321; 3.233784; 4.317000;, + 2.295709; 2.982149; 4.317000;, + 2.295710; 5.030459; 4.316999;, + 0.654118; 5.023182; 0.786420;, + 2.289856; 5.023181; 0.786420;, + 2.093321; 4.778824; 0.786420;, + 0.850653; 4.778825; 0.786420;, + 2.289855; 3.121706; 0.786420;, + 0.654117; 3.121706; 0.786420;, + 0.850652; 3.233784; 0.786420;, + 2.093320; 3.233783; 0.786420;, + 0.654117; 3.121706; 0.786420;, + 0.654118; 5.023182; 0.786420;, + 0.850653; 4.778825; 0.786420;, + 0.850652; 3.233784; 0.786420;, + 0.654117; 3.121706;-0.078749;, + 0.654118; 5.023182;-0.078749;, + 0.654118; 5.023182; 0.786420;, + 0.654117; 3.121706; 0.786420;, + 0.850653; 4.778825; 0.786420;, + 2.093321; 4.778824; 0.786420;, + 2.093321; 4.778825; 4.317000;, + 0.850653; 4.778825; 4.317000;, + 2.093321; 4.778824; 0.786420;, + 2.093320; 3.233783; 0.786420;, + 2.093321; 3.233784; 4.317000;, + 2.093321; 4.778825; 4.317000;, + 2.093320; 3.233783; 0.786420;, + 0.850652; 3.233784; 0.786420;, + 0.850652; 3.233784; 4.317000;, + 2.093321; 3.233784; 4.317000;, + 2.289856; 5.023181; 0.786420;, + 2.289855; 3.121706; 0.786420;, + 2.093320; 3.233783; 0.786420;, + 2.093321; 4.778824; 0.786420;, + 0.850653; 4.778825; 4.317000;, + 2.093321; 4.778825; 4.317000;, + 2.295710; 5.030459; 4.316999;, + 0.648265; 5.030460; 4.317000;, + 0.850652; 3.233784; 4.317000;, + 0.850653; 4.778825; 4.317000;, + 0.648265; 5.030460; 4.317000;, + 0.648264; 2.982150; 4.317000;, + 2.093321; 3.233784; 4.317000;, + 0.850652; 3.233784; 4.317000;, + 0.648264; 2.982150; 4.317000;, + 2.295709; 2.982149; 4.317000;, + 0.850652; 3.233784; 0.786420;, + 0.850653; 4.778825; 0.786420;, + 0.850653; 4.778825; 4.317000;, + 0.850652; 3.233784; 4.317000;, + -0.605996;-4.554652;-0.078749;, + -2.241735;-4.554652;-0.078749;, + -2.241735;-4.554652; 0.786420;, + -0.605996;-4.554652; 0.786420;, + -2.241734;-2.653176;-0.078749;, + -0.605996;-2.653177;-0.078749;, + -0.605996;-2.653177; 0.786420;, + -2.241734;-2.653176; 0.786420;, + -0.605996;-2.653177;-0.078749;, + -0.605996;-4.554652;-0.078749;, + -0.605996;-4.554652; 0.786420;, + -0.605996;-2.653177; 0.786420;, + -0.605996;-4.554652;-0.078749;, + -0.605996;-2.653177;-0.078749;, + -2.241734;-2.653176;-0.078749;, + -2.241735;-4.554652;-0.078749;, + -0.600143;-2.645899; 4.316999;, + -0.600142;-2.645899; 5.986964;, + -2.247587;-2.645898; 5.986964;, + -2.247587;-2.645898; 4.317000;, + -2.247587;-4.694208; 5.986965;, + -0.600143;-4.694209; 5.986964;, + -0.600143;-4.694209; 4.317000;, + -2.247588;-4.694208; 4.317000;, + -2.247587;-2.645898; 5.986964;, + -2.247587;-4.694208; 5.986965;, + -2.247588;-4.694208; 4.317000;, + -2.247587;-2.645898; 4.317000;, + -0.600142;-2.645899; 5.986964;, + -0.600143;-4.694209; 5.986964;, + -2.247587;-4.694208; 5.986965;, + -2.247587;-2.645898; 5.986964;, + -0.600143;-2.645899; 4.316999;, + -0.600143;-4.694209; 4.317000;, + -0.600143;-4.694209; 5.986964;, + -0.600142;-2.645899; 5.986964;, + -0.802531;-2.897533; 4.317000;, + -0.802531;-4.442574; 4.317000;, + -0.600143;-4.694209; 4.317000;, + -0.600143;-2.645899; 4.316999;, + -2.241734;-2.653176; 0.786420;, + -0.605996;-2.653177; 0.786420;, + -0.802531;-2.897534; 0.786420;, + -2.045199;-2.897533; 0.786420;, + -0.605996;-4.554652; 0.786420;, + -2.241735;-4.554652; 0.786420;, + -2.045200;-4.442574; 0.786420;, + -0.802532;-4.442575; 0.786420;, + -2.241735;-4.554652; 0.786420;, + -2.241734;-2.653176; 0.786420;, + -2.045199;-2.897533; 0.786420;, + -2.045200;-4.442574; 0.786420;, + -2.241735;-4.554652;-0.078749;, + -2.241734;-2.653176;-0.078749;, + -2.241734;-2.653176; 0.786420;, + -2.241735;-4.554652; 0.786420;, + -2.045199;-2.897533; 0.786420;, + -0.802531;-2.897534; 0.786420;, + -0.802531;-2.897533; 4.317000;, + -2.045199;-2.897533; 4.317000;, + -0.802531;-2.897534; 0.786420;, + -0.802532;-4.442575; 0.786420;, + -0.802531;-4.442574; 4.317000;, + -0.802531;-2.897533; 4.317000;, + -0.802532;-4.442575; 0.786420;, + -2.045200;-4.442574; 0.786420;, + -2.045200;-4.442574; 4.317000;, + -0.802531;-4.442574; 4.317000;, + -0.605996;-2.653177; 0.786420;, + -0.605996;-4.554652; 0.786420;, + -0.802532;-4.442575; 0.786420;, + -0.802531;-2.897534; 0.786420;, + -2.045199;-2.897533; 4.317000;, + -0.802531;-2.897533; 4.317000;, + -0.600143;-2.645899; 4.316999;, + -2.247587;-2.645898; 4.317000;, + -2.045200;-4.442574; 4.317000;, + -2.045199;-2.897533; 4.317000;, + -2.247587;-2.645898; 4.317000;, + -2.247588;-4.694208; 4.317000;, + -0.802531;-4.442574; 4.317000;, + -2.045200;-4.442574; 4.317000;, + -2.247588;-4.694208; 4.317000;, + -0.600143;-4.694209; 4.317000;, + -2.045200;-4.442574; 0.786420;, + -2.045199;-2.897533; 0.786420;, + -2.045199;-2.897533; 4.317000;, + -2.045200;-4.442574; 4.317000;, + 2.289853;-4.554653;-0.078749;, + 0.654114;-4.554653;-0.078749;, + 0.654114;-4.554653; 0.786420;, + 2.289853;-4.554653; 0.786420;, + 0.654115;-2.653177;-0.078749;, + 2.289853;-2.653177;-0.078749;, + 2.289853;-2.653177; 0.786420;, + 0.654115;-2.653177; 0.786420;, + 2.289853;-2.653177;-0.078749;, + 2.289853;-4.554653;-0.078749;, + 2.289853;-4.554653; 0.786420;, + 2.289853;-2.653177; 0.786420;, + 2.289853;-4.554653;-0.078749;, + 2.289853;-2.653177;-0.078749;, + 0.654115;-2.653177;-0.078749;, + 0.654114;-4.554653;-0.078749;, + 2.295707;-2.645900; 4.316999;, + 2.295707;-2.645900; 5.986964;, + 0.648262;-2.645899; 5.986964;, + 0.648262;-2.645899; 4.317000;, + 0.648262;-4.694209; 5.986965;, + 2.295707;-4.694210; 5.986964;, + 2.295706;-4.694210; 4.317000;, + 0.648261;-4.694209; 4.317000;, + 0.648262;-2.645899; 5.986964;, + 0.648262;-4.694209; 5.986965;, + 0.648261;-4.694209; 4.317000;, + 0.648262;-2.645899; 4.317000;, + 2.295707;-2.645900; 5.986964;, + 2.295707;-4.694210; 5.986964;, + 0.648262;-4.694209; 5.986965;, + 0.648262;-2.645899; 5.986964;, + 2.295707;-2.645900; 4.316999;, + 2.295706;-4.694210; 4.317000;, + 2.295707;-4.694210; 5.986964;, + 2.295707;-2.645900; 5.986964;, + 2.093318;-2.897534; 4.317000;, + 2.093318;-4.442575; 4.317000;, + 2.295706;-4.694210; 4.317000;, + 2.295707;-2.645900; 4.316999;, + 0.654115;-2.653177; 0.786420;, + 2.289853;-2.653177; 0.786420;, + 2.093318;-2.897534; 0.786420;, + 0.850650;-2.897534; 0.786420;, + 2.289853;-4.554653; 0.786420;, + 0.654114;-4.554653; 0.786420;, + 0.850649;-4.442575; 0.786420;, + 2.093318;-4.442575; 0.786420;, + 0.654114;-4.554653; 0.786420;, + 0.654115;-2.653177; 0.786420;, + 0.850650;-2.897534; 0.786420;, + 0.850649;-4.442575; 0.786420;, + 0.654114;-4.554653;-0.078749;, + 0.654115;-2.653177;-0.078749;, + 0.654115;-2.653177; 0.786420;, + 0.654114;-4.554653; 0.786420;, + 0.850650;-2.897534; 0.786420;, + 2.093318;-2.897534; 0.786420;, + 2.093318;-2.897534; 4.317000;, + 0.850650;-2.897534; 4.317000;, + 2.093318;-2.897534; 0.786420;, + 2.093318;-4.442575; 0.786420;, + 2.093318;-4.442575; 4.317000;, + 2.093318;-2.897534; 4.317000;, + 2.093318;-4.442575; 0.786420;, + 0.850649;-4.442575; 0.786420;, + 0.850650;-4.442575; 4.317000;, + 2.093318;-4.442575; 4.317000;, + 2.289853;-2.653177; 0.786420;, + 2.289853;-4.554653; 0.786420;, + 2.093318;-4.442575; 0.786420;, + 2.093318;-2.897534; 0.786420;, + 0.850650;-2.897534; 4.317000;, + 2.093318;-2.897534; 4.317000;, + 2.295707;-2.645900; 4.316999;, + 0.648262;-2.645899; 4.317000;, + 0.850650;-4.442575; 4.317000;, + 0.850650;-2.897534; 4.317000;, + 0.648262;-2.645899; 4.317000;, + 0.648261;-4.694209; 4.317000;, + 2.093318;-4.442575; 4.317000;, + 0.850650;-4.442575; 4.317000;, + 0.648261;-4.694209; 4.317000;, + 2.295706;-4.694210; 4.317000;, + 0.850649;-4.442575; 0.786420;, + 0.850650;-2.897534; 0.786420;, + 0.850650;-2.897534; 4.317000;, + 0.850650;-4.442575; 4.317000;, + 2.755566;-5.423599; 5.058936;, + 2.755570; 5.376402; 5.058936;, + -2.644430; 5.376405; 5.058936;, + -2.644433;-5.423595; 5.058936;, + -2.644428; 5.376408;10.458936;, + 2.755571; 5.376401;10.458936;, + 2.755567;-5.423597;10.458936;, + -2.644435;-5.423593;10.458936;, + -2.644430; 5.376405; 5.058936;, + -2.644428; 5.376408;10.458936;, + -2.644435;-5.423593;10.458936;, + -2.644433;-5.423595; 5.058936;, + 2.755570; 5.376402; 5.058936;, + 2.755571; 5.376401;10.458936;, + -2.644428; 5.376408;10.458936;, + -2.644430; 5.376405; 5.058936;, + 2.755566;-5.423599; 5.058936;, + 2.755567;-5.423597;10.458936;, + 2.755571; 5.376401;10.458936;, + 2.755570; 5.376402; 5.058936;, + 0.457788;-5.423596; 9.828822;, + -0.346656;-5.423596; 9.828822;, + -2.644435;-5.423593;10.458936;, + 2.755567;-5.423597;10.458936;, + -0.346656;-6.180264; 9.828822;, + -0.346656;-6.180264; 7.673504;, + -0.346656;-5.423596; 7.673504;, + -0.346656;-5.423596; 9.828822;, + 0.457788;-6.180264; 9.828822;, + 0.457788;-6.180264; 7.673504;, + -0.346656;-6.180264; 7.673504;, + -0.346656;-6.180264; 9.828822;, + 0.457788;-5.423596; 7.673504;, + 0.457788;-5.423596; 9.828822;, + 2.755567;-5.423597;10.458936;, + 2.755566;-5.423599; 5.058936;, + -0.346656;-5.423596; 9.828822;, + -0.346656;-5.423596; 7.673504;, + -2.644433;-5.423595; 5.058936;, + -2.644435;-5.423593;10.458936;, + -0.346656;-5.423596; 7.673504;, + 0.457788;-5.423596; 7.673504;, + 2.755566;-5.423599; 5.058936;, + -2.644433;-5.423595; 5.058936;, + -0.346656;-6.180264; 7.673504;, + 0.457788;-6.180264; 7.673504;, + 0.457788;-5.423596; 7.673504;, + -0.346656;-5.423596; 7.673504;, + 0.457788;-6.180264; 7.673504;, + 0.457788;-6.180264; 9.828822;, + 0.457788;-5.423596; 9.828822;, + 0.457788;-5.423596; 7.673504;, + 0.457788;-6.180264; 9.828822;, + -0.346656;-6.180264; 9.828822;, + -0.346656;-5.423596; 9.828822;, + 0.457788;-5.423596; 9.828822;, + -0.600140; 2.982150; 5.986964;, + -2.247585; 2.982151; 5.986965;, + -2.247585; 2.982151; 5.986965;, + -0.600140; 2.982150; 5.986964;; + 125; + 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;; + MeshNormals { //Cube_000 Normals + 500; + 1.000000;-0.000001;-0.000000;, + 1.000000;-0.000001;-0.000000;, + 1.000000;-0.000001;-0.000000;, + 1.000000;-0.000001;-0.000000;, + -0.000001;-1.000000; 0.000000;, + -0.000001;-1.000000; 0.000000;, + -0.000001;-1.000000; 0.000000;, + -0.000001;-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.000001;-0.000000;, + -1.000000; 0.000001;-0.000000;, + -1.000000; 0.000001;-0.000000;, + -1.000000; 0.000001;-0.000000;, + 0.000001; 1.000000; 0.000000;, + 0.000001; 1.000000; 0.000000;, + 0.000001; 1.000000; 0.000000;, + 0.000001; 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.000001; 1.000000;-0.000000;, + 0.000001; 1.000000;-0.000000;, + 0.000001; 1.000000;-0.000000;, + 0.000001; 1.000000;-0.000000;, + -1.000000; 0.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -1.000000; 0.000001; 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.000001;-0.000000;, + 1.000000;-0.000001;-0.000000;, + 1.000000;-0.000001;-0.000000;, + 1.000000;-0.000001;-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.000001; 1.000000;-0.000000;, + 0.000001; 1.000000;-0.000000;, + 0.000001; 1.000000;-0.000000;, + 0.000001; 1.000000;-0.000000;, + 1.000000;-0.000001;-0.000000;, + 1.000000;-0.000001;-0.000000;, + 1.000000;-0.000001;-0.000000;, + 1.000000;-0.000001;-0.000000;, + -1.000000; 0.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -1.000000; 0.000001; 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;, + 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;, + -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.000001;-0.000000;-1.000000;, + -0.000001;-0.000000;-1.000000;, + -0.000001;-0.000000;-1.000000;, + -0.000001;-0.000000;-1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + -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.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + 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; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000000;-0.000001;-1.000000;, + -0.000000;-0.000001;-1.000000;, + -0.000000;-0.000001;-1.000000;, + -0.000000;-0.000001;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 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.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + 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;-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.000001;-0.000000;-1.000000;, + -0.000001;-0.000000;-1.000000;, + -0.000001;-0.000000;-1.000000;, + -0.000001;-0.000000;-1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + -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.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + 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; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000000;-0.000001;-1.000000;, + -0.000000;-0.000001;-1.000000;, + -0.000000;-0.000001;-1.000000;, + -0.000000;-0.000001;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 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.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + 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;-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.000001;-0.000000;-1.000000;, + -0.000001;-0.000000;-1.000000;, + -0.000001;-0.000000;-1.000000;, + -0.000001;-0.000000;-1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + -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.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + 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; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000000;-0.000001;-1.000000;, + -0.000000;-0.000001;-1.000000;, + -0.000000;-0.000001;-1.000000;, + -0.000000;-0.000001;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 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.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + 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;-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.000001;-0.000000;-1.000000;, + -0.000001;-0.000000;-1.000000;, + -0.000001;-0.000000;-1.000000;, + -0.000001;-0.000000;-1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + -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.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + 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; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000000;-0.000001;-1.000000;, + -0.000000;-0.000001;-1.000000;, + -0.000000;-0.000001;-1.000000;, + -0.000000;-0.000001;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 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.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -1.000000; 0.000001; 0.000000;, + -1.000000; 0.000001; 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.000001; 1.000000;-0.000000;, + 0.000001; 1.000000;-0.000000;, + 0.000001; 1.000000;-0.000000;, + 0.000001; 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.000001;-1.000000; 0.000002;, + -0.000001;-1.000000; 0.000002;, + -0.000001;-1.000000; 0.000002;, + -0.000001;-1.000000; 0.000002;, + -1.000000; 0.000001;-0.000000;, + -1.000000; 0.000001;-0.000000;, + -1.000000; 0.000001;-0.000000;, + -1.000000; 0.000001;-0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000001;-1.000000; 0.000000;, + -0.000001;-1.000000; 0.000000;, + -0.000001;-1.000000; 0.000000;, + -0.000001;-1.000000; 0.000000;, + -0.000001;-1.000000; 0.000000;, + -0.000001;-1.000000; 0.000000;, + -0.000001;-1.000000; 0.000000;, + -0.000001;-1.000000; 0.000000;, + -0.000001;-1.000000; 0.000000;, + -0.000001;-1.000000; 0.000000;, + -0.000001;-1.000000; 0.000000;, + -0.000001;-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.000001; 0.000000;, + 1.000000;-0.000001; 0.000000;, + 1.000000;-0.000001; 0.000000;, + 1.000000;-0.000001; 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;, + 0.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 0.000000;; + 125; + 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;; + } //End of Cube_000 Normals + MeshMaterialList { //Cube_000 Material List + 1; + 125; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 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.800000; 0.800000; 0.800000; 1.000000;; + 96.078431; + 0.000000; 0.000000; 0.000000;; + 0.000000; 0.000000; 0.000000;; + } + } //End of Cube_000 Material List + MeshTextureCoords { //Cube_000 UV Coordinates + 500; + 0.775469; 0.249479;, + 0.775469; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 0.249479;, + 0.770791; 0.254677;, + 0.770791; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 0.254677;, + 0.776860; 0.247933;, + 0.776860; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 0.247933;, + 1.000000; 0.248886;, + 0.776003; 0.248886;, + 0.776003; 0.000000;, + 1.000000; 0.000000;, + 0.775469; 0.249479;, + 0.775469; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 0.249479;, + 0.508558; 0.128375;, + 0.416040; 0.128375;, + 0.399617; 0.101116;, + 0.521949; 0.101116;, + 0.774010; 0.541452;, + 0.428653; 0.541418;, + 0.409241; 0.502401;, + 0.788614; 0.502401;, + 0.508558; 0.323334;, + 0.508558; 0.128375;, + 0.521949; 0.101116;, + 0.521949; 0.350594;, + 0.170686; 0.040386;, + 0.170686; 0.289871;, + 0.128073; 0.289868;, + 0.128073; 0.040389;, + 0.535799; 0.248602;, + 0.665009; 0.248602;, + 0.660053; 0.275862;, + 0.537722; 0.275862;, + 0.717535; 0.651074;, + 0.480501; 0.651074;, + 0.403272; 0.516724;, + 0.800974; 0.515687;, + 0.819048; 0.797658;, + 0.818677; 0.592455;, + 0.785562; 0.595942;, + 0.785562; 0.806196;, + 0.445849; 0.717935;, + 0.757626; 0.715741;, + 0.759700; 0.650149;, + 0.451988; 0.650149;, + 0.385327; 0.564976;, + 0.385327; 0.831711;, + 0.411585; 0.834122;, + 0.411585; 0.566052;, + 0.641769; 0.799233;, + 0.559004; 0.799233;, + 0.531170; 0.783727;, + 0.669603; 0.783727;, + 0.480501; 0.651074;, + 0.480501; 0.866680;, + 0.402917; 0.885928;, + 0.403272; 0.516724;, + 0.717535; 0.866680;, + 0.717535; 0.651074;, + 0.800974; 0.515687;, + 0.800796; 0.879372;, + 0.445862; 0.690313;, + 0.757393; 0.690313;, + 0.757626; 0.715741;, + 0.445849; 0.717935;, + 0.530532; 0.825974;, + 0.530532; 0.725803;, + 0.672472; 0.725803;, + 0.672472; 0.825974;, + 0.546001; 0.748997;, + 0.546001; 0.824503;, + 0.529045; 0.825838;, + 0.529045; 0.747662;, + 0.654435; 0.833521;, + 0.654435; 0.728251;, + 0.669955; 0.728605;, + 0.669954; 0.835122;, + 0.531146; 0.813612;, + 0.671345; 0.813612;, + 0.670462; 0.829118;, + 0.532029; 0.829118;, + 0.163824; 0.970678;, + 0.025445; 0.971241;, + 0.025078; 0.812645;, + 0.163457; 0.812082;, + 0.163457; 0.971241;, + 0.025078; 0.970678;, + 0.025445; 0.812082;, + 0.163824; 0.812645;, + 0.025078; 0.812782;, + 0.197128; 0.812082;, + 0.197495; 0.970678;, + 0.025445; 0.971378;, + 0.197553; 0.995579;, + 0.025502; 0.996279;, + 0.025078; 0.812782;, + 0.197128; 0.812082;, + 0.757152; 0.213729;, + 0.757313; 0.027004;, + 0.808940; 0.027564;, + 0.808778; 0.214289;, + 0.873128; 0.028261;, + 0.924754; 0.028821;, + 0.924592; 0.215546;, + 0.872966; 0.214986;, + 0.808940; 0.027564;, + 0.873128; 0.028261;, + 0.872966; 0.214986;, + 0.808778; 0.214289;, + 0.760353; 0.210258;, + 0.760551; 0.026773;, + 0.812177; 0.027222;, + 0.811979; 0.210707;, + 0.757152; 0.213729;, + 0.692963; 0.213032;, + 0.693125; 0.026307;, + 0.757313; 0.027004;, + 0.757120; 0.249836;, + 0.692932; 0.249139;, + 0.692963; 0.213032;, + 0.757152; 0.213729;, + 0.025078; 0.995579;, + 0.025502; 0.812082;, + 0.046123; 0.834214;, + 0.045801; 0.973616;, + 0.197553; 0.812782;, + 0.197128; 0.996279;, + 0.176507; 0.974147;, + 0.176830; 0.834745;, + 0.197128; 0.996279;, + 0.025078; 0.995579;, + 0.045801; 0.973616;, + 0.176507; 0.974147;, + 0.197128; 0.971378;, + 0.025078; 0.970678;, + 0.025445; 0.812082;, + 0.197495; 0.812783;, + 0.145802; 0.800348;, + 0.037973; 0.799657;, + 0.038577; 0.388392;, + 0.146405; 0.389084;, + 0.169580; 0.801264;, + 0.035513; 0.800404;, + 0.036117; 0.389140;, + 0.170183; 0.389999;, + 0.147602; 0.801900;, + 0.039773; 0.801209;, + 0.040375; 0.389943;, + 0.148204; 0.390635;, + 0.025502; 0.812082;, + 0.197553; 0.812782;, + 0.176830; 0.834745;, + 0.046123; 0.834214;, + 0.808747; 0.250397;, + 0.757120; 0.249836;, + 0.757152; 0.213729;, + 0.808778; 0.214289;, + 0.872935; 0.251093;, + 0.808747; 0.250397;, + 0.808778; 0.214289;, + 0.872966; 0.214986;, + 0.924561; 0.251654;, + 0.872935; 0.251093;, + 0.872966; 0.214986;, + 0.924592; 0.215546;, + 0.169708; 0.801209;, + 0.035640; 0.800348;, + 0.036243; 0.389084;, + 0.170310; 0.389943;, + 0.163824; 0.970678;, + 0.025445; 0.971241;, + 0.025078; 0.812645;, + 0.163457; 0.812082;, + 0.163457; 0.971241;, + 0.025078; 0.970678;, + 0.025445; 0.812082;, + 0.163824; 0.812645;, + 0.025078; 0.812782;, + 0.197128; 0.812082;, + 0.197495; 0.970678;, + 0.025445; 0.971378;, + 0.197553; 0.995579;, + 0.025502; 0.996279;, + 0.025078; 0.812782;, + 0.197128; 0.812082;, + 0.757152; 0.213729;, + 0.757313; 0.027004;, + 0.808940; 0.027564;, + 0.808778; 0.214289;, + 0.873128; 0.028261;, + 0.924754; 0.028821;, + 0.924592; 0.215546;, + 0.872966; 0.214986;, + 0.808940; 0.027564;, + 0.873128; 0.028261;, + 0.872966; 0.214986;, + 0.808778; 0.214289;, + 0.760353; 0.210258;, + 0.760551; 0.026773;, + 0.812177; 0.027222;, + 0.811979; 0.210707;, + 0.757152; 0.213729;, + 0.692963; 0.213032;, + 0.693125; 0.026307;, + 0.757313; 0.027004;, + 0.757120; 0.249836;, + 0.692932; 0.249139;, + 0.692963; 0.213032;, + 0.757152; 0.213729;, + 0.025078; 0.995579;, + 0.025502; 0.812082;, + 0.046123; 0.834214;, + 0.045801; 0.973616;, + 0.197553; 0.812782;, + 0.197128; 0.996279;, + 0.176507; 0.974147;, + 0.176830; 0.834745;, + 0.197128; 0.996279;, + 0.025078; 0.995579;, + 0.045801; 0.973616;, + 0.176507; 0.974147;, + 0.197128; 0.971378;, + 0.025078; 0.970678;, + 0.025445; 0.812082;, + 0.197495; 0.812783;, + 0.145802; 0.800348;, + 0.037973; 0.799657;, + 0.038577; 0.388392;, + 0.146405; 0.389084;, + 0.169580; 0.801264;, + 0.035513; 0.800404;, + 0.036117; 0.389140;, + 0.170183; 0.389999;, + 0.147602; 0.801900;, + 0.039773; 0.801209;, + 0.040375; 0.389943;, + 0.148204; 0.390635;, + 0.025502; 0.812082;, + 0.197553; 0.812782;, + 0.176830; 0.834745;, + 0.046123; 0.834214;, + 0.808747; 0.250397;, + 0.757120; 0.249836;, + 0.757152; 0.213729;, + 0.808778; 0.214289;, + 0.872935; 0.251093;, + 0.808747; 0.250397;, + 0.808778; 0.214289;, + 0.872966; 0.214986;, + 0.924561; 0.251654;, + 0.872935; 0.251093;, + 0.872966; 0.214986;, + 0.924592; 0.215546;, + 0.169708; 0.801209;, + 0.035640; 0.800348;, + 0.036243; 0.389084;, + 0.170310; 0.389943;, + 0.163824; 0.970678;, + 0.025445; 0.971241;, + 0.025078; 0.812645;, + 0.163457; 0.812082;, + 0.163457; 0.971241;, + 0.025078; 0.970678;, + 0.025445; 0.812082;, + 0.163824; 0.812645;, + 0.025078; 0.812782;, + 0.197128; 0.812082;, + 0.197495; 0.970678;, + 0.025445; 0.971378;, + 0.197553; 0.995579;, + 0.025502; 0.996279;, + 0.025078; 0.812782;, + 0.197128; 0.812082;, + 0.757152; 0.213729;, + 0.757313; 0.027004;, + 0.808940; 0.027564;, + 0.808778; 0.214289;, + 0.873128; 0.028261;, + 0.924754; 0.028821;, + 0.924592; 0.215546;, + 0.872966; 0.214986;, + 0.808940; 0.027564;, + 0.873128; 0.028261;, + 0.872966; 0.214986;, + 0.808778; 0.214289;, + 0.760353; 0.210258;, + 0.760551; 0.026773;, + 0.812177; 0.027222;, + 0.811979; 0.210707;, + 0.757152; 0.213729;, + 0.692963; 0.213032;, + 0.693125; 0.026307;, + 0.757313; 0.027004;, + 0.757120; 0.249836;, + 0.692932; 0.249139;, + 0.692963; 0.213032;, + 0.757152; 0.213729;, + 0.025078; 0.995579;, + 0.025502; 0.812082;, + 0.046123; 0.834214;, + 0.045801; 0.973616;, + 0.197553; 0.812782;, + 0.197128; 0.996279;, + 0.176507; 0.974147;, + 0.176830; 0.834745;, + 0.197128; 0.996279;, + 0.025078; 0.995579;, + 0.045801; 0.973616;, + 0.176507; 0.974147;, + 0.197128; 0.971378;, + 0.025078; 0.970678;, + 0.025445; 0.812082;, + 0.197495; 0.812783;, + 0.145802; 0.800348;, + 0.037973; 0.799657;, + 0.038577; 0.388392;, + 0.146405; 0.389084;, + 0.169580; 0.801264;, + 0.035513; 0.800404;, + 0.036117; 0.389140;, + 0.170183; 0.389999;, + 0.147602; 0.801900;, + 0.039773; 0.801209;, + 0.040375; 0.389943;, + 0.148204; 0.390635;, + 0.025502; 0.812082;, + 0.197553; 0.812782;, + 0.176830; 0.834745;, + 0.046123; 0.834214;, + 0.808747; 0.250397;, + 0.757120; 0.249836;, + 0.757152; 0.213729;, + 0.808778; 0.214289;, + 0.872935; 0.251093;, + 0.808747; 0.250397;, + 0.808778; 0.214289;, + 0.872966; 0.214986;, + 0.924561; 0.251654;, + 0.872935; 0.251093;, + 0.872966; 0.214986;, + 0.924592; 0.215546;, + 0.169708; 0.801209;, + 0.035640; 0.800348;, + 0.036243; 0.389084;, + 0.170310; 0.389943;, + 0.163824; 0.970678;, + 0.025445; 0.971241;, + 0.025078; 0.812645;, + 0.163457; 0.812082;, + 0.163457; 0.971241;, + 0.025078; 0.970678;, + 0.025445; 0.812082;, + 0.163824; 0.812645;, + 0.025078; 0.812782;, + 0.197128; 0.812082;, + 0.197495; 0.970678;, + 0.025445; 0.971378;, + 0.197553; 0.995579;, + 0.025502; 0.996279;, + 0.025078; 0.812782;, + 0.197128; 0.812082;, + 0.757152; 0.213729;, + 0.757313; 0.027004;, + 0.808940; 0.027564;, + 0.808778; 0.214289;, + 0.873128; 0.028261;, + 0.924754; 0.028821;, + 0.924592; 0.215546;, + 0.872966; 0.214986;, + 0.808940; 0.027564;, + 0.873128; 0.028261;, + 0.872966; 0.214986;, + 0.808778; 0.214289;, + 0.760353; 0.210258;, + 0.760551; 0.026773;, + 0.812177; 0.027222;, + 0.811979; 0.210707;, + 0.757152; 0.213729;, + 0.692963; 0.213032;, + 0.693125; 0.026307;, + 0.757313; 0.027004;, + 0.757120; 0.249836;, + 0.692932; 0.249139;, + 0.692963; 0.213032;, + 0.757152; 0.213729;, + 0.025078; 0.995579;, + 0.025502; 0.812082;, + 0.046123; 0.834214;, + 0.045801; 0.973616;, + 0.197553; 0.812782;, + 0.197128; 0.996279;, + 0.176507; 0.974147;, + 0.176830; 0.834745;, + 0.197128; 0.996279;, + 0.025078; 0.995579;, + 0.045801; 0.973616;, + 0.176507; 0.974147;, + 0.197128; 0.971378;, + 0.025078; 0.970678;, + 0.025445; 0.812082;, + 0.197495; 0.812783;, + 0.145802; 0.800348;, + 0.037973; 0.799657;, + 0.038577; 0.388392;, + 0.146405; 0.389084;, + 0.169580; 0.801264;, + 0.035513; 0.800404;, + 0.036117; 0.389140;, + 0.170183; 0.389999;, + 0.147602; 0.801900;, + 0.039773; 0.801209;, + 0.040375; 0.389943;, + 0.148204; 0.390635;, + 0.025502; 0.812082;, + 0.197553; 0.812782;, + 0.176830; 0.834745;, + 0.046123; 0.834214;, + 0.808747; 0.250397;, + 0.757120; 0.249836;, + 0.757152; 0.213729;, + 0.808778; 0.214289;, + 0.872935; 0.251093;, + 0.808747; 0.250397;, + 0.808778; 0.214289;, + 0.872966; 0.214986;, + 0.924561; 0.251654;, + 0.872935; 0.251093;, + 0.872966; 0.214986;, + 0.924592; 0.215546;, + 0.169708; 0.801209;, + 0.035640; 0.800348;, + 0.036243; 0.389084;, + 0.170310; 0.389943;, + 0.162385; 0.009221;, + 0.924369; 0.009221;, + 0.924369; 0.340664;, + 0.162385; 0.340664;, + 0.162385; 0.375513;, + 0.162385; 0.044070;, + 0.920960; 0.044069;, + 0.920960; 0.375513;, + 0.162385; 0.341696;, + 0.162385; 0.040128;, + 0.811969; 0.040128;, + 0.811969; 0.341696;, + 0.420022; 0.481351;, + 0.420022; 0.016910;, + 0.838019; 0.016910;, + 0.838019; 0.481351;, + 0.893638; 0.009221;, + 0.893639; 0.340665;, + 0.162386; 0.340666;, + 0.162385; 0.009222;, + 0.784518; 0.096296;, + 0.836709; 0.096296;, + 0.985785; 0.049700;, + 0.635442; 0.049700;, + 0.846809; 0.124222;, + 0.847350; 0.300681;, + 0.785401; 0.300871;, + 0.784859; 0.124412;, + 0.655966; 0.300669;, + 0.656507; 0.124210;, + 0.722368; 0.124412;, + 0.721827; 0.300871;, + 0.784518; 0.255678;, + 0.784518; 0.096296;, + 0.635442; 0.049700;, + 0.635442; 0.449020;, + 0.836709; 0.096296;, + 0.836709; 0.255678;, + 0.985785; 0.449020;, + 0.985785; 0.049700;, + 0.836709; 0.255678;, + 0.784518; 0.255678;, + 0.635442; 0.449020;, + 0.985785; 0.449020;, + 0.784859; 0.124032;, + 0.785061; 0.058171;, + 0.847011; 0.058361;, + 0.846809; 0.124222;, + 0.722368; 0.300681;, + 0.722910; 0.124222;, + 0.784859; 0.124412;, + 0.784318; 0.300871;, + 0.784657; 0.058171;, + 0.784859; 0.124032;, + 0.722910; 0.124222;, + 0.722708; 0.058361;, + 0.560714; 0.056620;, + 0.713255; 0.056620;, + 0.713255; 0.056620;, + 0.560714; 0.056620;; + } //End of Cube_000 UV Coordinates + XSkinMeshHeader { + 2; + 6; + 6; + } + SkinWeights { + "Armature_RR_leg"; + 88; + 352, + 353, + 354, + 355, + 356, + 357, + 358, + 359, + 360, + 361, + 362, + 363, + 364, + 365, + 366, + 367, + 368, + 369, + 370, + 371, + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, + 381, + 382, + 383, + 384, + 385, + 386, + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 412, + 413, + 414, + 415, + 416, + 417, + 418, + 419, + 420, + 421, + 422, + 423, + 424, + 425, + 426, + 427, + 428, + 429, + 430, + 431, + 432, + 433, + 434, + 435, + 436, + 437, + 438, + 439; + 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, + 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, + 1.469550, 5.848685,-3.642604, 1.000000;; + } //End of Armature_RR_leg Skin Weights + SkinWeights { + "Armature_Bone_001"; + 88; + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175; + 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, + 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, + -1.429771, 5.848686, 4.064455, 1.000000;; + } //End of Armature_Bone_001 Skin Weights + SkinWeights { + "Armature_Head"; + 94; + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 444, + 445, + 449, + 453, + 454, + 458; + 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, + 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.000003, + 0.000000, + 0.000003, + 0.000000, + 0.000003; + 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.030900,-3.778762,-10.040427, 1.000000;; + } //End of Armature_Head Skin Weights + SkinWeights { + "Armature_Root"; + 59; + 197, + 205, + 210, + 440, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 456, + 457, + 458, + 459, + 460, + 461, + 462, + 463, + 464, + 465, + 466, + 467, + 468, + 469, + 470, + 471, + 472, + 473, + 474, + 475, + 476, + 477, + 478, + 479, + 480, + 481, + 482, + 483, + 484, + 485, + 486, + 487, + 488, + 489, + 490, + 491, + 492, + 493, + 494, + 495; + 0.502081, + 0.502081, + 0.502081, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.999997, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.999997, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.999997, + 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.030899,-5.987902, 0.009275, 1.000000;; + } //End of Armature_Root Skin Weights + SkinWeights { + "Armature_Bone_002"; + 88; + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333, + 334, + 335, + 336, + 337, + 338, + 339, + 340, + 341, + 342, + 343, + 344, + 345, + 346, + 347, + 348, + 349, + 350, + 351; + 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.993587, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.993587, + 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.993587, + 1.000000, + 1.000000, + 0.993587, + 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.429772, 5.848685,-3.642603, 1.000000;; + } //End of Armature_Bone_002 Skin Weights + SkinWeights { + "Armature_Bone_003"; + 107; + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 263, + 268, + 271, + 278, + 283, + 291, + 304, + 307, + 311, + 313, + 314, + 317, + 318, + 320, + 325, + 328, + 334, + 339, + 342, + 349; + 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.497919, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.497919, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.497919, + 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, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.000000, + 0.000000, + 0.000000, + 0.006413, + 0.006413, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.006413, + 0.006413, + 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, + 1.469550, 5.848685, 4.064454, 1.000000;; + } //End of Armature_Bone_003 Skin Weights + } //End of Cube_000 Mesh + } //End of sheep + } //End of Armature +} //End of Root Frame +AnimationSet { + Animation { + {Armature} + AnimationKey { //Position + 2; + 165; + 0;3; 0.020581, 0.043608, 0.162447;;, + 1;3; 0.020581, 0.043608, 0.162447;;, + 2;3; 0.020581, 0.043608, 0.162447;;, + 3;3; 0.020581, 0.043608, 0.162447;;, + 4;3; 0.020581, 0.043608, 0.162447;;, + 5;3; 0.020581, 0.043608, 0.162447;;, + 6;3; 0.020581, 0.043608, 0.162447;;, + 7;3; 0.020581, 0.043608, 0.162447;;, + 8;3; 0.020581, 0.043608, 0.162447;;, + 9;3; 0.020581, 0.043608, 0.162447;;, + 10;3; 0.020581, 0.043608, 0.162447;;, + 11;3; 0.020581, 0.043608, 0.162447;;, + 12;3; 0.020581, 0.043608, 0.162447;;, + 13;3; 0.020581, 0.043608, 0.162447;;, + 14;3; 0.020581, 0.043608, 0.162447;;, + 15;3; 0.020581, 0.043608, 0.162447;;, + 16;3; 0.020581, 0.043608, 0.162447;;, + 17;3; 0.020581, 0.043608, 0.162447;;, + 18;3; 0.020581, 0.043608, 0.162447;;, + 19;3; 0.020581, 0.043608, 0.162447;;, + 20;3; 0.020581, 0.043608, 0.162447;;, + 21;3; 0.020581, 0.043608, 0.162447;;, + 22;3; 0.020581, 0.043608, 0.162447;;, + 23;3; 0.020581, 0.043608, 0.162447;;, + 24;3; 0.020581, 0.043608, 0.162447;;, + 25;3; 0.020581, 0.043608, 0.162447;;, + 26;3; 0.020581, 0.043608, 0.162447;;, + 27;3; 0.020581, 0.043608, 0.162447;;, + 28;3; 0.020581, 0.043608, 0.162447;;, + 29;3; 0.020581, 0.043608, 0.162447;;, + 30;3; 0.020581, 0.043608, 0.162447;;, + 31;3; 0.020581, 0.043608, 0.162447;;, + 32;3; 0.020581, 0.043608, 0.162447;;, + 33;3; 0.020581, 0.043608, 0.162447;;, + 34;3; 0.020581, 0.043608, 0.162447;;, + 35;3; 0.020581, 0.043608, 0.162447;;, + 36;3; 0.020581, 0.043608, 0.162447;;, + 37;3; 0.020581, 0.043608, 0.162447;;, + 38;3; 0.020581, 0.043608, 0.162447;;, + 39;3; 0.020581, 0.043608, 0.162447;;, + 40;3; 0.020581, 0.043608, 0.162447;;, + 41;3; 0.020581, 0.043608, 0.162447;;, + 42;3; 0.020581, 0.043608, 0.162447;;, + 43;3; 0.020581, 0.043608, 0.162447;;, + 44;3; 0.020581, 0.043608, 0.162447;;, + 45;3; 0.020581, 0.043608, 0.162447;;, + 46;3; 0.020581, 0.043608, 0.162447;;, + 47;3; 0.020581, 0.043608, 0.162447;;, + 48;3; 0.020581, 0.043608, 0.162447;;, + 49;3; 0.020581, 0.043608, 0.162447;;, + 50;3; 0.020581, 0.043608, 0.162447;;, + 51;3; 0.020581, 0.043608, 0.162447;;, + 52;3; 0.020581, 0.043608, 0.162447;;, + 53;3; 0.020581, 0.043608, 0.162447;;, + 54;3; 0.020581, 0.043608, 0.162447;;, + 55;3; 0.020581, 0.043608, 0.162447;;, + 56;3; 0.020581, 0.043608, 0.162447;;, + 57;3; 0.020581, 0.043608, 0.162447;;, + 58;3; 0.020581, 0.043608, 0.162447;;, + 59;3; 0.020581, 0.043608, 0.162447;;, + 60;3; 0.020581, 0.043608, 0.162447;;, + 61;3; 0.020581, 0.043608, 0.162447;;, + 62;3; 0.020581, 0.043608, 0.162447;;, + 63;3; 0.020581, 0.043608, 0.162447;;, + 64;3; 0.020581, 0.043608, 0.162447;;, + 65;3; 0.020581, 0.043608, 0.162447;;, + 66;3; 0.020581, 0.043608, 0.162447;;, + 67;3; 0.020581, 0.043608, 0.162447;;, + 68;3; 0.020581, 0.043608, 0.162447;;, + 69;3; 0.020581, 0.043608, 0.162447;;, + 70;3; 0.020581, 0.043608, 0.162447;;, + 71;3; 0.020581, 0.043608, 0.162447;;, + 72;3; 0.020581, 0.043608, 0.162447;;, + 73;3; 0.020581, 0.043608, 0.162447;;, + 74;3; 0.020581, 0.043608, 0.162447;;, + 75;3; 0.020581, 0.043608, 0.162447;;, + 76;3; 0.020581, 0.043608, 0.162447;;, + 77;3; 0.020581, 0.043608, 0.162447;;, + 78;3; 0.020581, 0.043608, 0.162447;;, + 79;3; 0.020581, 0.043608, 0.162447;;, + 80;3; 0.020581, 0.043608, 0.162447;;, + 81;3; 0.020581, 0.043608, 0.162447;;, + 82;3; 0.020581, 0.043608, 0.162447;;, + 83;3; 0.020581, 0.043608, 0.162447;;, + 84;3; 0.020581, 0.043608, 0.162447;;, + 85;3; 0.020581, 0.043608, 0.162447;;, + 86;3; 0.020581, 0.043608, 0.162447;;, + 87;3; 0.020581, 0.043608, 0.162447;;, + 88;3; 0.020581, 0.043608, 0.162447;;, + 89;3; 0.020581, 0.043608, 0.162447;;, + 90;3; 0.020581, 0.043608, 0.162447;;, + 91;3; 0.020581, 0.043608, 0.162447;;, + 92;3; 0.020581, 0.043608, 0.162447;;, + 93;3; 0.020581, 0.043608, 0.162447;;, + 94;3; 0.020581, 0.043608, 0.162447;;, + 95;3; 0.020581, 0.043608, 0.162447;;, + 96;3; 0.020581, 0.043608, 0.162447;;, + 97;3; 0.020581, 0.043608, 0.162447;;, + 98;3; 0.020581, 0.043608, 0.162447;;, + 99;3; 0.020581, 0.043608, 0.162447;;, + 100;3; 0.020581, 0.043608, 0.162447;;, + 101;3; 0.020581, 0.043608, 0.162447;;, + 102;3; 0.020581, 0.043608, 0.162447;;, + 103;3; 0.020581, 0.043608, 0.162447;;, + 104;3; 0.020581, 0.043608, 0.162447;;, + 105;3; 0.020581, 0.043608, 0.162447;;, + 106;3; 0.020581, 0.043608, 0.162447;;, + 107;3; 0.020581, 0.043608, 0.162447;;, + 108;3; 0.020581, 0.043608, 0.162447;;, + 109;3; 0.020581, 0.043608, 0.162447;;, + 110;3; 0.020581, 0.043608, 0.162447;;, + 111;3; 0.020581, 0.043608, 0.162447;;, + 112;3; 0.020581, 0.043608, 0.162447;;, + 113;3; 0.020581, 0.043608, 0.162447;;, + 114;3; 0.020581, 0.043608, 0.162447;;, + 115;3; 0.020581, 0.043608, 0.162447;;, + 116;3; 0.020581, 0.043608, 0.162447;;, + 117;3; 0.020581, 0.043608, 0.162447;;, + 118;3; 0.020581, 0.043608, 0.162447;;, + 119;3; 0.020581, 0.043608, 0.162447;;, + 120;3; 0.020581, 0.043608, 0.162447;;, + 121;3; 0.020581, 0.043608, 0.162447;;, + 122;3; 0.020581, 0.043608, 0.162447;;, + 123;3; 0.020581, 0.043608, 0.162447;;, + 124;3; 0.020581, 0.043608, 0.162447;;, + 125;3; 0.020581, 0.043608, 0.162447;;, + 126;3; 0.020581, 0.043608, 0.162447;;, + 127;3; 0.020581, 0.043608, 0.162447;;, + 128;3; 0.020581, 0.043608, 0.162447;;, + 129;3; 0.020581, 0.043608, 0.162447;;, + 130;3; 0.020581, 0.043608, 0.162447;;, + 131;3; 0.020581, 0.043608, 0.162447;;, + 132;3; 0.020581, 0.043608, 0.162447;;, + 133;3; 0.020581, 0.043608, 0.162447;;, + 134;3; 0.020581, 0.043608, 0.162447;;, + 135;3; 0.020581, 0.043608, 0.162447;;, + 136;3; 0.020581, 0.043608, 0.162447;;, + 137;3; 0.020581, 0.043608, 0.162447;;, + 138;3; 0.020581, 0.043608, 0.162447;;, + 139;3; 0.020581, 0.043608, 0.162447;;, + 140;3; 0.020581, 0.043608, 0.162447;;, + 141;3; 0.020581, 0.043608, 0.162447;;, + 142;3; 0.020581, 0.043608, 0.162447;;, + 143;3; 0.020581, 0.043608, 0.162447;;, + 144;3; 0.020581, 0.043608, 0.162447;;, + 145;3; 0.020581, 0.043608, 0.162447;;, + 146;3; 0.020581, 0.043608, 0.162447;;, + 147;3; 0.020581, 0.043608, 0.162447;;, + 148;3; 0.020581, 0.043608, 0.162447;;, + 149;3; 0.020581, 0.043608, 0.162447;;, + 150;3; 0.020581, 0.043608, 0.162447;;, + 151;3; 0.020581, 0.043608, 0.162447;;, + 152;3; 0.020581, 0.043608, 0.162447;;, + 153;3; 0.020581, 0.043608, 0.162447;;, + 154;3; 0.020581, 0.043608, 0.162447;;, + 155;3; 0.020581, 0.043608, 0.162447;;, + 156;3; 0.020581, 0.043608, 0.162447;;, + 157;3; 0.020581, 0.043608, 0.162447;;, + 158;3; 0.020581, 0.043608, 0.162447;;, + 159;3; 0.020581, 0.043608, 0.162447;;, + 160;3; 0.020581, 0.043608, 0.162447;;, + 161;3; 0.020581, 0.043608, 0.162447;;, + 162;3; 0.020581, 0.043608, 0.162447;;, + 163;3; 0.020581, 0.043608, 0.162447;;, + 164;3; 0.020581, 0.043608, 0.162447;;; + } + AnimationKey { //Rotation + 0; + 165; + 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;;; + } + AnimationKey { //Scale + 1; + 165; + 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;;; + } + } + Animation { + {Armature_Root} + AnimationKey { //Position + 2; + 165; + 0;3; 0.030899,-0.009276, 5.987902;;, + 1;3; 0.030899,-0.009276, 5.987902;;, + 2;3; 0.030899,-0.009276, 5.987902;;, + 3;3; 0.030899,-0.009276, 5.987902;;, + 4;3; 0.030899,-0.009276, 5.987902;;, + 5;3; 0.030899,-0.009276, 5.987902;;, + 6;3; 0.030899,-0.009276, 5.987902;;, + 7;3; 0.030899,-0.009276, 5.987902;;, + 8;3; 0.030899,-0.009276, 5.987902;;, + 9;3; 0.030899,-0.009276, 5.987902;;, + 10;3; 0.030899,-0.009276, 5.987902;;, + 11;3; 0.030899,-0.009276, 5.987902;;, + 12;3; 0.030899,-0.009276, 5.987902;;, + 13;3; 0.030899,-0.009276, 5.987902;;, + 14;3; 0.030899,-0.009276, 5.987902;;, + 15;3; 0.030899,-0.009276, 5.987902;;, + 16;3; 0.030899,-0.009276, 5.987902;;, + 17;3; 0.030899,-0.009276, 5.987902;;, + 18;3; 0.030899,-0.009276, 5.987902;;, + 19;3; 0.030899,-0.009276, 5.987902;;, + 20;3; 0.030899,-0.009276, 5.987902;;, + 21;3; 0.030899,-0.009276, 5.987902;;, + 22;3; 0.030899,-0.009276, 5.987902;;, + 23;3; 0.030899,-0.009276, 5.987902;;, + 24;3; 0.030899,-0.009276, 5.987902;;, + 25;3; 0.030899,-0.009276, 5.987902;;, + 26;3; 0.030899,-0.009276, 5.987902;;, + 27;3; 0.030899,-0.009276, 5.987902;;, + 28;3; 0.030899,-0.009276, 5.987902;;, + 29;3; 0.030899,-0.009276, 5.987902;;, + 30;3; 0.030899,-0.009276, 5.987902;;, + 31;3; 0.030899,-0.009276, 5.987902;;, + 32;3; 0.030899,-0.009276, 5.987902;;, + 33;3; 0.030899,-0.009276, 5.987902;;, + 34;3; 0.030899,-0.009276, 5.987902;;, + 35;3; 0.030899,-0.009276, 5.987902;;, + 36;3; 0.030899,-0.009276, 5.987902;;, + 37;3; 0.030899,-0.009276, 5.987902;;, + 38;3; 0.030899,-0.009276, 5.987902;;, + 39;3; 0.030899,-0.009276, 5.987902;;, + 40;3; 0.030899,-0.009276, 5.987902;;, + 41;3; 0.030899,-0.009276, 5.987902;;, + 42;3; 0.030899,-0.009276, 5.987902;;, + 43;3; 0.030899,-0.009276, 5.987902;;, + 44;3; 0.030899,-0.009276, 5.987902;;, + 45;3; 0.030899,-0.009276, 5.987902;;, + 46;3; 0.030899,-0.009276, 5.987902;;, + 47;3; 0.030899,-0.009276, 5.987902;;, + 48;3; 0.030899,-0.009276, 5.987902;;, + 49;3; 0.030899,-0.009276, 5.987902;;, + 50;3; 0.030899,-0.009276, 5.987902;;, + 51;3; 0.030899,-0.009276, 5.987902;;, + 52;3; 0.030899,-0.009276, 5.987902;;, + 53;3; 0.030899,-0.009276, 5.987902;;, + 54;3; 0.030899,-0.009276, 5.987902;;, + 55;3; 0.030899,-0.009276, 5.987902;;, + 56;3; 0.030899,-0.009276, 5.987902;;, + 57;3; 0.030899,-0.009276, 5.987902;;, + 58;3; 0.030899,-0.009276, 5.987902;;, + 59;3; 0.030899,-0.009276, 5.987902;;, + 60;3; 0.030899,-0.009276, 5.987902;;, + 61;3; 0.030899,-0.009276, 5.987902;;, + 62;3; 0.030899,-0.009276, 5.987902;;, + 63;3; 0.030899,-0.009276, 5.987902;;, + 64;3; 0.030899,-0.009276, 5.987902;;, + 65;3; 0.030899,-0.009276, 5.987902;;, + 66;3; 0.030899,-0.009276, 5.987902;;, + 67;3; 0.030899,-0.009276, 5.987902;;, + 68;3; 0.030899,-0.009276, 5.987902;;, + 69;3; 0.030899,-0.009276, 5.987902;;, + 70;3; 0.030899,-0.009276, 5.987902;;, + 71;3; 0.030899,-0.009276, 5.987902;;, + 72;3; 0.030899,-0.009276, 5.987902;;, + 73;3; 0.030899,-0.009276, 5.987902;;, + 74;3; 0.030899,-0.009276, 5.987902;;, + 75;3; 0.030899,-0.009276, 5.987902;;, + 76;3; 0.030899,-0.009276, 5.987902;;, + 77;3; 0.030899,-0.009276, 5.987902;;, + 78;3; 0.030899,-0.009276, 5.987902;;, + 79;3; 0.030899,-0.009276, 5.987902;;, + 80;3; 0.030899,-0.009276, 5.987902;;, + 81;3; 0.030899,-0.009276, 5.987902;;, + 82;3; 0.030899,-0.009276, 5.987902;;, + 83;3; 0.030899,-0.009276, 5.987902;;, + 84;3; 0.030899,-0.009276, 5.987902;;, + 85;3; 0.030899,-0.009276, 5.987902;;, + 86;3; 0.030899,-0.009276, 5.987902;;, + 87;3; 0.030899,-0.009276, 5.987902;;, + 88;3; 0.030899,-0.009276, 5.987902;;, + 89;3; 0.030899,-0.009276, 5.987902;;, + 90;3; 0.030899,-0.009276, 5.987902;;, + 91;3; 0.030899,-0.009276, 5.987902;;, + 92;3; 0.030899,-0.009276, 5.987902;;, + 93;3; 0.030899,-0.009276, 5.987902;;, + 94;3; 0.030899,-0.009276, 5.987902;;, + 95;3; 0.030899,-0.009276, 5.987902;;, + 96;3; 0.030899,-0.009276, 5.987902;;, + 97;3; 0.030899,-0.009276, 5.987902;;, + 98;3; 0.030899,-0.009276, 5.987902;;, + 99;3; 0.030899,-0.009276, 5.987902;;, + 100;3; 0.030899,-0.009276, 5.987902;;, + 101;3; 0.030899,-0.009276, 5.987902;;, + 102;3; 0.030899,-0.009276, 5.987902;;, + 103;3; 0.030899,-0.009276, 5.987902;;, + 104;3; 0.030899,-0.009276, 5.987902;;, + 105;3; 0.030899,-0.009276, 5.987902;;, + 106;3; 0.030899,-0.009276, 5.987902;;, + 107;3; 0.030899,-0.009276, 5.987902;;, + 108;3; 0.030899,-0.009276, 5.987902;;, + 109;3; 0.030899,-0.009276, 5.987902;;, + 110;3; 0.030899,-0.009276, 5.987902;;, + 111;3; 0.030899,-0.009276, 5.987902;;, + 112;3; 0.030899,-0.009276, 5.987902;;, + 113;3; 0.030899,-0.009276, 5.987902;;, + 114;3; 0.030899,-0.009276, 5.987902;;, + 115;3; 0.030899,-0.009276, 5.987902;;, + 116;3; 0.030899,-0.009276, 5.987902;;, + 117;3; 0.030899,-0.009276, 5.987902;;, + 118;3; 0.030899,-0.009276, 5.987902;;, + 119;3; 0.030899,-0.009276, 5.987902;;, + 120;3; 0.030899,-0.009276, 5.987902;;, + 121;3; 0.030899,-0.009276, 5.987902;;, + 122;3; 0.030899,-0.009276, 5.987902;;, + 123;3; 0.030899,-0.009276, 5.987902;;, + 124;3; 0.030899,-0.009276, 5.987902;;, + 125;3; 0.030899,-0.009276, 5.987902;;, + 126;3; 0.030899,-0.009276, 5.987902;;, + 127;3; 0.030899,-0.009276, 5.987902;;, + 128;3; 0.030899,-0.009276, 5.987902;;, + 129;3; 0.030899,-0.009276, 5.987902;;, + 130;3; 0.030899,-0.009276, 5.987902;;, + 131;3; 0.030899,-0.009276, 5.987902;;, + 132;3; 0.030899,-0.009276, 5.987902;;, + 133;3; 0.030899,-0.009276, 5.987902;;, + 134;3; 0.030899,-0.009276, 5.987902;;, + 135;3; 0.030899,-0.009276, 5.987902;;, + 136;3; 0.030899,-0.009276, 5.987902;;, + 137;3; 0.030899,-0.009276, 5.987902;;, + 138;3; 0.030899,-0.009276, 5.987902;;, + 139;3; 0.030899,-0.009276, 5.987902;;, + 140;3; 0.030899,-0.009276, 5.987902;;, + 141;3; 0.030899,-0.009276, 5.987902;;, + 142;3; 0.030899,-0.009276, 5.987902;;, + 143;3; 0.030899,-0.009276, 5.987902;;, + 144;3; 0.030899,-0.009276, 5.987902;;, + 145;3; 0.030899,-0.009276, 5.987902;;, + 146;3; 0.030899,-0.009276, 5.987902;;, + 147;3; 0.030899,-0.009276, 5.987902;;, + 148;3; 0.030899,-0.009276, 5.987902;;, + 149;3; 0.030899,-0.009276, 5.987902;;, + 150;3; 0.030899,-0.009276, 5.987902;;, + 151;3; 0.030899,-0.009276, 5.987902;;, + 152;3; 0.030899,-0.009276, 5.987902;;, + 153;3; 0.030899,-0.009276, 5.987902;;, + 154;3; 0.030899,-0.009276, 5.987902;;, + 155;3; 0.030899,-0.009276, 5.987902;;, + 156;3; 0.030899,-0.009276, 5.987902;;, + 157;3; 0.030899,-0.009276, 5.987902;;, + 158;3; 0.030899,-0.009276, 5.987902;;, + 159;3; 0.030899,-0.009276, 5.987902;;, + 160;3; 0.030899,-0.009276, 5.987902;;, + 161;3; 0.030899,-0.009276, 5.987902;;, + 162;3; 0.030899,-0.009276, 5.987902;;, + 163;3; 0.030899,-0.009276, 5.987902;;, + 164;3; 0.030899,-0.009276, 5.987902;;; + } + AnimationKey { //Rotation + 0; + 165; + 0;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 1;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 2;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 3;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 4;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 5;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 6;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 7;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 8;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 9;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 10;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 11;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 12;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 13;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 14;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 15;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 16;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 17;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 18;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 19;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 20;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 21;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 22;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 23;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 24;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 25;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 26;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 27;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 28;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 29;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 30;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 31;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 32;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 33;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 34;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 35;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 36;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 37;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 38;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 39;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 40;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 41;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 42;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 43;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 44;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 45;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 46;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 47;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 48;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 49;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 50;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 51;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 52;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 53;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 54;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 55;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 56;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 57;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 58;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 59;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 60;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 61;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 62;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 63;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 64;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 65;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 66;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 67;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 68;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 69;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 70;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 71;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 72;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 73;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 74;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 75;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 76;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 77;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 78;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 79;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 80;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 81;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 82;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 83;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 84;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 85;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 86;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 87;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 88;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 89;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 90;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 91;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 92;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 93;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 94;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 95;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 96;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 97;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 98;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 99;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 100;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 101;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 102;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 103;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 104;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 105;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 106;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 107;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 108;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 109;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 110;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 111;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 112;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 113;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 114;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 115;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 116;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 117;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 118;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 119;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 120;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 121;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 122;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 123;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 124;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 125;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 126;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 127;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 128;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 129;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 130;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 131;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 132;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 133;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 134;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 135;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 136;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 137;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 138;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 139;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 140;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 141;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 142;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 143;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 144;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 145;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 146;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 147;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 148;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 149;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 150;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 151;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 152;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 153;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 154;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 155;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 156;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 157;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 158;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 159;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 160;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 161;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 162;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 163;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 164;4; 0.000000, 0.000000, 0.707107, 0.707107;;; + } + AnimationKey { //Scale + 1; + 165; + 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;;; + } + } + Animation { + {Armature_Bone_001} + AnimationKey { //Position + 2; + 165; + 0;3; 1.460671,-0.139217, 4.073730;;, + 1;3; 1.460671,-0.139217, 4.073730;;, + 2;3; 1.460671,-0.139217, 4.073730;;, + 3;3; 1.460671,-0.139217, 4.073730;;, + 4;3; 1.460671,-0.139217, 4.073730;;, + 5;3; 1.460671,-0.139217, 4.073730;;, + 6;3; 1.460671,-0.139217, 4.073730;;, + 7;3; 1.460671,-0.139217, 4.073730;;, + 8;3; 1.460671,-0.139217, 4.073730;;, + 9;3; 1.460671,-0.139217, 4.073730;;, + 10;3; 1.460671,-0.139217, 4.073730;;, + 11;3; 1.460671,-0.139217, 4.073730;;, + 12;3; 1.460671,-0.139217, 4.073730;;, + 13;3; 1.460671,-0.139217, 4.073730;;, + 14;3; 1.460671,-0.139217, 4.073730;;, + 15;3; 1.460671,-0.139217, 4.073730;;, + 16;3; 1.460671,-0.139217, 4.073730;;, + 17;3; 1.460671,-0.139217, 4.073730;;, + 18;3; 1.460671,-0.139217, 4.073730;;, + 19;3; 1.460671,-0.139217, 4.073730;;, + 20;3; 1.460671,-0.139217, 4.073730;;, + 21;3; 1.460671,-0.139217, 4.073730;;, + 22;3; 1.460671,-0.139217, 4.073730;;, + 23;3; 1.460671,-0.139217, 4.073730;;, + 24;3; 1.460671,-0.139217, 4.073730;;, + 25;3; 1.460671,-0.139217, 4.073730;;, + 26;3; 1.460671,-0.139217, 4.073730;;, + 27;3; 1.460671,-0.139217, 4.073730;;, + 28;3; 1.460671,-0.139217, 4.073730;;, + 29;3; 1.460671,-0.139217, 4.073730;;, + 30;3; 1.460671,-0.139217, 4.073730;;, + 31;3; 1.460671,-0.139217, 4.073730;;, + 32;3; 1.460671,-0.139217, 4.073730;;, + 33;3; 1.460671,-0.139217, 4.073730;;, + 34;3; 1.460671,-0.139217, 4.073730;;, + 35;3; 1.460671,-0.139217, 4.073730;;, + 36;3; 1.460671,-0.139217, 4.073730;;, + 37;3; 1.460671,-0.139217, 4.073730;;, + 38;3; 1.460671,-0.139217, 4.073730;;, + 39;3; 1.460671,-0.139217, 4.073730;;, + 40;3; 1.460671,-0.139217, 4.073730;;, + 41;3; 1.460671,-0.139217, 4.073730;;, + 42;3; 1.460671,-0.139217, 4.073730;;, + 43;3; 1.460671,-0.139217, 4.073730;;, + 44;3; 1.460671,-0.139217, 4.073730;;, + 45;3; 1.460671,-0.139217, 4.073730;;, + 46;3; 1.460671,-0.139217, 4.073730;;, + 47;3; 1.460671,-0.139217, 4.073730;;, + 48;3; 1.460671,-0.139217, 4.073730;;, + 49;3; 1.460671,-0.139217, 4.073730;;, + 50;3; 1.460671,-0.139217, 4.073730;;, + 51;3; 1.460671,-0.139217, 4.073730;;, + 52;3; 1.460671,-0.139217, 4.073730;;, + 53;3; 1.460671,-0.139217, 4.073730;;, + 54;3; 1.460671,-0.139217, 4.073730;;, + 55;3; 1.460671,-0.139217, 4.073730;;, + 56;3; 1.460671,-0.139217, 4.073730;;, + 57;3; 1.460671,-0.139217, 4.073730;;, + 58;3; 1.460671,-0.139217, 4.073730;;, + 59;3; 1.460671,-0.139217, 4.073730;;, + 60;3; 1.460671,-0.139217, 4.073730;;, + 61;3; 1.460671,-0.139217, 4.073730;;, + 62;3; 1.460671,-0.139217, 4.073730;;, + 63;3; 1.460671,-0.139217, 4.073730;;, + 64;3; 1.460671,-0.139217, 4.073730;;, + 65;3; 1.460671,-0.139217, 4.073730;;, + 66;3; 1.460671,-0.139217, 4.073730;;, + 67;3; 1.460671,-0.139217, 4.073730;;, + 68;3; 1.460671,-0.139217, 4.073730;;, + 69;3; 1.460671,-0.139217, 4.073730;;, + 70;3; 1.460671,-0.139217, 4.073730;;, + 71;3; 1.460671,-0.139217, 4.073730;;, + 72;3; 1.460671,-0.139217, 4.073730;;, + 73;3; 1.460671,-0.139217, 4.073730;;, + 74;3; 1.460671,-0.139217, 4.073730;;, + 75;3; 1.460671,-0.139217, 4.073730;;, + 76;3; 1.460671,-0.139217, 4.073730;;, + 77;3; 1.460671,-0.139217, 4.073730;;, + 78;3; 1.460671,-0.139217, 4.073730;;, + 79;3; 1.460671,-0.139217, 4.073730;;, + 80;3; 1.460671,-0.139217, 4.073730;;, + 81;3; 1.460671,-0.139217, 4.073730;;, + 82;3; 1.460671,-0.139217, 4.073730;;, + 83;3; 1.460671,-0.139217, 4.073730;;, + 84;3; 1.460671,-0.139217, 4.073730;;, + 85;3; 1.460671,-0.139217, 4.073730;;, + 86;3; 1.460671,-0.139217, 4.073730;;, + 87;3; 1.460671,-0.139217, 4.073730;;, + 88;3; 1.460671,-0.139217, 4.073730;;, + 89;3; 1.460671,-0.139217, 4.073730;;, + 90;3; 1.460671,-0.139217, 4.073730;;, + 91;3; 1.460671,-0.139217, 4.073730;;, + 92;3; 1.460671,-0.139217, 4.073730;;, + 93;3; 1.460671,-0.139217, 4.073730;;, + 94;3; 1.460671,-0.139217, 4.073730;;, + 95;3; 1.460671,-0.139217, 4.073730;;, + 96;3; 1.460671,-0.139217, 4.073730;;, + 97;3; 1.460671,-0.139217, 4.073730;;, + 98;3; 1.460671,-0.139217, 4.073730;;, + 99;3; 1.460671,-0.139217, 4.073730;;, + 100;3; 1.460671,-0.139217, 4.073730;;, + 101;3; 1.460671,-0.139217, 4.073730;;, + 102;3; 1.460671,-0.139217, 4.073730;;, + 103;3; 1.460671,-0.139217, 4.073730;;, + 104;3; 1.460671,-0.139217, 4.073730;;, + 105;3; 1.460671,-0.139217, 4.073730;;, + 106;3; 1.460671,-0.139217, 4.073730;;, + 107;3; 1.460671,-0.139217, 4.073730;;, + 108;3; 1.460671,-0.139217, 4.073730;;, + 109;3; 1.460671,-0.139217, 4.073730;;, + 110;3; 1.460671,-0.139217, 4.073730;;, + 111;3; 1.460671,-0.139217, 4.073730;;, + 112;3; 1.460671,-0.139217, 4.073730;;, + 113;3; 1.460671,-0.139217, 4.073730;;, + 114;3; 1.460671,-0.139217, 4.073730;;, + 115;3; 1.460671,-0.139217, 4.073730;;, + 116;3; 1.460671,-0.139217, 4.073730;;, + 117;3; 1.460671,-0.139217, 4.073730;;, + 118;3; 1.460671,-0.139217, 4.073730;;, + 119;3; 1.460671,-0.139217, 4.073730;;, + 120;3; 1.460671,-0.139217, 4.073730;;, + 121;3; 1.460671,-0.139217, 4.073730;;, + 122;3; 1.460671,-0.139217, 4.073730;;, + 123;3; 1.460671,-0.139217, 4.073730;;, + 124;3; 1.460671,-0.139217, 4.073730;;, + 125;3; 1.460671,-0.139217, 4.073730;;, + 126;3; 1.460671,-0.139217, 4.073730;;, + 127;3; 1.460671,-0.139217, 4.073730;;, + 128;3; 1.460671,-0.139217, 4.073730;;, + 129;3; 1.460671,-0.139217, 4.073730;;, + 130;3; 1.460671,-0.139217, 4.073730;;, + 131;3; 1.460671,-0.139217, 4.073730;;, + 132;3; 1.460671,-0.139217, 4.073730;;, + 133;3; 1.460671,-0.139217, 4.073730;;, + 134;3; 1.460671,-0.139217, 4.073730;;, + 135;3; 1.460671,-0.139217, 4.073730;;, + 136;3; 1.460671,-0.139217, 4.073730;;, + 137;3; 1.460671,-0.139217, 4.073730;;, + 138;3; 1.460671,-0.139217, 4.073730;;, + 139;3; 1.460671,-0.139217, 4.073730;;, + 140;3; 1.460671,-0.139217, 4.073730;;, + 141;3; 1.460671,-0.139217, 4.073730;;, + 142;3; 1.460671,-0.139217, 4.073730;;, + 143;3; 1.460671,-0.139217, 4.073730;;, + 144;3; 1.460671,-0.139217, 4.073730;;, + 145;3; 1.460671,-0.139217, 4.073730;;, + 146;3; 1.460671,-0.139217, 4.073730;;, + 147;3; 1.460671,-0.139217, 4.073730;;, + 148;3; 1.460671,-0.139217, 4.073730;;, + 149;3; 1.460671,-0.139217, 4.073730;;, + 150;3; 1.460671,-0.139217, 4.073730;;, + 151;3; 1.460671,-0.139217, 4.073730;;, + 152;3; 1.460671,-0.139217, 4.073730;;, + 153;3; 1.460671,-0.139217, 4.073730;;, + 154;3; 1.460671,-0.139217, 4.073730;;, + 155;3; 1.460671,-0.139217, 4.073730;;, + 156;3; 1.460671,-0.139217, 4.073730;;, + 157;3; 1.460671,-0.139217, 4.073730;;, + 158;3; 1.460671,-0.139217, 4.073730;;, + 159;3; 1.460671,-0.139217, 4.073730;;, + 160;3; 1.460671,-0.139217, 4.073730;;, + 161;3; 1.460671,-0.139217, 4.073730;;, + 162;3; 1.460671,-0.139217, 4.073730;;, + 163;3; 1.460671,-0.139217, 4.073730;;, + 164;3; 1.460671,-0.139217, 4.073730;;; + } + AnimationKey { //Rotation + 0; + 165; + 0;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 1;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 2;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 3;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 4;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 5;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 6;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 7;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 8;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 9;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 10;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 11;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 12;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 13;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 14;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 15;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 16;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 17;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 18;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 19;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 20;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 21;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 22;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 23;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 24;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 25;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 26;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 27;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 28;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 29;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 30;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 31;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 32;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 33;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 34;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 35;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 36;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 37;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 38;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 39;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 40;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 41;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 42;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 43;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 44;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 45;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 46;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 47;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 48;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 49;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 50;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 51;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 52;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 53;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 54;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 55;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 56;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 57;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 58;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 59;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 60;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 61;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 62;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 63;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 64;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 65;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 66;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 67;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 68;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 69;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 70;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 71;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 72;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 73;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 74;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 75;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 76;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 77;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 78;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 79;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 80;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 81;4; -0.023017, 0.996971,-0.000000,-0.000000;;, + 82;4; -0.087830, 0.988440,-0.000000,-0.000000;;, + 83;4; -0.171026, 0.977486,-0.000000,-0.000000;;, + 84;4; -0.235816, 0.968955,-0.000000,-0.000000;;, + 85;4; -0.258819, 0.965926,-0.000000,-0.000000;;, + 86;4; -0.247344, 0.965926,-0.000000,-0.000000;;, + 87;4; -0.212807, 0.965926,-0.000000,-0.000000;;, + 88;4; -0.156652, 0.965926,-0.000000,-0.000000;;, + 89;4; -0.083204, 0.965926,-0.000000,-0.000000;;, + 90;4; -0.000000, 0.965926,-0.000000,-0.000000;;, + 91;4; 0.083204, 0.965926, 0.000000,-0.000000;;, + 92;4; 0.156652, 0.965926, 0.000000,-0.000000;;, + 93;4; 0.212807, 0.965926, 0.000000,-0.000000;;, + 94;4; 0.247343, 0.965926, 0.000000,-0.000000;;, + 95;4; 0.258819, 0.965926, 0.000000,-0.000000;;, + 96;4; 0.235815, 0.968955, 0.000000,-0.000000;;, + 97;4; 0.171026, 0.977486, 0.000000,-0.000000;;, + 98;4; 0.087830, 0.988440, 0.000000,-0.000000;;, + 99;4; 0.023017, 0.996971, 0.000000,-0.000000;;, + 100;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 101;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 102;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 103;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 104;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 105;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 106;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 107;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 108;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 109;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 110;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 111;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 112;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 113;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 114;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 115;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 116;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 117;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 118;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 119;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 120;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 121;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 122;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 123;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 124;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 125;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 126;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 127;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 128;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 129;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 130;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 131;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 132;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 133;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 134;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 135;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 136;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 137;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 138;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 139;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 140;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 141;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 142;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 143;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 144;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 145;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 146;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 147;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 148;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 149;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 150;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 151;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 152;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 153;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 154;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 155;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 156;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 157;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 158;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 159;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 160;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 161;4; -0.000000, 1.000000, 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;;; + } + AnimationKey { //Scale + 1; + 165; + 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;;; + } + } + Animation { + {Armature_Bone_002} + AnimationKey { //Position + 2; + 165; + 0;3; 1.460671,-0.139216,-3.633328;;, + 1;3; 1.460671,-0.139216,-3.633328;;, + 2;3; 1.460671,-0.139216,-3.633328;;, + 3;3; 1.460671,-0.139216,-3.633328;;, + 4;3; 1.460671,-0.139216,-3.633328;;, + 5;3; 1.460671,-0.139216,-3.633328;;, + 6;3; 1.460671,-0.139216,-3.633328;;, + 7;3; 1.460671,-0.139216,-3.633328;;, + 8;3; 1.460671,-0.139216,-3.633328;;, + 9;3; 1.460671,-0.139216,-3.633328;;, + 10;3; 1.460671,-0.139216,-3.633328;;, + 11;3; 1.460671,-0.139216,-3.633328;;, + 12;3; 1.460671,-0.139216,-3.633328;;, + 13;3; 1.460671,-0.139216,-3.633328;;, + 14;3; 1.460671,-0.139216,-3.633328;;, + 15;3; 1.460671,-0.139216,-3.633328;;, + 16;3; 1.460671,-0.139216,-3.633328;;, + 17;3; 1.460671,-0.139216,-3.633328;;, + 18;3; 1.460671,-0.139216,-3.633328;;, + 19;3; 1.460671,-0.139216,-3.633328;;, + 20;3; 1.460671,-0.139216,-3.633328;;, + 21;3; 1.460671,-0.139216,-3.633328;;, + 22;3; 1.460671,-0.139216,-3.633328;;, + 23;3; 1.460671,-0.139216,-3.633328;;, + 24;3; 1.460671,-0.139216,-3.633328;;, + 25;3; 1.460671,-0.139216,-3.633328;;, + 26;3; 1.460671,-0.139216,-3.633328;;, + 27;3; 1.460671,-0.139216,-3.633328;;, + 28;3; 1.460671,-0.139216,-3.633328;;, + 29;3; 1.460671,-0.139216,-3.633328;;, + 30;3; 1.460671,-0.139216,-3.633328;;, + 31;3; 1.460671,-0.139216,-3.633328;;, + 32;3; 1.460671,-0.139216,-3.633328;;, + 33;3; 1.460671,-0.139216,-3.633328;;, + 34;3; 1.460671,-0.139216,-3.633328;;, + 35;3; 1.460671,-0.139216,-3.633328;;, + 36;3; 1.460671,-0.139216,-3.633328;;, + 37;3; 1.460671,-0.139216,-3.633328;;, + 38;3; 1.460671,-0.139216,-3.633328;;, + 39;3; 1.460671,-0.139216,-3.633328;;, + 40;3; 1.460671,-0.139216,-3.633328;;, + 41;3; 1.460671,-0.139216,-3.633328;;, + 42;3; 1.460671,-0.139216,-3.633328;;, + 43;3; 1.460671,-0.139216,-3.633328;;, + 44;3; 1.460671,-0.139216,-3.633328;;, + 45;3; 1.460671,-0.139216,-3.633328;;, + 46;3; 1.460671,-0.139216,-3.633328;;, + 47;3; 1.460671,-0.139216,-3.633328;;, + 48;3; 1.460671,-0.139216,-3.633328;;, + 49;3; 1.460671,-0.139216,-3.633328;;, + 50;3; 1.460671,-0.139216,-3.633328;;, + 51;3; 1.460671,-0.139216,-3.633328;;, + 52;3; 1.460671,-0.139216,-3.633328;;, + 53;3; 1.460671,-0.139216,-3.633328;;, + 54;3; 1.460671,-0.139216,-3.633328;;, + 55;3; 1.460671,-0.139216,-3.633328;;, + 56;3; 1.460671,-0.139216,-3.633328;;, + 57;3; 1.460671,-0.139216,-3.633328;;, + 58;3; 1.460671,-0.139216,-3.633328;;, + 59;3; 1.460671,-0.139216,-3.633328;;, + 60;3; 1.460671,-0.139216,-3.633328;;, + 61;3; 1.460671,-0.139216,-3.633328;;, + 62;3; 1.460671,-0.139216,-3.633328;;, + 63;3; 1.460671,-0.139216,-3.633328;;, + 64;3; 1.460671,-0.139216,-3.633328;;, + 65;3; 1.460671,-0.139216,-3.633328;;, + 66;3; 1.460671,-0.139216,-3.633328;;, + 67;3; 1.460671,-0.139216,-3.633328;;, + 68;3; 1.460671,-0.139216,-3.633328;;, + 69;3; 1.460671,-0.139216,-3.633328;;, + 70;3; 1.460671,-0.139216,-3.633328;;, + 71;3; 1.460671,-0.139216,-3.633328;;, + 72;3; 1.460671,-0.139216,-3.633328;;, + 73;3; 1.460671,-0.139216,-3.633328;;, + 74;3; 1.460671,-0.139216,-3.633328;;, + 75;3; 1.460671,-0.139216,-3.633328;;, + 76;3; 1.460671,-0.139216,-3.633328;;, + 77;3; 1.460671,-0.139216,-3.633328;;, + 78;3; 1.460671,-0.139216,-3.633328;;, + 79;3; 1.460671,-0.139216,-3.633328;;, + 80;3; 1.460671,-0.139216,-3.633328;;, + 81;3; 1.460671,-0.139216,-3.633328;;, + 82;3; 1.460671,-0.139216,-3.633328;;, + 83;3; 1.460671,-0.139216,-3.633328;;, + 84;3; 1.460671,-0.139216,-3.633328;;, + 85;3; 1.460671,-0.139216,-3.633328;;, + 86;3; 1.460671,-0.139216,-3.633328;;, + 87;3; 1.460671,-0.139216,-3.633328;;, + 88;3; 1.460671,-0.139216,-3.633328;;, + 89;3; 1.460671,-0.139216,-3.633328;;, + 90;3; 1.460671,-0.139216,-3.633328;;, + 91;3; 1.460671,-0.139216,-3.633328;;, + 92;3; 1.460671,-0.139216,-3.633328;;, + 93;3; 1.460671,-0.139216,-3.633328;;, + 94;3; 1.460671,-0.139216,-3.633328;;, + 95;3; 1.460671,-0.139216,-3.633328;;, + 96;3; 1.460671,-0.139216,-3.633328;;, + 97;3; 1.460671,-0.139216,-3.633328;;, + 98;3; 1.460671,-0.139216,-3.633328;;, + 99;3; 1.460671,-0.139216,-3.633328;;, + 100;3; 1.460671,-0.139216,-3.633328;;, + 101;3; 1.460671,-0.139216,-3.633328;;, + 102;3; 1.460671,-0.139216,-3.633328;;, + 103;3; 1.460671,-0.139216,-3.633328;;, + 104;3; 1.460671,-0.139216,-3.633328;;, + 105;3; 1.460671,-0.139216,-3.633328;;, + 106;3; 1.460671,-0.139216,-3.633328;;, + 107;3; 1.460671,-0.139216,-3.633328;;, + 108;3; 1.460671,-0.139216,-3.633328;;, + 109;3; 1.460671,-0.139216,-3.633328;;, + 110;3; 1.460671,-0.139216,-3.633328;;, + 111;3; 1.460671,-0.139216,-3.633328;;, + 112;3; 1.460671,-0.139216,-3.633328;;, + 113;3; 1.460671,-0.139216,-3.633328;;, + 114;3; 1.460671,-0.139216,-3.633328;;, + 115;3; 1.460671,-0.139216,-3.633328;;, + 116;3; 1.460671,-0.139216,-3.633328;;, + 117;3; 1.460671,-0.139216,-3.633328;;, + 118;3; 1.460671,-0.139216,-3.633328;;, + 119;3; 1.460671,-0.139216,-3.633328;;, + 120;3; 1.460671,-0.139216,-3.633328;;, + 121;3; 1.460671,-0.139216,-3.633328;;, + 122;3; 1.460671,-0.139216,-3.633328;;, + 123;3; 1.460671,-0.139216,-3.633328;;, + 124;3; 1.460671,-0.139216,-3.633328;;, + 125;3; 1.460671,-0.139216,-3.633328;;, + 126;3; 1.460671,-0.139216,-3.633328;;, + 127;3; 1.460671,-0.139216,-3.633328;;, + 128;3; 1.460671,-0.139216,-3.633328;;, + 129;3; 1.460671,-0.139216,-3.633328;;, + 130;3; 1.460671,-0.139216,-3.633328;;, + 131;3; 1.460671,-0.139216,-3.633328;;, + 132;3; 1.460671,-0.139216,-3.633328;;, + 133;3; 1.460671,-0.139216,-3.633328;;, + 134;3; 1.460671,-0.139216,-3.633328;;, + 135;3; 1.460671,-0.139216,-3.633328;;, + 136;3; 1.460671,-0.139216,-3.633328;;, + 137;3; 1.460671,-0.139216,-3.633328;;, + 138;3; 1.460671,-0.139216,-3.633328;;, + 139;3; 1.460671,-0.139216,-3.633328;;, + 140;3; 1.460671,-0.139216,-3.633328;;, + 141;3; 1.460671,-0.139216,-3.633328;;, + 142;3; 1.460671,-0.139216,-3.633328;;, + 143;3; 1.460671,-0.139216,-3.633328;;, + 144;3; 1.460671,-0.139216,-3.633328;;, + 145;3; 1.460671,-0.139216,-3.633328;;, + 146;3; 1.460671,-0.139216,-3.633328;;, + 147;3; 1.460671,-0.139216,-3.633328;;, + 148;3; 1.460671,-0.139216,-3.633328;;, + 149;3; 1.460671,-0.139216,-3.633328;;, + 150;3; 1.460671,-0.139216,-3.633328;;, + 151;3; 1.460671,-0.139216,-3.633328;;, + 152;3; 1.460671,-0.139216,-3.633328;;, + 153;3; 1.460671,-0.139216,-3.633328;;, + 154;3; 1.460671,-0.139216,-3.633328;;, + 155;3; 1.460671,-0.139216,-3.633328;;, + 156;3; 1.460671,-0.139216,-3.633328;;, + 157;3; 1.460671,-0.139216,-3.633328;;, + 158;3; 1.460671,-0.139216,-3.633328;;, + 159;3; 1.460671,-0.139216,-3.633328;;, + 160;3; 1.460671,-0.139216,-3.633328;;, + 161;3; 1.460671,-0.139216,-3.633328;;, + 162;3; 1.460671,-0.139216,-3.633328;;, + 163;3; 1.460671,-0.139216,-3.633328;;, + 164;3; 1.460671,-0.139216,-3.633328;;; + } + AnimationKey { //Rotation + 0; + 165; + 0;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 1;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 2;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 3;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 4;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 5;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 6;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 7;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 8;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 9;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 10;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 11;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 12;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 13;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 14;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 15;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 16;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 17;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 18;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 19;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 20;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 21;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 22;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 23;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 24;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 25;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 26;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 27;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 28;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 29;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 30;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 31;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 32;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 33;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 34;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 35;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 36;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 37;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 38;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 39;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 40;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 41;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 42;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 43;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 44;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 45;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 46;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 47;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 48;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 49;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 50;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 51;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 52;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 53;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 54;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 55;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 56;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 57;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 58;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 59;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 60;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 61;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 62;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 63;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 64;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 65;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 66;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 67;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 68;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 69;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 70;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 71;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 72;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 73;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 74;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 75;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 76;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 77;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 78;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 79;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 80;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 81;4; 0.023017, 0.996971, 0.000000,-0.000000;;, + 82;4; 0.087830, 0.988440, 0.000000,-0.000000;;, + 83;4; 0.171026, 0.977486, 0.000000,-0.000000;;, + 84;4; 0.235815, 0.968955, 0.000000,-0.000000;;, + 85;4; 0.258819, 0.965926, 0.000000,-0.000000;;, + 86;4; 0.247343, 0.965926, 0.000000,-0.000000;;, + 87;4; 0.212807, 0.965926, 0.000000,-0.000000;;, + 88;4; 0.156652, 0.965926, 0.000000,-0.000000;;, + 89;4; 0.083204, 0.965926, 0.000000,-0.000000;;, + 90;4; -0.000000, 0.965926,-0.000000,-0.000000;;, + 91;4; -0.083204, 0.965926,-0.000000,-0.000000;;, + 92;4; -0.156652, 0.965926,-0.000000,-0.000000;;, + 93;4; -0.212807, 0.965926,-0.000000,-0.000000;;, + 94;4; -0.247344, 0.965926,-0.000000,-0.000000;;, + 95;4; -0.258819, 0.965926,-0.000000,-0.000000;;, + 96;4; -0.235816, 0.968955,-0.000000,-0.000000;;, + 97;4; -0.171026, 0.977486,-0.000000,-0.000000;;, + 98;4; -0.087830, 0.988440,-0.000000,-0.000000;;, + 99;4; -0.023017, 0.996971,-0.000000,-0.000000;;, + 100;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 101;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 102;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 103;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 104;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 105;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 106;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 107;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 108;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 109;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 110;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 111;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 112;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 113;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 114;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 115;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 116;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 117;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 118;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 119;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 120;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 121;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 122;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 123;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 124;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 125;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 126;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 127;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 128;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 129;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 130;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 131;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 132;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 133;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 134;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 135;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 136;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 137;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 138;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 139;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 140;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 141;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 142;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 143;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 144;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 145;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 146;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 147;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 148;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 149;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 150;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 151;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 152;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 153;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 154;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 155;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 156;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 157;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 158;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 159;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 160;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 161;4; -0.000000, 1.000000, 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;;; + } + AnimationKey { //Scale + 1; + 165; + 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;;; + } + } + Animation { + {Armature_Bone_003} + AnimationKey { //Position + 2; + 165; + 0;3; -1.438651,-0.139217, 4.073730;;, + 1;3; -1.438651,-0.139217, 4.073730;;, + 2;3; -1.438651,-0.139217, 4.073730;;, + 3;3; -1.438651,-0.139217, 4.073730;;, + 4;3; -1.438651,-0.139217, 4.073730;;, + 5;3; -1.438651,-0.139217, 4.073730;;, + 6;3; -1.438651,-0.139217, 4.073730;;, + 7;3; -1.438651,-0.139217, 4.073730;;, + 8;3; -1.438651,-0.139217, 4.073730;;, + 9;3; -1.438651,-0.139217, 4.073730;;, + 10;3; -1.438651,-0.139217, 4.073730;;, + 11;3; -1.438651,-0.139217, 4.073730;;, + 12;3; -1.438651,-0.139217, 4.073730;;, + 13;3; -1.438651,-0.139217, 4.073730;;, + 14;3; -1.438651,-0.139217, 4.073730;;, + 15;3; -1.438651,-0.139217, 4.073730;;, + 16;3; -1.438651,-0.139217, 4.073730;;, + 17;3; -1.438651,-0.139217, 4.073730;;, + 18;3; -1.438651,-0.139217, 4.073730;;, + 19;3; -1.438651,-0.139217, 4.073730;;, + 20;3; -1.438651,-0.139217, 4.073730;;, + 21;3; -1.438651,-0.139217, 4.073730;;, + 22;3; -1.438651,-0.139217, 4.073730;;, + 23;3; -1.438651,-0.139217, 4.073730;;, + 24;3; -1.438651,-0.139217, 4.073730;;, + 25;3; -1.438651,-0.139217, 4.073730;;, + 26;3; -1.438651,-0.139217, 4.073730;;, + 27;3; -1.438651,-0.139217, 4.073730;;, + 28;3; -1.438651,-0.139217, 4.073730;;, + 29;3; -1.438651,-0.139217, 4.073730;;, + 30;3; -1.438651,-0.139217, 4.073730;;, + 31;3; -1.438651,-0.139217, 4.073730;;, + 32;3; -1.438651,-0.139217, 4.073730;;, + 33;3; -1.438651,-0.139217, 4.073730;;, + 34;3; -1.438651,-0.139217, 4.073730;;, + 35;3; -1.438651,-0.139217, 4.073730;;, + 36;3; -1.438651,-0.139217, 4.073730;;, + 37;3; -1.438651,-0.139217, 4.073730;;, + 38;3; -1.438651,-0.139217, 4.073730;;, + 39;3; -1.438651,-0.139217, 4.073730;;, + 40;3; -1.438651,-0.139217, 4.073730;;, + 41;3; -1.438651,-0.139217, 4.073730;;, + 42;3; -1.438651,-0.139217, 4.073730;;, + 43;3; -1.438651,-0.139217, 4.073730;;, + 44;3; -1.438651,-0.139217, 4.073730;;, + 45;3; -1.438651,-0.139217, 4.073730;;, + 46;3; -1.438651,-0.139217, 4.073730;;, + 47;3; -1.438651,-0.139217, 4.073730;;, + 48;3; -1.438651,-0.139217, 4.073730;;, + 49;3; -1.438651,-0.139217, 4.073730;;, + 50;3; -1.438651,-0.139217, 4.073730;;, + 51;3; -1.438651,-0.139217, 4.073730;;, + 52;3; -1.438651,-0.139217, 4.073730;;, + 53;3; -1.438651,-0.139217, 4.073730;;, + 54;3; -1.438651,-0.139217, 4.073730;;, + 55;3; -1.438651,-0.139217, 4.073730;;, + 56;3; -1.438651,-0.139217, 4.073730;;, + 57;3; -1.438651,-0.139217, 4.073730;;, + 58;3; -1.438651,-0.139217, 4.073730;;, + 59;3; -1.438651,-0.139217, 4.073730;;, + 60;3; -1.438651,-0.139217, 4.073730;;, + 61;3; -1.438651,-0.139217, 4.073730;;, + 62;3; -1.438651,-0.139217, 4.073730;;, + 63;3; -1.438651,-0.139217, 4.073730;;, + 64;3; -1.438651,-0.139217, 4.073730;;, + 65;3; -1.438651,-0.139217, 4.073730;;, + 66;3; -1.438651,-0.139217, 4.073730;;, + 67;3; -1.438651,-0.139217, 4.073730;;, + 68;3; -1.438651,-0.139217, 4.073730;;, + 69;3; -1.438651,-0.139217, 4.073730;;, + 70;3; -1.438651,-0.139217, 4.073730;;, + 71;3; -1.438651,-0.139217, 4.073730;;, + 72;3; -1.438651,-0.139217, 4.073730;;, + 73;3; -1.438651,-0.139217, 4.073730;;, + 74;3; -1.438651,-0.139217, 4.073730;;, + 75;3; -1.438651,-0.139217, 4.073730;;, + 76;3; -1.438651,-0.139217, 4.073730;;, + 77;3; -1.438651,-0.139217, 4.073730;;, + 78;3; -1.438651,-0.139217, 4.073730;;, + 79;3; -1.438651,-0.139217, 4.073730;;, + 80;3; -1.438651,-0.139217, 4.073730;;, + 81;3; -1.438651,-0.139217, 4.073730;;, + 82;3; -1.438651,-0.139217, 4.073730;;, + 83;3; -1.438651,-0.139217, 4.073730;;, + 84;3; -1.438651,-0.139217, 4.073730;;, + 85;3; -1.438651,-0.139217, 4.073730;;, + 86;3; -1.438651,-0.139217, 4.073730;;, + 87;3; -1.438651,-0.139217, 4.073730;;, + 88;3; -1.438651,-0.139217, 4.073730;;, + 89;3; -1.438651,-0.139217, 4.073730;;, + 90;3; -1.438651,-0.139217, 4.073730;;, + 91;3; -1.438651,-0.139217, 4.073730;;, + 92;3; -1.438651,-0.139217, 4.073730;;, + 93;3; -1.438651,-0.139217, 4.073730;;, + 94;3; -1.438651,-0.139217, 4.073730;;, + 95;3; -1.438651,-0.139217, 4.073730;;, + 96;3; -1.438651,-0.139217, 4.073730;;, + 97;3; -1.438651,-0.139217, 4.073730;;, + 98;3; -1.438651,-0.139217, 4.073730;;, + 99;3; -1.438651,-0.139217, 4.073730;;, + 100;3; -1.438651,-0.139217, 4.073730;;, + 101;3; -1.438651,-0.139217, 4.073730;;, + 102;3; -1.438651,-0.139217, 4.073730;;, + 103;3; -1.438651,-0.139217, 4.073730;;, + 104;3; -1.438651,-0.139217, 4.073730;;, + 105;3; -1.438651,-0.139217, 4.073730;;, + 106;3; -1.438651,-0.139217, 4.073730;;, + 107;3; -1.438651,-0.139217, 4.073730;;, + 108;3; -1.438651,-0.139217, 4.073730;;, + 109;3; -1.438651,-0.139217, 4.073730;;, + 110;3; -1.438651,-0.139217, 4.073730;;, + 111;3; -1.438651,-0.139217, 4.073730;;, + 112;3; -1.438651,-0.139217, 4.073730;;, + 113;3; -1.438651,-0.139217, 4.073730;;, + 114;3; -1.438651,-0.139217, 4.073730;;, + 115;3; -1.438651,-0.139217, 4.073730;;, + 116;3; -1.438651,-0.139217, 4.073730;;, + 117;3; -1.438651,-0.139217, 4.073730;;, + 118;3; -1.438651,-0.139217, 4.073730;;, + 119;3; -1.438651,-0.139217, 4.073730;;, + 120;3; -1.438651,-0.139217, 4.073730;;, + 121;3; -1.438651,-0.139217, 4.073730;;, + 122;3; -1.438651,-0.139217, 4.073730;;, + 123;3; -1.438651,-0.139217, 4.073730;;, + 124;3; -1.438651,-0.139217, 4.073730;;, + 125;3; -1.438651,-0.139217, 4.073730;;, + 126;3; -1.438651,-0.139217, 4.073730;;, + 127;3; -1.438651,-0.139217, 4.073730;;, + 128;3; -1.438651,-0.139217, 4.073730;;, + 129;3; -1.438651,-0.139217, 4.073730;;, + 130;3; -1.438651,-0.139217, 4.073730;;, + 131;3; -1.438651,-0.139217, 4.073730;;, + 132;3; -1.438651,-0.139217, 4.073730;;, + 133;3; -1.438651,-0.139217, 4.073730;;, + 134;3; -1.438651,-0.139217, 4.073730;;, + 135;3; -1.438651,-0.139217, 4.073730;;, + 136;3; -1.438651,-0.139217, 4.073730;;, + 137;3; -1.438651,-0.139217, 4.073730;;, + 138;3; -1.438651,-0.139217, 4.073730;;, + 139;3; -1.438651,-0.139217, 4.073730;;, + 140;3; -1.438651,-0.139217, 4.073730;;, + 141;3; -1.438651,-0.139217, 4.073730;;, + 142;3; -1.438651,-0.139217, 4.073730;;, + 143;3; -1.438651,-0.139217, 4.073730;;, + 144;3; -1.438651,-0.139217, 4.073730;;, + 145;3; -1.438651,-0.139217, 4.073730;;, + 146;3; -1.438651,-0.139217, 4.073730;;, + 147;3; -1.438651,-0.139217, 4.073730;;, + 148;3; -1.438651,-0.139217, 4.073730;;, + 149;3; -1.438651,-0.139217, 4.073730;;, + 150;3; -1.438651,-0.139217, 4.073730;;, + 151;3; -1.438651,-0.139217, 4.073730;;, + 152;3; -1.438651,-0.139217, 4.073730;;, + 153;3; -1.438651,-0.139217, 4.073730;;, + 154;3; -1.438651,-0.139217, 4.073730;;, + 155;3; -1.438651,-0.139217, 4.073730;;, + 156;3; -1.438651,-0.139217, 4.073730;;, + 157;3; -1.438651,-0.139217, 4.073730;;, + 158;3; -1.438651,-0.139217, 4.073730;;, + 159;3; -1.438651,-0.139217, 4.073730;;, + 160;3; -1.438651,-0.139217, 4.073730;;, + 161;3; -1.438651,-0.139217, 4.073730;;, + 162;3; -1.438651,-0.139217, 4.073730;;, + 163;3; -1.438651,-0.139217, 4.073730;;, + 164;3; -1.438651,-0.139217, 4.073730;;; + } + AnimationKey { //Rotation + 0; + 165; + 0;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 1;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 2;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 3;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 4;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 5;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 6;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 7;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 8;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 9;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 10;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 11;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 12;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 13;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 14;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 15;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 16;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 17;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 18;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 19;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 20;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 21;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 22;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 23;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 24;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 25;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 26;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 27;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 28;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 29;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 30;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 31;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 32;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 33;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 34;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 35;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 36;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 37;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 38;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 39;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 40;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 41;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 42;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 43;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 44;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 45;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 46;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 47;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 48;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 49;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 50;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 51;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 52;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 53;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 54;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 55;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 56;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 57;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 58;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 59;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 60;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 61;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 62;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 63;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 64;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 65;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 66;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 67;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 68;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 69;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 70;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 71;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 72;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 73;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 74;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 75;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 76;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 77;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 78;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 79;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 80;4; 0.000000, 1.000000,-0.000000,-0.000000;;, + 81;4; 0.023017, 0.996971, 0.000000,-0.000000;;, + 82;4; 0.087830, 0.988440, 0.000000,-0.000000;;, + 83;4; 0.171026, 0.977486, 0.000000,-0.000000;;, + 84;4; 0.235815, 0.968955, 0.000000,-0.000000;;, + 85;4; 0.258819, 0.965926, 0.000000,-0.000000;;, + 86;4; 0.247344, 0.965926, 0.000000,-0.000000;;, + 87;4; 0.212807, 0.965926, 0.000000,-0.000000;;, + 88;4; 0.156652, 0.965926, 0.000000,-0.000000;;, + 89;4; 0.083204, 0.965926, 0.000000,-0.000000;;, + 90;4; -0.000000, 0.965926, 0.000000,-0.000000;;, + 91;4; -0.083204, 0.965926,-0.000000,-0.000000;;, + 92;4; -0.156652, 0.965926,-0.000000,-0.000000;;, + 93;4; -0.212807, 0.965926,-0.000000,-0.000000;;, + 94;4; -0.247344, 0.965926,-0.000000,-0.000000;;, + 95;4; -0.258819, 0.965926,-0.000000,-0.000000;;, + 96;4; -0.235815, 0.968955,-0.000000,-0.000000;;, + 97;4; -0.171026, 0.977486,-0.000000,-0.000000;;, + 98;4; -0.087830, 0.988440,-0.000000,-0.000000;;, + 99;4; -0.023017, 0.996971,-0.000000,-0.000000;;, + 100;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 101;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 102;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 103;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 104;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 105;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 106;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 107;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 108;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 109;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 110;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 111;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 112;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 113;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 114;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 115;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 116;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 117;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 118;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 119;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 120;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 121;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 122;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 123;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 124;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 125;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 126;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 127;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 128;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 129;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 130;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 131;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 132;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 133;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 134;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 135;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 136;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 137;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 138;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 139;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 140;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 141;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 142;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 143;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 144;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 145;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 146;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 147;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 148;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 149;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 150;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 151;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 152;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 153;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 154;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 155;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 156;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 157;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 158;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 159;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 160;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 161;4; -0.000000, 1.000000, 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;;; + } + AnimationKey { //Scale + 1; + 165; + 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;;; + } + } + Animation { + {Armature_RR_leg} + AnimationKey { //Position + 2; + 165; + 0;3; -1.438651,-0.139216,-3.633328;;, + 1;3; -1.438651,-0.139216,-3.633328;;, + 2;3; -1.438651,-0.139216,-3.633328;;, + 3;3; -1.438651,-0.139216,-3.633328;;, + 4;3; -1.438651,-0.139216,-3.633328;;, + 5;3; -1.438651,-0.139216,-3.633328;;, + 6;3; -1.438651,-0.139216,-3.633328;;, + 7;3; -1.438651,-0.139216,-3.633328;;, + 8;3; -1.438651,-0.139216,-3.633328;;, + 9;3; -1.438651,-0.139216,-3.633328;;, + 10;3; -1.438651,-0.139216,-3.633328;;, + 11;3; -1.438651,-0.139216,-3.633328;;, + 12;3; -1.438651,-0.139216,-3.633328;;, + 13;3; -1.438651,-0.139216,-3.633328;;, + 14;3; -1.438651,-0.139216,-3.633328;;, + 15;3; -1.438651,-0.139216,-3.633328;;, + 16;3; -1.438651,-0.139216,-3.633328;;, + 17;3; -1.438651,-0.139216,-3.633328;;, + 18;3; -1.438651,-0.139216,-3.633328;;, + 19;3; -1.438651,-0.139216,-3.633328;;, + 20;3; -1.438651,-0.139216,-3.633328;;, + 21;3; -1.438651,-0.139216,-3.633328;;, + 22;3; -1.438651,-0.139216,-3.633328;;, + 23;3; -1.438651,-0.139216,-3.633328;;, + 24;3; -1.438651,-0.139216,-3.633328;;, + 25;3; -1.438651,-0.139216,-3.633328;;, + 26;3; -1.438651,-0.139216,-3.633328;;, + 27;3; -1.438651,-0.139216,-3.633328;;, + 28;3; -1.438651,-0.139216,-3.633328;;, + 29;3; -1.438651,-0.139216,-3.633328;;, + 30;3; -1.438651,-0.139216,-3.633328;;, + 31;3; -1.438651,-0.139216,-3.633328;;, + 32;3; -1.438651,-0.139216,-3.633328;;, + 33;3; -1.438651,-0.139216,-3.633328;;, + 34;3; -1.438651,-0.139216,-3.633328;;, + 35;3; -1.438651,-0.139216,-3.633328;;, + 36;3; -1.438651,-0.139216,-3.633328;;, + 37;3; -1.438651,-0.139216,-3.633328;;, + 38;3; -1.438651,-0.139216,-3.633328;;, + 39;3; -1.438651,-0.139216,-3.633328;;, + 40;3; -1.438651,-0.139216,-3.633328;;, + 41;3; -1.438651,-0.139216,-3.633328;;, + 42;3; -1.438651,-0.139216,-3.633328;;, + 43;3; -1.438651,-0.139216,-3.633328;;, + 44;3; -1.438651,-0.139216,-3.633328;;, + 45;3; -1.438651,-0.139216,-3.633328;;, + 46;3; -1.438651,-0.139216,-3.633328;;, + 47;3; -1.438651,-0.139216,-3.633328;;, + 48;3; -1.438651,-0.139216,-3.633328;;, + 49;3; -1.438651,-0.139216,-3.633328;;, + 50;3; -1.438651,-0.139216,-3.633328;;, + 51;3; -1.438651,-0.139216,-3.633328;;, + 52;3; -1.438651,-0.139216,-3.633328;;, + 53;3; -1.438651,-0.139216,-3.633328;;, + 54;3; -1.438651,-0.139216,-3.633328;;, + 55;3; -1.438651,-0.139216,-3.633328;;, + 56;3; -1.438651,-0.139216,-3.633328;;, + 57;3; -1.438651,-0.139216,-3.633328;;, + 58;3; -1.438651,-0.139216,-3.633328;;, + 59;3; -1.438651,-0.139216,-3.633328;;, + 60;3; -1.438651,-0.139216,-3.633328;;, + 61;3; -1.438651,-0.139216,-3.633328;;, + 62;3; -1.438651,-0.139216,-3.633328;;, + 63;3; -1.438651,-0.139216,-3.633328;;, + 64;3; -1.438651,-0.139216,-3.633328;;, + 65;3; -1.438651,-0.139216,-3.633328;;, + 66;3; -1.438651,-0.139216,-3.633328;;, + 67;3; -1.438651,-0.139216,-3.633328;;, + 68;3; -1.438651,-0.139216,-3.633328;;, + 69;3; -1.438651,-0.139216,-3.633328;;, + 70;3; -1.438651,-0.139216,-3.633328;;, + 71;3; -1.438651,-0.139216,-3.633328;;, + 72;3; -1.438651,-0.139216,-3.633328;;, + 73;3; -1.438651,-0.139216,-3.633328;;, + 74;3; -1.438651,-0.139216,-3.633328;;, + 75;3; -1.438651,-0.139216,-3.633328;;, + 76;3; -1.438651,-0.139216,-3.633328;;, + 77;3; -1.438651,-0.139216,-3.633328;;, + 78;3; -1.438651,-0.139216,-3.633328;;, + 79;3; -1.438651,-0.139216,-3.633328;;, + 80;3; -1.438651,-0.139216,-3.633328;;, + 81;3; -1.438651,-0.139216,-3.633328;;, + 82;3; -1.438651,-0.139216,-3.633328;;, + 83;3; -1.438651,-0.139216,-3.633328;;, + 84;3; -1.438651,-0.139216,-3.633328;;, + 85;3; -1.438651,-0.139216,-3.633328;;, + 86;3; -1.438651,-0.139216,-3.633328;;, + 87;3; -1.438651,-0.139216,-3.633328;;, + 88;3; -1.438651,-0.139216,-3.633328;;, + 89;3; -1.438651,-0.139216,-3.633328;;, + 90;3; -1.438651,-0.139216,-3.633328;;, + 91;3; -1.438651,-0.139216,-3.633328;;, + 92;3; -1.438651,-0.139216,-3.633328;;, + 93;3; -1.438651,-0.139216,-3.633328;;, + 94;3; -1.438651,-0.139216,-3.633328;;, + 95;3; -1.438651,-0.139216,-3.633328;;, + 96;3; -1.438651,-0.139216,-3.633328;;, + 97;3; -1.438651,-0.139216,-3.633328;;, + 98;3; -1.438651,-0.139216,-3.633328;;, + 99;3; -1.438651,-0.139216,-3.633328;;, + 100;3; -1.438651,-0.139216,-3.633328;;, + 101;3; -1.438651,-0.139216,-3.633328;;, + 102;3; -1.438651,-0.139216,-3.633328;;, + 103;3; -1.438651,-0.139216,-3.633328;;, + 104;3; -1.438651,-0.139216,-3.633328;;, + 105;3; -1.438651,-0.139216,-3.633328;;, + 106;3; -1.438651,-0.139216,-3.633328;;, + 107;3; -1.438651,-0.139216,-3.633328;;, + 108;3; -1.438651,-0.139216,-3.633328;;, + 109;3; -1.438651,-0.139216,-3.633328;;, + 110;3; -1.438651,-0.139216,-3.633328;;, + 111;3; -1.438651,-0.139216,-3.633328;;, + 112;3; -1.438651,-0.139216,-3.633328;;, + 113;3; -1.438651,-0.139216,-3.633328;;, + 114;3; -1.438651,-0.139216,-3.633328;;, + 115;3; -1.438651,-0.139216,-3.633328;;, + 116;3; -1.438651,-0.139216,-3.633328;;, + 117;3; -1.438651,-0.139216,-3.633328;;, + 118;3; -1.438651,-0.139216,-3.633328;;, + 119;3; -1.438651,-0.139216,-3.633328;;, + 120;3; -1.438651,-0.139216,-3.633328;;, + 121;3; -1.438651,-0.139216,-3.633328;;, + 122;3; -1.438651,-0.139216,-3.633328;;, + 123;3; -1.438651,-0.139216,-3.633328;;, + 124;3; -1.438651,-0.139216,-3.633328;;, + 125;3; -1.438651,-0.139216,-3.633328;;, + 126;3; -1.438651,-0.139216,-3.633328;;, + 127;3; -1.438651,-0.139216,-3.633328;;, + 128;3; -1.438651,-0.139216,-3.633328;;, + 129;3; -1.438651,-0.139216,-3.633328;;, + 130;3; -1.438651,-0.139216,-3.633328;;, + 131;3; -1.438651,-0.139216,-3.633328;;, + 132;3; -1.438651,-0.139216,-3.633328;;, + 133;3; -1.438651,-0.139216,-3.633328;;, + 134;3; -1.438651,-0.139216,-3.633328;;, + 135;3; -1.438651,-0.139216,-3.633328;;, + 136;3; -1.438651,-0.139216,-3.633328;;, + 137;3; -1.438651,-0.139216,-3.633328;;, + 138;3; -1.438651,-0.139216,-3.633328;;, + 139;3; -1.438651,-0.139216,-3.633328;;, + 140;3; -1.438651,-0.139216,-3.633328;;, + 141;3; -1.438651,-0.139216,-3.633328;;, + 142;3; -1.438651,-0.139216,-3.633328;;, + 143;3; -1.438651,-0.139216,-3.633328;;, + 144;3; -1.438651,-0.139216,-3.633328;;, + 145;3; -1.438651,-0.139216,-3.633328;;, + 146;3; -1.438651,-0.139216,-3.633328;;, + 147;3; -1.438651,-0.139216,-3.633328;;, + 148;3; -1.438651,-0.139216,-3.633328;;, + 149;3; -1.438651,-0.139216,-3.633328;;, + 150;3; -1.438651,-0.139216,-3.633328;;, + 151;3; -1.438651,-0.139216,-3.633328;;, + 152;3; -1.438651,-0.139216,-3.633328;;, + 153;3; -1.438651,-0.139216,-3.633328;;, + 154;3; -1.438651,-0.139216,-3.633328;;, + 155;3; -1.438651,-0.139216,-3.633328;;, + 156;3; -1.438651,-0.139216,-3.633328;;, + 157;3; -1.438651,-0.139216,-3.633328;;, + 158;3; -1.438651,-0.139216,-3.633328;;, + 159;3; -1.438651,-0.139216,-3.633328;;, + 160;3; -1.438651,-0.139216,-3.633328;;, + 161;3; -1.438651,-0.139216,-3.633328;;, + 162;3; -1.438651,-0.139216,-3.633328;;, + 163;3; -1.438651,-0.139216,-3.633328;;, + 164;3; -1.438651,-0.139216,-3.633328;;; + } + AnimationKey { //Rotation + 0; + 165; + 0;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 1;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 2;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 3;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 4;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 5;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 6;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 7;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 8;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 9;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 10;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 11;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 12;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 13;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 14;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 15;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 16;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 17;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 18;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 19;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 20;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 21;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 22;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 23;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 24;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 25;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 26;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 27;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 28;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 29;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 30;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 31;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 32;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 33;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 34;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 35;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 36;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 37;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 38;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 39;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 40;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 41;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 42;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 43;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 44;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 45;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 46;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 47;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 48;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 49;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 50;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 51;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 52;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 53;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 54;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 55;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 56;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 57;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 58;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 59;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 60;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 61;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 62;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 63;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 64;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 65;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 66;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 67;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 68;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 69;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 70;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 71;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 72;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 73;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 74;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 75;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 76;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 77;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 78;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 79;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 80;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 81;4; -0.023017, 0.996971,-0.000000,-0.000000;;, + 82;4; -0.087830, 0.988440,-0.000000,-0.000000;;, + 83;4; -0.171026, 0.977486,-0.000000,-0.000000;;, + 84;4; -0.235816, 0.968955,-0.000000,-0.000000;;, + 85;4; -0.258819, 0.965926,-0.000000,-0.000000;;, + 86;4; -0.247344, 0.965926,-0.000000,-0.000000;;, + 87;4; -0.212807, 0.965926,-0.000000,-0.000000;;, + 88;4; -0.156652, 0.965926,-0.000000,-0.000000;;, + 89;4; -0.083204, 0.965926,-0.000000,-0.000000;;, + 90;4; -0.000000, 0.965926,-0.000000,-0.000000;;, + 91;4; 0.083204, 0.965926, 0.000000,-0.000000;;, + 92;4; 0.156652, 0.965926, 0.000000,-0.000000;;, + 93;4; 0.212807, 0.965926, 0.000000,-0.000000;;, + 94;4; 0.247343, 0.965926, 0.000000,-0.000000;;, + 95;4; 0.258819, 0.965926, 0.000000,-0.000000;;, + 96;4; 0.235815, 0.968955, 0.000000,-0.000000;;, + 97;4; 0.171026, 0.977486, 0.000000,-0.000000;;, + 98;4; 0.087830, 0.988440, 0.000000,-0.000000;;, + 99;4; 0.023017, 0.996971, 0.000000,-0.000000;;, + 100;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 101;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 102;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 103;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 104;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 105;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 106;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 107;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 108;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 109;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 110;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 111;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 112;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 113;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 114;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 115;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 116;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 117;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 118;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 119;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 120;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 121;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 122;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 123;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 124;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 125;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 126;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 127;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 128;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 129;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 130;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 131;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 132;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 133;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 134;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 135;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 136;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 137;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 138;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 139;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 140;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 141;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 142;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 143;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 144;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 145;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 146;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 147;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 148;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 149;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 150;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 151;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 152;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 153;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 154;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 155;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 156;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 157;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 158;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 159;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 160;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 161;4; -0.000000, 1.000000, 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;;; + } + AnimationKey { //Scale + 1; + 165; + 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;;; + } + } + Animation { + {Armature_Head} + AnimationKey { //Position + 2; + 165; + 0;3; -0.000000, 4.052525, 3.788038;;, + 1;3; -0.000000, 4.052525, 3.788038;;, + 2;3; -0.000000, 4.052525, 3.788038;;, + 3;3; -0.000000, 4.052525, 3.788038;;, + 4;3; -0.000000, 4.052525, 3.788038;;, + 5;3; -0.000000, 4.052525, 3.788038;;, + 6;3; -0.000000, 4.052525, 3.788038;;, + 7;3; -0.000000, 4.052525, 3.788038;;, + 8;3; -0.000000, 4.052525, 3.788038;;, + 9;3; -0.000000, 4.052525, 3.788038;;, + 10;3; -0.000000, 4.052525, 3.788038;;, + 11;3; -0.000000, 4.052525, 3.788038;;, + 12;3; -0.000000, 4.052525, 3.788038;;, + 13;3; -0.000000, 4.052525, 3.788038;;, + 14;3; -0.000000, 4.052525, 3.788038;;, + 15;3; -0.000000, 4.052525, 3.788038;;, + 16;3; -0.000000, 4.052525, 3.788038;;, + 17;3; -0.000000, 4.052525, 3.788038;;, + 18;3; -0.000000, 4.052525, 3.788038;;, + 19;3; -0.000000, 4.052525, 3.788038;;, + 20;3; -0.000000, 4.052525, 3.788038;;, + 21;3; -0.000000, 4.052525, 3.788038;;, + 22;3; -0.000000, 4.052525, 3.788038;;, + 23;3; -0.000000, 4.052525, 3.788038;;, + 24;3; -0.000000, 4.052525, 3.788038;;, + 25;3; -0.000000, 4.052525, 3.788038;;, + 26;3; -0.000000, 4.052525, 3.788038;;, + 27;3; -0.000000, 4.052525, 3.788038;;, + 28;3; -0.000000, 4.052525, 3.788038;;, + 29;3; -0.000000, 4.052525, 3.788038;;, + 30;3; -0.000000, 4.052525, 3.788038;;, + 31;3; -0.000000, 4.052525, 3.788038;;, + 32;3; -0.000000, 4.052525, 3.788038;;, + 33;3; -0.000000, 4.052525, 3.788038;;, + 34;3; -0.000000, 4.052525, 3.788038;;, + 35;3; -0.000000, 4.052525, 3.788038;;, + 36;3; -0.000000, 4.052525, 3.788038;;, + 37;3; -0.000000, 4.052525, 3.788038;;, + 38;3; -0.000000, 4.052525, 3.788038;;, + 39;3; -0.000000, 4.052525, 3.788038;;, + 40;3; -0.000000, 4.052525, 3.788038;;, + 41;3; -0.000000, 4.052525, 3.788038;;, + 42;3; -0.000000, 4.052525, 3.788038;;, + 43;3; -0.000000, 4.052525, 3.788038;;, + 44;3; -0.000000, 4.052525, 3.788038;;, + 45;3; -0.000000, 4.052525, 3.788038;;, + 46;3; -0.000000, 4.052525, 3.788038;;, + 47;3; -0.000000, 4.052525, 3.788038;;, + 48;3; -0.000000, 4.052525, 3.788038;;, + 49;3; -0.000000, 4.052525, 3.788038;;, + 50;3; -0.000000, 4.052525, 3.788038;;, + 51;3; -0.000000, 4.052525, 3.788038;;, + 52;3; -0.000000, 4.052525, 3.788038;;, + 53;3; -0.000000, 4.052525, 3.788038;;, + 54;3; -0.000000, 4.052525, 3.788038;;, + 55;3; -0.000000, 4.052525, 3.788038;;, + 56;3; -0.000000, 4.052525, 3.788038;;, + 57;3; -0.000000, 4.052525, 3.788038;;, + 58;3; -0.000000, 4.052525, 3.788038;;, + 59;3; -0.000000, 4.052525, 3.788038;;, + 60;3; -0.000000, 4.052525, 3.788038;;, + 61;3; -0.000000, 4.052525, 3.788038;;, + 62;3; -0.000000, 4.052525, 3.788038;;, + 63;3; -0.000000, 4.052525, 3.788038;;, + 64;3; -0.000000, 4.052525, 3.788038;;, + 65;3; -0.000000, 4.052525, 3.788038;;, + 66;3; -0.000000, 4.052525, 3.788038;;, + 67;3; -0.000000, 4.052525, 3.788038;;, + 68;3; -0.000000, 4.052525, 3.788038;;, + 69;3; -0.000000, 4.052525, 3.788038;;, + 70;3; -0.000000, 4.052525, 3.788038;;, + 71;3; -0.000000, 4.052525, 3.788038;;, + 72;3; -0.000000, 4.052525, 3.788038;;, + 73;3; -0.000000, 4.052525, 3.788038;;, + 74;3; -0.000000, 4.052525, 3.788038;;, + 75;3; -0.000000, 4.052525, 3.788038;;, + 76;3; -0.000000, 4.052525, 3.788038;;, + 77;3; -0.000000, 4.052525, 3.788038;;, + 78;3; -0.000000, 4.052525, 3.788038;;, + 79;3; -0.000000, 4.052525, 3.788038;;, + 80;3; -0.000000, 4.052525, 3.788038;;, + 81;3; -0.000000, 4.052525, 3.788038;;, + 82;3; -0.000000, 4.052525, 3.788038;;, + 83;3; -0.000000, 4.052525, 3.788038;;, + 84;3; -0.000000, 4.052525, 3.788038;;, + 85;3; -0.000000, 4.052525, 3.788038;;, + 86;3; -0.000000, 4.052525, 3.788038;;, + 87;3; -0.000000, 4.052525, 3.788038;;, + 88;3; -0.000000, 4.052525, 3.788038;;, + 89;3; -0.000000, 4.052525, 3.788038;;, + 90;3; -0.000000, 4.052525, 3.788038;;, + 91;3; -0.000000, 4.052525, 3.788038;;, + 92;3; -0.000000, 4.052525, 3.788038;;, + 93;3; -0.000000, 4.052525, 3.788038;;, + 94;3; -0.000000, 4.052525, 3.788038;;, + 95;3; -0.000000, 4.052525, 3.788038;;, + 96;3; -0.000000, 4.052525, 3.788038;;, + 97;3; -0.000000, 4.052525, 3.788038;;, + 98;3; -0.000000, 4.052525, 3.788038;;, + 99;3; -0.000000, 4.052525, 3.788038;;, + 100;3; -0.000000, 4.052525, 3.788038;;, + 101;3; -0.000000, 4.052525, 3.788038;;, + 102;3; -0.000000, 4.052525, 3.788038;;, + 103;3; -0.000000, 4.052525, 3.788038;;, + 104;3; -0.000000, 4.052525, 3.788038;;, + 105;3; -0.000000, 4.052525, 3.788038;;, + 106;3; -0.000000, 4.052525, 3.788038;;, + 107;3; -0.000000, 4.052525, 3.788038;;, + 108;3; -0.000000, 4.052525, 3.788038;;, + 109;3; -0.000000, 4.052525, 3.788038;;, + 110;3; -0.000000, 4.052525, 3.788038;;, + 111;3; -0.000000, 4.052525, 3.788038;;, + 112;3; -0.000000, 4.052525, 3.788038;;, + 113;3; -0.000000, 4.052525, 3.788038;;, + 114;3; -0.000000, 4.052525, 3.788038;;, + 115;3; -0.000000, 4.052525, 3.788038;;, + 116;3; -0.000000, 4.052525, 3.788038;;, + 117;3; -0.000000, 4.052525, 3.788038;;, + 118;3; -0.000000, 4.052525, 3.788038;;, + 119;3; -0.000000, 4.052525, 3.788038;;, + 120;3; -0.000000, 4.052525, 3.788038;;, + 121;3; -0.000000, 4.052525, 3.788038;;, + 122;3; -0.000000, 4.052525, 3.788038;;, + 123;3; -0.000000, 4.052525, 3.788038;;, + 124;3; -0.000000, 4.052525, 3.788038;;, + 125;3; -0.000000, 4.052525, 3.788038;;, + 126;3; -0.000000, 4.052525, 3.788038;;, + 127;3; -0.000000, 4.052525, 3.788038;;, + 128;3; -0.000000, 4.052525, 3.788038;;, + 129;3; -0.000000, 4.052525, 3.788038;;, + 130;3; -0.000000, 4.052525, 3.788038;;, + 131;3; -0.000000, 4.052525, 3.788038;;, + 132;3; -0.000000, 4.052525, 3.788038;;, + 133;3; -0.000000, 4.052525, 3.788038;;, + 134;3; -0.000000, 4.052525, 3.788038;;, + 135;3; -0.000000, 4.052525, 3.788038;;, + 136;3; -0.000000, 4.052525, 3.788038;;, + 137;3; -0.000000, 4.052525, 3.788038;;, + 138;3; -0.000000, 4.052525, 3.788038;;, + 139;3; -0.000000, 4.052525, 3.788038;;, + 140;3; -0.000000, 4.052525, 3.788038;;, + 141;3; -0.000000, 4.052525, 3.788038;;, + 142;3; -0.000000, 4.052525, 3.788038;;, + 143;3; -0.000000, 4.052525, 3.788038;;, + 144;3; -0.000000, 4.052525, 3.788038;;, + 145;3; -0.000000, 4.052525, 3.788038;;, + 146;3; -0.000000, 4.052525, 3.788038;;, + 147;3; -0.000000, 4.052525, 3.788038;;, + 148;3; -0.000000, 4.052525, 3.788038;;, + 149;3; -0.000000, 4.052525, 3.788038;;, + 150;3; -0.000000, 4.052525, 3.788038;;, + 151;3; -0.000000, 4.052525, 3.788038;;, + 152;3; -0.000000, 4.052525, 3.788038;;, + 153;3; -0.000000, 4.052525, 3.788038;;, + 154;3; -0.000000, 4.052525, 3.788038;;, + 155;3; -0.000000, 4.052525, 3.788038;;, + 156;3; -0.000000, 4.052525, 3.788038;;, + 157;3; -0.000000, 4.052525, 3.788038;;, + 158;3; -0.000000, 4.052525, 3.788038;;, + 159;3; -0.000000, 4.052525, 3.788038;;, + 160;3; -0.000000, 4.052525, 3.788038;;, + 161;3; -0.000000, 4.052525, 3.788038;;, + 162;3; -0.000000, 4.052525, 3.788038;;, + 163;3; -0.000000, 4.052525, 3.788038;;, + 164;3; -0.000000, 4.052525, 3.788038;;; + } + AnimationKey { //Rotation + 0; + 165; + 0;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 1;4; 0.000000, 0.000000, 0.706989, 0.707223;;, + 2;4; 0.000000, 0.000000, 0.706631, 0.707576;;, + 3;4; 0.000000, 0.000000, 0.706034, 0.708164;;, + 4;4; 0.000000, 0.000000, 0.705202, 0.708983;;, + 5;4; 0.000000, 0.000000, 0.704147, 0.710022;;, + 6;4; 0.000000, 0.000000, 0.702890, 0.711259;;, + 7;4; 0.000000, 0.000000, 0.701461, 0.712663;;, + 8;4; 0.000000, 0.000000, 0.699901, 0.714196;;, + 9;4; 0.000000, 0.000000, 0.698257, 0.715808;;, + 10;4; 0.000000, 0.000000, 0.696584, 0.717447;;, + 11;4; 0.000000, 0.000000, 0.694937, 0.719057;;, + 12;4; 0.000000, 0.000000, 0.693372, 0.720585;;, + 13;4; 0.000000, 0.000000, 0.691936, 0.721982;;, + 14;4; 0.000000, 0.000000, 0.690669, 0.723209;;, + 15;4; 0.000000, 0.000000, 0.689603, 0.724237;;, + 16;4; 0.000000, 0.000000, 0.688758, 0.725043;;, + 17;4; 0.000000, 0.000000, 0.688146, 0.725617;;, + 18;4; 0.000000, 0.000000, 0.687773, 0.725954;;, + 19;4; 0.000000, 0.000000, 0.687638, 0.726054;;, + 20;4; 0.000000, 0.000000, 0.687896, 0.725759;;, + 21;4; 0.000000, 0.000000, 0.688709, 0.724905;;, + 22;4; 0.000000, 0.000000, 0.690081, 0.723488;;, + 23;4; 0.000000, 0.000000, 0.692002, 0.721519;;, + 24;4; 0.000000, 0.000000, 0.694448, 0.719020;;, + 25;4; 0.000000, 0.000000, 0.697377, 0.716035;;, + 26;4; 0.000000, 0.000000, 0.700729, 0.712626;;, + 27;4; 0.000000, 0.000000, 0.704421, 0.708875;;, + 28;4; 0.000000, 0.000000, 0.708352, 0.704885;;, + 29;4; 0.000000, 0.000000, 0.712408, 0.700772;;, + 30;4; 0.000000, 0.000000, 0.716464, 0.696660;;, + 31;4; 0.000000, 0.000000, 0.720399, 0.692673;;, + 32;4; 0.000000, 0.000000, 0.724097, 0.688928;;, + 33;4; 0.000000, 0.000000, 0.727457, 0.685527;;, + 34;4; 0.000000, 0.000000, 0.730396, 0.682552;;, + 35;4; 0.000000, 0.000000, 0.732854, 0.680065;;, + 36;4; 0.000000, 0.000000, 0.734788, 0.678108;;, + 37;4; 0.000000, 0.000000, 0.736174, 0.676706;;, + 38;4; 0.000000, 0.000000, 0.737003, 0.675868;;, + 39;4; 0.000000, 0.000000, 0.737277, 0.675590;;, + 40;4; 0.000000, 0.000000, 0.737111, 0.675764;;, + 41;4; 0.000000, 0.000000, 0.736609, 0.676289;;, + 42;4; 0.000000, 0.000000, 0.735768, 0.677167;;, + 43;4; 0.000000, 0.000000, 0.734596, 0.678392;;, + 44;4; 0.000000, 0.000000, 0.733105, 0.679949;;, + 45;4; 0.000000, 0.000000, 0.731323, 0.681811;;, + 46;4; 0.000000, 0.000000, 0.729285, 0.683939;;, + 47;4; 0.000000, 0.000000, 0.727042, 0.686283;;, + 48;4; 0.000000, 0.000000, 0.724654, 0.688777;;, + 49;4; 0.000000, 0.000000, 0.722192, 0.691349;;, + 50;4; 0.000000, 0.000000, 0.719730, 0.693920;;, + 51;4; 0.000000, 0.000000, 0.717343, 0.696414;;, + 52;4; 0.000000, 0.000000, 0.715099, 0.698758;;, + 53;4; 0.000000, 0.000000, 0.713062, 0.700886;;, + 54;4; 0.000000, 0.000000, 0.711279, 0.702749;;, + 55;4; 0.000000, 0.000000, 0.709789, 0.704305;;, + 56;4; 0.000000, 0.000000, 0.708616, 0.705530;;, + 57;4; 0.000000, 0.000000, 0.707776, 0.706408;;, + 58;4; 0.000000, 0.000000, 0.707273, 0.706933;;, + 59;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 60;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 61;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 62;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 63;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 64;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 65;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 66;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 67;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 68;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 69;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 70;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 71;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 72;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 73;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 74;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 75;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 76;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 77;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 78;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 79;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 80;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 81;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 82;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 83;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 84;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 85;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 86;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 87;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 88;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 89;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 90;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 91;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 92;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 93;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 94;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 95;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 96;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 97;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 98;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 99;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 100;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 101;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 102;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 103;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 104;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 105;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 106;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 107;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 108;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 109;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 110;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 111;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 112;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 113;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 114;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 115;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 116;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 117;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 118;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 119;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 120;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 121;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 122;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 123;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 124;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 125;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 126;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 127;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 128;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 129;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 130;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 131;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 132;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 133;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 134;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 135;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 136;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 137;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 138;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 139;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 140;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 141;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 142;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 143;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 144;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 145;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 146;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 147;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 148;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 149;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 150;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 151;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 152;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 153;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 154;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 155;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 156;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 157;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 158;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 159;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 160;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 161;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 162;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 163;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 164;4; 0.000000, 0.000000, 0.707107, 0.707107;;; + } + AnimationKey { //Scale + 1; + 165; + 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;;; + } + } + Animation { + {sheep} + AnimationKey { //Position + 2; + 165; + 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;;; + } + AnimationKey { //Rotation + 0; + 165; + 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;;; + } + AnimationKey { //Scale + 1; + 165; + 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;;; + } + } +} //End of AnimationSet diff --git a/mods/mobs/models/mobs_sheep_shaved.png b/mods/mobs/models/mobs_sheep_shaved.png new file mode 100644 index 00000000..e1f8568b Binary files /dev/null and b/mods/mobs/models/mobs_sheep_shaved.png differ diff --git a/mods/mobs/models/mobs_sheep_shaved.x b/mods/mobs/models/mobs_sheep_shaved.x new file mode 100644 index 00000000..fa7e17ca --- /dev/null +++ b/mods/mobs/models/mobs_sheep_shaved.x @@ -0,0 +1,4592 @@ +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.041567, 0.000010, 6.045322, 1.000000;; + } + Frame Armature_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.009913, 0.034322, 0.105027, 1.000000;; + } + Frame Armature_Bone_001 { + 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.460671,-0.139217, 4.073730, 1.000000;; + } + } //End of Armature_Bone_001 + Frame Armature_Bone_002 { + 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.460671,-0.139216,-3.633328, 1.000000;; + } + } //End of Armature_Bone_002 + Frame Armature_Bone_003 { + 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.438650,-0.139217, 4.073730, 1.000000;; + } + } //End of Armature_Bone_003 + Frame Armature_RR_leg { + 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.438651,-0.139216,-3.633328, 1.000000;; + } + } //End of Armature_RR_leg + Frame Armature_Head { + 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, 4.052526, 3.788038, 1.000000;; + } + } //End of Armature_Head + } //End of Armature_Root + Frame sheep_shaved { + 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 { //Cube_001 Mesh + 320; + -1.589511; 7.293469; 5.911728;, + 1.658676; 7.293468; 5.911728;, + 1.658676; 3.771371; 5.911728;, + -1.589511; 3.771372; 5.911728;, + -1.589511; 3.771372; 5.911728;, + 1.658676; 3.771371; 5.911728;, + 1.658675; 3.771371; 2.663541;, + -1.589511; 3.771370; 2.663541;, + -0.960432; 7.293468; 4.727453;, + 1.029595; 7.293468; 4.727453;, + 1.658676; 7.293468; 5.911728;, + -1.589511; 7.293469; 5.911728;, + -1.589512; 7.293468; 2.663541;, + -1.589511; 7.293469; 5.911728;, + -1.589511; 3.771372; 5.911728;, + -1.589511; 3.771370; 2.663541;, + 1.658675; 7.293468; 2.663541;, + -1.589512; 7.293468; 2.663541;, + -1.589511; 3.771370; 2.663541;, + 1.658675; 3.771371; 2.663541;, + 1.658676; 7.293468; 5.911728;, + 1.658675; 7.293468; 2.663541;, + 1.658675; 3.771371; 2.663541;, + 1.658676; 3.771371; 5.911728;, + -0.960432; 7.669465; 4.727453;, + 1.029595; 7.669464; 4.727453;, + 1.029595; 7.293468; 4.727453;, + -0.960432; 7.293468; 4.727453;, + 1.029595; 7.293468; 4.727453;, + 1.029595; 7.293468; 2.806681;, + 1.658675; 7.293468; 2.663541;, + 1.658676; 7.293468; 5.911728;, + -0.960432; 7.293468; 2.806681;, + -0.960432; 7.293468; 4.727453;, + -1.589511; 7.293469; 5.911728;, + -1.589512; 7.293468; 2.663541;, + 1.029595; 7.293468; 2.806681;, + -0.960432; 7.293468; 2.806681;, + -1.589512; 7.293468; 2.663541;, + 1.658675; 7.293468; 2.663541;, + 1.029595; 7.669464; 2.806681;, + 1.029595; 7.669464; 4.727453;, + -0.960432; 7.669465; 4.727453;, + -0.960432; 7.669463; 2.806681;, + 1.029595; 7.669464; 4.727453;, + 1.029595; 7.669464; 2.806681;, + 1.029595; 7.293468; 2.806681;, + 1.029595; 7.293468; 4.727453;, + -0.960432; 7.669463; 2.806681;, + -0.960432; 7.669465; 4.727453;, + -0.960432; 7.293468; 4.727453;, + -0.960432; 7.293468; 2.806681;, + 1.029595; 7.669464; 2.806681;, + -0.960432; 7.669463; 2.806681;, + -0.960432; 7.293468; 2.806681;, + 1.029595; 7.293468; 2.806681;, + -0.626982; 3.165303;-5.961625;, + -2.262721; 3.165303;-5.961625;, + -2.262721; 3.165303;-5.096455;, + -0.626982; 3.165303;-5.096455;, + -2.262721; 5.066779;-5.961625;, + -0.626983; 5.066779;-5.961625;, + -0.626983; 5.066779;-5.096455;, + -2.262721; 5.066779;-5.096455;, + -0.626983; 5.066779;-5.961625;, + -0.626982; 3.165303;-5.961625;, + -0.626982; 3.165303;-5.096455;, + -0.626983; 5.066779;-5.096455;, + -0.626982; 3.165303;-5.961625;, + -0.626983; 5.066779;-5.961625;, + -2.262721; 5.066779;-5.961625;, + -2.262721; 3.165303;-5.961625;, + -2.262721; 5.066779;-5.096455;, + -0.626983; 5.066779;-5.096455;, + -0.823518; 4.822422;-5.096455;, + -2.066185; 4.822422;-5.096455;, + -0.626982; 3.165303;-5.096455;, + -2.262721; 3.165303;-5.096455;, + -2.066185; 3.277381;-5.096455;, + -0.823517; 3.277381;-5.096455;, + -2.262721; 3.165303;-5.096455;, + -2.262721; 5.066779;-5.096455;, + -2.066185; 4.822422;-5.096455;, + -2.066185; 3.277381;-5.096455;, + -2.262721; 3.165303;-5.961625;, + -2.262721; 5.066779;-5.961625;, + -2.262721; 5.066779;-5.096455;, + -2.262721; 3.165303;-5.096455;, + -2.066185; 4.822422;-5.096455;, + -0.823518; 4.822422;-5.096455;, + -0.823517; 4.822423;-0.488248;, + -2.066185; 4.822422;-0.488248;, + -0.823518; 4.822422;-5.096455;, + -0.823517; 3.277381;-5.096455;, + -0.823517; 3.277381;-0.488248;, + -0.823517; 4.822423;-0.488248;, + -0.823517; 3.277381;-5.096455;, + -2.066185; 3.277381;-5.096455;, + -2.066185; 3.277381;-0.488248;, + -0.823517; 3.277381;-0.488248;, + -0.626983; 5.066779;-5.096455;, + -0.626982; 3.165303;-5.096455;, + -0.823517; 3.277381;-5.096455;, + -0.823518; 4.822422;-5.096455;, + -2.066185; 3.277381;-5.096455;, + -2.066185; 4.822422;-5.096455;, + -2.066185; 4.822422;-0.488248;, + -2.066185; 3.277381;-0.488248;, + 2.268868; 3.165304;-5.961625;, + 0.633129; 3.165304;-5.961625;, + 0.633129; 3.165304;-5.096455;, + 2.268868; 3.165304;-5.096455;, + 0.633129; 5.066779;-5.961625;, + 2.268867; 5.066780;-5.961625;, + 2.268867; 5.066780;-5.096455;, + 0.633129; 5.066779;-5.096455;, + 2.268867; 5.066780;-5.961625;, + 2.268868; 3.165304;-5.961625;, + 2.268868; 3.165304;-5.096455;, + 2.268867; 5.066780;-5.096455;, + 2.268868; 3.165304;-5.961625;, + 2.268867; 5.066780;-5.961625;, + 0.633129; 5.066779;-5.961625;, + 0.633129; 3.165304;-5.961625;, + 0.633129; 5.066779;-5.096455;, + 2.268867; 5.066780;-5.096455;, + 2.072332; 4.822423;-5.096455;, + 0.829664; 4.822423;-5.096455;, + 2.268868; 3.165304;-5.096455;, + 0.633129; 3.165304;-5.096455;, + 0.829664; 3.277381;-5.096455;, + 2.072332; 3.277381;-5.096455;, + 0.633129; 3.165304;-5.096455;, + 0.633129; 5.066779;-5.096455;, + 0.829664; 4.822423;-5.096455;, + 0.829664; 3.277381;-5.096455;, + 0.633129; 3.165304;-5.961625;, + 0.633129; 5.066779;-5.961625;, + 0.633129; 5.066779;-5.096455;, + 0.633129; 3.165304;-5.096455;, + 0.829664; 4.822423;-5.096455;, + 2.072332; 4.822423;-5.096455;, + 2.072332; 4.822423;-0.492027;, + 0.829664; 4.822423;-0.492027;, + 2.072332; 4.822423;-5.096455;, + 2.072332; 3.277381;-5.096455;, + 2.072333; 3.277382;-0.492027;, + 2.072332; 4.822423;-0.492027;, + 2.072332; 3.277381;-5.096455;, + 0.829664; 3.277381;-5.096455;, + 0.829664; 3.277382;-0.492027;, + 2.072333; 3.277382;-0.492027;, + 2.268867; 5.066780;-5.096455;, + 2.268868; 3.165304;-5.096455;, + 2.072332; 3.277381;-5.096455;, + 2.072332; 4.822423;-5.096455;, + 0.829664; 3.277381;-5.096455;, + 0.829664; 4.822423;-5.096455;, + 0.829664; 4.822423;-0.492027;, + 0.829664; 3.277382;-0.492027;, + -0.626981;-4.511055;-5.961625;, + -2.262720;-4.511055;-5.961625;, + -2.262720;-4.511055;-5.096455;, + -0.626981;-4.511055;-5.096455;, + -2.262720;-2.609579;-5.961625;, + -0.626981;-2.609579;-5.961625;, + -0.626981;-2.609579;-5.096455;, + -2.262720;-2.609579;-5.096455;, + -0.626981;-2.609579;-5.961625;, + -0.626981;-4.511055;-5.961625;, + -0.626981;-4.511055;-5.096455;, + -0.626981;-2.609579;-5.096455;, + -0.626981;-4.511055;-5.961625;, + -0.626981;-2.609579;-5.961625;, + -2.262720;-2.609579;-5.961625;, + -2.262720;-4.511055;-5.961625;, + -2.262720;-2.609579;-5.096455;, + -0.626981;-2.609579;-5.096455;, + -0.823516;-2.853936;-5.096455;, + -2.066185;-2.853936;-5.096455;, + -0.626981;-4.511055;-5.096455;, + -2.262720;-4.511055;-5.096455;, + -2.066185;-4.398977;-5.096455;, + -0.823516;-4.398977;-5.096455;, + -2.262720;-4.511055;-5.096455;, + -2.262720;-2.609579;-5.096455;, + -2.066185;-2.853936;-5.096455;, + -2.066185;-4.398977;-5.096455;, + -2.262720;-4.511055;-5.961625;, + -2.262720;-2.609579;-5.961625;, + -2.262720;-2.609579;-5.096455;, + -2.262720;-4.511055;-5.096455;, + -2.066185;-2.853936;-5.096455;, + -0.823516;-2.853936;-5.096455;, + -0.823516;-2.853936;-0.317499;, + -2.066184;-2.853936;-0.317498;, + -0.823516;-2.853936;-5.096455;, + -0.823516;-4.398977;-5.096455;, + -0.823516;-4.398976;-0.317498;, + -0.823516;-2.853936;-0.317499;, + -0.823516;-4.398977;-5.096455;, + -2.066185;-4.398977;-5.096455;, + -2.066185;-4.398977;-0.317498;, + -0.823516;-4.398976;-0.317498;, + -0.626981;-2.609579;-5.096455;, + -0.626981;-4.511055;-5.096455;, + -0.823516;-4.398977;-5.096455;, + -0.823516;-2.853936;-5.096455;, + -2.066185;-4.398977;-5.096455;, + -2.066185;-2.853936;-5.096455;, + -2.066184;-2.853936;-0.317498;, + -2.066185;-4.398977;-0.317498;, + 2.268869;-4.511054;-5.961625;, + 0.633130;-4.511054;-5.961625;, + 0.633130;-4.511054;-5.096455;, + 2.268869;-4.511054;-5.096455;, + 0.633130;-2.609579;-5.961625;, + 2.268868;-2.609579;-5.961625;, + 2.268868;-2.609579;-5.096455;, + 0.633130;-2.609579;-5.096455;, + 2.268868;-2.609579;-5.961625;, + 2.268869;-4.511054;-5.961625;, + 2.268869;-4.511054;-5.096455;, + 2.268868;-2.609579;-5.096455;, + 2.268869;-4.511054;-5.961625;, + 2.268868;-2.609579;-5.961625;, + 0.633130;-2.609579;-5.961625;, + 0.633130;-4.511054;-5.961625;, + 0.633130;-2.609579;-5.096455;, + 2.268868;-2.609579;-5.096455;, + 2.072333;-2.853936;-5.096455;, + 0.829665;-2.853936;-5.096455;, + 2.268869;-4.511054;-5.096455;, + 0.633130;-4.511054;-5.096455;, + 0.829665;-4.398976;-5.096455;, + 2.072333;-4.398976;-5.096455;, + 0.633130;-4.511054;-5.096455;, + 0.633130;-2.609579;-5.096455;, + 0.829665;-2.853936;-5.096455;, + 0.829665;-4.398976;-5.096455;, + 0.633130;-4.511054;-5.961625;, + 0.633130;-2.609579;-5.961625;, + 0.633130;-2.609579;-5.096455;, + 0.633130;-4.511054;-5.096455;, + 0.829665;-2.853936;-5.096455;, + 2.072333;-2.853936;-5.096455;, + 2.072333;-2.853935;-0.317499;, + 0.829665;-2.853936;-0.317498;, + 2.072333;-2.853936;-5.096455;, + 2.072333;-4.398976;-5.096455;, + 2.072334;-4.398976;-0.317498;, + 2.072333;-2.853935;-0.317499;, + 2.072333;-4.398976;-5.096455;, + 0.829665;-4.398976;-5.096455;, + 0.829665;-4.398976;-0.317498;, + 2.072334;-4.398976;-0.317498;, + 2.268868;-2.609579;-5.096455;, + 2.268869;-4.511054;-5.096455;, + 2.072333;-4.398976;-5.096455;, + 2.072333;-2.853936;-5.096455;, + 0.829665;-4.398976;-5.096455;, + 0.829665;-2.853936;-5.096455;, + 0.829665;-2.853936;-0.317498;, + 0.829665;-4.398976;-0.317498;, + 2.599581;-5.109999;-0.688940;, + 2.599581; 5.150001;-0.688940;, + -2.530419; 5.150001;-0.688940;, + -2.530417;-5.109998;-0.688940;, + -2.530417; 5.150004; 4.441061;, + 2.599582; 5.150000; 4.441061;, + 2.599583;-5.109997; 4.441061;, + -2.530419;-5.109996; 4.441061;, + -2.530419; 5.150001;-0.688940;, + -2.530417; 5.150004; 4.441061;, + -2.530419;-5.109996; 4.441061;, + -2.530417;-5.109998;-0.688940;, + 2.599581; 5.150001;-0.688940;, + 2.599582; 5.150000; 4.441061;, + -2.530417; 5.150004; 4.441061;, + -2.530419; 5.150001;-0.688940;, + 2.599581;-5.109999;-0.688940;, + 2.599583;-5.109997; 4.441061;, + 2.599582; 5.150000; 4.441061;, + 2.599581; 5.150001;-0.688940;, + 0.416693;-5.109998; 3.970571;, + -0.347529;-5.109998; 3.970571;, + -2.530419;-5.109996; 4.441061;, + 2.599583;-5.109997; 4.441061;, + -0.367640;-5.677753; 3.945947;, + -0.367640;-5.677753; 1.790629;, + -0.347529;-5.109998; 1.794900;, + -0.347529;-5.109998; 3.970571;, + 0.436804;-5.677753; 3.945947;, + 0.436804;-5.677753; 1.790629;, + -0.367640;-5.677753; 1.790629;, + -0.367640;-5.677753; 3.945947;, + 0.416693;-5.109998; 1.794900;, + 0.416693;-5.109998; 3.970571;, + 2.599583;-5.109997; 4.441061;, + 2.599581;-5.109999;-0.688940;, + -0.347529;-5.109998; 3.970571;, + -0.347529;-5.109998; 1.794900;, + -2.530417;-5.109998;-0.688940;, + -2.530419;-5.109996; 4.441061;, + -0.347529;-5.109998; 1.794900;, + 0.416693;-5.109998; 1.794900;, + 2.599581;-5.109999;-0.688940;, + -2.530417;-5.109998;-0.688940;, + -0.367640;-5.677753; 1.790629;, + 0.436804;-5.677753; 1.790629;, + 0.416693;-5.109998; 1.794900;, + -0.347529;-5.109998; 1.794900;, + 0.436804;-5.677753; 1.790629;, + 0.436804;-5.677753; 3.945947;, + 0.416693;-5.109998; 3.970571;, + 0.416693;-5.109998; 1.794900;, + 0.436804;-5.677753; 3.945947;, + -0.367640;-5.677753; 3.945947;, + -0.347529;-5.109998; 3.970571;, + 0.416693;-5.109998; 3.970571;; + 80; + 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;; + MeshNormals { //Cube_001 Normals + 320; + 0.000000; 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;, + -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;, + -0.000000; 1.000000;-0.000000;, + -0.000000; 1.000000;-0.000000;, + -0.000000; 1.000000;-0.000000;, + -0.000000; 1.000000;-0.000000;, + -0.000000; 1.000000; 0.000000;, + -0.000000; 1.000000; 0.000000;, + -0.000000; 1.000000; 0.000000;, + -0.000000; 1.000000; 0.000000;, + 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;, + 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;, + -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;, + 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;, + 1.000000; 0.000001; 0.000000;, + 1.000000; 0.000001; 0.000000;, + 1.000000; 0.000001; 0.000000;, + 1.000000; 0.000001; 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;, + -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;, + 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;, + 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;, + -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;, + 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;, + 1.000000; 0.000001; 0.000000;, + 1.000000; 0.000001; 0.000000;, + 1.000000; 0.000001; 0.000000;, + 1.000000; 0.000001; 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;, + -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;, + 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.000001; 1.000000;-0.000000;, + 0.000001; 1.000000;-0.000000;, + 0.000001; 1.000000;-0.000000;, + 0.000001; 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.000003;, + -0.000000;-1.000000; 0.000003;, + -0.000000;-1.000000; 0.000003;, + -0.000000;-1.000000; 0.000003;, + -0.999373; 0.035400; 0.000000;, + -0.999373; 0.035400; 0.000000;, + -0.999373; 0.035400; 0.000000;, + -0.999373; 0.035400; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-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.007523;-0.999972;, + 0.000000; 0.007523;-0.999972;, + 0.000000; 0.007523;-0.999972;, + 0.000000; 0.007523;-0.999972;, + 0.999373; 0.035399; 0.000000;, + 0.999373; 0.035399; 0.000000;, + 0.999373; 0.035399; 0.000000;, + 0.999373; 0.035399; 0.000000;, + 0.000000;-0.043330; 0.999061;, + 0.000000;-0.043330; 0.999061;, + 0.000000;-0.043330; 0.999061;, + 0.000000;-0.043330; 0.999061;; + 80; + 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;; + } //End of Cube_001 Normals + MeshMaterialList { //Cube_001 Material List + 1; + 80; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 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_001 { + 0.640000; 0.640000; 0.640000; 1.000000;; + 96.078431; + 0.500000; 0.500000; 0.500000;; + 0.000000; 0.000000; 0.000000;; + } + } //End of Cube_001 Material List + MeshTextureCoords { //Cube_001 UV Coordinates + 320; + 0.456156; 0.334515;, + 0.218669; 0.335171;, + 0.216366; 0.574968;, + 0.455972; 0.573345;, + 0.408216; 0.351143;, + 0.183578; 0.351001;, + 0.185676; 0.587688;, + 0.420802; 0.569856;, + 0.717535; 0.651074;, + 0.480501; 0.651074;, + 0.403272; 0.516724;, + 0.800974; 0.515687;, + 0.450682; 0.562762;, + 0.460334; 0.300755;, + 0.197762; 0.296263;, + 0.191022; 0.562698;, + 0.185157; 0.320064;, + 0.429207; 0.331311;, + 0.437982; 0.548381;, + 0.181381; 0.566213;, + 0.438858; 0.311515;, + 0.216936; 0.306473;, + 0.219333; 0.568550;, + 0.435630; 0.574569;, + 0.641769; 0.799233;, + 0.559004; 0.799233;, + 0.531170; 0.783727;, + 0.669603; 0.783727;, + 0.480501; 0.651074;, + 0.480501; 0.866680;, + 0.402917; 0.885928;, + 0.403272; 0.516724;, + 0.717535; 0.866680;, + 0.717535; 0.651074;, + 0.800974; 0.515687;, + 0.800796; 0.879372;, + 0.445862; 0.690313;, + 0.757393; 0.690313;, + 0.757626; 0.715741;, + 0.445849; 0.717935;, + 0.530532; 0.825974;, + 0.530532; 0.725803;, + 0.672472; 0.725803;, + 0.672472; 0.825974;, + 0.546001; 0.748997;, + 0.546001; 0.824503;, + 0.529045; 0.825838;, + 0.529045; 0.747662;, + 0.654435; 0.833521;, + 0.654435; 0.728251;, + 0.669955; 0.728605;, + 0.669954; 0.835122;, + 0.531146; 0.813612;, + 0.671345; 0.813612;, + 0.670462; 0.829118;, + 0.532029; 0.829118;, + 0.163824; 0.970678;, + 0.025445; 0.971241;, + 0.025078; 0.812645;, + 0.163457; 0.812082;, + 0.163457; 0.971241;, + 0.025078; 0.970678;, + 0.025445; 0.812082;, + 0.163824; 0.812645;, + 0.025078; 0.812782;, + 0.197128; 0.812082;, + 0.197495; 0.970678;, + 0.025445; 0.971378;, + 0.197553; 0.995579;, + 0.025502; 0.996279;, + 0.025078; 0.812782;, + 0.197128; 0.812082;, + 0.025078; 0.995579;, + 0.025502; 0.812082;, + 0.046123; 0.834214;, + 0.045801; 0.973616;, + 0.197553; 0.812782;, + 0.197128; 0.996279;, + 0.176507; 0.974147;, + 0.176830; 0.834745;, + 0.197128; 0.996279;, + 0.025078; 0.995579;, + 0.045801; 0.973616;, + 0.176507; 0.974147;, + 0.197128; 0.971378;, + 0.025078; 0.970678;, + 0.025445; 0.812082;, + 0.197495; 0.812783;, + 0.145802; 0.800348;, + 0.037973; 0.799657;, + 0.038577; 0.248281;, + 0.146405; 0.248972;, + 0.169580; 0.801264;, + 0.035513; 0.800404;, + 0.036117; 0.249028;, + 0.170183; 0.249888;, + 0.147602; 0.801900;, + 0.039773; 0.801209;, + 0.040375; 0.249832;, + 0.148204; 0.250523;, + 0.025502; 0.812082;, + 0.197553; 0.812782;, + 0.176830; 0.834745;, + 0.046123; 0.834214;, + 0.169708; 0.801209;, + 0.035640; 0.800348;, + 0.036243; 0.248972;, + 0.170310; 0.249832;, + 0.163824; 0.970678;, + 0.025445; 0.971241;, + 0.025078; 0.812645;, + 0.163457; 0.812082;, + 0.163457; 0.971241;, + 0.025078; 0.970678;, + 0.025445; 0.812082;, + 0.163824; 0.812645;, + 0.025078; 0.812782;, + 0.197128; 0.812082;, + 0.197495; 0.970678;, + 0.025445; 0.971378;, + 0.197553; 0.995579;, + 0.025502; 0.996279;, + 0.025078; 0.812782;, + 0.197128; 0.812082;, + 0.025078; 0.995579;, + 0.025502; 0.812082;, + 0.046123; 0.834214;, + 0.045801; 0.973616;, + 0.197553; 0.812782;, + 0.197128; 0.996279;, + 0.176507; 0.974147;, + 0.176830; 0.834745;, + 0.197128; 0.996279;, + 0.025078; 0.995579;, + 0.045801; 0.973616;, + 0.176507; 0.974147;, + 0.197128; 0.971378;, + 0.025078; 0.970678;, + 0.025445; 0.812082;, + 0.197495; 0.812783;, + 0.145802; 0.800348;, + 0.037973; 0.799657;, + 0.038577; 0.247136;, + 0.146405; 0.247827;, + 0.169580; 0.801264;, + 0.035513; 0.800404;, + 0.036117; 0.247883;, + 0.170183; 0.248743;, + 0.147602; 0.801900;, + 0.039773; 0.801209;, + 0.040375; 0.248687;, + 0.148204; 0.249378;, + 0.025502; 0.812082;, + 0.197553; 0.812782;, + 0.176830; 0.834745;, + 0.046123; 0.834214;, + 0.169708; 0.801209;, + 0.035640; 0.800348;, + 0.036243; 0.247827;, + 0.170310; 0.248687;, + 0.163824; 0.970678;, + 0.025445; 0.971241;, + 0.025078; 0.812645;, + 0.163457; 0.812082;, + 0.163457; 0.971241;, + 0.025078; 0.970678;, + 0.025445; 0.812082;, + 0.163824; 0.812645;, + 0.025078; 0.812782;, + 0.197128; 0.812082;, + 0.197495; 0.970678;, + 0.025445; 0.971378;, + 0.197553; 0.995579;, + 0.025502; 0.996279;, + 0.025078; 0.812782;, + 0.197128; 0.812082;, + 0.025078; 0.995579;, + 0.025502; 0.812082;, + 0.046123; 0.834214;, + 0.045801; 0.973616;, + 0.197553; 0.812782;, + 0.197128; 0.996279;, + 0.176507; 0.974147;, + 0.176830; 0.834745;, + 0.197128; 0.996279;, + 0.025078; 0.995579;, + 0.045801; 0.973616;, + 0.176507; 0.974147;, + 0.197128; 0.971378;, + 0.025078; 0.970678;, + 0.025445; 0.812082;, + 0.197495; 0.812783;, + 0.145802; 0.800348;, + 0.037973; 0.799657;, + 0.038577; 0.247136;, + 0.146405; 0.247827;, + 0.169580; 0.801264;, + 0.035513; 0.800404;, + 0.036117; 0.247883;, + 0.170183; 0.248743;, + 0.147602; 0.801900;, + 0.039773; 0.801209;, + 0.040375; 0.248687;, + 0.148204; 0.249378;, + 0.025502; 0.812082;, + 0.197553; 0.812782;, + 0.176830; 0.834745;, + 0.046123; 0.834214;, + 0.169708; 0.801209;, + 0.035640; 0.800348;, + 0.036243; 0.247827;, + 0.170310; 0.248687;, + 0.163824; 0.970678;, + 0.025445; 0.971241;, + 0.025078; 0.812645;, + 0.163457; 0.812082;, + 0.163457; 0.971241;, + 0.025078; 0.970678;, + 0.025445; 0.812082;, + 0.163824; 0.812645;, + 0.025078; 0.812782;, + 0.197128; 0.812082;, + 0.197495; 0.970678;, + 0.025445; 0.971378;, + 0.197553; 0.995579;, + 0.025502; 0.996279;, + 0.025078; 0.812782;, + 0.197128; 0.812082;, + 0.025078; 0.995579;, + 0.025502; 0.812082;, + 0.046123; 0.834214;, + 0.045801; 0.973616;, + 0.197553; 0.812782;, + 0.197128; 0.996279;, + 0.176507; 0.974147;, + 0.176830; 0.834745;, + 0.197128; 0.996279;, + 0.025078; 0.995579;, + 0.045801; 0.973616;, + 0.176507; 0.974147;, + 0.197128; 0.971378;, + 0.025078; 0.970678;, + 0.025445; 0.812082;, + 0.197495; 0.812783;, + 0.145802; 0.800348;, + 0.037973; 0.799657;, + 0.038577; 0.247136;, + 0.146405; 0.247827;, + 0.169580; 0.801264;, + 0.035513; 0.800404;, + 0.036117; 0.247883;, + 0.170183; 0.248743;, + 0.147602; 0.801900;, + 0.039773; 0.801209;, + 0.040375; 0.248687;, + 0.148204; 0.249378;, + 0.025502; 0.812082;, + 0.197553; 0.812782;, + 0.176830; 0.834745;, + 0.046123; 0.834214;, + 0.169708; 0.801209;, + 0.035640; 0.800348;, + 0.036243; 0.247827;, + 0.170310; 0.248687;, + 0.162385; 0.009221;, + 0.924369; 0.009221;, + 0.924369; 0.340664;, + 0.162385; 0.340664;, + 0.162385; 0.375513;, + 0.162385; 0.044070;, + 0.920960; 0.044069;, + 0.920960; 0.375513;, + 0.173123; 0.401349;, + 0.173123; 0.016267;, + 0.822706; 0.016267;, + 0.822707; 0.401349;, + 0.420022; 0.481351;, + 0.420022; 0.016910;, + 0.838019; 0.016910;, + 0.838019; 0.481351;, + 0.893638; 0.009221;, + 0.893639; 0.340665;, + 0.162386; 0.340666;, + 0.162385; 0.009222;, + 0.593392; 0.089138;, + 0.645583; 0.089138;, + 0.794659; 0.042542;, + 0.444316; 0.042542;, + 0.649241; 0.097975;, + 0.649782; 0.274434;, + 0.587832; 0.274624;, + 0.587291; 0.098165;, + 0.458398; 0.274422;, + 0.458939; 0.097963;, + 0.524800; 0.098165;, + 0.524259; 0.274624;, + 0.593392; 0.248520;, + 0.593392; 0.089138;, + 0.444316; 0.042542;, + 0.444316; 0.441862;, + 0.645583; 0.089138;, + 0.645583; 0.248520;, + 0.794659; 0.441862;, + 0.794659; 0.042542;, + 0.645583; 0.248520;, + 0.593392; 0.248520;, + 0.444316; 0.441862;, + 0.794659; 0.441862;, + 0.587291; 0.097785;, + 0.587493; 0.031924;, + 0.649443; 0.032114;, + 0.649241; 0.097975;, + 0.524800; 0.274434;, + 0.525341; 0.097975;, + 0.587291; 0.098165;, + 0.586750; 0.274624;, + 0.587089; 0.031924;, + 0.587291; 0.097785;, + 0.525341; 0.097975;, + 0.525140; 0.032114;; + } //End of Cube_001 UV Coordinates + XSkinMeshHeader { + 2; + 6; + 6; + } + SkinWeights { + "Armature_RR_leg"; + 52; + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 263; + 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, + 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.448563,-0.034190,-3.599006, 1.000000;; + } //End of Armature_RR_leg Skin Weights + SkinWeights { + "Armature_Bone_001"; + 52; + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107; + 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, + 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.450758,-0.034190, 4.108053, 1.000000;; + } //End of Armature_Bone_001 Skin Weights + SkinWeights { + "Armature_Head"; + 62; + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 268, + 269, + 273, + 277, + 278, + 282; + 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, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.000000, + 0.000003, + 0.000000, + 0.000003, + 0.000000, + 0.000003; + 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.009912,-3.822360,-4.157553, 1.000000;; + } //End of Armature_Head Skin Weights + SkinWeights { + "Armature_Bone_003"; + 67; + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 164, + 167, + 174, + 176, + 179, + 183, + 185, + 186, + 189, + 190, + 192, + 197, + 200, + 206, + 209; + 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, + 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; + -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.448564,-0.034190, 4.108052, 1.000000;; + } //End of Armature_Bone_003 Skin Weights + SkinWeights { + "Armature_Bone_002"; + 52; + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211; + 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, + 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.450759,-0.034190,-3.599006, 1.000000;; + } //End of Armature_Bone_002 Skin Weights + SkinWeights { + "Armature_Root"; + 56; + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319; + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.999997, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.999997, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.999997, + 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.009913,-0.105027,-0.034322, 1.000000;; + } //End of Armature_Root Skin Weights + } //End of Cube_001 Mesh + } //End of sheep_shaved + } //End of Armature +} //End of Root Frame +AnimationSet { + Animation { + {Armature} + AnimationKey { //Position + 2; + 101; + 0;3; 0.041567, 0.000010, 6.045322;;, + 1;3; 0.041567, 0.000010, 6.045322;;, + 2;3; 0.041567, 0.000010, 6.045322;;, + 3;3; 0.041567, 0.000010, 6.045322;;, + 4;3; 0.041567, 0.000010, 6.045322;;, + 5;3; 0.041567, 0.000010, 6.045322;;, + 6;3; 0.041567, 0.000010, 6.045322;;, + 7;3; 0.041567, 0.000010, 6.045322;;, + 8;3; 0.041567, 0.000010, 6.045322;;, + 9;3; 0.041567, 0.000010, 6.045322;;, + 10;3; 0.041567, 0.000010, 6.045322;;, + 11;3; 0.041567, 0.000010, 6.045322;;, + 12;3; 0.041567, 0.000010, 6.045322;;, + 13;3; 0.041567, 0.000010, 6.045322;;, + 14;3; 0.041567, 0.000010, 6.045322;;, + 15;3; 0.041567, 0.000010, 6.045322;;, + 16;3; 0.041567, 0.000010, 6.045322;;, + 17;3; 0.041567, 0.000010, 6.045322;;, + 18;3; 0.041567, 0.000010, 6.045322;;, + 19;3; 0.041567, 0.000010, 6.045322;;, + 20;3; 0.041567, 0.000010, 6.045322;;, + 21;3; 0.041567, 0.000010, 6.045322;;, + 22;3; 0.041567, 0.000010, 6.045322;;, + 23;3; 0.041567, 0.000010, 6.045322;;, + 24;3; 0.041567, 0.000010, 6.045322;;, + 25;3; 0.041567, 0.000010, 6.045322;;, + 26;3; 0.041567, 0.000010, 6.045322;;, + 27;3; 0.041567, 0.000010, 6.045322;;, + 28;3; 0.041567, 0.000010, 6.045322;;, + 29;3; 0.041567, 0.000010, 6.045322;;, + 30;3; 0.041567, 0.000010, 6.045322;;, + 31;3; 0.041567, 0.000010, 6.045322;;, + 32;3; 0.041567, 0.000010, 6.045322;;, + 33;3; 0.041567, 0.000010, 6.045322;;, + 34;3; 0.041567, 0.000010, 6.045322;;, + 35;3; 0.041567, 0.000010, 6.045322;;, + 36;3; 0.041567, 0.000010, 6.045322;;, + 37;3; 0.041567, 0.000010, 6.045322;;, + 38;3; 0.041567, 0.000010, 6.045322;;, + 39;3; 0.041567, 0.000010, 6.045322;;, + 40;3; 0.041567, 0.000010, 6.045322;;, + 41;3; 0.041567, 0.000010, 6.045322;;, + 42;3; 0.041567, 0.000010, 6.045322;;, + 43;3; 0.041567, 0.000010, 6.045322;;, + 44;3; 0.041567, 0.000010, 6.045322;;, + 45;3; 0.041567, 0.000010, 6.045322;;, + 46;3; 0.041567, 0.000010, 6.045322;;, + 47;3; 0.041567, 0.000010, 6.045322;;, + 48;3; 0.041567, 0.000010, 6.045322;;, + 49;3; 0.041567, 0.000010, 6.045322;;, + 50;3; 0.041567, 0.000010, 6.045322;;, + 51;3; 0.041567, 0.000010, 6.045322;;, + 52;3; 0.041567, 0.000010, 6.045322;;, + 53;3; 0.041567, 0.000010, 6.045322;;, + 54;3; 0.041567, 0.000010, 6.045322;;, + 55;3; 0.041567, 0.000010, 6.045322;;, + 56;3; 0.041567, 0.000010, 6.045322;;, + 57;3; 0.041567, 0.000010, 6.045322;;, + 58;3; 0.041567, 0.000010, 6.045322;;, + 59;3; 0.041567, 0.000010, 6.045322;;, + 60;3; 0.041567, 0.000010, 6.045322;;, + 61;3; 0.041567, 0.000010, 6.045322;;, + 62;3; 0.041567, 0.000010, 6.045322;;, + 63;3; 0.041567, 0.000010, 6.045322;;, + 64;3; 0.041567, 0.000010, 6.045322;;, + 65;3; 0.041567, 0.000010, 6.045322;;, + 66;3; 0.041567, 0.000010, 6.045322;;, + 67;3; 0.041567, 0.000010, 6.045322;;, + 68;3; 0.041567, 0.000010, 6.045322;;, + 69;3; 0.041567, 0.000010, 6.045322;;, + 70;3; 0.041567, 0.000010, 6.045322;;, + 71;3; 0.041567, 0.000010, 6.045322;;, + 72;3; 0.041567, 0.000010, 6.045322;;, + 73;3; 0.041567, 0.000010, 6.045322;;, + 74;3; 0.041567, 0.000010, 6.045322;;, + 75;3; 0.041567, 0.000010, 6.045322;;, + 76;3; 0.041567, 0.000010, 6.045322;;, + 77;3; 0.041567, 0.000010, 6.045322;;, + 78;3; 0.041567, 0.000010, 6.045322;;, + 79;3; 0.041567, 0.000010, 6.045322;;, + 80;3; 0.041567, 0.000010, 6.045322;;, + 81;3; 0.041567, 0.000010, 6.045322;;, + 82;3; 0.041567, 0.000010, 6.045322;;, + 83;3; 0.041567, 0.000010, 6.045322;;, + 84;3; 0.041567, 0.000010, 6.045322;;, + 85;3; 0.041567, 0.000010, 6.045322;;, + 86;3; 0.041567, 0.000010, 6.045322;;, + 87;3; 0.041567, 0.000010, 6.045322;;, + 88;3; 0.041567, 0.000010, 6.045322;;, + 89;3; 0.041567, 0.000010, 6.045322;;, + 90;3; 0.041567, 0.000010, 6.045322;;, + 91;3; 0.041567, 0.000010, 6.045322;;, + 92;3; 0.041567, 0.000010, 6.045322;;, + 93;3; 0.041567, 0.000010, 6.045322;;, + 94;3; 0.041567, 0.000010, 6.045322;;, + 95;3; 0.041567, 0.000010, 6.045322;;, + 96;3; 0.041567, 0.000010, 6.045322;;, + 97;3; 0.041567, 0.000010, 6.045322;;, + 98;3; 0.041567, 0.000010, 6.045322;;, + 99;3; 0.041567, 0.000010, 6.045322;;, + 100;3; 0.041567, 0.000010, 6.045322;;; + } + AnimationKey { //Rotation + 0; + 101; + 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;;; + } + AnimationKey { //Scale + 1; + 101; + 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;;; + } + } + Animation { + {Armature_Root} + AnimationKey { //Position + 2; + 101; + 0;3; 0.009913, 0.034322, 0.105027;;, + 1;3; 0.009913, 0.034322, 0.105027;;, + 2;3; 0.009913, 0.034322, 0.105027;;, + 3;3; 0.009913, 0.034322, 0.105027;;, + 4;3; 0.009913, 0.034322, 0.105027;;, + 5;3; 0.009913, 0.034322, 0.105027;;, + 6;3; 0.009913, 0.034322, 0.105027;;, + 7;3; 0.009913, 0.034322, 0.105027;;, + 8;3; 0.009913, 0.034322, 0.105027;;, + 9;3; 0.009913, 0.034322, 0.105027;;, + 10;3; 0.009913, 0.034322, 0.105027;;, + 11;3; 0.009913, 0.034322, 0.105027;;, + 12;3; 0.009913, 0.034322, 0.105027;;, + 13;3; 0.009913, 0.034322, 0.105027;;, + 14;3; 0.009913, 0.034322, 0.105027;;, + 15;3; 0.009913, 0.034322, 0.105027;;, + 16;3; 0.009913, 0.034322, 0.105027;;, + 17;3; 0.009913, 0.034322, 0.105027;;, + 18;3; 0.009913, 0.034322, 0.105027;;, + 19;3; 0.009913, 0.034322, 0.105027;;, + 20;3; 0.009913, 0.034322, 0.105027;;, + 21;3; 0.009913, 0.034322, 0.105027;;, + 22;3; 0.009913, 0.034322, 0.105027;;, + 23;3; 0.009913, 0.034322, 0.105027;;, + 24;3; 0.009913, 0.034322, 0.105027;;, + 25;3; 0.009913, 0.034322, 0.105027;;, + 26;3; 0.009913, 0.034322, 0.105027;;, + 27;3; 0.009913, 0.034322, 0.105027;;, + 28;3; 0.009913, 0.034322, 0.105027;;, + 29;3; 0.009913, 0.034322, 0.105027;;, + 30;3; 0.009913, 0.034322, 0.105027;;, + 31;3; 0.009913, 0.034322, 0.105027;;, + 32;3; 0.009913, 0.034322, 0.105027;;, + 33;3; 0.009913, 0.034322, 0.105027;;, + 34;3; 0.009913, 0.034322, 0.105027;;, + 35;3; 0.009913, 0.034322, 0.105027;;, + 36;3; 0.009913, 0.034322, 0.105027;;, + 37;3; 0.009913, 0.034322, 0.105027;;, + 38;3; 0.009913, 0.034322, 0.105027;;, + 39;3; 0.009913, 0.034322, 0.105027;;, + 40;3; 0.009913, 0.034322, 0.105027;;, + 41;3; 0.009913, 0.034322, 0.105027;;, + 42;3; 0.009913, 0.034322, 0.105027;;, + 43;3; 0.009913, 0.034322, 0.105027;;, + 44;3; 0.009913, 0.034322, 0.105027;;, + 45;3; 0.009913, 0.034322, 0.105027;;, + 46;3; 0.009913, 0.034322, 0.105027;;, + 47;3; 0.009913, 0.034322, 0.105027;;, + 48;3; 0.009913, 0.034322, 0.105027;;, + 49;3; 0.009913, 0.034322, 0.105027;;, + 50;3; 0.009913, 0.034322, 0.105027;;, + 51;3; 0.009913, 0.034322, 0.105027;;, + 52;3; 0.009913, 0.034322, 0.105027;;, + 53;3; 0.009913, 0.034322, 0.105027;;, + 54;3; 0.009913, 0.034322, 0.105027;;, + 55;3; 0.009913, 0.034322, 0.105027;;, + 56;3; 0.009913, 0.034322, 0.105027;;, + 57;3; 0.009913, 0.034322, 0.105027;;, + 58;3; 0.009913, 0.034322, 0.105027;;, + 59;3; 0.009913, 0.034322, 0.105027;;, + 60;3; 0.009913, 0.034322, 0.105027;;, + 61;3; 0.009913, 0.034322, 0.105027;;, + 62;3; 0.009913, 0.034322, 0.105027;;, + 63;3; 0.009913, 0.034322, 0.105027;;, + 64;3; 0.009913, 0.034322, 0.105027;;, + 65;3; 0.009913, 0.034322, 0.105027;;, + 66;3; 0.009913, 0.034322, 0.105027;;, + 67;3; 0.009913, 0.034322, 0.105027;;, + 68;3; 0.009913, 0.034322, 0.105027;;, + 69;3; 0.009913, 0.034322, 0.105027;;, + 70;3; 0.009913, 0.034322, 0.105027;;, + 71;3; 0.009913, 0.034322, 0.105027;;, + 72;3; 0.009913, 0.034322, 0.105027;;, + 73;3; 0.009913, 0.034322, 0.105027;;, + 74;3; 0.009913, 0.034322, 0.105027;;, + 75;3; 0.009913, 0.034322, 0.105027;;, + 76;3; 0.009913, 0.034322, 0.105027;;, + 77;3; 0.009913, 0.034322, 0.105027;;, + 78;3; 0.009913, 0.034322, 0.105027;;, + 79;3; 0.009913, 0.034322, 0.105027;;, + 80;3; 0.009913, 0.034322, 0.105027;;, + 81;3; 0.009913, 0.034322, 0.105027;;, + 82;3; 0.009913, 0.034322, 0.105027;;, + 83;3; 0.009913, 0.034322, 0.105027;;, + 84;3; 0.009913, 0.034322, 0.105027;;, + 85;3; 0.009913, 0.034322, 0.105027;;, + 86;3; 0.009913, 0.034322, 0.105027;;, + 87;3; 0.009913, 0.034322, 0.105027;;, + 88;3; 0.009913, 0.034322, 0.105027;;, + 89;3; 0.009913, 0.034322, 0.105027;;, + 90;3; 0.009913, 0.034322, 0.105027;;, + 91;3; 0.009913, 0.034322, 0.105027;;, + 92;3; 0.009913, 0.034322, 0.105027;;, + 93;3; 0.009913, 0.034322, 0.105027;;, + 94;3; 0.009913, 0.034322, 0.105027;;, + 95;3; 0.009913, 0.034322, 0.105027;;, + 96;3; 0.009913, 0.034322, 0.105027;;, + 97;3; 0.009913, 0.034322, 0.105027;;, + 98;3; 0.009913, 0.034322, 0.105027;;, + 99;3; 0.009913, 0.034322, 0.105027;;, + 100;3; 0.009913, 0.034322, 0.105027;;; + } + AnimationKey { //Rotation + 0; + 101; + 0;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 1;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 2;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 3;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 4;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 5;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 6;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 7;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 8;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 9;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 10;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 11;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 12;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 13;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 14;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 15;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 16;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 17;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 18;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 19;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 20;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 21;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 22;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 23;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 24;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 25;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 26;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 27;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 28;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 29;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 30;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 31;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 32;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 33;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 34;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 35;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 36;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 37;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 38;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 39;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 40;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 41;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 42;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 43;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 44;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 45;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 46;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 47;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 48;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 49;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 50;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 51;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 52;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 53;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 54;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 55;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 56;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 57;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 58;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 59;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 60;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 61;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 62;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 63;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 64;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 65;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 66;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 67;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 68;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 69;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 70;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 71;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 72;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 73;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 74;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 75;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 76;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 77;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 78;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 79;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 80;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 81;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 82;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 83;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 84;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 85;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 86;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 87;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 88;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 89;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 90;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 91;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 92;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 93;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 94;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 95;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 96;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 97;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 98;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 99;4; 0.000000, 0.000000, 0.707107, 0.707107;;, + 100;4; 0.000000, 0.000000, 0.707107, 0.707107;;; + } + AnimationKey { //Scale + 1; + 101; + 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;;; + } + } + Animation { + {Armature_Bone_001} + AnimationKey { //Position + 2; + 101; + 0;3; 1.460671,-0.139217, 4.073730;;, + 1;3; 1.460671,-0.139217, 4.073730;;, + 2;3; 1.460671,-0.139217, 4.073730;;, + 3;3; 1.460671,-0.139217, 4.073730;;, + 4;3; 1.460671,-0.139217, 4.073730;;, + 5;3; 1.460671,-0.139217, 4.073730;;, + 6;3; 1.460671,-0.139217, 4.073730;;, + 7;3; 1.460671,-0.139217, 4.073730;;, + 8;3; 1.460671,-0.139217, 4.073730;;, + 9;3; 1.460671,-0.139217, 4.073730;;, + 10;3; 1.460671,-0.139217, 4.073730;;, + 11;3; 1.460671,-0.139217, 4.073730;;, + 12;3; 1.460671,-0.139217, 4.073730;;, + 13;3; 1.460671,-0.139217, 4.073730;;, + 14;3; 1.460671,-0.139217, 4.073730;;, + 15;3; 1.460671,-0.139217, 4.073730;;, + 16;3; 1.460671,-0.139217, 4.073730;;, + 17;3; 1.460671,-0.139217, 4.073730;;, + 18;3; 1.460671,-0.139217, 4.073730;;, + 19;3; 1.460671,-0.139217, 4.073730;;, + 20;3; 1.460671,-0.139217, 4.073730;;, + 21;3; 1.460671,-0.139217, 4.073730;;, + 22;3; 1.460671,-0.139217, 4.073730;;, + 23;3; 1.460671,-0.139217, 4.073730;;, + 24;3; 1.460671,-0.139217, 4.073730;;, + 25;3; 1.460671,-0.139217, 4.073730;;, + 26;3; 1.460671,-0.139217, 4.073730;;, + 27;3; 1.460671,-0.139217, 4.073730;;, + 28;3; 1.460671,-0.139217, 4.073730;;, + 29;3; 1.460671,-0.139217, 4.073730;;, + 30;3; 1.460671,-0.139217, 4.073730;;, + 31;3; 1.460671,-0.139217, 4.073730;;, + 32;3; 1.460671,-0.139217, 4.073730;;, + 33;3; 1.460671,-0.139217, 4.073730;;, + 34;3; 1.460671,-0.139217, 4.073730;;, + 35;3; 1.460671,-0.139217, 4.073730;;, + 36;3; 1.460671,-0.139217, 4.073730;;, + 37;3; 1.460671,-0.139217, 4.073730;;, + 38;3; 1.460671,-0.139217, 4.073730;;, + 39;3; 1.460671,-0.139217, 4.073730;;, + 40;3; 1.460671,-0.139217, 4.073730;;, + 41;3; 1.460671,-0.139217, 4.073730;;, + 42;3; 1.460671,-0.139217, 4.073730;;, + 43;3; 1.460671,-0.139217, 4.073730;;, + 44;3; 1.460671,-0.139217, 4.073730;;, + 45;3; 1.460671,-0.139217, 4.073730;;, + 46;3; 1.460671,-0.139217, 4.073730;;, + 47;3; 1.460671,-0.139217, 4.073730;;, + 48;3; 1.460671,-0.139217, 4.073730;;, + 49;3; 1.460671,-0.139217, 4.073730;;, + 50;3; 1.460671,-0.139217, 4.073730;;, + 51;3; 1.460671,-0.139217, 4.073730;;, + 52;3; 1.460671,-0.139217, 4.073730;;, + 53;3; 1.460671,-0.139217, 4.073730;;, + 54;3; 1.460671,-0.139217, 4.073730;;, + 55;3; 1.460671,-0.139217, 4.073730;;, + 56;3; 1.460671,-0.139217, 4.073730;;, + 57;3; 1.460671,-0.139217, 4.073730;;, + 58;3; 1.460671,-0.139217, 4.073730;;, + 59;3; 1.460671,-0.139217, 4.073730;;, + 60;3; 1.460671,-0.139217, 4.073730;;, + 61;3; 1.460671,-0.139217, 4.073730;;, + 62;3; 1.460671,-0.139217, 4.073730;;, + 63;3; 1.460671,-0.139217, 4.073730;;, + 64;3; 1.460671,-0.139217, 4.073730;;, + 65;3; 1.460671,-0.139217, 4.073730;;, + 66;3; 1.460671,-0.139217, 4.073730;;, + 67;3; 1.460671,-0.139217, 4.073730;;, + 68;3; 1.460671,-0.139217, 4.073730;;, + 69;3; 1.460671,-0.139217, 4.073730;;, + 70;3; 1.460671,-0.139217, 4.073730;;, + 71;3; 1.460671,-0.139217, 4.073730;;, + 72;3; 1.460671,-0.139217, 4.073730;;, + 73;3; 1.460671,-0.139217, 4.073730;;, + 74;3; 1.460671,-0.139217, 4.073730;;, + 75;3; 1.460671,-0.139217, 4.073730;;, + 76;3; 1.460671,-0.139217, 4.073730;;, + 77;3; 1.460671,-0.139217, 4.073730;;, + 78;3; 1.460671,-0.139217, 4.073730;;, + 79;3; 1.460671,-0.139217, 4.073730;;, + 80;3; 1.460671,-0.139217, 4.073730;;, + 81;3; 1.460671,-0.139217, 4.073730;;, + 82;3; 1.460671,-0.139217, 4.073730;;, + 83;3; 1.460671,-0.139217, 4.073730;;, + 84;3; 1.460671,-0.139217, 4.073730;;, + 85;3; 1.460671,-0.139217, 4.073730;;, + 86;3; 1.460671,-0.139217, 4.073730;;, + 87;3; 1.460671,-0.139217, 4.073730;;, + 88;3; 1.460671,-0.139217, 4.073730;;, + 89;3; 1.460671,-0.139217, 4.073730;;, + 90;3; 1.460671,-0.139217, 4.073730;;, + 91;3; 1.460671,-0.139217, 4.073730;;, + 92;3; 1.460671,-0.139217, 4.073730;;, + 93;3; 1.460671,-0.139217, 4.073730;;, + 94;3; 1.460671,-0.139217, 4.073730;;, + 95;3; 1.460671,-0.139217, 4.073730;;, + 96;3; 1.460671,-0.139217, 4.073730;;, + 97;3; 1.460671,-0.139217, 4.073730;;, + 98;3; 1.460671,-0.139217, 4.073730;;, + 99;3; 1.460671,-0.139217, 4.073730;;, + 100;3; 1.460671,-0.139217, 4.073730;;; + } + AnimationKey { //Rotation + 0; + 101; + 0;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 1;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 2;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 3;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 4;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 5;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 6;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 7;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 8;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 9;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 10;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 11;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 12;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 13;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 14;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 15;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 16;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 17;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 18;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 19;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 20;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 21;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 22;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 23;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 24;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 25;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 26;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 27;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 28;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 29;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 30;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 31;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 32;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 33;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 34;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 35;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 36;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 37;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 38;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 39;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 40;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 41;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 42;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 43;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 44;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 45;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 46;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 47;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 48;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 49;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 50;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 51;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 52;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 53;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 54;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 55;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 56;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 57;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 58;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 59;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 60;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 61;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 62;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 63;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 64;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 65;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 66;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 67;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 68;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 69;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 70;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 71;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 72;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 73;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 74;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 75;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 76;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 77;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 78;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 79;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 80;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 81;4; -0.023017, 0.996971,-0.000000,-0.000000;;, + 82;4; -0.087830, 0.988440,-0.000000,-0.000000;;, + 83;4; -0.171026, 0.977486,-0.000000,-0.000000;;, + 84;4; -0.235816, 0.968955,-0.000000,-0.000000;;, + 85;4; -0.258819, 0.965926,-0.000000,-0.000000;;, + 86;4; -0.247344, 0.965926,-0.000000,-0.000000;;, + 87;4; -0.212807, 0.965926,-0.000000,-0.000000;;, + 88;4; -0.156652, 0.965926,-0.000000,-0.000000;;, + 89;4; -0.083204, 0.965926,-0.000000,-0.000000;;, + 90;4; -0.000000, 0.965926,-0.000000,-0.000000;;, + 91;4; 0.083204, 0.965926, 0.000000,-0.000000;;, + 92;4; 0.156652, 0.965926, 0.000000,-0.000000;;, + 93;4; 0.212807, 0.965926, 0.000000,-0.000000;;, + 94;4; 0.247343, 0.965926, 0.000000,-0.000000;;, + 95;4; 0.258819, 0.965926, 0.000000,-0.000000;;, + 96;4; 0.235815, 0.968955, 0.000000,-0.000000;;, + 97;4; 0.171026, 0.977486, 0.000000,-0.000000;;, + 98;4; 0.087830, 0.988440, 0.000000,-0.000000;;, + 99;4; 0.023017, 0.996971, 0.000000,-0.000000;;, + 100;4; -0.000000, 1.000000, 0.000000,-0.000000;;; + } + AnimationKey { //Scale + 1; + 101; + 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;;; + } + } + Animation { + {Armature_Bone_002} + AnimationKey { //Position + 2; + 101; + 0;3; 1.460671,-0.139216,-3.633328;;, + 1;3; 1.460671,-0.139216,-3.633328;;, + 2;3; 1.460671,-0.139216,-3.633328;;, + 3;3; 1.460671,-0.139216,-3.633328;;, + 4;3; 1.460671,-0.139216,-3.633328;;, + 5;3; 1.460671,-0.139216,-3.633328;;, + 6;3; 1.460671,-0.139216,-3.633328;;, + 7;3; 1.460671,-0.139216,-3.633328;;, + 8;3; 1.460671,-0.139216,-3.633328;;, + 9;3; 1.460671,-0.139216,-3.633328;;, + 10;3; 1.460671,-0.139216,-3.633328;;, + 11;3; 1.460671,-0.139216,-3.633328;;, + 12;3; 1.460671,-0.139216,-3.633328;;, + 13;3; 1.460671,-0.139216,-3.633328;;, + 14;3; 1.460671,-0.139216,-3.633328;;, + 15;3; 1.460671,-0.139216,-3.633328;;, + 16;3; 1.460671,-0.139216,-3.633328;;, + 17;3; 1.460671,-0.139216,-3.633328;;, + 18;3; 1.460671,-0.139216,-3.633328;;, + 19;3; 1.460671,-0.139216,-3.633328;;, + 20;3; 1.460671,-0.139216,-3.633328;;, + 21;3; 1.460671,-0.139216,-3.633328;;, + 22;3; 1.460671,-0.139216,-3.633328;;, + 23;3; 1.460671,-0.139216,-3.633328;;, + 24;3; 1.460671,-0.139216,-3.633328;;, + 25;3; 1.460671,-0.139216,-3.633328;;, + 26;3; 1.460671,-0.139216,-3.633328;;, + 27;3; 1.460671,-0.139216,-3.633328;;, + 28;3; 1.460671,-0.139216,-3.633328;;, + 29;3; 1.460671,-0.139216,-3.633328;;, + 30;3; 1.460671,-0.139216,-3.633328;;, + 31;3; 1.460671,-0.139216,-3.633328;;, + 32;3; 1.460671,-0.139216,-3.633328;;, + 33;3; 1.460671,-0.139216,-3.633328;;, + 34;3; 1.460671,-0.139216,-3.633328;;, + 35;3; 1.460671,-0.139216,-3.633328;;, + 36;3; 1.460671,-0.139216,-3.633328;;, + 37;3; 1.460671,-0.139216,-3.633328;;, + 38;3; 1.460671,-0.139216,-3.633328;;, + 39;3; 1.460671,-0.139216,-3.633328;;, + 40;3; 1.460671,-0.139216,-3.633328;;, + 41;3; 1.460671,-0.139216,-3.633328;;, + 42;3; 1.460671,-0.139216,-3.633328;;, + 43;3; 1.460671,-0.139216,-3.633328;;, + 44;3; 1.460671,-0.139216,-3.633328;;, + 45;3; 1.460671,-0.139216,-3.633328;;, + 46;3; 1.460671,-0.139216,-3.633328;;, + 47;3; 1.460671,-0.139216,-3.633328;;, + 48;3; 1.460671,-0.139216,-3.633328;;, + 49;3; 1.460671,-0.139216,-3.633328;;, + 50;3; 1.460671,-0.139216,-3.633328;;, + 51;3; 1.460671,-0.139216,-3.633328;;, + 52;3; 1.460671,-0.139216,-3.633328;;, + 53;3; 1.460671,-0.139216,-3.633328;;, + 54;3; 1.460671,-0.139216,-3.633328;;, + 55;3; 1.460671,-0.139216,-3.633328;;, + 56;3; 1.460671,-0.139216,-3.633328;;, + 57;3; 1.460671,-0.139216,-3.633328;;, + 58;3; 1.460671,-0.139216,-3.633328;;, + 59;3; 1.460671,-0.139216,-3.633328;;, + 60;3; 1.460671,-0.139216,-3.633328;;, + 61;3; 1.460671,-0.139216,-3.633328;;, + 62;3; 1.460671,-0.139216,-3.633328;;, + 63;3; 1.460671,-0.139216,-3.633328;;, + 64;3; 1.460671,-0.139216,-3.633328;;, + 65;3; 1.460671,-0.139216,-3.633328;;, + 66;3; 1.460671,-0.139216,-3.633328;;, + 67;3; 1.460671,-0.139216,-3.633328;;, + 68;3; 1.460671,-0.139216,-3.633328;;, + 69;3; 1.460671,-0.139216,-3.633328;;, + 70;3; 1.460671,-0.139216,-3.633328;;, + 71;3; 1.460671,-0.139216,-3.633328;;, + 72;3; 1.460671,-0.139216,-3.633328;;, + 73;3; 1.460671,-0.139216,-3.633328;;, + 74;3; 1.460671,-0.139216,-3.633328;;, + 75;3; 1.460671,-0.139216,-3.633328;;, + 76;3; 1.460671,-0.139216,-3.633328;;, + 77;3; 1.460671,-0.139216,-3.633328;;, + 78;3; 1.460671,-0.139216,-3.633328;;, + 79;3; 1.460671,-0.139216,-3.633328;;, + 80;3; 1.460671,-0.139216,-3.633328;;, + 81;3; 1.460671,-0.139216,-3.633328;;, + 82;3; 1.460671,-0.139216,-3.633328;;, + 83;3; 1.460671,-0.139216,-3.633328;;, + 84;3; 1.460671,-0.139216,-3.633328;;, + 85;3; 1.460671,-0.139216,-3.633328;;, + 86;3; 1.460671,-0.139216,-3.633328;;, + 87;3; 1.460671,-0.139216,-3.633328;;, + 88;3; 1.460671,-0.139216,-3.633328;;, + 89;3; 1.460671,-0.139216,-3.633328;;, + 90;3; 1.460671,-0.139216,-3.633328;;, + 91;3; 1.460671,-0.139216,-3.633328;;, + 92;3; 1.460671,-0.139216,-3.633328;;, + 93;3; 1.460671,-0.139216,-3.633328;;, + 94;3; 1.460671,-0.139216,-3.633328;;, + 95;3; 1.460671,-0.139216,-3.633328;;, + 96;3; 1.460671,-0.139216,-3.633328;;, + 97;3; 1.460671,-0.139216,-3.633328;;, + 98;3; 1.460671,-0.139216,-3.633328;;, + 99;3; 1.460671,-0.139216,-3.633328;;, + 100;3; 1.460671,-0.139216,-3.633328;;; + } + AnimationKey { //Rotation + 0; + 101; + 0;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 1;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 2;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 3;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 4;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 5;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 6;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 7;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 8;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 9;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 10;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 11;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 12;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 13;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 14;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 15;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 16;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 17;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 18;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 19;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 20;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 21;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 22;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 23;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 24;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 25;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 26;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 27;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 28;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 29;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 30;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 31;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 32;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 33;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 34;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 35;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 36;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 37;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 38;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 39;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 40;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 41;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 42;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 43;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 44;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 45;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 46;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 47;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 48;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 49;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 50;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 51;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 52;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 53;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 54;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 55;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 56;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 57;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 58;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 59;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 60;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 61;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 62;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 63;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 64;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 65;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 66;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 67;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 68;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 69;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 70;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 71;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 72;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 73;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 74;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 75;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 76;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 77;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 78;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 79;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 80;4; -0.000000, 1.000000,-0.000000,-0.000000;;, + 81;4; 0.023017, 0.996971, 0.000000,-0.000000;;, + 82;4; 0.087830, 0.988440, 0.000000,-0.000000;;, + 83;4; 0.171026, 0.977486, 0.000000,-0.000000;;, + 84;4; 0.235815, 0.968955, 0.000000,-0.000000;;, + 85;4; 0.258819, 0.965926, 0.000000,-0.000000;;, + 86;4; 0.247343, 0.965926, 0.000000,-0.000000;;, + 87;4; 0.212807, 0.965926, 0.000000,-0.000000;;, + 88;4; 0.156652, 0.965926, 0.000000,-0.000000;;, + 89;4; 0.083204, 0.965926, 0.000000,-0.000000;;, + 90;4; -0.000000, 0.965926,-0.000000,-0.000000;;, + 91;4; -0.083204, 0.965926,-0.000000,-0.000000;;, + 92;4; -0.156652, 0.965926,-0.000000,-0.000000;;, + 93;4; -0.212807, 0.965926,-0.000000,-0.000000;;, + 94;4; -0.247344, 0.965926,-0.000000,-0.000000;;, + 95;4; -0.258819, 0.965926,-0.000000,-0.000000;;, + 96;4; -0.235816, 0.968955,-0.000000,-0.000000;;, + 97;4; -0.171026, 0.977486,-0.000000,-0.000000;;, + 98;4; -0.087830, 0.988440,-0.000000,-0.000000;;, + 99;4; -0.023017, 0.996971,-0.000000,-0.000000;;, + 100;4; -0.000000, 1.000000, 0.000000,-0.000000;;; + } + AnimationKey { //Scale + 1; + 101; + 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;;; + } + } + Animation { + {Armature_Bone_003} + AnimationKey { //Position + 2; + 101; + 0;3; -1.438650,-0.139217, 4.073730;;, + 1;3; -1.438650,-0.139217, 4.073730;;, + 2;3; -1.438650,-0.139217, 4.073730;;, + 3;3; -1.438650,-0.139217, 4.073730;;, + 4;3; -1.438650,-0.139217, 4.073730;;, + 5;3; -1.438650,-0.139217, 4.073730;;, + 6;3; -1.438650,-0.139217, 4.073730;;, + 7;3; -1.438650,-0.139217, 4.073730;;, + 8;3; -1.438650,-0.139217, 4.073730;;, + 9;3; -1.438650,-0.139217, 4.073730;;, + 10;3; -1.438650,-0.139217, 4.073730;;, + 11;3; -1.438650,-0.139217, 4.073730;;, + 12;3; -1.438650,-0.139217, 4.073730;;, + 13;3; -1.438650,-0.139217, 4.073730;;, + 14;3; -1.438650,-0.139217, 4.073730;;, + 15;3; -1.438650,-0.139217, 4.073730;;, + 16;3; -1.438650,-0.139217, 4.073730;;, + 17;3; -1.438650,-0.139217, 4.073730;;, + 18;3; -1.438650,-0.139217, 4.073730;;, + 19;3; -1.438650,-0.139217, 4.073730;;, + 20;3; -1.438650,-0.139217, 4.073730;;, + 21;3; -1.438650,-0.139217, 4.073730;;, + 22;3; -1.438650,-0.139217, 4.073730;;, + 23;3; -1.438650,-0.139217, 4.073730;;, + 24;3; -1.438650,-0.139217, 4.073730;;, + 25;3; -1.438650,-0.139217, 4.073730;;, + 26;3; -1.438650,-0.139217, 4.073730;;, + 27;3; -1.438650,-0.139217, 4.073730;;, + 28;3; -1.438650,-0.139217, 4.073730;;, + 29;3; -1.438650,-0.139217, 4.073730;;, + 30;3; -1.438650,-0.139217, 4.073730;;, + 31;3; -1.438650,-0.139217, 4.073730;;, + 32;3; -1.438650,-0.139217, 4.073730;;, + 33;3; -1.438650,-0.139217, 4.073730;;, + 34;3; -1.438650,-0.139217, 4.073730;;, + 35;3; -1.438650,-0.139217, 4.073730;;, + 36;3; -1.438650,-0.139217, 4.073730;;, + 37;3; -1.438650,-0.139217, 4.073730;;, + 38;3; -1.438650,-0.139217, 4.073730;;, + 39;3; -1.438650,-0.139217, 4.073730;;, + 40;3; -1.438650,-0.139217, 4.073730;;, + 41;3; -1.438650,-0.139217, 4.073730;;, + 42;3; -1.438650,-0.139217, 4.073730;;, + 43;3; -1.438650,-0.139217, 4.073730;;, + 44;3; -1.438650,-0.139217, 4.073730;;, + 45;3; -1.438650,-0.139217, 4.073730;;, + 46;3; -1.438650,-0.139217, 4.073730;;, + 47;3; -1.438650,-0.139217, 4.073730;;, + 48;3; -1.438650,-0.139217, 4.073730;;, + 49;3; -1.438650,-0.139217, 4.073730;;, + 50;3; -1.438650,-0.139217, 4.073730;;, + 51;3; -1.438650,-0.139217, 4.073730;;, + 52;3; -1.438650,-0.139217, 4.073730;;, + 53;3; -1.438650,-0.139217, 4.073730;;, + 54;3; -1.438650,-0.139217, 4.073730;;, + 55;3; -1.438650,-0.139217, 4.073730;;, + 56;3; -1.438650,-0.139217, 4.073730;;, + 57;3; -1.438650,-0.139217, 4.073730;;, + 58;3; -1.438650,-0.139217, 4.073730;;, + 59;3; -1.438650,-0.139217, 4.073730;;, + 60;3; -1.438650,-0.139217, 4.073730;;, + 61;3; -1.438650,-0.139217, 4.073730;;, + 62;3; -1.438650,-0.139217, 4.073730;;, + 63;3; -1.438650,-0.139217, 4.073730;;, + 64;3; -1.438650,-0.139217, 4.073730;;, + 65;3; -1.438650,-0.139217, 4.073730;;, + 66;3; -1.438650,-0.139217, 4.073730;;, + 67;3; -1.438650,-0.139217, 4.073730;;, + 68;3; -1.438650,-0.139217, 4.073730;;, + 69;3; -1.438650,-0.139217, 4.073730;;, + 70;3; -1.438650,-0.139217, 4.073730;;, + 71;3; -1.438650,-0.139217, 4.073730;;, + 72;3; -1.438650,-0.139217, 4.073730;;, + 73;3; -1.438650,-0.139217, 4.073730;;, + 74;3; -1.438650,-0.139217, 4.073730;;, + 75;3; -1.438650,-0.139217, 4.073730;;, + 76;3; -1.438650,-0.139217, 4.073730;;, + 77;3; -1.438650,-0.139217, 4.073730;;, + 78;3; -1.438650,-0.139217, 4.073730;;, + 79;3; -1.438650,-0.139217, 4.073730;;, + 80;3; -1.438650,-0.139217, 4.073730;;, + 81;3; -1.438650,-0.139217, 4.073730;;, + 82;3; -1.438650,-0.139217, 4.073730;;, + 83;3; -1.438650,-0.139217, 4.073730;;, + 84;3; -1.438650,-0.139217, 4.073730;;, + 85;3; -1.438650,-0.139217, 4.073730;;, + 86;3; -1.438650,-0.139217, 4.073730;;, + 87;3; -1.438650,-0.139217, 4.073730;;, + 88;3; -1.438650,-0.139217, 4.073730;;, + 89;3; -1.438650,-0.139217, 4.073730;;, + 90;3; -1.438650,-0.139217, 4.073730;;, + 91;3; -1.438650,-0.139217, 4.073730;;, + 92;3; -1.438650,-0.139217, 4.073730;;, + 93;3; -1.438650,-0.139217, 4.073730;;, + 94;3; -1.438650,-0.139217, 4.073730;;, + 95;3; -1.438650,-0.139217, 4.073730;;, + 96;3; -1.438650,-0.139217, 4.073730;;, + 97;3; -1.438650,-0.139217, 4.073730;;, + 98;3; -1.438650,-0.139217, 4.073730;;, + 99;3; -1.438650,-0.139217, 4.073730;;, + 100;3; -1.438650,-0.139217, 4.073730;;; + } + AnimationKey { //Rotation + 0; + 101; + 0;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 1;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 2;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 3;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 4;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 5;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 6;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 7;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 8;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 9;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 10;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 11;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 12;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 13;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 14;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 15;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 16;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 17;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 18;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 19;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 20;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 21;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 22;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 23;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 24;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 25;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 26;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 27;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 28;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 29;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 30;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 31;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 32;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 33;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 34;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 35;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 36;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 37;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 38;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 39;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 40;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 41;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 42;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 43;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 44;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 45;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 46;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 47;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 48;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 49;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 50;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 51;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 52;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 53;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 54;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 55;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 56;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 57;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 58;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 59;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 60;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 61;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 62;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 63;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 64;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 65;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 66;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 67;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 68;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 69;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 70;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 71;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 72;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 73;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 74;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 75;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 76;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 77;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 78;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 79;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 80;4; 0.000000, 1.000000,-0.000000,-0.000000;;, + 81;4; 0.023017, 0.996971, 0.000000,-0.000000;;, + 82;4; 0.087830, 0.988440, 0.000000,-0.000000;;, + 83;4; 0.171026, 0.977486, 0.000000,-0.000000;;, + 84;4; 0.235815, 0.968955, 0.000000,-0.000000;;, + 85;4; 0.258819, 0.965926, 0.000000,-0.000000;;, + 86;4; 0.247344, 0.965926, 0.000000,-0.000000;;, + 87;4; 0.212807, 0.965926, 0.000000,-0.000000;;, + 88;4; 0.156652, 0.965926, 0.000000,-0.000000;;, + 89;4; 0.083204, 0.965926, 0.000000,-0.000000;;, + 90;4; -0.000000, 0.965926, 0.000000,-0.000000;;, + 91;4; -0.083204, 0.965926,-0.000000,-0.000000;;, + 92;4; -0.156652, 0.965926,-0.000000,-0.000000;;, + 93;4; -0.212807, 0.965926,-0.000000,-0.000000;;, + 94;4; -0.247344, 0.965926,-0.000000,-0.000000;;, + 95;4; -0.258819, 0.965926,-0.000000,-0.000000;;, + 96;4; -0.235815, 0.968955,-0.000000,-0.000000;;, + 97;4; -0.171026, 0.977486,-0.000000,-0.000000;;, + 98;4; -0.087830, 0.988440,-0.000000,-0.000000;;, + 99;4; -0.023017, 0.996971,-0.000000,-0.000000;;, + 100;4; -0.000000, 1.000000, 0.000000,-0.000000;;; + } + AnimationKey { //Scale + 1; + 101; + 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;;; + } + } + Animation { + {Armature_RR_leg} + AnimationKey { //Position + 2; + 101; + 0;3; -1.438651,-0.139216,-3.633328;;, + 1;3; -1.438651,-0.139216,-3.633328;;, + 2;3; -1.438651,-0.139216,-3.633328;;, + 3;3; -1.438651,-0.139216,-3.633328;;, + 4;3; -1.438651,-0.139216,-3.633328;;, + 5;3; -1.438651,-0.139216,-3.633328;;, + 6;3; -1.438651,-0.139216,-3.633328;;, + 7;3; -1.438651,-0.139216,-3.633328;;, + 8;3; -1.438651,-0.139216,-3.633328;;, + 9;3; -1.438651,-0.139216,-3.633328;;, + 10;3; -1.438651,-0.139216,-3.633328;;, + 11;3; -1.438651,-0.139216,-3.633328;;, + 12;3; -1.438651,-0.139216,-3.633328;;, + 13;3; -1.438651,-0.139216,-3.633328;;, + 14;3; -1.438651,-0.139216,-3.633328;;, + 15;3; -1.438651,-0.139216,-3.633328;;, + 16;3; -1.438651,-0.139216,-3.633328;;, + 17;3; -1.438651,-0.139216,-3.633328;;, + 18;3; -1.438651,-0.139216,-3.633328;;, + 19;3; -1.438651,-0.139216,-3.633328;;, + 20;3; -1.438651,-0.139216,-3.633328;;, + 21;3; -1.438651,-0.139216,-3.633328;;, + 22;3; -1.438651,-0.139216,-3.633328;;, + 23;3; -1.438651,-0.139216,-3.633328;;, + 24;3; -1.438651,-0.139216,-3.633328;;, + 25;3; -1.438651,-0.139216,-3.633328;;, + 26;3; -1.438651,-0.139216,-3.633328;;, + 27;3; -1.438651,-0.139216,-3.633328;;, + 28;3; -1.438651,-0.139216,-3.633328;;, + 29;3; -1.438651,-0.139216,-3.633328;;, + 30;3; -1.438651,-0.139216,-3.633328;;, + 31;3; -1.438651,-0.139216,-3.633328;;, + 32;3; -1.438651,-0.139216,-3.633328;;, + 33;3; -1.438651,-0.139216,-3.633328;;, + 34;3; -1.438651,-0.139216,-3.633328;;, + 35;3; -1.438651,-0.139216,-3.633328;;, + 36;3; -1.438651,-0.139216,-3.633328;;, + 37;3; -1.438651,-0.139216,-3.633328;;, + 38;3; -1.438651,-0.139216,-3.633328;;, + 39;3; -1.438651,-0.139216,-3.633328;;, + 40;3; -1.438651,-0.139216,-3.633328;;, + 41;3; -1.438651,-0.139216,-3.633328;;, + 42;3; -1.438651,-0.139216,-3.633328;;, + 43;3; -1.438651,-0.139216,-3.633328;;, + 44;3; -1.438651,-0.139216,-3.633328;;, + 45;3; -1.438651,-0.139216,-3.633328;;, + 46;3; -1.438651,-0.139216,-3.633328;;, + 47;3; -1.438651,-0.139216,-3.633328;;, + 48;3; -1.438651,-0.139216,-3.633328;;, + 49;3; -1.438651,-0.139216,-3.633328;;, + 50;3; -1.438651,-0.139216,-3.633328;;, + 51;3; -1.438651,-0.139216,-3.633328;;, + 52;3; -1.438651,-0.139216,-3.633328;;, + 53;3; -1.438651,-0.139216,-3.633328;;, + 54;3; -1.438651,-0.139216,-3.633328;;, + 55;3; -1.438651,-0.139216,-3.633328;;, + 56;3; -1.438651,-0.139216,-3.633328;;, + 57;3; -1.438651,-0.139216,-3.633328;;, + 58;3; -1.438651,-0.139216,-3.633328;;, + 59;3; -1.438651,-0.139216,-3.633328;;, + 60;3; -1.438651,-0.139216,-3.633328;;, + 61;3; -1.438651,-0.139216,-3.633328;;, + 62;3; -1.438651,-0.139216,-3.633328;;, + 63;3; -1.438651,-0.139216,-3.633328;;, + 64;3; -1.438651,-0.139216,-3.633328;;, + 65;3; -1.438651,-0.139216,-3.633328;;, + 66;3; -1.438651,-0.139216,-3.633328;;, + 67;3; -1.438651,-0.139216,-3.633328;;, + 68;3; -1.438651,-0.139216,-3.633328;;, + 69;3; -1.438651,-0.139216,-3.633328;;, + 70;3; -1.438651,-0.139216,-3.633328;;, + 71;3; -1.438651,-0.139216,-3.633328;;, + 72;3; -1.438651,-0.139216,-3.633328;;, + 73;3; -1.438651,-0.139216,-3.633328;;, + 74;3; -1.438651,-0.139216,-3.633328;;, + 75;3; -1.438651,-0.139216,-3.633328;;, + 76;3; -1.438651,-0.139216,-3.633328;;, + 77;3; -1.438651,-0.139216,-3.633328;;, + 78;3; -1.438651,-0.139216,-3.633328;;, + 79;3; -1.438651,-0.139216,-3.633328;;, + 80;3; -1.438651,-0.139216,-3.633328;;, + 81;3; -1.438651,-0.139216,-3.633328;;, + 82;3; -1.438651,-0.139216,-3.633328;;, + 83;3; -1.438651,-0.139216,-3.633328;;, + 84;3; -1.438651,-0.139216,-3.633328;;, + 85;3; -1.438651,-0.139216,-3.633328;;, + 86;3; -1.438651,-0.139216,-3.633328;;, + 87;3; -1.438651,-0.139216,-3.633328;;, + 88;3; -1.438651,-0.139216,-3.633328;;, + 89;3; -1.438651,-0.139216,-3.633328;;, + 90;3; -1.438651,-0.139216,-3.633328;;, + 91;3; -1.438651,-0.139216,-3.633328;;, + 92;3; -1.438651,-0.139216,-3.633328;;, + 93;3; -1.438651,-0.139216,-3.633328;;, + 94;3; -1.438651,-0.139216,-3.633328;;, + 95;3; -1.438651,-0.139216,-3.633328;;, + 96;3; -1.438651,-0.139216,-3.633328;;, + 97;3; -1.438651,-0.139216,-3.633328;;, + 98;3; -1.438651,-0.139216,-3.633328;;, + 99;3; -1.438651,-0.139216,-3.633328;;, + 100;3; -1.438651,-0.139216,-3.633328;;; + } + AnimationKey { //Rotation + 0; + 101; + 0;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 1;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 2;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 3;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 4;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 5;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 6;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 7;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 8;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 9;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 10;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 11;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 12;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 13;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 14;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 15;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 16;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 17;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 18;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 19;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 20;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 21;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 22;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 23;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 24;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 25;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 26;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 27;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 28;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 29;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 30;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 31;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 32;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 33;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 34;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 35;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 36;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 37;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 38;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 39;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 40;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 41;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 42;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 43;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 44;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 45;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 46;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 47;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 48;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 49;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 50;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 51;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 52;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 53;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 54;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 55;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 56;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 57;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 58;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 59;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 60;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 61;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 62;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 63;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 64;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 65;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 66;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 67;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 68;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 69;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 70;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 71;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 72;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 73;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 74;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 75;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 76;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 77;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 78;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 79;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 80;4; -0.000000, 1.000000, 0.000000,-0.000000;;, + 81;4; -0.023017, 0.996971,-0.000000,-0.000000;;, + 82;4; -0.087830, 0.988440,-0.000000,-0.000000;;, + 83;4; -0.171026, 0.977486,-0.000000,-0.000000;;, + 84;4; -0.235816, 0.968955,-0.000000,-0.000000;;, + 85;4; -0.258819, 0.965926,-0.000000,-0.000000;;, + 86;4; -0.247344, 0.965926,-0.000000,-0.000000;;, + 87;4; -0.212807, 0.965926,-0.000000,-0.000000;;, + 88;4; -0.156652, 0.965926,-0.000000,-0.000000;;, + 89;4; -0.083204, 0.965926,-0.000000,-0.000000;;, + 90;4; -0.000000, 0.965926,-0.000000,-0.000000;;, + 91;4; 0.083204, 0.965926, 0.000000,-0.000000;;, + 92;4; 0.156652, 0.965926, 0.000000,-0.000000;;, + 93;4; 0.212807, 0.965926, 0.000000,-0.000000;;, + 94;4; 0.247343, 0.965926, 0.000000,-0.000000;;, + 95;4; 0.258819, 0.965926, 0.000000,-0.000000;;, + 96;4; 0.235815, 0.968955, 0.000000,-0.000000;;, + 97;4; 0.171026, 0.977486, 0.000000,-0.000000;;, + 98;4; 0.087830, 0.988440, 0.000000,-0.000000;;, + 99;4; 0.023017, 0.996971, 0.000000,-0.000000;;, + 100;4; -0.000000, 1.000000, 0.000000,-0.000000;;; + } + AnimationKey { //Scale + 1; + 101; + 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;;; + } + } + Animation { + {Armature_Head} + AnimationKey { //Position + 2; + 101; + 0;3; 0.000000, 4.052526, 3.788038;;, + 1;3; 0.000000, 4.052526, 3.788038;;, + 2;3; 0.000000, 4.052526, 3.788038;;, + 3;3; 0.000000, 4.052526, 3.788038;;, + 4;3; 0.000000, 4.052526, 3.788038;;, + 5;3; 0.000000, 4.052526, 3.788038;;, + 6;3; 0.000000, 4.052526, 3.788038;;, + 7;3; 0.000000, 4.052526, 3.788038;;, + 8;3; 0.000000, 4.052526, 3.788038;;, + 9;3; 0.000000, 4.052526, 3.788038;;, + 10;3; 0.000000, 4.052526, 3.788038;;, + 11;3; 0.000000, 4.052526, 3.788038;;, + 12;3; 0.000000, 4.052526, 3.788038;;, + 13;3; 0.000000, 4.052526, 3.788038;;, + 14;3; 0.000000, 4.052526, 3.788038;;, + 15;3; 0.000000, 4.052526, 3.788038;;, + 16;3; 0.000000, 4.052526, 3.788038;;, + 17;3; 0.000000, 4.052526, 3.788038;;, + 18;3; 0.000000, 4.052526, 3.788038;;, + 19;3; 0.000000, 4.052526, 3.788038;;, + 20;3; 0.000000, 4.052526, 3.788038;;, + 21;3; 0.000000, 4.052526, 3.788038;;, + 22;3; 0.000000, 4.052526, 3.788038;;, + 23;3; 0.000000, 4.052526, 3.788038;;, + 24;3; 0.000000, 4.052526, 3.788038;;, + 25;3; 0.000000, 4.052526, 3.788038;;, + 26;3; 0.000000, 4.052526, 3.788038;;, + 27;3; 0.000000, 4.052526, 3.788038;;, + 28;3; 0.000000, 4.052526, 3.788038;;, + 29;3; 0.000000, 4.052526, 3.788038;;, + 30;3; 0.000000, 4.052526, 3.788038;;, + 31;3; 0.000000, 4.052526, 3.788038;;, + 32;3; 0.000000, 4.052526, 3.788038;;, + 33;3; 0.000000, 4.052526, 3.788038;;, + 34;3; 0.000000, 4.052526, 3.788038;;, + 35;3; 0.000000, 4.052526, 3.788038;;, + 36;3; 0.000000, 4.052526, 3.788038;;, + 37;3; 0.000000, 4.052526, 3.788038;;, + 38;3; 0.000000, 4.052526, 3.788038;;, + 39;3; 0.000000, 4.052526, 3.788038;;, + 40;3; 0.000000, 4.052526, 3.788038;;, + 41;3; 0.000000, 4.052526, 3.788038;;, + 42;3; 0.000000, 4.052526, 3.788038;;, + 43;3; 0.000000, 4.052526, 3.788038;;, + 44;3; 0.000000, 4.052526, 3.788038;;, + 45;3; 0.000000, 4.052526, 3.788038;;, + 46;3; 0.000000, 4.052526, 3.788038;;, + 47;3; 0.000000, 4.052526, 3.788038;;, + 48;3; 0.000000, 4.052526, 3.788038;;, + 49;3; 0.000000, 4.052526, 3.788038;;, + 50;3; 0.000000, 4.052526, 3.788038;;, + 51;3; 0.000000, 4.052526, 3.788038;;, + 52;3; 0.000000, 4.052526, 3.788038;;, + 53;3; 0.000000, 4.052526, 3.788038;;, + 54;3; 0.000000, 4.052526, 3.788038;;, + 55;3; 0.000000, 4.052526, 3.788038;;, + 56;3; 0.000000, 4.052526, 3.788038;;, + 57;3; 0.000000, 4.052526, 3.788038;;, + 58;3; 0.000000, 4.052526, 3.788038;;, + 59;3; 0.000000, 4.052526, 3.788038;;, + 60;3; 0.000000, 4.052526, 3.788038;;, + 61;3; 0.000000, 4.052526, 3.788038;;, + 62;3; 0.000000, 4.052526, 3.788038;;, + 63;3; 0.000000, 4.052526, 3.788038;;, + 64;3; 0.000000, 4.052526, 3.788038;;, + 65;3; 0.000000, 4.052526, 3.788038;;, + 66;3; 0.000000, 4.052526, 3.788038;;, + 67;3; 0.000000, 4.052526, 3.788038;;, + 68;3; 0.000000, 4.052526, 3.788038;;, + 69;3; 0.000000, 4.052526, 3.788038;;, + 70;3; 0.000000, 4.052526, 3.788038;;, + 71;3; 0.000000, 4.052526, 3.788038;;, + 72;3; 0.000000, 4.052526, 3.788038;;, + 73;3; 0.000000, 4.052526, 3.788038;;, + 74;3; 0.000000, 4.052526, 3.788038;;, + 75;3; 0.000000, 4.052526, 3.788038;;, + 76;3; 0.000000, 4.052526, 3.788038;;, + 77;3; 0.000000, 4.052526, 3.788038;;, + 78;3; 0.000000, 4.052526, 3.788038;;, + 79;3; 0.000000, 4.052526, 3.788038;;, + 80;3; 0.000000, 4.052526, 3.788038;;, + 81;3; 0.000000, 4.052526, 3.788038;;, + 82;3; 0.000000, 4.052526, 3.788038;;, + 83;3; 0.000000, 4.052526, 3.788038;;, + 84;3; 0.000000, 4.052526, 3.788038;;, + 85;3; 0.000000, 4.052526, 3.788038;;, + 86;3; 0.000000, 4.052526, 3.788038;;, + 87;3; 0.000000, 4.052526, 3.788038;;, + 88;3; 0.000000, 4.052526, 3.788038;;, + 89;3; 0.000000, 4.052526, 3.788038;;, + 90;3; 0.000000, 4.052526, 3.788038;;, + 91;3; 0.000000, 4.052526, 3.788038;;, + 92;3; 0.000000, 4.052526, 3.788038;;, + 93;3; 0.000000, 4.052526, 3.788038;;, + 94;3; 0.000000, 4.052526, 3.788038;;, + 95;3; 0.000000, 4.052526, 3.788038;;, + 96;3; 0.000000, 4.052526, 3.788038;;, + 97;3; 0.000000, 4.052526, 3.788038;;, + 98;3; 0.000000, 4.052526, 3.788038;;, + 99;3; 0.000000, 4.052526, 3.788038;;, + 100;3; 0.000000, 4.052526, 3.788038;;; + } + AnimationKey { //Rotation + 0; + 101; + 0;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 1;4; -0.000000,-0.000000, 0.706989, 0.707223;;, + 2;4; -0.000000,-0.000000, 0.706631, 0.707576;;, + 3;4; -0.000000,-0.000000, 0.706034, 0.708164;;, + 4;4; -0.000000,-0.000000, 0.705202, 0.708983;;, + 5;4; -0.000000,-0.000000, 0.704147, 0.710022;;, + 6;4; -0.000000,-0.000000, 0.702890, 0.711259;;, + 7;4; -0.000000,-0.000000, 0.701461, 0.712663;;, + 8;4; -0.000000,-0.000000, 0.699901, 0.714196;;, + 9;4; -0.000000,-0.000000, 0.698257, 0.715808;;, + 10;4; -0.000000,-0.000000, 0.696584, 0.717447;;, + 11;4; -0.000000,-0.000000, 0.694937, 0.719057;;, + 12;4; -0.000000,-0.000000, 0.693372, 0.720585;;, + 13;4; -0.000000,-0.000000, 0.691936, 0.721982;;, + 14;4; -0.000000,-0.000000, 0.690669, 0.723209;;, + 15;4; -0.000000,-0.000000, 0.689603, 0.724237;;, + 16;4; -0.000000,-0.000000, 0.688758, 0.725043;;, + 17;4; -0.000000,-0.000000, 0.688146, 0.725617;;, + 18;4; -0.000000,-0.000000, 0.687773, 0.725954;;, + 19;4; -0.000000,-0.000000, 0.687638, 0.726054;;, + 20;4; -0.000000,-0.000000, 0.687896, 0.725759;;, + 21;4; -0.000000,-0.000000, 0.688709, 0.724905;;, + 22;4; -0.000000,-0.000000, 0.690081, 0.723488;;, + 23;4; -0.000000,-0.000000, 0.692002, 0.721519;;, + 24;4; -0.000000,-0.000000, 0.694448, 0.719020;;, + 25;4; -0.000000,-0.000000, 0.697377, 0.716035;;, + 26;4; -0.000000,-0.000000, 0.700729, 0.712626;;, + 27;4; -0.000000,-0.000000, 0.704421, 0.708875;;, + 28;4; -0.000000,-0.000000, 0.708352, 0.704885;;, + 29;4; -0.000000,-0.000000, 0.712408, 0.700772;;, + 30;4; -0.000000,-0.000000, 0.716464, 0.696660;;, + 31;4; -0.000000,-0.000000, 0.720399, 0.692673;;, + 32;4; -0.000000,-0.000000, 0.724097, 0.688928;;, + 33;4; -0.000000,-0.000000, 0.727457, 0.685527;;, + 34;4; -0.000000,-0.000000, 0.730396, 0.682552;;, + 35;4; -0.000000,-0.000000, 0.732854, 0.680065;;, + 36;4; -0.000000,-0.000000, 0.734788, 0.678108;;, + 37;4; -0.000000,-0.000000, 0.736174, 0.676706;;, + 38;4; -0.000000,-0.000000, 0.737003, 0.675868;;, + 39;4; -0.000000,-0.000000, 0.737277, 0.675590;;, + 40;4; -0.000000,-0.000000, 0.737111, 0.675764;;, + 41;4; -0.000000,-0.000000, 0.736609, 0.676289;;, + 42;4; -0.000000,-0.000000, 0.735768, 0.677167;;, + 43;4; -0.000000,-0.000000, 0.734596, 0.678392;;, + 44;4; -0.000000,-0.000000, 0.733105, 0.679949;;, + 45;4; -0.000000,-0.000000, 0.731323, 0.681811;;, + 46;4; -0.000000,-0.000000, 0.729285, 0.683939;;, + 47;4; -0.000000,-0.000000, 0.727042, 0.686283;;, + 48;4; -0.000000,-0.000000, 0.724654, 0.688777;;, + 49;4; -0.000000,-0.000000, 0.722192, 0.691349;;, + 50;4; -0.000000,-0.000000, 0.719730, 0.693920;;, + 51;4; -0.000000,-0.000000, 0.717343, 0.696414;;, + 52;4; -0.000000,-0.000000, 0.715099, 0.698758;;, + 53;4; -0.000000,-0.000000, 0.713062, 0.700886;;, + 54;4; -0.000000,-0.000000, 0.711279, 0.702749;;, + 55;4; -0.000000,-0.000000, 0.709789, 0.704305;;, + 56;4; -0.000000,-0.000000, 0.708616, 0.705530;;, + 57;4; -0.000000,-0.000000, 0.707776, 0.706408;;, + 58;4; -0.000000,-0.000000, 0.707273, 0.706933;;, + 59;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 60;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 61;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 62;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 63;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 64;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 65;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 66;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 67;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 68;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 69;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 70;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 71;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 72;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 73;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 74;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 75;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 76;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 77;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 78;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 79;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 80;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 81;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 82;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 83;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 84;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 85;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 86;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 87;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 88;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 89;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 90;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 91;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 92;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 93;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 94;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 95;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 96;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 97;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 98;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 99;4; -0.000000,-0.000000, 0.707107, 0.707107;;, + 100;4; -0.000000,-0.000000, 0.707107, 0.707107;;; + } + AnimationKey { //Scale + 1; + 101; + 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;;; + } + } + Animation { + {sheep_shaved} + AnimationKey { //Position + 2; + 101; + 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;;; + } + AnimationKey { //Rotation + 0; + 101; + 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;;; + } + AnimationKey { //Scale + 1; + 101; + 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;;; + } + } +} //End of AnimationSet diff --git a/mods/mobs/models/mobs_spider.png b/mods/mobs/models/mobs_spider.png new file mode 100644 index 00000000..2b992d13 Binary files /dev/null and b/mods/mobs/models/mobs_spider.png differ diff --git a/mods/mobs/models/mobs_spider.x b/mods/mobs/models/mobs_spider.x new file mode 100644 index 00000000..b0a95ca8 --- /dev/null +++ b/mods/mobs/models/mobs_spider.x @@ -0,0 +1,6110 @@ +xof 0303txt 0032 + +template AnimTicksPerSecond { + <9E415A43-7BA6-4a73-8743-B73D47E88476> + DWORD AnimTicksPerSecond; +} + +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 { + -0.000000, 1.000000, 0.000000, 0.000000, + -1.000000,-0.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + 0.000000, 0.000000, 0.000000, 1.000000;; + } + Frame Armature_Bone { + 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.250000, 0.000000, 0.450000, 1.000000;; + } + Frame Armature_Bone_001 { + FrameTransformMatrix { + 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.550000,-0.000000, 1.000000;; + } + } // End of Armature_Bone_001 + Frame Armature_Bone_002 { + FrameTransformMatrix { + -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,-0.995258, 0.000000, 1.000000;; + } + } // End of Armature_Bone_002 + Frame Armature_Bone_003 { + FrameTransformMatrix { + 0.000000, 1.000000,-0.000000, 0.000000, + -0.000000, 0.000000,-1.000000, 0.000000, + -1.000000, 0.000000, 0.000000, 0.000000, + 0.000000, 1.230000,-0.350000, 1.000000;; + } + } // End of Armature_Bone_003 + Frame Armature_Bone_004 { + FrameTransformMatrix { + -0.000000,-1.000000, 0.000000, 0.000000, + 0.000000,-0.000000, 1.000000, 0.000000, + -1.000000, 0.000000, 0.000000, 0.000000, + 0.000000, 1.230000, 0.350000, 1.000000;; + } + } // End of Armature_Bone_004 + Frame Armature_Bone_005 { + FrameTransformMatrix { + 0.000000, 1.000000,-0.000000, 0.000000, + -0.000000, 0.000000,-1.000000, 0.000000, + -1.000000, 0.000000, 0.000000, 0.000000, + -0.000000, 0.900000,-0.350000, 1.000000;; + } + } // End of Armature_Bone_005 + Frame Armature_Bone_006 { + FrameTransformMatrix { + -0.000000,-1.000000, 0.000000, 0.000000, + 0.000000,-0.000000, 1.000000, 0.000000, + -1.000000, 0.000000, 0.000000, 0.000000, + 0.000000, 0.900000, 0.350000, 1.000000;; + } + } // End of Armature_Bone_006 + Frame Armature_Bone_007 { + FrameTransformMatrix { + 0.000000, 1.000000,-0.000000, 0.000000, + -0.000000, 0.000000,-1.000000, 0.000000, + -1.000000, 0.000000, 0.000000, 0.000000, + -0.000000,-0.230000,-0.350000, 1.000000;; + } + } // End of Armature_Bone_007 + Frame Armature_Bone_008 { + FrameTransformMatrix { + -0.000000,-1.000000, 0.000000, 0.000000, + 0.000000,-0.000000, 1.000000, 0.000000, + -1.000000, 0.000000, 0.000000, 0.000000, + -0.000000,-0.230000, 0.350000, 1.000000;; + } + } // End of Armature_Bone_008 + Frame Armature_Bone_009 { + FrameTransformMatrix { + 0.000000, 1.000000,-0.000000, 0.000000, + -0.000000, 0.000000,-1.000000, 0.000000, + -1.000000, 0.000000, 0.000000, 0.000000, + -0.000000,-0.670000,-0.350000, 1.000000;; + } + } // End of Armature_Bone_009 + Frame Armature_Bone_010 { + FrameTransformMatrix { + -0.000000,-1.000000, 0.000000, 0.000000, + 0.000000,-0.000000, 1.000000, 0.000000, + -1.000000, 0.000000, 0.000000, 0.000000, + -0.000000,-0.670000, 0.350000, 1.000000;; + } + } // End of Armature_Bone_010 + } // End of Armature_Bone + Frame Group8 { + 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 { // Group8 mesh + 396; + -1.021228; 2.035352; 0.360000;, + -0.841228; 0.300332; 0.360000;, + -1.021228; 0.300332; 0.360000;, + -0.841228; 0.300332; 0.360000;, + -1.021228; 2.035352; 0.360000;, + -0.841228; 2.035352; 0.360000;, + -1.021228; 2.035352; 0.360000;, + -0.841228; 2.035352; 0.540000;, + -0.841228; 2.035352; 0.360000;, + -0.841228; 2.035352; 0.540000;, + -1.021228; 2.035352; 0.360000;, + -1.021228; 2.035352; 0.540000;, + -1.021228; 2.035352; 0.360000;, + -1.021228; 0.300332; 0.540000;, + -1.021228; 2.035352; 0.540000;, + -1.021228; 0.300332; 0.540000;, + -1.021228; 2.035352; 0.360000;, + -1.021228; 0.300332; 0.360000;, + -0.841228; 0.300332; 0.360000;, + -1.021228; 0.300332; 0.540000;, + -1.021228; 0.300332; 0.360000;, + -1.021228; 0.300332; 0.540000;, + -0.841228; 0.300332; 0.360000;, + -0.841228; 0.300332; 0.540000;, + -0.841228; 0.300332; 0.360000;, + -0.841228; 2.035352; 0.540000;, + -0.841228; 0.300332; 0.540000;, + -0.841228; 2.035352; 0.540000;, + -0.841228; 0.300332; 0.360000;, + -0.841228; 2.035352; 0.360000;, + -0.841228; 2.035352; 0.540000;, + -1.021228; 0.300332; 0.540000;, + -0.841228; 0.300332; 0.540000;, + -1.021228; 0.300332; 0.540000;, + -0.841228; 2.035352; 0.540000;, + -1.021228; 2.035352; 0.540000;, + -1.246228;-0.499668; 0.900000;, + -2.546228;-0.499668; 0.000000;, + -1.246228;-0.499668; 0.000000;, + -2.546228;-0.499668; 0.000000;, + -1.246228;-0.499668; 0.900000;, + -2.546228;-0.499668; 0.900000;, + -1.246228;-0.499668; 0.900000;, + -2.546228; 0.550332; 0.900000;, + -2.546228;-0.499668; 0.900000;, + -2.546228; 0.550332; 0.900000;, + -1.246228;-0.499668; 0.900000;, + -1.246228; 0.550332; 0.900000;, + -1.246228;-0.499668; 0.900000;, + -1.246228; 0.550332; 0.000000;, + -1.246228; 0.550332; 0.900000;, + -1.246228; 0.550332; 0.000000;, + -1.246228;-0.499668; 0.900000;, + -1.246228;-0.499668; 0.000000;, + -2.546228;-0.499668; 0.000000;, + -1.246228; 0.550332; 0.000000;, + -1.246228;-0.499668; 0.000000;, + -1.246228; 0.550332; 0.000000;, + -2.546228;-0.499668; 0.000000;, + -2.546228; 0.550332; 0.000000;, + -2.546228;-0.499668; 0.000000;, + -2.546228; 0.550332; 0.900000;, + -2.546228; 0.550332; 0.000000;, + -2.546228; 0.550332; 0.900000;, + -2.546228;-0.499668; 0.000000;, + -2.546228;-0.499668; 0.900000;, + -2.546228; 0.550332; 0.900000;, + -1.246228; 0.550332; 0.000000;, + -2.546228; 0.550332; 0.000000;, + -1.246228; 0.550332; 0.000000;, + -2.546228; 0.550332; 0.900000;, + -1.246228; 0.550332; 0.900000;, + -0.581228; 2.035352; 0.360000;, + -0.401228; 0.300332; 0.360000;, + -0.581228; 0.300332; 0.360000;, + -0.401228; 0.300332; 0.360000;, + -0.581228; 2.035352; 0.360000;, + -0.401228; 2.035352; 0.360000;, + -0.581228; 2.035352; 0.360000;, + -0.401228; 2.035352; 0.540000;, + -0.401228; 2.035352; 0.360000;, + -0.401228; 2.035352; 0.540000;, + -0.581228; 2.035352; 0.360000;, + -0.581228; 2.035352; 0.540000;, + -0.581228; 2.035352; 0.360000;, + -0.581228; 0.300332; 0.540000;, + -0.581228; 2.035352; 0.540000;, + -0.581228; 0.300332; 0.540000;, + -0.581228; 2.035352; 0.360000;, + -0.581228; 0.300332; 0.360000;, + -0.401228; 0.300332; 0.360000;, + -0.581228; 0.300332; 0.540000;, + -0.581228; 0.300332; 0.360000;, + -0.581228; 0.300332; 0.540000;, + -0.401228; 0.300332; 0.360000;, + -0.401228; 0.300332; 0.540000;, + -0.401228; 0.300332; 0.360000;, + -0.401228; 2.035352; 0.540000;, + -0.401228; 0.300332; 0.540000;, + -0.401228; 2.035352; 0.540000;, + -0.401228; 0.300332; 0.360000;, + -0.401228; 2.035352; 0.360000;, + -0.401228; 2.035352; 0.540000;, + -0.581228; 0.300332; 0.540000;, + -0.401228; 0.300332; 0.540000;, + -0.581228; 0.300332; 0.540000;, + -0.401228; 2.035352; 0.540000;, + -0.581228; 2.035352; 0.540000;, + 0.481772;-0.349668; 0.800000;, + -0.246228;-0.349668; 0.100000;, + 0.481772;-0.349668; 0.100000;, + -0.246228;-0.349668; 0.100000;, + 0.481772;-0.349668; 0.800000;, + -0.246228;-0.349668; 0.800000;, + 0.481772;-0.349668; 0.800000;, + -0.246228; 0.350332; 0.800000;, + -0.246228;-0.349668; 0.800000;, + -0.246228; 0.350332; 0.800000;, + 0.481772;-0.349668; 0.800000;, + 0.481772; 0.350332; 0.800000;, + 0.481772;-0.349668; 0.800000;, + 0.481772; 0.350332; 0.100000;, + 0.481772; 0.350332; 0.800000;, + 0.481772; 0.350332; 0.100000;, + 0.481772;-0.349668; 0.800000;, + 0.481772;-0.349668; 0.100000;, + -0.246228;-0.349668; 0.100000;, + 0.481772; 0.350332; 0.100000;, + 0.481772;-0.349668; 0.100000;, + 0.481772; 0.350332; 0.100000;, + -0.246228;-0.349668; 0.100000;, + -0.246228; 0.350332; 0.100000;, + -0.246228;-0.349668; 0.100000;, + -0.246228; 0.350332; 0.800000;, + -0.246228; 0.350332; 0.100000;, + -0.246228; 0.350332; 0.800000;, + -0.246228;-0.349668; 0.100000;, + -0.246228;-0.349668; 0.800000;, + -0.246228; 0.350332; 0.800000;, + 0.481772; 0.350332; 0.100000;, + -0.246228; 0.350332; 0.100000;, + 0.481772; 0.350332; 0.100000;, + -0.246228; 0.350332; 0.800000;, + 0.481772; 0.350332; 0.800000;, + 0.558772; 2.035352; 0.360000;, + 0.738772; 0.300332; 0.360000;, + 0.558772; 0.300332; 0.360000;, + 0.738772; 0.300332; 0.360000;, + 0.558772; 2.035352; 0.360000;, + 0.738772; 2.035352; 0.360000;, + 0.558772; 2.035352; 0.360000;, + 0.738772; 2.035352; 0.540000;, + 0.738772; 2.035352; 0.360000;, + 0.738772; 2.035352; 0.540000;, + 0.558772; 2.035352; 0.360000;, + 0.558772; 2.035352; 0.540000;, + 0.558772; 2.035352; 0.360000;, + 0.558772; 0.300332; 0.540000;, + 0.558772; 2.035352; 0.540000;, + 0.558772; 0.300332; 0.540000;, + 0.558772; 2.035352; 0.360000;, + 0.558772; 0.300332; 0.360000;, + 0.738772; 0.300332; 0.360000;, + 0.558772; 0.300332; 0.540000;, + 0.558772; 0.300332; 0.360000;, + 0.558772; 0.300332; 0.540000;, + 0.738772; 0.300332; 0.360000;, + 0.738772; 0.300332; 0.540000;, + 0.738772; 0.300332; 0.360000;, + 0.738772; 2.035352; 0.540000;, + 0.738772; 0.300332; 0.540000;, + 0.738772; 2.035352; 0.540000;, + 0.738772; 0.300332; 0.360000;, + 0.738772; 2.035352; 0.360000;, + 0.738772; 2.035352; 0.540000;, + 0.558772; 0.300332; 0.540000;, + 0.738772; 0.300332; 0.540000;, + 0.558772; 0.300332; 0.540000;, + 0.738772; 2.035352; 0.540000;, + 0.558772; 2.035352; 0.540000;, + -0.581228;-0.299668; 0.360000;, + -0.401228;-2.034688; 0.360000;, + -0.581228;-2.034688; 0.360000;, + -0.401228;-2.034688; 0.360000;, + -0.581228;-0.299668; 0.360000;, + -0.401228;-0.299668; 0.360000;, + -0.581228;-0.299668; 0.360000;, + -0.401228;-0.299668; 0.540000;, + -0.401228;-0.299668; 0.360000;, + -0.401228;-0.299668; 0.540000;, + -0.581228;-0.299668; 0.360000;, + -0.581228;-0.299668; 0.540000;, + -0.581228;-0.299668; 0.360000;, + -0.581228;-2.034688; 0.540000;, + -0.581228;-0.299668; 0.540000;, + -0.581228;-2.034688; 0.540000;, + -0.581228;-0.299668; 0.360000;, + -0.581228;-2.034688; 0.360000;, + -0.401228;-2.034688; 0.360000;, + -0.581228;-2.034688; 0.540000;, + -0.581228;-2.034688; 0.360000;, + -0.581228;-2.034688; 0.540000;, + -0.401228;-2.034688; 0.360000;, + -0.401228;-2.034688; 0.540000;, + -0.401228;-2.034688; 0.360000;, + -0.401228;-0.299668; 0.540000;, + -0.401228;-2.034688; 0.540000;, + -0.401228;-0.299668; 0.540000;, + -0.401228;-2.034688; 0.360000;, + -0.401228;-0.299668; 0.360000;, + -0.401228;-0.299668; 0.540000;, + -0.581228;-2.034688; 0.540000;, + -0.401228;-2.034688; 0.540000;, + -0.581228;-2.034688; 0.540000;, + -0.401228;-0.299668; 0.540000;, + -0.581228;-0.299668; 0.540000;, + 0.558772;-0.299668; 0.360000;, + 0.738772;-2.034688; 0.360000;, + 0.558772;-2.034688; 0.360000;, + 0.738772;-2.034688; 0.360000;, + 0.558772;-0.299668; 0.360000;, + 0.738772;-0.299668; 0.360000;, + 0.558772;-0.299668; 0.360000;, + 0.738772;-0.299668; 0.540000;, + 0.738772;-0.299668; 0.360000;, + 0.738772;-0.299668; 0.540000;, + 0.558772;-0.299668; 0.360000;, + 0.558772;-0.299668; 0.540000;, + 0.558772;-0.299668; 0.360000;, + 0.558772;-2.034688; 0.540000;, + 0.558772;-0.299668; 0.540000;, + 0.558772;-2.034688; 0.540000;, + 0.558772;-0.299668; 0.360000;, + 0.558772;-2.034688; 0.360000;, + 0.738772;-2.034688; 0.360000;, + 0.558772;-2.034688; 0.540000;, + 0.558772;-2.034688; 0.360000;, + 0.558772;-2.034688; 0.540000;, + 0.738772;-2.034688; 0.360000;, + 0.738772;-2.034688; 0.540000;, + 0.738772;-2.034688; 0.360000;, + 0.738772;-0.299668; 0.540000;, + 0.738772;-2.034688; 0.540000;, + 0.738772;-0.299668; 0.540000;, + 0.738772;-2.034688; 0.360000;, + 0.738772;-0.299668; 0.360000;, + 0.738772;-0.299668; 0.540000;, + 0.558772;-2.034688; 0.540000;, + 0.738772;-2.034688; 0.540000;, + 0.558772;-2.034688; 0.540000;, + 0.738772;-0.299668; 0.540000;, + 0.558772;-0.299668; 0.540000;, + -1.021228;-0.299668; 0.360000;, + -0.841228;-2.034688; 0.360000;, + -1.021228;-2.034688; 0.360000;, + -0.841228;-2.034688; 0.360000;, + -1.021228;-0.299668; 0.360000;, + -0.841228;-0.299668; 0.360000;, + -1.021228;-0.299668; 0.360000;, + -0.841228;-0.299668; 0.540000;, + -0.841228;-0.299668; 0.360000;, + -0.841228;-0.299668; 0.540000;, + -1.021228;-0.299668; 0.360000;, + -1.021228;-0.299668; 0.540000;, + -1.021228;-0.299668; 0.360000;, + -1.021228;-2.034688; 0.540000;, + -1.021228;-0.299668; 0.540000;, + -1.021228;-2.034688; 0.540000;, + -1.021228;-0.299668; 0.360000;, + -1.021228;-2.034688; 0.360000;, + -0.841228;-2.034688; 0.360000;, + -1.021228;-2.034688; 0.540000;, + -1.021228;-2.034688; 0.360000;, + -1.021228;-2.034688; 0.540000;, + -0.841228;-2.034688; 0.360000;, + -0.841228;-2.034688; 0.540000;, + -0.841228;-2.034688; 0.360000;, + -0.841228;-0.299668; 0.540000;, + -0.841228;-2.034688; 0.540000;, + -0.841228;-0.299668; 0.540000;, + -0.841228;-2.034688; 0.360000;, + -0.841228;-0.299668; 0.360000;, + -0.841228;-0.299668; 0.540000;, + -1.021228;-2.034688; 0.540000;, + -0.841228;-2.034688; 0.540000;, + -1.021228;-2.034688; 0.540000;, + -0.841228;-0.299668; 0.540000;, + -1.021228;-0.299668; 0.540000;, + 0.898772;-0.299668; 0.360000;, + 1.078772;-2.034688; 0.360000;, + 0.898772;-2.034688; 0.360000;, + 1.078772;-2.034688; 0.360000;, + 0.898772;-0.299668; 0.360000;, + 1.078772;-0.299668; 0.360000;, + 0.898772;-0.299668; 0.360000;, + 1.078772;-0.299668; 0.540000;, + 1.078772;-0.299668; 0.360000;, + 1.078772;-0.299668; 0.540000;, + 0.898772;-0.299668; 0.360000;, + 0.898772;-0.299668; 0.540000;, + 0.898772;-0.299668; 0.360000;, + 0.898772;-2.034688; 0.540000;, + 0.898772;-0.299668; 0.540000;, + 0.898772;-2.034688; 0.540000;, + 0.898772;-0.299668; 0.360000;, + 0.898772;-2.034688; 0.360000;, + 1.078772;-2.034688; 0.360000;, + 0.898772;-2.034688; 0.540000;, + 0.898772;-2.034688; 0.360000;, + 0.898772;-2.034688; 0.540000;, + 1.078772;-2.034688; 0.360000;, + 1.078772;-2.034688; 0.540000;, + 1.078772;-2.034688; 0.360000;, + 1.078772;-0.299668; 0.540000;, + 1.078772;-2.034688; 0.540000;, + 1.078772;-0.299668; 0.540000;, + 1.078772;-2.034688; 0.360000;, + 1.078772;-0.299668; 0.360000;, + 1.078772;-0.299668; 0.540000;, + 0.898772;-2.034688; 0.540000;, + 1.078772;-2.034688; 0.540000;, + 0.898772;-2.034688; 0.540000;, + 1.078772;-0.299668; 0.540000;, + 0.898772;-0.299668; 0.540000;, + 0.898772; 2.035352; 0.360000;, + 1.078772; 0.300332; 0.360000;, + 0.898772; 0.300332; 0.360000;, + 1.078772; 0.300332; 0.360000;, + 0.898772; 2.035352; 0.360000;, + 1.078772; 2.035352; 0.360000;, + 0.898772; 2.035352; 0.360000;, + 1.078772; 2.035352; 0.540000;, + 1.078772; 2.035352; 0.360000;, + 1.078772; 2.035352; 0.540000;, + 0.898772; 2.035352; 0.360000;, + 0.898772; 2.035352; 0.540000;, + 0.898772; 2.035352; 0.360000;, + 0.898772; 0.300332; 0.540000;, + 0.898772; 2.035352; 0.540000;, + 0.898772; 0.300332; 0.540000;, + 0.898772; 2.035352; 0.360000;, + 0.898772; 0.300332; 0.360000;, + 1.078772; 0.300332; 0.360000;, + 0.898772; 0.300332; 0.540000;, + 0.898772; 0.300332; 0.360000;, + 0.898772; 0.300332; 0.540000;, + 1.078772; 0.300332; 0.360000;, + 1.078772; 0.300332; 0.540000;, + 1.078772; 0.300332; 0.360000;, + 1.078772; 2.035352; 0.540000;, + 1.078772; 0.300332; 0.540000;, + 1.078772; 2.035352; 0.540000;, + 1.078772; 0.300332; 0.360000;, + 1.078772; 2.035352; 0.360000;, + 1.078772; 2.035352; 0.540000;, + 0.898772; 0.300332; 0.540000;, + 1.078772; 0.300332; 0.540000;, + 0.898772; 0.300332; 0.540000;, + 1.078772; 2.035352; 0.540000;, + 0.898772; 2.035352; 0.540000;, + 2.153772;-0.424668; 0.875000;, + 1.303772;-0.424668; 0.025000;, + 2.153772;-0.424668; 0.025000;, + 1.303772;-0.424668; 0.025000;, + 2.153772;-0.424668; 0.875000;, + 1.303772;-0.424668; 0.875000;, + 2.153772;-0.424668; 0.875000;, + 1.303772; 0.425332; 0.875000;, + 1.303772;-0.424668; 0.875000;, + 1.303772; 0.425332; 0.875000;, + 2.153772;-0.424668; 0.875000;, + 2.153772; 0.425332; 0.875000;, + 2.153772;-0.424668; 0.875000;, + 2.153772; 0.425332; 0.025000;, + 2.153772; 0.425332; 0.875000;, + 2.153772; 0.425332; 0.025000;, + 2.153772;-0.424668; 0.875000;, + 2.153772;-0.424668; 0.025000;, + 1.303772;-0.424668; 0.025000;, + 2.153772; 0.425332; 0.025000;, + 2.153772;-0.424668; 0.025000;, + 2.153772; 0.425332; 0.025000;, + 1.303772;-0.424668; 0.025000;, + 1.303772; 0.425332; 0.025000;, + 1.303772;-0.424668; 0.025000;, + 1.303772; 0.425332; 0.875000;, + 1.303772; 0.425332; 0.025000;, + 1.303772; 0.425332; 0.875000;, + 1.303772;-0.424668; 0.025000;, + 1.303772;-0.424668; 0.875000;, + 1.303772; 0.425332; 0.875000;, + 2.153772; 0.425332; 0.025000;, + 1.303772; 0.425332; 0.025000;, + 2.153772; 0.425332; 0.025000;, + 1.303772; 0.425332; 0.875000;, + 2.153772; 0.425332; 0.875000;; + 132; + 3;2,1,0;, + 3;5,4,3;, + 3;8,7,6;, + 3;11,10,9;, + 3;14,13,12;, + 3;17,16,15;, + 3;20,19,18;, + 3;23,22,21;, + 3;26,25,24;, + 3;29,28,27;, + 3;32,31,30;, + 3;35,34,33;, + 3;38,37,36;, + 3;41,40,39;, + 3;44,43,42;, + 3;47,46,45;, + 3;50,49,48;, + 3;53,52,51;, + 3;56,55,54;, + 3;59,58,57;, + 3;62,61,60;, + 3;65,64,63;, + 3;68,67,66;, + 3;71,70,69;, + 3;74,73,72;, + 3;77,76,75;, + 3;80,79,78;, + 3;83,82,81;, + 3;86,85,84;, + 3;89,88,87;, + 3;92,91,90;, + 3;95,94,93;, + 3;98,97,96;, + 3;101,100,99;, + 3;104,103,102;, + 3;107,106,105;, + 3;110,109,108;, + 3;113,112,111;, + 3;116,115,114;, + 3;119,118,117;, + 3;122,121,120;, + 3;125,124,123;, + 3;128,127,126;, + 3;131,130,129;, + 3;134,133,132;, + 3;137,136,135;, + 3;140,139,138;, + 3;143,142,141;, + 3;146,145,144;, + 3;149,148,147;, + 3;152,151,150;, + 3;155,154,153;, + 3;158,157,156;, + 3;161,160,159;, + 3;164,163,162;, + 3;167,166,165;, + 3;170,169,168;, + 3;173,172,171;, + 3;176,175,174;, + 3;179,178,177;, + 3;182,181,180;, + 3;185,184,183;, + 3;188,187,186;, + 3;191,190,189;, + 3;194,193,192;, + 3;197,196,195;, + 3;200,199,198;, + 3;203,202,201;, + 3;206,205,204;, + 3;209,208,207;, + 3;212,211,210;, + 3;215,214,213;, + 3;218,217,216;, + 3;221,220,219;, + 3;224,223,222;, + 3;227,226,225;, + 3;230,229,228;, + 3;233,232,231;, + 3;236,235,234;, + 3;239,238,237;, + 3;242,241,240;, + 3;245,244,243;, + 3;248,247,246;, + 3;251,250,249;, + 3;254,253,252;, + 3;257,256,255;, + 3;260,259,258;, + 3;263,262,261;, + 3;266,265,264;, + 3;269,268,267;, + 3;272,271,270;, + 3;275,274,273;, + 3;278,277,276;, + 3;281,280,279;, + 3;284,283,282;, + 3;287,286,285;, + 3;290,289,288;, + 3;293,292,291;, + 3;296,295,294;, + 3;299,298,297;, + 3;302,301,300;, + 3;305,304,303;, + 3;308,307,306;, + 3;311,310,309;, + 3;314,313,312;, + 3;317,316,315;, + 3;320,319,318;, + 3;323,322,321;, + 3;326,325,324;, + 3;329,328,327;, + 3;332,331,330;, + 3;335,334,333;, + 3;338,337,336;, + 3;341,340,339;, + 3;344,343,342;, + 3;347,346,345;, + 3;350,349,348;, + 3;353,352,351;, + 3;356,355,354;, + 3;359,358,357;, + 3;362,361,360;, + 3;365,364,363;, + 3;368,367,366;, + 3;371,370,369;, + 3;374,373,372;, + 3;377,376,375;, + 3;380,379,378;, + 3;383,382,381;, + 3;386,385,384;, + 3;389,388,387;, + 3;392,391,390;, + 3;395,394,393;; + MeshNormals { // Group8 normals + 132; + 0.000000; 0.000000;-1.000000;, + -0.000000;-0.000000;-1.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;, + 0.000000;-1.000000; 0.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; 0.000000; 1.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;, + 1.000000; 0.000000; 0.000000;, + 1.000000;-0.000000; 0.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;, + 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;, + -0.000000; 1.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; 0.000000;, + 1.000000; 0.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; 0.000000; 1.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;, + 0.000000; 0.000000;-1.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; 0.000000;-1.000000;, + -0.000000;-0.000000;-1.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;, + 0.000000;-1.000000; 0.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; 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;, + -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; 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;, + -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; 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;, + -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; 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;, + -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; 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;, + -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; 0.000000;, + 1.000000; 0.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; 0.000000; 1.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;, + 0.000000; 0.000000;-1.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;; + 132; + 3;0,0,0;, + 3;1,1,1;, + 3;2,2,2;, + 3;3,3,3;, + 3;4,4,4;, + 3;5,5,5;, + 3;6,6,6;, + 3;7,7,7;, + 3;8,8,8;, + 3;9,9,9;, + 3;10,10,10;, + 3;11,11,11;, + 3;12,12,12;, + 3;13,13,13;, + 3;14,14,14;, + 3;15,15,15;, + 3;16,16,16;, + 3;17,17,17;, + 3;18,18,18;, + 3;19,19,19;, + 3;20,20,20;, + 3;21,21,21;, + 3;22,22,22;, + 3;23,23,23;, + 3;24,24,24;, + 3;25,25,25;, + 3;26,26,26;, + 3;27,27,27;, + 3;28,28,28;, + 3;29,29,29;, + 3;30,30,30;, + 3;31,31,31;, + 3;32,32,32;, + 3;33,33,33;, + 3;34,34,34;, + 3;35,35,35;, + 3;36,36,36;, + 3;37,37,37;, + 3;38,38,38;, + 3;39,39,39;, + 3;40,40,40;, + 3;41,41,41;, + 3;42,42,42;, + 3;43,43,43;, + 3;44,44,44;, + 3;45,45,45;, + 3;46,46,46;, + 3;47,47,47;, + 3;48,48,48;, + 3;49,49,49;, + 3;50,50,50;, + 3;51,51,51;, + 3;52,52,52;, + 3;53,53,53;, + 3;54,54,54;, + 3;55,55,55;, + 3;56,56,56;, + 3;57,57,57;, + 3;58,58,58;, + 3;59,59,59;, + 3;60,60,60;, + 3;61,61,61;, + 3;62,62,62;, + 3;63,63,63;, + 3;64,64,64;, + 3;65,65,65;, + 3;66,66,66;, + 3;67,67,67;, + 3;68,68,68;, + 3;69,69,69;, + 3;70,70,70;, + 3;71,71,71;, + 3;72,72,72;, + 3;73,73,73;, + 3;74,74,74;, + 3;75,75,75;, + 3;76,76,76;, + 3;77,77,77;, + 3;78,78,78;, + 3;79,79,79;, + 3;80,80,80;, + 3;81,81,81;, + 3;82,82,82;, + 3;83,83,83;, + 3;84,84,84;, + 3;85,85,85;, + 3;86,86,86;, + 3;87,87,87;, + 3;88,88,88;, + 3;89,89,89;, + 3;90,90,90;, + 3;91,91,91;, + 3;92,92,92;, + 3;93,93,93;, + 3;94,94,94;, + 3;95,95,95;, + 3;96,96,96;, + 3;97,97,97;, + 3;98,98,98;, + 3;99,99,99;, + 3;100,100,100;, + 3;101,101,101;, + 3;102,102,102;, + 3;103,103,103;, + 3;104,104,104;, + 3;105,105,105;, + 3;106,106,106;, + 3;107,107,107;, + 3;108,108,108;, + 3;109,109,109;, + 3;110,110,110;, + 3;111,111,111;, + 3;112,112,112;, + 3;113,113,113;, + 3;114,114,114;, + 3;115,115,115;, + 3;116,116,116;, + 3;117,117,117;, + 3;118,118,118;, + 3;119,119,119;, + 3;120,120,120;, + 3;121,121,121;, + 3;122,122,122;, + 3;123,123,123;, + 3;124,124,124;, + 3;125,125,125;, + 3;126,126,126;, + 3;127,127,127;, + 3;128,128,128;, + 3;129,129,129;, + 3;130,130,130;, + 3;131,131,131;; + } // End of Group8 normals + MeshTextureCoords { // Group8 UV coordinates + 396; + 0.791890; 0.042023;, + 0.769813; 0.261376;, + 0.792562; 0.261306;, + 0.769813; 0.261376;, + 0.791890; 0.042023;, + 0.769140; 0.042093;, + 0.654039; 0.687069;, + 0.631220; 0.664389;, + 0.631290; 0.687139;, + 0.631220; 0.664389;, + 0.654039; 0.687069;, + 0.653970; 0.664319;, + 0.840589; 0.506007;, + 0.818513; 0.286654;, + 0.817840; 0.505937;, + 0.818513; 0.286654;, + 0.840589; 0.506007;, + 0.841262; 0.286723;, + 0.761662; 0.579451;, + 0.738843; 0.602130;, + 0.761592; 0.602200;, + 0.738843; 0.602130;, + 0.761662; 0.579451;, + 0.738912; 0.579381;, + 0.889289; 0.261376;, + 0.867212; 0.042023;, + 0.866540; 0.261306;, + 0.867212; 0.042023;, + 0.889289; 0.261376;, + 0.889962; 0.042093;, + 0.915912; 0.261376;, + 0.937989; 0.042023;, + 0.915239; 0.042093;, + 0.937989; 0.042023;, + 0.915912; 0.261376;, + 0.938662; 0.261306;, + 0.175538; 0.625391;, + 0.291573; 0.794100;, + 0.292089; 0.625748;, + 0.291573; 0.794100;, + 0.175538; 0.625391;, + 0.175022; 0.793742;, + 0.016501; 0.983071;, + 0.154432; 0.813366;, + 0.017022; 0.812944;, + 0.154432; 0.813366;, + 0.016501; 0.983071;, + 0.153910; 0.983492;, + 0.330007; 0.992934;, + 0.452425; 0.850997;, + 0.330444; 0.850622;, + 0.452425; 0.850997;, + 0.330007; 0.992934;, + 0.451989; 0.993308;, + 0.312934; 0.813407;, + 0.174973; 0.985292;, + 0.313460; 0.984867;, + 0.174973; 0.985292;, + 0.312934; 0.813407;, + 0.174447; 0.813831;, + 0.436312; 0.657161;, + 0.316831; 0.795693;, + 0.435886; 0.796059;, + 0.316831; 0.795693;, + 0.436312; 0.657161;, + 0.317258; 0.656796;, + 0.033508; 0.622901;, + 0.154544; 0.796589;, + 0.154010; 0.622532;, + 0.154544; 0.796589;, + 0.033508; 0.622901;, + 0.034042; 0.796959;, + 0.623041; 0.391917;, + 0.646463; 0.172704;, + 0.623714; 0.172634;, + 0.646463; 0.172704;, + 0.623041; 0.391917;, + 0.645790; 0.391987;, + 0.569101; 0.820105;, + 0.546281; 0.797425;, + 0.546351; 0.820174;, + 0.546281; 0.797425;, + 0.569101; 0.820105;, + 0.569031; 0.797355;, + 0.333405; 0.388448;, + 0.311328; 0.169095;, + 0.310655; 0.388379;, + 0.311328; 0.169095;, + 0.333405; 0.388448;, + 0.334078; 0.169165;, + 0.750233; 0.664389;, + 0.727414; 0.687069;, + 0.750163; 0.687139;, + 0.727414; 0.687069;, + 0.750233; 0.664389;, + 0.727483; 0.664320;, + 0.079845; 0.356852;, + 0.057769; 0.137499;, + 0.057096; 0.356782;, + 0.057769; 0.137499;, + 0.079845; 0.356852;, + 0.080518; 0.137569;, + 0.743863; 0.286723;, + 0.720440; 0.505937;, + 0.743190; 0.506007;, + 0.720440; 0.505937;, + 0.743863; 0.286723;, + 0.721113; 0.286654;, + 0.049423; 0.374174;, + 0.137611; 0.466455;, + 0.137893; 0.374445;, + 0.137611; 0.466455;, + 0.049423; 0.374174;, + 0.049141; 0.466183;, + 0.174944; 0.469990;, + 0.263132; 0.377710;, + 0.174662; 0.377981;, + 0.263132; 0.377710;, + 0.174944; 0.469990;, + 0.263415; 0.469719;, + 0.580273; 0.622991;, + 0.670973; 0.532845;, + 0.580550; 0.532567;, + 0.670973; 0.532845;, + 0.580273; 0.622991;, + 0.670696; 0.623268;, + 0.529615; 0.406926;, + 0.440862; 0.498664;, + 0.529333; 0.498935;, + 0.440862; 0.498664;, + 0.529615; 0.406926;, + 0.441145; 0.406654;, + 0.638413; 0.497521;, + 0.550214; 0.408779;, + 0.549943; 0.497250;, + 0.550214; 0.408779;, + 0.638413; 0.497521;, + 0.638685; 0.409050;, + 0.313837; 0.406042;, + 0.402590; 0.497780;, + 0.402308; 0.405770;, + 0.402590; 0.497780;, + 0.313837; 0.406042;, + 0.314120; 0.498051;, + 0.122426; 0.356782;, + 0.145849; 0.137569;, + 0.123099; 0.137499;, + 0.145849; 0.137569;, + 0.122426; 0.356782;, + 0.145176; 0.356852;, + 0.605943; 0.687069;, + 0.583123; 0.664389;, + 0.583193; 0.687139;, + 0.583123; 0.664389;, + 0.605943; 0.687069;, + 0.605873; 0.664319;, + 0.398735; 0.388448;, + 0.376659; 0.169095;, + 0.375986; 0.388379;, + 0.376659; 0.169095;, + 0.398735; 0.388448;, + 0.399408; 0.169165;, + 0.702136; 0.735166;, + 0.679317; 0.712486;, + 0.679387; 0.735236;, + 0.679317; 0.712486;, + 0.702136; 0.735166;, + 0.702066; 0.712416;, + 0.259206; 0.356852;, + 0.237129; 0.137499;, + 0.236457; 0.356782;, + 0.237129; 0.137499;, + 0.259206; 0.356852;, + 0.259879; 0.137569;, + 0.771603; 0.768078;, + 0.748180; 0.987291;, + 0.770930; 0.987361;, + 0.748180; 0.987291;, + 0.771603; 0.768078;, + 0.748853; 0.768008;, + 0.796880; 0.987291;, + 0.820302; 0.768078;, + 0.797553; 0.768008;, + 0.820302; 0.768078;, + 0.796880; 0.987291;, + 0.819630; 0.987361;, + 0.654039; 0.712486;, + 0.631220; 0.735166;, + 0.653970; 0.735236;, + 0.631220; 0.735166;, + 0.654039; 0.712486;, + 0.631290; 0.712416;, + 0.531771; 0.388448;, + 0.509694; 0.169095;, + 0.509021; 0.388379;, + 0.509694; 0.169095;, + 0.531771; 0.388448;, + 0.532444; 0.169165;, + 0.521004; 0.820105;, + 0.498185; 0.797425;, + 0.498254; 0.820174;, + 0.498185; 0.797425;, + 0.521004; 0.820105;, + 0.520934; 0.797355;, + 0.965729; 0.987361;, + 0.943652; 0.768008;, + 0.942979; 0.987291;, + 0.943652; 0.768008;, + 0.965729; 0.987361;, + 0.966402; 0.768078;, + 0.171799; 0.356852;, + 0.193876; 0.137499;, + 0.171126; 0.137569;, + 0.193876; 0.137499;, + 0.171799; 0.356852;, + 0.194548; 0.356782;, + 0.557721; 0.391917;, + 0.581143; 0.172704;, + 0.558394; 0.172634;, + 0.581143; 0.172704;, + 0.557721; 0.391917;, + 0.580471; 0.391987;, + 0.798330; 0.687069;, + 0.775510; 0.664389;, + 0.775580; 0.687139;, + 0.775510; 0.664389;, + 0.798330; 0.687069;, + 0.798260; 0.664320;, + 0.937989; 0.506007;, + 0.915912; 0.286654;, + 0.915239; 0.505937;, + 0.915912; 0.286654;, + 0.937989; 0.506007;, + 0.938662; 0.286723;, + 0.713565; 0.554034;, + 0.690746; 0.531354;, + 0.690816; 0.554103;, + 0.690746; 0.531354;, + 0.713565; 0.554034;, + 0.713495; 0.531284;, + 0.840589; 0.261376;, + 0.818513; 0.042023;, + 0.817840; 0.261306;, + 0.818513; 0.042023;, + 0.840589; 0.261376;, + 0.841262; 0.042093;, + 0.722903; 0.768078;, + 0.699481; 0.987291;, + 0.722230; 0.987361;, + 0.699481; 0.987291;, + 0.722903; 0.768078;, + 0.700153; 0.768008;, + 0.791890; 0.286654;, + 0.769813; 0.506007;, + 0.792562; 0.505937;, + 0.769813; 0.506007;, + 0.791890; 0.286654;, + 0.769140; 0.286723;, + 0.750233; 0.735166;, + 0.727414; 0.712486;, + 0.727483; 0.735236;, + 0.727414; 0.712486;, + 0.750233; 0.735166;, + 0.750163; 0.712416;, + 0.868329; 0.987361;, + 0.846253; 0.768008;, + 0.845580; 0.987292;, + 0.846253; 0.768008;, + 0.868329; 0.987361;, + 0.869002; 0.768078;, + 0.761662; 0.531354;, + 0.738843; 0.554034;, + 0.761592; 0.554103;, + 0.738843; 0.554034;, + 0.761662; 0.531354;, + 0.738912; 0.531284;, + 0.694490; 0.261376;, + 0.672413; 0.042023;, + 0.671741; 0.261306;, + 0.672413; 0.042023;, + 0.694490; 0.261376;, + 0.695163; 0.042093;, + 0.964612; 0.261376;, + 0.986689; 0.042023;, + 0.963939; 0.042093;, + 0.986689; 0.042023;, + 0.964612; 0.261376;, + 0.987361; 0.261306;, + 0.671741; 0.505937;, + 0.695163; 0.286723;, + 0.672413; 0.286654;, + 0.695163; 0.286723;, + 0.671741; 0.505937;, + 0.694490; 0.506007;, + 0.679387; 0.664320;, + 0.702066; 0.687139;, + 0.702136; 0.664389;, + 0.702066; 0.687139;, + 0.679387; 0.664320;, + 0.679317; 0.687069;, + 0.889289; 0.506007;, + 0.867212; 0.286654;, + 0.866540; 0.505937;, + 0.867212; 0.286654;, + 0.889289; 0.506007;, + 0.889962; 0.286723;, + 0.583193; 0.712416;, + 0.605873; 0.735236;, + 0.605943; 0.712486;, + 0.605873; 0.735236;, + 0.583193; 0.712416;, + 0.583123; 0.735166;, + 0.743190; 0.261376;, + 0.721113; 0.042023;, + 0.720440; 0.261306;, + 0.721113; 0.042023;, + 0.743190; 0.261376;, + 0.743863; 0.042093;, + 0.625504; 0.768078;, + 0.602081; 0.987292;, + 0.624831; 0.987361;, + 0.602081; 0.987292;, + 0.625504; 0.768078;, + 0.602754; 0.768008;, + 0.986689; 0.286654;, + 0.964612; 0.506006;, + 0.987361; 0.505937;, + 0.964612; 0.506006;, + 0.986689; 0.286654;, + 0.963939; 0.286723;, + 0.472907; 0.820105;, + 0.450088; 0.797425;, + 0.450158; 0.820174;, + 0.450088; 0.797425;, + 0.472907; 0.820105;, + 0.472837; 0.797355;, + 0.447435; 0.388448;, + 0.425358; 0.169095;, + 0.424686; 0.388379;, + 0.425358; 0.169095;, + 0.447435; 0.388448;, + 0.448108; 0.169165;, + 0.713565; 0.597276;, + 0.690746; 0.619956;, + 0.713495; 0.620026;, + 0.690746; 0.619956;, + 0.713565; 0.597276;, + 0.690816; 0.597207;, + 0.917029; 0.987361;, + 0.894952; 0.768008;, + 0.894280; 0.987292;, + 0.894952; 0.768008;, + 0.917029; 0.987361;, + 0.917702; 0.768078;, + 0.651454; 0.987361;, + 0.673531; 0.768008;, + 0.650781; 0.768078;, + 0.673531; 0.768008;, + 0.651454; 0.987361;, + 0.674203; 0.987291;, + 0.171126; 0.607116;, + 0.278884; 0.500017;, + 0.171456; 0.499687;, + 0.278884; 0.500017;, + 0.171126; 0.607116;, + 0.278555; 0.607445;, + 0.561052; 0.780245;, + 0.453953; 0.657919;, + 0.453623; 0.779871;, + 0.453953; 0.657919;, + 0.561052; 0.780245;, + 0.561381; 0.658294;, + 0.440634; 0.530577;, + 0.560163; 0.638335;, + 0.560531; 0.530906;, + 0.560163; 0.638335;, + 0.440634; 0.530577;, + 0.440266; 0.638005;, + 0.469375; 0.879603;, + 0.576474; 0.987361;, + 0.576804; 0.879933;, + 0.576474; 0.987361;, + 0.469375; 0.879603;, + 0.469046; 0.987032;, + 0.145519; 0.607445;, + 0.038420; 0.499687;, + 0.038090; 0.607116;, + 0.038420; 0.499687;, + 0.145519; 0.607445;, + 0.145849; 0.500017;, + 0.418084; 0.531284;, + 0.310985; 0.639042;, + 0.418413; 0.638712;, + 0.310985; 0.639042;, + 0.418084; 0.531284;, + 0.310655; 0.531613;; + } // End of Group8 UV coordinates + MeshMaterialList { // Group8 material list + 1; + 132; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 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 FrontCol { + 0.800000; 0.800000; 0.800000; 1.000000;; + 96.078431; + 0.164706; 0.164706; 0.164706;; + 0.000000; 0.000000; 0.000000;; + } + } // End of Group8 material list + XSkinMeshHeader { + 1; + 3; + 11; + } + SkinWeights { + "Armature_Bone_010"; + 36; + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 263, + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + 287; + 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,-1.000000,-0.000000, 0.000000, + -0.000000,-0.000000, 1.000000, 0.000000, + -0.920000,-0.350000,-0.450000, 1.000000;; + } // End of Armature_Bone_010 skin weights + SkinWeights { + "Armature_Bone_008"; + 36; + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215; + 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,-1.000000,-0.000000, 0.000000, + -0.000000,-0.000000, 1.000000, 0.000000, + -0.480000,-0.350000,-0.450000, 1.000000;; + } // End of Armature_Bone_008 skin weights + SkinWeights { + "Armature_Bone_009"; + 36; + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35; + 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, 1.000000,-0.000000, 0.000000, + -0.000000, 0.000000, 1.000000, 0.000000, + 0.920000,-0.350000,-0.450000, 1.000000;; + } // End of Armature_Bone_009 skin weights + SkinWeights { + "Armature_Bone"; + 36; + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 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, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.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, + 0.450000, 0.250000,-0.000000, 1.000000;; + } // End of Armature_Bone skin weights + SkinWeights { + "Armature_Bone_001"; + 36; + 360, + 361, + 362, + 363, + 364, + 365, + 366, + 367, + 368, + 369, + 370, + 371, + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, + 381, + 382, + 383, + 384, + 385, + 386, + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395; + 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, 1.000000, 0.000000, 0.000000, + -1.000000, 0.000000, 0.000000, 0.000000, + 0.000000,-0.000000, 1.000000, 0.000000, + -0.000000,-1.300000,-0.450000, 1.000000;; + } // End of Armature_Bone_001 skin weights + SkinWeights { + "Armature_Bone_002"; + 36; + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71; + 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,-1.000000,-0.000000, 0.000000, + 1.000000,-0.000000, 0.000000, 0.000000, + -0.000000, 0.000000, 1.000000, 0.000000, + -0.000000,-1.245258,-0.450000, 1.000000;; + } // End of Armature_Bone_002 skin weights + SkinWeights { + "Armature_Bone_003"; + 36; + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333, + 334, + 335, + 336, + 337, + 338, + 339, + 340, + 341, + 342, + 343, + 344, + 345, + 346, + 347, + 348, + 349, + 350, + 351, + 352, + 353, + 354, + 355, + 356, + 357, + 358, + 359; + 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, 1.000000,-0.000000, 0.000000, + -0.000000, 0.000000, 1.000000, 0.000000, + -0.980000,-0.350000,-0.450000, 1.000000;; + } // End of Armature_Bone_003 skin weights + SkinWeights { + "Armature_Bone_004"; + 36; + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 320, + 321, + 322, + 323; + 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,-1.000000,-0.000000, 0.000000, + -0.000000,-0.000000, 1.000000, 0.000000, + 0.980000,-0.350000,-0.450000, 1.000000;; + } // End of Armature_Bone_004 skin weights + SkinWeights { + "Armature_Bone_005"; + 36; + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179; + 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, 1.000000,-0.000000, 0.000000, + -0.000000, 0.000000, 1.000000, 0.000000, + -0.650000,-0.350000,-0.450000, 1.000000;; + } // End of Armature_Bone_005 skin weights + SkinWeights { + "Armature_Bone_006"; + 36; + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251; + 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,-1.000000,-0.000000, 0.000000, + -0.000000,-0.000000, 1.000000, 0.000000, + 0.650000,-0.350000,-0.450000, 1.000000;; + } // End of Armature_Bone_006 skin weights + SkinWeights { + "Armature_Bone_007"; + 36; + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107; + 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, 1.000000,-0.000000, 0.000000, + -0.000000, 0.000000, 1.000000, 0.000000, + 0.480000,-0.350000,-0.450000, 1.000000;; + } // End of Armature_Bone_007 skin weights + } // End of Group8 mesh + } // End of Group8 + } // End of Armature +} // End of Root +AnimTicksPerSecond { + 24; +} +AnimationSet Global { + Animation { + {Armature} + AnimationKey { // Rotation + 0; + 91; + 0;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 1;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 2;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 3;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 4;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 5;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 6;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 7;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 8;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 9;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 10;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 11;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 12;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 13;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 14;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 15;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 16;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 17;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 18;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 19;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 20;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 21;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 22;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 23;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 24;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 25;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 26;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 27;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 28;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 29;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 30;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 31;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 32;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 33;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 34;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 35;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 36;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 37;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 38;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 39;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 40;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 41;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 42;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 43;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 44;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 45;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 46;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 47;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 48;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 49;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 50;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 51;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 52;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 53;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 54;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 55;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 56;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 57;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 58;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 59;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 60;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 61;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 62;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 63;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 64;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 65;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 66;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 67;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 68;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 69;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 70;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 71;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 72;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 73;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 74;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 75;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 76;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 77;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 78;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 79;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 80;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 81;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 82;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 83;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 84;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 85;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 86;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 87;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 88;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 89;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 90;4;-0.707107, 0.000000, 0.000000, 0.707107;;; + } + AnimationKey { // Scale + 1; + 91; + 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;;; + } + AnimationKey { // Position + 2; + 91; + 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;;; + } + } + Animation { + {Armature_Bone} + AnimationKey { // Rotation + 0; + 91; + 0;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 1;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 2;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 3;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 4;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 5;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 6;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 7;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 8;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 9;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 10;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 11;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 12;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 13;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 14;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 15;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 16;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 17;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 18;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 19;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 20;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 21;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 22;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 23;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 24;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 25;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 26;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 27;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 28;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 29;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 30;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 31;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 32;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 33;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 34;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 35;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 36;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 37;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 38;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 39;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 40;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 41;4;-0.499506, 0.499506, 0.500473,-0.500473;;, + 42;4;-0.498019, 0.498019, 0.501896,-0.501896;;, + 43;4;-0.495602, 0.495601, 0.504211,-0.504211;;, + 44;4;-0.492439, 0.492439, 0.507238,-0.507238;;, + 45;4;-0.488857, 0.488857, 0.510667,-0.510667;;, + 46;4;-0.485275, 0.485275, 0.514096,-0.514096;;, + 47;4;-0.482113, 0.482113, 0.517123,-0.517123;;, + 48;4;-0.479695, 0.479695, 0.519437,-0.519437;;, + 49;4;-0.478209, 0.478208, 0.520861,-0.520861;;, + 50;4;-0.477714, 0.477714, 0.521334,-0.521334;;, + 51;4;-0.478682, 0.478681, 0.520367,-0.520367;;, + 52;4;-0.481592, 0.481592, 0.517456,-0.517457;;, + 53;4;-0.486324, 0.486324, 0.512725,-0.512725;;, + 54;4;-0.492513, 0.492513, 0.506535,-0.506535;;, + 55;4;-0.499524, 0.499524, 0.499524,-0.499524;;, + 56;4;-0.506535, 0.506535, 0.492513,-0.492513;;, + 57;4;-0.512725, 0.512725, 0.486324,-0.486324;;, + 58;4;-0.517457, 0.517456, 0.481592,-0.481592;;, + 59;4;-0.520367, 0.520367, 0.478681,-0.478681;;, + 60;4;-0.521334, 0.521334, 0.477714,-0.477714;;, + 61;4;-0.521286, 0.521286, 0.477768,-0.477768;;, + 62;4;-0.521135, 0.521135, 0.477934,-0.477934;;, + 63;4;-0.520874, 0.520874, 0.478222,-0.478222;;, + 64;4;-0.520494, 0.520494, 0.478639,-0.478639;;, + 65;4;-0.519987, 0.519987, 0.479193,-0.479193;;, + 66;4;-0.519348, 0.519348, 0.479888,-0.479888;;, + 67;4;-0.518574, 0.518574, 0.480726,-0.480726;;, + 68;4;-0.517665, 0.517665, 0.481706,-0.481706;;, + 69;4;-0.516623, 0.516623, 0.482823,-0.482823;;, + 70;4;-0.515456, 0.515456, 0.484068,-0.484068;;, + 71;4;-0.514175, 0.514175, 0.485426,-0.485426;;, + 72;4;-0.512794, 0.512794, 0.486883,-0.486883;;, + 73;4;-0.511327, 0.511327, 0.488420,-0.488420;;, + 74;4;-0.509793, 0.509793, 0.490019,-0.490019;;, + 75;4;-0.508208, 0.508208, 0.491660,-0.491660;;, + 76;4;-0.506587, 0.506587, 0.493328,-0.493328;;, + 77;4;-0.504945, 0.504945, 0.495007,-0.495007;;, + 78;4;-0.503293, 0.503293, 0.496685,-0.496686;;, + 79;4;-0.501642, 0.501642, 0.498352,-0.498352;;, + 80;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 81;4;-0.498096, 0.498096, 0.501883,-0.501883;;, + 82;4;-0.495674, 0.495674, 0.504242,-0.504242;;, + 83;4;-0.492810, 0.492810, 0.507002,-0.507002;;, + 84;4;-0.489661, 0.489661, 0.510016,-0.510016;;, + 85;4;-0.486463, 0.486462, 0.513062,-0.513062;;, + 86;4;-0.483491, 0.483491, 0.515880,-0.515880;;, + 87;4;-0.481000, 0.481000, 0.518236,-0.518236;;, + 88;4;-0.479167, 0.479167, 0.519965,-0.519965;;, + 89;4;-0.478071, 0.478071, 0.520998,-0.520998;;, + 90;4;-0.477714, 0.477714, 0.521334,-0.521334;;; + } + AnimationKey { // Scale + 1; + 91; + 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;;; + } + AnimationKey { // Position + 2; + 91; + 0;3;-0.250000, 0.000000, 0.450000;;, + 1;3;-0.250000, 0.000000, 0.450000;;, + 2;3;-0.250000, 0.000000, 0.450000;;, + 3;3;-0.250000, 0.000000, 0.450000;;, + 4;3;-0.250000, 0.000000, 0.450000;;, + 5;3;-0.250000, 0.000000, 0.450000;;, + 6;3;-0.250000, 0.000000, 0.450000;;, + 7;3;-0.250000, 0.000000, 0.450000;;, + 8;3;-0.250000, 0.000000, 0.450000;;, + 9;3;-0.250000, 0.000000, 0.450000;;, + 10;3;-0.250000, 0.000000, 0.450000;;, + 11;3;-0.250000, 0.000000, 0.450000;;, + 12;3;-0.250000, 0.000000, 0.450000;;, + 13;3;-0.250000, 0.000000, 0.450000;;, + 14;3;-0.250000, 0.000000, 0.450000;;, + 15;3;-0.250000, 0.000000, 0.450000;;, + 16;3;-0.250000, 0.000000, 0.450000;;, + 17;3;-0.250000, 0.000000, 0.450000;;, + 18;3;-0.250000, 0.000000, 0.450000;;, + 19;3;-0.250000, 0.000000, 0.450000;;, + 20;3;-0.250000, 0.000000, 0.450000;;, + 21;3;-0.250000, 0.000000, 0.450000;;, + 22;3;-0.250000, 0.000000, 0.450000;;, + 23;3;-0.250000, 0.000000, 0.450000;;, + 24;3;-0.250000, 0.000000, 0.450000;;, + 25;3;-0.250000, 0.000000, 0.450000;;, + 26;3;-0.250000, 0.000000, 0.450000;;, + 27;3;-0.250000, 0.000000, 0.450000;;, + 28;3;-0.250000, 0.000000, 0.450000;;, + 29;3;-0.250000, 0.000000, 0.450000;;, + 30;3;-0.250000, 0.000000, 0.450000;;, + 31;3;-0.250000, 0.000000, 0.450000;;, + 32;3;-0.250000, 0.000000, 0.450000;;, + 33;3;-0.250000, 0.000000, 0.450000;;, + 34;3;-0.250000, 0.000000, 0.450000;;, + 35;3;-0.250000, 0.000000, 0.450000;;, + 36;3;-0.250000, 0.000000, 0.450000;;, + 37;3;-0.250000, 0.000000, 0.450000;;, + 38;3;-0.250000, 0.000000, 0.450000;;, + 39;3;-0.250000, 0.000000, 0.450000;;, + 40;3;-0.250000, 0.000000, 0.450000;;, + 41;3;-0.256652,-0.000000, 0.450000;;, + 42;3;-0.276671,-0.000000, 0.450000;;, + 43;3;-0.309217,-0.000000, 0.450000;;, + 44;3;-0.351785,-0.000000, 0.450000;;, + 45;3;-0.400005,-0.000000, 0.450000;;, + 46;3;-0.448223,-0.000000, 0.450000;;, + 47;3;-0.490788,-0.000000, 0.450000;;, + 48;3;-0.523332,-0.000000, 0.450000;;, + 49;3;-0.543349,-0.000000, 0.450000;;, + 50;3;-0.550000, 0.000000, 0.450000;;, + 51;3;-0.538915, 0.000000, 0.450665;;, + 52;3;-0.505555, 0.000000, 0.452667;;, + 53;3;-0.451317, 0.000000, 0.455921;;, + 54;3;-0.380379, 0.000000, 0.460178;;, + 55;3;-0.300018, 0.000000, 0.465000;;, + 56;3;-0.219653, 0.000000, 0.469822;;, + 57;3;-0.148705, 0.000000, 0.474079;;, + 58;3;-0.094456, 0.000000, 0.477333;;, + 59;3;-0.061088, 0.000000, 0.479335;;, + 60;3;-0.050000, 0.000000, 0.480000;;, + 61;3;-0.050255, 0.000000, 0.479835;;, + 62;3;-0.051081, 0.000000, 0.479335;;, + 63;3;-0.052583, 0.000000, 0.478499;;, + 64;3;-0.054869, 0.000000, 0.477333;;, + 65;3;-0.058060, 0.000000, 0.475851;;, + 66;3;-0.062274, 0.000000, 0.474079;;, + 67;3;-0.067628, 0.000000, 0.472053;;, + 68;3;-0.074226, 0.000000, 0.469822;;, + 69;3;-0.082149, 0.000000, 0.467448;;, + 70;3;-0.091450, 0.000000, 0.465000;;, + 71;3;-0.102149, 0.000000, 0.462552;;, + 72;3;-0.114226, 0.000000, 0.460178;;, + 73;3;-0.127628, 0.000000, 0.457947;;, + 74;3;-0.142274, 0.000000, 0.455921;;, + 75;3;-0.158060, 0.000000, 0.454149;;, + 76;3;-0.174869, 0.000000, 0.452667;;, + 77;3;-0.192583, 0.000000, 0.451501;;, + 78;3;-0.211082, 0.000000, 0.450665;;, + 79;3;-0.230255,-0.000000, 0.450165;;, + 80;3;-0.250000,-0.000000, 0.450000;;, + 81;3;-0.273894,-0.000000, 0.450000;;, + 82;3;-0.305344,-0.000000, 0.450000;;, + 83;3;-0.343336,-0.000000, 0.450000;;, + 84;3;-0.385731,-0.000000, 0.450000;;, + 85;3;-0.429259,-0.000000, 0.450000;;, + 86;3;-0.470015,-0.000000, 0.450000;;, + 87;3;-0.504371,-0.000000, 0.450000;;, + 88;3;-0.529776,-0.000000, 0.450000;;, + 89;3;-0.545022,-0.000000, 0.450000;;, + 90;3;-0.550000, 0.000000, 0.450000;;; + } + } + Animation { + {Armature_Bone_001} + AnimationKey { // Rotation + 0; + 91; + 0;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 1;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 2;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 3;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 4;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 5;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 6;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 7;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 8;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 9;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 10;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 11;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 12;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 13;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 14;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 15;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 16;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 17;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 18;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 19;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 20;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 21;4;-0.707085,-0.001645,-0.707085, 0.001645;;, + 22;4;-0.707025,-0.006280,-0.707025, 0.006280;;, + 23;4;-0.706947,-0.012230,-0.706947, 0.012230;;, + 24;4;-0.706886,-0.016865,-0.706886, 0.016865;;, + 25;4;-0.706865,-0.018510,-0.706865, 0.018510;;, + 26;4;-0.706886,-0.017462,-0.706886, 0.017462;;, + 27;4;-0.706947,-0.014250,-0.706947, 0.014249;;, + 28;4;-0.707025,-0.009423,-0.707025, 0.009423;;, + 29;4;-0.707085,-0.004300,-0.707085, 0.004300;;, + 30;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 31;4;-0.707085, 0.004299,-0.707085,-0.004300;;, + 32;4;-0.707025, 0.009423,-0.707025,-0.009423;;, + 33;4;-0.706947, 0.014249,-0.706947,-0.014249;;, + 34;4;-0.706886, 0.017462,-0.706886,-0.017462;;, + 35;4;-0.706865, 0.018510,-0.706865,-0.018510;;, + 36;4;-0.706886, 0.016864,-0.706886,-0.016865;;, + 37;4;-0.706947, 0.012230,-0.706947,-0.012230;;, + 38;4;-0.707025, 0.006280,-0.707025,-0.006280;;, + 39;4;-0.707085, 0.001645,-0.707085,-0.001645;;, + 40;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 41;4;-0.707092, 0.000684,-0.707092, 0.000684;;, + 42;4;-0.707047, 0.002742,-0.707047, 0.002742;;, + 43;4;-0.706974, 0.006088,-0.706974, 0.006088;;, + 44;4;-0.706879, 0.010464,-0.706879, 0.010464;;, + 45;4;-0.706770, 0.015422,-0.706770, 0.015422;;, + 46;4;-0.706662, 0.020379,-0.706662, 0.020380;;, + 47;4;-0.706567, 0.024756,-0.706567, 0.024756;;, + 48;4;-0.706494, 0.028102,-0.706494, 0.028102;;, + 49;4;-0.706449, 0.030160,-0.706449, 0.030160;;, + 50;4;-0.706434, 0.030843,-0.706434, 0.030844;;, + 51;4;-0.706434, 0.030843,-0.706434, 0.030844;;, + 52;4;-0.706434, 0.030843,-0.706434, 0.030844;;, + 53;4;-0.706434, 0.030843,-0.706434, 0.030844;;, + 54;4;-0.706434, 0.030843,-0.706434, 0.030844;;, + 55;4;-0.706434, 0.030843,-0.706434, 0.030844;;, + 56;4;-0.706434, 0.030843,-0.706434, 0.030844;;, + 57;4;-0.706434, 0.030843,-0.706434, 0.030844;;, + 58;4;-0.706434, 0.030843,-0.706434, 0.030844;;, + 59;4;-0.706434, 0.030843,-0.706434, 0.030844;;, + 60;4;-0.706434, 0.030843,-0.706434, 0.030844;;, + 61;4;-0.706438, 0.030673,-0.706438, 0.030674;;, + 62;4;-0.706449, 0.030160,-0.706449, 0.030160;;, + 63;4;-0.706468, 0.029301,-0.706468, 0.029301;;, + 64;4;-0.706494, 0.028102,-0.706494, 0.028102;;, + 65;4;-0.706527, 0.026578,-0.706527, 0.026578;;, + 66;4;-0.706567, 0.024756,-0.706567, 0.024756;;, + 67;4;-0.706612, 0.022673,-0.706612, 0.022673;;, + 68;4;-0.706662, 0.020379,-0.706662, 0.020380;;, + 69;4;-0.706716, 0.017939,-0.706716, 0.017939;;, + 70;4;-0.706770, 0.015422,-0.706770, 0.015422;;, + 71;4;-0.706825, 0.012905,-0.706825, 0.012905;;, + 72;4;-0.706879, 0.010464,-0.706879, 0.010464;;, + 73;4;-0.706929, 0.008171,-0.706929, 0.008171;;, + 74;4;-0.706974, 0.006088,-0.706974, 0.006088;;, + 75;4;-0.707014, 0.004265,-0.707014, 0.004265;;, + 76;4;-0.707047, 0.002742,-0.707047, 0.002742;;, + 77;4;-0.707073, 0.001543,-0.707073, 0.001543;;, + 78;4;-0.707092, 0.000684,-0.707092, 0.000684;;, + 79;4;-0.707103, 0.000170,-0.707103, 0.000170;;, + 80;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 81;4;-0.707092, 0.000684,-0.707092, 0.000684;;, + 82;4;-0.707047, 0.002742,-0.707047, 0.002742;;, + 83;4;-0.706974, 0.006088,-0.706974, 0.006088;;, + 84;4;-0.706879, 0.010464,-0.706879, 0.010464;;, + 85;4;-0.706770, 0.015422,-0.706770, 0.015422;;, + 86;4;-0.706662, 0.020379,-0.706662, 0.020379;;, + 87;4;-0.706567, 0.024756,-0.706567, 0.024756;;, + 88;4;-0.706494, 0.028102,-0.706494, 0.028102;;, + 89;4;-0.706449, 0.030160,-0.706449, 0.030160;;, + 90;4;-0.706434, 0.030843,-0.706434, 0.030844;;; + } + AnimationKey { // Scale + 1; + 91; + 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;;; + } + AnimationKey { // Position + 2; + 91; + 0;3;-0.000000, 0.650000, 0.000000;;, + 1;3;-0.000000, 0.650000, 0.000000;;, + 2;3;-0.000000, 0.650000, 0.000000;;, + 3;3;-0.000000, 0.650000, 0.000000;;, + 4;3;-0.000000, 0.650000, 0.000000;;, + 5;3;-0.000000, 0.650000, 0.000000;;, + 6;3;-0.000000, 0.650000, 0.000000;;, + 7;3;-0.000000, 0.650000, 0.000000;;, + 8;3;-0.000000, 0.650000, 0.000000;;, + 9;3;-0.000000, 0.650000, 0.000000;;, + 10;3;-0.000000, 0.650000, 0.000000;;, + 11;3;-0.000000, 0.650000, 0.000000;;, + 12;3;-0.000000, 0.650000, 0.000000;;, + 13;3;-0.000000, 0.650000, 0.000000;;, + 14;3;-0.000000, 0.650000, 0.000000;;, + 15;3;-0.000000, 0.650000, 0.000000;;, + 16;3;-0.000000, 0.650000, 0.000000;;, + 17;3;-0.000000, 0.650000, 0.000000;;, + 18;3;-0.000000, 0.650000, 0.000000;;, + 19;3;-0.000000, 0.650000, 0.000000;;, + 20;3;-0.000000, 0.650000, 0.000000;;, + 21;3;-0.000000, 0.650000, 0.000000;;, + 22;3;-0.000000, 0.650000, 0.000000;;, + 23;3;-0.000000, 0.650000, 0.000000;;, + 24;3;-0.000000, 0.650000, 0.000000;;, + 25;3;-0.000000, 0.650000, 0.000000;;, + 26;3;-0.000000, 0.650000, 0.000000;;, + 27;3;-0.000000, 0.650000, 0.000000;;, + 28;3;-0.000000, 0.650000, 0.000000;;, + 29;3;-0.000000, 0.650000, 0.000000;;, + 30;3;-0.000000, 0.650000, 0.000000;;, + 31;3;-0.000000, 0.650000, 0.000000;;, + 32;3;-0.000000, 0.650000, 0.000000;;, + 33;3;-0.000000, 0.650000, 0.000000;;, + 34;3;-0.000000, 0.650000, 0.000000;;, + 35;3;-0.000000, 0.650000, 0.000000;;, + 36;3;-0.000000, 0.650000, 0.000000;;, + 37;3;-0.000000, 0.650000, 0.000000;;, + 38;3;-0.000000, 0.650000, 0.000000;;, + 39;3;-0.000000, 0.650000, 0.000000;;, + 40;3;-0.000000, 0.650000, 0.000000;;, + 41;3; 0.000000, 0.650000, 0.000000;;, + 42;3; 0.000000, 0.650000, 0.000000;;, + 43;3; 0.000000, 0.650000, 0.000000;;, + 44;3;-0.000000, 0.650000, 0.000000;;, + 45;3;-0.000000, 0.650000, 0.000000;;, + 46;3;-0.000000, 0.650000,-0.000000;;, + 47;3; 0.000000, 0.650000, 0.000000;;, + 48;3; 0.000000, 0.650000,-0.000000;;, + 49;3; 0.000000, 0.650000,-0.000000;;, + 50;3; 0.000000, 0.650000,-0.000000;;, + 51;3; 0.000000, 0.650000,-0.000000;;, + 52;3;-0.000000, 0.650000, 0.000000;;, + 53;3; 0.000000, 0.650000,-0.000000;;, + 54;3;-0.000000, 0.650000,-0.000000;;, + 55;3;-0.000000, 0.650000,-0.000000;;, + 56;3; 0.000000, 0.650000,-0.000000;;, + 57;3; 0.000000, 0.650000,-0.000000;;, + 58;3;-0.000000, 0.650000,-0.000000;;, + 59;3; 0.000000, 0.650000,-0.000000;;, + 60;3;-0.000000, 0.650000,-0.000000;;, + 61;3; 0.000000, 0.650000,-0.000000;;, + 62;3;-0.000000, 0.650000, 0.000000;;, + 63;3; 0.000000, 0.650000,-0.000000;;, + 64;3; 0.000000, 0.650000, 0.000000;;, + 65;3;-0.000000, 0.650000, 0.000000;;, + 66;3;-0.000000, 0.650000,-0.000000;;, + 67;3;-0.000000, 0.650000,-0.000000;;, + 68;3;-0.000000, 0.650000, 0.000000;;, + 69;3;-0.000000, 0.650000,-0.000000;;, + 70;3;-0.000000, 0.650000, 0.000000;;, + 71;3; 0.000000, 0.650000,-0.000000;;, + 72;3;-0.000000, 0.650000,-0.000000;;, + 73;3;-0.000000, 0.650000,-0.000000;;, + 74;3;-0.000000, 0.650000, 0.000000;;, + 75;3; 0.000000, 0.650000, 0.000000;;, + 76;3;-0.000000, 0.650000,-0.000000;;, + 77;3;-0.000000, 0.650000, 0.000000;;, + 78;3; 0.000000, 0.650000,-0.000000;;, + 79;3;-0.000000, 0.650000, 0.000000;;, + 80;3;-0.000000, 0.650000, 0.000000;;, + 81;3;-0.000000, 0.650000, 0.000000;;, + 82;3;-0.000000, 0.650000, 0.000000;;, + 83;3; 0.000000, 0.650000,-0.000000;;, + 84;3;-0.000000, 0.650000, 0.000000;;, + 85;3; 0.000000, 0.650000,-0.000000;;, + 86;3;-0.000000, 0.650000, 0.000000;;, + 87;3;-0.000000, 0.650000,-0.000000;;, + 88;3; 0.000000, 0.650000,-0.000000;;, + 89;3; 0.000000, 0.650000,-0.000000;;, + 90;3; 0.000000, 0.650000,-0.000000;;; + } + } + Animation { + {Armature_Bone_002} + AnimationKey { // Rotation + 0; + 91; + 0;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 1;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 2;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 3;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 4;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 5;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 6;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 7;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 8;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 9;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 10;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 11;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 12;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 13;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 14;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 15;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 16;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 17;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 18;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 19;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 20;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 21;4; 0.001645,-0.707085, 0.001645, 0.707085;;, + 22;4; 0.006280,-0.707025, 0.006280, 0.707025;;, + 23;4; 0.012230,-0.706947, 0.012230, 0.706947;;, + 24;4; 0.016865,-0.706886, 0.016865, 0.706886;;, + 25;4; 0.018510,-0.706864, 0.018510, 0.706865;;, + 26;4; 0.017462,-0.706886, 0.017462, 0.706886;;, + 27;4; 0.014249,-0.706947, 0.014250, 0.706947;;, + 28;4; 0.009423,-0.707025, 0.009423, 0.707025;;, + 29;4; 0.004300,-0.707085, 0.004300, 0.707085;;, + 30;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 31;4;-0.004299,-0.707085,-0.004299, 0.707085;;, + 32;4;-0.009423,-0.707025,-0.009423, 0.707025;;, + 33;4;-0.014249,-0.706947,-0.014249, 0.706947;;, + 34;4;-0.017462,-0.706886,-0.017462, 0.706886;;, + 35;4;-0.018510,-0.706864,-0.018510, 0.706865;;, + 36;4;-0.016865,-0.706886,-0.016864, 0.706886;;, + 37;4;-0.012230,-0.706947,-0.012230, 0.706947;;, + 38;4;-0.006280,-0.707025,-0.006280, 0.707025;;, + 39;4;-0.001645,-0.707085,-0.001645, 0.707085;;, + 40;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 41;4; 0.001366,-0.707047,-0.001366, 0.707047;;, + 42;4; 0.005478,-0.706868,-0.005478, 0.706868;;, + 43;4; 0.012164,-0.706576,-0.012164, 0.706576;;, + 44;4; 0.020908,-0.706194,-0.020908, 0.706194;;, + 45;4; 0.030814,-0.705761,-0.030814, 0.705762;;, + 46;4; 0.040720,-0.705329,-0.040720, 0.705329;;, + 47;4; 0.049465,-0.704947,-0.049465, 0.704947;;, + 48;4; 0.056150,-0.704655,-0.056150, 0.704655;;, + 49;4; 0.060262,-0.704476,-0.060262, 0.704476;;, + 50;4; 0.061628,-0.704416,-0.061628, 0.704416;;, + 51;4; 0.060262,-0.704476,-0.060262, 0.704476;;, + 52;4; 0.056150,-0.704655,-0.056150, 0.704655;;, + 53;4; 0.049465,-0.704947,-0.049465, 0.704947;;, + 54;4; 0.040720,-0.705329,-0.040720, 0.705329;;, + 55;4; 0.030814,-0.705761,-0.030814, 0.705762;;, + 56;4; 0.020908,-0.706194,-0.020908, 0.706194;;, + 57;4; 0.012164,-0.706576,-0.012164, 0.706576;;, + 58;4; 0.005478,-0.706868,-0.005478, 0.706868;;, + 59;4; 0.001366,-0.707047,-0.001366, 0.707047;;, + 60;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 61;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 62;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 63;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 64;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 65;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 66;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 67;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 68;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 69;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 70;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 71;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 72;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 73;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 74;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 75;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 76;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 77;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 78;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 79;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 80;4; 0.000000,-0.707107, 0.000000, 0.707107;;, + 81;4; 0.001366,-0.707047,-0.001366, 0.707047;;, + 82;4; 0.005478,-0.706868,-0.005478, 0.706868;;, + 83;4; 0.012164,-0.706576,-0.012164, 0.706576;;, + 84;4; 0.020908,-0.706194,-0.020908, 0.706194;;, + 85;4; 0.030814,-0.705761,-0.030814, 0.705762;;, + 86;4; 0.040720,-0.705329,-0.040720, 0.705329;;, + 87;4; 0.049464,-0.704947,-0.049464, 0.704947;;, + 88;4; 0.056150,-0.704655,-0.056150, 0.704655;;, + 89;4; 0.060262,-0.704476,-0.060262, 0.704476;;, + 90;4; 0.061628,-0.704416,-0.061628, 0.704416;;; + } + AnimationKey { // Scale + 1; + 91; + 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;;; + } + AnimationKey { // Position + 2; + 91; + 0;3;-0.000000, 0.104742,-0.000000;;, + 1;3;-0.000000, 0.104742,-0.000000;;, + 2;3;-0.000000, 0.104742,-0.000000;;, + 3;3;-0.000000, 0.104742,-0.000000;;, + 4;3;-0.000000, 0.104742,-0.000000;;, + 5;3;-0.000000, 0.104742,-0.000000;;, + 6;3;-0.000000, 0.104742,-0.000000;;, + 7;3;-0.000000, 0.104742,-0.000000;;, + 8;3;-0.000000, 0.104742,-0.000000;;, + 9;3;-0.000000, 0.104742,-0.000000;;, + 10;3;-0.000000, 0.104742,-0.000000;;, + 11;3;-0.000000, 0.104742,-0.000000;;, + 12;3;-0.000000, 0.104742,-0.000000;;, + 13;3;-0.000000, 0.104742,-0.000000;;, + 14;3;-0.000000, 0.104742,-0.000000;;, + 15;3;-0.000000, 0.104742,-0.000000;;, + 16;3;-0.000000, 0.104742,-0.000000;;, + 17;3;-0.000000, 0.104742,-0.000000;;, + 18;3;-0.000000, 0.104742,-0.000000;;, + 19;3;-0.000000, 0.104742,-0.000000;;, + 20;3;-0.000000, 0.104742,-0.000000;;, + 21;3;-0.000000, 0.104742,-0.000000;;, + 22;3;-0.000000, 0.104742,-0.000000;;, + 23;3;-0.000000, 0.104742,-0.000000;;, + 24;3;-0.000000, 0.104742,-0.000000;;, + 25;3;-0.000000, 0.104742,-0.000000;;, + 26;3;-0.000000, 0.104742,-0.000000;;, + 27;3;-0.000000, 0.104742,-0.000000;;, + 28;3;-0.000000, 0.104742,-0.000000;;, + 29;3;-0.000000, 0.104742,-0.000000;;, + 30;3;-0.000000, 0.104742,-0.000000;;, + 31;3;-0.000000, 0.104742,-0.000000;;, + 32;3;-0.000000, 0.104742,-0.000000;;, + 33;3;-0.000000, 0.104742,-0.000000;;, + 34;3;-0.000000, 0.104742,-0.000000;;, + 35;3;-0.000000, 0.104742,-0.000000;;, + 36;3;-0.000000, 0.104742,-0.000000;;, + 37;3;-0.000000, 0.104742,-0.000000;;, + 38;3;-0.000000, 0.104742,-0.000000;;, + 39;3;-0.000000, 0.104742,-0.000000;;, + 40;3;-0.000000, 0.104742,-0.000000;;, + 41;3;-0.000000, 0.104742,-0.000000;;, + 42;3;-0.000000, 0.104742,-0.000000;;, + 43;3;-0.000000, 0.104742,-0.000000;;, + 44;3;-0.000000, 0.104742, 0.000000;;, + 45;3;-0.000000, 0.104742, 0.000000;;, + 46;3;-0.000000, 0.104742, 0.000000;;, + 47;3;-0.000000, 0.104742,-0.000000;;, + 48;3;-0.000000, 0.104742,-0.000000;;, + 49;3;-0.000000, 0.104742,-0.000000;;, + 50;3;-0.000000, 0.104742,-0.000000;;, + 51;3;-0.000000, 0.104742,-0.000000;;, + 52;3;-0.000000, 0.104742,-0.000000;;, + 53;3;-0.000000, 0.104742,-0.000000;;, + 54;3;-0.000000, 0.104742,-0.000000;;, + 55;3;-0.000000, 0.104742,-0.000000;;, + 56;3;-0.000000, 0.104742,-0.000000;;, + 57;3;-0.000000, 0.104742, 0.000000;;, + 58;3;-0.000000, 0.104742,-0.000000;;, + 59;3;-0.000000, 0.104742,-0.000000;;, + 60;3;-0.000000, 0.104742,-0.000000;;, + 61;3;-0.000000, 0.104742,-0.000000;;, + 62;3;-0.000000, 0.104742, 0.000000;;, + 63;3;-0.000000, 0.104742,-0.000000;;, + 64;3;-0.000000, 0.104742,-0.000000;;, + 65;3;-0.000000, 0.104742,-0.000000;;, + 66;3;-0.000000, 0.104742,-0.000000;;, + 67;3;-0.000000, 0.104742, 0.000000;;, + 68;3;-0.000000, 0.104742,-0.000000;;, + 69;3;-0.000000, 0.104742,-0.000000;;, + 70;3;-0.000000, 0.104742,-0.000000;;, + 71;3;-0.000000, 0.104742,-0.000000;;, + 72;3;-0.000000, 0.104742,-0.000000;;, + 73;3;-0.000000, 0.104742,-0.000000;;, + 74;3;-0.000000, 0.104742,-0.000000;;, + 75;3;-0.000000, 0.104742, 0.000000;;, + 76;3;-0.000000, 0.104742,-0.000000;;, + 77;3;-0.000000, 0.104742, 0.000000;;, + 78;3;-0.000000, 0.104742,-0.000000;;, + 79;3;-0.000000, 0.104742,-0.000000;;, + 80;3;-0.000000, 0.104742,-0.000000;;, + 81;3;-0.000000, 0.104742,-0.000000;;, + 82;3;-0.000000, 0.104742,-0.000000;;, + 83;3;-0.000000, 0.104742,-0.000000;;, + 84;3;-0.000000, 0.104742,-0.000000;;, + 85;3;-0.000000, 0.104742,-0.000000;;, + 86;3;-0.000000, 0.104742,-0.000000;;, + 87;3;-0.000000, 0.104742,-0.000000;;, + 88;3;-0.000000, 0.104742,-0.000000;;, + 89;3;-0.000000, 0.104742,-0.000000;;, + 90;3;-0.000000, 0.104742,-0.000000;;; + } + } + Animation { + {Armature_Bone_003} + AnimationKey { // Rotation + 0; + 91; + 0;4;-0.521372,-0.373562,-0.717607, 0.271409;;, + 1;4;-0.521372,-0.373562,-0.717607, 0.271409;;, + 2;4;-0.521720,-0.372975,-0.717828, 0.270623;;, + 3;4;-0.522772,-0.371198,-0.718497, 0.268245;;, + 4;4;-0.524529,-0.368229,-0.719615, 0.264272;;, + 5;4;-0.526978,-0.364092,-0.721173, 0.258737;;, + 6;4;-0.530082,-0.358848,-0.723148, 0.251720;;, + 7;4;-0.533779,-0.352602,-0.725500, 0.243363;;, + 8;4;-0.537979,-0.345506,-0.728172, 0.233868;;, + 9;4;-0.542564,-0.337759,-0.731089, 0.223503;;, + 10;4;-0.547392,-0.329604,-0.734159, 0.212591;;, + 11;4;-0.552301,-0.321309,-0.737283, 0.201492;;, + 12;4;-0.557128,-0.313154,-0.740354, 0.190580;;, + 13;4;-0.561713,-0.305408,-0.743270, 0.180215;;, + 14;4;-0.565913,-0.298312,-0.745942, 0.170720;;, + 15;4;-0.569610,-0.292066,-0.748294, 0.162363;;, + 16;4;-0.572714,-0.286823,-0.750268, 0.155347;;, + 17;4;-0.575163,-0.282686,-0.751826, 0.149811;;, + 18;4;-0.576920,-0.279716,-0.752944, 0.145838;;, + 19;4;-0.577972,-0.277940,-0.753613, 0.143461;;, + 20;4;-0.578320,-0.277352,-0.753834, 0.142675;;, + 21;4;-0.576627,-0.280156,-0.752890, 0.146237;;, + 22;4;-0.571448,-0.288742,-0.749983, 0.157172;;, + 23;4;-0.563701,-0.301608,-0.745583, 0.173632;;, + 24;4;-0.555528,-0.315215,-0.740860, 0.191158;;, + 25;4;-0.548739,-0.326564,-0.736827, 0.205935;;, + 26;4;-0.541934,-0.337929,-0.732811, 0.220696;;, + 27;4;-0.533807,-0.351491,-0.728041, 0.238268;;, + 28;4;-0.526369,-0.364047,-0.723332, 0.255037;;, + 29;4;-0.521920,-0.371903,-0.719696, 0.266701;;, + 30;4;-0.521372,-0.373562,-0.717607, 0.271409;;, + 31;4;-0.532218,-0.367504,-0.710577, 0.272070;;, + 32;4;-0.560598,-0.352141,-0.693602, 0.270643;;, + 33;4;-0.597293,-0.330912,-0.673316, 0.266052;;, + 34;4;-0.627395,-0.310427,-0.659430, 0.258134;;, + 35;4;-0.641170,-0.295651,-0.657655, 0.247754;;, + 36;4;-0.639448,-0.286484,-0.669021, 0.229826;;, + 37;4;-0.625575,-0.281662,-0.692470, 0.200783;;, + 38;4;-0.604942,-0.280181,-0.720988, 0.169433;;, + 39;4;-0.586986,-0.279490,-0.743709, 0.147873;;, + 40;4;-0.578320,-0.277352,-0.753834, 0.142675;;, + 41;4;-0.574801,-0.274652,-0.756772, 0.147268;;, + 42;4;-0.570734,-0.273188,-0.759001, 0.154621;;, + 43;4;-0.566146,-0.273163,-0.760382, 0.164665;;, + 44;4;-0.561133,-0.274717,-0.760810, 0.177022;;, + 45;4;-0.555865,-0.277866,-0.760245, 0.190947;;, + 46;4;-0.550567,-0.282455,-0.758748, 0.205409;;, + 47;4;-0.545468,-0.288185,-0.756475, 0.219327;;, + 48;4;-0.540745,-0.294692,-0.753632, 0.231814;;, + 49;4;-0.536503,-0.301636,-0.750423, 0.242310;;, + 50;4;-0.532782,-0.308746,-0.747016, 0.250572;;, + 51;4;-0.528397,-0.317047,-0.743526, 0.257785;;, + 52;4;-0.522205,-0.327623,-0.740018, 0.265075;;, + 53;4;-0.514426,-0.340152,-0.736573, 0.272232;;, + 54;4;-0.505542,-0.353969,-0.733301, 0.278967;;, + 55;4;-0.496301,-0.368064,-0.730328, 0.284949;;, + 56;4;-0.487609,-0.381238,-0.727769, 0.289874;;, + 57;4;-0.480314,-0.392384,-0.725694, 0.293546;;, + 58;4;-0.475022,-0.400732,-0.724122, 0.295908;;, + 59;4;-0.472031,-0.405927,-0.723024, 0.297027;;, + 60;4;-0.471380,-0.407950,-0.722347, 0.297040;;, + 61;4;-0.472005,-0.408360,-0.721822, 0.296528;;, + 62;4;-0.472912,-0.408603,-0.721227, 0.295965;;, + 63;4;-0.474113,-0.408659,-0.720567, 0.295341;;, + 64;4;-0.475616,-0.408507,-0.719854, 0.294648;;, + 65;4;-0.477422,-0.408126,-0.719101, 0.293879;;, + 66;4;-0.479526,-0.407496,-0.718327, 0.293025;;, + 67;4;-0.481916,-0.406601,-0.717553, 0.292077;;, + 68;4;-0.484568,-0.405429,-0.716805, 0.291031;;, + 69;4;-0.487450,-0.403974,-0.716108, 0.289880;;, + 70;4;-0.490519,-0.402236,-0.715492, 0.288624;;, + 71;4;-0.493728,-0.400223,-0.714982, 0.287263;;, + 72;4;-0.497026,-0.397953,-0.714604, 0.285801;;, + 73;4;-0.500359,-0.395447,-0.714376, 0.284242;;, + 74;4;-0.503678,-0.392730,-0.714315, 0.282597;;, + 75;4;-0.506940,-0.389831,-0.714427, 0.280873;;, + 76;4;-0.510109,-0.386780,-0.714718, 0.279080;;, + 77;4;-0.513155,-0.383603,-0.715187, 0.277228;;, + 78;4;-0.516056,-0.380326,-0.715829, 0.275327;;, + 79;4;-0.518798,-0.376973,-0.716639, 0.273385;;, + 80;4;-0.521372,-0.373562,-0.717607, 0.271409;;, + 81;4;-0.523770,-0.369166,-0.719159, 0.269231;;, + 82;4;-0.525953,-0.362878,-0.721719, 0.266703;;, + 83;4;-0.527869,-0.354911,-0.725194, 0.263900;;, + 84;4;-0.529468,-0.345742,-0.729358, 0.260960;;, + 85;4;-0.530719,-0.336128,-0.733840, 0.258077;;, + 86;4;-0.531625,-0.326991,-0.738178, 0.255470;;, + 87;4;-0.532222,-0.319204,-0.741922, 0.253331;;, + 88;4;-0.532571,-0.313399,-0.744739, 0.251782;;, + 89;4;-0.532738,-0.309895,-0.746451, 0.250867;;, + 90;4;-0.532782,-0.308746,-0.747016, 0.250572;;; + } + AnimationKey { // Scale + 1; + 91; + 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;;; + } + AnimationKey { // Position + 2; + 91; + 0;3;-0.000000, 0.530000,-0.350000;;, + 1;3;-0.000000, 0.530000,-0.350000;;, + 2;3;-0.000000, 0.530000,-0.350000;;, + 3;3;-0.000000, 0.530000,-0.350000;;, + 4;3;-0.000000, 0.530000,-0.350000;;, + 5;3;-0.000000, 0.530000,-0.350000;;, + 6;3;-0.000000, 0.530000,-0.350000;;, + 7;3;-0.000000, 0.530000,-0.350000;;, + 8;3;-0.000000, 0.530000,-0.350000;;, + 9;3;-0.000000, 0.530000,-0.350000;;, + 10;3;-0.000000, 0.530000,-0.350000;;, + 11;3;-0.000000, 0.530000,-0.350000;;, + 12;3;-0.000000, 0.530000,-0.350000;;, + 13;3;-0.000000, 0.530000,-0.350000;;, + 14;3;-0.000000, 0.530000,-0.350000;;, + 15;3;-0.000000, 0.530000,-0.350000;;, + 16;3;-0.000000, 0.530000,-0.350000;;, + 17;3;-0.000000, 0.530000,-0.350000;;, + 18;3;-0.000000, 0.530000,-0.350000;;, + 19;3;-0.000000, 0.530000,-0.350000;;, + 20;3;-0.000000, 0.530000,-0.350000;;, + 21;3;-0.000000, 0.530000,-0.350000;;, + 22;3;-0.000000, 0.530000,-0.350000;;, + 23;3;-0.000000, 0.530000,-0.350000;;, + 24;3;-0.000000, 0.530000,-0.350000;;, + 25;3;-0.000000, 0.530000,-0.350000;;, + 26;3;-0.000000, 0.530000,-0.350000;;, + 27;3;-0.000000, 0.530000,-0.350000;;, + 28;3;-0.000000, 0.530000,-0.350000;;, + 29;3;-0.000000, 0.530000,-0.350000;;, + 30;3;-0.000000, 0.530000,-0.350000;;, + 31;3;-0.000000, 0.530000,-0.350000;;, + 32;3;-0.000000, 0.530000,-0.350000;;, + 33;3;-0.000000, 0.530000,-0.350000;;, + 34;3;-0.000000, 0.530000,-0.350000;;, + 35;3;-0.000000, 0.530000,-0.350000;;, + 36;3;-0.000000, 0.530000,-0.350000;;, + 37;3;-0.000000, 0.530000,-0.350000;;, + 38;3;-0.000000, 0.530000,-0.350000;;, + 39;3;-0.000000, 0.530000,-0.350000;;, + 40;3;-0.000000, 0.530000,-0.350000;;, + 41;3;-0.000237, 0.529993,-0.350000;;, + 42;3;-0.000949, 0.529973,-0.350000;;, + 43;3;-0.002107, 0.529938,-0.350000;;, + 44;3;-0.003622, 0.529889,-0.350000;;, + 45;3;-0.005338, 0.529831,-0.350000;;, + 46;3;-0.007054, 0.529766,-0.350000;;, + 47;3;-0.008569, 0.529700,-0.350000;;, + 48;3;-0.009728, 0.529638,-0.350000;;, + 49;3;-0.010440, 0.529582,-0.350000;;, + 50;3;-0.010677, 0.529534,-0.350000;;, + 51;3;-0.010475, 0.529488,-0.350300;;, + 52;3;-0.009864, 0.529436,-0.351204;;, + 53;3;-0.008868, 0.529381,-0.352674;;, + 54;3;-0.007558, 0.529324,-0.354597;;, + 55;3;-0.006060, 0.529270,-0.356775;;, + 56;3;-0.004545, 0.529222,-0.358953;;, + 57;3;-0.003180, 0.529183,-0.360876;;, + 58;3;-0.002099, 0.529155,-0.362346;;, + 59;3;-0.001380, 0.529138,-0.363250;;, + 60;3;-0.001050, 0.529133,-0.363550;;, + 61;3;-0.000919, 0.529138,-0.363476;;, + 62;3;-0.000795, 0.529152,-0.363250;;, + 63;3;-0.000679, 0.529176,-0.362872;;, + 64;3;-0.000571, 0.529210,-0.362346;;, + 65;3;-0.000473, 0.529253,-0.361676;;, + 66;3;-0.000384, 0.529304,-0.360876;;, + 67;3;-0.000305, 0.529363,-0.359961;;, + 68;3;-0.000237, 0.529427,-0.358953;;, + 69;3;-0.000179, 0.529496,-0.357881;;, + 70;3;-0.000131, 0.529566,-0.356775;;, + 71;3;-0.000093, 0.529637,-0.355669;;, + 72;3;-0.000063, 0.529706,-0.354597;;, + 73;3;-0.000040, 0.529770,-0.353590;;, + 74;3;-0.000024, 0.529829,-0.352674;;, + 75;3;-0.000013, 0.529880,-0.351874;;, + 76;3;-0.000007, 0.529923,-0.351204;;, + 77;3;-0.000003, 0.529957,-0.350678;;, + 78;3;-0.000001, 0.529981,-0.350300;;, + 79;3;-0.000000, 0.529995,-0.350075;;, + 80;3;-0.000000, 0.530000,-0.350000;;, + 81;3;-0.000237, 0.529990,-0.350000;;, + 82;3;-0.000949, 0.529959,-0.350000;;, + 83;3;-0.002107, 0.529908,-0.350000;;, + 84;3;-0.003622, 0.529842,-0.350000;;, + 85;3;-0.005338, 0.529767,-0.350000;;, + 86;3;-0.007054, 0.529692,-0.350000;;, + 87;3;-0.008569, 0.529626,-0.350000;;, + 88;3;-0.009728, 0.529575,-0.350000;;, + 89;3;-0.010440, 0.529544,-0.350000;;, + 90;3;-0.010677, 0.529534,-0.350000;;; + } + } + Animation { + {Armature_Bone_004} + AnimationKey { // Rotation + 0; + 91; + 0;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 1;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 2;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 3;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 4;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 5;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 6;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 7;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 8;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 9;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 10;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 11;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 12;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 13;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 14;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 15;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 16;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 17;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 18;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 19;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 20;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 21;4;-0.711526, 0.271122,-0.531270,-0.368452;;, + 22;4;-0.694726, 0.269518,-0.559476,-0.353263;;, + 23;4;-0.674039, 0.265328,-0.596574,-0.331632;;, + 24;4;-0.659646, 0.257918,-0.627184,-0.310638;;, + 25;4;-0.657658, 0.247750,-0.641173,-0.295648;;, + 26;4;-0.669148, 0.229947,-0.639326,-0.286357;;, + 27;4;-0.692894, 0.201204,-0.625155,-0.281238;;, + 28;4;-0.721647, 0.170090,-0.604285,-0.279522;;, + 29;4;-0.744265, 0.148428,-0.586431,-0.278935;;, + 30;4;-0.753835, 0.142675,-0.578320,-0.277352;;, + 31;4;-0.754582, 0.148090,-0.574936,-0.278303;;, + 32;4;-0.751765, 0.159588,-0.569668,-0.286325;;, + 33;4;-0.746292, 0.175619,-0.562995,-0.299617;;, + 34;4;-0.740329, 0.192487,-0.556063,-0.313882;;, + 35;4;-0.735723, 0.207039,-0.549848,-0.325455;;, + 36;4;-0.731359, 0.221682,-0.543390,-0.336938;;, + 37;4;-0.725972, 0.238766,-0.535879,-0.350989;;, + 38;4;-0.720955, 0.254969,-0.528748,-0.364113;;, + 39;4;-0.717939, 0.266394,-0.523678,-0.372210;;, + 40;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 41;4;-0.719093, 0.272596,-0.520790,-0.370477;;, + 42;4;-0.721609, 0.272299,-0.520998,-0.365059;;, + 43;4;-0.725063, 0.270560,-0.521972,-0.357506;;, + 44;4;-0.729228, 0.267588,-0.523599,-0.348325;;, + 45;4;-0.733729, 0.263791,-0.525660,-0.338354;;, + 46;4;-0.738095, 0.259728,-0.527855,-0.328649;;, + 47;4;-0.741870, 0.255986,-0.529872,-0.320238;;, + 48;4;-0.744714, 0.253042,-0.531456,-0.313890;;, + 49;4;-0.746445, 0.251194,-0.532448,-0.310023;;, + 50;4;-0.747016, 0.250572,-0.532782,-0.308746;;, + 51;4;-0.746510, 0.251643,-0.531380,-0.310905;;, + 52;4;-0.744981, 0.254860,-0.527167,-0.317407;;, + 53;4;-0.742479, 0.260075,-0.520332,-0.327995;;, + 54;4;-0.739178, 0.266868,-0.511419,-0.341870;;, + 55;4;-0.735395, 0.274519,-0.501368,-0.357634;;, + 56;4;-0.731544, 0.282102,-0.491384,-0.373466;;, + 57;4;-0.728048, 0.288700,-0.482667,-0.387538;;, + 58;4;-0.725239, 0.293608,-0.476139,-0.398433;;, + 59;4;-0.723314, 0.296429,-0.472321,-0.405330;;, + 60;4;-0.722347, 0.297039,-0.471380,-0.407950;;, + 61;4;-0.721823, 0.296528,-0.472004,-0.408360;;, + 62;4;-0.721227, 0.295965,-0.472912,-0.408603;;, + 63;4;-0.720567, 0.295341,-0.474113,-0.408659;;, + 64;4;-0.719854, 0.294648,-0.475615,-0.408507;;, + 65;4;-0.719101, 0.293879,-0.477422,-0.408126;;, + 66;4;-0.718327, 0.293024,-0.479526,-0.407496;;, + 67;4;-0.717553, 0.292077,-0.481916,-0.406602;;, + 68;4;-0.716805, 0.291030,-0.484568,-0.405429;;, + 69;4;-0.716108, 0.289880,-0.487450,-0.403974;;, + 70;4;-0.715492, 0.288624,-0.490519,-0.402236;;, + 71;4;-0.714982, 0.287263,-0.493728,-0.400224;;, + 72;4;-0.714604, 0.285800,-0.497025,-0.397953;;, + 73;4;-0.714377, 0.284242,-0.500358,-0.395447;;, + 74;4;-0.714315, 0.282597,-0.503678,-0.392730;;, + 75;4;-0.714427, 0.280872,-0.506940,-0.389831;;, + 76;4;-0.714718, 0.279080,-0.510109,-0.386780;;, + 77;4;-0.715187, 0.277228,-0.513155,-0.383603;;, + 78;4;-0.715829, 0.275327,-0.516056,-0.380326;;, + 79;4;-0.716639, 0.273385,-0.518798,-0.376973;;, + 80;4;-0.717607, 0.271409,-0.521372,-0.373563;;, + 81;4;-0.719159, 0.269231,-0.523770,-0.369166;;, + 82;4;-0.721719, 0.266703,-0.525953,-0.362878;;, + 83;4;-0.725194, 0.263900,-0.527869,-0.354911;;, + 84;4;-0.729358, 0.260960,-0.529468,-0.345742;;, + 85;4;-0.733841, 0.258077,-0.530719,-0.336128;;, + 86;4;-0.738178, 0.255470,-0.531625,-0.326991;;, + 87;4;-0.741922, 0.253331,-0.532222,-0.319204;;, + 88;4;-0.744739, 0.251782,-0.532571,-0.313400;;, + 89;4;-0.746452, 0.250867,-0.532738,-0.309896;;, + 90;4;-0.747016, 0.250572,-0.532782,-0.308746;;; + } + AnimationKey { // Scale + 1; + 91; + 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;;; + } + AnimationKey { // Position + 2; + 91; + 0;3;-0.000000, 0.530000, 0.350000;;, + 1;3;-0.000000, 0.530000, 0.350000;;, + 2;3;-0.000000, 0.530000, 0.350000;;, + 3;3;-0.000000, 0.530000, 0.350000;;, + 4;3;-0.000000, 0.530000, 0.350000;;, + 5;3;-0.000000, 0.530000, 0.350000;;, + 6;3;-0.000000, 0.530000, 0.350000;;, + 7;3;-0.000000, 0.530000, 0.350000;;, + 8;3;-0.000000, 0.530000, 0.350000;;, + 9;3;-0.000000, 0.530000, 0.350000;;, + 10;3;-0.000000, 0.530000, 0.350000;;, + 11;3;-0.000000, 0.530000, 0.350000;;, + 12;3;-0.000000, 0.530000, 0.350000;;, + 13;3;-0.000000, 0.530000, 0.350000;;, + 14;3;-0.000000, 0.530000, 0.350000;;, + 15;3;-0.000000, 0.530000, 0.350000;;, + 16;3;-0.000000, 0.530000, 0.350000;;, + 17;3;-0.000000, 0.530000, 0.350000;;, + 18;3;-0.000000, 0.530000, 0.350000;;, + 19;3;-0.000000, 0.530000, 0.350000;;, + 20;3;-0.000000, 0.530000, 0.350000;;, + 21;3;-0.000000, 0.530000, 0.350000;;, + 22;3;-0.000000, 0.530000, 0.350000;;, + 23;3;-0.000000, 0.530000, 0.350000;;, + 24;3;-0.000000, 0.530000, 0.350000;;, + 25;3;-0.000000, 0.530000, 0.350000;;, + 26;3;-0.000000, 0.530000, 0.350000;;, + 27;3;-0.000000, 0.530000, 0.350000;;, + 28;3;-0.000000, 0.530000, 0.350000;;, + 29;3;-0.000000, 0.530000, 0.350000;;, + 30;3;-0.000000, 0.530000, 0.350000;;, + 31;3;-0.000000, 0.530000, 0.350000;;, + 32;3;-0.000000, 0.530000, 0.350000;;, + 33;3;-0.000000, 0.530000, 0.350000;;, + 34;3;-0.000000, 0.530000, 0.350000;;, + 35;3;-0.000000, 0.530000, 0.350000;;, + 36;3;-0.000000, 0.530000, 0.350000;;, + 37;3;-0.000000, 0.530000, 0.350000;;, + 38;3;-0.000000, 0.530000, 0.350000;;, + 39;3;-0.000000, 0.530000, 0.350000;;, + 40;3;-0.000000, 0.530000, 0.350000;;, + 41;3;-0.000237, 0.529993, 0.350000;;, + 42;3;-0.000949, 0.529972, 0.350000;;, + 43;3;-0.002107, 0.529937, 0.350000;;, + 44;3;-0.003622, 0.529889, 0.350000;;, + 45;3;-0.005338, 0.529830, 0.350000;;, + 46;3;-0.007054, 0.529766, 0.350000;;, + 47;3;-0.008569, 0.529700, 0.350000;;, + 48;3;-0.009727, 0.529637, 0.350000;;, + 49;3;-0.010440, 0.529581, 0.350000;;, + 50;3;-0.010677, 0.529534, 0.350000;;, + 51;3;-0.010474, 0.529487, 0.350300;;, + 52;3;-0.009864, 0.529436, 0.351204;;, + 53;3;-0.008868, 0.529381, 0.352674;;, + 54;3;-0.007557, 0.529324, 0.354597;;, + 55;3;-0.006060, 0.529270, 0.356775;;, + 56;3;-0.004545, 0.529221, 0.358953;;, + 57;3;-0.003180, 0.529183, 0.360876;;, + 58;3;-0.002099, 0.529154, 0.362346;;, + 59;3;-0.001380, 0.529138, 0.363250;;, + 60;3;-0.001050, 0.529133, 0.363550;;, + 61;3;-0.000919, 0.529138, 0.363476;;, + 62;3;-0.000795, 0.529152, 0.363250;;, + 63;3;-0.000679, 0.529176, 0.362872;;, + 64;3;-0.000571, 0.529210, 0.362346;;, + 65;3;-0.000473, 0.529253, 0.361676;;, + 66;3;-0.000384, 0.529304, 0.360876;;, + 67;3;-0.000305, 0.529363, 0.359961;;, + 68;3;-0.000237, 0.529427, 0.358953;;, + 69;3;-0.000179, 0.529496, 0.357881;;, + 70;3;-0.000131, 0.529566, 0.356775;;, + 71;3;-0.000093, 0.529637, 0.355669;;, + 72;3;-0.000063, 0.529706, 0.354597;;, + 73;3;-0.000040, 0.529770, 0.353590;;, + 74;3;-0.000024, 0.529829, 0.352674;;, + 75;3;-0.000013, 0.529880, 0.351874;;, + 76;3;-0.000007, 0.529923, 0.351204;;, + 77;3;-0.000003, 0.529957, 0.350678;;, + 78;3;-0.000001, 0.529981, 0.350300;;, + 79;3;-0.000000, 0.529995, 0.350075;;, + 80;3;-0.000000, 0.530000, 0.350000;;, + 81;3;-0.000237, 0.529990, 0.350000;;, + 82;3;-0.000949, 0.529959, 0.350000;;, + 83;3;-0.002107, 0.529908, 0.350000;;, + 84;3;-0.003622, 0.529842, 0.350000;;, + 85;3;-0.005338, 0.529767, 0.350000;;, + 86;3;-0.007054, 0.529692, 0.350000;;, + 87;3;-0.008569, 0.529626, 0.350000;;, + 88;3;-0.009728, 0.529575, 0.350000;;, + 89;3;-0.010440, 0.529544, 0.350000;;, + 90;3;-0.010677, 0.529534, 0.350000;;; + } + } + Animation { + {Armature_Bone_005} + AnimationKey { // Rotation + 0; + 91; + 0;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 1;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 2;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 3;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 4;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 5;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 6;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 7;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 8;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 9;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 10;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 11;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 12;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 13;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 14;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 15;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 16;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 17;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 18;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 19;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 20;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 21;4;-0.458165,-0.529128,-0.580253, 0.413424;;, + 22;4;-0.485022,-0.509173,-0.567658, 0.418827;;, + 23;4;-0.520997,-0.481797,-0.552980, 0.424009;;, + 24;4;-0.551918,-0.457063,-0.544453, 0.424631;;, + 25;4;-0.568174,-0.442078,-0.546703, 0.418648;;, + 26;4;-0.571035,-0.436250,-0.561149, 0.401655;;, + 27;4;-0.564162,-0.437257,-0.587043, 0.371317;;, + 28;4;-0.551425,-0.442800,-0.616746, 0.336882;;, + 29;4;-0.539986,-0.448221,-0.639074, 0.311690;;, + 30;4;-0.535080,-0.449901,-0.647452, 0.303455;;, + 31;4;-0.531946,-0.451827,-0.646375, 0.307016;;, + 32;4;-0.524334,-0.459202,-0.641077, 0.316466;;, + 33;4;-0.513384,-0.470639,-0.632633, 0.330305;;, + 34;4;-0.501818,-0.482826,-0.623608, 0.344954;;, + 35;4;-0.491956,-0.492938,-0.616190, 0.357361;;, + 36;4;-0.482171,-0.503169,-0.608694, 0.369650;;, + 37;4;-0.470787,-0.515639,-0.599484, 0.384019;;, + 38;4;-0.459980,-0.527301,-0.590892, 0.397638;;, + 39;4;-0.452303,-0.534580,-0.585656, 0.407186;;, + 40;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 41;4;-0.447915,-0.533507,-0.587177, 0.412167;;, + 42;4;-0.448096,-0.528982,-0.591044, 0.411934;;, + 43;4;-0.449338,-0.522574,-0.596382, 0.410607;;, + 44;4;-0.451489,-0.514719,-0.602837, 0.408344;;, + 45;4;-0.454251,-0.506145,-0.609825, 0.405456;;, + 46;4;-0.457213,-0.497772,-0.616612, 0.402367;;, + 47;4;-0.459946,-0.490498,-0.622486, 0.399523;;, + 48;4;-0.462097,-0.484999,-0.626914, 0.397286;;, + 49;4;-0.463449,-0.481645,-0.629610, 0.395882;;, + 50;4;-0.463904,-0.480537,-0.630499, 0.395409;;, + 51;4;-0.462538,-0.482319,-0.629304, 0.396271;;, + 52;4;-0.458438,-0.487692,-0.625698, 0.398855;;, + 53;4;-0.451796,-0.496454,-0.619816, 0.403038;;, + 54;4;-0.443156,-0.507961,-0.612087, 0.408474;;, + 55;4;-0.433443,-0.521071,-0.603275, 0.414574;;, + 56;4;-0.423843,-0.534294,-0.594377, 0.420589;;, + 57;4;-0.415531,-0.546129,-0.586399, 0.425776;;, + 58;4;-0.409404,-0.555405,-0.580127, 0.429570;;, + 59;4;-0.405965,-0.561440,-0.576020, 0.431653;;, + 60;4;-0.405371,-0.563994,-0.574240, 0.431930;;, + 61;4;-0.406259,-0.564713,-0.573641, 0.431321;;, + 62;4;-0.407297,-0.565226,-0.573088, 0.430729;;, + 63;4;-0.408494,-0.565514,-0.572593, 0.430147;;, + 64;4;-0.409860,-0.565560,-0.572172, 0.429565;;, + 65;4;-0.411400,-0.565347,-0.571841, 0.428976;;, + 66;4;-0.413120,-0.564864,-0.571616, 0.428366;;, + 67;4;-0.415018,-0.564102,-0.571516, 0.427721;;, + 68;4;-0.417090,-0.563058,-0.571558, 0.427028;;, + 69;4;-0.419326,-0.561739,-0.571757, 0.426271;;, + 70;4;-0.421710,-0.560156,-0.572126, 0.425436;;, + 71;4;-0.424223,-0.558330,-0.572673, 0.424509;;, + 72;4;-0.426842,-0.556289,-0.573401, 0.423480;;, + 73;4;-0.429540,-0.554063,-0.574310, 0.422342;;, + 74;4;-0.432294,-0.551687,-0.575393, 0.421089;;, + 75;4;-0.435078,-0.549194,-0.576642, 0.419721;;, + 76;4;-0.437872,-0.546617,-0.578044, 0.418239;;, + 77;4;-0.440658,-0.543984,-0.579587, 0.416647;;, + 78;4;-0.443419,-0.541320,-0.581257, 0.414952;;, + 79;4;-0.446145,-0.538647,-0.583039, 0.413158;;, + 80;4;-0.448826,-0.535982,-0.584921, 0.411273;;, + 81;4;-0.451451,-0.532462,-0.587594, 0.409260;;, + 82;4;-0.453975,-0.527244,-0.591737, 0.407099;;, + 83;4;-0.456335,-0.520506,-0.597207, 0.404853;;, + 84;4;-0.458453,-0.512660,-0.603658, 0.402617;;, + 85;4;-0.460254,-0.504371,-0.610532, 0.400519;;, + 86;4;-0.461687,-0.496450,-0.617139, 0.398688;;, + 87;4;-0.462735,-0.489674,-0.622814, 0.397229;;, + 88;4;-0.463421,-0.484608,-0.627070, 0.396197;;, + 89;4;-0.463792,-0.481544,-0.629650, 0.395599;;, + 90;4;-0.463904,-0.480537,-0.630499, 0.395409;;; + } + AnimationKey { // Scale + 1; + 91; + 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;;; + } + AnimationKey { // Position + 2; + 91; + 0;3;-0.000000, 0.450000,-0.350000;;, + 1;3;-0.000000, 0.450000,-0.350000;;, + 2;3;-0.000000, 0.450000,-0.350000;;, + 3;3;-0.000000, 0.450000,-0.350000;;, + 4;3;-0.000000, 0.450000,-0.350000;;, + 5;3;-0.000000, 0.450000,-0.350000;;, + 6;3;-0.000000, 0.450000,-0.350000;;, + 7;3;-0.000000, 0.450000,-0.350000;;, + 8;3;-0.000000, 0.450000,-0.350000;;, + 9;3;-0.000000, 0.450000,-0.350000;;, + 10;3;-0.000000, 0.450000,-0.350000;;, + 11;3;-0.000000, 0.450000,-0.350000;;, + 12;3;-0.000000, 0.450000,-0.350000;;, + 13;3;-0.000000, 0.450000,-0.350000;;, + 14;3;-0.000000, 0.450000,-0.350000;;, + 15;3;-0.000000, 0.450000,-0.350000;;, + 16;3;-0.000000, 0.450000,-0.350000;;, + 17;3;-0.000000, 0.450000,-0.350000;;, + 18;3;-0.000000, 0.450000,-0.350000;;, + 19;3;-0.000000, 0.450000,-0.350000;;, + 20;3;-0.000000, 0.450000,-0.350000;;, + 21;3;-0.000000, 0.450000,-0.350000;;, + 22;3;-0.000000, 0.450000,-0.350000;;, + 23;3;-0.000000, 0.450000,-0.350000;;, + 24;3;-0.000000, 0.450000,-0.350000;;, + 25;3;-0.000000, 0.450000,-0.350000;;, + 26;3;-0.000000, 0.450000,-0.350000;;, + 27;3;-0.000000, 0.450000,-0.350000;;, + 28;3;-0.000000, 0.450000,-0.350000;;, + 29;3;-0.000000, 0.450000,-0.350000;;, + 30;3;-0.000000, 0.450000,-0.350000;;, + 31;3;-0.000000, 0.450000,-0.350000;;, + 32;3;-0.000000, 0.450000,-0.350000;;, + 33;3;-0.000000, 0.450000,-0.350000;;, + 34;3;-0.000000, 0.450000,-0.350000;;, + 35;3;-0.000000, 0.450000,-0.350000;;, + 36;3;-0.000000, 0.450000,-0.350000;;, + 37;3;-0.000000, 0.450000,-0.350000;;, + 38;3;-0.000000, 0.450000,-0.350000;;, + 39;3;-0.000000, 0.450000,-0.350000;;, + 40;3;-0.000000, 0.450000,-0.350000;;, + 41;3;-0.000082, 0.449998,-0.350000;;, + 42;3;-0.000329, 0.449991,-0.350000;;, + 43;3;-0.000731, 0.449978,-0.350000;;, + 44;3;-0.001257, 0.449962,-0.350000;;, + 45;3;-0.001852, 0.449941,-0.350000;;, + 46;3;-0.002448, 0.449919,-0.350000;;, + 47;3;-0.002973, 0.449896,-0.350000;;, + 48;3;-0.003375, 0.449874,-0.350000;;, + 49;3;-0.003622, 0.449855,-0.350000;;, + 50;3;-0.003704, 0.449838,-0.350000;;, + 51;3;-0.003634, 0.449822,-0.350104;;, + 52;3;-0.003422, 0.449804,-0.350418;;, + 53;3;-0.003077, 0.449785,-0.350928;;, + 54;3;-0.002622, 0.449766,-0.351595;;, + 55;3;-0.002103, 0.449747,-0.352351;;, + 56;3;-0.001577, 0.449730,-0.353106;;, + 57;3;-0.001103, 0.449716,-0.353773;;, + 58;3;-0.000728, 0.449707,-0.354283;;, + 59;3;-0.000479, 0.449701,-0.354597;;, + 60;3;-0.000364, 0.449699,-0.354701;;, + 61;3;-0.000319, 0.449701,-0.354675;;, + 62;3;-0.000276, 0.449706,-0.354597;;, + 63;3;-0.000236, 0.449714,-0.354466;;, + 64;3;-0.000198, 0.449726,-0.354283;;, + 65;3;-0.000164, 0.449741,-0.354051;;, + 66;3;-0.000133, 0.449759,-0.353773;;, + 67;3;-0.000106, 0.449779,-0.353456;;, + 68;3;-0.000082, 0.449801,-0.353106;;, + 69;3;-0.000062, 0.449825,-0.352734;;, + 70;3;-0.000046, 0.449850,-0.352351;;, + 71;3;-0.000032, 0.449874,-0.351967;;, + 72;3;-0.000022, 0.449898,-0.351595;;, + 73;3;-0.000014, 0.449920,-0.351245;;, + 74;3;-0.000009, 0.449941,-0.350928;;, + 75;3;-0.000005, 0.449959,-0.350650;;, + 76;3;-0.000002, 0.449973,-0.350418;;, + 77;3;-0.000001, 0.449985,-0.350235;;, + 78;3;-0.000000, 0.449993,-0.350104;;, + 79;3;-0.000000, 0.449998,-0.350026;;, + 80;3;-0.000000, 0.450000,-0.350000;;, + 81;3;-0.000082, 0.449997,-0.350000;;, + 82;3;-0.000329, 0.449986,-0.350000;;, + 83;3;-0.000731, 0.449968,-0.350000;;, + 84;3;-0.001257, 0.449945,-0.350000;;, + 85;3;-0.001852, 0.449919,-0.350000;;, + 86;3;-0.002448, 0.449893,-0.350000;;, + 87;3;-0.002973, 0.449870,-0.350000;;, + 88;3;-0.003375, 0.449853,-0.350000;;, + 89;3;-0.003622, 0.449842,-0.350000;;, + 90;3;-0.003704, 0.449838,-0.350000;;; + } + } + Animation { + {Armature_Bone_006} + AnimationKey { // Rotation + 0; + 91; + 0;4;-0.584921, 0.411273,-0.448826,-0.535982;;, + 1;4;-0.584921, 0.411273,-0.448826,-0.535982;;, + 2;4;-0.585303, 0.410615,-0.449353,-0.535456;;, + 3;4;-0.586458, 0.408623,-0.450946,-0.533866;;, + 4;4;-0.588388, 0.405296,-0.453608,-0.531210;;, + 5;4;-0.591077, 0.400660,-0.457317,-0.527508;;, + 6;4;-0.594485, 0.394783,-0.462018,-0.522816;;, + 7;4;-0.598545, 0.387783,-0.467618,-0.517228;;, + 8;4;-0.603157, 0.379831,-0.473979,-0.510879;;, + 9;4;-0.608191, 0.371150,-0.480924,-0.503948;;, + 10;4;-0.613492, 0.362011,-0.488235,-0.496652;;, + 11;4;-0.618883, 0.352715,-0.495672,-0.489230;;, + 12;4;-0.624183, 0.343576,-0.502983,-0.481934;;, + 13;4;-0.629218, 0.334895,-0.509927,-0.475003;;, + 14;4;-0.633830, 0.326943,-0.516289,-0.468654;;, + 15;4;-0.637889, 0.319944,-0.521888,-0.463066;;, + 16;4;-0.641297, 0.314068,-0.526589,-0.458375;;, + 17;4;-0.643986, 0.309432,-0.530298,-0.454673;;, + 18;4;-0.645915, 0.306104,-0.532960,-0.452017;;, + 19;4;-0.647070, 0.304113,-0.534553,-0.450427;;, + 20;4;-0.647452, 0.303455,-0.535080,-0.449901;;, + 21;4;-0.645682, 0.306506,-0.532638,-0.452338;;, + 22;4;-0.640256, 0.315863,-0.525153,-0.459808;;, + 23;4;-0.632104, 0.329919,-0.513909,-0.471030;;, + 24;4;-0.623449, 0.344842,-0.501970,-0.482944;;, + 25;4;-0.616187, 0.357364,-0.491953,-0.492942;;, + 26;4;-0.608924, 0.369886,-0.481935,-0.502939;;, + 27;4;-0.600269, 0.384809,-0.469997,-0.514854;;, + 28;4;-0.592118, 0.398865,-0.458752,-0.526076;;, + 29;4;-0.586691, 0.408221,-0.451267,-0.533545;;, + 30;4;-0.584921, 0.411273,-0.448826,-0.535982;;, + 31;4;-0.580252, 0.413424,-0.458164,-0.529129;;, + 32;4;-0.567657, 0.418828,-0.485020,-0.509174;;, + 33;4;-0.552978, 0.424012,-0.520994,-0.481800;;, + 34;4;-0.544451, 0.424634,-0.551914,-0.457067;;, + 35;4;-0.546700, 0.418652,-0.568169,-0.442082;;, + 36;4;-0.561078, 0.401550,-0.571099,-0.436362;;, + 37;4;-0.586812, 0.370952,-0.564388,-0.437627;;, + 38;4;-0.616388, 0.336310,-0.551780,-0.443374;;, + 39;4;-0.638773, 0.311207,-0.540287,-0.448705;;, + 40;4;-0.647452, 0.303455,-0.535080,-0.449901;;, + 41;4;-0.648710, 0.306194,-0.532745,-0.448891;;, + 42;4;-0.649623, 0.311711,-0.528455,-0.448732;;, + 43;4;-0.650033, 0.319956,-0.522227,-0.449569;;, + 44;4;-0.649768, 0.330568,-0.514291,-0.451503;;, + 45;4;-0.648672, 0.342823,-0.505129,-0.454551;;, + 46;4;-0.646656, 0.355703,-0.495432,-0.458610;;, + 47;4;-0.643724, 0.368133,-0.485945,-0.463478;;, + 48;4;-0.639962, 0.379222,-0.477292,-0.468905;;, + 49;4;-0.635506, 0.388399,-0.469880,-0.474655;;, + 50;4;-0.630499, 0.395409,-0.463904,-0.480537;;, + 51;4;-0.624789, 0.401358,-0.458023,-0.487406;;, + 52;4;-0.618189, 0.407316,-0.450929,-0.496154;;, + 53;4;-0.610879, 0.413107,-0.442860,-0.506524;;, + 54;4;-0.603194, 0.418495,-0.434262,-0.517982;;, + 55;4;-0.595608, 0.423213,-0.425776,-0.529710;;, + 56;4;-0.588664, 0.427027,-0.418130,-0.540732;;, + 57;4;-0.582837, 0.429790,-0.411969,-0.550143;;, + 58;4;-0.578437, 0.431475,-0.407714,-0.557310;;, + 59;4;-0.575581, 0.432148,-0.405526,-0.561935;;, + 60;4;-0.574240, 0.431930,-0.405371,-0.563994;;, + 61;4;-0.573641, 0.431321,-0.406259,-0.564713;;, + 62;4;-0.573088, 0.430729,-0.407296,-0.565226;;, + 63;4;-0.572594, 0.430147,-0.408494,-0.565514;;, + 64;4;-0.572172, 0.429565,-0.409859,-0.565560;;, + 65;4;-0.571841, 0.428976,-0.411400,-0.565348;;, + 66;4;-0.571616, 0.428365,-0.413120,-0.564864;;, + 67;4;-0.571516, 0.427721,-0.415018,-0.564102;;, + 68;4;-0.571558, 0.427028,-0.417090,-0.563059;;, + 69;4;-0.571757, 0.426271,-0.419326,-0.561739;;, + 70;4;-0.572126, 0.425436,-0.421710,-0.560156;;, + 71;4;-0.572673, 0.424509,-0.424223,-0.558330;;, + 72;4;-0.573401, 0.423480,-0.426841,-0.556289;;, + 73;4;-0.574310, 0.422342,-0.429540,-0.554063;;, + 74;4;-0.575393, 0.421089,-0.432293,-0.551687;;, + 75;4;-0.576642, 0.419721,-0.435078,-0.549194;;, + 76;4;-0.578044, 0.418239,-0.437872,-0.546617;;, + 77;4;-0.579587, 0.416647,-0.440658,-0.543984;;, + 78;4;-0.581257, 0.414952,-0.443419,-0.541320;;, + 79;4;-0.583039, 0.413158,-0.446145,-0.538647;;, + 80;4;-0.584921, 0.411273,-0.448826,-0.535982;;, + 81;4;-0.587594, 0.409259,-0.451450,-0.532463;;, + 82;4;-0.591737, 0.407099,-0.453975,-0.527244;;, + 83;4;-0.597207, 0.404852,-0.456335,-0.520506;;, + 84;4;-0.603658, 0.402617,-0.458453,-0.512660;;, + 85;4;-0.610532, 0.400519,-0.460254,-0.504371;;, + 86;4;-0.617139, 0.398688,-0.461686,-0.496450;;, + 87;4;-0.622814, 0.397229,-0.462735,-0.489674;;, + 88;4;-0.627070, 0.396197,-0.463421,-0.484608;;, + 89;4;-0.629650, 0.395599,-0.463792,-0.481544;;, + 90;4;-0.630499, 0.395409,-0.463904,-0.480537;;; + } + AnimationKey { // Scale + 1; + 91; + 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;;; + } + AnimationKey { // Position + 2; + 91; + 0;3;-0.000000, 0.450000, 0.350000;;, + 1;3;-0.000000, 0.450000, 0.350000;;, + 2;3;-0.000000, 0.450000, 0.350000;;, + 3;3;-0.000000, 0.450000, 0.350000;;, + 4;3;-0.000000, 0.450000, 0.350000;;, + 5;3;-0.000000, 0.450000, 0.350000;;, + 6;3;-0.000000, 0.450000, 0.350000;;, + 7;3;-0.000000, 0.450000, 0.350000;;, + 8;3;-0.000000, 0.450000, 0.350000;;, + 9;3;-0.000000, 0.450000, 0.350000;;, + 10;3;-0.000000, 0.450000, 0.350000;;, + 11;3;-0.000000, 0.450000, 0.350000;;, + 12;3;-0.000000, 0.450000, 0.350000;;, + 13;3;-0.000000, 0.450000, 0.350000;;, + 14;3;-0.000000, 0.450000, 0.350000;;, + 15;3;-0.000000, 0.450000, 0.350000;;, + 16;3;-0.000000, 0.450000, 0.350000;;, + 17;3;-0.000000, 0.450000, 0.350000;;, + 18;3;-0.000000, 0.450000, 0.350000;;, + 19;3;-0.000000, 0.450000, 0.350000;;, + 20;3;-0.000000, 0.450000, 0.350000;;, + 21;3;-0.000000, 0.450000, 0.350000;;, + 22;3;-0.000000, 0.450000, 0.350000;;, + 23;3;-0.000000, 0.450000, 0.350000;;, + 24;3;-0.000000, 0.450000, 0.350000;;, + 25;3;-0.000000, 0.450000, 0.350000;;, + 26;3;-0.000000, 0.450000, 0.350000;;, + 27;3;-0.000000, 0.450000, 0.350000;;, + 28;3;-0.000000, 0.450000, 0.350000;;, + 29;3;-0.000000, 0.450000, 0.350000;;, + 30;3;-0.000000, 0.450000, 0.350000;;, + 31;3;-0.000000, 0.450000, 0.350000;;, + 32;3;-0.000000, 0.450000, 0.350000;;, + 33;3;-0.000000, 0.450000, 0.350000;;, + 34;3;-0.000000, 0.450000, 0.350000;;, + 35;3;-0.000000, 0.450000, 0.350000;;, + 36;3;-0.000000, 0.450000, 0.350000;;, + 37;3;-0.000000, 0.450000, 0.350000;;, + 38;3;-0.000000, 0.450000, 0.350000;;, + 39;3;-0.000000, 0.450000, 0.350000;;, + 40;3;-0.000000, 0.450000, 0.350000;;, + 41;3;-0.000082, 0.449998, 0.350000;;, + 42;3;-0.000329, 0.449991, 0.350000;;, + 43;3;-0.000731, 0.449978, 0.350000;;, + 44;3;-0.001257, 0.449962, 0.350000;;, + 45;3;-0.001852, 0.449941, 0.350000;;, + 46;3;-0.002447, 0.449919, 0.350000;;, + 47;3;-0.002973, 0.449896, 0.350000;;, + 48;3;-0.003375, 0.449874, 0.350000;;, + 49;3;-0.003622, 0.449855, 0.350000;;, + 50;3;-0.003704, 0.449838, 0.350000;;, + 51;3;-0.003634, 0.449822, 0.350104;;, + 52;3;-0.003422, 0.449804, 0.350418;;, + 53;3;-0.003077, 0.449785, 0.350928;;, + 54;3;-0.002622, 0.449766, 0.351595;;, + 55;3;-0.002103, 0.449747, 0.352351;;, + 56;3;-0.001577, 0.449730, 0.353106;;, + 57;3;-0.001103, 0.449716, 0.353773;;, + 58;3;-0.000728, 0.449707, 0.354283;;, + 59;3;-0.000479, 0.449701, 0.354597;;, + 60;3;-0.000364, 0.449699, 0.354701;;, + 61;3;-0.000319, 0.449701, 0.354675;;, + 62;3;-0.000276, 0.449706, 0.354597;;, + 63;3;-0.000236, 0.449714, 0.354466;;, + 64;3;-0.000198, 0.449726, 0.354283;;, + 65;3;-0.000164, 0.449741, 0.354051;;, + 66;3;-0.000133, 0.449759, 0.353773;;, + 67;3;-0.000106, 0.449779, 0.353456;;, + 68;3;-0.000082, 0.449801, 0.353106;;, + 69;3;-0.000062, 0.449825, 0.352734;;, + 70;3;-0.000046, 0.449850, 0.352351;;, + 71;3;-0.000032, 0.449874, 0.351967;;, + 72;3;-0.000022, 0.449898, 0.351595;;, + 73;3;-0.000014, 0.449920, 0.351245;;, + 74;3;-0.000008, 0.449941, 0.350928;;, + 75;3;-0.000005, 0.449958, 0.350650;;, + 76;3;-0.000002, 0.449973, 0.350418;;, + 77;3;-0.000001, 0.449985, 0.350235;;, + 78;3;-0.000000, 0.449993, 0.350104;;, + 79;3;-0.000000, 0.449998, 0.350026;;, + 80;3;-0.000000, 0.450000, 0.350000;;, + 81;3;-0.000082, 0.449997, 0.350000;;, + 82;3;-0.000329, 0.449986, 0.350000;;, + 83;3;-0.000731, 0.449968, 0.350000;;, + 84;3;-0.001257, 0.449945, 0.350000;;, + 85;3;-0.001852, 0.449919, 0.350000;;, + 86;3;-0.002447, 0.449893, 0.350000;;, + 87;3;-0.002973, 0.449870, 0.350000;;, + 88;3;-0.003375, 0.449853, 0.350000;;, + 89;3;-0.003622, 0.449842, 0.350000;;, + 90;3;-0.003704, 0.449838, 0.350000;;; + } + } + Animation { + {Armature_Bone_007} + AnimationKey { // Rotation + 0; + 91; + 0;4;-0.319598,-0.677966,-0.431912, 0.501669;;, + 1;4;-0.319598,-0.677966,-0.431912, 0.501669;;, + 2;4;-0.320288,-0.677564,-0.432404, 0.501164;;, + 3;4;-0.322372,-0.676349,-0.433891, 0.499638;;, + 4;4;-0.325856,-0.674318,-0.436378, 0.497088;;, + 5;4;-0.330709,-0.671489,-0.439841, 0.493535;;, + 6;4;-0.336861,-0.667903,-0.444232, 0.489032;;, + 7;4;-0.344189,-0.663631,-0.449461, 0.483668;;, + 8;4;-0.352514,-0.658778,-0.455403, 0.477574;;, + 9;4;-0.361602,-0.653480,-0.461888, 0.470922;;, + 10;4;-0.371169,-0.647903,-0.468716, 0.463918;;, + 11;4;-0.380901,-0.642230,-0.475661, 0.456795;;, + 12;4;-0.390468,-0.636653,-0.482489, 0.449792;;, + 13;4;-0.399556,-0.631356,-0.488974, 0.443140;;, + 14;4;-0.407880,-0.626503,-0.494915, 0.437046;;, + 15;4;-0.415208,-0.622231,-0.500145, 0.431682;;, + 16;4;-0.421360,-0.618645,-0.504535, 0.427179;;, + 17;4;-0.426213,-0.615816,-0.507998, 0.423627;;, + 18;4;-0.429696,-0.613786,-0.510484, 0.421077;;, + 19;4;-0.431781,-0.612571,-0.511972, 0.419551;;, + 20;4;-0.432470,-0.612169,-0.512464, 0.419046;;, + 21;4;-0.429387,-0.614143,-0.510072, 0.421273;;, + 22;4;-0.419907,-0.620167,-0.502767, 0.428129;;, + 23;4;-0.405596,-0.629149,-0.491862, 0.438496;;, + 24;4;-0.390288,-0.638570,-0.480398, 0.449617;;, + 25;4;-0.377291,-0.646324,-0.470931, 0.459101;;, + 26;4;-0.364229,-0.654013,-0.461528, 0.468650;;, + 27;4;-0.348669,-0.663183,-0.450316, 0.480022;;, + 28;4;-0.333850,-0.671656,-0.439920, 0.490898;;, + 29;4;-0.323610,-0.676921,-0.433375, 0.498513;;, + 30;4;-0.319598,-0.677966,-0.431912, 0.501669;;, + 31;4;-0.327670,-0.669831,-0.430042, 0.507163;;, + 32;4;-0.352888,-0.648194,-0.423547, 0.520203;;, + 33;4;-0.387412,-0.619323,-0.416423, 0.534923;;, + 34;4;-0.417717,-0.593952,-0.414002, 0.543210;;, + 35;4;-0.434447,-0.579463,-0.419063, 0.540621;;, + 36;4;-0.440884,-0.576226,-0.433477, 0.524172;;, + 37;4;-0.442160,-0.582730,-0.457437, 0.493244;;, + 38;4;-0.439302,-0.595269,-0.484296, 0.457130;;, + 39;4;-0.435193,-0.606820,-0.504479, 0.429642;;, + 40;4;-0.432470,-0.612169,-0.512464, 0.419046;;, + 41;4;-0.429595,-0.613661,-0.513835, 0.418885;;, + 42;4;-0.424003,-0.615068,-0.514731, 0.421605;;, + 43;4;-0.415735,-0.616478,-0.514971, 0.427194;;, + 44;4;-0.405129,-0.618016,-0.514359, 0.435331;;, + 45;4;-0.392883,-0.619833,-0.512733, 0.445324;;, + 46;4;-0.379976,-0.622073,-0.510015, 0.456171;;, + 47;4;-0.367454,-0.624838,-0.506235, 0.466788;;, + 48;4;-0.356187,-0.628169,-0.501517, 0.476256;;, + 49;4;-0.346735,-0.632048,-0.496033, 0.483969;;, + 50;4;-0.339356,-0.636425,-0.489959, 0.489634;;, + 51;4;-0.332631,-0.641463,-0.482758, 0.494513;;, + 52;4;-0.325176,-0.647323,-0.473852, 0.499877;;, + 53;4;-0.317225,-0.653846,-0.463499, 0.505551;;, + 54;4;-0.309166,-0.660738,-0.452224, 0.511256;;, + 55;4;-0.301519,-0.667569,-0.440811, 0.516622;;, + 56;4;-0.294842,-0.673854,-0.430183, 0.521256;;, + 57;4;-0.289593,-0.679160,-0.421182, 0.524840;;, + 58;4;-0.286040,-0.683203,-0.414389, 0.527195;;, + 59;4;-0.284245,-0.685870,-0.410063, 0.528286;;, + 60;4;-0.284124,-0.687183,-0.408206, 0.528181;;, + 61;4;-0.284832,-0.687823,-0.407596, 0.527496;;, + 62;4;-0.285632,-0.688402,-0.407109, 0.526768;;, + 63;4;-0.286533,-0.688910,-0.406763, 0.525992;;, + 64;4;-0.287546,-0.689333,-0.406577, 0.525161;;, + 65;4;-0.288679,-0.689658,-0.406571, 0.524266;;, + 66;4;-0.289941,-0.689870,-0.406764, 0.523301;;, + 67;4;-0.291339,-0.689955,-0.407173, 0.522260;;, + 68;4;-0.292877,-0.689900,-0.407814, 0.521136;;, + 69;4;-0.294555,-0.689694,-0.408696, 0.519926;;, + 70;4;-0.296371,-0.689331,-0.409825, 0.518627;;, + 71;4;-0.298318,-0.688807,-0.411198, 0.517240;;, + 72;4;-0.300386,-0.688122,-0.412807, 0.515767;;, + 73;4;-0.302562,-0.687282,-0.414637, 0.514213;;, + 74;4;-0.304831,-0.686294,-0.416671, 0.512584;;, + 75;4;-0.307179,-0.685170,-0.418887, 0.510887;;, + 76;4;-0.309589,-0.683923,-0.421261, 0.509131;;, + 77;4;-0.312048,-0.682566,-0.423771, 0.507324;;, + 78;4;-0.314543,-0.681113,-0.426396, 0.505473;;, + 79;4;-0.317063,-0.679575,-0.429116, 0.503586;;, + 80;4;-0.319598,-0.677966,-0.431912, 0.501669;;, + 81;4;-0.322226,-0.675630,-0.435638, 0.499738;;, + 82;4;-0.324997,-0.671919,-0.441128, 0.497831;;, + 83;4;-0.327833,-0.666965,-0.448197, 0.495999;;, + 84;4;-0.330616,-0.661085,-0.456410, 0.494307;;, + 85;4;-0.333197,-0.654792,-0.465078, 0.492825;;, + 86;4;-0.335425,-0.648727,-0.473352, 0.491611;;, + 87;4;-0.337185,-0.643507,-0.480427, 0.490696;;, + 88;4;-0.338420,-0.639587,-0.485713, 0.490080;;, + 89;4;-0.339131,-0.637208,-0.488909, 0.489739;;, + 90;4;-0.339356,-0.636425,-0.489959, 0.489634;;; + } + AnimationKey { // Scale + 1; + 91; + 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;;; + } + AnimationKey { // Position + 2; + 91; + 0;3;-0.000000, 0.370000,-0.350000;;, + 1;3;-0.000000, 0.370000,-0.350000;;, + 2;3;-0.000000, 0.370000,-0.350000;;, + 3;3;-0.000000, 0.370000,-0.350000;;, + 4;3;-0.000000, 0.370000,-0.350000;;, + 5;3;-0.000000, 0.370000,-0.350000;;, + 6;3;-0.000000, 0.370000,-0.350000;;, + 7;3;-0.000000, 0.370000,-0.350000;;, + 8;3;-0.000000, 0.370000,-0.350000;;, + 9;3;-0.000000, 0.370000,-0.350000;;, + 10;3;-0.000000, 0.370000,-0.350000;;, + 11;3;-0.000000, 0.370000,-0.350000;;, + 12;3;-0.000000, 0.370000,-0.350000;;, + 13;3;-0.000000, 0.370000,-0.350000;;, + 14;3;-0.000000, 0.370000,-0.350000;;, + 15;3;-0.000000, 0.370000,-0.350000;;, + 16;3;-0.000000, 0.370000,-0.350000;;, + 17;3;-0.000000, 0.370000,-0.350000;;, + 18;3;-0.000000, 0.370000,-0.350000;;, + 19;3;-0.000000, 0.370000,-0.350000;;, + 20;3;-0.000000, 0.370000,-0.350000;;, + 21;3;-0.000000, 0.370000,-0.350000;;, + 22;3;-0.000000, 0.370000,-0.350000;;, + 23;3;-0.000000, 0.370000,-0.350000;;, + 24;3;-0.000000, 0.370000,-0.350000;;, + 25;3;-0.000000, 0.370000,-0.350000;;, + 26;3;-0.000000, 0.370000,-0.350000;;, + 27;3;-0.000000, 0.370000,-0.350000;;, + 28;3;-0.000000, 0.370000,-0.350000;;, + 29;3;-0.000000, 0.370000,-0.350000;;, + 30;3;-0.000000, 0.370000,-0.350000;;, + 31;3;-0.000000, 0.370000,-0.350000;;, + 32;3;-0.000000, 0.370000,-0.350000;;, + 33;3;-0.000000, 0.370000,-0.350000;;, + 34;3;-0.000000, 0.370000,-0.350000;;, + 35;3;-0.000000, 0.370000,-0.350000;;, + 36;3;-0.000000, 0.370000,-0.350000;;, + 37;3;-0.000000, 0.370000,-0.350000;;, + 38;3;-0.000000, 0.370000,-0.350000;;, + 39;3;-0.000000, 0.370000,-0.350000;;, + 40;3;-0.000000, 0.370000,-0.350000;;, + 41;3; 0.000072, 0.370002,-0.350000;;, + 42;3; 0.000290, 0.370008,-0.350000;;, + 43;3; 0.000645, 0.370019,-0.350000;;, + 44;3; 0.001109, 0.370034,-0.350000;;, + 45;3; 0.001634, 0.370052,-0.350000;;, + 46;3; 0.002159, 0.370072,-0.350000;;, + 47;3; 0.002623, 0.370092,-0.350000;;, + 48;3; 0.002978, 0.370111,-0.350000;;, + 49;3; 0.003196, 0.370128,-0.350000;;, + 50;3; 0.003268, 0.370143,-0.350000;;, + 51;3; 0.003206, 0.370157,-0.349908;;, + 52;3; 0.003020, 0.370173,-0.349631;;, + 53;3; 0.002715, 0.370190,-0.349181;;, + 54;3; 0.002313, 0.370207,-0.348593;;, + 55;3; 0.001855, 0.370224,-0.347926;;, + 56;3; 0.001391, 0.370238,-0.347259;;, + 57;3; 0.000973, 0.370250,-0.346671;;, + 58;3; 0.000642, 0.370259,-0.346221;;, + 59;3; 0.000422, 0.370264,-0.345944;;, + 60;3; 0.000321, 0.370265,-0.345852;;, + 61;3; 0.000281, 0.370264,-0.345875;;, + 62;3; 0.000243, 0.370259,-0.345944;;, + 63;3; 0.000208, 0.370252,-0.346059;;, + 64;3; 0.000175, 0.370242,-0.346221;;, + 65;3; 0.000145, 0.370229,-0.346426;;, + 66;3; 0.000117, 0.370213,-0.346671;;, + 67;3; 0.000093, 0.370195,-0.346951;;, + 68;3; 0.000073, 0.370175,-0.347259;;, + 69;3; 0.000055, 0.370154,-0.347587;;, + 70;3; 0.000040, 0.370133,-0.347926;;, + 71;3; 0.000028, 0.370111,-0.348264;;, + 72;3; 0.000019, 0.370090,-0.348593;;, + 73;3; 0.000012, 0.370070,-0.348901;;, + 74;3; 0.000007, 0.370052,-0.349181;;, + 75;3; 0.000004, 0.370037,-0.349426;;, + 76;3; 0.000002, 0.370024,-0.349631;;, + 77;3; 0.000001, 0.370013,-0.349792;;, + 78;3; 0.000000, 0.370006,-0.349908;;, + 79;3;-0.000000, 0.370002,-0.349977;;, + 80;3;-0.000000, 0.370000,-0.350000;;, + 81;3; 0.000072, 0.370003,-0.350000;;, + 82;3; 0.000290, 0.370013,-0.350000;;, + 83;3; 0.000645, 0.370028,-0.350000;;, + 84;3; 0.001109, 0.370048,-0.350000;;, + 85;3; 0.001634, 0.370072,-0.350000;;, + 86;3; 0.002159, 0.370094,-0.350000;;, + 87;3; 0.002623, 0.370115,-0.350000;;, + 88;3; 0.002978, 0.370130,-0.350000;;, + 89;3; 0.003196, 0.370140,-0.350000;;, + 90;3; 0.003268, 0.370143,-0.350000;;; + } + } + Animation { + {Armature_Bone_008} + AnimationKey { // Rotation + 0; + 91; + 0;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 1;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 2;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 3;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 4;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 5;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 6;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 7;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 8;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 9;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 10;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 11;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 12;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 13;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 14;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 15;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 16;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 17;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 18;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 19;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 20;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 21;4;-0.430343, 0.506930,-0.327682,-0.669908;;, + 22;4;-0.426552, 0.521158,-0.351077,-0.646621;;, + 23;4;-0.423372, 0.537841,-0.382799,-0.615139;;, + 24;4;-0.424177, 0.547749,-0.410786,-0.587535;;, + 25;4;-0.430424, 0.545661,-0.426685,-0.572130;;, + 26;4;-0.446036, 0.529623,-0.431828,-0.568361;;, + 27;4;-0.473165, 0.500168,-0.429575,-0.573601;;, + 28;4;-0.503646, 0.466128,-0.422607,-0.584473;;, + 29;4;-0.525804, 0.440497,-0.416136,-0.594529;;, + 30;4;-0.532957, 0.430963,-0.414106,-0.598952;;, + 31;4;-0.529573, 0.432276,-0.411956,-0.601876;;, + 32;4;-0.520708, 0.438284,-0.403853,-0.608859;;, + 33;4;-0.507758, 0.447792,-0.391311,-0.618867;;, + 34;4;-0.494055, 0.457946,-0.377950,-0.629434;;, + 35;4;-0.482438, 0.466313,-0.366855,-0.638456;;, + 36;4;-0.470683, 0.474543,-0.355897,-0.647615;;, + 37;4;-0.456654, 0.484374,-0.342859,-0.658508;;, + 38;4;-0.443445, 0.493627,-0.330572,-0.668775;;, + 39;4;-0.434691, 0.499748,-0.322355,-0.675648;;, + 40;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 41;4;-0.433297, 0.501304,-0.319938,-0.677143;;, + 42;4;-0.437234, 0.500436,-0.321192,-0.674436;;, + 43;4;-0.443562, 0.499099,-0.323304,-0.669960;;, + 44;4;-0.451798, 0.497393,-0.326109,-0.664065;;, + 45;4;-0.461102, 0.495485,-0.329311,-0.657361;;, + 46;4;-0.470390, 0.493593,-0.332529,-0.650642;;, + 47;4;-0.478580, 0.491932,-0.335379,-0.644701;;, + 48;4;-0.484836, 0.490667,-0.337563,-0.640154;;, + 49;4;-0.488682, 0.489891,-0.338909,-0.637355;;, + 50;4;-0.489959, 0.489634,-0.339356,-0.636425;;, + 51;4;-0.488203, 0.490544,-0.338076,-0.637494;;, + 52;4;-0.482907, 0.493275,-0.334232,-0.640722;;, + 53;4;-0.474276, 0.497695,-0.328002,-0.645990;;, + 54;4;-0.462950, 0.503437,-0.319892,-0.652919;;, + 55;4;-0.450057, 0.509882,-0.310765,-0.660829;;, + 56;4;-0.437072, 0.516234,-0.301731,-0.668832;;, + 57;4;-0.425478, 0.521708,-0.293889,-0.676029;;, + 58;4;-0.416428, 0.525709,-0.288078,-0.681717;;, + 59;4;-0.410592, 0.527900,-0.284774,-0.685484;;, + 60;4;-0.408206, 0.528180,-0.284123,-0.687183;;, + 61;4;-0.407596, 0.527496,-0.284832,-0.687823;;, + 62;4;-0.407109, 0.526768,-0.285632,-0.688402;;, + 63;4;-0.406763, 0.525992,-0.286533,-0.688910;;, + 64;4;-0.406577, 0.525161,-0.287546,-0.689333;;, + 65;4;-0.406571, 0.524266,-0.288679,-0.689658;;, + 66;4;-0.406764, 0.523301,-0.289941,-0.689870;;, + 67;4;-0.407173, 0.522260,-0.291339,-0.689955;;, + 68;4;-0.407814, 0.521136,-0.292877,-0.689900;;, + 69;4;-0.408696, 0.519926,-0.294555,-0.689694;;, + 70;4;-0.409825, 0.518627,-0.296371,-0.689331;;, + 71;4;-0.411198, 0.517240,-0.298318,-0.688807;;, + 72;4;-0.412807, 0.515767,-0.300386,-0.688122;;, + 73;4;-0.414638, 0.514213,-0.302562,-0.687282;;, + 74;4;-0.416671, 0.512583,-0.304831,-0.686294;;, + 75;4;-0.418887, 0.510887,-0.307178,-0.685170;;, + 76;4;-0.421261, 0.509131,-0.309589,-0.683923;;, + 77;4;-0.423772, 0.507324,-0.312048,-0.682566;;, + 78;4;-0.426396, 0.505473,-0.314543,-0.681113;;, + 79;4;-0.429116, 0.503586,-0.317062,-0.679575;;, + 80;4;-0.431912, 0.501668,-0.319598,-0.677966;;, + 81;4;-0.435638, 0.499737,-0.322226,-0.675630;;, + 82;4;-0.441129, 0.497831,-0.324997,-0.671920;;, + 83;4;-0.448197, 0.495999,-0.327833,-0.666966;;, + 84;4;-0.456410, 0.494307,-0.330616,-0.661085;;, + 85;4;-0.465078, 0.492825,-0.333197,-0.654792;;, + 86;4;-0.473352, 0.491611,-0.335425,-0.648727;;, + 87;4;-0.480427, 0.490696,-0.337185,-0.643507;;, + 88;4;-0.485713, 0.490080,-0.338420,-0.639587;;, + 89;4;-0.488910, 0.489739,-0.339131,-0.637208;;, + 90;4;-0.489959, 0.489634,-0.339356,-0.636425;;; + } + AnimationKey { // Scale + 1; + 91; + 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;;; + } + AnimationKey { // Position + 2; + 91; + 0;3;-0.000000, 0.370000, 0.350000;;, + 1;3;-0.000000, 0.370000, 0.350000;;, + 2;3;-0.000000, 0.370000, 0.350000;;, + 3;3;-0.000000, 0.370000, 0.350000;;, + 4;3;-0.000000, 0.370000, 0.350000;;, + 5;3;-0.000000, 0.370000, 0.350000;;, + 6;3;-0.000000, 0.370000, 0.350000;;, + 7;3;-0.000000, 0.370000, 0.350000;;, + 8;3;-0.000000, 0.370000, 0.350000;;, + 9;3;-0.000000, 0.370000, 0.350000;;, + 10;3;-0.000000, 0.370000, 0.350000;;, + 11;3;-0.000000, 0.370000, 0.350000;;, + 12;3;-0.000000, 0.370000, 0.350000;;, + 13;3;-0.000000, 0.370000, 0.350000;;, + 14;3;-0.000000, 0.370000, 0.350000;;, + 15;3;-0.000000, 0.370000, 0.350000;;, + 16;3;-0.000000, 0.370000, 0.350000;;, + 17;3;-0.000000, 0.370000, 0.350000;;, + 18;3;-0.000000, 0.370000, 0.350000;;, + 19;3;-0.000000, 0.370000, 0.350000;;, + 20;3;-0.000000, 0.370000, 0.350000;;, + 21;3;-0.000000, 0.370000, 0.350000;;, + 22;3;-0.000000, 0.370000, 0.350000;;, + 23;3;-0.000000, 0.370000, 0.350000;;, + 24;3;-0.000000, 0.370000, 0.350000;;, + 25;3;-0.000000, 0.370000, 0.350000;;, + 26;3;-0.000000, 0.370000, 0.350000;;, + 27;3;-0.000000, 0.370000, 0.350000;;, + 28;3;-0.000000, 0.370000, 0.350000;;, + 29;3;-0.000000, 0.370000, 0.350000;;, + 30;3;-0.000000, 0.370000, 0.350000;;, + 31;3;-0.000000, 0.370000, 0.350000;;, + 32;3;-0.000000, 0.370000, 0.350000;;, + 33;3;-0.000000, 0.370000, 0.350000;;, + 34;3;-0.000000, 0.370000, 0.350000;;, + 35;3;-0.000000, 0.370000, 0.350000;;, + 36;3;-0.000000, 0.370000, 0.350000;;, + 37;3;-0.000000, 0.370000, 0.350000;;, + 38;3;-0.000000, 0.370000, 0.350000;;, + 39;3;-0.000000, 0.370000, 0.350000;;, + 40;3;-0.000000, 0.370000, 0.350000;;, + 41;3; 0.000072, 0.370002, 0.350000;;, + 42;3; 0.000291, 0.370008, 0.350000;;, + 43;3; 0.000645, 0.370019, 0.350000;;, + 44;3; 0.001109, 0.370034, 0.350000;;, + 45;3; 0.001634, 0.370052, 0.350000;;, + 46;3; 0.002159, 0.370072, 0.350000;;, + 47;3; 0.002623, 0.370092, 0.350000;;, + 48;3; 0.002978, 0.370111, 0.350000;;, + 49;3; 0.003196, 0.370128, 0.350000;;, + 50;3; 0.003268, 0.370143, 0.350000;;, + 51;3; 0.003206, 0.370157, 0.349908;;, + 52;3; 0.003020, 0.370173, 0.349631;;, + 53;3; 0.002715, 0.370190, 0.349181;;, + 54;3; 0.002314, 0.370207, 0.348593;;, + 55;3; 0.001855, 0.370224, 0.347926;;, + 56;3; 0.001391, 0.370238, 0.347259;;, + 57;3; 0.000973, 0.370250, 0.346671;;, + 58;3; 0.000643, 0.370259, 0.346221;;, + 59;3; 0.000422, 0.370264, 0.345944;;, + 60;3; 0.000322, 0.370265, 0.345852;;, + 61;3; 0.000281, 0.370264, 0.345875;;, + 62;3; 0.000243, 0.370260, 0.345944;;, + 63;3; 0.000208, 0.370252, 0.346060;;, + 64;3; 0.000175, 0.370242, 0.346221;;, + 65;3; 0.000145, 0.370229, 0.346426;;, + 66;3; 0.000118, 0.370213, 0.346671;;, + 67;3; 0.000093, 0.370195, 0.346951;;, + 68;3; 0.000073, 0.370175, 0.347259;;, + 69;3; 0.000055, 0.370154, 0.347587;;, + 70;3; 0.000040, 0.370133, 0.347926;;, + 71;3; 0.000028, 0.370111, 0.348264;;, + 72;3; 0.000019, 0.370090, 0.348593;;, + 73;3; 0.000012, 0.370070, 0.348901;;, + 74;3; 0.000007, 0.370052, 0.349181;;, + 75;3; 0.000004, 0.370037, 0.349426;;, + 76;3; 0.000002, 0.370024, 0.349631;;, + 77;3; 0.000001, 0.370013, 0.349793;;, + 78;3; 0.000000, 0.370006, 0.349908;;, + 79;3;-0.000000, 0.370002, 0.349977;;, + 80;3;-0.000000, 0.370000, 0.350000;;, + 81;3; 0.000072, 0.370003, 0.350000;;, + 82;3; 0.000290, 0.370013, 0.350000;;, + 83;3; 0.000645, 0.370028, 0.350000;;, + 84;3; 0.001109, 0.370049, 0.350000;;, + 85;3; 0.001634, 0.370071, 0.350000;;, + 86;3; 0.002159, 0.370094, 0.350000;;, + 87;3; 0.002623, 0.370115, 0.350000;;, + 88;3; 0.002978, 0.370130, 0.350000;;, + 89;3; 0.003196, 0.370140, 0.350000;;, + 90;3; 0.003268, 0.370143, 0.350000;;; + } + } + Animation { + {Armature_Bone_009} + AnimationKey { // Rotation + 0; + 91; + 0;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 1;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 2;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 3;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 4;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 5;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 6;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 7;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 8;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 9;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 10;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 11;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 12;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 13;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 14;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 15;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 16;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 17;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 18;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 19;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 20;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 21;4;-0.171292,-0.792475,-0.251317, 0.526549;;, + 22;4;-0.193248,-0.771364,-0.249637, 0.546270;;, + 23;4;-0.223546,-0.743385,-0.249591, 0.570717;;, + 24;4;-0.251250,-0.719894,-0.253662, 0.588055;;, + 25;4;-0.268549,-0.708463,-0.262571, 0.591119;;, + 26;4;-0.279750,-0.709268,-0.276909, 0.577247;;, + 27;4;-0.290100,-0.720419,-0.296449, 0.546706;;, + 28;4;-0.297644,-0.737394,-0.316737, 0.509204;;, + 29;4;-0.300956,-0.752215,-0.331815, 0.479757;;, + 30;4;-0.300181,-0.759263,-0.338560, 0.467747;;, + 31;4;-0.294533,-0.762200,-0.337904, 0.467422;;, + 32;4;-0.282366,-0.766052,-0.330739, 0.471577;;, + 33;4;-0.265342,-0.770585,-0.318723, 0.479071;;, + 34;4;-0.247421,-0.775245,-0.305812, 0.487182;;, + 35;4;-0.231981,-0.779557,-0.295379, 0.493587;;, + 36;4;-0.216498,-0.784385,-0.284989, 0.499477;;, + 37;4;-0.198473,-0.790273,-0.272179, 0.506361;;, + 38;4;-0.181365,-0.795779,-0.260244, 0.512886;;, + 39;4;-0.169233,-0.799209,-0.253042, 0.517465;;, + 40;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 41;4;-0.162442,-0.798703,-0.255561, 0.519869;;, + 42;4;-0.162930,-0.796660,-0.261194, 0.519765;;, + 43;4;-0.165185,-0.793799,-0.268891, 0.519134;;, + 44;4;-0.168946,-0.790314,-0.278146, 0.518052;;, + 45;4;-0.173708,-0.786524,-0.288130, 0.516669;;, + 46;4;-0.178778,-0.782831,-0.297805, 0.515188;;, + 47;4;-0.183435,-0.779629,-0.306165, 0.513823;;, + 48;4;-0.187092,-0.777211,-0.312460, 0.512749;;, + 49;4;-0.189384,-0.775737,-0.316289, 0.512075;;, + 50;4;-0.190155,-0.775251,-0.317551, 0.511848;;, + 51;4;-0.188583,-0.775815,-0.315644, 0.512426;;, + 52;4;-0.183859,-0.777517,-0.309895, 0.514159;;, + 53;4;-0.176198,-0.780295,-0.300528, 0.516967;;, + 54;4;-0.166213,-0.783949,-0.288242, 0.520619;;, + 55;4;-0.154958,-0.788121,-0.274267, 0.524724;;, + 56;4;-0.143790,-0.792342,-0.260205, 0.528780;;, + 57;4;-0.134055,-0.796137,-0.247668, 0.532291;;, + 58;4;-0.126785,-0.799138,-0.237910, 0.534877;;, + 59;4;-0.122565,-0.801125,-0.231658, 0.536325;;, + 60;4;-0.121580,-0.802023,-0.229163, 0.536569;;, + 61;4;-0.122260,-0.802383,-0.228579, 0.536191;;, + 62;4;-0.123065,-0.802757,-0.228082, 0.535757;;, + 63;4;-0.124009,-0.803138,-0.227689, 0.535265;;, + 64;4;-0.125105,-0.803515,-0.227422, 0.534711;;, + 65;4;-0.126364,-0.803880,-0.227305, 0.534092;;, + 66;4;-0.127799,-0.804220,-0.227360, 0.533407;;, + 67;4;-0.129416,-0.804520,-0.227612, 0.532656;;, + 68;4;-0.131222,-0.804766,-0.228084, 0.531841;;, + 69;4;-0.133216,-0.804941,-0.228794, 0.530964;;, + 70;4;-0.135394,-0.805033,-0.229757, 0.530032;;, + 71;4;-0.137745,-0.805026,-0.230980, 0.529051;;, + 72;4;-0.140256,-0.804911,-0.232466, 0.528030;;, + 73;4;-0.142909,-0.804681,-0.234207, 0.526978;;, + 74;4;-0.145683,-0.804331,-0.236193, 0.525905;;, + 75;4;-0.148557,-0.803862,-0.238407, 0.524818;;, + 76;4;-0.151511,-0.803274,-0.240830, 0.523727;;, + 77;4;-0.154526,-0.802573,-0.243440, 0.522638;;, + 78;4;-0.157585,-0.801765,-0.246218, 0.521556;;, + 79;4;-0.160672,-0.800856,-0.249142, 0.520486;;, + 80;4;-0.163776,-0.799854,-0.252193, 0.519432;;, + 81;4;-0.167041,-0.798407,-0.256322, 0.518362;;, + 82;4;-0.170579,-0.796167,-0.262460, 0.517258;;, + 83;4;-0.174288,-0.793213,-0.270398, 0.516150;;, + 84;4;-0.178005,-0.789731,-0.279646, 0.515083;;, + 85;4;-0.181517,-0.786021,-0.289423, 0.514109;;, + 86;4;-0.184597,-0.782457,-0.298769, 0.513280;;, + 87;4;-0.187063,-0.779396,-0.306766, 0.512634;;, + 88;4;-0.188814,-0.777100,-0.312745, 0.512185;;, + 89;4;-0.189831,-0.775709,-0.316363, 0.511929;;, + 90;4;-0.190155,-0.775251,-0.317551, 0.511848;;; + } + AnimationKey { // Scale + 1; + 91; + 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;;; + } + AnimationKey { // Position + 2; + 91; + 0;3;-0.000000, 0.280000,-0.350000;;, + 1;3;-0.000000, 0.280000,-0.350000;;, + 2;3;-0.000000, 0.280000,-0.350000;;, + 3;3;-0.000000, 0.280000,-0.350000;;, + 4;3;-0.000000, 0.280000,-0.350000;;, + 5;3;-0.000000, 0.280000,-0.350000;;, + 6;3;-0.000000, 0.280000,-0.350000;;, + 7;3;-0.000000, 0.280000,-0.350000;;, + 8;3;-0.000000, 0.280000,-0.350000;;, + 9;3;-0.000000, 0.280000,-0.350000;;, + 10;3;-0.000000, 0.280000,-0.350000;;, + 11;3;-0.000000, 0.280000,-0.350000;;, + 12;3;-0.000000, 0.280000,-0.350000;;, + 13;3;-0.000000, 0.280000,-0.350000;;, + 14;3;-0.000000, 0.280000,-0.350000;;, + 15;3;-0.000000, 0.280000,-0.350000;;, + 16;3;-0.000000, 0.280000,-0.350000;;, + 17;3;-0.000000, 0.280000,-0.350000;;, + 18;3;-0.000000, 0.280000,-0.350000;;, + 19;3;-0.000000, 0.280000,-0.350000;;, + 20;3;-0.000000, 0.280000,-0.350000;;, + 21;3;-0.000000, 0.280000,-0.350000;;, + 22;3;-0.000000, 0.280000,-0.350000;;, + 23;3;-0.000000, 0.280000,-0.350000;;, + 24;3;-0.000000, 0.280000,-0.350000;;, + 25;3;-0.000000, 0.280000,-0.350000;;, + 26;3;-0.000000, 0.280000,-0.350000;;, + 27;3;-0.000000, 0.280000,-0.350000;;, + 28;3;-0.000000, 0.280000,-0.350000;;, + 29;3;-0.000000, 0.280000,-0.350000;;, + 30;3;-0.000000, 0.280000,-0.350000;;, + 31;3;-0.000000, 0.280000,-0.350000;;, + 32;3;-0.000000, 0.280000,-0.350000;;, + 33;3;-0.000000, 0.280000,-0.350000;;, + 34;3;-0.000000, 0.280000,-0.350000;;, + 35;3;-0.000000, 0.280000,-0.350000;;, + 36;3;-0.000000, 0.280000,-0.350000;;, + 37;3;-0.000000, 0.280000,-0.350000;;, + 38;3;-0.000000, 0.280000,-0.350000;;, + 39;3;-0.000000, 0.280000,-0.350000;;, + 40;3;-0.000000, 0.280000,-0.350000;;, + 41;3; 0.000246, 0.280007,-0.350000;;, + 42;3; 0.000988, 0.280029,-0.350000;;, + 43;3; 0.002193, 0.280065,-0.350000;;, + 44;3; 0.003770, 0.280115,-0.350000;;, + 45;3; 0.005556, 0.280177,-0.350000;;, + 46;3; 0.007342, 0.280244,-0.350000;;, + 47;3; 0.008919, 0.280313,-0.350000;;, + 48;3; 0.010124, 0.280378,-0.350000;;, + 49;3; 0.010866, 0.280436,-0.350000;;, + 50;3; 0.011112, 0.280485,-0.350000;;, + 51;3; 0.010902, 0.280533,-0.349687;;, + 52;3; 0.010267, 0.280587,-0.348746;;, + 53;3; 0.009230, 0.280645,-0.347216;;, + 54;3; 0.007866, 0.280703,-0.345215;;, + 55;3; 0.006308, 0.280760,-0.342948;;, + 56;3; 0.004730, 0.280810,-0.340681;;, + 57;3; 0.003310, 0.280851,-0.338680;;, + 58;3; 0.002184, 0.280880,-0.337150;;, + 59;3; 0.001436, 0.280897,-0.336209;;, + 60;3; 0.001093, 0.280902,-0.335897;;, + 61;3; 0.000957, 0.280897,-0.335974;;, + 62;3; 0.000827, 0.280882,-0.336209;;, + 63;3; 0.000706, 0.280857,-0.336602;;, + 64;3; 0.000594, 0.280822,-0.337150;;, + 65;3; 0.000492, 0.280778,-0.337847;;, + 66;3; 0.000400, 0.280724,-0.338680;;, + 67;3; 0.000318, 0.280663,-0.339633;;, + 68;3; 0.000247, 0.280596,-0.340681;;, + 69;3; 0.000186, 0.280525,-0.341797;;, + 70;3; 0.000137, 0.280451,-0.342948;;, + 71;3; 0.000096, 0.280378,-0.344099;;, + 72;3; 0.000065, 0.280306,-0.345215;;, + 73;3; 0.000042, 0.280239,-0.346264;;, + 74;3; 0.000025, 0.280178,-0.347216;;, + 75;3; 0.000014, 0.280125,-0.348050;;, + 76;3; 0.000007, 0.280080,-0.348746;;, + 77;3; 0.000003, 0.280045,-0.349295;;, + 78;3; 0.000001, 0.280020,-0.349687;;, + 79;3;-0.000000, 0.280005,-0.349922;;, + 80;3;-0.000000, 0.280000,-0.350000;;, + 81;3; 0.000246, 0.280011,-0.350000;;, + 82;3; 0.000988, 0.280043,-0.350000;;, + 83;3; 0.002193, 0.280096,-0.350000;;, + 84;3; 0.003770, 0.280165,-0.350000;;, + 85;3; 0.005556, 0.280243,-0.350000;;, + 86;3; 0.007342, 0.280321,-0.350000;;, + 87;3; 0.008919, 0.280389,-0.350000;;, + 88;3; 0.010125, 0.280442,-0.350000;;, + 89;3; 0.010866, 0.280474,-0.350000;;, + 90;3; 0.011112, 0.280485,-0.350000;;; + } + } + Animation { + {Armature_Bone_010} + AnimationKey { // Rotation + 0; + 91; + 0;4;-0.252193, 0.519431,-0.163776,-0.799855;;, + 1;4;-0.252193, 0.519431,-0.163776,-0.799855;;, + 2;4;-0.252721, 0.519116,-0.164609,-0.799607;;, + 3;4;-0.254316, 0.518161,-0.167128,-0.798857;;, + 4;4;-0.256981, 0.516566,-0.171338,-0.797604;;, + 5;4;-0.260695, 0.514344,-0.177204,-0.795859;;, + 6;4;-0.265402, 0.511527,-0.184638,-0.793646;;, + 7;4;-0.271009, 0.508171,-0.193494,-0.791011;;, + 8;4;-0.277379, 0.504359,-0.203554,-0.788017;;, + 9;4;-0.284333, 0.500198,-0.214537,-0.784749;;, + 10;4;-0.291654, 0.495817,-0.226099,-0.781308;;, + 11;4;-0.299100, 0.491361,-0.237859,-0.777809;;, + 12;4;-0.306421, 0.486980,-0.249422,-0.774368;;, + 13;4;-0.313375, 0.482819,-0.260404,-0.771100;;, + 14;4;-0.319744, 0.479007,-0.270465,-0.768106;;, + 15;4;-0.325351, 0.475652,-0.279320,-0.765471;;, + 16;4;-0.330058, 0.472835,-0.286754,-0.763259;;, + 17;4;-0.333772, 0.470612,-0.292619,-0.761514;;, + 18;4;-0.336438, 0.469017,-0.296829,-0.760261;;, + 19;4;-0.338032, 0.468063,-0.299348,-0.759511;;, + 20;4;-0.338560, 0.467747,-0.300181,-0.759264;;, + 21;4;-0.335792, 0.468887,-0.296643,-0.760735;;, + 22;4;-0.327388, 0.472463,-0.285716,-0.765167;;, + 23;4;-0.314961, 0.478033,-0.269101,-0.771627;;, + 24;4;-0.302097, 0.484277,-0.251131,-0.778154;;, + 25;4;-0.291744, 0.489957,-0.235611,-0.783192;;, + 26;4;-0.281576, 0.495824,-0.219905,-0.788042;;, + 27;4;-0.269440, 0.502794,-0.201209,-0.793843;;, + 28;4;-0.258484, 0.509836,-0.183122,-0.798831;;, + 29;4;-0.252275, 0.515606,-0.169999,-0.801068;;, + 30;4;-0.252193, 0.519431,-0.163776,-0.799855;;, + 31;4;-0.253356, 0.528589,-0.169252,-0.790436;;, + 32;4;-0.252052, 0.548687,-0.190830,-0.768950;;, + 33;4;-0.251141, 0.572270,-0.221992,-0.741836;;, + 34;4;-0.254119, 0.588517,-0.250788,-0.719438;;, + 35;4;-0.262568, 0.591122,-0.268546,-0.708465;;, + 36;4;-0.276680, 0.577477,-0.279973,-0.709043;;, + 37;4;-0.295680, 0.547475,-0.290865,-0.719653;;, + 38;4;-0.315542, 0.510399,-0.298837,-0.736201;;, + 39;4;-0.330806, 0.480766,-0.301963,-0.751207;;, + 40;4;-0.338560, 0.467747,-0.300181,-0.759264;;, + 41;4;-0.342060, 0.465129,-0.294983,-0.762747;;, + 42;4;-0.344609, 0.465174,-0.287133,-0.765377;;, + 43;4;-0.345966, 0.467899,-0.276707,-0.767177;;, + 44;4;-0.345911, 0.473042,-0.264084,-0.768268;;, + 45;4;-0.344307, 0.480004,-0.249999,-0.768883;;, + 46;4;-0.341161, 0.487894,-0.235456,-0.769344;;, + 47;4;-0.336637, 0.495731,-0.221505,-0.769988;;, + 48;4;-0.331002, 0.502669,-0.209000,-0.771089;;, + 49;4;-0.324552, 0.508139,-0.198475,-0.772818;;, + 50;4;-0.317551, 0.511848,-0.190155,-0.775251;;, + 51;4;-0.309437, 0.514831,-0.182375,-0.778220;;, + 52;4;-0.299571, 0.518159,-0.173535,-0.781517;;, + 53;4;-0.288242, 0.521727,-0.163911,-0.785056;;, + 54;4;-0.276014, 0.525357,-0.153985,-0.788687;;, + 55;4;-0.263725, 0.528808,-0.144417,-0.792205;;, + 56;4;-0.252350, 0.531824,-0.135936,-0.795385;;, + 57;4;-0.242771, 0.534188,-0.129158,-0.798035;;, + 58;4;-0.235586, 0.535777,-0.124461,-0.800038;;, + 59;4;-0.231055, 0.536558,-0.121961,-0.801359;;, + 60;4;-0.229163, 0.536569,-0.121580,-0.802023;;, + 61;4;-0.228579, 0.536190,-0.122260,-0.802383;;, + 62;4;-0.228082, 0.535757,-0.123065,-0.802757;;, + 63;4;-0.227689, 0.535265,-0.124009,-0.803138;;, + 64;4;-0.227422, 0.534711,-0.125105,-0.803515;;, + 65;4;-0.227305, 0.534092,-0.126364,-0.803880;;, + 66;4;-0.227360, 0.533407,-0.127799,-0.804220;;, + 67;4;-0.227612, 0.532656,-0.129416,-0.804520;;, + 68;4;-0.228084, 0.531840,-0.131222,-0.804766;;, + 69;4;-0.228794, 0.530964,-0.133216,-0.804942;;, + 70;4;-0.229757, 0.530031,-0.135394,-0.805033;;, + 71;4;-0.230980, 0.529051,-0.137745,-0.805026;;, + 72;4;-0.232466, 0.528030,-0.140256,-0.804911;;, + 73;4;-0.234207, 0.526978,-0.142909,-0.804681;;, + 74;4;-0.236193, 0.525905,-0.145683,-0.804332;;, + 75;4;-0.238407, 0.524818,-0.148557,-0.803862;;, + 76;4;-0.240830, 0.523727,-0.151511,-0.803274;;, + 77;4;-0.243440, 0.522638,-0.154526,-0.802573;;, + 78;4;-0.246218, 0.521556,-0.157584,-0.801765;;, + 79;4;-0.249142, 0.520486,-0.160672,-0.800856;;, + 80;4;-0.252193, 0.519431,-0.163776,-0.799855;;, + 81;4;-0.256322, 0.518362,-0.167041,-0.798407;;, + 82;4;-0.262460, 0.517258,-0.170579,-0.796168;;, + 83;4;-0.270398, 0.516150,-0.174288,-0.793214;;, + 84;4;-0.279646, 0.515082,-0.178005,-0.789731;;, + 85;4;-0.289423, 0.514109,-0.181517,-0.786021;;, + 86;4;-0.298769, 0.513280,-0.184597,-0.782457;;, + 87;4;-0.306766, 0.512634,-0.187063,-0.779396;;, + 88;4;-0.312745, 0.512185,-0.188814,-0.777100;;, + 89;4;-0.316363, 0.511929,-0.189831,-0.775709;;, + 90;4;-0.317551, 0.511848,-0.190155,-0.775251;;; + } + AnimationKey { // Scale + 1; + 91; + 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;;; + } + AnimationKey { // Position + 2; + 91; + 0;3;-0.000000, 0.280000, 0.350000;;, + 1;3;-0.000000, 0.280000, 0.350000;;, + 2;3;-0.000000, 0.280000, 0.350000;;, + 3;3;-0.000000, 0.280000, 0.350000;;, + 4;3;-0.000000, 0.280000, 0.350000;;, + 5;3;-0.000000, 0.280000, 0.350000;;, + 6;3;-0.000000, 0.280000, 0.350000;;, + 7;3;-0.000000, 0.280000, 0.350000;;, + 8;3;-0.000000, 0.280000, 0.350000;;, + 9;3;-0.000000, 0.280000, 0.350000;;, + 10;3;-0.000000, 0.280000, 0.350000;;, + 11;3;-0.000000, 0.280000, 0.350000;;, + 12;3;-0.000000, 0.280000, 0.350000;;, + 13;3;-0.000000, 0.280000, 0.350000;;, + 14;3;-0.000000, 0.280000, 0.350000;;, + 15;3;-0.000000, 0.280000, 0.350000;;, + 16;3;-0.000000, 0.280000, 0.350000;;, + 17;3;-0.000000, 0.280000, 0.350000;;, + 18;3;-0.000000, 0.280000, 0.350000;;, + 19;3;-0.000000, 0.280000, 0.350000;;, + 20;3;-0.000000, 0.280000, 0.350000;;, + 21;3;-0.000000, 0.280000, 0.350000;;, + 22;3;-0.000000, 0.280000, 0.350000;;, + 23;3;-0.000000, 0.280000, 0.350000;;, + 24;3;-0.000000, 0.280000, 0.350000;;, + 25;3;-0.000000, 0.280000, 0.350000;;, + 26;3;-0.000000, 0.280000, 0.350000;;, + 27;3;-0.000000, 0.280000, 0.350000;;, + 28;3;-0.000000, 0.280000, 0.350000;;, + 29;3;-0.000000, 0.280000, 0.350000;;, + 30;3;-0.000000, 0.280000, 0.350000;;, + 31;3;-0.000000, 0.280000, 0.350000;;, + 32;3;-0.000000, 0.280000, 0.350000;;, + 33;3;-0.000000, 0.280000, 0.350000;;, + 34;3;-0.000000, 0.280000, 0.350000;;, + 35;3;-0.000000, 0.280000, 0.350000;;, + 36;3;-0.000000, 0.280000, 0.350000;;, + 37;3;-0.000000, 0.280000, 0.350000;;, + 38;3;-0.000000, 0.280000, 0.350000;;, + 39;3;-0.000000, 0.280000, 0.350000;;, + 40;3;-0.000000, 0.280000, 0.350000;;, + 41;3; 0.000246, 0.280007, 0.350000;;, + 42;3; 0.000988, 0.280029, 0.350000;;, + 43;3; 0.002193, 0.280065, 0.350000;;, + 44;3; 0.003770, 0.280115, 0.350000;;, + 45;3; 0.005556, 0.280177, 0.350000;;, + 46;3; 0.007342, 0.280244, 0.350000;;, + 47;3; 0.008919, 0.280313, 0.350000;;, + 48;3; 0.010125, 0.280378, 0.350000;;, + 49;3; 0.010866, 0.280436, 0.350000;;, + 50;3; 0.011112, 0.280485, 0.350000;;, + 51;3; 0.010902, 0.280534, 0.349687;;, + 52;3; 0.010267, 0.280587, 0.348746;;, + 53;3; 0.009230, 0.280645, 0.347216;;, + 54;3; 0.007866, 0.280703, 0.345215;;, + 55;3; 0.006308, 0.280760, 0.342948;;, + 56;3; 0.004730, 0.280810, 0.340681;;, + 57;3; 0.003310, 0.280851, 0.338680;;, + 58;3; 0.002185, 0.280880, 0.337150;;, + 59;3; 0.001436, 0.280897, 0.336209;;, + 60;3; 0.001093, 0.280903, 0.335897;;, + 61;3; 0.000957, 0.280898, 0.335974;;, + 62;3; 0.000828, 0.280883, 0.336209;;, + 63;3; 0.000707, 0.280857, 0.336602;;, + 64;3; 0.000595, 0.280822, 0.337150;;, + 65;3; 0.000492, 0.280778, 0.337847;;, + 66;3; 0.000400, 0.280724, 0.338680;;, + 67;3; 0.000318, 0.280664, 0.339633;;, + 68;3; 0.000247, 0.280596, 0.340681;;, + 69;3; 0.000186, 0.280525, 0.341797;;, + 70;3; 0.000137, 0.280451, 0.342948;;, + 71;3; 0.000097, 0.280378, 0.344099;;, + 72;3; 0.000065, 0.280306, 0.345215;;, + 73;3; 0.000042, 0.280239, 0.346264;;, + 74;3; 0.000025, 0.280178, 0.347216;;, + 75;3; 0.000014, 0.280125, 0.348050;;, + 76;3; 0.000007, 0.280080, 0.348746;;, + 77;3; 0.000003, 0.280045, 0.349295;;, + 78;3; 0.000001, 0.280020, 0.349687;;, + 79;3; 0.000000, 0.280005, 0.349922;;, + 80;3;-0.000000, 0.280000, 0.350000;;, + 81;3; 0.000246, 0.280011, 0.350000;;, + 82;3; 0.000988, 0.280043, 0.350000;;, + 83;3; 0.002193, 0.280096, 0.350000;;, + 84;3; 0.003770, 0.280165, 0.350000;;, + 85;3; 0.005556, 0.280243, 0.350000;;, + 86;3; 0.007342, 0.280321, 0.350000;;, + 87;3; 0.008919, 0.280390, 0.350000;;, + 88;3; 0.010125, 0.280442, 0.350000;;, + 89;3; 0.010866, 0.280475, 0.350000;;, + 90;3; 0.011112, 0.280485, 0.350000;;; + } + } + Animation { + {Group8} + AnimationKey { // Rotation + 0; + 91; + 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;;; + } + AnimationKey { // Scale + 1; + 91; + 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;;; + } + AnimationKey { // Position + 2; + 91; + 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;;; + } + } +} // End of AnimationSet Global diff --git a/mods/mobs/models/mobs_stone_monster.png b/mods/mobs/models/mobs_stone_monster.png new file mode 100644 index 00000000..95c3c162 Binary files /dev/null and b/mods/mobs/models/mobs_stone_monster.png differ diff --git a/mods/mobs/models/mobs_stone_monster.x b/mods/mobs/models/mobs_stone_monster.x new file mode 100644 index 00000000..ad0c6d86 --- /dev/null +++ b/mods/mobs/models/mobs_stone_monster.x @@ -0,0 +1,2753 @@ +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.019749, 0.002151, 3.487330, 1.000000;; + } + Frame Armature_Root { + FrameTransformMatrix { + 0.999981,-0.000000,-0.006250, 0.000000, + 0.006250, 0.000000, 0.999981, 0.000000, + -0.000000,-1.000000, 0.000000, 0.000000, + -0.013160,-0.000000,-0.231382, 1.000000;; + } + Frame Armature_Bone_001 { + FrameTransformMatrix { + 0.992969, 0.003712,-0.118316, 0.000000, + -0.118209,-0.021667,-0.992752, 0.000000, + -0.006249, 0.999758,-0.021075, 0.000000, + -0.777564, 2.195408, 0.000000, 1.000000;; + } + } //End of Armature_Bone_001 + Frame Armature_Bone_002 { + FrameTransformMatrix { + 0.986605, 0.002728, 0.163107, 0.000000, + 0.163010, 0.021813,-0.986383, 0.000000, + -0.006249, 0.999758, 0.021076, 0.000000, + 0.734794, 2.204861, 0.000000, 1.000000;; + } + } //End of Armature_Bone_002 + Frame Armature_Bone_003 { + FrameTransformMatrix { + 0.999979, 0.006415,-0.000010, 0.000000, + 0.006403,-0.997984, 0.063140, 0.000000, + 0.000395,-0.063139,-0.998005, 0.000000, + 0.287642,-0.253263, 0.000001, 1.000000;; + } + } //End of Armature_Bone_003 + Frame Armature_Bone_004 { + FrameTransformMatrix { + 0.999979, 0.006415, 0.000010, 0.000000, + 0.006403,-0.997984,-0.063141, 0.000000, + -0.000395, 0.063139,-0.998005, 0.000000, + -0.421866,-0.257697, 0.000001, 1.000000;; + } + } //End of Armature_Bone_004 + } //End of Armature_Root + Frame Cube_003 { + 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.019749,-0.002151,-3.487330, 1.000000;; + } + Mesh { //Cube_000 Mesh + 192; + -0.137080; 0.268539; 0.030404;, + -0.137080;-0.268539; 0.030404;, + -0.137080;-0.268539; 3.018199;, + -0.137080; 0.268539; 3.018199;, + -0.137080;-0.268539; 0.030404;, + -0.674158;-0.268539; 0.030404;, + -0.674158;-0.268539; 3.018199;, + -0.137080;-0.268539; 3.018199;, + -0.674158;-0.268539; 0.030404;, + -0.674158; 0.268539; 0.030404;, + -0.674157; 0.268539; 3.018199;, + -0.674158;-0.268539; 3.018199;, + -0.674158; 0.268539; 0.030404;, + -0.137080; 0.268539; 0.030404;, + -0.137080; 0.268539; 3.018199;, + -0.674157; 0.268539; 3.018199;, + -0.674158; 0.268539; 0.030404;, + -0.674158;-0.268539; 0.030404;, + -0.137080;-0.268539; 0.030404;, + -0.137080; 0.268539; 0.030404;, + -0.137080; 0.268539; 3.018199;, + -0.137080;-0.268539; 3.018199;, + -0.674158;-0.268539; 3.018199;, + -0.674157; 0.268539; 3.018199;, + 0.588564; 0.268539; 3.018199;, + 0.588564;-0.268539; 3.018199;, + 0.051486;-0.268539; 3.018199;, + 0.051486; 0.268539; 3.018199;, + 0.051486; 0.268539; 0.030404;, + 0.051486;-0.268539; 0.030404;, + 0.588564;-0.268539; 0.030404;, + 0.588564; 0.268539; 0.030404;, + 0.051486; 0.268539; 0.030404;, + 0.588564; 0.268539; 0.030404;, + 0.588564; 0.268539; 3.018199;, + 0.051486; 0.268539; 3.018199;, + 0.051486;-0.268539; 0.030404;, + 0.051486; 0.268539; 0.030404;, + 0.051486; 0.268539; 3.018199;, + 0.051486;-0.268539; 3.018199;, + 0.588564;-0.268539; 0.030404;, + 0.051486;-0.268539; 0.030404;, + 0.051486;-0.268539; 3.018199;, + 0.588564;-0.268539; 3.018199;, + 0.588564; 0.268539; 0.030404;, + 0.588564;-0.268539; 0.030404;, + 0.588564;-0.268539; 3.018199;, + 0.588564; 0.268539; 3.018199;, + 0.814262;-0.268539; 5.580909;, + 1.351340;-0.268539; 5.580909;, + 1.351340;-0.268538; 3.042300;, + 0.814262;-0.268538; 3.042300;, + 0.814262;-0.268538; 3.042300;, + 1.351340;-0.268538; 3.042300;, + 1.351340; 0.268540; 3.042300;, + 0.814262; 0.268540; 3.042300;, + 0.814262; 0.268539; 5.580909;, + 1.351340; 0.268539; 5.580909;, + 1.351340;-0.268539; 5.580909;, + 0.814262;-0.268539; 5.580909;, + 0.814262; 0.268539; 5.580909;, + 0.814262;-0.268539; 5.580909;, + 0.814262;-0.268538; 3.042300;, + 0.814262; 0.268540; 3.042300;, + 1.351340; 0.268539; 5.580909;, + 0.814262; 0.268539; 5.580909;, + 0.814262; 0.268540; 3.042300;, + 1.351340; 0.268540; 3.042300;, + 1.351340;-0.268539; 5.580909;, + 1.351340; 0.268539; 5.580909;, + 1.351340; 0.268540; 3.042300;, + 1.351340;-0.268538; 3.042300;, + -0.793544; 0.268540; 3.042300;, + -0.793544;-0.268538; 3.042300;, + -0.793544;-0.268538; 5.580909;, + -0.793544; 0.268540; 5.580909;, + -0.793544;-0.268538; 3.042300;, + -1.330622;-0.268538; 3.042300;, + -1.330622;-0.268538; 5.580909;, + -0.793544;-0.268538; 5.580909;, + -1.330622;-0.268538; 3.042300;, + -1.330622; 0.268540; 3.042300;, + -1.330622; 0.268540; 5.580909;, + -1.330622;-0.268538; 5.580909;, + -1.330622; 0.268540; 3.042300;, + -0.793544; 0.268540; 3.042300;, + -0.793544; 0.268540; 5.580909;, + -1.330622; 0.268540; 5.580909;, + -1.330622; 0.268540; 3.042300;, + -1.330622;-0.268538; 3.042300;, + -0.793544;-0.268538; 3.042300;, + -0.793544; 0.268540; 3.042300;, + -0.793544; 0.268540; 5.580909;, + -0.793544;-0.268538; 5.580909;, + -1.330622;-0.268538; 5.580909;, + -1.330622; 0.268540; 5.580909;, + 0.723870; 0.449627; 4.785883;, + 0.723870;-0.388245; 4.785883;, + 0.723870;-0.388245; 5.594183;, + 0.723870; 0.449627; 5.594183;, + 0.723870;-0.388245; 4.785883;, + -0.723870;-0.388244; 4.785883;, + -0.723870;-0.388244; 5.594183;, + 0.723870;-0.388245; 5.594183;, + -0.723870;-0.388244; 4.785883;, + -0.723870; 0.449627; 4.785883;, + -0.723870; 0.449627; 5.594183;, + -0.723870;-0.388244; 5.594183;, + -0.723870; 0.449627; 4.785883;, + 0.723870; 0.449627; 4.785883;, + 0.723870; 0.449627; 5.594183;, + -0.723870; 0.449627; 5.594183;, + -0.723870; 0.449627; 4.785883;, + -0.723870;-0.388244; 4.785883;, + 0.723870;-0.388245; 4.785883;, + 0.723870; 0.449627; 4.785883;, + 0.723870; 0.449627; 5.594183;, + 0.723870;-0.388245; 5.594183;, + -0.723870;-0.388244; 5.594183;, + -0.723870; 0.449627; 5.594183;, + 0.543860; 0.421971; 4.056024;, + 0.543860;-0.421971; 4.056024;, + 0.543860;-0.421971; 4.737846;, + 0.543860; 0.421971; 4.737846;, + 0.543860;-0.421971; 4.056024;, + -0.543860;-0.421971; 4.056024;, + -0.543860;-0.421971; 4.737846;, + 0.543860;-0.421971; 4.737846;, + -0.543860;-0.421971; 4.056024;, + -0.543860; 0.421971; 4.056024;, + -0.543860; 0.421971; 4.737846;, + -0.543860;-0.421971; 4.737846;, + -0.543860; 0.421971; 4.056024;, + 0.543860; 0.421971; 4.056024;, + 0.543860; 0.421971; 4.737846;, + -0.543860; 0.421971; 4.737846;, + -0.543860; 0.421971; 4.056024;, + -0.543860;-0.421971; 4.056024;, + 0.543860;-0.421971; 4.056024;, + 0.543860; 0.421971; 4.056024;, + 0.543860; 0.421971; 4.737846;, + 0.543860;-0.421971; 4.737846;, + -0.543860;-0.421971; 4.737846;, + -0.543860; 0.421971; 4.737846;, + 0.722887; 0.385108; 3.087850;, + 0.722887;-0.385109; 3.087850;, + 0.722887;-0.385109; 3.994113;, + 0.722887; 0.385108; 3.994113;, + 0.722887;-0.385109; 3.087850;, + -0.722887;-0.385108; 3.087850;, + -0.722887;-0.385108; 3.994113;, + 0.722887;-0.385109; 3.994113;, + -0.722887;-0.385108; 3.087850;, + -0.722887; 0.385109; 3.087850;, + -0.722887; 0.385109; 3.994113;, + -0.722887;-0.385108; 3.994113;, + -0.722887; 0.385109; 3.087850;, + 0.722887; 0.385108; 3.087850;, + 0.722887; 0.385108; 3.994113;, + -0.722887; 0.385109; 3.994113;, + -0.722887; 0.385109; 3.087850;, + -0.722887;-0.385108; 3.087850;, + 0.722887;-0.385109; 3.087850;, + 0.722887; 0.385108; 3.087850;, + 0.722887; 0.385108; 3.994113;, + 0.722887;-0.385109; 3.994113;, + -0.722887;-0.385108; 3.994113;, + -0.722887; 0.385109; 3.994113;, + 0.698014; 0.682134; 5.657978;, + 0.698014;-0.713894; 5.657978;, + 0.698014;-0.713894; 6.662416;, + 0.698014; 0.682134; 6.662416;, + 0.698014;-0.713894; 5.657978;, + -0.698014;-0.713894; 5.657978;, + -0.698014;-0.713894; 6.662416;, + 0.698014;-0.713894; 6.662416;, + -0.698014;-0.713894; 5.657978;, + -0.698014; 0.682134; 5.657978;, + -0.698014; 0.682134; 6.662416;, + -0.698014;-0.713894; 6.662416;, + -0.698014; 0.682134; 5.657978;, + 0.698014; 0.682134; 5.657978;, + 0.698014; 0.682134; 6.662416;, + -0.698014; 0.682134; 6.662416;, + -0.698014; 0.682134; 5.657978;, + -0.698014;-0.713894; 5.657978;, + 0.698014;-0.713894; 5.657978;, + 0.698014; 0.682134; 5.657978;, + 0.698014; 0.682134; 6.662416;, + 0.698014;-0.713894; 6.662416;, + -0.698014;-0.713894; 6.662416;, + -0.698014; 0.682134; 6.662416;; + 48; + 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;; + MeshNormals { //Cube_000 Normals + 192; + 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;, + -0.000000;-0.000000;-1.000000;, + -0.000000;-0.000000;-1.000000;, + -0.000000;-0.000000;-1.000000;, + -0.000000;-0.000000;-1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000000;-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;, + 0.000000;-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; 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;, + -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;, + 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;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 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; 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;-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; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 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; 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;; + 48; + 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;; + } //End of Cube_000 Normals + MeshMaterialList { //Cube_000 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 Material_002 { + 0.640000; 0.640000; 0.640000; 1.000000;; + 96.078431; + 0.500000; 0.500000; 0.500000;; + 0.000000; 0.000000; 0.000000;; + } + } //End of Cube_000 Material List + MeshTextureCoords { //Cube_000 UV Coordinates + 192; + 0.359375; 0.250000;, + 0.359375; 0.375000;, + 0.656250; 0.375000;, + 0.656250; 0.250000;, + 0.359375; 0.500000;, + 0.359375; 0.375000;, + 0.656250; 0.375000;, + 0.656250; 0.500000;, + 0.359375; 0.125000;, + 0.359375; 0.000000;, + 0.656250; 0.000000;, + 0.656250; 0.125000;, + 0.359375; 0.125000;, + 0.359375; 0.250000;, + 0.656250; 0.250000;, + 0.656250; 0.125000;, + 0.359375; 0.000000;, + 0.359375; 0.125000;, + 0.296875; 0.125000;, + 0.296875; 0.000000;, + 0.359375; 0.125000;, + 0.359375; 0.250000;, + 0.296875; 0.250000;, + 0.296875; 0.125000;, + 0.359375; 0.250000;, + 0.359375; 0.125000;, + 0.296875; 0.125000;, + 0.296875; 0.250000;, + 0.359375; 0.125000;, + 0.359375; 0.000000;, + 0.296875; 0.000000;, + 0.296875; 0.125000;, + 0.359375; 0.250000;, + 0.359375; 0.125000;, + 0.656250; 0.125000;, + 0.656250; 0.250000;, + 0.359375; 0.375000;, + 0.359375; 0.250000;, + 0.656250; 0.250000;, + 0.656250; 0.375000;, + 0.359375; 0.375000;, + 0.359375; 0.500000;, + 0.656250; 0.500000;, + 0.656250; 0.375000;, + 0.359375; 0.000000;, + 0.359375; 0.125000;, + 0.656250; 0.125000;, + 0.656250; 0.000000;, + 0.000000; 0.125000;, + 0.000000; 0.250000;, + 0.296875; 0.250000;, + 0.296875; 0.125000;, + 0.359375; 0.250000;, + 0.359375; 0.375000;, + 0.296875; 0.375000;, + 0.296875; 0.250000;, + 0.359375; 0.375000;, + 0.359375; 0.500000;, + 0.296875; 0.500000;, + 0.296875; 0.375000;, + 0.000000; 0.000000;, + 0.000000; 0.125000;, + 0.296875; 0.125000;, + 0.296875; 0.000000;, + 0.000000; 0.500000;, + 0.000000; 0.375000;, + 0.296875; 0.375000;, + 0.296875; 0.500000;, + 0.000000; 0.250000;, + 0.000000; 0.375000;, + 0.296875; 0.375000;, + 0.296875; 0.250000;, + 0.296875; 0.000000;, + 0.296875; 0.125000;, + 0.000000; 0.125000;, + 0.000000; 0.000000;, + 0.296875; 0.125000;, + 0.296875; 0.250000;, + 0.000000; 0.250000;, + 0.000000; 0.125000;, + 0.296875; 0.250000;, + 0.296875; 0.375000;, + 0.000000; 0.375000;, + 0.000000; 0.250000;, + 0.296875; 0.500000;, + 0.296875; 0.375000;, + 0.000000; 0.375000;, + 0.000000; 0.500000;, + 0.296875; 0.375000;, + 0.296875; 0.250000;, + 0.359375; 0.250000;, + 0.359375; 0.375000;, + 0.359375; 0.375000;, + 0.296875; 0.375000;, + 0.296875; 0.500000;, + 0.359375; 0.500000;, + 0.187500; 0.750000;, + 0.125000; 0.750000;, + 0.125000; 0.625000;, + 0.187500; 0.625000;, + 0.125000; 0.750000;, + 0.000000; 0.750000;, + 0.000000; 0.625000;, + 0.125000; 0.625000;, + 0.187500; 0.625000;, + 0.125000; 0.625000;, + 0.125000; 0.500000;, + 0.187500; 0.500000;, + 0.312500; 0.750000;, + 0.187500; 0.750000;, + 0.187500; 0.625000;, + 0.312500; 0.625000;, + 0.125000; 0.500000;, + 0.125000; 0.625000;, + 0.000000; 0.625000;, + 0.000000; 0.500000;, + 0.187500; 0.625000;, + 0.187500; 0.500000;, + 0.312500; 0.500000;, + 0.312500; 0.625000;, + 0.312500; 0.875000;, + 0.312500; 0.718750;, + 0.375000; 0.718750;, + 0.375000; 0.875000;, + 0.312500; 0.718750;, + 0.312500; 0.500000;, + 0.375000; 0.500000;, + 0.375000; 0.718750;, + 0.375000; 0.875000;, + 0.375000; 0.718750;, + 0.437500; 0.718750;, + 0.437500; 0.875000;, + 0.312500; 1.000000;, + 0.312500; 0.875000;, + 0.375000; 0.875000;, + 0.375000; 1.000000;, + 0.437500; 0.718750;, + 0.375000; 0.718750;, + 0.375000; 0.500000;, + 0.437500; 0.500000;, + 0.375000; 0.875000;, + 0.437500; 0.875000;, + 0.437500; 1.000000;, + 0.375000; 1.000000;, + 0.187500; 1.000000;, + 0.125000; 1.000000;, + 0.125000; 0.875000;, + 0.187500; 0.875000;, + 0.125000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 0.875000;, + 0.125000; 0.875000;, + 0.187500; 0.875000;, + 0.125000; 0.875000;, + 0.125000; 0.750000;, + 0.187500; 0.750000;, + 0.312500; 1.000000;, + 0.187500; 1.000000;, + 0.187500; 0.875000;, + 0.312500; 0.875000;, + 0.125000; 0.750000;, + 0.125000; 0.875000;, + 0.000000; 0.875000;, + 0.000000; 0.750000;, + 0.187500; 0.875000;, + 0.187500; 0.750000;, + 0.312500; 0.750000;, + 0.312500; 0.875000;, + 0.656250; 0.000000;, + 0.656250; 0.250000;, + 0.750000; 0.250000;, + 0.750000; 0.000000;, + 0.656250; 0.250000;, + 0.656250; 0.500000;, + 0.750000; 0.500000;, + 0.750000; 0.250000;, + 0.656250; 0.500000;, + 0.656250; 0.750000;, + 0.750000; 0.750000;, + 0.750000; 0.500000;, + 0.656250; 0.750000;, + 0.656250; 1.000000;, + 0.750000; 1.000000;, + 0.750000; 0.750000;, + 0.656250; 0.750000;, + 0.500000; 0.750000;, + 0.500000; 1.000000;, + 0.656250; 1.000000;, + 0.500000; 0.750000;, + 0.656250; 0.750000;, + 0.656250; 0.500000;, + 0.500000; 0.500000;; + } //End of Cube_000 UV Coordinates + XSkinMeshHeader { + 2; + 6; + 5; + } + SkinWeights { + "Armature_Bone_003"; + 24; + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47; + 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.000165, 0.000000, 0.000000, + -0.000000, 0.000000, 1.000000, 0.000000, + 0.000165,-1.000000, 0.000000, 0.000000, + -0.293140, 3.021661,-0.002151, 1.000000;; + } //End of Armature_Bone_003 Skin Weights + SkinWeights { + "Armature_Root"; + 100; + 72, + 73, + 74, + 75, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191; + 0.000012, + 0.000000, + 0.000000, + 0.000009, + 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, + 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.999980, 0.006250, 0.000000, 0.000000, + -0.000000, 0.000000,-1.000000, 0.000000, + -0.006250, 0.999980, 0.000000, 0.000000, + 0.013893,-3.276741, 0.002150, 1.000000;; + } //End of Armature_Root Skin Weights + SkinWeights { + "Armature_Bone_004"; + 24; + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23; + 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.000165, 0.000000, 0.000000, + -0.000000, 0.000000, 1.000000, 0.000000, + 0.000165,-1.000000, 0.000000, 0.000000, + 0.416382, 3.021777,-0.002151, 1.000000;; + } //End of Armature_Bone_004 Skin Weights + SkinWeights { + "Armature_Bone_001"; + 24; + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95; + 0.999988, + 1.000000, + 1.000000, + 0.999991, + 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.992973,-0.118342, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + -0.118342,-0.992973, 0.000000, 0.000000, + 1.400077, 5.348889,-0.002152, 1.000000;; + } //End of Armature_Bone_001 Skin Weights + SkinWeights { + "Armature_Bone_002"; + 24; + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71; + 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.986602, 0.163144, 0.000000, 0.000000, + -0.000000, 0.000000, 1.000000, 0.000000, + 0.163144,-0.986602, 0.000000, 0.000000, + -1.638568, 5.280413,-0.002152, 1.000000;; + } //End of Armature_Bone_002 Skin Weights + } //End of Cube_000 Mesh + } //End of Cube_003 + } //End of Armature +} //End of Root Frame +AnimationSet { + Animation { + {Armature} + AnimationKey { //Position + 2; + 66; + 0;3; 0.019749, 0.002151, 3.487330;;, + 1;3; 0.019749, 0.002151, 3.487330;;, + 2;3; 0.019749, 0.002151, 3.487330;;, + 3;3; 0.019749, 0.002151, 3.487330;;, + 4;3; 0.019749, 0.002151, 3.487330;;, + 5;3; 0.019749, 0.002151, 3.487330;;, + 6;3; 0.019749, 0.002151, 3.487330;;, + 7;3; 0.019749, 0.002151, 3.487330;;, + 8;3; 0.019749, 0.002151, 3.487330;;, + 9;3; 0.019749, 0.002151, 3.487330;;, + 10;3; 0.019749, 0.002151, 3.487330;;, + 11;3; 0.019749, 0.002151, 3.487330;;, + 12;3; 0.019749, 0.002151, 3.487330;;, + 13;3; 0.019749, 0.002151, 3.487330;;, + 14;3; 0.019749, 0.002151, 3.487330;;, + 15;3; 0.019749, 0.002151, 3.487330;;, + 16;3; 0.019749, 0.002151, 3.487330;;, + 17;3; 0.019749, 0.002151, 3.487330;;, + 18;3; 0.019749, 0.002151, 3.487330;;, + 19;3; 0.019749, 0.002151, 3.487330;;, + 20;3; 0.019749, 0.002151, 3.487330;;, + 21;3; 0.019749, 0.002151, 3.487330;;, + 22;3; 0.019749, 0.002151, 3.487330;;, + 23;3; 0.019749, 0.002151, 3.487330;;, + 24;3; 0.019749, 0.002151, 3.487330;;, + 25;3; 0.019749, 0.002151, 3.487330;;, + 26;3; 0.019749, 0.002151, 3.487330;;, + 27;3; 0.019749, 0.002151, 3.487330;;, + 28;3; 0.019749, 0.002151, 3.487330;;, + 29;3; 0.019749, 0.002151, 3.487330;;, + 30;3; 0.019749, 0.002151, 3.487330;;, + 31;3; 0.019749, 0.002151, 3.487330;;, + 32;3; 0.019749, 0.002151, 3.487330;;, + 33;3; 0.019749, 0.002151, 3.487330;;, + 34;3; 0.019749, 0.002151, 3.487330;;, + 35;3; 0.019749, 0.002151, 3.487330;;, + 36;3; 0.019749, 0.002151, 3.487330;;, + 37;3; 0.019749, 0.002151, 3.487330;;, + 38;3; 0.019749, 0.002151, 3.487330;;, + 39;3; 0.019749, 0.002151, 3.487330;;, + 40;3; 0.019749, 0.002151, 3.487330;;, + 41;3; 0.019749, 0.002151, 3.487330;;, + 42;3; 0.019749, 0.002151, 3.487330;;, + 43;3; 0.019749, 0.002151, 3.487330;;, + 44;3; 0.019749, 0.002151, 3.487330;;, + 45;3; 0.019749, 0.002151, 3.487330;;, + 46;3; 0.019749, 0.002151, 3.487330;;, + 47;3; 0.019749, 0.002151, 3.487330;;, + 48;3; 0.019749, 0.002151, 3.487330;;, + 49;3; 0.019749, 0.002151, 3.487330;;, + 50;3; 0.019749, 0.002151, 3.487330;;, + 51;3; 0.019749, 0.002151, 3.487330;;, + 52;3; 0.019749, 0.002151, 3.487330;;, + 53;3; 0.019749, 0.002151, 3.487330;;, + 54;3; 0.019749, 0.002151, 3.487330;;, + 55;3; 0.019749, 0.002151, 3.487330;;, + 56;3; 0.019749, 0.002151, 3.487330;;, + 57;3; 0.019749, 0.002151, 3.487330;;, + 58;3; 0.019749, 0.002151, 3.487330;;, + 59;3; 0.019749, 0.002151, 3.487330;;, + 60;3; 0.019749, 0.002151, 3.487330;;, + 61;3; 0.019749, 0.002151, 3.487330;;, + 62;3; 0.019749, 0.002151, 3.487330;;, + 63;3; 0.019749, 0.002151, 3.487330;;, + 64;3; 0.019749, 0.002151, 3.487330;;, + 65;3; 0.019749, 0.002151, 3.487330;;; + } + AnimationKey { //Rotation + 0; + 66; + 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;;; + } + AnimationKey { //Scale + 1; + 66; + 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;;; + } + } + Animation { + {Armature_Root} + AnimationKey { //Position + 2; + 66; + 0;3; -0.013160,-0.000000,-0.210566;;, + 1;3; -0.013160,-0.000000,-0.210566;;, + 2;3; -0.013160,-0.000000,-0.210566;;, + 3;3; -0.013160,-0.000000,-0.210566;;, + 4;3; -0.013160,-0.000000,-0.210566;;, + 5;3; -0.013160,-0.000000,-0.210566;;, + 6;3; -0.013160,-0.000000,-0.210566;;, + 7;3; -0.013160,-0.000000,-0.210566;;, + 8;3; -0.013160,-0.000000,-0.210566;;, + 9;3; -0.013160,-0.000000,-0.210566;;, + 10;3; -0.013160,-0.000000,-0.210566;;, + 11;3; -0.013160,-0.000000,-0.210566;;, + 12;3; -0.013160,-0.000000,-0.210566;;, + 13;3; -0.013160,-0.000000,-0.210566;;, + 14;3; -0.013160,-0.000000,-0.210566;;, + 15;3; -0.013160,-0.000000,-0.210566;;, + 16;3; -0.013160,-0.000000,-0.215889;;, + 17;3; -0.013160,-0.000000,-0.231380;;, + 18;3; -0.013160,-0.000000,-0.253650;;, + 19;3; -0.013160,-0.000000,-0.275918;;, + 20;3; -0.013160,-0.000000,-0.291409;;, + 21;3; -0.013160,-0.000000,-0.296732;;, + 22;3; -0.013160,-0.000000,-0.291409;;, + 23;3; -0.013160,-0.000000,-0.275918;;, + 24;3; -0.013160,-0.000000,-0.253649;;, + 25;3; -0.013160,-0.000000,-0.231380;;, + 26;3; -0.013160,-0.000000,-0.215889;;, + 27;3; -0.013160,-0.000000,-0.210566;;, + 28;3; -0.013160,-0.000000,-0.215889;;, + 29;3; -0.013160,-0.000000,-0.231380;;, + 30;3; -0.013160,-0.000000,-0.253649;;, + 31;3; -0.013160,-0.000000,-0.275918;;, + 32;3; -0.013160,-0.000000,-0.291409;;, + 33;3; -0.013160,-0.000000,-0.296732;;, + 34;3; -0.013160,-0.000000,-0.291639;;, + 35;3; -0.013160,-0.000000,-0.277407;;, + 36;3; -0.013160,-0.000000,-0.256912;;, + 37;3; -0.013160,-0.000000,-0.234908;;, + 38;3; -0.013160,-0.000000,-0.217469;;, + 39;3; -0.013160,-0.000000,-0.210566;;, + 40;3; -0.013160,-0.000000,-0.210566;;, + 41;3; -0.013160,-0.000000,-0.217469;;, + 42;3; -0.013160,-0.000000,-0.234908;;, + 43;3; -0.013160,-0.000000,-0.256912;;, + 44;3; -0.013160,-0.000000,-0.277407;;, + 45;3; -0.013160,-0.000000,-0.291639;;, + 46;3; -0.013160,-0.000000,-0.296732;;, + 47;3; -0.013160,-0.000000,-0.291409;;, + 48;3; -0.013160,-0.000000,-0.275918;;, + 49;3; -0.013160,-0.000000,-0.253649;;, + 50;3; -0.013160,-0.000000,-0.231380;;, + 51;3; -0.013160,-0.000000,-0.215889;;, + 52;3; -0.013160,-0.000000,-0.210566;;, + 53;3; -0.013160,-0.000000,-0.215889;;, + 54;3; -0.013160,-0.000000,-0.231380;;, + 55;3; -0.013160,-0.000000,-0.253649;;, + 56;3; -0.013160,-0.000000,-0.275918;;, + 57;3; -0.013160,-0.000000,-0.291409;;, + 58;3; -0.013160,-0.000000,-0.296732;;, + 59;3; -0.013160,-0.000000,-0.291409;;, + 60;3; -0.013160,-0.000000,-0.275919;;, + 61;3; -0.013160,-0.000000,-0.253651;;, + 62;3; -0.013160,-0.000000,-0.231382;;, + 63;3; -0.013160,-0.000000,-0.215890;;, + 64;3; -0.013160,-0.000000,-0.210566;;, + 65;3; -0.013160,-0.000000,-0.210566;;; + } + AnimationKey { //Rotation + 0; + 66; + 0;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 1;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 2;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 3;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 4;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 5;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 6;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 7;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 8;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 9;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 10;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 11;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 12;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 13;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 14;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 15;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 16;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 17;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 18;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 19;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 20;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 21;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 22;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 23;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 24;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 25;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 26;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 27;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 28;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 29;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 30;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 31;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 32;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 33;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 34;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 35;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 36;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 37;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 38;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 39;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 40;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 41;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 42;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 43;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 44;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 45;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 46;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 47;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 48;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 49;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 50;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 51;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 52;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 53;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 54;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 55;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 56;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 57;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 58;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 59;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 60;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 61;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 62;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 63;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 64;4; -0.707103, 0.707103, 0.002210,-0.002210;;, + 65;4; -0.707103, 0.707103, 0.002210,-0.002210;;; + } + AnimationKey { //Scale + 1; + 66; + 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;;; + } + } + Animation { + {Armature_Bone_001} + AnimationKey { //Position + 2; + 66; + 0;3; -0.777564, 2.195408, 0.000000;;, + 1;3; -0.777564, 2.195408, 0.000000;;, + 2;3; -0.777564, 2.195408, 0.000000;;, + 3;3; -0.777564, 2.195408, 0.000000;;, + 4;3; -0.777564, 2.195408, 0.000000;;, + 5;3; -0.777564, 2.195408, 0.000000;;, + 6;3; -0.777564, 2.195408, 0.000000;;, + 7;3; -0.777564, 2.195408, 0.000000;;, + 8;3; -0.777564, 2.195408, 0.000000;;, + 9;3; -0.777564, 2.195408, 0.000000;;, + 10;3; -0.777564, 2.195408, 0.000000;;, + 11;3; -0.777564, 2.195408, 0.000000;;, + 12;3; -0.777564, 2.195408, 0.000000;;, + 13;3; -0.777564, 2.195408, 0.000000;;, + 14;3; -0.777564, 2.195408, 0.000000;;, + 15;3; -0.777564, 2.195408, 0.000000;;, + 16;3; -0.777564, 2.195408, 0.000000;;, + 17;3; -0.777564, 2.195408, 0.000000;;, + 18;3; -0.777564, 2.195408, 0.000000;;, + 19;3; -0.777564, 2.195408, 0.000000;;, + 20;3; -0.777564, 2.195408, 0.000000;;, + 21;3; -0.777564, 2.195408, 0.000000;;, + 22;3; -0.777564, 2.195408, 0.000000;;, + 23;3; -0.777564, 2.195408, 0.000000;;, + 24;3; -0.777564, 2.195408, 0.000000;;, + 25;3; -0.777564, 2.195408, 0.000000;;, + 26;3; -0.777564, 2.195408, 0.000000;;, + 27;3; -0.777564, 2.195408, 0.000000;;, + 28;3; -0.777564, 2.195408, 0.000000;;, + 29;3; -0.777564, 2.195408, 0.000000;;, + 30;3; -0.777564, 2.195408, 0.000000;;, + 31;3; -0.777564, 2.195408, 0.000000;;, + 32;3; -0.777564, 2.195408, 0.000000;;, + 33;3; -0.777564, 2.195408, 0.000000;;, + 34;3; -0.777564, 2.195408, 0.000000;;, + 35;3; -0.777564, 2.195408, 0.000000;;, + 36;3; -0.777564, 2.195408, 0.000000;;, + 37;3; -0.777564, 2.195408, 0.000000;;, + 38;3; -0.777564, 2.195408, 0.000000;;, + 39;3; -0.777564, 2.195408, 0.000000;;, + 40;3; -0.777564, 2.195408, 0.000000;;, + 41;3; -0.777564, 2.195408, 0.000000;;, + 42;3; -0.777564, 2.195408, 0.000000;;, + 43;3; -0.777564, 2.195408, 0.000000;;, + 44;3; -0.777564, 2.195408, 0.000000;;, + 45;3; -0.777564, 2.195408, 0.000000;;, + 46;3; -0.777564, 2.195408, 0.000000;;, + 47;3; -0.777564, 2.195408, 0.000000;;, + 48;3; -0.777564, 2.195408, 0.000000;;, + 49;3; -0.777564, 2.195408, 0.000000;;, + 50;3; -0.777564, 2.195408, 0.000000;;, + 51;3; -0.777564, 2.195408, 0.000000;;, + 52;3; -0.777564, 2.195408, 0.000000;;, + 53;3; -0.777564, 2.195408, 0.000000;;, + 54;3; -0.777564, 2.195408, 0.000000;;, + 55;3; -0.777564, 2.195408, 0.000000;;, + 56;3; -0.777564, 2.195408, 0.000000;;, + 57;3; -0.777564, 2.195408, 0.000000;;, + 58;3; -0.777564, 2.195408, 0.000000;;, + 59;3; -0.777564, 2.195408, 0.000000;;, + 60;3; -0.777564, 2.195408, 0.000000;;, + 61;3; -0.777564, 2.195408, 0.000000;;, + 62;3; -0.777564, 2.195408, 0.000000;;, + 63;3; -0.777564, 2.195408, 0.000000;;, + 64;3; -0.777564, 2.195408, 0.000000;;, + 65;3; -0.777564, 2.195408, 0.000000;;; + } + AnimationKey { //Rotation + 0; + 66; + 0;4; -0.000000, 0.998422,-0.056155, 0.000000;;, + 1;4; -0.000000, 0.998422,-0.056155, 0.000000;;, + 2;4; -0.000000, 0.998422,-0.056155, 0.000000;;, + 3;4; -0.000000, 0.998422,-0.056155, 0.000000;;, + 4;4; -0.000000, 0.998422,-0.056155, 0.000000;;, + 5;4; -0.000000, 0.998422,-0.056155, 0.000000;;, + 6;4; -0.000000, 0.998422,-0.056155, 0.000000;;, + 7;4; -0.000000, 0.998422,-0.056155, 0.000000;;, + 8;4; -0.000000, 0.998422,-0.056155, 0.000000;;, + 9;4; -0.000000, 0.998422,-0.056155, 0.000000;;, + 10;4; -0.000000, 0.998422,-0.056155, 0.000000;;, + 11;4; -0.000000, 0.998422,-0.056155, 0.000000;;, + 12;4; -0.000000, 0.998422,-0.056155, 0.000000;;, + 13;4; -0.000000, 0.998422,-0.056155, 0.000000;;, + 14;4; -0.000000, 0.998422,-0.056155, 0.000000;;, + 15;4; -0.000000, 0.998422,-0.056155, 0.000000;;, + 16;4; 0.008050, 0.997895,-0.056126,-0.000503;;, + 17;4; 0.031475, 0.996359,-0.056039,-0.001967;;, + 18;4; 0.065143, 0.994151,-0.055915,-0.004072;;, + 19;4; 0.098808, 0.991944,-0.055791,-0.006177;;, + 20;4; 0.122225, 0.990408,-0.055705,-0.007641;;, + 21;4; 0.130272, 0.989881,-0.055675,-0.008144;;, + 22;4; 0.126267, 0.989881,-0.055675,-0.007894;;, + 23;4; 0.114177, 0.989881,-0.055675,-0.007138;;, + 24;4; 0.094243, 0.989881,-0.055675,-0.005892;;, + 25;4; 0.067337, 0.989881,-0.055675,-0.004210;;, + 26;4; 0.035117, 0.989881,-0.055675,-0.002195;;, + 27;4; -0.000000, 0.989881,-0.055675, 0.000000;;, + 28;4; -0.035117, 0.989881,-0.055675, 0.002195;;, + 29;4; -0.067337, 0.989881,-0.055675, 0.004210;;, + 30;4; -0.094243, 0.989881,-0.055675, 0.005892;;, + 31;4; -0.114178, 0.989881,-0.055675, 0.007138;;, + 32;4; -0.126267, 0.989881,-0.055675, 0.007894;;, + 33;4; -0.130272, 0.989881,-0.055675, 0.008144;;, + 34;4; -0.129860, 0.990384,-0.055703, 0.008117;;, + 35;4; -0.126652, 0.991789,-0.055782, 0.007902;;, + 36;4; -0.116937, 0.993812,-0.055896, 0.007240;;, + 37;4; -0.096055, 0.995991,-0.056019, 0.005833;;, + 38;4; -0.058763, 0.997728,-0.056116, 0.003444;;, + 39;4; -0.000000, 0.998422,-0.056155, 0.000000;;, + 40;4; 0.705729, 0.705991,-0.039708,-0.044120;;, + 41;4; 0.719292, 0.692185,-0.038931,-0.044917;;, + 42;4; 0.727918, 0.683078,-0.038419,-0.045469;;, + 43;4; 0.732753, 0.677864,-0.038126,-0.045794;;, + 44;4; 0.735003, 0.675425,-0.037989,-0.045946;;, + 45;4; 0.735745, 0.674626,-0.037944,-0.045996;;, + 46;4; 0.735841, 0.674524,-0.037938,-0.046002;;, + 47;4; 0.734894, 0.675471,-0.037991,-0.045943;;, + 48;4; 0.732038, 0.678329,-0.038152,-0.045765;;, + 49;4; 0.727327, 0.683041,-0.038417,-0.045470;;, + 50;4; 0.720969, 0.689402,-0.038775,-0.045073;;, + 51;4; 0.713355, 0.697018,-0.039203,-0.044597;;, + 52;4; 0.705057, 0.705319,-0.039670,-0.044078;;, + 53;4; 0.696759, 0.713621,-0.040137,-0.043559;;, + 54;4; 0.689146, 0.721237,-0.040565,-0.043083;;, + 55;4; 0.682788, 0.727597,-0.040923,-0.042686;;, + 56;4; 0.678077, 0.732310,-0.041188,-0.042391;;, + 57;4; 0.675220, 0.735168,-0.041349,-0.042212;;, + 58;4; 0.674274, 0.736114,-0.041402,-0.042153;;, + 59;4; 0.676217, 0.734253,-0.041297,-0.042275;;, + 60;4; 0.681872, 0.728838,-0.040993,-0.042628;;, + 61;4; 0.690001, 0.721053,-0.040555,-0.043137;;, + 62;4; 0.698131, 0.713268,-0.040117,-0.043645;;, + 63;4; 0.703786, 0.707852,-0.039813,-0.043998;;, + 64;4; 0.705729, 0.705991,-0.039708,-0.044120;;, + 65;4; 0.705729, 0.705991,-0.039708,-0.044120;;; + } + AnimationKey { //Scale + 1; + 66; + 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;;; + } + } + Animation { + {Armature_Bone_002} + AnimationKey { //Position + 2; + 66; + 0;3; 0.734794, 2.204861, 0.000000;;, + 1;3; 0.734794, 2.204861, 0.000000;;, + 2;3; 0.734794, 2.204861, 0.000000;;, + 3;3; 0.734794, 2.204861, 0.000000;;, + 4;3; 0.734794, 2.204861, 0.000000;;, + 5;3; 0.734794, 2.204861, 0.000000;;, + 6;3; 0.734794, 2.204861, 0.000000;;, + 7;3; 0.734794, 2.204861, 0.000000;;, + 8;3; 0.734794, 2.204861, 0.000000;;, + 9;3; 0.734794, 2.204861, 0.000000;;, + 10;3; 0.734794, 2.204861, 0.000000;;, + 11;3; 0.734794, 2.204861, 0.000000;;, + 12;3; 0.734794, 2.204861, 0.000000;;, + 13;3; 0.734794, 2.204861, 0.000000;;, + 14;3; 0.734794, 2.204861, 0.000000;;, + 15;3; 0.734794, 2.204861, 0.000000;;, + 16;3; 0.734794, 2.204861, 0.000000;;, + 17;3; 0.734794, 2.204861, 0.000000;;, + 18;3; 0.734794, 2.204861, 0.000000;;, + 19;3; 0.734794, 2.204861, 0.000000;;, + 20;3; 0.734794, 2.204861, 0.000000;;, + 21;3; 0.734794, 2.204861, 0.000000;;, + 22;3; 0.734794, 2.204861, 0.000000;;, + 23;3; 0.734794, 2.204861, 0.000000;;, + 24;3; 0.734794, 2.204861, 0.000000;;, + 25;3; 0.734794, 2.204861, 0.000000;;, + 26;3; 0.734794, 2.204861, 0.000000;;, + 27;3; 0.734794, 2.204861, 0.000000;;, + 28;3; 0.734794, 2.204861, 0.000000;;, + 29;3; 0.734794, 2.204861, 0.000000;;, + 30;3; 0.734794, 2.204861, 0.000000;;, + 31;3; 0.734794, 2.204861, 0.000000;;, + 32;3; 0.734794, 2.204861, 0.000000;;, + 33;3; 0.734794, 2.204861, 0.000000;;, + 34;3; 0.734794, 2.204861, 0.000000;;, + 35;3; 0.734794, 2.204861, 0.000000;;, + 36;3; 0.734794, 2.204861, 0.000000;;, + 37;3; 0.734794, 2.204861, 0.000000;;, + 38;3; 0.734794, 2.204861, 0.000000;;, + 39;3; 0.734794, 2.204861, 0.000000;;, + 40;3; 0.734794, 2.204861, 0.000000;;, + 41;3; 0.734794, 2.204861, 0.000000;;, + 42;3; 0.734794, 2.204861, 0.000000;;, + 43;3; 0.734794, 2.204861, 0.000000;;, + 44;3; 0.734794, 2.204861, 0.000000;;, + 45;3; 0.734794, 2.204861, 0.000000;;, + 46;3; 0.734794, 2.204861, 0.000000;;, + 47;3; 0.734794, 2.204861, 0.000000;;, + 48;3; 0.734794, 2.204861, 0.000000;;, + 49;3; 0.734794, 2.204861, 0.000000;;, + 50;3; 0.734794, 2.204861, 0.000000;;, + 51;3; 0.734794, 2.204861, 0.000000;;, + 52;3; 0.734794, 2.204861, 0.000000;;, + 53;3; 0.734794, 2.204861, 0.000000;;, + 54;3; 0.734794, 2.204861, 0.000000;;, + 55;3; 0.734794, 2.204861, 0.000000;;, + 56;3; 0.734794, 2.204861, 0.000000;;, + 57;3; 0.734794, 2.204861, 0.000000;;, + 58;3; 0.734794, 2.204861, 0.000000;;, + 59;3; 0.734794, 2.204861, 0.000000;;, + 60;3; 0.734794, 2.204861, 0.000000;;, + 61;3; 0.734794, 2.204861, 0.000000;;, + 62;3; 0.734794, 2.204861, 0.000000;;, + 63;3; 0.734794, 2.204861, 0.000000;;, + 64;3; 0.734794, 2.204861, 0.000000;;, + 65;3; 0.734794, 2.204861, 0.000000;;; + } + AnimationKey { //Rotation + 0; + 66; + 0;4; -0.000000, 0.996384, 0.084961, 0.000000;;, + 1;4; -0.000000, 0.996384, 0.084961, 0.000000;;, + 2;4; -0.000000, 0.996384, 0.084961, 0.000000;;, + 3;4; -0.000000, 0.996384, 0.084961, 0.000000;;, + 4;4; -0.000000, 0.996384, 0.084961, 0.000000;;, + 5;4; -0.000000, 0.996384, 0.084961, 0.000000;;, + 6;4; -0.000000, 0.996384, 0.084961, 0.000000;;, + 7;4; -0.000000, 0.996384, 0.084961, 0.000000;;, + 8;4; -0.000000, 0.996384, 0.084961, 0.000000;;, + 9;4; -0.000000, 0.996384, 0.084961, 0.000000;;, + 10;4; -0.000000, 0.996384, 0.084961, 0.000000;;, + 11;4; -0.000000, 0.996384, 0.084961, 0.000000;;, + 12;4; -0.000000, 0.996384, 0.084961, 0.000000;;, + 13;4; -0.000000, 0.996384, 0.084961, 0.000000;;, + 14;4; -0.000000, 0.996384, 0.084961, 0.000000;;, + 15;4; -0.000000, 0.996384, 0.084961, 0.000000;;, + 16;4; -0.008041, 0.995858, 0.084916,-0.000635;;, + 17;4; -0.031438, 0.994325, 0.084785,-0.002482;;, + 18;4; -0.065068, 0.992122, 0.084597,-0.005138;;, + 19;4; -0.098693, 0.989919, 0.084409,-0.007794;;, + 20;4; -0.122084, 0.988387, 0.084279,-0.009642;;, + 21;4; -0.130121, 0.987860, 0.084234,-0.010276;;, + 22;4; -0.126121, 0.987860, 0.084234,-0.009961;;, + 23;4; -0.114046, 0.987860, 0.084234,-0.009007;;, + 24;4; -0.094134, 0.987860, 0.084234,-0.007434;;, + 25;4; -0.067259, 0.987860, 0.084234,-0.005312;;, + 26;4; -0.035076, 0.987860, 0.084234,-0.002770;;, + 27;4; -0.000000, 0.987860, 0.084234, 0.000000;;, + 28;4; 0.035076, 0.987860, 0.084234, 0.002770;;, + 29;4; 0.067259, 0.987860, 0.084234, 0.005312;;, + 30;4; 0.094134, 0.987860, 0.084234, 0.007434;;, + 31;4; 0.114045, 0.987860, 0.084234, 0.009007;;, + 32;4; 0.126121, 0.987860, 0.084234, 0.009961;;, + 33;4; 0.130121, 0.987860, 0.084234, 0.010277;;, + 34;4; 0.122514, 0.988363, 0.084277, 0.009662;;, + 35;4; 0.101466, 0.989765, 0.084396, 0.007929;;, + 36;4; 0.071176, 0.991784, 0.084568, 0.005432;;, + 37;4; 0.038174, 0.993958, 0.084754, 0.002789;;, + 38;4; 0.011162, 0.995692, 0.084902, 0.000764;;, + 39;4; -0.000000, 0.996384, 0.084961, 0.000000;;, + 40;4; 0.704912, 0.704550, 0.060076, 0.055671;;, + 41;4; 0.702208, 0.706991, 0.060284, 0.055488;;, + 42;4; 0.695679, 0.713106, 0.060806, 0.054999;;, + 43;4; 0.687713, 0.720774, 0.061460, 0.054361;;, + 44;4; 0.680406, 0.727894, 0.062067, 0.053757;;, + 45;4; 0.675329, 0.732839, 0.062488, 0.053338;;, + 46;4; 0.673493, 0.734612, 0.062640, 0.053190;;, + 47;4; 0.674438, 0.733667, 0.062559, 0.053265;;, + 48;4; 0.677292, 0.730815, 0.062316, 0.053490;;, + 49;4; 0.681997, 0.726112, 0.061915, 0.053862;;, + 50;4; 0.688347, 0.719765, 0.061374, 0.054363;;, + 51;4; 0.695952, 0.712164, 0.060726, 0.054964;;, + 52;4; 0.704241, 0.703880, 0.060019, 0.055618;;, + 53;4; 0.712529, 0.695595, 0.059313, 0.056273;;, + 54;4; 0.720134, 0.687995, 0.058665, 0.056874;;, + 55;4; 0.726485, 0.681647, 0.058123, 0.057375;;, + 56;4; 0.731190, 0.676944, 0.057722, 0.057747;;, + 57;4; 0.734043, 0.674092, 0.057479, 0.057972;;, + 58;4; 0.734989, 0.673148, 0.057399, 0.058047;;, + 59;4; 0.733131, 0.675087, 0.057564, 0.057900;;, + 60;4; 0.727724, 0.680733, 0.058045, 0.057473;;, + 61;4; 0.719950, 0.688849, 0.058737, 0.056859;;, + 62;4; 0.712177, 0.696965, 0.059430, 0.056245;;, + 63;4; 0.706770, 0.702610, 0.059911, 0.055818;;, + 64;4; 0.704912, 0.704550, 0.060076, 0.055671;;, + 65;4; 0.704912, 0.704550, 0.060076, 0.055671;;; + } + AnimationKey { //Scale + 1; + 66; + 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;;; + } + } + Animation { + {Armature_Bone_003} + AnimationKey { //Position + 2; + 66; + 0;3; 0.287642,-0.253263, 0.000001;;, + 1;3; 0.287642,-0.253263, 0.000001;;, + 2;3; 0.287642,-0.253263, 0.000001;;, + 3;3; 0.287642,-0.253263, 0.000001;;, + 4;3; 0.287642,-0.253263, 0.000001;;, + 5;3; 0.287642,-0.253263, 0.000001;;, + 6;3; 0.287642,-0.253263, 0.000001;;, + 7;3; 0.287642,-0.253263, 0.000001;;, + 8;3; 0.287642,-0.253263, 0.000001;;, + 9;3; 0.287642,-0.253263, 0.000001;;, + 10;3; 0.287642,-0.253263, 0.000001;;, + 11;3; 0.287642,-0.253263, 0.000001;;, + 12;3; 0.287642,-0.253263, 0.000001;;, + 13;3; 0.287642,-0.253263, 0.000001;;, + 14;3; 0.287642,-0.253263, 0.000001;;, + 15;3; 0.287642,-0.253263, 0.000001;;, + 16;3; 0.287642,-0.253263, 0.000001;;, + 17;3; 0.287642,-0.253262, 0.000001;;, + 18;3; 0.287642,-0.253262, 0.000001;;, + 19;3; 0.287642,-0.253262, 0.000001;;, + 20;3; 0.287642,-0.253263, 0.000001;;, + 21;3; 0.287642,-0.253262, 0.000001;;, + 22;3; 0.287642,-0.253263, 0.000001;;, + 23;3; 0.287642,-0.253262, 0.000001;;, + 24;3; 0.287642,-0.253262, 0.000001;;, + 25;3; 0.287642,-0.253263, 0.000001;;, + 26;3; 0.287642,-0.253263, 0.000001;;, + 27;3; 0.287642,-0.253263, 0.000001;;, + 28;3; 0.287642,-0.253263, 0.000001;;, + 29;3; 0.287642,-0.253263, 0.000001;;, + 30;3; 0.287642,-0.253263, 0.000001;;, + 31;3; 0.287642,-0.253262, 0.000001;;, + 32;3; 0.287642,-0.253263, 0.000001;;, + 33;3; 0.287642,-0.253262, 0.000001;;, + 34;3; 0.287642,-0.253262, 0.000001;;, + 35;3; 0.287642,-0.253262, 0.000001;;, + 36;3; 0.287642,-0.253262, 0.000001;;, + 37;3; 0.287642,-0.253263, 0.000001;;, + 38;3; 0.287642,-0.253262, 0.000001;;, + 39;3; 0.287642,-0.253263, 0.000001;;, + 40;3; 0.287642,-0.253263, 0.000001;;, + 41;3; 0.287642,-0.253263, 0.000001;;, + 42;3; 0.287642,-0.253263, 0.000001;;, + 43;3; 0.287642,-0.253262, 0.000001;;, + 44;3; 0.287642,-0.253263, 0.000001;;, + 45;3; 0.287642,-0.253263, 0.000001;;, + 46;3; 0.287642,-0.253262, 0.000001;;, + 47;3; 0.287642,-0.253263, 0.000001;;, + 48;3; 0.287642,-0.253262, 0.000001;;, + 49;3; 0.287642,-0.253262, 0.000001;;, + 50;3; 0.287642,-0.253263, 0.000001;;, + 51;3; 0.287642,-0.253263, 0.000001;;, + 52;3; 0.287642,-0.253263, 0.000001;;, + 53;3; 0.287642,-0.253263, 0.000001;;, + 54;3; 0.287642,-0.253263, 0.000001;;, + 55;3; 0.287642,-0.253263, 0.000001;;, + 56;3; 0.287642,-0.253262, 0.000001;;, + 57;3; 0.287642,-0.253263, 0.000001;;, + 58;3; 0.287642,-0.253262, 0.000001;;, + 59;3; 0.287642,-0.253262, 0.000001;;, + 60;3; 0.287642,-0.253263, 0.000001;;, + 61;3; 0.287642,-0.253262, 0.000001;;, + 62;3; 0.287642,-0.253263, 0.000001;;, + 63;3; 0.287642,-0.253263, 0.000001;;, + 64;3; 0.287642,-0.253263, 0.000001;;, + 65;3; 0.287642,-0.253263, 0.000001;;; + } + AnimationKey { //Rotation + 0; + 66; + 0;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 1;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 2;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 3;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 4;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 5;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 6;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 7;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 8;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 9;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 10;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 11;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 12;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 13;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 14;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 15;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 16;4; 0.008066, 0.999466, 0.003206,-0.000025;;, + 17;4; 0.031536, 0.997928, 0.003201,-0.000096;;, + 18;4; 0.065270, 0.995717, 0.003194,-0.000199;;, + 19;4; 0.099000, 0.993506, 0.003187,-0.000301;;, + 20;4; 0.122463, 0.991968, 0.003182,-0.000373;;, + 21;4; 0.130525, 0.991440, 0.003180,-0.000397;;, + 22;4; 0.126513, 0.991440, 0.003180,-0.000385;;, + 23;4; 0.114400, 0.991440, 0.003180,-0.000348;;, + 24;4; 0.094426, 0.991440, 0.003180,-0.000287;;, + 25;4; 0.067468, 0.991440, 0.003180,-0.000205;;, + 26;4; 0.035185, 0.991440, 0.003180,-0.000107;;, + 27;4; -0.000000, 0.991440, 0.003180, 0.000000;;, + 28;4; -0.035185, 0.991440, 0.003180, 0.000107;;, + 29;4; -0.067468, 0.991440, 0.003180, 0.000205;;, + 30;4; -0.094426, 0.991440, 0.003180, 0.000287;;, + 31;4; -0.114400, 0.991440, 0.003180, 0.000348;;, + 32;4; -0.126513, 0.991440, 0.003180, 0.000385;;, + 33;4; -0.130526, 0.991440, 0.003180, 0.000397;;, + 34;4; -0.122811, 0.991945, 0.003182, 0.000374;;, + 35;4; -0.101252, 0.993358, 0.003186, 0.000308;;, + 36;4; -0.070207, 0.995393, 0.003193, 0.000214;;, + 37;4; -0.036874, 0.997578, 0.003200, 0.000112;;, + 38;4; -0.010457, 0.999310, 0.003205, 0.000032;;, + 39;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 40;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 41;4; 0.010456, 0.999310, 0.003205,-0.000032;;, + 42;4; 0.036874, 0.997578, 0.003200,-0.000112;;, + 43;4; 0.070207, 0.995393, 0.003193,-0.000214;;, + 44;4; 0.101252, 0.993359, 0.003186,-0.000308;;, + 45;4; 0.122811, 0.991945, 0.003182,-0.000374;;, + 46;4; 0.130525, 0.991440, 0.003180,-0.000397;;, + 47;4; 0.126513, 0.991440, 0.003180,-0.000385;;, + 48;4; 0.114400, 0.991440, 0.003180,-0.000348;;, + 49;4; 0.094426, 0.991440, 0.003180,-0.000287;;, + 50;4; 0.067468, 0.991440, 0.003180,-0.000205;;, + 51;4; 0.035185, 0.991440, 0.003180,-0.000107;;, + 52;4; -0.000000, 0.991440, 0.003180, 0.000000;;, + 53;4; -0.035185, 0.991440, 0.003180, 0.000107;;, + 54;4; -0.067468, 0.991440, 0.003180, 0.000205;;, + 55;4; -0.094426, 0.991440, 0.003180, 0.000287;;, + 56;4; -0.114400, 0.991440, 0.003180, 0.000348;;, + 57;4; -0.126513, 0.991440, 0.003180, 0.000385;;, + 58;4; -0.130526, 0.991440, 0.003180, 0.000397;;, + 59;4; -0.122463, 0.991968, 0.003182, 0.000373;;, + 60;4; -0.099000, 0.993506, 0.003187, 0.000301;;, + 61;4; -0.065270, 0.995717, 0.003194, 0.000199;;, + 62;4; -0.031536, 0.997928, 0.003201, 0.000096;;, + 63;4; -0.008066, 0.999466, 0.003206, 0.000025;;, + 64;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 65;4; -0.000000, 0.999995, 0.003208, 0.000000;;; + } + AnimationKey { //Scale + 1; + 66; + 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;;; + } + } + Animation { + {Armature_Bone_004} + AnimationKey { //Position + 2; + 66; + 0;3; -0.421866,-0.257697, 0.000001;;, + 1;3; -0.421866,-0.257697, 0.000001;;, + 2;3; -0.421866,-0.257697, 0.000001;;, + 3;3; -0.421866,-0.257697, 0.000001;;, + 4;3; -0.421866,-0.257697, 0.000001;;, + 5;3; -0.421866,-0.257697, 0.000001;;, + 6;3; -0.421866,-0.257697, 0.000001;;, + 7;3; -0.421866,-0.257697, 0.000001;;, + 8;3; -0.421866,-0.257697, 0.000001;;, + 9;3; -0.421866,-0.257697, 0.000001;;, + 10;3; -0.421866,-0.257697, 0.000001;;, + 11;3; -0.421866,-0.257697, 0.000001;;, + 12;3; -0.421866,-0.257697, 0.000001;;, + 13;3; -0.421866,-0.257697, 0.000001;;, + 14;3; -0.421866,-0.257697, 0.000001;;, + 15;3; -0.421866,-0.257697, 0.000001;;, + 16;3; -0.421866,-0.257697, 0.000001;;, + 17;3; -0.421866,-0.257697, 0.000001;;, + 18;3; -0.421866,-0.257697, 0.000001;;, + 19;3; -0.421866,-0.257697, 0.000001;;, + 20;3; -0.421866,-0.257697, 0.000001;;, + 21;3; -0.421866,-0.257697, 0.000001;;, + 22;3; -0.421866,-0.257697, 0.000001;;, + 23;3; -0.421866,-0.257697, 0.000001;;, + 24;3; -0.421866,-0.257697, 0.000001;;, + 25;3; -0.421866,-0.257697, 0.000001;;, + 26;3; -0.421866,-0.257697, 0.000001;;, + 27;3; -0.421866,-0.257697, 0.000001;;, + 28;3; -0.421866,-0.257697, 0.000001;;, + 29;3; -0.421866,-0.257697, 0.000001;;, + 30;3; -0.421866,-0.257697, 0.000001;;, + 31;3; -0.421866,-0.257697, 0.000001;;, + 32;3; -0.421866,-0.257697, 0.000001;;, + 33;3; -0.421866,-0.257697, 0.000001;;, + 34;3; -0.421866,-0.257697, 0.000001;;, + 35;3; -0.421866,-0.257697, 0.000001;;, + 36;3; -0.421866,-0.257697, 0.000001;;, + 37;3; -0.421866,-0.257697, 0.000001;;, + 38;3; -0.421866,-0.257697, 0.000001;;, + 39;3; -0.421866,-0.257697, 0.000001;;, + 40;3; -0.421866,-0.257697, 0.000001;;, + 41;3; -0.421866,-0.257697, 0.000001;;, + 42;3; -0.421866,-0.257697, 0.000001;;, + 43;3; -0.421866,-0.257697, 0.000001;;, + 44;3; -0.421866,-0.257697, 0.000001;;, + 45;3; -0.421866,-0.257697, 0.000001;;, + 46;3; -0.421866,-0.257697, 0.000001;;, + 47;3; -0.421866,-0.257697, 0.000001;;, + 48;3; -0.421866,-0.257697, 0.000001;;, + 49;3; -0.421866,-0.257697, 0.000001;;, + 50;3; -0.421866,-0.257697, 0.000001;;, + 51;3; -0.421866,-0.257697, 0.000001;;, + 52;3; -0.421866,-0.257697, 0.000001;;, + 53;3; -0.421866,-0.257697, 0.000001;;, + 54;3; -0.421866,-0.257697, 0.000001;;, + 55;3; -0.421866,-0.257697, 0.000001;;, + 56;3; -0.421866,-0.257697, 0.000001;;, + 57;3; -0.421866,-0.257697, 0.000001;;, + 58;3; -0.421866,-0.257697, 0.000001;;, + 59;3; -0.421866,-0.257697, 0.000001;;, + 60;3; -0.421866,-0.257697, 0.000001;;, + 61;3; -0.421866,-0.257697, 0.000001;;, + 62;3; -0.421866,-0.257697, 0.000001;;, + 63;3; -0.421866,-0.257697, 0.000001;;, + 64;3; -0.421866,-0.257697, 0.000001;;, + 65;3; -0.421866,-0.257697, 0.000001;;; + } + AnimationKey { //Rotation + 0; + 66; + 0;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 1;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 2;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 3;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 4;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 5;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 6;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 7;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 8;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 9;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 10;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 11;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 12;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 13;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 14;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 15;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 16;4; -0.008066, 0.999466, 0.003206, 0.000025;;, + 17;4; -0.031536, 0.997928, 0.003201, 0.000096;;, + 18;4; -0.065270, 0.995717, 0.003194, 0.000199;;, + 19;4; -0.099000, 0.993506, 0.003187, 0.000301;;, + 20;4; -0.122463, 0.991968, 0.003182, 0.000373;;, + 21;4; -0.130526, 0.991440, 0.003180, 0.000397;;, + 22;4; -0.126513, 0.991440, 0.003180, 0.000385;;, + 23;4; -0.114400, 0.991440, 0.003180, 0.000348;;, + 24;4; -0.094426, 0.991440, 0.003180, 0.000287;;, + 25;4; -0.067468, 0.991440, 0.003180, 0.000205;;, + 26;4; -0.035185, 0.991440, 0.003180, 0.000107;;, + 27;4; -0.000000, 0.991440, 0.003180, 0.000000;;, + 28;4; 0.035185, 0.991440, 0.003180,-0.000107;;, + 29;4; 0.067468, 0.991440, 0.003180,-0.000205;;, + 30;4; 0.094426, 0.991440, 0.003180,-0.000287;;, + 31;4; 0.114400, 0.991440, 0.003180,-0.000348;;, + 32;4; 0.126513, 0.991440, 0.003180,-0.000385;;, + 33;4; 0.130526, 0.991440, 0.003180,-0.000397;;, + 34;4; 0.122811, 0.991945, 0.003182,-0.000374;;, + 35;4; 0.101252, 0.993359, 0.003186,-0.000308;;, + 36;4; 0.070207, 0.995393, 0.003193,-0.000214;;, + 37;4; 0.036874, 0.997578, 0.003200,-0.000112;;, + 38;4; 0.010456, 0.999310, 0.003205,-0.000032;;, + 39;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 40;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 41;4; -0.010457, 0.999310, 0.003205, 0.000032;;, + 42;4; -0.036874, 0.997578, 0.003200, 0.000112;;, + 43;4; -0.070207, 0.995393, 0.003193, 0.000214;;, + 44;4; -0.101252, 0.993358, 0.003186, 0.000308;;, + 45;4; -0.122811, 0.991945, 0.003182, 0.000374;;, + 46;4; -0.130526, 0.991440, 0.003180, 0.000397;;, + 47;4; -0.126513, 0.991440, 0.003180, 0.000385;;, + 48;4; -0.114400, 0.991440, 0.003180, 0.000348;;, + 49;4; -0.094426, 0.991440, 0.003180, 0.000287;;, + 50;4; -0.067468, 0.991440, 0.003180, 0.000205;;, + 51;4; -0.035185, 0.991440, 0.003180, 0.000107;;, + 52;4; -0.000000, 0.991440, 0.003180, 0.000000;;, + 53;4; 0.035185, 0.991440, 0.003180,-0.000107;;, + 54;4; 0.067468, 0.991440, 0.003180,-0.000205;;, + 55;4; 0.094426, 0.991440, 0.003180,-0.000287;;, + 56;4; 0.114400, 0.991440, 0.003180,-0.000348;;, + 57;4; 0.126513, 0.991440, 0.003180,-0.000385;;, + 58;4; 0.130526, 0.991440, 0.003180,-0.000397;;, + 59;4; 0.122463, 0.991968, 0.003182,-0.000373;;, + 60;4; 0.099000, 0.993506, 0.003187,-0.000301;;, + 61;4; 0.065270, 0.995717, 0.003194,-0.000199;;, + 62;4; 0.031536, 0.997928, 0.003201,-0.000096;;, + 63;4; 0.008066, 0.999466, 0.003206,-0.000025;;, + 64;4; -0.000000, 0.999995, 0.003208, 0.000000;;, + 65;4; -0.000000, 0.999995, 0.003208, 0.000000;;; + } + AnimationKey { //Scale + 1; + 66; + 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;;; + } + } + Animation { + {Cube_003} + AnimationKey { //Position + 2; + 66; + 0;3; -0.019749,-0.002151,-3.487330;;, + 1;3; -0.019749,-0.002151,-3.487330;;, + 2;3; -0.019749,-0.002151,-3.487330;;, + 3;3; -0.019749,-0.002151,-3.487330;;, + 4;3; -0.019749,-0.002151,-3.487330;;, + 5;3; -0.019749,-0.002151,-3.487330;;, + 6;3; -0.019749,-0.002151,-3.487330;;, + 7;3; -0.019749,-0.002151,-3.487330;;, + 8;3; -0.019749,-0.002151,-3.487330;;, + 9;3; -0.019749,-0.002151,-3.487330;;, + 10;3; -0.019749,-0.002151,-3.487330;;, + 11;3; -0.019749,-0.002151,-3.487330;;, + 12;3; -0.019749,-0.002151,-3.487330;;, + 13;3; -0.019749,-0.002151,-3.487330;;, + 14;3; -0.019749,-0.002151,-3.487330;;, + 15;3; -0.019749,-0.002151,-3.487330;;, + 16;3; -0.019749,-0.002151,-3.487330;;, + 17;3; -0.019749,-0.002151,-3.487330;;, + 18;3; -0.019749,-0.002151,-3.487330;;, + 19;3; -0.019749,-0.002151,-3.487330;;, + 20;3; -0.019749,-0.002151,-3.487330;;, + 21;3; -0.019749,-0.002151,-3.487330;;, + 22;3; -0.019749,-0.002151,-3.487330;;, + 23;3; -0.019749,-0.002151,-3.487330;;, + 24;3; -0.019749,-0.002151,-3.487330;;, + 25;3; -0.019749,-0.002151,-3.487330;;, + 26;3; -0.019749,-0.002151,-3.487330;;, + 27;3; -0.019749,-0.002151,-3.487330;;, + 28;3; -0.019749,-0.002151,-3.487330;;, + 29;3; -0.019749,-0.002151,-3.487330;;, + 30;3; -0.019749,-0.002151,-3.487330;;, + 31;3; -0.019749,-0.002151,-3.487330;;, + 32;3; -0.019749,-0.002151,-3.487330;;, + 33;3; -0.019749,-0.002151,-3.487330;;, + 34;3; -0.019749,-0.002151,-3.487330;;, + 35;3; -0.019749,-0.002151,-3.487330;;, + 36;3; -0.019749,-0.002151,-3.487330;;, + 37;3; -0.019749,-0.002151,-3.487330;;, + 38;3; -0.019749,-0.002151,-3.487330;;, + 39;3; -0.019749,-0.002151,-3.487330;;, + 40;3; -0.019749,-0.002151,-3.487330;;, + 41;3; -0.019749,-0.002151,-3.487330;;, + 42;3; -0.019749,-0.002151,-3.487330;;, + 43;3; -0.019749,-0.002151,-3.487330;;, + 44;3; -0.019749,-0.002151,-3.487330;;, + 45;3; -0.019749,-0.002151,-3.487330;;, + 46;3; -0.019749,-0.002151,-3.487330;;, + 47;3; -0.019749,-0.002151,-3.487330;;, + 48;3; -0.019749,-0.002151,-3.487330;;, + 49;3; -0.019749,-0.002151,-3.487330;;, + 50;3; -0.019749,-0.002151,-3.487330;;, + 51;3; -0.019749,-0.002151,-3.487330;;, + 52;3; -0.019749,-0.002151,-3.487330;;, + 53;3; -0.019749,-0.002151,-3.487330;;, + 54;3; -0.019749,-0.002151,-3.487330;;, + 55;3; -0.019749,-0.002151,-3.487330;;, + 56;3; -0.019749,-0.002151,-3.487330;;, + 57;3; -0.019749,-0.002151,-3.487330;;, + 58;3; -0.019749,-0.002151,-3.487330;;, + 59;3; -0.019749,-0.002151,-3.487330;;, + 60;3; -0.019749,-0.002151,-3.487330;;, + 61;3; -0.019749,-0.002151,-3.487330;;, + 62;3; -0.019749,-0.002151,-3.487330;;, + 63;3; -0.019749,-0.002151,-3.487330;;, + 64;3; -0.019749,-0.002151,-3.487330;;, + 65;3; -0.019749,-0.002151,-3.487330;;; + } + AnimationKey { //Rotation + 0; + 66; + 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;;; + } + AnimationKey { //Scale + 1; + 66; + 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;;; + } + } +} //End of AnimationSet diff --git a/mods/mobs/models/mobs_tree_monster.png b/mods/mobs/models/mobs_tree_monster.png new file mode 100644 index 00000000..909af196 Binary files /dev/null and b/mods/mobs/models/mobs_tree_monster.png differ diff --git a/mods/mobs/models/mobs_tree_monster.x b/mods/mobs/models/mobs_tree_monster.x new file mode 100644 index 00000000..57c681d1 --- /dev/null +++ b/mods/mobs/models/mobs_tree_monster.x @@ -0,0 +1,4009 @@ +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.003210,-0.035207, 1.015033, 1.000000;; + } + Frame Armature_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.189446, 1.000000;; + } + Frame Armature_Bone_001 { + 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.376699, 0.433080, 1.000000;; + } + } //End of Armature_Bone_001 + Frame Armature_Bone_002 { + FrameTransformMatrix { + -0.234777, 0.000000,-0.972049, 0.000000, + 0.687342,-0.707107,-0.166012, 0.000000, + -0.687343,-0.707106, 0.166012, 0.000000, + 0.305704,-0.008069, 0.509506, 1.000000;; + } + } //End of Armature_Bone_002 + Frame Armature_Bone_003 { + FrameTransformMatrix { + 0.707093,-0.004414, 0.707107, 0.000000, + -0.504404,-0.703972, 0.500000, 0.000000, + 0.495577,-0.710214,-0.500000, 0.000000, + -0.299335,-0.008069, 0.509506, 1.000000;; + } + } //End of Armature_Bone_003 + Frame Armature_Bone_004 { + FrameTransformMatrix { + -0.223872,-0.000000, 0.974619, 0.000000, + 0.689160,-0.707106, 0.158302, 0.000000, + 0.689159, 0.707107, 0.158302, 0.000000, + 0.305704,-0.008069,-0.057320, 1.000000;; + } + } //End of Armature_Bone_004 + Frame Armature_Bone_005 { + FrameTransformMatrix { + 0.707093,-0.004414,-0.707107, 0.000000, + -0.504404,-0.703971,-0.500000, 0.000000, + -0.495576, 0.710215,-0.500000, 0.000000, + -0.299335,-0.008069,-0.057320, 1.000000;; + } + } //End of Armature_Bone_005 + } //End of Armature_root + Frame Cube_005 { + 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.003210, 0.035207,-1.015033, 1.000000;; + } + Mesh { //Cube_020 Mesh + 396; + -0.698333; 0.388762;-0.235020;, + 0.039704;-0.349276;-0.235020;, + 0.039704;-0.349276; 0.968695;, + -0.698333; 0.388761; 0.968695;, + 0.039704;-0.349276;-0.235020;, + -0.698333; 0.388761;-0.235020;, + -0.698333; 0.388761; 0.968695;, + 0.039704;-0.349276; 0.968695;, + 0.039704; 0.388761;-0.235020;, + -0.698333;-0.349276;-0.235020;, + -0.698333;-0.349276; 0.968695;, + 0.039704; 0.388761; 0.968695;, + -0.698333;-0.349276;-0.235020;, + 0.039704; 0.388761;-0.235020;, + 0.039704; 0.388761; 0.968695;, + -0.698333;-0.349276; 0.968695;, + -0.666674;-0.178368;-0.310436;, + 0.071363;-0.916405;-0.310436;, + 0.071363;-0.916405; 0.893279;, + -0.666674;-0.178368; 0.893279;, + 0.071363;-0.916405;-0.310436;, + -0.666674;-0.178368;-0.310436;, + -0.666674;-0.178368; 0.893279;, + 0.071363;-0.916405; 0.893279;, + 0.071363;-0.178368;-0.310436;, + -0.666674;-0.916405;-0.310436;, + -0.666674;-0.916405; 0.893279;, + 0.071363;-0.178368; 0.893279;, + -0.666674;-0.916405;-0.310436;, + 0.071363;-0.178368;-0.310436;, + 0.071363;-0.178368; 0.893279;, + -0.666674;-0.916405; 0.893279;, + -0.102420;-0.182496;-0.129728;, + 0.635618;-0.920533;-0.129728;, + 0.635617;-0.920533; 1.073987;, + -0.102420;-0.182496; 1.073987;, + 0.635618;-0.920533;-0.129728;, + -0.102420;-0.182496;-0.129728;, + -0.102420;-0.182496; 1.073987;, + 0.635618;-0.920533; 1.073987;, + 0.635618;-0.182496;-0.129728;, + -0.102420;-0.920533;-0.129728;, + -0.102420;-0.920533; 1.073987;, + 0.635618;-0.182496; 1.073987;, + -0.102420;-0.920533;-0.129728;, + 0.635618;-0.182496;-0.129728;, + 0.635618;-0.182496; 1.073987;, + -0.102420;-0.920533; 1.073987;, + -0.089112; 0.390430;-0.176739;, + 0.648926;-0.347607;-0.176739;, + 0.648925;-0.347607; 1.026976;, + -0.089112; 0.390430; 1.026976;, + 0.648926;-0.347607;-0.176739;, + -0.089112; 0.390430;-0.176739;, + -0.089112; 0.390430; 1.026976;, + 0.648926;-0.347607; 1.026976;, + 0.648926; 0.390430;-0.176739;, + -0.089112;-0.347607;-0.176739;, + -0.089112;-0.347607; 1.026976;, + 0.648926; 0.390430; 1.026976;, + -0.089112;-0.347607;-0.176739;, + 0.648926; 0.390430;-0.176739;, + 0.648926; 0.390430; 1.026976;, + -0.089112;-0.347607; 1.026976;, + 0.226582; 0.413095; 2.965844;, + -0.178494;-0.255726; 2.274475;, + -0.895898; 0.614223; 1.853227;, + -0.490822; 1.283045; 2.544595;, + -0.178494;-0.255726; 2.274475;, + 0.226582; 0.413095; 2.965844;, + -0.490822; 1.283045; 2.544595;, + -0.895898; 0.614224; 1.853227;, + -0.342818;-0.056461; 2.965843;, + 0.390906; 0.213830; 2.274476;, + -0.326498; 1.083779; 1.853227;, + -1.060222; 0.813489; 2.544595;, + 0.390906; 0.213830; 2.274476;, + -0.342818;-0.056461; 2.965843;, + -1.060222; 0.813489; 2.544595;, + -0.326498; 1.083779; 1.853227;, + 0.538129;-0.026167; 2.965844;, + -0.237751; 0.070879; 2.274476;, + 0.263923; 1.080732; 1.853227;, + 1.039804; 0.983687; 2.544595;, + -0.237751; 0.070879; 2.274476;, + 0.538129;-0.026167; 2.965844;, + 1.039804; 0.983687; 2.544595;, + 0.263923; 1.080732; 1.853227;, + -0.122841; 0.302190; 2.965844;, + 0.423219;-0.257477; 2.274476;, + 0.924893; 0.752376; 1.853227;, + 0.378834; 1.312043; 2.544595;, + 0.423219;-0.257477; 2.274476;, + -0.122841; 0.302190; 2.965844;, + 0.378834; 1.312043; 2.544595;, + 0.924893; 0.752376; 1.853227;, + -0.452051;-0.303906; 2.707328;, + 0.323830;-0.206860; 3.398696;, + -0.177845; 0.802993; 3.819944;, + -0.953725; 0.705948; 3.128576;, + 0.323830;-0.206860; 3.398696;, + -0.452051;-0.303906; 2.707328;, + -0.953725; 0.705948; 3.128576;, + -0.177845; 0.802993; 3.819944;, + 0.208919; 0.024451; 2.707328;, + -0.337140;-0.535217; 3.398695;, + -0.838815; 0.474637; 3.819944;, + -0.292755; 1.034304; 3.128576;, + -0.337140;-0.535217; 3.398695;, + 0.208919; 0.024451; 2.707328;, + -0.292755; 1.034304; 3.128576;, + -0.838815; 0.474637; 3.819944;, + -0.140504; 0.135356; 2.707328;, + 0.264572;-0.533466; 3.398696;, + 0.981976; 0.336484; 3.819944;, + 0.576900; 1.005305; 3.128576;, + 0.264572;-0.533466; 3.398696;, + -0.140504; 0.135356; 2.707328;, + 0.576900; 1.005305; 3.128576;, + 0.981976; 0.336484; 3.819944;, + 0.428896;-0.334200; 2.707328;, + -0.304828;-0.063910; 3.398695;, + 0.412576; 0.806040; 3.819944;, + 1.146301; 0.535749; 3.128576;, + -0.304828;-0.063910; 3.398695;, + 0.428896;-0.334200; 2.707328;, + 1.146301; 0.535749; 3.128576;, + 0.412576; 0.806040; 3.819944;, + -0.302501; 0.103625; 3.405081;, + 0.435537;-0.393769; 3.950332;, + 0.435537; 0.495518; 4.761565;, + -0.302501; 0.992912; 4.216314;, + 0.435537;-0.393769; 3.950332;, + -0.302501; 0.103625; 3.405081;, + -0.302501; 0.992912; 4.216314;, + 0.435537; 0.495518; 4.761565;, + 0.435537; 0.103625; 3.405081;, + -0.302501;-0.393769; 3.950331;, + -0.302501; 0.495518; 4.761565;, + 0.435537; 0.992911; 4.216314;, + -0.302501;-0.393769; 3.950331;, + 0.435537; 0.103625; 3.405081;, + 0.435537; 0.992911; 4.216314;, + -0.302501; 0.495518; 4.761565;, + -0.102694; 0.415625; 3.502965;, + -0.102694;-0.628117; 3.502965;, + -0.908686;-0.628117; 4.397006;, + -0.908686; 0.415625; 4.397006;, + -0.102694;-0.628117; 3.502965;, + -0.102694; 0.415625; 3.502965;, + -0.908686; 0.415625; 4.397006;, + -0.908686;-0.628117; 4.397006;, + 0.284917;-0.106246; 3.852403;, + -0.490306;-0.106246; 3.153527;, + -1.296297;-0.106246; 4.047568;, + -0.521074;-0.106246; 4.746444;, + -0.490306;-0.106246; 3.153527;, + 0.284917;-0.106246; 3.852403;, + -0.521074;-0.106246; 4.746444;, + -1.296297;-0.106246; 4.047568;, + 0.249779; 0.415625; 3.501722;, + 0.249779;-0.628117; 3.501721;, + 0.723046;-0.628117; 4.608496;, + 0.723046; 0.415625; 4.608496;, + 0.249779;-0.628117; 3.501721;, + 0.249779; 0.415625; 3.501722;, + 0.723046; 0.415625; 4.608496;, + 0.723046;-0.628117; 4.608496;, + 0.729621;-0.106246; 3.296537;, + -0.230063;-0.106246; 3.706906;, + 0.243203;-0.106246; 4.813681;, + 1.202888;-0.106246; 4.403311;, + -0.230063;-0.106246; 3.706906;, + 0.729621;-0.106246; 3.296537;, + 1.202888;-0.106246; 4.403311;, + 0.243203;-0.106246; 4.813681;, + -0.356476; 0.081197; 3.794902;, + 0.381561;-0.656840; 3.794902;, + 0.381561;-0.656840; 4.998618;, + -0.356476; 0.081197; 4.998618;, + 0.381561;-0.656840; 3.794902;, + -0.356476; 0.081197; 3.794902;, + -0.356476; 0.081197; 4.998618;, + 0.381561;-0.656840; 4.998618;, + 0.381561; 0.081197; 3.794902;, + -0.356476;-0.656840; 3.794902;, + -0.356476;-0.656840; 4.998617;, + 0.381561; 0.081197; 4.998618;, + -0.356476;-0.656840; 3.794902;, + 0.381561; 0.081197; 3.794902;, + 0.381561; 0.081197; 4.998618;, + -0.356476;-0.656840; 4.998617;, + 0.404418;-0.274915; 2.000674;, + 0.404418;-0.671309; 2.000674;, + 0.404418;-0.671309; 2.966957;, + 0.404418;-0.274915; 2.966957;, + 0.404418;-0.671309; 2.000674;, + -0.404418;-0.671309; 2.000674;, + -0.404418;-0.671309; 2.966957;, + 0.404418;-0.671309; 2.966957;, + -0.404418;-0.671309; 2.000674;, + -0.404418;-0.274915; 2.000674;, + -0.404418;-0.274915; 2.966957;, + -0.404418;-0.671309; 2.966957;, + -0.404418;-0.671309; 2.966957;, + -0.404418;-0.671309; 2.000674;, + 0.404418;-0.671309; 2.000674;, + 0.404418;-0.671309; 2.966957;, + 0.404418;-0.671309; 2.966957;, + 0.404418;-0.671309; 2.000674;, + 0.404418;-0.274915; 2.000674;, + 0.404418;-0.274915; 2.966957;, + -0.404418;-0.274915; 2.966957;, + -0.404418;-0.274915; 2.000674;, + -0.404418;-0.671309; 2.000674;, + -0.404418;-0.671309; 2.966957;, + -0.400414;-0.659994; 2.846577;, + -0.400414; 0.119126; 2.846577;, + -0.400414; 0.119126; 3.812860;, + -0.400414;-0.659994; 3.812860;, + -0.400414; 0.119126; 2.846577;, + 0.400414; 0.119126; 2.846577;, + 0.400414; 0.119126; 3.812860;, + -0.400414; 0.119126; 3.812860;, + 0.400414; 0.119126; 2.846577;, + 0.400414;-0.659994; 2.846577;, + 0.400414;-0.659994; 3.812860;, + 0.400414; 0.119126; 3.812860;, + 0.400414;-0.659994; 2.846577;, + -0.400414;-0.659994; 2.846577;, + -0.400414;-0.659994; 3.812860;, + 0.400414;-0.659994; 3.812860;, + -0.400414;-0.659994; 3.812860;, + -0.400414; 0.119126; 3.812860;, + 0.400414; 0.119126; 3.812860;, + 0.400414;-0.659994; 3.812860;, + -0.400414;-0.263600; 1.882061;, + -0.400414; 0.119126; 1.882061;, + -0.400414; 0.119126; 2.848344;, + -0.400414;-0.263600; 2.848344;, + -0.400414; 0.119126; 1.882061;, + 0.400414; 0.119126; 1.882061;, + 0.400414; 0.119126; 2.848344;, + -0.400414; 0.119126; 2.848344;, + 0.400414; 0.119126; 1.882061;, + 0.400414;-0.263600; 1.882061;, + 0.400414;-0.263600; 2.848344;, + 0.400414; 0.119126; 2.848344;, + -0.452774;-0.710935; 0.935603;, + -0.452774; 0.170067; 0.935603;, + -0.452774; 0.170067; 2.028242;, + -0.452774;-0.710935; 2.028242;, + -0.452774; 0.170067; 0.935603;, + 0.452774; 0.170067; 0.935603;, + 0.452774; 0.170067; 2.028242;, + -0.452774; 0.170067; 2.028242;, + 0.452774; 0.170067; 0.935603;, + 0.452774;-0.710935; 0.935603;, + 0.452774;-0.710935; 2.028242;, + 0.452774; 0.170067; 2.028242;, + 0.452774;-0.710935; 0.935603;, + -0.452774;-0.710935; 0.935603;, + -0.452774;-0.710935; 2.028242;, + 0.452774;-0.710935; 2.028242;, + -0.452774;-0.710935; 2.028242;, + -0.452774; 0.170067; 2.028242;, + 0.452774; 0.170067; 2.028242;, + 0.452774;-0.710935; 2.028242;, + -0.400414; 0.119126; 3.022741;, + -0.400414;-0.659994; 3.022741;, + 0.400414;-0.659994; 3.022741;, + 0.400414; 0.119126; 3.022741;, + -0.452774;-0.710935; 0.935603;, + 0.452774;-0.710935; 0.935603;, + 0.452774; 0.170067; 0.935603;, + -0.452774; 0.170067; 0.935603;, + -0.400414;-0.266082; 2.848344;, + -0.400414;-0.266082; 1.882061;, + -0.400414;-0.263600; 1.882061;, + -0.400414;-0.263600; 2.848344;, + 0.400414;-0.266082; 2.848344;, + 0.400414;-0.266082; 1.882061;, + -0.400414;-0.266082; 1.882061;, + -0.400414;-0.266082; 2.848344;, + 0.400414;-0.263600; 2.848344;, + 0.400414;-0.263600; 1.882061;, + 0.400414;-0.266082; 1.882061;, + 0.400414;-0.266082; 2.848344;, + -0.391039;-0.271441; 3.810754;, + -0.391039;-0.271441; 2.844472;, + -0.400414;-0.659994; 2.846577;, + -0.400414;-0.659994; 3.812860;, + 0.409790;-0.271441; 3.810754;, + 0.409790;-0.271441; 2.844472;, + -0.391039;-0.271441; 2.844472;, + -0.391039;-0.271441; 3.810754;, + 0.400414;-0.659994; 3.812860;, + 0.400414;-0.659994; 2.846577;, + 0.409790;-0.271441; 2.844472;, + 0.409790;-0.271441; 3.810754;, + 0.133916;-0.391466;-0.146526;, + 0.433240;-0.391466;-0.146526;, + 0.433240;-0.391466; 1.070661;, + 0.133916;-0.391466; 1.070661;, + 0.433240;-0.391466;-0.146526;, + 0.433240;-0.690790;-0.146526;, + 0.433240;-0.690790; 1.070661;, + 0.433240;-0.391466; 1.070661;, + 0.433240;-0.690790;-0.146526;, + 0.133916;-0.690790;-0.146526;, + 0.133916;-0.690790; 1.070661;, + 0.433240;-0.690790; 1.070661;, + 0.133916;-0.690790;-0.146526;, + 0.133916;-0.391466;-0.146526;, + 0.133916;-0.391466; 1.070661;, + 0.133916;-0.690790; 1.070661;, + 0.133916;-0.690790;-0.146526;, + 0.433240;-0.690790;-0.146526;, + 0.433240;-0.391466;-0.146526;, + 0.133916;-0.391466;-0.146526;, + 0.133916;-0.391466; 1.070661;, + 0.433240;-0.391466; 1.070661;, + 0.433240;-0.690790; 1.070661;, + 0.133916;-0.690790; 1.070661;, + 0.141919;-0.135520;-0.146526;, + 0.141919; 0.163804;-0.146526;, + 0.141919; 0.163804; 1.070661;, + 0.141919;-0.135520; 1.070661;, + 0.141919; 0.163804;-0.146526;, + 0.441243; 0.163804;-0.146526;, + 0.441242; 0.163804; 1.070661;, + 0.141919; 0.163804; 1.070661;, + 0.441243; 0.163804;-0.146526;, + 0.441243;-0.135520;-0.146526;, + 0.441243;-0.135520; 1.070661;, + 0.441242; 0.163804; 1.070661;, + 0.441243;-0.135520;-0.146526;, + 0.141919;-0.135520;-0.146526;, + 0.141919;-0.135520; 1.070661;, + 0.441243;-0.135520; 1.070661;, + 0.441243;-0.135520;-0.146526;, + 0.441243; 0.163804;-0.146526;, + 0.141919; 0.163804;-0.146526;, + 0.141919;-0.135520;-0.146526;, + 0.141919;-0.135520; 1.070661;, + 0.141919; 0.163804; 1.070661;, + 0.441242; 0.163804; 1.070661;, + 0.441243;-0.135520; 1.070661;, + -0.158719;-0.383464;-0.146526;, + -0.158719;-0.682787;-0.146526;, + -0.158719;-0.682787; 1.070661;, + -0.158719;-0.383464; 1.070661;, + -0.158719;-0.682787;-0.146526;, + -0.458043;-0.682787;-0.146526;, + -0.458042;-0.682787; 1.070661;, + -0.158719;-0.682787; 1.070661;, + -0.458043;-0.682787;-0.146526;, + -0.458043;-0.383464;-0.146526;, + -0.458043;-0.383464; 1.070661;, + -0.458042;-0.682787; 1.070661;, + -0.458043;-0.383464;-0.146526;, + -0.158719;-0.383464;-0.146526;, + -0.158719;-0.383464; 1.070661;, + -0.458043;-0.383464; 1.070661;, + -0.458043;-0.383464;-0.146526;, + -0.458043;-0.682787;-0.146526;, + -0.158719;-0.682787;-0.146526;, + -0.158719;-0.383464;-0.146526;, + -0.158719;-0.383464; 1.070661;, + -0.158719;-0.682787; 1.070661;, + -0.458042;-0.682787; 1.070661;, + -0.458043;-0.383464; 1.070661;, + -0.150716;-0.127518;-0.146526;, + -0.450040;-0.127518;-0.146526;, + -0.450040;-0.127518; 1.070661;, + -0.150716;-0.127518; 1.070661;, + -0.450040;-0.127518;-0.146526;, + -0.450040; 0.171806;-0.146526;, + -0.450040; 0.171806; 1.070661;, + -0.450040;-0.127518; 1.070661;, + -0.450040; 0.171806;-0.146526;, + -0.150716; 0.171806;-0.146526;, + -0.150716; 0.171806; 1.070661;, + -0.450040; 0.171806; 1.070661;, + -0.150716; 0.171806;-0.146526;, + -0.150716;-0.127518;-0.146526;, + -0.150716;-0.127518; 1.070661;, + -0.150716; 0.171806; 1.070661;, + -0.150716; 0.171806;-0.146526;, + -0.450040; 0.171806;-0.146526;, + -0.450040;-0.127518;-0.146526;, + -0.150716;-0.127518;-0.146526;, + -0.150716;-0.127518; 1.070661;, + -0.450040;-0.127518; 1.070661;, + -0.450040; 0.171806; 1.070661;, + -0.150716; 0.171806; 1.070661;; + 99; + 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;; + MeshNormals { //Cube_020 Normals + 396; + 0.707107; 0.707107; 0.000000;, + 0.707107; 0.707107; 0.000000;, + 0.707107; 0.707107; 0.000000;, + 0.707107; 0.707107; 0.000000;, + -0.707107;-0.707107; 0.000000;, + -0.707107;-0.707107; 0.000000;, + -0.707107;-0.707107; 0.000000;, + -0.707107;-0.707107; 0.000000;, + 0.707107;-0.707107; 0.000000;, + 0.707107;-0.707107; 0.000000;, + 0.707107;-0.707107; 0.000000;, + 0.707107;-0.707107; 0.000000;, + -0.707107; 0.707107; 0.000000;, + -0.707107; 0.707107; 0.000000;, + -0.707107; 0.707107; 0.000000;, + -0.707107; 0.707107; 0.000000;, + 0.707107; 0.707107; 0.000000;, + 0.707107; 0.707107; 0.000000;, + 0.707107; 0.707107; 0.000000;, + 0.707107; 0.707107; 0.000000;, + -0.707107;-0.707107; 0.000000;, + -0.707107;-0.707107; 0.000000;, + -0.707107;-0.707107; 0.000000;, + -0.707107;-0.707107; 0.000000;, + 0.707107;-0.707107; 0.000000;, + 0.707107;-0.707107; 0.000000;, + 0.707107;-0.707107; 0.000000;, + 0.707107;-0.707107; 0.000000;, + -0.707107; 0.707107; 0.000000;, + -0.707107; 0.707107; 0.000000;, + -0.707107; 0.707107; 0.000000;, + -0.707107; 0.707107; 0.000000;, + 0.707107; 0.707107; 0.000000;, + 0.707107; 0.707107; 0.000000;, + 0.707107; 0.707107; 0.000000;, + 0.707107; 0.707107; 0.000000;, + -0.707107;-0.707107; 0.000000;, + -0.707107;-0.707107; 0.000000;, + -0.707107;-0.707107; 0.000000;, + -0.707107;-0.707107; 0.000000;, + 0.707107;-0.707107; 0.000000;, + 0.707107;-0.707107; 0.000000;, + 0.707107;-0.707107; 0.000000;, + 0.707107;-0.707107; 0.000000;, + -0.707107; 0.707107; 0.000000;, + -0.707107; 0.707107; 0.000000;, + -0.707107; 0.707107; 0.000000;, + -0.707107; 0.707107; 0.000000;, + 0.707107; 0.707107; 0.000000;, + 0.707107; 0.707107; 0.000000;, + 0.707107; 0.707107; 0.000000;, + 0.707107; 0.707107; 0.000000;, + -0.707107;-0.707107; 0.000000;, + -0.707107;-0.707107; 0.000000;, + -0.707107;-0.707107; 0.000000;, + -0.707107;-0.707107; 0.000000;, + 0.707107;-0.707107; 0.000000;, + 0.707107;-0.707107; 0.000000;, + 0.707107;-0.707107; 0.000000;, + 0.707107;-0.707107; 0.000000;, + -0.707107; 0.707107; 0.000000;, + -0.707107; 0.707107; 0.000000;, + -0.707107; 0.707107; 0.000000;, + -0.707107; 0.707107; 0.000000;, + -0.702975;-0.258963; 0.662393;, + -0.702975;-0.258963; 0.662393;, + -0.702975;-0.258963; 0.662393;, + -0.702975;-0.258963; 0.662393;, + 0.702974; 0.258963;-0.662393;, + 0.702974; 0.258963;-0.662393;, + 0.702974; 0.258963;-0.662393;, + 0.702974; 0.258963;-0.662393;, + -0.388099;-0.640791;-0.662394;, + -0.388099;-0.640791;-0.662394;, + -0.388099;-0.640791;-0.662394;, + -0.388099;-0.640791;-0.662394;, + 0.388099; 0.640791; 0.662394;, + 0.388099; 0.640791; 0.662394;, + 0.388099; 0.640791; 0.662394;, + 0.388099; 0.640791; 0.662394;, + -0.523175; 0.536212; 0.662394;, + -0.523175; 0.536212; 0.662394;, + -0.523175; 0.536212; 0.662394;, + -0.523175; 0.536212; 0.662394;, + 0.523174;-0.536212;-0.662394;, + 0.523174;-0.536212;-0.662394;, + 0.523174;-0.536212;-0.662394;, + 0.523174;-0.536212;-0.662394;, + -0.743364; 0.092978;-0.662394;, + -0.743364; 0.092978;-0.662394;, + -0.743364; 0.092978;-0.662394;, + -0.743364; 0.092978;-0.662394;, + 0.743364;-0.092978; 0.662393;, + 0.743364;-0.092978; 0.662393;, + 0.743364;-0.092978; 0.662393;, + 0.743364;-0.092978; 0.662393;, + 0.523175; 0.536212;-0.662393;, + 0.523175; 0.536212;-0.662393;, + 0.523175; 0.536212;-0.662393;, + 0.523175; 0.536212;-0.662393;, + -0.523175;-0.536212; 0.662394;, + -0.523175;-0.536212; 0.662394;, + -0.523175;-0.536212; 0.662394;, + -0.523175;-0.536212; 0.662394;, + 0.743364; 0.092978; 0.662394;, + 0.743364; 0.092978; 0.662394;, + 0.743364; 0.092978; 0.662394;, + 0.743364; 0.092978; 0.662394;, + -0.743364;-0.092978;-0.662394;, + -0.743364;-0.092978;-0.662394;, + -0.743364;-0.092978;-0.662394;, + -0.743364;-0.092978;-0.662394;, + 0.702975;-0.258963;-0.662393;, + 0.702975;-0.258963;-0.662393;, + 0.702975;-0.258963;-0.662393;, + 0.702975;-0.258963;-0.662393;, + -0.702974; 0.258963; 0.662394;, + -0.702974; 0.258963; 0.662394;, + -0.702974; 0.258963; 0.662394;, + -0.702974; 0.258963; 0.662394;, + 0.388099;-0.640792; 0.662394;, + 0.388099;-0.640792; 0.662394;, + 0.388099;-0.640792; 0.662394;, + 0.388099;-0.640792; 0.662394;, + -0.388099; 0.640792;-0.662394;, + -0.388099; 0.640792;-0.662394;, + -0.388099; 0.640792;-0.662394;, + -0.388099; 0.640792;-0.662394;, + 0.707107; 0.476548;-0.522400;, + 0.707107; 0.476548;-0.522400;, + 0.707107; 0.476548;-0.522400;, + 0.707107; 0.476548;-0.522400;, + -0.707107;-0.476548; 0.522400;, + -0.707107;-0.476548; 0.522400;, + -0.707107;-0.476548; 0.522400;, + -0.707107;-0.476548; 0.522400;, + 0.707107;-0.476549; 0.522400;, + 0.707107;-0.476549; 0.522400;, + 0.707107;-0.476549; 0.522400;, + 0.707107;-0.476549; 0.522400;, + -0.707107; 0.476549;-0.522400;, + -0.707107; 0.476549;-0.522400;, + -0.707107; 0.476549;-0.522400;, + -0.707107; 0.476549;-0.522400;, + 0.742734;-0.000000; 0.669586;, + 0.742734;-0.000000; 0.669586;, + 0.742734;-0.000000; 0.669586;, + 0.742734;-0.000000; 0.669586;, + -0.742734; 0.000000;-0.669586;, + -0.742734; 0.000000;-0.669586;, + -0.742734; 0.000000;-0.669586;, + -0.742734; 0.000000;-0.669586;, + -0.000000;-1.000000;-0.000000;, + -0.000000;-1.000000;-0.000000;, + -0.000000;-1.000000;-0.000000;, + -0.000000;-1.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.919465;-0.000000;-0.393171;, + 0.919465;-0.000000;-0.393171;, + 0.919465;-0.000000;-0.393171;, + 0.919465;-0.000000;-0.393171;, + -0.919465;-0.000000; 0.393172;, + -0.919465;-0.000000; 0.393172;, + -0.919465;-0.000000; 0.393172;, + -0.919465;-0.000000; 0.393172;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.707107; 0.707107; 0.000000;, + 0.707107; 0.707107; 0.000000;, + 0.707107; 0.707107; 0.000000;, + 0.707107; 0.707107; 0.000000;, + -0.707107;-0.707107; 0.000000;, + -0.707107;-0.707107; 0.000000;, + -0.707107;-0.707107; 0.000000;, + -0.707107;-0.707107; 0.000000;, + 0.707107;-0.707107; 0.000000;, + 0.707107;-0.707107; 0.000000;, + 0.707107;-0.707107; 0.000000;, + 0.707107;-0.707107; 0.000000;, + -0.707107; 0.707107; 0.000000;, + -0.707107; 0.707107; 0.000000;, + -0.707107; 0.707107; 0.000000;, + -0.707107; 0.707107; 0.000000;, + 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;, + 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; 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; 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; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 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.999709;-0.024122; 0.000000;, + 0.999709;-0.024122; 0.000000;, + 0.999709;-0.024122; 0.000000;, + 0.999709;-0.024122; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.999709; 0.024122; 0.000000;, + -0.999709; 0.024122; 0.000000;, + -0.999709; 0.024122; 0.000000;, + -0.999709; 0.024122; 0.000000;, + 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;, + 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; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -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; 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;, + -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;; + 99; + 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;; + } //End of Cube_020 Normals + MeshMaterialList { //Cube_020 Material List + 1; + 1; + 0;; + Material Default_Material { + 0.800000; 0.800000; 0.800000; 0.800000;; + 96.078431; + 0.500000; 0.500000; 0.500000;; + 0.000000; 0.000000; 0.000000;; + } + } //End of Cube_020 Material List + MeshTextureCoords { //Cube_020 UV Coordinates + 396; + 0.004311; 0.997873;, + 0.215553; 0.997873;, + 0.215553; 0.725464;, + 0.004311; 0.725464;, + 0.234926; 0.999800;, + 0.000200; 0.999800;, + 0.000200; 0.729576;, + 0.234926; 0.729576;, + 0.238056; 0.999800;, + 0.520057; 0.999800;, + 0.520056; 0.675133;, + 0.238056; 0.675133;, + 0.513453; 0.999512;, + 0.243229; 0.999512;, + 0.243229; 0.671943;, + 0.513453; 0.671943;, + 0.004311; 0.997873;, + 0.215553; 0.997873;, + 0.215553; 0.725464;, + 0.004311; 0.725464;, + 0.234926; 0.999800;, + 0.000200; 0.999800;, + 0.000200; 0.729576;, + 0.234926; 0.729576;, + 0.238056; 0.999800;, + 0.520057; 0.999800;, + 0.520056; 0.675133;, + 0.238056; 0.675133;, + 0.513453; 0.999512;, + 0.243229; 0.999512;, + 0.243229; 0.671943;, + 0.513453; 0.671943;, + 0.004311; 0.997873;, + 0.215553; 0.997873;, + 0.215553; 0.725464;, + 0.004311; 0.725464;, + 0.234926; 0.999800;, + 0.000200; 0.999800;, + 0.000200; 0.729576;, + 0.234926; 0.729576;, + 0.238056; 0.999800;, + 0.520057; 0.999800;, + 0.520056; 0.675133;, + 0.238056; 0.675133;, + 0.513453; 0.999512;, + 0.243229; 0.999512;, + 0.243229; 0.671943;, + 0.513453; 0.671943;, + 0.004311; 0.997873;, + 0.215553; 0.997873;, + 0.215553; 0.725464;, + 0.004311; 0.725464;, + 0.234926; 0.999800;, + 0.000200; 0.999800;, + 0.000200; 0.729576;, + 0.234926; 0.729576;, + 0.238056; 0.999800;, + 0.520057; 0.999800;, + 0.520056; 0.675133;, + 0.238056; 0.675133;, + 0.513453; 0.999512;, + 0.243229; 0.999512;, + 0.243229; 0.671943;, + 0.513453; 0.671943;, + 0.004311; 0.997873;, + 0.215553; 0.997873;, + 0.215553; 0.725464;, + 0.004311; 0.725464;, + 0.234926; 0.999800;, + 0.000200; 0.999800;, + 0.000200; 0.729576;, + 0.234926; 0.729576;, + 0.238056; 0.999800;, + 0.520057; 0.999800;, + 0.520056; 0.675133;, + 0.238056; 0.675133;, + 0.513453; 0.999512;, + 0.243229; 0.999512;, + 0.243229; 0.671943;, + 0.513453; 0.671943;, + 0.004311; 0.997873;, + 0.215553; 0.997873;, + 0.215553; 0.725464;, + 0.004311; 0.725464;, + 0.234926; 0.999800;, + 0.000200; 0.999800;, + 0.000200; 0.729576;, + 0.234926; 0.729576;, + 0.238056; 0.999800;, + 0.520057; 0.999800;, + 0.520056; 0.675133;, + 0.238056; 0.675133;, + 0.513453; 0.999512;, + 0.243229; 0.999512;, + 0.243229; 0.671943;, + 0.513453; 0.671943;, + 0.004311; 0.997873;, + 0.215553; 0.997873;, + 0.215553; 0.725464;, + 0.004311; 0.725464;, + 0.234926; 0.999800;, + 0.000200; 0.999800;, + 0.000200; 0.729576;, + 0.234926; 0.729576;, + 0.238056; 0.999800;, + 0.520057; 0.999800;, + 0.520056; 0.675133;, + 0.238056; 0.675133;, + 0.513453; 0.999512;, + 0.243229; 0.999512;, + 0.243229; 0.671943;, + 0.513453; 0.671943;, + 0.004311; 0.997873;, + 0.215553; 0.997873;, + 0.215553; 0.725464;, + 0.004311; 0.725464;, + 0.234926; 0.999800;, + 0.000200; 0.999800;, + 0.000200; 0.729576;, + 0.234926; 0.729576;, + 0.238056; 0.999800;, + 0.520057; 0.999800;, + 0.520056; 0.675133;, + 0.238056; 0.675133;, + 0.513453; 0.999512;, + 0.243229; 0.999512;, + 0.243229; 0.671943;, + 0.513453; 0.671943;, + 0.004311; 0.997873;, + 0.215553; 0.997873;, + 0.215553; 0.725464;, + 0.004311; 0.725464;, + 0.234926; 0.999800;, + 0.000200; 0.999800;, + 0.000200; 0.729576;, + 0.234926; 0.729576;, + 0.238056; 0.999800;, + 0.520057; 0.999800;, + 0.520056; 0.675133;, + 0.238056; 0.675133;, + 0.513453; 0.999512;, + 0.243229; 0.999512;, + 0.243229; 0.671943;, + 0.513453; 0.671943;, + 0.004311; 0.997873;, + 0.215553; 0.997873;, + 0.215553; 0.725464;, + 0.004311; 0.725464;, + 0.234926; 0.999800;, + 0.000200; 0.999800;, + 0.000200; 0.729576;, + 0.234926; 0.729576;, + 0.238056; 0.999800;, + 0.520057; 0.999800;, + 0.520056; 0.675133;, + 0.238056; 0.675133;, + 0.513453; 0.999512;, + 0.243229; 0.999512;, + 0.243229; 0.671943;, + 0.513453; 0.671943;, + 0.004311; 0.997873;, + 0.215553; 0.997873;, + 0.215553; 0.725464;, + 0.004311; 0.725464;, + 0.234926; 0.999800;, + 0.000200; 0.999800;, + 0.000200; 0.729576;, + 0.234926; 0.729576;, + 0.238056; 0.999800;, + 0.520057; 0.999800;, + 0.520056; 0.675133;, + 0.238056; 0.675133;, + 0.513453; 0.999512;, + 0.243229; 0.999512;, + 0.243229; 0.671943;, + 0.513453; 0.671943;, + 0.004311; 0.997873;, + 0.215553; 0.997873;, + 0.215553; 0.725464;, + 0.004311; 0.725464;, + 0.234926; 0.999800;, + 0.000200; 0.999800;, + 0.000200; 0.729576;, + 0.234926; 0.729576;, + 0.238056; 0.999800;, + 0.520057; 0.999800;, + 0.520056; 0.675133;, + 0.238056; 0.675133;, + 0.513453; 0.999512;, + 0.243229; 0.999512;, + 0.243229; 0.671943;, + 0.513453; 0.671943;, + 0.306607; 0.667855;, + 0.472407; 0.667855;, + 0.472407; 0.338749;, + 0.306607; 0.338749;, + 0.664431; 0.667855;, + 0.343449; 0.667855;, + 0.343449; 0.334991;, + 0.664431; 0.334991;, + 0.469977; 0.660865;, + 0.304177; 0.660865;, + 0.304177; 0.335341;, + 0.469977; 0.335341;, + 0.343449; 0.334991;, + 0.343449; 0.667855;, + 0.664431; 0.667855;, + 0.664431; 0.334991;, + 0.472407; 0.338749;, + 0.472407; 0.667855;, + 0.306607; 0.667855;, + 0.306607; 0.338749;, + 0.304177; 0.335341;, + 0.304177; 0.660865;, + 0.469977; 0.660865;, + 0.469977; 0.335341;, + 0.001890; 0.339551;, + 0.329664; 0.339551;, + 0.329664; 0.670730;, + 0.001890; 0.670730;, + 0.335222; 0.330358;, + 0.002264; 0.330358;, + 0.002265; 0.004421;, + 0.335222; 0.004421;, + 0.327917; 0.335697;, + 0.001890; 0.335697;, + 0.001890; 0.665529;, + 0.327917; 0.665529;, + 0.662024; 0.329090;, + 0.344359; 0.329090;, + 0.346595; 0.004762;, + 0.664261; 0.004762;, + 0.679193; 0.338611;, + 0.998453; 0.338611;, + 0.998453; 0.665780;, + 0.679193; 0.665780;, + 0.326857; 0.333405;, + 0.187547; 0.333426;, + 0.187494; 0.002442;, + 0.326804; 0.002421;, + 0.001477; 0.001367;, + 0.328143; 0.001323;, + 0.328196; 0.333202;, + 0.001530; 0.333246;, + 0.134182; 0.333469;, + 0.000240; 0.333490;, + 0.000187; 0.002506;, + 0.134129; 0.002486;, + 0.328582; 0.329763;, + 0.001252; 0.329763;, + 0.001252; 0.002494;, + 0.328582; 0.002494;, + 0.330483; 0.331867;, + 0.001487; 0.331866;, + 0.001487; 0.001126;, + 0.330483; 0.001126;, + 0.329421; 0.328859;, + 0.003210; 0.328859;, + 0.003210; 0.002709;, + 0.329421; 0.002709;, + 0.328413; 0.332297;, + 0.001672; 0.332297;, + 0.001672; 0.002642;, + 0.328413; 0.002642;, + 0.673230; 0.999736;, + 0.673230; 0.669819;, + 1.000041; 0.669819;, + 1.000041; 0.999736;, + 0.676706; 0.996359;, + 0.676706; 0.671731;, + 1.001974; 0.671731;, + 1.001974; 0.996359;, + 0.678604; 0.337458;, + 1.000197; 0.337458;, + 1.000197; 0.667940;, + 0.678604; 0.667940;, + 0.187494; 0.002442;, + 0.187547; 0.333426;, + 0.326857; 0.333405;, + 0.326804; 0.002421;, + 0.999939; 0.999484;, + 0.999886; 0.667605;, + 0.673221; 0.667649;, + 0.673273; 0.999528;, + 0.000187; 0.002506;, + 0.000240; 0.333490;, + 0.134182; 0.333469;, + 0.134129; 0.002486;, + 0.160145; 0.670730;, + 0.160145; 0.339551;, + 0.001890; 0.339551;, + 0.001890; 0.670730;, + 0.668546; 0.665242;, + 0.668546; 0.991178;, + 1.001503; 0.991178;, + 1.001504; 0.665242;, + 0.001890; 0.665529;, + 0.001890; 0.335697;, + 0.160145; 0.335697;, + 0.160145; 0.665529;, + 0.832705; 0.338036;, + 0.750766; 0.338036;, + 0.750766; 0.004838;, + 0.832705; 0.004838;, + 0.996985; 0.338036;, + 0.915047; 0.338036;, + 0.915047; 0.004838;, + 0.996985; 0.004838;, + 0.750564; 0.338036;, + 0.668626; 0.338036;, + 0.668626; 0.004838;, + 0.750564; 0.004838;, + 0.914845; 0.338036;, + 0.832907; 0.338036;, + 0.832907; 0.004838;, + 0.914845; 0.004838;, + 0.671692; 0.335852;, + 0.671692; 0.253914;, + 0.753631; 0.253914;, + 0.753630; 0.335852;, + 0.669508; 0.254853;, + 0.751446; 0.254853;, + 0.751446; 0.336791;, + 0.669508; 0.336791;, + 0.832705; 0.338036;, + 0.750766; 0.338036;, + 0.750766; 0.004838;, + 0.832705; 0.004838;, + 0.996985; 0.338036;, + 0.915047; 0.338036;, + 0.915047; 0.004838;, + 0.996985; 0.004838;, + 0.750564; 0.338036;, + 0.668626; 0.338036;, + 0.668626; 0.004838;, + 0.750564; 0.004838;, + 0.914845; 0.338036;, + 0.832907; 0.338036;, + 0.832907; 0.004838;, + 0.914845; 0.004838;, + 0.671692; 0.335852;, + 0.671692; 0.253914;, + 0.753631; 0.253914;, + 0.753630; 0.335852;, + 0.669508; 0.254853;, + 0.751446; 0.254853;, + 0.751446; 0.336791;, + 0.669508; 0.336791;, + 0.832705; 0.338036;, + 0.750766; 0.338036;, + 0.750766; 0.004838;, + 0.832705; 0.004838;, + 0.996985; 0.338036;, + 0.915047; 0.338036;, + 0.915047; 0.004838;, + 0.996985; 0.004838;, + 0.750564; 0.338036;, + 0.668626; 0.338036;, + 0.668626; 0.004838;, + 0.750564; 0.004838;, + 0.914845; 0.338036;, + 0.832907; 0.338036;, + 0.832907; 0.004838;, + 0.914845; 0.004838;, + 0.671692; 0.335852;, + 0.671692; 0.253914;, + 0.753631; 0.253914;, + 0.753630; 0.335852;, + 0.669508; 0.254853;, + 0.751446; 0.254853;, + 0.751446; 0.336791;, + 0.669508; 0.336791;, + 0.832705; 0.338036;, + 0.750766; 0.338036;, + 0.750766; 0.004838;, + 0.832705; 0.004838;, + 0.996985; 0.338036;, + 0.915047; 0.338036;, + 0.915047; 0.004838;, + 0.996985; 0.004838;, + 0.750564; 0.338036;, + 0.668626; 0.338036;, + 0.668626; 0.004838;, + 0.750564; 0.004838;, + 0.914845; 0.338036;, + 0.832907; 0.338036;, + 0.832907; 0.004838;, + 0.914845; 0.004838;, + 0.671692; 0.335852;, + 0.671692; 0.253914;, + 0.753631; 0.253914;, + 0.753630; 0.335852;, + 0.669508; 0.254853;, + 0.751446; 0.254853;, + 0.751446; 0.336791;, + 0.669508; 0.336791;; + } //End of Cube_020 UV Coordinates + XSkinMeshHeader { + 2; + 6; + 6; + } + SkinWeights { + "Armature_Bone_002"; + 40; + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 320, + 321, + 322, + 323; + 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.000001, 1.000000, 0.000000, + 0.000000,-1.000000, 0.000001, 0.000000, + -0.308914, 1.006964, 0.544713, 1.000000;; + } //End of Armature_Bone_002 Skin Weights + SkinWeights { + "Armature_Bone_003"; + 40; + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 348, + 349, + 350, + 351, + 352, + 353, + 354, + 355, + 356, + 357, + 358, + 359, + 360, + 361, + 362, + 363, + 364, + 365, + 366, + 367, + 368, + 369, + 370, + 371; + 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.000001, 1.000000, 0.000000, + 0.000000,-1.000000, 0.000001, 0.000000, + 0.296125, 1.006964, 0.544713, 1.000000;; + } //End of Armature_Bone_003 Skin Weights + SkinWeights { + "Armature_Bone_004"; + 40; + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333, + 334, + 335, + 336, + 337, + 338, + 339, + 340, + 341, + 342, + 343, + 344, + 345, + 346, + 347; + 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.000001, 1.000000, 0.000000, + 0.000000,-1.000000, 0.000001, 0.000000, + -0.308914, 1.006964,-0.022113, 1.000000;; + } //End of Armature_Bone_004 Skin Weights + SkinWeights { + "Armature_Bone_005"; + 40; + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, + 381, + 382, + 383, + 384, + 385, + 386, + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395; + 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.000001, 1.000000, 0.000000, + 0.000000,-1.000000, 0.000001, 0.000000, + 0.296125, 1.006964,-0.022113, 1.000000;; + } //End of Armature_Bone_005 Skin Weights + SkinWeights { + "Armature_root"; + 216; + 51, + 54, + 58, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 263, + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299; + 0.000000, + 0.000000, + 0.000000, + 0.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, + 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, + 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, + 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, + 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.003210,-1.015033,-0.035207, 1.000000;; + } //End of Armature_root Skin Weights + SkinWeights { + "Armature_Bone_001"; + 24; + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215; + 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.003210,-1.958306,-0.468288, 1.000000;; + } //End of Armature_Bone_001 Skin Weights + } //End of Cube_020 Mesh + } //End of Cube_005 + } //End of Armature +} //End of Root Frame +AnimationSet { + Animation { + {Armature} + AnimationKey { //Position + 2; + 64; + 0;3; 0.003210,-0.035207, 1.015033;;, + 1;3; 0.003210,-0.035207, 1.015033;;, + 2;3; 0.003210,-0.035207, 1.015033;;, + 3;3; 0.003210,-0.035207, 1.015033;;, + 4;3; 0.003210,-0.035207, 1.015033;;, + 5;3; 0.003210,-0.035207, 1.015033;;, + 6;3; 0.003210,-0.035207, 1.015033;;, + 7;3; 0.003210,-0.035207, 1.015033;;, + 8;3; 0.003210,-0.035207, 1.015033;;, + 9;3; 0.003210,-0.035207, 1.015033;;, + 10;3; 0.003210,-0.035207, 1.015033;;, + 11;3; 0.003210,-0.035207, 1.015033;;, + 12;3; 0.003210,-0.035207, 1.015033;;, + 13;3; 0.003210,-0.035207, 1.015033;;, + 14;3; 0.003210,-0.035207, 1.015033;;, + 15;3; 0.003210,-0.035207, 1.015033;;, + 16;3; 0.003210,-0.035207, 1.015033;;, + 17;3; 0.003210,-0.035207, 1.015033;;, + 18;3; 0.003210,-0.035207, 1.015033;;, + 19;3; 0.003210,-0.035207, 1.015033;;, + 20;3; 0.003210,-0.035207, 1.015033;;, + 21;3; 0.003210,-0.035207, 1.015033;;, + 22;3; 0.003210,-0.035207, 1.015033;;, + 23;3; 0.003210,-0.035207, 1.015033;;, + 24;3; 0.003210,-0.035207, 1.015033;;, + 25;3; 0.003210,-0.035207, 1.015033;;, + 26;3; 0.003210,-0.035207, 1.015033;;, + 27;3; 0.003210,-0.035207, 1.015033;;, + 28;3; 0.003210,-0.035207, 1.015033;;, + 29;3; 0.003210,-0.035207, 1.015033;;, + 30;3; 0.003210,-0.035207, 1.015033;;, + 31;3; 0.003210,-0.035207, 1.015033;;, + 32;3; 0.003210,-0.035207, 1.015033;;, + 33;3; 0.003210,-0.035207, 1.015033;;, + 34;3; 0.003210,-0.035207, 1.015033;;, + 35;3; 0.003210,-0.035207, 1.015033;;, + 36;3; 0.003210,-0.035207, 1.015033;;, + 37;3; 0.003210,-0.035207, 1.015033;;, + 38;3; 0.003210,-0.035207, 1.015033;;, + 39;3; 0.003210,-0.035207, 1.015033;;, + 40;3; 0.003210,-0.035207, 1.015033;;, + 41;3; 0.003210,-0.035207, 1.015033;;, + 42;3; 0.003210,-0.035207, 1.015033;;, + 43;3; 0.003210,-0.035207, 1.015033;;, + 44;3; 0.003210,-0.035207, 1.015033;;, + 45;3; 0.003210,-0.035207, 1.015033;;, + 46;3; 0.003210,-0.035207, 1.015033;;, + 47;3; 0.003210,-0.035207, 1.015033;;, + 48;3; 0.003210,-0.035207, 1.015033;;, + 49;3; 0.003210,-0.035207, 1.015033;;, + 50;3; 0.003210,-0.035207, 1.015033;;, + 51;3; 0.003210,-0.035207, 1.015033;;, + 52;3; 0.003210,-0.035207, 1.015033;;, + 53;3; 0.003210,-0.035207, 1.015033;;, + 54;3; 0.003210,-0.035207, 1.015033;;, + 55;3; 0.003210,-0.035207, 1.015033;;, + 56;3; 0.003210,-0.035207, 1.015033;;, + 57;3; 0.003210,-0.035207, 1.015033;;, + 58;3; 0.003210,-0.035207, 1.015033;;, + 59;3; 0.003210,-0.035207, 1.015033;;, + 60;3; 0.003210,-0.035207, 1.015033;;, + 61;3; 0.003210,-0.035207, 1.015033;;, + 62;3; 0.003210,-0.035207, 1.015033;;, + 63;3; 0.003210,-0.035207, 1.015033;;; + } + AnimationKey { //Rotation + 0; + 64; + 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;;; + } + AnimationKey { //Scale + 1; + 64; + 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;;; + } + } + Animation { + {Armature_root} + AnimationKey { //Position + 2; + 64; + 0;3; 0.000000,-0.000000,-0.189446;;, + 1;3; 0.000000,-0.000000,-0.189446;;, + 2;3; 0.000000,-0.000000,-0.189446;;, + 3;3; 0.000000,-0.000000,-0.189446;;, + 4;3; 0.000000,-0.000000,-0.189446;;, + 5;3; 0.000000,-0.000000,-0.189446;;, + 6;3; 0.000000,-0.000000,-0.189446;;, + 7;3; 0.000000,-0.000000,-0.189446;;, + 8;3; 0.000000,-0.000000,-0.189446;;, + 9;3; 0.000000,-0.000000,-0.189446;;, + 10;3; 0.000000,-0.000000,-0.189446;;, + 11;3; 0.000000,-0.000000,-0.189446;;, + 12;3; 0.000000,-0.000000,-0.189446;;, + 13;3; 0.000000,-0.000000,-0.189446;;, + 14;3; 0.000000,-0.000000,-0.189446;;, + 15;3; 0.000000,-0.000000,-0.189446;;, + 16;3; 0.000000,-0.000000,-0.189446;;, + 17;3; 0.000000,-0.000000,-0.189446;;, + 18;3; 0.000000,-0.000000,-0.189446;;, + 19;3; 0.000000,-0.000000,-0.189446;;, + 20;3; 0.000000,-0.000000,-0.189446;;, + 21;3; 0.000000,-0.000000,-0.189446;;, + 22;3; 0.000000,-0.000000,-0.189446;;, + 23;3; 0.000000,-0.000000,-0.189446;;, + 24;3; 0.000000,-0.000000,-0.189446;;, + 25;3; 0.000000,-0.000000,-0.189446;;, + 26;3; 0.000000,-0.000000,-0.189446;;, + 27;3; 0.000000,-0.000000,-0.189446;;, + 28;3; 0.000000,-0.000000,-0.189446;;, + 29;3; 0.000000,-0.000000,-0.189446;;, + 30;3; 0.000000,-0.000000,-0.189446;;, + 31;3; 0.000000,-0.000000,-0.189446;;, + 32;3; 0.000000,-0.000000,-0.189446;;, + 33;3; 0.000000,-0.000000,-0.189446;;, + 34;3; 0.000000,-0.000000,-0.189446;;, + 35;3; 0.000000,-0.000000,-0.189446;;, + 36;3; 0.000000,-0.000000,-0.189446;;, + 37;3; 0.000000,-0.000000,-0.189446;;, + 38;3; 0.000000,-0.000000,-0.189446;;, + 39;3; 0.000000,-0.000000,-0.189446;;, + 40;3; 0.000000,-0.000000,-0.189446;;, + 41;3; 0.000000,-0.000000,-0.189446;;, + 42;3; 0.000000,-0.000000,-0.189446;;, + 43;3; 0.000000,-0.000000,-0.189446;;, + 44;3; 0.000000,-0.000000,-0.189446;;, + 45;3; 0.000000,-0.000000,-0.189446;;, + 46;3; 0.000000,-0.000000,-0.189446;;, + 47;3; 0.000000,-0.000000,-0.189446;;, + 48;3; 0.000000,-0.000000,-0.189446;;, + 49;3; 0.000000,-0.000000,-0.189446;;, + 50;3; 0.000000,-0.000000,-0.189446;;, + 51;3; 0.000000,-0.000000,-0.189446;;, + 52;3; 0.000000,-0.000000,-0.189446;;, + 53;3; 0.000000,-0.000000,-0.189446;;, + 54;3; 0.000000,-0.000000,-0.189446;;, + 55;3; 0.000000,-0.000000,-0.189446;;, + 56;3; 0.000000,-0.000000,-0.189446;;, + 57;3; 0.000000,-0.000000,-0.189446;;, + 58;3; 0.000000,-0.000000,-0.189446;;, + 59;3; 0.000000,-0.000000,-0.189446;;, + 60;3; 0.000000,-0.000000,-0.189446;;, + 61;3; 0.000000,-0.000000,-0.189446;;, + 62;3; 0.000000,-0.000000,-0.189446;;, + 63;3; 0.000000,-0.000000,-0.189446;;; + } + AnimationKey { //Rotation + 0; + 64; + 0;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 1;4; -0.000000, 0.000000, 0.707107, 0.707107;;, + 2;4; -0.001256,-0.001256, 0.707097, 0.707097;;, + 3;4; -0.004793,-0.004793, 0.707069, 0.707069;;, + 4;4; -0.009335,-0.009335, 0.707030, 0.707030;;, + 5;4; -0.012873,-0.012873, 0.706992, 0.706992;;, + 6;4; -0.014129,-0.014129, 0.706966, 0.706966;;, + 7;4; -0.013710,-0.013710, 0.706947, 0.706947;;, + 8;4; -0.012446,-0.012446, 0.706929, 0.706929;;, + 9;4; -0.010363,-0.010363, 0.706912, 0.706912;;, + 10;4; -0.007551,-0.007551, 0.706896, 0.706896;;, + 11;4; -0.004183,-0.004183, 0.706883, 0.706883;;, + 12;4; -0.000513,-0.000513, 0.706871, 0.706871;;, + 13;4; 0.003158, 0.003158, 0.706862, 0.706862;;, + 14;4; 0.006525, 0.006525, 0.706855, 0.706855;;, + 15;4; 0.009337, 0.009337, 0.706850, 0.706850;;, + 16;4; 0.011421, 0.011421, 0.706847, 0.706846;;, + 17;4; 0.012684, 0.012684, 0.706845, 0.706845;;, + 18;4; 0.013103, 0.013103, 0.706844, 0.706844;;, + 19;4; 0.012294, 0.012294, 0.706844, 0.706844;;, + 20;4; 0.009938, 0.009938, 0.706844, 0.706844;;, + 21;4; 0.006551, 0.006552, 0.706844, 0.706844;;, + 22;4; 0.003165, 0.003165, 0.706844, 0.706844;;, + 23;4; 0.000809, 0.000809, 0.706844, 0.706844;;, + 24;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 25;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 26;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 27;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 28;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 29;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 30;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 31;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 32;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 33;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 34;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 35;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 36;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 37;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 38;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 39;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 40;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 41;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 42;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 43;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 44;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 45;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 46;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 47;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 48;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 49;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 50;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 51;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 52;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 53;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 54;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 55;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 56;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 57;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 58;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 59;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 60;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 61;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 62;4; -0.000000, 0.000000, 0.706844, 0.706844;;, + 63;4; -0.000000, 0.000000, 0.706844, 0.706844;;; + } + AnimationKey { //Scale + 1; + 64; + 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;;; + } + } + Animation { + {Armature_Bone_001} + AnimationKey { //Position + 2; + 64; + 0;3; 0.000000, 0.943273, 0.433080;;, + 1;3; 0.000000, 0.943273, 0.433080;;, + 2;3; 0.000000, 0.943273, 0.433080;;, + 3;3; -0.000000, 0.943273, 0.433080;;, + 4;3; 0.000000, 0.943273, 0.433080;;, + 5;3; -0.000000, 0.943273, 0.433080;;, + 6;3; 0.000000, 0.943273, 0.433080;;, + 7;3; -0.000000, 0.943273, 0.433080;;, + 8;3; -0.000000, 0.943273, 0.433080;;, + 9;3; -0.000000, 0.943273, 0.433080;;, + 10;3; 0.000000, 0.943273, 0.433080;;, + 11;3; -0.000000, 0.943273, 0.433080;;, + 12;3; -0.000000, 0.943273, 0.433080;;, + 13;3; -0.000000, 0.943273, 0.433080;;, + 14;3; -0.000000, 0.943273, 0.433080;;, + 15;3; 0.000000, 0.943273, 0.433080;;, + 16;3; 0.000000, 0.943273, 0.433080;;, + 17;3; -0.000000, 0.943273, 0.433080;;, + 18;3; 0.000000, 0.943273, 0.433080;;, + 19;3; 0.000000, 0.943273, 0.433080;;, + 20;3; -0.000000, 0.943273, 0.433080;;, + 21;3; -0.000000, 0.943273, 0.433080;;, + 22;3; -0.000000, 0.943273, 0.433080;;, + 23;3; -0.000000, 0.943273, 0.433080;;, + 24;3; 0.000000, 0.943273, 0.433080;;, + 25;3; 0.000000, 0.943273, 0.433080;;, + 26;3; 0.000000, 0.943273, 0.433080;;, + 27;3; 0.000000, 0.943273, 0.433080;;, + 28;3; 0.000000, 0.943273, 0.433080;;, + 29;3; 0.000000, 0.943273, 0.433080;;, + 30;3; 0.000000, 0.943273, 0.433080;;, + 31;3; 0.000000, 0.943273, 0.433080;;, + 32;3; 0.000000, 0.943273, 0.433080;;, + 33;3; 0.000000, 0.943273, 0.433080;;, + 34;3; 0.000000, 0.943273, 0.433080;;, + 35;3; 0.000000, 0.943273, 0.433080;;, + 36;3; 0.000000, 0.943273, 0.433080;;, + 37;3; 0.000000, 0.943273, 0.433080;;, + 38;3; 0.000000, 0.943273, 0.433080;;, + 39;3; 0.000000, 0.943273, 0.433080;;, + 40;3; 0.000000, 0.943273, 0.433080;;, + 41;3; 0.000000, 0.943273, 0.433080;;, + 42;3; 0.000000, 0.943273, 0.433080;;, + 43;3; 0.000000, 0.943273, 0.433080;;, + 44;3; 0.000000, 0.943273, 0.433080;;, + 45;3; 0.000000, 0.943273, 0.433080;;, + 46;3; 0.000000, 0.943273, 0.433080;;, + 47;3; 0.000000, 0.943273, 0.433080;;, + 48;3; -0.000000, 0.376699, 0.433080;;, + 49;3; 0.000000, 0.298801, 0.433080;;, + 50;3; -0.000000, 0.250242, 0.433080;;, + 51;3; -0.000000, 0.221263, 0.433080;;, + 52;3; -0.000000, 0.205343, 0.433080;;, + 53;3; -0.000000, 0.197838, 0.433080;;, + 54;3; -0.000000, 0.195269, 0.433080;;, + 55;3; -0.000000, 0.194923, 0.433080;;, + 56;3; -0.000000, 0.203169, 0.433080;;, + 57;3; -0.000000, 0.227559, 0.433080;;, + 58;3; 0.000000, 0.264720, 0.433080;;, + 59;3; 0.000000, 0.306874, 0.433080;;, + 60;3; -0.000000, 0.344046, 0.433080;;, + 61;3; -0.000000, 0.368448, 0.433080;;, + 62;3; -0.000000, 0.376699, 0.433080;;, + 63;3; -0.000000, 0.376699, 0.433080;;; + } + AnimationKey { //Rotation + 0; + 64; + 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;;; + } + AnimationKey { //Scale + 1; + 64; + 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;;; + } + } + Animation { + {Armature_Bone_002} + AnimationKey { //Position + 2; + 64; + 0;3; 0.305704,-0.008069, 0.509506;;, + 1;3; 0.305704,-0.008069, 0.509506;;, + 2;3; 0.305704,-0.008069, 0.509506;;, + 3;3; 0.305704,-0.008069, 0.509506;;, + 4;3; 0.305704,-0.008069, 0.509506;;, + 5;3; 0.305704,-0.008069, 0.509506;;, + 6;3; 0.305704,-0.008069, 0.509506;;, + 7;3; 0.305704,-0.008069, 0.509506;;, + 8;3; 0.305704,-0.008069, 0.509506;;, + 9;3; 0.305704,-0.008069, 0.509506;;, + 10;3; 0.305704,-0.008069, 0.509506;;, + 11;3; 0.305704,-0.008069, 0.509506;;, + 12;3; 0.305704,-0.008069, 0.509506;;, + 13;3; 0.305704,-0.008069, 0.509506;;, + 14;3; 0.305704,-0.008069, 0.509506;;, + 15;3; 0.305704,-0.008069, 0.509506;;, + 16;3; 0.305704,-0.008069, 0.509506;;, + 17;3; 0.305704,-0.008069, 0.509506;;, + 18;3; 0.305704,-0.008069, 0.509506;;, + 19;3; 0.305704,-0.008069, 0.509506;;, + 20;3; 0.305704,-0.008069, 0.509506;;, + 21;3; 0.305704,-0.008069, 0.509506;;, + 22;3; 0.305704,-0.008069, 0.509506;;, + 23;3; 0.305704,-0.008069, 0.509506;;, + 24;3; 0.305704,-0.008069, 0.509506;;, + 25;3; 0.305704,-0.008069, 0.509506;;, + 26;3; 0.305704,-0.008069, 0.509506;;, + 27;3; 0.305704,-0.008069, 0.509506;;, + 28;3; 0.305704,-0.008069, 0.509506;;, + 29;3; 0.305704,-0.008069, 0.509506;;, + 30;3; 0.305704,-0.008069, 0.509506;;, + 31;3; 0.305704,-0.008069, 0.509506;;, + 32;3; 0.305704,-0.008069, 0.509506;;, + 33;3; 0.305704,-0.008069, 0.509506;;, + 34;3; 0.305704,-0.008069, 0.509506;;, + 35;3; 0.305704,-0.008069, 0.509506;;, + 36;3; 0.305704,-0.008069, 0.509506;;, + 37;3; 0.305704,-0.008069, 0.509506;;, + 38;3; 0.305704,-0.008069, 0.509506;;, + 39;3; 0.305704,-0.008069, 0.509506;;, + 40;3; 0.305704,-0.008069, 0.509506;;, + 41;3; 0.305704,-0.008069, 0.509506;;, + 42;3; 0.305704,-0.008069, 0.509506;;, + 43;3; 0.305704,-0.008069, 0.509506;;, + 44;3; 0.305704,-0.008069, 0.509506;;, + 45;3; 0.305704,-0.008069, 0.509506;;, + 46;3; 0.305704,-0.008069, 0.509506;;, + 47;3; 0.305704,-0.008069, 0.509506;;, + 48;3; 0.305704,-0.008069, 0.509506;;, + 49;3; 0.305704,-0.008069, 0.509506;;, + 50;3; 0.305704,-0.008069, 0.509506;;, + 51;3; 0.305704,-0.008069, 0.509506;;, + 52;3; 0.305704,-0.008069, 0.509506;;, + 53;3; 0.305704,-0.008069, 0.509506;;, + 54;3; 0.305704,-0.008069, 0.509506;;, + 55;3; 0.305704,-0.008069, 0.509506;;, + 56;3; 0.305704,-0.008069, 0.509506;;, + 57;3; 0.305704,-0.008069, 0.509506;;, + 58;3; 0.305704,-0.008069, 0.509506;;, + 59;3; 0.305704,-0.008069, 0.509506;;, + 60;3; 0.305704,-0.008069, 0.509506;;, + 61;3; 0.305704,-0.008069, 0.509506;;, + 62;3; 0.305704,-0.008069, 0.509506;;, + 63;3; 0.305704,-0.008069, 0.509506;;; + } + AnimationKey { //Rotation + 0; + 64; + 0;4; -0.353554, 0.853553, 0.146446,-0.353554;;, + 1;4; -0.353554, 0.853553, 0.146446,-0.353554;;, + 2;4; -0.354246, 0.853245, 0.148133,-0.352846;;, + 3;4; -0.356195, 0.852375, 0.152883,-0.350853;;, + 4;4; -0.358698, 0.851259, 0.158982,-0.348293;;, + 5;4; -0.360647, 0.850389, 0.163732,-0.346300;;, + 6;4; -0.361339, 0.850080, 0.165418,-0.345593;;, + 7;4; -0.361034, 0.850201, 0.164685,-0.345894;;, + 8;4; -0.360112, 0.850566, 0.162472,-0.346804;;, + 9;4; -0.358593, 0.851168, 0.158822,-0.348304;;, + 10;4; -0.356541, 0.851981, 0.153896,-0.350329;;, + 11;4; -0.354085, 0.852954, 0.147998,-0.352754;;, + 12;4; -0.351408, 0.854014, 0.141569,-0.355397;;, + 13;4; -0.348731, 0.855074, 0.135140,-0.358039;;, + 14;4; -0.346274, 0.856047, 0.129241,-0.360464;;, + 15;4; -0.344223, 0.856859, 0.124315,-0.362489;;, + 16;4; -0.342703, 0.857461, 0.120666,-0.363989;;, + 17;4; -0.341782, 0.857826, 0.118453,-0.364899;;, + 18;4; -0.341476, 0.857947, 0.117719,-0.365201;;, + 19;4; -0.342190, 0.857933, 0.117812,-0.364515;;, + 20;4; -0.344184, 0.857822, 0.118545,-0.362604;;, + 21;4; -0.347054, 0.857481, 0.120786,-0.359853;;, + 22;4; -0.350138, 0.856752, 0.125571,-0.356884;;, + 23;4; -0.352584, 0.855480, 0.133899,-0.354507;;, + 24;4; -0.353554, 0.853553, 0.146446,-0.353554;;, + 25;4; -0.236711, 0.571471, 0.300689,-0.725930;;, + 26;4; -0.239958, 0.579385, 0.296309,-0.715181;;, + 27;4; -0.248828, 0.600935, 0.284350,-0.685992;;, + 28;4; -0.261873, 0.632536, 0.266769,-0.643301;;, + 29;4; -0.277554, 0.670429, 0.245643,-0.592218;;, + 30;4; -0.294358, 0.710963, 0.223010,-0.537657;;, + 31;4; -0.310901, 0.750824, 0.200732,-0.484054;;, + 32;4; -0.326002, 0.787189, 0.180399,-0.435175;;, + 33;4; -0.338709, 0.817789, 0.163289,-0.394045;;, + 34;4; -0.348305, 0.840907, 0.150367,-0.362961;;, + 35;4; -0.354286, 0.855325, 0.142312,-0.343564;;, + 36;4; -0.356327, 0.860248, 0.139563,-0.336936;;, + 37;4; -0.354235, 0.855200, 0.142381,-0.343736;;, + 38;4; -0.347919, 0.839956, 0.150888,-0.364263;;, + 39;4; -0.337521, 0.814865, 0.164894,-0.398046;;, + 40;4; -0.323558, 0.781175, 0.183700,-0.443403;;, + 41;4; -0.307020, 0.741269, 0.205976,-0.497130;;, + 42;4; -0.289351, 0.698626, 0.229776,-0.554553;;, + 43;4; -0.272258, 0.657360, 0.252800,-0.610138;;, + 44;4; -0.257395, 0.621463, 0.272823,-0.658513;;, + 45;4; -0.246060, 0.594075, 0.288093,-0.695437;;, + 46;4; -0.239056, 0.577142, 0.297530,-0.718277;;, + 47;4; -0.236711, 0.571471, 0.300689,-0.725930;;, + 48;4; -0.236711, 0.571471, 0.300689,-0.725930;;, + 49;4; -0.243308, 0.587520, 0.291792,-0.704168;;, + 50;4; -0.261054, 0.630533, 0.267874,-0.646029;;, + 51;4; -0.285725, 0.690132, 0.234639,-0.565704;;, + 52;4; -0.312134, 0.753789, 0.199073,-0.480072;;, + 53;4; -0.335178, 0.809286, 0.168043,-0.405474;;, + 54;4; -0.350782, 0.846876, 0.147031,-0.354932;;, + 55;4; -0.356327, 0.860248, 0.139563,-0.336936;;, + 56;4; -0.350909, 0.847172, 0.146861,-0.354547;;, + 57;4; -0.334837, 0.808388, 0.168509,-0.406767;;, + 58;4; -0.310303, 0.749191, 0.201554,-0.486466;;, + 59;4; -0.282492, 0.682066, 0.239015,-0.576860;;, + 60;4; -0.258051, 0.623045, 0.271939,-0.656385;;, + 61;4; -0.242085, 0.584463, 0.293449,-0.708403;;, + 62;4; -0.236711, 0.571471, 0.300689,-0.725930;;, + 63;4; -0.236711, 0.571471, 0.300689,-0.725930;;; + } + AnimationKey { //Scale + 1; + 64; + 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;;; + } + } + Animation { + {Armature_Bone_003} + AnimationKey { //Position + 2; + 64; + 0;3; -0.299335,-0.008069, 0.509506;;, + 1;3; -0.299335,-0.008069, 0.509506;;, + 2;3; -0.299335,-0.008069, 0.509506;;, + 3;3; -0.299335,-0.008069, 0.509506;;, + 4;3; -0.299335,-0.008069, 0.509506;;, + 5;3; -0.299335,-0.008069, 0.509506;;, + 6;3; -0.299335,-0.008069, 0.509506;;, + 7;3; -0.299335,-0.008069, 0.509506;;, + 8;3; -0.299335,-0.008069, 0.509506;;, + 9;3; -0.299335,-0.008069, 0.509506;;, + 10;3; -0.299335,-0.008069, 0.509506;;, + 11;3; -0.299335,-0.008069, 0.509506;;, + 12;3; -0.299335,-0.008069, 0.509506;;, + 13;3; -0.299335,-0.008069, 0.509506;;, + 14;3; -0.299335,-0.008069, 0.509506;;, + 15;3; -0.299335,-0.008069, 0.509506;;, + 16;3; -0.299335,-0.008069, 0.509506;;, + 17;3; -0.299335,-0.008069, 0.509506;;, + 18;3; -0.299335,-0.008069, 0.509506;;, + 19;3; -0.299335,-0.008069, 0.509506;;, + 20;3; -0.299335,-0.008069, 0.509506;;, + 21;3; -0.299335,-0.008069, 0.509506;;, + 22;3; -0.299335,-0.008069, 0.509506;;, + 23;3; -0.299335,-0.008069, 0.509506;;, + 24;3; -0.299335,-0.008069, 0.509506;;, + 25;3; -0.299335,-0.008069, 0.509506;;, + 26;3; -0.299335,-0.008069, 0.509506;;, + 27;3; -0.299335,-0.008069, 0.509506;;, + 28;3; -0.299335,-0.008069, 0.509506;;, + 29;3; -0.299335,-0.008069, 0.509506;;, + 30;3; -0.299335,-0.008069, 0.509506;;, + 31;3; -0.299335,-0.008069, 0.509506;;, + 32;3; -0.299335,-0.008069, 0.509506;;, + 33;3; -0.299335,-0.008069, 0.509506;;, + 34;3; -0.299335,-0.008069, 0.509506;;, + 35;3; -0.299335,-0.008069, 0.509506;;, + 36;3; -0.299335,-0.008069, 0.509506;;, + 37;3; -0.299335,-0.008069, 0.509506;;, + 38;3; -0.299335,-0.008069, 0.509506;;, + 39;3; -0.299335,-0.008069, 0.509506;;, + 40;3; -0.299335,-0.008069, 0.509506;;, + 41;3; -0.299335,-0.008069, 0.509506;;, + 42;3; -0.299335,-0.008069, 0.509506;;, + 43;3; -0.299335,-0.008069, 0.509506;;, + 44;3; -0.299335,-0.008069, 0.509506;;, + 45;3; -0.299335,-0.008069, 0.509506;;, + 46;3; -0.299335,-0.008069, 0.509506;;, + 47;3; -0.299335,-0.008069, 0.509506;;, + 48;3; -0.299335,-0.008069, 0.509506;;, + 49;3; -0.299335,-0.008069, 0.509506;;, + 50;3; -0.299335,-0.008069, 0.509506;;, + 51;3; -0.299335,-0.008069, 0.509506;;, + 52;3; -0.299335,-0.008069, 0.509506;;, + 53;3; -0.299335,-0.008069, 0.509506;;, + 54;3; -0.299335,-0.008069, 0.509506;;, + 55;3; -0.299335,-0.008069, 0.509506;;, + 56;3; -0.299335,-0.008069, 0.509506;;, + 57;3; -0.299335,-0.008069, 0.509506;;, + 58;3; -0.299335,-0.008069, 0.509506;;, + 59;3; -0.299335,-0.008069, 0.509506;;, + 60;3; -0.299335,-0.008069, 0.509506;;, + 61;3; -0.299335,-0.008069, 0.509506;;, + 62;3; -0.299335,-0.008069, 0.509506;;, + 63;3; -0.299335,-0.008069, 0.509506;;; + } + AnimationKey { //Rotation + 0; + 64; + 0;4; -0.354656, 0.853092,-0.149110, 0.352448;;, + 1;4; -0.354656, 0.853092,-0.149110, 0.352448;;, + 2;4; -0.353695, 0.853458,-0.146813, 0.353386;;, + 3;4; -0.350989, 0.854488,-0.140344, 0.356028;;, + 4;4; -0.347515, 0.855811,-0.132039, 0.359420;;, + 5;4; -0.344809, 0.856841,-0.125570, 0.362062;;, + 6;4; -0.343848, 0.857207,-0.123274, 0.363000;;, + 7;4; -0.344100, 0.857104,-0.123882, 0.362749;;, + 8;4; -0.344861, 0.856793,-0.125716, 0.361991;;, + 9;4; -0.346117, 0.856281,-0.128741, 0.360741;;, + 10;4; -0.347811, 0.855589,-0.132824, 0.359054;;, + 11;4; -0.349839, 0.854761,-0.137712, 0.357034;;, + 12;4; -0.352050, 0.853858,-0.143041, 0.354833;;, + 13;4; -0.354261, 0.852956,-0.148370, 0.352631;;, + 14;4; -0.356290, 0.852128,-0.153259, 0.350611;;, + 15;4; -0.357984, 0.851436,-0.157341, 0.348924;;, + 16;4; -0.359239, 0.850924,-0.160366, 0.347674;;, + 17;4; -0.360000, 0.850613,-0.162201, 0.346916;;, + 18;4; -0.360253, 0.850510,-0.162808, 0.346665;;, + 19;4; -0.359922, 0.850663,-0.161999, 0.347007;;, + 20;4; -0.358997, 0.851089,-0.159736, 0.347962;;, + 21;4; -0.357666, 0.851703,-0.156478, 0.349338;;, + 22;4; -0.356237, 0.852363,-0.152979, 0.350815;;, + 23;4; -0.355104, 0.852885,-0.150207, 0.351985;;, + 24;4; -0.354656, 0.853092,-0.149110, 0.352448;;, + 25;4; -0.354656, 0.853092,-0.149110, 0.352448;;, + 26;4; -0.351227, 0.844927,-0.153464, 0.362954;;, + 27;4; -0.341855, 0.822614,-0.165365, 0.391661;;, + 28;4; -0.328063, 0.789780,-0.182879, 0.433897;;, + 29;4; -0.311476, 0.750298,-0.203942, 0.484681;;, + 30;4; -0.293695, 0.707977,-0.226521, 0.539113;;, + 31;4; -0.276185, 0.666304,-0.248756, 0.592710;;, + 32;4; -0.260201, 0.628264,-0.269053, 0.641634;;, + 33;4; -0.246751, 0.596253,-0.286132, 0.682803;;, + 34;4; -0.236594, 0.572079,-0.299030, 0.713893;;, + 35;4; -0.230264, 0.557014,-0.307068, 0.733269;;, + 36;4; -0.228105, 0.551875,-0.309810, 0.739879;;, + 37;4; -0.230318, 0.557141,-0.307000, 0.733106;;, + 38;4; -0.237000, 0.573040,-0.298515, 0.712662;;, + 39;4; -0.248001, 0.599211,-0.284546, 0.679014;;, + 40;4; -0.262773, 0.634351,-0.265789, 0.633839;;, + 41;4; -0.280270, 0.675973,-0.243573, 0.580328;;, + 42;4; -0.298964, 0.720452,-0.219836, 0.523135;;, + 43;4; -0.317048, 0.763495,-0.196872, 0.467774;;, + 44;4; -0.332772, 0.800940,-0.176902, 0.419593;;, + 45;4; -0.344764, 0.829511,-0.161673, 0.382818;;, + 46;4; -0.352175, 0.847175,-0.152261, 0.360070;;, + 47;4; -0.354656, 0.853092,-0.149110, 0.352448;;, + 48;4; -0.354656, 0.853092,-0.149110, 0.352448;;, + 49;4; -0.347687, 0.836498,-0.157959, 0.373797;;, + 50;4; -0.328927, 0.791839,-0.181782, 0.431248;;, + 51;4; -0.302829, 0.729719,-0.214922, 0.511149;;, + 52;4; -0.274880, 0.663199,-0.250413, 0.596704;;, + 53;4; -0.250488, 0.605147,-0.281387, 0.671365;;, + 54;4; -0.233972, 0.565840,-0.302359, 0.721917;;, + 55;4; -0.228105, 0.551875,-0.309810, 0.739879;;, + 56;4; -0.233837, 0.565514,-0.302531, 0.722339;;, + 57;4; -0.250841, 0.605967,-0.280940, 0.670328;;, + 58;4; -0.276796, 0.667711,-0.247983, 0.590948;;, + 59;4; -0.306220, 0.737725,-0.210621, 0.500917;;, + 60;4; -0.332078, 0.799290,-0.177784, 0.421713;;, + 61;4; -0.348970, 0.839538,-0.156330, 0.369904;;, + 62;4; -0.354656, 0.853092,-0.149110, 0.352448;;, + 63;4; -0.354656, 0.853092,-0.149110, 0.352448;;; + } + AnimationKey { //Scale + 1; + 64; + 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;;; + } + } + Animation { + {Armature_Bone_004} + AnimationKey { //Position + 2; + 64; + 0;3; 0.305704,-0.008069,-0.057320;;, + 1;3; 0.305704,-0.008069,-0.057320;;, + 2;3; 0.305704,-0.008069,-0.057320;;, + 3;3; 0.305704,-0.008069,-0.057320;;, + 4;3; 0.305704,-0.008069,-0.057320;;, + 5;3; 0.305704,-0.008069,-0.057320;;, + 6;3; 0.305704,-0.008069,-0.057320;;, + 7;3; 0.305704,-0.008069,-0.057320;;, + 8;3; 0.305704,-0.008069,-0.057320;;, + 9;3; 0.305704,-0.008069,-0.057320;;, + 10;3; 0.305704,-0.008069,-0.057320;;, + 11;3; 0.305704,-0.008069,-0.057320;;, + 12;3; 0.305704,-0.008069,-0.057320;;, + 13;3; 0.305704,-0.008069,-0.057320;;, + 14;3; 0.305704,-0.008069,-0.057320;;, + 15;3; 0.305704,-0.008069,-0.057320;;, + 16;3; 0.305704,-0.008069,-0.057320;;, + 17;3; 0.305704,-0.008069,-0.057320;;, + 18;3; 0.305704,-0.008069,-0.057320;;, + 19;3; 0.305704,-0.008069,-0.057320;;, + 20;3; 0.305704,-0.008069,-0.057320;;, + 21;3; 0.305704,-0.008069,-0.057320;;, + 22;3; 0.305704,-0.008069,-0.057320;;, + 23;3; 0.305704,-0.008069,-0.057320;;, + 24;3; 0.305704,-0.008069,-0.057320;;, + 25;3; 0.305704,-0.008069,-0.057320;;, + 26;3; 0.305704,-0.008069,-0.057320;;, + 27;3; 0.305704,-0.008069,-0.057320;;, + 28;3; 0.305704,-0.008069,-0.057320;;, + 29;3; 0.305704,-0.008069,-0.057320;;, + 30;3; 0.305704,-0.008069,-0.057320;;, + 31;3; 0.305704,-0.008069,-0.057320;;, + 32;3; 0.305704,-0.008069,-0.057320;;, + 33;3; 0.305704,-0.008069,-0.057320;;, + 34;3; 0.305704,-0.008069,-0.057320;;, + 35;3; 0.305704,-0.008069,-0.057320;;, + 36;3; 0.305704,-0.008069,-0.057320;;, + 37;3; 0.305704,-0.008069,-0.057320;;, + 38;3; 0.305704,-0.008069,-0.057320;;, + 39;3; 0.305704,-0.008069,-0.057320;;, + 40;3; 0.305704,-0.008069,-0.057320;;, + 41;3; 0.305704,-0.008069,-0.057320;;, + 42;3; 0.305704,-0.008069,-0.057320;;, + 43;3; 0.305704,-0.008069,-0.057320;;, + 44;3; 0.305704,-0.008069,-0.057320;;, + 45;3; 0.305704,-0.008069,-0.057320;;, + 46;3; 0.305704,-0.008069,-0.057320;;, + 47;3; 0.305704,-0.008069,-0.057320;;, + 48;3; 0.305704,-0.008069,-0.057320;;, + 49;3; 0.305704,-0.008069,-0.057320;;, + 50;3; 0.305704,-0.008069,-0.057320;;, + 51;3; 0.305704,-0.008069,-0.057320;;, + 52;3; 0.305704,-0.008069,-0.057320;;, + 53;3; 0.305704,-0.008069,-0.057320;;, + 54;3; 0.305704,-0.008069,-0.057320;;, + 55;3; 0.305704,-0.008069,-0.057320;;, + 56;3; 0.305704,-0.008069,-0.057320;;, + 57;3; 0.305704,-0.008069,-0.057320;;, + 58;3; 0.305704,-0.008069,-0.057320;;, + 59;3; 0.305704,-0.008069,-0.057320;;, + 60;3; 0.305704,-0.008069,-0.057320;;, + 61;3; 0.305704,-0.008069,-0.057320;;, + 62;3; 0.305704,-0.008069,-0.057320;;, + 63;3; 0.305704,-0.008069,-0.057320;;; + } + AnimationKey { //Rotation + 0; + 64; + 0;4; 0.353553, 0.853553, 0.146447, 0.353553;;, + 1;4; 0.353553, 0.853553, 0.146447, 0.353553;;, + 2;4; 0.354245, 0.853245, 0.148133, 0.352846;;, + 3;4; 0.356195, 0.852375, 0.152883, 0.350853;;, + 4;4; 0.358697, 0.851259, 0.158982, 0.348293;;, + 5;4; 0.360647, 0.850389, 0.163732, 0.346300;;, + 6;4; 0.361339, 0.850081, 0.165419, 0.345592;;, + 7;4; 0.361033, 0.850201, 0.164685, 0.345894;;, + 8;4; 0.360112, 0.850567, 0.162472, 0.346804;;, + 9;4; 0.358592, 0.851168, 0.158823, 0.348304;;, + 10;4; 0.356541, 0.851981, 0.153897, 0.350329;;, + 11;4; 0.354085, 0.852954, 0.147998, 0.352754;;, + 12;4; 0.351407, 0.854014, 0.141569, 0.355396;;, + 13;4; 0.348730, 0.855074, 0.135140, 0.358039;;, + 14;4; 0.346274, 0.856047, 0.129242, 0.360464;;, + 15;4; 0.344223, 0.856860, 0.124316, 0.362489;;, + 16;4; 0.342703, 0.857462, 0.120667, 0.363989;;, + 17;4; 0.341781, 0.857827, 0.118453, 0.364899;;, + 18;4; 0.341476, 0.857948, 0.117720, 0.365200;;, + 19;4; 0.342189, 0.857933, 0.117813, 0.364514;;, + 20;4; 0.344183, 0.857822, 0.118546, 0.362603;;, + 21;4; 0.347054, 0.857481, 0.120786, 0.359852;;, + 22;4; 0.350137, 0.856752, 0.125572, 0.356884;;, + 23;4; 0.352584, 0.855480, 0.133900, 0.354507;;, + 24;4; 0.353553, 0.853553, 0.146447, 0.353553;;, + 25;4; 0.238392, 0.575529, 0.299360, 0.722717;;, + 26;4; 0.241500, 0.583104, 0.295246, 0.712619;;, + 27;4; 0.249991, 0.603731, 0.284012, 0.685200;;, + 28;4; 0.262479, 0.633980, 0.267498, 0.645099;;, + 29;4; 0.277490, 0.670255, 0.247654, 0.597116;;, + 30;4; 0.293577, 0.709059, 0.226395, 0.545868;;, + 31;4; 0.309414, 0.747220, 0.205469, 0.495519;;, + 32;4; 0.323870, 0.782034, 0.186370, 0.449608;;, + 33;4; 0.336035, 0.811330, 0.170299, 0.410975;;, + 34;4; 0.345221, 0.833462, 0.158160, 0.381779;;, + 35;4; 0.350947, 0.847265, 0.150594, 0.363559;;, + 36;4; 0.352901, 0.851978, 0.148013, 0.357333;;, + 37;4; 0.350898, 0.847144, 0.150659, 0.363721;;, + 38;4; 0.344852, 0.832552, 0.158650, 0.383003;;, + 39;4; 0.334898, 0.808530, 0.171806, 0.414740;;, + 40;4; 0.321531, 0.776276, 0.189472, 0.457350;;, + 41;4; 0.305698, 0.738072, 0.210396, 0.507823;;, + 42;4; 0.288783, 0.697248, 0.232752, 0.561765;;, + 43;4; 0.272420, 0.657744, 0.254379, 0.613976;;, + 44;4; 0.258192, 0.623381, 0.273186, 0.659411;;, + 45;4; 0.247341, 0.597165, 0.287528, 0.694086;;, + 46;4; 0.240636, 0.580957, 0.296392, 0.715532;;, + 47;4; 0.238392, 0.575529, 0.299360, 0.722717;;, + 48;4; 0.238392, 0.575529, 0.299360, 0.722717;;, + 49;4; 0.244707, 0.590890, 0.291003, 0.702274;;, + 50;4; 0.261695, 0.632064, 0.268536, 0.647662;;, + 51;4; 0.285312, 0.689117, 0.237318, 0.572212;;, + 52;4; 0.310594, 0.750059, 0.203910, 0.491779;;, + 53;4; 0.332655, 0.803189, 0.174764, 0.421710;;, + 54;4; 0.347592, 0.839177, 0.155027, 0.374237;;, + 55;4; 0.352901, 0.851978, 0.148013, 0.357333;;, + 56;4; 0.347714, 0.839459, 0.154867, 0.373876;;, + 57;4; 0.332328, 0.802329, 0.175202, 0.422933;;, + 58;4; 0.308842, 0.745656, 0.206242, 0.497805;;, + 59;4; 0.282217, 0.681395, 0.241431, 0.582718;;, + 60;4; 0.258820, 0.624895, 0.272356, 0.657411;;, + 61;4; 0.243535, 0.587964, 0.292560, 0.706261;;, + 62;4; 0.238392, 0.575529, 0.299360, 0.722717;;, + 63;4; 0.238392, 0.575529, 0.299360, 0.722717;;; + } + AnimationKey { //Scale + 1; + 64; + 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;;; + } + } + Animation { + {Armature_Bone_005} + AnimationKey { //Position + 2; + 64; + 0;3; -0.299335,-0.008069,-0.057320;;, + 1;3; -0.299335,-0.008069,-0.057320;;, + 2;3; -0.299335,-0.008069,-0.057320;;, + 3;3; -0.299335,-0.008069,-0.057320;;, + 4;3; -0.299335,-0.008069,-0.057320;;, + 5;3; -0.299335,-0.008069,-0.057320;;, + 6;3; -0.299335,-0.008069,-0.057320;;, + 7;3; -0.299335,-0.008069,-0.057320;;, + 8;3; -0.299335,-0.008069,-0.057320;;, + 9;3; -0.299335,-0.008069,-0.057320;;, + 10;3; -0.299335,-0.008069,-0.057320;;, + 11;3; -0.299335,-0.008069,-0.057320;;, + 12;3; -0.299335,-0.008069,-0.057320;;, + 13;3; -0.299335,-0.008069,-0.057320;;, + 14;3; -0.299335,-0.008069,-0.057320;;, + 15;3; -0.299335,-0.008069,-0.057320;;, + 16;3; -0.299335,-0.008069,-0.057320;;, + 17;3; -0.299335,-0.008069,-0.057320;;, + 18;3; -0.299335,-0.008069,-0.057320;;, + 19;3; -0.299335,-0.008069,-0.057320;;, + 20;3; -0.299335,-0.008069,-0.057320;;, + 21;3; -0.299335,-0.008069,-0.057320;;, + 22;3; -0.299335,-0.008069,-0.057320;;, + 23;3; -0.299335,-0.008069,-0.057320;;, + 24;3; -0.299335,-0.008069,-0.057320;;, + 25;3; -0.299335,-0.008069,-0.057320;;, + 26;3; -0.299335,-0.008069,-0.057320;;, + 27;3; -0.299335,-0.008069,-0.057320;;, + 28;3; -0.299335,-0.008069,-0.057320;;, + 29;3; -0.299335,-0.008069,-0.057320;;, + 30;3; -0.299335,-0.008069,-0.057320;;, + 31;3; -0.299335,-0.008069,-0.057320;;, + 32;3; -0.299335,-0.008069,-0.057320;;, + 33;3; -0.299335,-0.008069,-0.057320;;, + 34;3; -0.299335,-0.008069,-0.057320;;, + 35;3; -0.299335,-0.008069,-0.057320;;, + 36;3; -0.299335,-0.008069,-0.057320;;, + 37;3; -0.299335,-0.008069,-0.057320;;, + 38;3; -0.299335,-0.008069,-0.057320;;, + 39;3; -0.299335,-0.008069,-0.057320;;, + 40;3; -0.299335,-0.008069,-0.057320;;, + 41;3; -0.299335,-0.008069,-0.057320;;, + 42;3; -0.299335,-0.008069,-0.057320;;, + 43;3; -0.299335,-0.008069,-0.057320;;, + 44;3; -0.299335,-0.008069,-0.057320;;, + 45;3; -0.299335,-0.008069,-0.057320;;, + 46;3; -0.299335,-0.008069,-0.057320;;, + 47;3; -0.299335,-0.008069,-0.057320;;, + 48;3; -0.299335,-0.008069,-0.057320;;, + 49;3; -0.299335,-0.008069,-0.057320;;, + 50;3; -0.299335,-0.008069,-0.057320;;, + 51;3; -0.299335,-0.008069,-0.057320;;, + 52;3; -0.299335,-0.008069,-0.057320;;, + 53;3; -0.299335,-0.008069,-0.057320;;, + 54;3; -0.299335,-0.008069,-0.057320;;, + 55;3; -0.299335,-0.008069,-0.057320;;, + 56;3; -0.299335,-0.008069,-0.057320;;, + 57;3; -0.299335,-0.008069,-0.057320;;, + 58;3; -0.299335,-0.008069,-0.057320;;, + 59;3; -0.299335,-0.008069,-0.057320;;, + 60;3; -0.299335,-0.008069,-0.057320;;, + 61;3; -0.299335,-0.008069,-0.057320;;, + 62;3; -0.299335,-0.008069,-0.057320;;, + 63;3; -0.299335,-0.008069,-0.057320;;; + } + AnimationKey { //Rotation + 0; + 64; + 0;4; 0.354655, 0.853092,-0.149110,-0.352448;;, + 1;4; 0.354655, 0.853092,-0.149110,-0.352448;;, + 2;4; 0.353694, 0.853458,-0.146814,-0.353386;;, + 3;4; 0.350988, 0.854488,-0.140345,-0.356028;;, + 4;4; 0.347514, 0.855811,-0.132040,-0.359420;;, + 5;4; 0.344808, 0.856841,-0.125571,-0.362062;;, + 6;4; 0.343847, 0.857207,-0.123275,-0.363000;;, + 7;4; 0.344100, 0.857104,-0.123882,-0.362748;;, + 8;4; 0.344861, 0.856793,-0.125717,-0.361991;;, + 9;4; 0.346116, 0.856281,-0.128742,-0.360741;;, + 10;4; 0.347810, 0.855589,-0.132824,-0.359054;;, + 11;4; 0.349839, 0.854761,-0.137713,-0.357034;;, + 12;4; 0.352050, 0.853859,-0.143042,-0.354832;;, + 13;4; 0.354261, 0.852956,-0.148370,-0.352631;;, + 14;4; 0.356289, 0.852128,-0.153259,-0.350610;;, + 15;4; 0.357983, 0.851437,-0.157342,-0.348924;;, + 16;4; 0.359239, 0.850924,-0.160367,-0.347674;;, + 17;4; 0.360000, 0.850614,-0.162201,-0.346916;;, + 18;4; 0.360252, 0.850511,-0.162809,-0.346665;;, + 19;4; 0.359921, 0.850663,-0.161999,-0.347007;;, + 20;4; 0.358997, 0.851090,-0.159737,-0.347962;;, + 21;4; 0.357665, 0.851704,-0.156478,-0.349337;;, + 22;4; 0.356236, 0.852363,-0.152980,-0.350814;;, + 23;4; 0.355103, 0.852885,-0.150208,-0.351985;;, + 24;4; 0.354655, 0.853092,-0.149110,-0.352448;;, + 25;4; 0.354655, 0.853092,-0.149110,-0.352448;;, + 26;4; 0.351252, 0.844989,-0.153446,-0.362907;;, + 27;4; 0.341950, 0.822843,-0.165295,-0.391489;;, + 28;4; 0.328261, 0.790255,-0.182733,-0.433541;;, + 29;4; 0.311798, 0.751069,-0.203705,-0.484104;;, + 30;4; 0.294150, 0.709066,-0.226186,-0.538298;;, + 31;4; 0.276771, 0.667705,-0.248324,-0.591661;;, + 32;4; 0.260907, 0.629950,-0.268532,-0.640371;;, + 33;4; 0.247557, 0.598179,-0.285538,-0.681361;;, + 34;4; 0.237476, 0.574186,-0.298380,-0.712316;;, + 35;4; 0.231193, 0.559234,-0.306382,-0.731607;;, + 36;4; 0.229050, 0.554134,-0.309112,-0.738188;;, + 37;4; 0.231246, 0.559361,-0.306315,-0.731445;;, + 38;4; 0.237879, 0.575141,-0.297867,-0.711090;;, + 39;4; 0.248797, 0.601116,-0.283959,-0.677588;;, + 40;4; 0.263459, 0.635992,-0.265283,-0.632610;;, + 41;4; 0.280825, 0.677303,-0.243163,-0.579332;;, + 42;4; 0.299379, 0.721448,-0.219529,-0.522388;;, + 43;4; 0.317328, 0.764168,-0.196665,-0.467268;;, + 44;4; 0.332935, 0.801333,-0.176782,-0.419298;;, + 45;4; 0.344837, 0.829688,-0.161619,-0.382684;;, + 46;4; 0.352192, 0.847220,-0.152248,-0.360036;;, + 47;4; 0.354655, 0.853092,-0.149110,-0.352448;;, + 48;4; 0.354655, 0.853092,-0.149110,-0.352448;;, + 49;4; 0.347738, 0.836623,-0.157922,-0.373704;;, + 50;4; 0.329119, 0.792298,-0.181641,-0.430903;;, + 51;4; 0.303216, 0.730645,-0.214637,-0.510456;;, + 52;4; 0.275476, 0.664623,-0.249974,-0.595638;;, + 53;4; 0.251266, 0.607006,-0.280813,-0.669973;;, + 54;4; 0.234874, 0.567995,-0.301694,-0.720304;;, + 55;4; 0.229050, 0.554134,-0.309112,-0.738188;;, + 56;4; 0.234739, 0.567671,-0.301866,-0.720724;;, + 57;4; 0.251616, 0.607821,-0.280368,-0.668940;;, + 58;4; 0.277378, 0.669102,-0.247554,-0.589906;;, + 59;4; 0.306582, 0.738592,-0.210354,-0.500267;;, + 60;4; 0.332246, 0.799695,-0.177660,-0.421409;;, + 61;4; 0.349012, 0.839640,-0.156300,-0.369827;;, + 62;4; 0.354655, 0.853092,-0.149110,-0.352448;;, + 63;4; 0.354655, 0.853092,-0.149110,-0.352448;;; + } + AnimationKey { //Scale + 1; + 64; + 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;;; + } + } + Animation { + {Cube_005} + AnimationKey { //Position + 2; + 64; + 0;3; -0.003210, 0.035207,-1.015033;;, + 1;3; -0.003210, 0.035207,-1.015033;;, + 2;3; -0.003210, 0.035207,-1.015033;;, + 3;3; -0.003210, 0.035207,-1.015033;;, + 4;3; -0.003210, 0.035207,-1.015033;;, + 5;3; -0.003210, 0.035207,-1.015033;;, + 6;3; -0.003210, 0.035207,-1.015033;;, + 7;3; -0.003210, 0.035207,-1.015033;;, + 8;3; -0.003210, 0.035207,-1.015033;;, + 9;3; -0.003210, 0.035207,-1.015033;;, + 10;3; -0.003210, 0.035207,-1.015033;;, + 11;3; -0.003210, 0.035207,-1.015033;;, + 12;3; -0.003210, 0.035207,-1.015033;;, + 13;3; -0.003210, 0.035207,-1.015033;;, + 14;3; -0.003210, 0.035207,-1.015033;;, + 15;3; -0.003210, 0.035207,-1.015033;;, + 16;3; -0.003210, 0.035207,-1.015033;;, + 17;3; -0.003210, 0.035207,-1.015033;;, + 18;3; -0.003210, 0.035207,-1.015033;;, + 19;3; -0.003210, 0.035207,-1.015033;;, + 20;3; -0.003210, 0.035207,-1.015033;;, + 21;3; -0.003210, 0.035207,-1.015033;;, + 22;3; -0.003210, 0.035207,-1.015033;;, + 23;3; -0.003210, 0.035207,-1.015033;;, + 24;3; -0.003210, 0.035207,-1.015033;;, + 25;3; -0.003210, 0.035207,-1.015033;;, + 26;3; -0.003210, 0.035207,-1.015033;;, + 27;3; -0.003210, 0.035207,-1.015033;;, + 28;3; -0.003210, 0.035207,-1.015033;;, + 29;3; -0.003210, 0.035207,-1.015033;;, + 30;3; -0.003210, 0.035207,-1.015033;;, + 31;3; -0.003210, 0.035207,-1.015033;;, + 32;3; -0.003210, 0.035207,-1.015033;;, + 33;3; -0.003210, 0.035207,-1.015033;;, + 34;3; -0.003210, 0.035207,-1.015033;;, + 35;3; -0.003210, 0.035207,-1.015033;;, + 36;3; -0.003210, 0.035207,-1.015033;;, + 37;3; -0.003210, 0.035207,-1.015033;;, + 38;3; -0.003210, 0.035207,-1.015033;;, + 39;3; -0.003210, 0.035207,-1.015033;;, + 40;3; -0.003210, 0.035207,-1.015033;;, + 41;3; -0.003210, 0.035207,-1.015033;;, + 42;3; -0.003210, 0.035207,-1.015033;;, + 43;3; -0.003210, 0.035207,-1.015033;;, + 44;3; -0.003210, 0.035207,-1.015033;;, + 45;3; -0.003210, 0.035207,-1.015033;;, + 46;3; -0.003210, 0.035207,-1.015033;;, + 47;3; -0.003210, 0.035207,-1.015033;;, + 48;3; -0.003210, 0.035207,-1.015033;;, + 49;3; -0.003210, 0.035207,-1.015033;;, + 50;3; -0.003210, 0.035207,-1.015033;;, + 51;3; -0.003210, 0.035207,-1.015033;;, + 52;3; -0.003210, 0.035207,-1.015033;;, + 53;3; -0.003210, 0.035207,-1.015033;;, + 54;3; -0.003210, 0.035207,-1.015033;;, + 55;3; -0.003210, 0.035207,-1.015033;;, + 56;3; -0.003210, 0.035207,-1.015033;;, + 57;3; -0.003210, 0.035207,-1.015033;;, + 58;3; -0.003210, 0.035207,-1.015033;;, + 59;3; -0.003210, 0.035207,-1.015033;;, + 60;3; -0.003210, 0.035207,-1.015033;;, + 61;3; -0.003210, 0.035207,-1.015033;;, + 62;3; -0.003210, 0.035207,-1.015033;;, + 63;3; -0.003210, 0.035207,-1.015033;;; + } + AnimationKey { //Rotation + 0; + 64; + 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;;; + } + AnimationKey { //Scale + 1; + 64; + 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;;; + } + } +} //End of AnimationSet diff --git a/mods/mobs/models/zmobs_lava_flan.png b/mods/mobs/models/zmobs_lava_flan.png new file mode 100644 index 00000000..d9799ae0 Binary files /dev/null and b/mods/mobs/models/zmobs_lava_flan.png differ diff --git a/mods/mobs/models/zmobs_lava_flan.x b/mods/mobs/models/zmobs_lava_flan.x new file mode 100644 index 00000000..be78ff97 --- /dev/null +++ b/mods/mobs/models/zmobs_lava_flan.x @@ -0,0 +1,3506 @@ +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 { + -5.000000, 0.000001, 0.000000, 0.000000, + -0.000001,-5.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 5.000000, 0.000000, + 0.000000, 0.000000,-5.000000, 1.000000;; + } + Frame Armature_Bone { + 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_Bone_001 { + 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, 2.000000, 0.000000, 1.000000;; + } + Frame Armature_Bone_002 { + 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.300000, 0.000000, 1.000000;; + } + Frame Armature_Bone_003 { + 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.300000, 0.000000, 1.000000;; + } + Frame Armature_Bone_004 { + 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.400000, 0.000000, 1.000000;; + } + } // End of Armature_Bone_004 + } // End of Armature_Bone_003 + } // End of Armature_Bone_002 + } // End of Armature_Bone_001 + } // End of Armature_Bone + Frame Cube { + 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, 1.000000, 1.000000;; + } + Mesh { // Cube mesh + 264; + 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.800000;-0.800000; 1.000000;, + -0.800000; 0.800000; 1.000000;, + 1.000000; 1.000000;-1.000000;, + 1.000000; 0.999999; 1.000000;, + 0.999999;-1.000001; 1.000000;, + 1.000000;-1.000000;-1.000000;, + 1.000000;-1.000000;-1.000000;, + 0.999999;-1.000001; 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.999999; 1.000000;, + 1.000000; 1.000000;-1.000000;, + -1.000000; 1.000000;-1.000000;, + -1.000000; 1.000000; 1.000000;, + -0.800000; 0.800000; 1.666667;, + -0.800000;-0.800000; 1.666667;, + -0.800000;-0.800000; 2.000000;, + -0.800000; 0.800000; 2.000000;, + 0.999999;-1.000001; 1.000000;, + 1.000000; 0.999999; 1.000000;, + 0.800000; 0.800000; 1.000000;, + 0.799999;-0.800001; 1.000000;, + 1.000000; 0.999999; 1.000000;, + -1.000000; 1.000000; 1.000000;, + -0.800000; 0.800000; 1.000000;, + 0.800000; 0.800000; 1.000000;, + -1.000000;-1.000000; 1.000000;, + 0.999999;-1.000001; 1.000000;, + 0.799999;-0.800001; 1.000000;, + -0.800000;-0.800000; 1.000000;, + -0.800000;-0.800000; 2.000000;, + 0.799999;-0.800001; 2.000000;, + 0.640000;-0.640000; 2.000000;, + -0.640000;-0.640000; 2.000000;, + 0.799999;-0.800001; 1.666667;, + 0.800000; 0.800000; 1.666667;, + 0.800000; 0.800000; 2.000000;, + 0.799999;-0.800001; 2.000000;, + 0.800000; 0.800000; 1.666667;, + -0.800000; 0.800000; 1.666667;, + -0.800000; 0.800000; 2.000000;, + 0.800000; 0.800000; 2.000000;, + -0.800000;-0.800000; 1.666667;, + 0.799999;-0.800001; 1.666667;, + 0.799999;-0.800001; 2.000000;, + -0.800000;-0.800000; 2.000000;, + 0.640000; 0.640000; 2.000000;, + -0.640000; 0.640000; 2.000000;, + -0.640000; 0.640000; 2.500000;, + 0.640000; 0.640000; 2.500000;, + -0.800000; 0.800000; 2.000000;, + -0.800000;-0.800000; 2.000000;, + -0.640000;-0.640000; 2.000000;, + -0.640000; 0.640000; 2.000000;, + 0.799999;-0.800001; 2.000000;, + 0.800000; 0.800000; 2.000000;, + 0.640000; 0.640000; 2.000000;, + 0.640000;-0.640000; 2.000000;, + 0.800000; 0.800000; 2.000000;, + -0.800000; 0.800000; 2.000000;, + -0.640000; 0.640000; 2.000000;, + 0.640000; 0.640000; 2.000000;, + 0.640000; 0.640000; 2.500000;, + -0.640000; 0.640000; 2.500000;, + -0.640000;-0.640000; 2.500000;, + 0.640000;-0.640000; 2.500000;, + -0.640000;-0.640000; 2.000000;, + 0.640000;-0.640000; 2.000000;, + 0.640000;-0.640000; 2.500000;, + -0.640000;-0.640000; 2.500000;, + -0.640000; 0.640000; 2.000000;, + -0.640000;-0.640000; 2.000000;, + -0.640000;-0.640000; 2.500000;, + -0.640000; 0.640000; 2.500000;, + 0.640000;-0.640000; 2.000000;, + 0.640000; 0.640000; 2.000000;, + 0.640000; 0.640000; 2.500000;, + 0.640000;-0.640000; 2.500000;, + -0.800000; 0.800000; 1.000000;, + -0.800000;-0.800000; 1.000000;, + -0.800000;-0.800000; 1.333333;, + -0.800000; 0.800000; 1.333333;, + -0.800000; 0.800000; 1.333333;, + -0.800000;-0.800000; 1.333333;, + -0.800000;-0.800000; 1.666667;, + -0.800000; 0.800000; 1.666667;, + 0.799999;-0.800001; 1.000000;, + 0.800000; 0.800000; 1.000000;, + 0.800000; 0.800000; 1.333333;, + 0.799999;-0.800001; 1.333333;, + 0.799999;-0.800001; 1.333333;, + 0.800000; 0.800000; 1.333333;, + 0.800000; 0.800000; 1.666667;, + 0.799999;-0.800001; 1.666667;, + 0.800000; 0.800000; 1.000000;, + -0.800000; 0.800000; 1.000000;, + -0.800000; 0.800000; 1.333333;, + 0.800000; 0.800000; 1.333333;, + 0.800000; 0.800000; 1.333333;, + -0.800000; 0.800000; 1.333333;, + -0.800000; 0.800000; 1.666667;, + 0.800000; 0.800000; 1.666667;, + -0.800000;-0.800000; 1.000000;, + 0.799999;-0.800001; 1.000000;, + 0.799999;-0.800001; 1.333333;, + -0.800000;-0.800000; 1.333333;, + 0.799999;-0.800001; 1.333333;, + 0.799999;-0.800001; 1.666667;, + 0.560000;-0.000000; 1.616667;, + 0.560000;-0.000000; 1.383333;, + -0.560000; 0.000000; 1.383333;, + 0.560000;-0.000000; 1.383333;, + 0.560000;-0.000000; 1.616667;, + -0.560000; 0.000000; 1.616667;, + 0.799999;-0.800001; 1.666667;, + -0.800000;-0.800000; 1.666667;, + -0.560000; 0.000000; 1.616667;, + 0.560000;-0.000000; 1.616667;, + -0.800000;-0.800000; 1.666667;, + -0.800000;-0.800000; 1.333333;, + -0.560000; 0.000000; 1.383333;, + -0.560000; 0.000000; 1.616667;, + -0.800000;-0.800000; 1.333333;, + 0.799999;-0.800001; 1.333333;, + 0.560000;-0.000000; 1.383333;, + -0.560000; 0.000000; 1.383333;, + -0.000000;-0.790000; 1.340000;, + -0.000000;-0.690000; 1.540000;, + -0.100000;-0.690000; 1.340000;, + -0.000000;-0.590000; 1.340000;, + -0.000000;-0.690000; 1.540000;, + 0.100000;-0.690000; 1.340000;, + 0.400000;-0.590000; 1.340000;, + 0.500000;-0.690000; 1.340000;, + 0.400000;-0.790000; 1.340000;, + 0.300000;-0.690000; 1.340000;, + -0.100000;-0.690000; 1.340000;, + -0.000000;-0.690000; 1.540000;, + -0.000000;-0.590000; 1.340000;, + 0.100000;-0.690000; 1.340000;, + -0.000000;-0.690000; 1.540000;, + -0.000000;-0.790000; 1.340000;, + 0.200000;-0.590000; 1.340000;, + 0.300000;-0.690000; 1.340000;, + 0.200000;-0.790000; 1.340000;, + 0.100000;-0.690000; 1.340000;, + 0.300000;-0.690000; 1.340000;, + 0.200000;-0.690000; 1.540000;, + 0.200000;-0.790000; 1.340000;, + 0.100000;-0.690000; 1.340000;, + 0.200000;-0.690000; 1.540000;, + 0.200000;-0.590000; 1.340000;, + 0.200000;-0.590000; 1.340000;, + 0.200000;-0.690000; 1.540000;, + 0.300000;-0.690000; 1.340000;, + 0.500000;-0.690000; 1.340000;, + 0.400000;-0.690000; 1.540000;, + 0.400000;-0.790000; 1.340000;, + 0.200000;-0.790000; 1.340000;, + 0.200000;-0.690000; 1.540000;, + 0.100000;-0.690000; 1.340000;, + -0.000000;-0.590000; 1.340000;, + 0.100000;-0.690000; 1.340000;, + -0.000000;-0.790000; 1.340000;, + -0.100000;-0.690000; 1.340000;, + 0.300000;-0.690000; 1.340000;, + 0.400000;-0.690000; 1.540000;, + 0.400000;-0.590000; 1.340000;, + 0.400000;-0.590000; 1.340000;, + 0.400000;-0.690000; 1.540000;, + 0.500000;-0.690000; 1.340000;, + 0.400000;-0.790000; 1.340000;, + 0.400000;-0.690000; 1.540000;, + 0.300000;-0.690000; 1.340000;, + -0.200000;-0.590000; 1.340000;, + -0.100000;-0.690000; 1.340000;, + -0.200000;-0.790000; 1.340000;, + -0.300000;-0.690000; 1.340000;, + -0.100000;-0.690000; 1.340000;, + -0.200000;-0.690000; 1.540000;, + -0.200000;-0.790000; 1.340000;, + -0.300000;-0.690000; 1.340000;, + -0.200000;-0.690000; 1.540000;, + -0.200000;-0.590000; 1.340000;, + -0.200000;-0.590000; 1.340000;, + -0.200000;-0.690000; 1.540000;, + -0.100000;-0.690000; 1.340000;, + -0.200000;-0.790000; 1.340000;, + -0.200000;-0.690000; 1.540000;, + -0.300000;-0.690000; 1.340000;, + -0.400000;-0.590000; 1.340000;, + -0.300000;-0.690000; 1.340000;, + -0.400000;-0.790000; 1.340000;, + -0.500000;-0.690000; 1.340000;, + -0.300000;-0.690000; 1.340000;, + -0.400000;-0.690000; 1.540000;, + -0.400000;-0.790000; 1.340000;, + -0.500000;-0.690000; 1.340000;, + -0.400000;-0.690000; 1.540000;, + -0.400000;-0.590000; 1.340000;, + -0.400000;-0.590000; 1.340000;, + -0.400000;-0.690000; 1.540000;, + -0.300000;-0.690000; 1.340000;, + -0.400000;-0.790000; 1.340000;, + -0.400000;-0.690000; 1.540000;, + -0.500000;-0.690000; 1.340000;, + 0.200000;-0.700000; 2.400000;, + 0.200000;-0.500000; 2.400000;, + 0.200000;-0.500000; 2.200000;, + 0.200000;-0.700000; 2.200000;, + 0.200000;-0.500000; 2.400000;, + 0.400000;-0.500000; 2.400000;, + 0.400000;-0.500000; 2.200000;, + 0.200000;-0.500000; 2.200000;, + 0.400000;-0.500000; 2.400000;, + 0.400000;-0.700000; 2.400000;, + 0.400000;-0.700000; 2.200000;, + 0.400000;-0.500000; 2.200000;, + 0.400000;-0.700000; 2.400000;, + 0.200000;-0.700000; 2.400000;, + 0.200000;-0.700000; 2.200000;, + 0.400000;-0.700000; 2.200000;, + 0.200000;-0.700000; 2.200000;, + 0.200000;-0.500000; 2.200000;, + 0.400000;-0.500000; 2.200000;, + 0.400000;-0.700000; 2.200000;, + 0.400000;-0.700000; 2.400000;, + 0.400000;-0.500000; 2.400000;, + 0.200000;-0.500000; 2.400000;, + 0.200000;-0.700000; 2.400000;, + -0.400000;-0.700000; 2.400000;, + -0.400000;-0.500000; 2.400000;, + -0.400000;-0.500000; 2.200000;, + -0.400000;-0.700000; 2.200000;, + -0.400000;-0.500000; 2.400000;, + -0.200000;-0.500000; 2.400000;, + -0.200000;-0.500000; 2.200000;, + -0.400000;-0.500000; 2.200000;, + -0.200000;-0.500000; 2.400000;, + -0.200000;-0.700000; 2.400000;, + -0.200000;-0.700000; 2.200000;, + -0.200000;-0.500000; 2.200000;, + -0.200000;-0.700000; 2.400000;, + -0.400000;-0.700000; 2.400000;, + -0.400000;-0.700000; 2.200000;, + -0.200000;-0.700000; 2.200000;, + -0.400000;-0.700000; 2.200000;, + -0.400000;-0.500000; 2.200000;, + -0.200000;-0.500000; 2.200000;, + -0.200000;-0.700000; 2.200000;, + -0.200000;-0.700000; 2.400000;, + -0.200000;-0.500000; 2.400000;, + -0.400000;-0.500000; 2.400000;, + -0.400000;-0.700000; 2.400000;; + 71; + 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;, + 3;138;137;136;, + 3;141;140;139;, + 4;145;144;143;142;, + 3;148;147;146;, + 3;151;150;149;, + 4;155;154;153;152;, + 3;158;157;156;, + 3;161;160;159;, + 3;164;163;162;, + 3;167;166;165;, + 3;170;169;168;, + 4;174;173;172;171;, + 3;177;176;175;, + 3;180;179;178;, + 3;183;182;181;, + 4;187;186;185;184;, + 3;190;189;188;, + 3;193;192;191;, + 3;196;195;194;, + 3;199;198;197;, + 4;203;202;201;200;, + 3;206;205;204;, + 3;209;208;207;, + 3;212;211;210;, + 3;215;214;213;, + 4;219;218;217;216;, + 4;223;222;221;220;, + 4;227;226;225;224;, + 4;231;230;229;228;, + 4;235;234;233;232;, + 4;239;238;237;236;, + 4;243;242;241;240;, + 4;247;246;245;244;, + 4;251;250;249;248;, + 4;255;254;253;252;, + 4;259;258;257;256;, + 4;263;262;261;260;; + MeshNormals { // Cube normals + 71; + 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; 1.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.000001; 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;, + -1.000000; 0.000000; 0.000000;, + 1.000000;-0.000001; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000;-0.000001; 0.000000;, + 1.000000;-0.000001; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.957826;-0.287348; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-0.062378;-0.998053;, + 0.957826;-0.287348; 0.000000;, + 0.000000;-0.062378; 0.998053;, + -0.666667;-0.666667; 0.333333;, + 0.666667; 0.666666; 0.333333;, + 0.000000; 0.000000;-1.000000;, + -0.666667; 0.666667; 0.333333;, + 0.666667;-0.666667; 0.333333;, + 0.000000; 0.000000;-1.000000;, + 0.666667;-0.666667; 0.333333;, + -0.666667; 0.666667; 0.333333;, + 0.666667; 0.666667; 0.333333;, + 0.666667;-0.666667; 0.333333;, + -0.666667;-0.666667; 0.333333;, + 0.000000; 0.000000;-1.000000;, + -0.666667; 0.666667; 0.333333;, + 0.666667; 0.666667; 0.333333;, + -0.666667;-0.666667; 0.333333;, + 0.000000; 0.000000;-1.000000;, + 0.666667;-0.666667; 0.333333;, + -0.666667; 0.666667; 0.333333;, + 0.666667; 0.666667; 0.333333;, + -0.666667;-0.666667; 0.333333;, + 0.000000; 0.000000;-1.000000;, + 0.666667;-0.666667; 0.333333;, + -0.666667; 0.666667; 0.333333;, + 0.666667; 0.666667; 0.333333;, + -0.666667;-0.666667; 0.333333;, + -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;, + -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;; + 71; + 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;, + 3;34;34;34;, + 3;35;35;35;, + 4;36;36;36;36;, + 3;37;37;37;, + 3;38;38;38;, + 4;39;39;39;39;, + 3;40;40;40;, + 3;41;41;41;, + 3;42;42;42;, + 3;43;43;43;, + 3;44;44;44;, + 4;45;45;45;45;, + 3;46;46;46;, + 3;47;47;47;, + 3;48;48;48;, + 4;49;49;49;49;, + 3;50;50;50;, + 3;51;51;51;, + 3;52;52;52;, + 3;53;53;53;, + 4;54;54;54;54;, + 3;55;55;55;, + 3;56;56;56;, + 3;57;57;57;, + 3;58;58;58;, + 4;59;59;59;59;, + 4;60;60;60;60;, + 4;61;61;61;61;, + 4;62;62;62;62;, + 4;63;63;63;63;, + 4;64;64;64;64;, + 4;65;65;65;65;, + 4;66;66;66;66;, + 4;67;67;67;67;, + 4;68;68;68;68;, + 4;69;69;69;69;, + 4;70;70;70;70;; + } // End of Cube normals + MeshTextureCoords { // Cube UV coordinates + 264; + 0.000000; 0.500000;, + 0.500000; 0.500000;, + 0.500000; 0.000000;, + 0.000000; 0.000000;, + -0.000104; 0.000450;, + -0.000014; 0.499950;, + 0.058184; 0.442464;, + 0.057363; 0.058619;, + 0.000000; 0.500000;, + 0.500000; 0.500000;, + 0.500000; 0.000000;, + 0.000000; 0.000000;, + 0.000000; 0.500000;, + 0.500000; 0.500000;, + 0.500000; 0.000000;, + 0.000000; 0.000000;, + 0.000000; 0.500000;, + 0.500000; 0.500000;, + 0.500000; 0.000000;, + 0.000000; 0.000000;, + 0.000000; 0.500000;, + 0.500000; 0.500000;, + 0.500000; 0.000000;, + 0.000000; 0.000000;, + 0.499960; 0.416620;, + 0.000040; 0.416620;, + 0.000040; 0.624921;, + 0.499960; 0.624921;, + 0.499489; 0.499550;, + 0.499399; 0.000050;, + 0.441201; 0.057536;, + 0.442021; 0.441381;, + 0.499399; 0.000050;, + -0.000104; 0.000450;, + 0.057363; 0.058619;, + 0.441201; 0.057536;, + -0.000014; 0.499950;, + 0.499489; 0.499550;, + 0.442021; 0.441381;, + 0.058184; 0.442464;, + -0.000014; 0.499950;, + 0.499489; 0.499550;, + 0.442022; 0.441382;, + 0.058184; 0.442464;, + 0.000040; 0.208320;, + 0.499960; 0.208320;, + 0.499960; 0.000020;, + 0.000040; 0.000020;, + 0.499960; 0.416621;, + 0.000040; 0.416620;, + 0.000040; 0.624921;, + 0.499960; 0.624921;, + 0.000046; 0.499908;, + 0.499954; 0.499909;, + 0.499954; 0.291613;, + 0.000046; 0.291613;, + 0.499969;-0.015638;, + 0.000031;-0.015639;, + 0.000031; 0.374937;, + 0.499969; 0.374938;, + -0.000104; 0.000450;, + -0.000014; 0.499950;, + 0.058184; 0.442464;, + 0.057364; 0.058619;, + 0.499489; 0.499550;, + 0.499399; 0.000050;, + 0.441201; 0.057536;, + 0.442022; 0.441382;, + 0.499399; 0.000050;, + -0.000104; 0.000450;, + 0.057364; 0.058619;, + 0.441201; 0.057536;, + 0.499950; 0.000050;, + 0.000050; 0.000050;, + 0.000050; 0.499950;, + 0.499950; 0.499950;, + 0.000031; 0.374937;, + 0.499969; 0.374938;, + 0.499969;-0.015638;, + 0.000031;-0.015639;, + 0.499969;-0.015639;, + 0.000031;-0.015639;, + 0.000031; 0.374937;, + 0.499969; 0.374938;, + 0.000031; 0.374937;, + 0.499969; 0.374938;, + 0.499969;-0.015639;, + 0.000031;-0.015639;, + 0.499960; 0.000019;, + 0.000040; 0.000019;, + 0.000040; 0.208320;, + 0.499960; 0.208320;, + 0.499960; 0.208320;, + 0.000040; 0.208320;, + 0.000040; 0.416620;, + 0.499960; 0.416620;, + 0.000040; 0.624921;, + 0.499960; 0.624921;, + 0.499960; 0.416620;, + 0.000040; 0.416621;, + 0.000040; 0.416621;, + 0.499960; 0.416620;, + 0.499960; 0.208320;, + 0.000040; 0.208320;, + 0.499961; 0.000021;, + 0.000040; 0.000020;, + 0.000040; 0.208320;, + 0.499960; 0.208321;, + 0.499960; 0.208321;, + 0.000040; 0.208320;, + 0.000040; 0.416620;, + 0.499960; 0.416621;, + 0.000046; 0.291430;, + 0.499954; 0.291430;, + 0.499954; 0.083135;, + 0.000046; 0.083134;, + 0.482632; 0.297524;, + 0.499972; 0.143183;, + 0.275451; 0.201614;, + 0.279529; 0.217376;, + 0.000023; 0.249954;, + 0.499977; 0.249954;, + 0.499977; 0.041640;, + 0.000023; 0.041640;, + 0.499972; 0.143183;, + 0.017368; 0.143350;, + 0.220471; 0.223498;, + 0.275451; 0.201614;, + 0.017368; 0.143350;, + 0.000028; 0.297691;, + 0.224549; 0.239260;, + 0.220471; 0.223498;, + 0.000035; 0.499630;, + 0.499965; 0.499457;, + 0.424889; 0.249031;, + 0.074938; 0.249151;, + 0.843750; 0.500000;, + 0.750000; 0.375000;, + 0.656250; 0.500000;, + 0.843750; 0.500000;, + 0.750000; 0.375000;, + 0.656250; 0.500000;, + 0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + 0.843750; 0.500000;, + 0.750000; 0.375000;, + 0.656250; 0.500000;, + 0.843750; 0.500000;, + 0.750000; 0.375000;, + 0.656250; 0.500000;, + 0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + 0.843750; 0.500000;, + 0.750000; 0.375000;, + 0.656250; 0.500000;, + 0.843750; 0.500000;, + 0.750000; 0.375000;, + 0.656250; 0.500000;, + 0.843750; 0.500000;, + 0.750000; 0.375000;, + 0.656250; 0.500000;, + 0.843750; 0.500000;, + 0.750000; 0.375000;, + 0.656250; 0.500000;, + 0.843750; 0.500000;, + 0.750000; 0.375000;, + 0.656250; 0.500000;, + 0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + 0.843750; 0.500000;, + 0.750000; 0.375000;, + 0.656250; 0.500000;, + 0.843750; 0.500000;, + 0.750000; 0.375000;, + 0.656250; 0.500000;, + 0.843750; 0.500000;, + 0.750000; 0.375000;, + 0.656250; 0.500000;, + 0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + 0.843750; 0.500000;, + 0.750000; 0.375000;, + 0.656250; 0.500000;, + 0.843750; 0.500000;, + 0.750000; 0.375000;, + 0.656250; 0.500000;, + 0.843750; 0.500000;, + 0.750000; 0.375000;, + 0.656250; 0.500000;, + 0.843750; 0.500000;, + 0.750000; 0.375000;, + 0.656250; 0.500000;, + 0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + 0.843750; 0.500000;, + 0.750000; 0.375000;, + 0.656250; 0.500000;, + 0.843750; 0.500000;, + 0.750000; 0.375000;, + 0.656250; 0.500000;, + 0.843750; 0.500000;, + 0.750000; 0.375000;, + 0.656250; 0.500000;, + 0.843750; 0.500000;, + 0.750000; 0.375000;, + 0.656250; 0.500000;, + 0.562500; 0.562500;, + 0.500000; 0.500000;, + 0.500000; 1.000000;, + 0.562500; 0.937500;, + 0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + 1.000000; 0.500000;, + 0.937500; 0.562500;, + 0.937500; 0.937500;, + 0.999902; 0.999901;, + 0.968750; 0.031250;, + 0.843750; 0.031250;, + 0.843750; 0.156250;, + 0.968750; 0.156250;, + 0.562500; 0.937500;, + 0.500000; 1.000000;, + 0.999902; 0.999901;, + 0.937500; 0.937500;, + 0.937500; 0.562500;, + 1.000000; 0.500000;, + 0.500000; 0.500000;, + 0.562500; 0.562500;, + 0.562500; 0.562500;, + 0.500000; 0.500000;, + 0.500000; 1.000000;, + 0.562500; 0.937500;, + 0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + 1.000000; 0.500000;, + 0.937500; 0.562500;, + 0.937559; 0.942680;, + 0.999902; 0.999901;, + 0.656250; 0.031250;, + 0.531250; 0.031250;, + 0.531250; 0.156250;, + 0.656250; 0.156250;, + 0.562500; 0.937500;, + 0.500000; 1.000000;, + 0.999902; 0.999901;, + 0.937559; 0.942680;, + 0.937500; 0.562500;, + 1.000000; 0.500000;, + 0.500000; 0.500000;, + 0.562500; 0.562500;; + } // End of Cube UV coordinates + MeshMaterialList { // Cube material list + 1; + 71; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 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;; + } + } // End of Cube material list + XSkinMeshHeader { + 5; + 15; + 5; + } + SkinWeights { + "Armature_Bone_003"; + 249; + 4, + 5, + 6, + 7, + 9, + 10, + 13, + 14, + 17, + 18, + 20, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 76, + 77, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 263; + 0.097855, + 0.076266, + 0.083495, + 0.107234, + 0.089782, + 0.015282, + 0.015282, + 0.076266, + 0.076266, + 0.097855, + 0.089782, + 0.097855, + 0.297901, + 0.287737, + 0.176628, + 0.182485, + 0.015282, + 0.089782, + 0.098610, + 0.018636, + 0.089782, + 0.097855, + 0.107234, + 0.098610, + 0.076266, + 0.015282, + 0.018636, + 0.083495, + 0.176628, + 0.003327, + 0.018794, + 0.127925, + 0.020404, + 0.286977, + 0.174766, + 0.003327, + 0.286977, + 0.297901, + 0.182485, + 0.174766, + 0.287737, + 0.020404, + 0.003327, + 0.176628, + 0.126954, + 0.136859, + 0.062329, + 0.060353, + 0.182485, + 0.176628, + 0.127925, + 0.136859, + 0.003327, + 0.174766, + 0.126954, + 0.018794, + 0.174766, + 0.182485, + 0.136859, + 0.126954, + 0.060353, + 0.062329, + 0.059240, + 0.127925, + 0.018794, + 0.059240, + 0.136859, + 0.127925, + 0.059240, + 0.062329, + 0.018794, + 0.126954, + 0.060353, + 0.107234, + 0.083495, + 0.133455, + 0.171692, + 0.171692, + 0.133455, + 0.287737, + 0.297901, + 0.018636, + 0.098610, + 0.162048, + 0.016914, + 0.016914, + 0.162048, + 0.286977, + 0.020404, + 0.098610, + 0.107234, + 0.171692, + 0.162048, + 0.162048, + 0.171692, + 0.297901, + 0.286977, + 0.083495, + 0.018636, + 0.016914, + 0.133455, + 0.016914, + 0.020404, + 0.031793, + 0.024185, + 0.091978, + 0.024185, + 0.031793, + 0.098530, + 0.020404, + 0.287737, + 0.098530, + 0.031793, + 0.287737, + 0.133455, + 0.091978, + 0.098530, + 0.133455, + 0.016914, + 0.024185, + 0.091978, + 0.500298, + 0.488502, + 0.484399, + 0.484912, + 0.488502, + 0.484399, + 0.574901, + 0.567861, + 0.584345, + 0.581311, + 0.484399, + 0.488502, + 0.484912, + 0.484399, + 0.488502, + 0.500298, + 0.650639, + 0.642159, + 0.660270, + 0.658477, + 0.642159, + 0.652886, + 0.660270, + 0.658477, + 0.652886, + 0.650639, + 0.650639, + 0.652886, + 0.642159, + 0.567861, + 0.577104, + 0.584345, + 0.660270, + 0.652886, + 0.658477, + 0.484912, + 0.484399, + 0.500298, + 0.484399, + 0.581311, + 0.577104, + 0.574901, + 0.574901, + 0.577104, + 0.567861, + 0.584345, + 0.577104, + 0.581311, + 0.650637, + 0.658473, + 0.660266, + 0.642160, + 0.658473, + 0.652884, + 0.660266, + 0.642160, + 0.652884, + 0.650637, + 0.650637, + 0.652884, + 0.658473, + 0.660266, + 0.652884, + 0.642160, + 0.574890, + 0.581306, + 0.584343, + 0.567845, + 0.581306, + 0.577096, + 0.584343, + 0.567845, + 0.577096, + 0.574890, + 0.574890, + 0.577096, + 0.581306, + 0.584343, + 0.577096, + 0.567845, + 0.228406, + 0.235541, + 0.226562, + 0.226110, + 0.235541, + 0.218934, + 0.220409, + 0.226562, + 0.218934, + 0.223567, + 0.223362, + 0.220409, + 0.223567, + 0.228406, + 0.226110, + 0.223362, + 0.226110, + 0.226562, + 0.220409, + 0.223362, + 0.223567, + 0.218934, + 0.235541, + 0.228406, + 0.467092, + 0.474056, + 0.449203, + 0.459631, + 0.474056, + 0.473079, + 0.460570, + 0.449203, + 0.473079, + 0.467589, + 0.462597, + 0.460570, + 0.467589, + 0.467092, + 0.459631, + 0.462597, + 0.459631, + 0.449203, + 0.460570, + 0.462597, + 0.467589, + 0.473079, + 0.474056, + 0.467092; + 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,-1.600000, 0.000000, 1.000000;; + } // End of Armature_Bone_003 skin weights + SkinWeights { + "Armature_Bone_002"; + 210; + 0, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 13, + 14, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215; + 0.026699, + 0.019645, + 0.225152, + 0.090050, + 0.096422, + 0.247592, + 0.026699, + 0.225915, + 0.091110, + 0.091110, + 0.090050, + 0.090050, + 0.225152, + 0.019645, + 0.225915, + 0.026699, + 0.019645, + 0.225152, + 0.378267, + 0.217186, + 0.396865, + 0.489530, + 0.091110, + 0.225915, + 0.248358, + 0.097508, + 0.225915, + 0.225152, + 0.247592, + 0.248358, + 0.090050, + 0.091110, + 0.097508, + 0.096422, + 0.396865, + 0.398905, + 0.438519, + 0.443076, + 0.218141, + 0.380147, + 0.489880, + 0.398905, + 0.380147, + 0.378267, + 0.489530, + 0.489880, + 0.217186, + 0.218141, + 0.398905, + 0.396865, + 0.504112, + 0.502873, + 0.231972, + 0.249788, + 0.489530, + 0.396865, + 0.443076, + 0.502873, + 0.398905, + 0.489880, + 0.504112, + 0.438519, + 0.489880, + 0.489530, + 0.502873, + 0.504112, + 0.249788, + 0.231972, + 0.219728, + 0.214257, + 0.443076, + 0.438519, + 0.214257, + 0.219728, + 0.502873, + 0.443076, + 0.219728, + 0.231972, + 0.438519, + 0.504112, + 0.249788, + 0.214257, + 0.247592, + 0.096422, + 0.123030, + 0.409380, + 0.409380, + 0.123030, + 0.217186, + 0.378267, + 0.097508, + 0.248358, + 0.410435, + 0.124284, + 0.124284, + 0.410435, + 0.380147, + 0.218141, + 0.248358, + 0.247592, + 0.409380, + 0.410435, + 0.410435, + 0.409380, + 0.378267, + 0.380147, + 0.096422, + 0.097508, + 0.124284, + 0.123030, + 0.124284, + 0.218141, + 0.103633, + 0.087149, + 0.092557, + 0.087149, + 0.103633, + 0.094423, + 0.218141, + 0.217186, + 0.094423, + 0.103633, + 0.217186, + 0.123030, + 0.092557, + 0.094423, + 0.123030, + 0.124284, + 0.087149, + 0.092557, + 0.499702, + 0.511498, + 0.515601, + 0.515088, + 0.511498, + 0.515601, + 0.425099, + 0.432139, + 0.415655, + 0.418689, + 0.515601, + 0.511498, + 0.515088, + 0.515601, + 0.511498, + 0.499702, + 0.349361, + 0.357841, + 0.339730, + 0.341523, + 0.357841, + 0.347114, + 0.339730, + 0.341523, + 0.347114, + 0.349361, + 0.349361, + 0.347114, + 0.357841, + 0.432139, + 0.422896, + 0.415655, + 0.339730, + 0.347114, + 0.341523, + 0.515088, + 0.515601, + 0.499702, + 0.515601, + 0.418689, + 0.422896, + 0.425099, + 0.425099, + 0.422896, + 0.432139, + 0.415655, + 0.422896, + 0.418689, + 0.349363, + 0.341527, + 0.339734, + 0.357840, + 0.341527, + 0.347116, + 0.339734, + 0.357840, + 0.347116, + 0.349363, + 0.349363, + 0.347116, + 0.341527, + 0.339734, + 0.347116, + 0.357840, + 0.425110, + 0.418694, + 0.415657, + 0.432155, + 0.418694, + 0.422904, + 0.415657, + 0.432155, + 0.422904, + 0.425110, + 0.425110, + 0.422904, + 0.418694, + 0.415657, + 0.422904, + 0.432155; + 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,-1.300000, 0.000000, 1.000000;; + } // End of Armature_Bone_002 skin weights + SkinWeights { + "Armature_Bone_001"; + 127; + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 75, + 76, + 77, + 78, + 80, + 81, + 84, + 85, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135; + 0.028090, + 0.044667, + 0.027228, + 0.014924, + 0.187604, + 0.200597, + 0.217670, + 0.204339, + 0.028090, + 0.204480, + 0.310430, + 0.044667, + 0.044667, + 0.310430, + 0.200597, + 0.027228, + 0.027228, + 0.200597, + 0.187604, + 0.014924, + 0.204480, + 0.028090, + 0.014924, + 0.187604, + 0.067482, + 0.064812, + 0.031709, + 0.033965, + 0.310430, + 0.204480, + 0.222012, + 0.341423, + 0.204480, + 0.187604, + 0.204339, + 0.222012, + 0.200597, + 0.310430, + 0.341423, + 0.217670, + 0.031709, + 0.101587, + 0.070428, + 0.017181, + 0.167670, + 0.078366, + 0.047455, + 0.101587, + 0.078366, + 0.067482, + 0.033965, + 0.047455, + 0.064812, + 0.167670, + 0.101587, + 0.031709, + 0.027631, + 0.014453, + 0.033965, + 0.031709, + 0.017181, + 0.014453, + 0.101587, + 0.047455, + 0.027631, + 0.070428, + 0.047455, + 0.033965, + 0.014453, + 0.027631, + 0.008199, + 0.017181, + 0.070428, + 0.008199, + 0.014453, + 0.017181, + 0.070428, + 0.027631, + 0.008199, + 0.204339, + 0.217670, + 0.123770, + 0.116219, + 0.116219, + 0.123770, + 0.064812, + 0.067482, + 0.341423, + 0.222012, + 0.131980, + 0.371812, + 0.371812, + 0.131980, + 0.078366, + 0.167670, + 0.222012, + 0.204339, + 0.116219, + 0.131980, + 0.131980, + 0.116219, + 0.067482, + 0.078366, + 0.217670, + 0.341423, + 0.371812, + 0.123770, + 0.371812, + 0.167670, + 0.122698, + 0.132035, + 0.078042, + 0.132035, + 0.122698, + 0.065986, + 0.167670, + 0.064812, + 0.065986, + 0.122698, + 0.064812, + 0.123770, + 0.078042, + 0.065986, + 0.123770, + 0.371812, + 0.132035, + 0.078042; + 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,-1.000000, 0.000000, 1.000000;; + } // End of Armature_Bone_001 skin weights + SkinWeights { + "Armature_Bone"; + 136; + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135; + 0.945211, + 0.955333, + 0.972772, + 0.965432, + 0.441407, + 0.557541, + 0.520087, + 0.387790, + 0.945211, + 0.424328, + 0.470645, + 0.955333, + 0.955333, + 0.470645, + 0.557541, + 0.972772, + 0.972772, + 0.557541, + 0.441407, + 0.965432, + 0.424328, + 0.945211, + 0.965432, + 0.441407, + 0.133775, + 0.243816, + 0.149205, + 0.083512, + 0.470645, + 0.424328, + 0.371115, + 0.418447, + 0.424328, + 0.441407, + 0.387790, + 0.371115, + 0.557541, + 0.470645, + 0.418447, + 0.520087, + 0.149205, + 0.102630, + 0.077530, + 0.107912, + 0.165882, + 0.124352, + 0.077496, + 0.102630, + 0.124352, + 0.133775, + 0.083512, + 0.077496, + 0.243816, + 0.165882, + 0.102630, + 0.149205, + 0.060886, + 0.066205, + 0.013250, + 0.011723, + 0.083512, + 0.149205, + 0.107912, + 0.066205, + 0.102630, + 0.077496, + 0.060886, + 0.077530, + 0.077496, + 0.083512, + 0.066205, + 0.060886, + 0.011723, + 0.013250, + 0.048094, + 0.022321, + 0.107912, + 0.077530, + 0.022321, + 0.048094, + 0.066205, + 0.107912, + 0.048094, + 0.013250, + 0.077530, + 0.060886, + 0.011723, + 0.022321, + 0.387790, + 0.520087, + 0.494225, + 0.226848, + 0.226848, + 0.494225, + 0.243816, + 0.133775, + 0.418447, + 0.371115, + 0.212428, + 0.276984, + 0.276984, + 0.212428, + 0.124352, + 0.165882, + 0.371115, + 0.387790, + 0.226848, + 0.212428, + 0.212428, + 0.226848, + 0.133775, + 0.124352, + 0.520087, + 0.418447, + 0.276984, + 0.494225, + 0.276984, + 0.165882, + 0.382664, + 0.483353, + 0.390460, + 0.483353, + 0.382664, + 0.298215, + 0.165882, + 0.243816, + 0.298215, + 0.382664, + 0.243816, + 0.494225, + 0.390460, + 0.298215, + 0.494225, + 0.276984, + 0.483353, + 0.390460; + 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, 1.000000, 0.000000, 1.000000;; + } // End of Armature_Bone skin weights + SkinWeights { + "Armature_Bone_004"; + 172; + 4, + 5, + 6, + 7, + 9, + 10, + 13, + 14, + 17, + 18, + 20, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 263; + 0.047982, + 0.075546, + 0.082326, + 0.053045, + 0.055496, + 0.112532, + 0.112532, + 0.075546, + 0.075546, + 0.047982, + 0.055496, + 0.047982, + 0.122575, + 0.186448, + 0.245593, + 0.210507, + 0.112532, + 0.055496, + 0.059905, + 0.123986, + 0.055496, + 0.047982, + 0.053045, + 0.059905, + 0.075546, + 0.112532, + 0.123986, + 0.082326, + 0.245593, + 0.393551, + 0.394730, + 0.303906, + 0.427903, + 0.130157, + 0.210403, + 0.393551, + 0.130157, + 0.122575, + 0.210507, + 0.210403, + 0.186448, + 0.427903, + 0.393551, + 0.245593, + 0.280416, + 0.279610, + 0.692449, + 0.678135, + 0.210507, + 0.245593, + 0.303906, + 0.279610, + 0.393551, + 0.210403, + 0.280416, + 0.394730, + 0.210403, + 0.210507, + 0.279610, + 0.280416, + 0.678135, + 0.692449, + 0.672937, + 0.755223, + 0.303906, + 0.394730, + 0.755223, + 0.672937, + 0.279610, + 0.303906, + 0.672937, + 0.692449, + 0.394730, + 0.280416, + 0.678135, + 0.755223, + 0.053045, + 0.082326, + 0.125519, + 0.075862, + 0.075862, + 0.125519, + 0.186448, + 0.122575, + 0.123986, + 0.059905, + 0.083109, + 0.210006, + 0.210006, + 0.083109, + 0.130157, + 0.427903, + 0.059905, + 0.053045, + 0.075862, + 0.083109, + 0.083109, + 0.075862, + 0.122575, + 0.130157, + 0.082326, + 0.123986, + 0.210006, + 0.125519, + 0.210006, + 0.427903, + 0.359212, + 0.273279, + 0.346964, + 0.273279, + 0.359212, + 0.442846, + 0.427903, + 0.186448, + 0.442846, + 0.359212, + 0.186448, + 0.125519, + 0.346964, + 0.442846, + 0.125519, + 0.210006, + 0.273279, + 0.346964, + 0.771594, + 0.764459, + 0.773438, + 0.773890, + 0.764459, + 0.781066, + 0.779591, + 0.773438, + 0.781066, + 0.776433, + 0.776638, + 0.779591, + 0.776433, + 0.771594, + 0.773890, + 0.776638, + 0.773890, + 0.773438, + 0.779591, + 0.776638, + 0.776433, + 0.781066, + 0.764459, + 0.771594, + 0.532908, + 0.525944, + 0.550797, + 0.540369, + 0.525944, + 0.526921, + 0.539430, + 0.550797, + 0.526921, + 0.532411, + 0.537403, + 0.539430, + 0.532411, + 0.532908, + 0.540369, + 0.537403, + 0.540369, + 0.550797, + 0.539430, + 0.537403, + 0.532411, + 0.526921, + 0.525944, + 0.532908; + 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,-2.000000, 0.000000, 1.000000;; + } // End of Armature_Bone_004 skin weights + } // End of Cube mesh + } // End of Cube + } // End of Armature +} // End of Root +AnimationSet Global { + Animation { + {Armature} + AnimationKey { // Rotation + 0; + 31; + 0;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 1;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 2;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 3;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 4;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 5;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 6;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 7;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 8;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 9;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 10;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 11;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 12;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 13;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 14;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 15;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 16;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 17;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 18;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 19;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 20;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 21;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 22;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 23;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 24;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 25;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 26;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 27;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 28;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 29;4;-0.000000, 0.000000, 0.000000, 1.000000;;, + 30;4;-0.000000, 0.000000, 0.000000, 1.000000;;; + } + AnimationKey { // Scale + 1; + 31; + 0;3; 5.000000, 5.000000, 5.000000;;, + 1;3; 5.000000, 5.000000, 5.000000;;, + 2;3; 5.000000, 5.000000, 5.000000;;, + 3;3; 5.000000, 5.000000, 5.000000;;, + 4;3; 5.000000, 5.000000, 5.000000;;, + 5;3; 5.000000, 5.000000, 5.000000;;, + 6;3; 5.000000, 5.000000, 5.000000;;, + 7;3; 5.000000, 5.000000, 5.000000;;, + 8;3; 5.000000, 5.000000, 5.000000;;, + 9;3; 5.000000, 5.000000, 5.000000;;, + 10;3; 5.000000, 5.000000, 5.000000;;, + 11;3; 5.000000, 5.000000, 5.000000;;, + 12;3; 5.000000, 5.000000, 5.000000;;, + 13;3; 5.000000, 5.000000, 5.000000;;, + 14;3; 5.000000, 5.000000, 5.000000;;, + 15;3; 5.000000, 5.000000, 5.000000;;, + 16;3; 5.000000, 5.000000, 5.000000;;, + 17;3; 5.000000, 5.000000, 5.000000;;, + 18;3; 5.000000, 5.000000, 5.000000;;, + 19;3; 5.000000, 5.000000, 5.000000;;, + 20;3; 5.000000, 5.000000, 5.000000;;, + 21;3; 5.000000, 5.000000, 5.000000;;, + 22;3; 5.000000, 5.000000, 5.000000;;, + 23;3; 5.000000, 5.000000, 5.000000;;, + 24;3; 5.000000, 5.000000, 5.000000;;, + 25;3; 5.000000, 5.000000, 5.000000;;, + 26;3; 5.000000, 5.000000, 5.000000;;, + 27;3; 5.000000, 5.000000, 5.000000;;, + 28;3; 5.000000, 5.000000, 5.000000;;, + 29;3; 5.000000, 5.000000, 5.000000;;, + 30;3; 5.000000, 5.000000, 5.000000;;; + } + AnimationKey { // Position + 2; + 31; + 0;3; 0.000000, 0.000000,-5.000000;;, + 1;3; 0.000000, 0.000000,-5.000000;;, + 2;3; 0.000000, 0.000000,-5.000000;;, + 3;3; 0.000000, 0.000000,-5.000000;;, + 4;3; 0.000000, 0.000000,-5.000000;;, + 5;3; 0.000000, 0.000000,-5.000000;;, + 6;3; 0.000000, 0.000000,-5.000000;;, + 7;3; 0.000000, 0.000000,-5.000000;;, + 8;3; 0.000000, 0.000000,-5.000000;;, + 9;3; 0.000000, 0.000000,-5.000000;;, + 10;3; 0.000000, 0.000000,-5.000000;;, + 11;3; 0.000000, 0.000000,-5.000000;;, + 12;3; 0.000000, 0.000000,-5.000000;;, + 13;3; 0.000000, 0.000000,-5.000000;;, + 14;3; 0.000000, 0.000000,-5.000000;;, + 15;3; 0.000000, 0.000000,-5.000000;;, + 16;3; 0.000000, 0.000000,-5.000000;;, + 17;3; 0.000000, 0.000000,-5.000000;;, + 18;3; 0.000000, 0.000000,-5.000000;;, + 19;3; 0.000000, 0.000000,-5.000000;;, + 20;3; 0.000000, 0.000000,-5.000000;;, + 21;3; 0.000000, 0.000000,-5.000000;;, + 22;3; 0.000000, 0.000000,-5.000000;;, + 23;3; 0.000000, 0.000000,-5.000000;;, + 24;3; 0.000000, 0.000000,-5.000000;;, + 25;3; 0.000000, 0.000000,-5.000000;;, + 26;3; 0.000000, 0.000000,-5.000000;;, + 27;3; 0.000000, 0.000000,-5.000000;;, + 28;3; 0.000000, 0.000000,-5.000000;;, + 29;3; 0.000000, 0.000000,-5.000000;;, + 30;3; 0.000000, 0.000000,-5.000000;;; + } + } + Animation { + {Armature_Bone} + AnimationKey { // Rotation + 0; + 31; + 0;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 1;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 2;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 3;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 4;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 5;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 6;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 7;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 8;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 9;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 10;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 11;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 12;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 13;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 14;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 15;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 16;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 17;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 18;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 19;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 20;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 21;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 22;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 23;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 24;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 25;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 26;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 27;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 28;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 29;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 30;4;-0.707107, 0.707107, 0.000000, 0.000000;;; + } + AnimationKey { // Scale + 1; + 31; + 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;;; + } + AnimationKey { // Position + 2; + 31; + 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;;; + } + } + Animation { + {Armature_Bone_001} + AnimationKey { // Rotation + 0; + 31; + 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;-0.998539, 0.054035, 0.000000,-0.000000;;, + 21;4;-0.996147, 0.053932, 0.002355, 0.043499;;, + 22;4;-0.998539, 0.054035, 0.000000, 0.000000;;, + 23;4;-0.997589, 0.053983,-0.002357,-0.043556;;, + 24;4;-0.998539, 0.054035, 0.000000, 0.000000;;, + 25;4;-0.996639, 0.053932, 0.003045, 0.056265;;, + 26;4;-0.994740, 0.053829, 0.004709, 0.087028;;, + 27;4;-0.996147, 0.053932, 0.002355, 0.043519;;, + 28;4;-0.998539, 0.054035, 0.000000, 0.000000;;, + 29;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 30;4;-1.000000, 0.000000, 0.000000, 0.000000;;; + } + AnimationKey { // Scale + 1; + 31; + 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;;; + } + AnimationKey { // Position + 2; + 31; + 0;3; 0.000000, 2.000000, 0.000000;;, + 1;3; 0.000000, 2.000000, 0.000000;;, + 2;3; 0.000000, 2.000000, 0.000000;;, + 3;3; 0.000000, 2.000000, 0.000000;;, + 4;3; 0.000000, 2.000000, 0.000000;;, + 5;3; 0.000000, 2.000000, 0.000000;;, + 6;3; 0.000000, 2.000000, 0.000000;;, + 7;3; 0.000000, 2.000000, 0.000000;;, + 8;3; 0.000000, 2.000000, 0.000000;;, + 9;3; 0.000000, 2.000000, 0.000000;;, + 10;3; 0.000000, 2.000000, 0.000000;;, + 11;3; 0.000000, 2.000000, 0.000000;;, + 12;3; 0.000000, 2.000000, 0.000000;;, + 13;3; 0.000000, 2.000000, 0.000000;;, + 14;3; 0.000000, 2.000000, 0.000000;;, + 15;3; 0.000000, 2.000000, 0.000000;;, + 16;3; 0.000000, 2.000000, 0.000000;;, + 17;3; 0.000000, 2.000000, 0.000000;;, + 18;3; 0.000000, 2.000000, 0.000000;;, + 19;3; 0.000000, 2.000000, 0.000000;;, + 20;3; 0.000000, 2.000000, 0.000000;;, + 21;3; 0.000000, 2.000000, 0.000000;;, + 22;3; 0.000000, 2.000000, 0.000000;;, + 23;3; 0.000000, 2.000000, 0.000000;;, + 24;3; 0.000000, 2.000000, 0.000000;;, + 25;3; 0.000000, 2.000000, 0.000000;;, + 26;3; 0.000000, 2.000000, 0.000000;;, + 27;3; 0.000000, 2.000000, 0.000000;;, + 28;3; 0.000000, 2.000000, 0.000000;;, + 29;3; 0.000000, 2.000000, 0.000000;;, + 30;3; 0.000000, 2.000000, 0.000000;;; + } + } + Animation { + {Armature_Bone_002} + AnimationKey { // Rotation + 0; + 31; + 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;;; + } + AnimationKey { // Scale + 1; + 31; + 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;;; + } + AnimationKey { // Position + 2; + 31; + 0;3; 0.000000, 0.300000, 0.000000;;, + 1;3; 0.000000, 0.300000, 0.000000;;, + 2;3; 0.000000, 0.300000, 0.000000;;, + 3;3; 0.000000, 0.300000, 0.000000;;, + 4;3; 0.000000, 0.300000, 0.000000;;, + 5;3; 0.000000, 0.300000, 0.000000;;, + 6;3; 0.000000, 0.300000, 0.000000;;, + 7;3; 0.000000, 0.300000, 0.000000;;, + 8;3; 0.000000, 0.300000, 0.000000;;, + 9;3; 0.000000, 0.300000, 0.000000;;, + 10;3; 0.000000, 0.300000, 0.000000;;, + 11;3; 0.000000, 0.300000, 0.000000;;, + 12;3; 0.000000, 0.300000, 0.000000;;, + 13;3; 0.000000, 0.300000, 0.000000;;, + 14;3; 0.000000, 0.300000, 0.000000;;, + 15;3; 0.000000, 0.300000, 0.000000;;, + 16;3; 0.000000, 0.300000, 0.000000;;, + 17;3; 0.000000, 0.300000, 0.000000;;, + 18;3; 0.000000, 0.300000, 0.000000;;, + 19;3; 0.000000, 0.300000, 0.000000;;, + 20;3; 0.000000, 0.300000, 0.000000;;, + 21;3;-0.000000, 0.300000,-0.000000;;, + 22;3;-0.000000, 0.300000, 0.000000;;, + 23;3;-0.000000, 0.300000, 0.000000;;, + 24;3;-0.000000, 0.300000, 0.000000;;, + 25;3;-0.000000, 0.300000,-0.000000;;, + 26;3;-0.000000, 0.300000, 0.000000;;, + 27;3;-0.000000, 0.300000,-0.000000;;, + 28;3; 0.000000, 0.300000, 0.000000;;, + 29;3; 0.000000, 0.300000, 0.000000;;, + 30;3; 0.000000, 0.300000, 0.000000;;; + } + } + Animation { + {Armature_Bone_003} + AnimationKey { // Rotation + 0; + 31; + 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;-0.998097,-0.000000, 0.000000,-0.043583;;, + 12;4;-0.996195,-0.000000, 0.000000,-0.087156;;, + 13;4;-0.998097,-0.000000, 0.000000,-0.056342;;, + 14;4;-1.000000,-0.000000,-0.000000, 0.000000;;, + 15;4;-0.998097,-0.000000,-0.000000, 0.056342;;, + 16;4;-0.996195,-0.000000,-0.000000, 0.087156;;, + 17;4;-0.998097,-0.000000,-0.000000, 0.043583;;, + 18;4;-1.000000,-0.000000, 0.000000, 0.000000;;, + 19;4;-1.000000,-0.000000, 0.000000, 0.000000;;, + 20;4;-0.996195, 0.087156, 0.000000, 0.000000;;, + 21;4;-0.996434, 0.081668, 0.000000, 0.000000;;, + 22;4;-0.996936, 0.070172, 0.000000, 0.000000;;, + 23;4;-0.997535, 0.056459, 0.000000, 0.000000;;, + 24;4;-0.998149, 0.042383, 0.000000, 0.000000;;, + 25;4;-0.998729, 0.029106, 0.000000, 0.000000;;, + 26;4;-0.999236, 0.017493, 0.000000, 0.000000;;, + 27;4;-0.999638, 0.008289, 0.000000, 0.000000;;, + 28;4;-0.999904, 0.002208, 0.000000, 0.000000;;, + 29;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 30;4;-1.000000, 0.000000, 0.000000, 0.000000;;; + } + AnimationKey { // Scale + 1; + 31; + 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;;; + } + AnimationKey { // Position + 2; + 31; + 0;3; 0.000000, 0.300000, 0.000000;;, + 1;3; 0.000000, 0.300000, 0.000000;;, + 2;3; 0.000000, 0.300000, 0.000000;;, + 3;3; 0.000000, 0.300000, 0.000000;;, + 4;3; 0.000000, 0.300000, 0.000000;;, + 5;3; 0.000000, 0.300000, 0.000000;;, + 6;3; 0.000000, 0.300000, 0.000000;;, + 7;3; 0.000000, 0.300000, 0.000000;;, + 8;3; 0.000000, 0.300000, 0.000000;;, + 9;3; 0.000000, 0.300000, 0.000000;;, + 10;3; 0.000000, 0.300000, 0.000000;;, + 11;3; 0.000000, 0.300000, 0.000000;;, + 12;3; 0.000000, 0.300000, 0.000000;;, + 13;3; 0.000000, 0.300000, 0.000000;;, + 14;3; 0.000000, 0.300000, 0.000000;;, + 15;3; 0.000000, 0.300000, 0.000000;;, + 16;3; 0.000000, 0.300000, 0.000000;;, + 17;3; 0.000000, 0.300000, 0.000000;;, + 18;3; 0.000000, 0.300000, 0.000000;;, + 19;3; 0.000000, 0.300000, 0.000000;;, + 20;3; 0.000000, 0.300000, 0.000000;;, + 21;3;-0.000000, 0.300000,-0.000000;;, + 22;3;-0.000000, 0.300000,-0.000000;;, + 23;3; 0.000000, 0.300000, 0.000000;;, + 24;3;-0.000000, 0.300000,-0.000000;;, + 25;3; 0.000000, 0.300000,-0.000000;;, + 26;3;-0.000000, 0.300000,-0.000000;;, + 27;3;-0.000000, 0.300000,-0.000000;;, + 28;3;-0.000000, 0.300000, 0.000000;;, + 29;3; 0.000000, 0.300000, 0.000000;;, + 30;3; 0.000000, 0.300000, 0.000000;;; + } + } + Animation { + {Armature_Bone_004} + AnimationKey { // Rotation + 0; + 31; + 0;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 1;4;-0.999524, 0.021812, 0.000000,-0.000000;;, + 2;4;-0.999048, 0.043619, 0.000000,-0.000000;;, + 3;4;-0.999524, 0.028196, 0.000000,-0.000000;;, + 4;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 5;4;-0.999524,-0.028196,-0.000000, 0.000000;;, + 6;4;-0.999048,-0.043619,-0.000000, 0.000000;;, + 7;4;-0.999524,-0.021810,-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;;; + } + AnimationKey { // Scale + 1; + 31; + 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;;; + } + AnimationKey { // Position + 2; + 31; + 0;3; 0.000000, 0.400000, 0.000000;;, + 1;3; 0.000000, 0.400000, 0.000000;;, + 2;3; 0.000000, 0.400000, 0.000000;;, + 3;3; 0.000000, 0.400000, 0.000000;;, + 4;3; 0.000000, 0.400000, 0.000000;;, + 5;3; 0.000000, 0.400000, 0.000000;;, + 6;3; 0.000000, 0.400000, 0.000000;;, + 7;3; 0.000000, 0.400000, 0.000000;;, + 8;3; 0.000000, 0.400000, 0.000000;;, + 9;3; 0.000000, 0.400000, 0.000000;;, + 10;3; 0.000000, 0.400000, 0.000000;;, + 11;3; 0.000000, 0.400000,-0.000000;;, + 12;3;-0.000000, 0.400000, 0.000000;;, + 13;3; 0.000000, 0.400000, 0.000000;;, + 14;3;-0.000000, 0.400000, 0.000000;;, + 15;3;-0.000000, 0.400000, 0.000000;;, + 16;3; 0.000000, 0.400000, 0.000000;;, + 17;3;-0.000000, 0.400000,-0.000000;;, + 18;3;-0.000000, 0.400000,-0.000000;;, + 19;3;-0.000000, 0.400000,-0.000000;;, + 20;3; 0.000000, 0.400000,-0.000000;;, + 21;3; 0.000000, 0.400000, 0.000000;;, + 22;3;-0.000000, 0.400000,-0.000000;;, + 23;3;-0.000000, 0.400000,-0.000000;;, + 24;3;-0.000000, 0.400000,-0.000000;;, + 25;3; 0.000000, 0.400000, 0.000000;;, + 26;3;-0.000000, 0.400000, 0.000000;;, + 27;3;-0.000000, 0.400000, 0.000000;;, + 28;3; 0.000000, 0.400000, 0.000000;;, + 29;3; 0.000000, 0.400000, 0.000000;;, + 30;3; 0.000000, 0.400000, 0.000000;;; + } + } + Animation { + {Cube} + AnimationKey { // Rotation + 0; + 31; + 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;;; + } + AnimationKey { // Scale + 1; + 31; + 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;;; + } + AnimationKey { // Position + 2; + 31; + 0;3; 0.000000, 0.000000, 1.000000;;, + 1;3; 0.000000, 0.000000, 1.000000;;, + 2;3; 0.000000, 0.000000, 1.000000;;, + 3;3; 0.000000, 0.000000, 1.000000;;, + 4;3; 0.000000, 0.000000, 1.000000;;, + 5;3; 0.000000, 0.000000, 1.000000;;, + 6;3; 0.000000, 0.000000, 1.000000;;, + 7;3; 0.000000, 0.000000, 1.000000;;, + 8;3; 0.000000, 0.000000, 1.000000;;, + 9;3; 0.000000, 0.000000, 1.000000;;, + 10;3; 0.000000, 0.000000, 1.000000;;, + 11;3; 0.000000, 0.000000, 1.000000;;, + 12;3; 0.000000, 0.000000, 1.000000;;, + 13;3; 0.000000, 0.000000, 1.000000;;, + 14;3; 0.000000, 0.000000, 1.000000;;, + 15;3; 0.000000, 0.000000, 1.000000;;, + 16;3; 0.000000, 0.000000, 1.000000;;, + 17;3; 0.000000, 0.000000, 1.000000;;, + 18;3; 0.000000, 0.000000, 1.000000;;, + 19;3; 0.000000, 0.000000, 1.000000;;, + 20;3; 0.000000, 0.000000, 1.000000;;, + 21;3; 0.000000, 0.000000, 1.000000;;, + 22;3; 0.000000, 0.000000, 1.000000;;, + 23;3; 0.000000, 0.000000, 1.000000;;, + 24;3; 0.000000, 0.000000, 1.000000;;, + 25;3; 0.000000, 0.000000, 1.000000;;, + 26;3; 0.000000, 0.000000, 1.000000;;, + 27;3; 0.000000, 0.000000, 1.000000;;, + 28;3; 0.000000, 0.000000, 1.000000;;, + 29;3; 0.000000, 0.000000, 1.000000;;, + 30;3; 0.000000, 0.000000, 1.000000;;; + } + } +} // End of AnimationSet Global diff --git a/mods/mobs/models/zmobs_mese_monster.png b/mods/mobs/models/zmobs_mese_monster.png new file mode 100644 index 00000000..55f662a7 Binary files /dev/null and b/mods/mobs/models/zmobs_mese_monster.png differ diff --git a/mods/mobs/models/zmobs_mese_monster.x b/mods/mobs/models/zmobs_mese_monster.x new file mode 100644 index 00000000..78734c20 --- /dev/null +++ b/mods/mobs/models/zmobs_mese_monster.x @@ -0,0 +1,2999 @@ +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 { + -5.000000,-0.000001, 0.000000, 0.000000, + 0.000001,-5.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 5.000000, 0.000000, + 0.000000, 0.000000, 0.000000, 1.000000;; + } + Frame Armature_head { + 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,-1.000000, 1.000000;; + } + Frame Armature_wing_1 { + FrameTransformMatrix { + 0.346593, 0.643673,-0.682319, 0.000000, + 0.880471,-0.474100,-0.000000, 0.000000, + -0.323487,-0.600762,-0.731055, 0.000000, + 1.000000, 1.625000,-0.000000, 1.000000;; + } + } // End of Armature_wing_1 + Frame Armature_wing_2 { + FrameTransformMatrix { + 0.421701,-0.783159, 0.456980, 0.000000, + -0.880471,-0.474100,-0.000000, 0.000000, + 0.216654,-0.402357,-0.889477, 0.000000, + -1.000000, 1.625000, 0.000000, 1.000000;; + } + } // End of Armature_wing_2 + } // End of Armature_head + Frame Cube { + 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 { // Cube mesh + 384; + 1.000000; 0.000000; 0.125000;, + 1.125000; 0.000000; 0.125000;, + 1.125000; 0.000000;-0.125000;, + 1.375000; 0.000000;-0.125000;, + 1.375000; 0.000000;-0.250000;, + 1.500000; 0.000000;-0.250000;, + 1.500000; 0.000000;-0.375000;, + 1.625000; 0.000000;-0.375000;, + 1.625000; 0.000000;-0.500000;, + 2.000000; 0.000000;-0.500000;, + 2.000000; 0.000000;-0.625000;, + 2.250000; 0.000000;-0.625000;, + 2.250000; 0.000000;-0.750000;, + 2.375000; 0.000000;-0.750000;, + 2.375000; 0.000000;-0.875000;, + 2.750000; 0.000000;-0.875000;, + 2.750000; 0.000000;-0.625000;, + 2.625000; 0.000000;-0.625000;, + 2.625000; 0.000000; 0.250000;, + 2.500000; 0.000000; 0.250000;, + 2.500000; 0.000000; 0.500000;, + 2.375000; 0.000000; 0.500000;, + 2.375000; 0.000000; 0.625000;, + 2.125000; 0.000000; 0.625000;, + 2.125000; 0.000000; 0.750000;, + 2.000000; 0.000000; 0.750000;, + 2.000000; 0.000000; 0.875000;, + 1.875000; 0.000000; 0.875000;, + 1.875000; 0.000000; 1.000000;, + 1.000000; 0.000000; 1.000000;, + 1.000000; 0.125000; 0.125000;, + 1.000000; 0.125000; 1.000000;, + 1.875000; 0.125000; 1.000000;, + 1.875000; 0.125000; 0.875000;, + 2.000000; 0.125000; 0.875000;, + 2.000000; 0.125000; 0.750000;, + 2.125000; 0.125000; 0.750000;, + 2.125000; 0.125000; 0.625000;, + 2.375000; 0.125000; 0.625000;, + 2.375000; 0.125000; 0.500000;, + 2.500000; 0.125000; 0.500000;, + 2.500000; 0.125000; 0.250000;, + 2.625000; 0.125000; 0.250000;, + 2.625000; 0.125000;-0.625000;, + 2.750000; 0.125000;-0.625000;, + 2.750000; 0.125000;-0.875000;, + 2.375000; 0.125000;-0.875000;, + 2.375000; 0.125000;-0.750000;, + 2.250000; 0.125000;-0.750000;, + 2.250000; 0.125000;-0.625000;, + 2.000000; 0.125000;-0.625000;, + 2.000000; 0.125000;-0.500000;, + 1.625000; 0.125000;-0.500000;, + 1.625000; 0.125000;-0.375000;, + 1.500000; 0.125000;-0.375000;, + 1.500000; 0.125000;-0.250000;, + 1.375000; 0.125000;-0.250000;, + 1.375000; 0.125000;-0.125000;, + 1.125000; 0.125000;-0.125000;, + 1.125000; 0.125000; 0.125000;, + 1.875000; 0.000000; 0.875000;, + 2.000000; 0.000000; 0.875000;, + 2.000000; 0.125000; 0.875000;, + 1.875000; 0.125000; 0.875000;, + 1.125000; 0.000000; 0.125000;, + 1.000000; 0.000000; 0.125000;, + 1.000000; 0.125000; 0.125000;, + 1.125000; 0.125000; 0.125000;, + 1.500000; 0.000000;-0.375000;, + 1.500000; 0.000000;-0.250000;, + 1.500000; 0.125000;-0.250000;, + 1.500000; 0.125000;-0.375000;, + 2.250000; 0.000000;-0.625000;, + 2.000000; 0.000000;-0.625000;, + 2.000000; 0.125000;-0.625000;, + 2.250000; 0.125000;-0.625000;, + 2.750000; 0.000000;-0.625000;, + 2.750000; 0.000000;-0.875000;, + 2.750000; 0.125000;-0.875000;, + 2.750000; 0.125000;-0.625000;, + 2.375000; 0.000000; 0.500000;, + 2.500000; 0.000000; 0.500000;, + 2.500000; 0.125000; 0.500000;, + 2.375000; 0.125000; 0.500000;, + 2.000000; 0.000000; 0.875000;, + 2.000000; 0.000000; 0.750000;, + 2.000000; 0.125000; 0.750000;, + 2.000000; 0.125000; 0.875000;, + 1.000000; 0.000000; 0.125000;, + 1.000000; 0.000000; 1.000000;, + 1.000000; 0.125000; 1.000000;, + 1.000000; 0.125000; 0.125000;, + 1.500000; 0.000000;-0.250000;, + 1.375000; 0.000000;-0.250000;, + 1.375000; 0.125000;-0.250000;, + 1.500000; 0.125000;-0.250000;, + 2.000000; 0.000000;-0.625000;, + 2.000000; 0.000000;-0.500000;, + 2.000000; 0.125000;-0.500000;, + 2.000000; 0.125000;-0.625000;, + 2.750000; 0.000000;-0.875000;, + 2.375000; 0.000000;-0.875000;, + 2.375000; 0.125000;-0.875000;, + 2.750000; 0.125000;-0.875000;, + 2.500000; 0.000000; 0.500000;, + 2.500000; 0.000000; 0.250000;, + 2.500000; 0.125000; 0.250000;, + 2.500000; 0.125000; 0.500000;, + 2.000000; 0.000000; 0.750000;, + 2.125000; 0.000000; 0.750000;, + 2.125000; 0.125000; 0.750000;, + 2.000000; 0.125000; 0.750000;, + 1.375000; 0.000000;-0.250000;, + 1.375000; 0.000000;-0.125000;, + 1.375000; 0.125000;-0.125000;, + 1.375000; 0.125000;-0.250000;, + 2.000000; 0.000000;-0.500000;, + 1.625000; 0.000000;-0.500000;, + 1.625000; 0.125000;-0.500000;, + 2.000000; 0.125000;-0.500000;, + 2.375000; 0.000000;-0.875000;, + 2.375000; 0.000000;-0.750000;, + 2.375000; 0.125000;-0.750000;, + 2.375000; 0.125000;-0.875000;, + 2.500000; 0.000000; 0.250000;, + 2.625000; 0.000000; 0.250000;, + 2.625000; 0.125000; 0.250000;, + 2.500000; 0.125000; 0.250000;, + 2.125000; 0.000000; 0.750000;, + 2.125000; 0.000000; 0.625000;, + 2.125000; 0.125000; 0.625000;, + 2.125000; 0.125000; 0.750000;, + 1.000000; 0.000000; 1.000000;, + 1.875000; 0.000000; 1.000000;, + 1.875000; 0.125000; 1.000000;, + 1.000000; 0.125000; 1.000000;, + 1.375000; 0.000000;-0.125000;, + 1.125000; 0.000000;-0.125000;, + 1.125000; 0.125000;-0.125000;, + 1.375000; 0.125000;-0.125000;, + 1.625000; 0.000000;-0.500000;, + 1.625000; 0.000000;-0.375000;, + 1.625000; 0.125000;-0.375000;, + 1.625000; 0.125000;-0.500000;, + 2.375000; 0.000000;-0.750000;, + 2.250000; 0.000000;-0.750000;, + 2.250000; 0.125000;-0.750000;, + 2.375000; 0.125000;-0.750000;, + 2.625000; 0.000000; 0.250000;, + 2.625000; 0.000000;-0.625000;, + 2.625000; 0.125000;-0.625000;, + 2.625000; 0.125000; 0.250000;, + 2.125000; 0.000000; 0.625000;, + 2.375000; 0.000000; 0.625000;, + 2.375000; 0.125000; 0.625000;, + 2.125000; 0.125000; 0.625000;, + 1.875000; 0.000000; 1.000000;, + 1.875000; 0.000000; 0.875000;, + 1.875000; 0.125000; 0.875000;, + 1.875000; 0.125000; 1.000000;, + 1.125000; 0.000000;-0.125000;, + 1.125000; 0.000000; 0.125000;, + 1.125000; 0.125000; 0.125000;, + 1.125000; 0.125000;-0.125000;, + 1.625000; 0.000000;-0.375000;, + 1.500000; 0.000000;-0.375000;, + 1.500000; 0.125000;-0.375000;, + 1.625000; 0.125000;-0.375000;, + 2.250000; 0.000000;-0.750000;, + 2.250000; 0.000000;-0.625000;, + 2.250000; 0.125000;-0.625000;, + 2.250000; 0.125000;-0.750000;, + 2.625000; 0.000000;-0.625000;, + 2.750000; 0.000000;-0.625000;, + 2.750000; 0.125000;-0.625000;, + 2.625000; 0.125000;-0.625000;, + 2.375000; 0.000000; 0.625000;, + 2.375000; 0.000000; 0.500000;, + 2.375000; 0.125000; 0.500000;, + 2.375000; 0.125000; 0.625000;, + -1.000000; 0.125000; 0.125000;, + -1.125000; 0.125000; 0.125000;, + -1.125000; 0.125000;-0.125000;, + -1.375000; 0.125000;-0.125000;, + -1.375000; 0.125000;-0.250000;, + -1.500000; 0.125000;-0.250000;, + -1.500000; 0.125000;-0.375000;, + -1.625000; 0.125000;-0.375000;, + -1.625000; 0.125000;-0.500000;, + -2.000000; 0.125000;-0.500000;, + -2.000000; 0.125000;-0.625000;, + -2.250000; 0.125000;-0.625000;, + -2.250000; 0.125000;-0.750000;, + -2.375000; 0.125000;-0.750000;, + -2.375000; 0.125000;-0.875000;, + -2.750000; 0.125000;-0.875000;, + -2.750000; 0.125000;-0.625000;, + -2.625000; 0.125000;-0.625000;, + -2.625000; 0.125000; 0.250000;, + -2.500000; 0.125000; 0.250000;, + -2.500000; 0.125000; 0.500000;, + -2.375000; 0.125000; 0.500000;, + -2.375000; 0.125000; 0.625000;, + -2.125000; 0.125000; 0.625000;, + -2.125000; 0.125000; 0.750000;, + -2.000000; 0.125000; 0.750000;, + -2.000000; 0.125000; 0.875000;, + -1.875000; 0.125000; 0.875000;, + -1.875000; 0.125000; 1.000000;, + -1.000000; 0.125000; 1.000000;, + -1.000000;-0.000000; 0.125000;, + -1.000000;-0.000000; 1.000000;, + -1.875000; 0.000000; 1.000000;, + -1.875000; 0.000000; 0.875000;, + -2.000000; 0.000000; 0.875000;, + -2.000000; 0.000000; 0.750000;, + -2.125000; 0.000000; 0.750000;, + -2.125000; 0.000000; 0.625000;, + -2.375000; 0.000000; 0.625000;, + -2.375000; 0.000000; 0.500000;, + -2.500000; 0.000000; 0.500000;, + -2.500000; 0.000000; 0.250000;, + -2.625000; 0.000000; 0.250000;, + -2.625000; 0.000000;-0.625000;, + -2.750000; 0.000000;-0.625000;, + -2.750000; 0.000000;-0.875000;, + -2.375000; 0.000000;-0.875000;, + -2.375000; 0.000000;-0.750000;, + -2.250000; 0.000000;-0.750000;, + -2.250000; 0.000000;-0.625000;, + -2.000000; 0.000000;-0.625000;, + -2.000000; 0.000000;-0.500000;, + -1.625000;-0.000000;-0.500000;, + -1.625000;-0.000000;-0.375000;, + -1.500000;-0.000000;-0.375000;, + -1.500000;-0.000000;-0.250000;, + -1.375000;-0.000000;-0.250000;, + -1.375000;-0.000000;-0.125000;, + -1.125000;-0.000000;-0.125000;, + -1.125000;-0.000000; 0.125000;, + -1.875000; 0.125000; 0.875000;, + -2.000000; 0.125000; 0.875000;, + -2.000000; 0.000000; 0.875000;, + -1.875000; 0.000000; 0.875000;, + -1.125000; 0.125000; 0.125000;, + -1.000000; 0.125000; 0.125000;, + -1.000000;-0.000000; 0.125000;, + -1.125000;-0.000000; 0.125000;, + -1.500000; 0.125000;-0.375000;, + -1.500000; 0.125000;-0.250000;, + -1.500000;-0.000000;-0.250000;, + -1.500000;-0.000000;-0.375000;, + -2.250000; 0.125000;-0.625000;, + -2.000000; 0.125000;-0.625000;, + -2.000000; 0.000000;-0.625000;, + -2.250000; 0.000000;-0.625000;, + -2.750000; 0.125000;-0.625000;, + -2.750000; 0.125000;-0.875000;, + -2.750000; 0.000000;-0.875000;, + -2.750000; 0.000000;-0.625000;, + -2.375000; 0.125000; 0.500000;, + -2.500000; 0.125000; 0.500000;, + -2.500000; 0.000000; 0.500000;, + -2.375000; 0.000000; 0.500000;, + -2.000000; 0.125000; 0.875000;, + -2.000000; 0.125000; 0.750000;, + -2.000000; 0.000000; 0.750000;, + -2.000000; 0.000000; 0.875000;, + -1.000000; 0.125000; 0.125000;, + -1.000000; 0.125000; 1.000000;, + -1.000000;-0.000000; 1.000000;, + -1.000000;-0.000000; 0.125000;, + -1.500000; 0.125000;-0.250000;, + -1.375000; 0.125000;-0.250000;, + -1.375000;-0.000000;-0.250000;, + -1.500000;-0.000000;-0.250000;, + -2.000000; 0.125000;-0.625000;, + -2.000000; 0.125000;-0.500000;, + -2.000000; 0.000000;-0.500000;, + -2.000000; 0.000000;-0.625000;, + -2.750000; 0.125000;-0.875000;, + -2.375000; 0.125000;-0.875000;, + -2.375000; 0.000000;-0.875000;, + -2.750000; 0.000000;-0.875000;, + -2.500000; 0.125000; 0.500000;, + -2.500000; 0.125000; 0.250000;, + -2.500000; 0.000000; 0.250000;, + -2.500000; 0.000000; 0.500000;, + -2.000000; 0.125000; 0.750000;, + -2.125000; 0.125000; 0.750000;, + -2.125000; 0.000000; 0.750000;, + -2.000000; 0.000000; 0.750000;, + -1.375000; 0.125000;-0.250000;, + -1.375000; 0.125000;-0.125000;, + -1.375000;-0.000000;-0.125000;, + -1.375000;-0.000000;-0.250000;, + -2.000000; 0.125000;-0.500000;, + -1.625000; 0.125000;-0.500000;, + -1.625000;-0.000000;-0.500000;, + -2.000000; 0.000000;-0.500000;, + -2.375000; 0.125000;-0.875000;, + -2.375000; 0.125000;-0.750000;, + -2.375000; 0.000000;-0.750000;, + -2.375000; 0.000000;-0.875000;, + -2.500000; 0.125000; 0.250000;, + -2.625000; 0.125000; 0.250000;, + -2.625000; 0.000000; 0.250000;, + -2.500000; 0.000000; 0.250000;, + -2.125000; 0.125000; 0.750000;, + -2.125000; 0.125000; 0.625000;, + -2.125000; 0.000000; 0.625000;, + -2.125000; 0.000000; 0.750000;, + -1.000000; 0.125000; 1.000000;, + -1.875000; 0.125000; 1.000000;, + -1.875000; 0.000000; 1.000000;, + -1.000000;-0.000000; 1.000000;, + -1.375000; 0.125000;-0.125000;, + -1.125000; 0.125000;-0.125000;, + -1.125000;-0.000000;-0.125000;, + -1.375000;-0.000000;-0.125000;, + -1.625000; 0.125000;-0.500000;, + -1.625000; 0.125000;-0.375000;, + -1.625000;-0.000000;-0.375000;, + -1.625000;-0.000000;-0.500000;, + -2.375000; 0.125000;-0.750000;, + -2.250000; 0.125000;-0.750000;, + -2.250000; 0.000000;-0.750000;, + -2.375000; 0.000000;-0.750000;, + -2.625000; 0.125000; 0.250000;, + -2.625000; 0.125000;-0.625000;, + -2.625000; 0.000000;-0.625000;, + -2.625000; 0.000000; 0.250000;, + -2.125000; 0.125000; 0.625000;, + -2.375000; 0.125000; 0.625000;, + -2.375000; 0.000000; 0.625000;, + -2.125000; 0.000000; 0.625000;, + -1.875000; 0.125000; 1.000000;, + -1.875000; 0.125000; 0.875000;, + -1.875000; 0.000000; 0.875000;, + -1.875000; 0.000000; 1.000000;, + -1.125000; 0.125000;-0.125000;, + -1.125000; 0.125000; 0.125000;, + -1.125000;-0.000000; 0.125000;, + -1.125000;-0.000000;-0.125000;, + -1.625000; 0.125000;-0.375000;, + -1.500000; 0.125000;-0.375000;, + -1.500000;-0.000000;-0.375000;, + -1.625000;-0.000000;-0.375000;, + -2.250000; 0.125000;-0.750000;, + -2.250000; 0.125000;-0.625000;, + -2.250000; 0.000000;-0.625000;, + -2.250000; 0.000000;-0.750000;, + -2.625000; 0.125000;-0.625000;, + -2.750000; 0.125000;-0.625000;, + -2.750000; 0.000000;-0.625000;, + -2.625000; 0.000000;-0.625000;, + -2.375000; 0.125000; 0.625000;, + -2.375000; 0.125000; 0.500000;, + -2.375000; 0.000000; 0.500000;, + -2.375000; 0.000000; 0.625000;, + -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;-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;; + 70; + 30;29;28;27;26;25;24;23;22;21;20;19;18;17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;2;1;0;, + 30;59;58;57;56;55;54;53;52;51;50;49;48;47;46;45;44;43;42;41;40;39;38;37;36;35;34;33;32;31;30;, + 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;, + 30;209;208;207;206;205;204;203;202;201;200;199;198;197;196;195;194;193;192;191;190;189;188;187;186;185;184;183;182;181;180;, + 30;239;238;237;236;235;234;233;232;231;230;229;228;227;226;225;224;223;222;221;220;219;218;217;216;215;214;213;212;211;210;, + 4;243;242;241;240;, + 4;247;246;245;244;, + 4;251;250;249;248;, + 4;255;254;253;252;, + 4;259;258;257;256;, + 4;263;262;261;260;, + 4;267;266;265;264;, + 4;271;270;269;268;, + 4;275;274;273;272;, + 4;279;278;277;276;, + 4;283;282;281;280;, + 4;287;286;285;284;, + 4;291;290;289;288;, + 4;295;294;293;292;, + 4;299;298;297;296;, + 4;303;302;301;300;, + 4;307;306;305;304;, + 4;311;310;309;308;, + 4;315;314;313;312;, + 4;319;318;317;316;, + 4;323;322;321;320;, + 4;327;326;325;324;, + 4;331;330;329;328;, + 4;335;334;333;332;, + 4;339;338;337;336;, + 4;343;342;341;340;, + 4;347;346;345;344;, + 4;351;350;349;348;, + 4;355;354;353;352;, + 4;359;358;357;356;, + 4;363;362;361;360;, + 4;367;366;365;364;, + 4;371;370;369;368;, + 4;375;374;373;372;, + 4;379;378;377;376;, + 4;383;382;381;380;; + MeshNormals { // Cube normals + 70; + 0.000000;-1.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;-0.000000;-1.000000;, + 1.000000; 0.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;, + -1.000000;-0.000000; 0.000000;, + 0.000000;-0.000000;-1.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000;-0.000000; 0.000000;, + 0.000000;-0.000000;-1.000000;, + -1.000000;-0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000;-0.000000;-1.000000;, + -1.000000;-0.000000; 0.000000;, + 0.000000;-0.000000;-1.000000;, + 1.000000; 0.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;, + -1.000000;-0.000000; 0.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;, + 0.000000; 0.000000;-1.000000;, + 1.000000;-0.000000; 0.000000;, + 0.000000; 0.000000;-1.000000;, + -1.000000; 0.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;, + 1.000000;-0.000000; 0.000000;, + 0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000; 0.000000;, + 0.000000;-0.000000; 1.000000;, + 1.000000;-0.000000; 0.000000;, + 0.000000; 0.000000;-1.000000;, + 1.000000;-0.000000; 0.000000;, + 0.000000;-0.000000; 1.000000;, + -1.000000; 0.000000; 0.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000; 0.000000;-1.000000;, + 1.000000;-0.000000; 0.000000;, + 0.000000; 0.000000;-1.000000;, + -1.000000; 0.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;, + 1.000000;-0.000000; 0.000000;, + 0.000000;-0.000000; 1.000000;, + -1.000000; 0.000000; 0.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;; + 70; + 30;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;, + 30;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;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;, + 30;32;32;32;32;32;32;32;32;32;32;32;32;32;32;32;32;32;32;32;32;32;32;32;32;32;32;32;32;32;32;, + 30;33;33;33;33;33;33;33;33;33;33;33;33;33;33;33;33;33;33;33;33;33;33;33;33;33;33;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;, + 4;48;48;48;48;, + 4;49;49;49;49;, + 4;50;50;50;50;, + 4;51;51;51;51;, + 4;52;52;52;52;, + 4;53;53;53;53;, + 4;54;54;54;54;, + 4;55;55;55;55;, + 4;56;56;56;56;, + 4;57;57;57;57;, + 4;58;58;58;58;, + 4;59;59;59;59;, + 4;60;60;60;60;, + 4;61;61;61;61;, + 4;62;62;62;62;, + 4;63;63;63;63;, + 4;64;64;64;64;, + 4;65;65;65;65;, + 4;66;66;66;66;, + 4;67;67;67;67;, + 4;68;68;68;68;, + 4;69;69;69;69;; + } // End of Cube normals + MeshTextureCoords { // Cube UV coordinates + 384; + 0.500018; 0.718750;, + 0.468768; 0.718750;, + 0.468768; 0.781250;, + 0.406268; 0.781250;, + 0.406268; 0.812500;, + 0.375018; 0.812500;, + 0.375018; 0.843750;, + 0.343768; 0.843750;, + 0.343768; 0.875000;, + 0.250018; 0.875000;, + 0.250018; 0.906250;, + 0.187518; 0.906250;, + 0.187518; 0.937500;, + 0.156268; 0.937500;, + 0.156268; 0.968750;, + 0.062518; 0.968750;, + 0.063583; 0.905511;, + 0.093768; 0.906250;, + 0.093768; 0.687500;, + 0.125018; 0.687500;, + 0.125018; 0.625000;, + 0.156268; 0.625000;, + 0.158954; 0.593750;, + 0.218768; 0.593750;, + 0.218768; 0.562500;, + 0.250018; 0.562500;, + 0.250018; 0.531250;, + 0.281268; 0.531250;, + 0.281268; 0.500000;, + 0.500018; 0.500000;, + 0.500018; 0.718750;, + 0.500018; 0.500000;, + 0.281268; 0.500000;, + 0.281268; 0.531250;, + 0.250018; 0.531250;, + 0.250018; 0.562500;, + 0.218768; 0.562500;, + 0.218768; 0.593750;, + 0.158954; 0.593750;, + 0.156268; 0.625000;, + 0.125018; 0.625000;, + 0.125018; 0.687500;, + 0.093768; 0.687500;, + 0.093768; 0.906250;, + 0.063583; 0.905511;, + 0.062518; 0.968750;, + 0.156268; 0.968750;, + 0.156268; 0.937500;, + 0.187518; 0.937500;, + 0.187518; 0.906250;, + 0.250018; 0.906250;, + 0.250018; 0.875000;, + 0.343768; 0.875000;, + 0.343768; 0.843750;, + 0.375018; 0.843750;, + 0.375018; 0.812500;, + 0.406268; 0.812500;, + 0.406268; 0.781250;, + 0.468768; 0.781250;, + 0.468768; 0.718750;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.500018; 0.718750;, + 0.468768; 0.718750;, + 0.468768; 0.781250;, + 0.406268; 0.781250;, + 0.406268; 0.812500;, + 0.375018; 0.812500;, + 0.375018; 0.843750;, + 0.343768; 0.843750;, + 0.343768; 0.875000;, + 0.250018; 0.875000;, + 0.250018; 0.906250;, + 0.187518; 0.906250;, + 0.187518; 0.937500;, + 0.156268; 0.937500;, + 0.156268; 0.968750;, + 0.062518; 0.968750;, + 0.063583; 0.905511;, + 0.093768; 0.906250;, + 0.093768; 0.687500;, + 0.125018; 0.687500;, + 0.125018; 0.625000;, + 0.156268; 0.625000;, + 0.158954; 0.593750;, + 0.218768; 0.593750;, + 0.218768; 0.562500;, + 0.250018; 0.562500;, + 0.250018; 0.531250;, + 0.281268; 0.531250;, + 0.281268; 0.500000;, + 0.500018; 0.500000;, + 0.500018; 0.718750;, + 0.500018; 0.500000;, + 0.281268; 0.500000;, + 0.281268; 0.531250;, + 0.250018; 0.531250;, + 0.250018; 0.562500;, + 0.218768; 0.562500;, + 0.218768; 0.593750;, + 0.158954; 0.593750;, + 0.156268; 0.625000;, + 0.125018; 0.625000;, + 0.125018; 0.687500;, + 0.093768; 0.687500;, + 0.093768; 0.906250;, + 0.063583; 0.905511;, + 0.062518; 0.968750;, + 0.156268; 0.968750;, + 0.156268; 0.937500;, + 0.187518; 0.937500;, + 0.187518; 0.906250;, + 0.250018; 0.906250;, + 0.250018; 0.875000;, + 0.343768; 0.875000;, + 0.343768; 0.843750;, + 0.375018; 0.843750;, + 0.375018; 0.812500;, + 0.406268; 0.812500;, + 0.406268; 0.781250;, + 0.468768; 0.781250;, + 0.468768; 0.718750;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.015643; 0.750000;, + 0.499982; 0.000000;, + 0.000053; 0.000000;, + 0.000053; 0.499929;, + 0.499982; 0.499929;, + 0.499982; 0.000000;, + 0.000053; 0.000000;, + 0.000053; 0.499929;, + 0.499982; 0.499929;, + 0.499982; 0.000000;, + 0.000053; 0.000000;, + 0.000053; 0.499929;, + 0.499982; 0.499929;, + 0.999982; 0.000000;, + 0.500053; 0.000000;, + 0.500053; 0.499929;, + 0.999982; 0.499929;, + 0.000053; 0.000000;, + 0.000053; 0.499929;, + 0.499982; 0.499929;, + 0.499982; 0.000000;, + 0.499982; 0.499929;, + 0.499982; 0.000000;, + 0.000053; 0.000000;, + 0.000053; 0.499929;; + } // End of Cube UV coordinates + MeshMaterialList { // Cube material list + 1; + 70; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 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;; + } + } // End of Cube material list + XSkinMeshHeader { + 1; + 3; + 3; + } + SkinWeights { + "Armature_head"; + 24; + 360, + 361, + 362, + 363, + 364, + 365, + 366, + 367, + 368, + 369, + 370, + 371, + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, + 381, + 382, + 383; + 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, 1.000000, 0.000000, 1.000000;; + } // End of Armature_head skin weights + SkinWeights { + "Armature_wing_2"; + 180; + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 263, + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333, + 334, + 335, + 336, + 337, + 338, + 339, + 340, + 341, + 342, + 343, + 344, + 345, + 346, + 347, + 348, + 349, + 350, + 351, + 352, + 353, + 354, + 355, + 356, + 357, + 358, + 359; + 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, + 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, + 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, + 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.421701,-0.880471, 0.216654, 0.000000, + -0.456980, 0.000000, 0.889477, 0.000000, + -0.783159,-0.474100,-0.402357, 0.000000, + 0.911175,-0.584159, 0.468127, 1.000000;; + } // End of Armature_wing_2 skin weights + SkinWeights { + "Armature_wing_1"; + 180; + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179; + 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, + 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, + 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, + 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.346593, 0.880471,-0.323487, 0.000000, + 0.682319, 0.000000, 0.731055, 0.000000, + 0.643673,-0.474100,-0.600762, 0.000000, + -0.748888,-0.584159, 0.698963, 1.000000;; + } // End of Armature_wing_1 skin weights + } // End of Cube mesh + } // End of Cube + } // End of Armature +} // End of Root +AnimationSet Global { + Animation { + {Armature} + AnimationKey { // Rotation + 0; + 66; + 0;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 1;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 2;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 3;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 4;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 5;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 6;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 7;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 8;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 9;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 10;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 11;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 12;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 13;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 14;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 15;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 16;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 17;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 18;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 19;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 20;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 21;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 22;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 23;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 24;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 25;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 26;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 27;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 28;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 29;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 30;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 31;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 32;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 33;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 34;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 35;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 36;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 37;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 38;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 39;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 40;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 41;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 42;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 43;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 44;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 45;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 46;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 47;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 48;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 49;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 50;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 51;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 52;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 53;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 54;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 55;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 56;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 57;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 58;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 59;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 60;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 61;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 62;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 63;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 64;4;-0.000000, 0.000000,-0.000000,-1.000000;;, + 65;4;-0.000000, 0.000000,-0.000000,-1.000000;;; + } + AnimationKey { // Scale + 1; + 66; + 0;3; 5.000000, 5.000000, 5.000000;;, + 1;3; 5.000000, 5.000000, 5.000000;;, + 2;3; 5.000000, 5.000000, 5.000000;;, + 3;3; 5.000000, 5.000000, 5.000000;;, + 4;3; 5.000000, 5.000000, 5.000000;;, + 5;3; 5.000000, 5.000000, 5.000000;;, + 6;3; 5.000000, 5.000000, 5.000000;;, + 7;3; 5.000000, 5.000000, 5.000000;;, + 8;3; 5.000000, 5.000000, 5.000000;;, + 9;3; 5.000000, 5.000000, 5.000000;;, + 10;3; 5.000000, 5.000000, 5.000000;;, + 11;3; 5.000000, 5.000000, 5.000000;;, + 12;3; 5.000000, 5.000000, 5.000000;;, + 13;3; 5.000000, 5.000000, 5.000000;;, + 14;3; 5.000000, 5.000000, 5.000000;;, + 15;3; 5.000000, 5.000000, 5.000000;;, + 16;3; 5.000000, 5.000000, 5.000000;;, + 17;3; 5.000000, 5.000000, 5.000000;;, + 18;3; 5.000000, 5.000000, 5.000000;;, + 19;3; 5.000000, 5.000000, 5.000000;;, + 20;3; 5.000000, 5.000000, 5.000000;;, + 21;3; 5.000000, 5.000000, 5.000000;;, + 22;3; 5.000000, 5.000000, 5.000000;;, + 23;3; 5.000000, 5.000000, 5.000000;;, + 24;3; 5.000000, 5.000000, 5.000000;;, + 25;3; 5.000000, 5.000000, 5.000000;;, + 26;3; 5.000000, 5.000000, 5.000000;;, + 27;3; 5.000000, 5.000000, 5.000000;;, + 28;3; 5.000000, 5.000000, 5.000000;;, + 29;3; 5.000000, 5.000000, 5.000000;;, + 30;3; 5.000000, 5.000000, 5.000000;;, + 31;3; 5.000000, 5.000000, 5.000000;;, + 32;3; 5.000000, 5.000000, 5.000000;;, + 33;3; 5.000000, 5.000000, 5.000000;;, + 34;3; 5.000000, 5.000000, 5.000000;;, + 35;3; 5.000000, 5.000000, 5.000000;;, + 36;3; 5.000000, 5.000000, 5.000000;;, + 37;3; 5.000000, 5.000000, 5.000000;;, + 38;3; 5.000000, 5.000000, 5.000000;;, + 39;3; 5.000000, 5.000000, 5.000000;;, + 40;3; 5.000000, 5.000000, 5.000000;;, + 41;3; 5.000000, 5.000000, 5.000000;;, + 42;3; 5.000000, 5.000000, 5.000000;;, + 43;3; 5.000000, 5.000000, 5.000000;;, + 44;3; 5.000000, 5.000000, 5.000000;;, + 45;3; 5.000000, 5.000000, 5.000000;;, + 46;3; 5.000000, 5.000000, 5.000000;;, + 47;3; 5.000000, 5.000000, 5.000000;;, + 48;3; 5.000000, 5.000000, 5.000000;;, + 49;3; 5.000000, 5.000000, 5.000000;;, + 50;3; 5.000000, 5.000000, 5.000000;;, + 51;3; 5.000000, 5.000000, 5.000000;;, + 52;3; 5.000000, 5.000000, 5.000000;;, + 53;3; 5.000000, 5.000000, 5.000000;;, + 54;3; 5.000000, 5.000000, 5.000000;;, + 55;3; 5.000000, 5.000000, 5.000000;;, + 56;3; 5.000000, 5.000000, 5.000000;;, + 57;3; 5.000000, 5.000000, 5.000000;;, + 58;3; 5.000000, 5.000000, 5.000000;;, + 59;3; 5.000000, 5.000000, 5.000000;;, + 60;3; 5.000000, 5.000000, 5.000000;;, + 61;3; 5.000000, 5.000000, 5.000000;;, + 62;3; 5.000000, 5.000000, 5.000000;;, + 63;3; 5.000000, 5.000000, 5.000000;;, + 64;3; 5.000000, 5.000000, 5.000000;;, + 65;3; 5.000000, 5.000000, 5.000000;;; + } + AnimationKey { // Position + 2; + 66; + 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;;; + } + } + Animation { + {Armature_head} + AnimationKey { // Rotation + 0; + 66; + 0;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 1;4;-0.704100, 0.710062, 0.000000,-0.000000;;, + 2;4;-0.697665, 0.716385, 0.000000,-0.000000;;, + 3;4;-0.694658, 0.719340, 0.000000,-0.000000;;, + 4;4;-0.695674, 0.718354, 0.000000,-0.000000;;, + 5;4;-0.698775, 0.715331, 0.000000,-0.000000;;, + 6;4;-0.703071, 0.711112, 0.000000,-0.000000;;, + 7;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 8;4;-0.711933, 0.702229,-0.000000, 0.000000;;, + 9;4;-0.717265, 0.696785,-0.000000, 0.000000;;, + 10;4;-0.719340, 0.694658,-0.000000, 0.000000;;, + 11;4;-0.719197, 0.694831,-0.000000, 0.000000;;, + 12;4;-0.717853, 0.696253,-0.000000, 0.000000;;, + 13;4;-0.713883, 0.700301,-0.000000, 0.000000;;, + 14;4;-0.707107, 0.707107, 0.000000, 0.000000;;, + 15;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 16;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 17;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 18;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 19;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 20;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 21;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 22;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 23;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 24;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 25;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 26;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 27;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 28;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 29;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 30;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 31;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 32;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 33;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 34;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 35;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 36;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 37;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 38;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 39;4;-0.642788, 0.766045, 0.000000,-0.000000;;, + 40;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 41;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 42;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 43;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 44;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 45;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 46;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 47;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 48;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 49;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 50;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 51;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 52;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 53;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 54;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 55;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 56;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 57;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 58;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 59;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 60;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 61;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 62;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 63;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 64;4;-0.461749, 0.887011, 0.000000,-0.000000;;, + 65;4;-0.461749, 0.887011, 0.000000,-0.000000;;; + } + AnimationKey { // Scale + 1; + 66; + 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;;; + } + AnimationKey { // Position + 2; + 66; + 0;3; 0.000000, 0.000000,-1.000000;;, + 1;3; 0.000000, 0.000000,-1.000000;;, + 2;3; 0.000000, 0.000000,-1.000000;;, + 3;3; 0.000000, 0.000000,-1.000000;;, + 4;3; 0.000000, 0.000000,-1.000000;;, + 5;3; 0.000000, 0.000000,-1.000000;;, + 6;3; 0.000000, 0.000000,-1.000000;;, + 7;3; 0.000000, 0.000000,-1.000000;;, + 8;3; 0.000000, 0.000000,-1.000000;;, + 9;3; 0.000000, 0.000000,-1.000000;;, + 10;3; 0.000000, 0.000000,-1.000000;;, + 11;3; 0.000000, 0.000000,-1.000000;;, + 12;3; 0.000000, 0.000000,-1.000000;;, + 13;3; 0.000000, 0.000000,-1.000000;;, + 14;3; 0.000000, 0.000000,-1.000000;;, + 15;3; 0.000000, 0.000000,-1.000000;;, + 16;3; 0.000000, 0.000000,-1.000000;;, + 17;3; 0.000000, 0.000000,-1.000000;;, + 18;3; 0.000000, 0.000000,-1.000000;;, + 19;3; 0.000000, 0.000000,-1.000000;;, + 20;3; 0.000000, 0.000000,-1.000000;;, + 21;3; 0.000000, 0.000000,-1.000000;;, + 22;3; 0.000000, 0.000000,-1.000000;;, + 23;3; 0.000000, 0.000000,-1.000000;;, + 24;3; 0.000000, 0.000000,-1.000000;;, + 25;3; 0.000000, 0.000000,-1.000000;;, + 26;3; 0.000000, 0.000000,-1.000000;;, + 27;3; 0.000000, 0.000000,-1.000000;;, + 28;3; 0.000000, 0.000000,-1.000000;;, + 29;3; 0.000000, 0.000000,-1.000000;;, + 30;3; 0.000000, 0.000000,-1.000000;;, + 31;3; 0.000000, 0.000000,-1.000000;;, + 32;3; 0.000000, 0.000000,-1.000000;;, + 33;3; 0.000000, 0.000000,-1.000000;;, + 34;3; 0.000000, 0.000000,-1.000000;;, + 35;3; 0.000000, 0.000000,-1.000000;;, + 36;3; 0.000000, 0.000000,-1.000000;;, + 37;3; 0.000000, 0.000000,-1.000000;;, + 38;3; 0.000000, 0.000000,-1.000000;;, + 39;3; 0.000000, 0.000000,-1.000000;;, + 40;3; 0.000000, 0.000000,-1.000000;;, + 41;3; 0.000000, 0.000000,-1.000000;;, + 42;3; 0.000000, 0.000000,-1.000000;;, + 43;3; 0.000000, 0.000000,-1.000000;;, + 44;3; 0.000000, 0.000000,-1.000000;;, + 45;3; 0.000000, 0.000000,-1.000000;;, + 46;3; 0.000000, 0.000000,-1.000000;;, + 47;3; 0.000000, 0.000000,-1.000000;;, + 48;3; 0.000000, 0.000000,-1.000000;;, + 49;3; 0.000000, 0.000000,-1.000000;;, + 50;3; 0.000000, 0.000000,-1.000000;;, + 51;3; 0.000000, 0.000000,-1.000000;;, + 52;3; 0.000000, 0.000000,-1.000000;;, + 53;3; 0.000000, 0.000000,-1.000000;;, + 54;3; 0.000000, 0.000000,-1.000000;;, + 55;3; 0.000000, 0.000000,-1.000000;;, + 56;3; 0.000000, 0.000000,-1.000000;;, + 57;3; 0.000000, 0.000000,-1.000000;;, + 58;3; 0.000000, 0.000000,-1.000000;;, + 59;3; 0.000000, 0.000000,-1.000000;;, + 60;3; 0.000000, 0.000000,-1.000000;;, + 61;3; 0.000000, 0.000000,-1.000000;;, + 62;3; 0.000000, 0.000000,-1.000000;;, + 63;3; 0.000000, 0.000000,-1.000000;;, + 64;3; 0.000000, 0.000000,-1.000000;;, + 65;3; 0.000000, 0.000000,-1.000000;;; + } + } + Animation { + {Armature_wing_1} + AnimationKey { // Rotation + 0; + 66; + 0;4; 0.202008, 0.795292, 0.568530,-0.058967;;, + 1;4; 0.202008, 0.795292, 0.568530,-0.058967;;, + 2;4; 0.202008, 0.795292, 0.568530,-0.058967;;, + 3;4; 0.202008, 0.795292, 0.568530,-0.058967;;, + 4;4; 0.202008, 0.795292, 0.568530,-0.058967;;, + 5;4; 0.202008, 0.795292, 0.568530,-0.058967;;, + 6;4; 0.202008, 0.795292, 0.568530,-0.058967;;, + 7;4; 0.202008, 0.795292, 0.568530,-0.058967;;, + 8;4; 0.202008, 0.795292, 0.568530,-0.058967;;, + 9;4; 0.202008, 0.795292, 0.568530,-0.058967;;, + 10;4; 0.202008, 0.795292, 0.568530,-0.058967;;, + 11;4; 0.202008, 0.795292, 0.568530,-0.058967;;, + 12;4; 0.202008, 0.795292, 0.568530,-0.058967;;, + 13;4; 0.202008, 0.795292, 0.568530,-0.058967;;, + 14;4; 0.202008, 0.795292, 0.568530,-0.058967;;, + 15;4; 0.202008, 0.795292, 0.568530,-0.058967;;, + 16;4; 0.204581, 0.794330, 0.568519,-0.057054;;, + 17;4; 0.212346, 0.791426, 0.568486,-0.051278;;, + 18;4; 0.225151, 0.786639, 0.568431,-0.041755;;, + 19;4; 0.242433, 0.780177, 0.568358,-0.028902;;, + 20;4; 0.263128, 0.772439, 0.568269,-0.013512;;, + 21;4; 0.285683, 0.764005, 0.568173, 0.003261;;, + 22;4; 0.308237, 0.755571, 0.568077, 0.020034;;, + 23;4; 0.328931, 0.747833, 0.567989, 0.035424;;, + 24;4; 0.346212, 0.741371, 0.567915, 0.048275;;, + 25;4; 0.359016, 0.736583, 0.567860, 0.057796;;, + 26;4; 0.366780, 0.733680, 0.567827, 0.063571;;, + 27;4; 0.369353, 0.732718, 0.567816, 0.065483;;, + 28;4; 0.367798, 0.733399, 0.567888, 0.064304;;, + 29;4; 0.362979, 0.735489, 0.568097, 0.060650;;, + 30;4; 0.354745, 0.739016, 0.568425, 0.054419;;, + 31;4; 0.343125, 0.743915, 0.568837, 0.045645;;, + 32;4; 0.328408, 0.750004, 0.569283, 0.034559;;, + 33;4; 0.311174, 0.756969, 0.569697, 0.021618;;, + 34;4; 0.292257, 0.764399, 0.570011, 0.007464;;, + 35;4; 0.272609, 0.771849, 0.570162,-0.007173;;, + 36;4; 0.253137, 0.778915, 0.570104,-0.021602;;, + 37;4; 0.234575, 0.785292, 0.569815,-0.035271;;, + 38;4; 0.217433, 0.790783, 0.569287,-0.047798;;, + 39;4; 0.202008, 0.795292, 0.568530,-0.058967;;, + 40;4; 0.185603, 0.799386, 0.567266,-0.070677;;, + 41;4; 0.165937, 0.803530, 0.565251,-0.084532;;, + 42;4; 0.144707, 0.807433, 0.562704,-0.099350;;, + 43;4; 0.124755, 0.810722, 0.560061,-0.113186;;, + 44;4; 0.109085, 0.813092, 0.557846,-0.124000;;, + 45;4; 0.099546, 0.814441, 0.556437,-0.130562;;, + 46;4; 0.096474, 0.814856, 0.555970,-0.132670;;, + 47;4; 0.105855, 0.813117, 0.557086,-0.126119;;, + 48;4; 0.132278, 0.808218, 0.560231,-0.107666;;, + 49;4; 0.166204, 0.801929, 0.564269,-0.083972;;, + 50;4; 0.192627, 0.797031, 0.567414,-0.065518;;, + 51;4; 0.202008, 0.795292, 0.568530,-0.058967;;, + 52;4; 0.193983, 0.796420, 0.567340,-0.064485;;, + 53;4; 0.170239, 0.799758, 0.563819,-0.080812;;, + 54;4; 0.134064, 0.804843, 0.558453,-0.105687;;, + 55;4; 0.093032, 0.810612, 0.552368,-0.133902;;, + 56;4; 0.056856, 0.815697, 0.547003,-0.158777;;, + 57;4; 0.033113, 0.819035, 0.543481,-0.175103;;, + 58;4; 0.025087, 0.820163, 0.542291,-0.180622;;, + 59;4; 0.036015, 0.818626, 0.543912,-0.173108;;, + 60;4; 0.067818, 0.814153, 0.548628,-0.151242;;, + 61;4; 0.113537, 0.807723, 0.555407,-0.119809;;, + 62;4; 0.159262, 0.801295, 0.562189,-0.088368;;, + 63;4; 0.191075, 0.796827, 0.566908,-0.066488;;, + 64;4; 0.202008, 0.795292, 0.568530,-0.058967;;, + 65;4; 0.202008, 0.795292, 0.568530,-0.058967;;; + } + AnimationKey { // Scale + 1; + 66; + 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;;; + } + AnimationKey { // Position + 2; + 66; + 0;3; 1.000000, 1.625000,-0.000000;;, + 1;3; 1.000000, 1.625000,-0.000000;;, + 2;3; 1.000000, 1.625000,-0.000000;;, + 3;3; 1.000000, 1.625000,-0.000000;;, + 4;3; 1.000000, 1.625000,-0.000000;;, + 5;3; 1.000000, 1.625000,-0.000000;;, + 6;3; 1.000000, 1.625000,-0.000000;;, + 7;3; 1.000000, 1.625000,-0.000000;;, + 8;3; 1.000000, 1.625000,-0.000000;;, + 9;3; 1.000000, 1.625000,-0.000000;;, + 10;3; 1.000000, 1.625000,-0.000000;;, + 11;3; 1.000000, 1.625000,-0.000000;;, + 12;3; 1.000000, 1.625000,-0.000000;;, + 13;3; 1.000000, 1.625000,-0.000000;;, + 14;3; 1.000000, 1.625000,-0.000000;;, + 15;3; 1.000000, 1.625000,-0.000000;;, + 16;3; 1.000000, 1.625000,-0.000000;;, + 17;3; 1.000000, 1.625000,-0.000000;;, + 18;3; 1.000000, 1.625000,-0.000000;;, + 19;3; 1.000000, 1.625000,-0.000000;;, + 20;3; 1.000000, 1.625000,-0.000000;;, + 21;3; 1.000000, 1.625000, 0.000000;;, + 22;3; 1.000000, 1.625000, 0.000000;;, + 23;3; 1.000000, 1.625000, 0.000000;;, + 24;3; 1.000000, 1.625000, 0.000000;;, + 25;3; 1.000000, 1.625000, 0.000000;;, + 26;3; 1.000000, 1.625000, 0.000000;;, + 27;3; 1.000000, 1.625000, 0.000000;;, + 28;3; 1.000000, 1.625000, 0.000000;;, + 29;3; 1.000000, 1.625000, 0.000000;;, + 30;3; 1.000000, 1.625000, 0.000000;;, + 31;3; 1.000000, 1.625000, 0.000000;;, + 32;3; 1.000000, 1.625000, 0.000000;;, + 33;3; 1.000000, 1.625000, 0.000000;;, + 34;3; 1.000000, 1.625000,-0.000000;;, + 35;3; 1.000000, 1.625000,-0.000000;;, + 36;3; 1.000000, 1.625000,-0.000000;;, + 37;3; 1.000000, 1.625000,-0.000000;;, + 38;3; 1.000000, 1.625000,-0.000000;;, + 39;3; 1.000000, 1.625000,-0.000000;;, + 40;3; 1.000000, 1.625000, 0.000000;;, + 41;3; 1.000000, 1.625000, 0.000000;;, + 42;3; 1.000000, 1.625000, 0.000000;;, + 43;3; 1.000000, 1.625000, 0.000000;;, + 44;3; 1.000000, 1.625000, 0.000000;;, + 45;3; 1.000000, 1.625000, 0.000000;;, + 46;3; 1.000000, 1.625000, 0.000000;;, + 47;3; 1.000000, 1.625000, 0.000000;;, + 48;3; 1.000000, 1.625000, 0.000000;;, + 49;3; 1.000000, 1.625000, 0.000000;;, + 50;3; 1.000000, 1.625000, 0.000000;;, + 51;3; 1.000000, 1.625000, 0.000000;;, + 52;3; 1.000000, 1.625000, 0.000000;;, + 53;3; 1.000000, 1.625000, 0.000000;;, + 54;3; 1.000000, 1.625000, 0.000000;;, + 55;3; 1.000000, 1.625000, 0.000000;;, + 56;3; 1.000000, 1.625000, 0.000000;;, + 57;3; 1.000000, 1.625000, 0.000000;;, + 58;3; 1.000000, 1.625000, 0.000000;;, + 59;3; 1.000000, 1.625000, 0.000000;;, + 60;3; 1.000000, 1.625000, 0.000000;;, + 61;3; 1.000000, 1.625000, 0.000000;;, + 62;3; 1.000000, 1.625000, 0.000000;;, + 63;3; 1.000000, 1.625000, 0.000000;;, + 64;3; 1.000000, 1.625000, 0.000000;;, + 65;3; 1.000000, 1.625000, 0.000000;;; + } + } + Animation { + {Armature_wing_2} + AnimationKey { // Rotation + 0; + 66; + 0;4; 0.278385, 0.795834,-0.535290,-0.051129;;, + 1;4; 0.278385, 0.795834,-0.535290,-0.051129;;, + 2;4; 0.278385, 0.795834,-0.535290,-0.051129;;, + 3;4; 0.278385, 0.795834,-0.535290,-0.051129;;, + 4;4; 0.278385, 0.795834,-0.535290,-0.051129;;, + 5;4; 0.278385, 0.795834,-0.535290,-0.051129;;, + 6;4; 0.278385, 0.795834,-0.535290,-0.051129;;, + 7;4; 0.278385, 0.795834,-0.535290,-0.051129;;, + 8;4; 0.278385, 0.795834,-0.535290,-0.051129;;, + 9;4; 0.278385, 0.795834,-0.535290,-0.051129;;, + 10;4; 0.278385, 0.795834,-0.535290,-0.051129;;, + 11;4; 0.278385, 0.795834,-0.535290,-0.051129;;, + 12;4; 0.278385, 0.795834,-0.535290,-0.051129;;, + 13;4; 0.278385, 0.795834,-0.535290,-0.051129;;, + 14;4; 0.278385, 0.795834,-0.535290,-0.051129;;, + 15;4; 0.278385, 0.795834,-0.535290,-0.051129;;, + 16;4; 0.280932, 0.794618,-0.534925,-0.052891;;, + 17;4; 0.288619, 0.790947,-0.533823,-0.058212;;, + 18;4; 0.301294, 0.784893,-0.532005,-0.066985;;, + 19;4; 0.318401, 0.776722,-0.529552,-0.078825;;, + 20;4; 0.338886, 0.766938,-0.526614,-0.093003;;, + 21;4; 0.361213, 0.756275,-0.523413,-0.108455;;, + 22;4; 0.383539, 0.745611,-0.520211,-0.123906;;, + 23;4; 0.404024, 0.735827,-0.517273,-0.138083;;, + 24;4; 0.421130, 0.727657,-0.514820,-0.149922;;, + 25;4; 0.433804, 0.721603,-0.513003,-0.158693;;, + 26;4; 0.441490, 0.717932,-0.511901,-0.164013;;, + 27;4; 0.444036, 0.716716,-0.511536,-0.165775;;, + 28;4; 0.442507, 0.717553,-0.511821,-0.164700;;, + 29;4; 0.437762, 0.720127,-0.512692,-0.161369;;, + 30;4; 0.429652, 0.724478,-0.514150,-0.155683;;, + 31;4; 0.418200, 0.730539,-0.516159,-0.147667;;, + 32;4; 0.403684, 0.738096,-0.518627,-0.137526;;, + 33;4; 0.386672, 0.746778,-0.521411,-0.125667;;, + 34;4; 0.367978, 0.756087,-0.524327,-0.112672;;, + 35;4; 0.348538, 0.765481,-0.527183,-0.099201;;, + 36;4; 0.329243, 0.774467,-0.529808,-0.085882;;, + 37;4; 0.310818, 0.782666,-0.532078,-0.073222;;, + 38;4; 0.293767, 0.789830,-0.533916,-0.061570;;, + 39;4; 0.278385, 0.795834,-0.535290,-0.051129;;, + 40;4; 0.261962, 0.801502,-0.536298,-0.040094;;, + 41;4; 0.242206, 0.807514,-0.537011,-0.026942;;, + 42;4; 0.220828, 0.813422,-0.537411,-0.012802;;, + 43;4; 0.200701, 0.818585,-0.537542, 0.000449;;, + 44;4; 0.184876, 0.822421,-0.537506, 0.010834;;, + 45;4; 0.175234, 0.824662,-0.537424, 0.017146;;, + 46;4; 0.172126, 0.825362,-0.537384, 0.019178;;, + 47;4; 0.181572, 0.822738,-0.537198, 0.012928;;, + 48;4; 0.208176, 0.815345,-0.536674,-0.004674;;, + 49;4; 0.242336, 0.805852,-0.536001,-0.027276;;, + 50;4; 0.268940, 0.798459,-0.535476,-0.044879;;, + 51;4; 0.278385, 0.795834,-0.535290,-0.051129;;, + 52;4; 0.270272, 0.797712,-0.535217,-0.045818;;, + 53;4; 0.246270, 0.803266,-0.534999,-0.030107;;, + 54;4; 0.209700, 0.811729,-0.534667,-0.006169;;, + 55;4; 0.168221, 0.821328,-0.534291, 0.020982;;, + 56;4; 0.131651, 0.829791,-0.533959, 0.044920;;, + 57;4; 0.107649, 0.835346,-0.533742, 0.060631;;, + 58;4; 0.099536, 0.837223,-0.533668, 0.065941;;, + 59;4; 0.110583, 0.834667,-0.533768, 0.058711;;, + 60;4; 0.142733, 0.827225,-0.534059, 0.037670;;, + 61;4; 0.188949, 0.816526,-0.534478, 0.007421;;, + 62;4; 0.235172, 0.805829,-0.534897,-0.022835;;, + 63;4; 0.267333, 0.798390,-0.535190,-0.043891;;, + 64;4; 0.278385, 0.795834,-0.535290,-0.051129;;, + 65;4; 0.278385, 0.795834,-0.535290,-0.051129;;; + } + AnimationKey { // Scale + 1; + 66; + 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;;; + } + AnimationKey { // Position + 2; + 66; + 0;3;-1.000000, 1.625000, 0.000000;;, + 1;3;-1.000000, 1.625000, 0.000000;;, + 2;3;-1.000000, 1.625000, 0.000000;;, + 3;3;-1.000000, 1.625000, 0.000000;;, + 4;3;-1.000000, 1.625000, 0.000000;;, + 5;3;-1.000000, 1.625000, 0.000000;;, + 6;3;-1.000000, 1.625000, 0.000000;;, + 7;3;-1.000000, 1.625000, 0.000000;;, + 8;3;-1.000000, 1.625000, 0.000000;;, + 9;3;-1.000000, 1.625000, 0.000000;;, + 10;3;-1.000000, 1.625000, 0.000000;;, + 11;3;-1.000000, 1.625000, 0.000000;;, + 12;3;-1.000000, 1.625000, 0.000000;;, + 13;3;-1.000000, 1.625000, 0.000000;;, + 14;3;-1.000000, 1.625000, 0.000000;;, + 15;3;-1.000000, 1.625000, 0.000000;;, + 16;3;-1.000000, 1.625000, 0.000000;;, + 17;3;-1.000000, 1.625000, 0.000000;;, + 18;3;-1.000000, 1.625000, 0.000000;;, + 19;3;-1.000000, 1.625000, 0.000000;;, + 20;3;-1.000000, 1.625000, 0.000000;;, + 21;3;-1.000000, 1.625000, 0.000000;;, + 22;3;-1.000000, 1.625000, 0.000000;;, + 23;3;-1.000000, 1.625000, 0.000000;;, + 24;3;-1.000000, 1.625000, 0.000000;;, + 25;3;-1.000000, 1.625000, 0.000000;;, + 26;3;-1.000000, 1.625000, 0.000000;;, + 27;3;-1.000000, 1.625000, 0.000000;;, + 28;3;-1.000000, 1.625000, 0.000000;;, + 29;3;-1.000000, 1.625000, 0.000000;;, + 30;3;-1.000000, 1.625000, 0.000000;;, + 31;3;-1.000000, 1.625000, 0.000000;;, + 32;3;-1.000000, 1.625000, 0.000000;;, + 33;3;-1.000000, 1.625000, 0.000000;;, + 34;3;-1.000000, 1.625000, 0.000000;;, + 35;3;-1.000000, 1.625000, 0.000000;;, + 36;3;-1.000000, 1.625000, 0.000000;;, + 37;3;-1.000000, 1.625000, 0.000000;;, + 38;3;-1.000000, 1.625000, 0.000000;;, + 39;3;-1.000000, 1.625000, 0.000000;;, + 40;3;-1.000000, 1.625000,-0.000000;;, + 41;3;-1.000000, 1.625000,-0.000000;;, + 42;3;-1.000000, 1.625000,-0.000000;;, + 43;3;-1.000000, 1.625000,-0.000000;;, + 44;3;-1.000000, 1.625000,-0.000000;;, + 45;3;-1.000000, 1.625000,-0.000000;;, + 46;3;-1.000000, 1.625000,-0.000000;;, + 47;3;-1.000000, 1.625000,-0.000000;;, + 48;3;-1.000000, 1.625000,-0.000000;;, + 49;3;-1.000000, 1.625000,-0.000000;;, + 50;3;-1.000000, 1.625000,-0.000000;;, + 51;3;-1.000000, 1.625000,-0.000000;;, + 52;3;-1.000000, 1.625000,-0.000000;;, + 53;3;-1.000000, 1.625000,-0.000000;;, + 54;3;-1.000000, 1.625000,-0.000000;;, + 55;3;-1.000000, 1.625000,-0.000000;;, + 56;3;-1.000000, 1.625000,-0.000000;;, + 57;3;-1.000000, 1.625000,-0.000000;;, + 58;3;-1.000000, 1.625000,-0.000000;;, + 59;3;-1.000000, 1.625000,-0.000000;;, + 60;3;-1.000000, 1.625000,-0.000000;;, + 61;3;-1.000000, 1.625000,-0.000000;;, + 62;3;-1.000000, 1.625000,-0.000000;;, + 63;3;-1.000000, 1.625000,-0.000000;;, + 64;3;-1.000000, 1.625000,-0.000000;;, + 65;3;-1.000000, 1.625000,-0.000000;;; + } + } + Animation { + {Cube} + AnimationKey { // Rotation + 0; + 66; + 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;;; + } + AnimationKey { // Scale + 1; + 66; + 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;;; + } + AnimationKey { // Position + 2; + 66; + 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;;; + } + } +} // End of AnimationSet Global diff --git a/mods/mobs/oerkki.lua b/mods/mobs/oerkki.lua new file mode 100644 index 00000000..2c0d6cf8 --- /dev/null +++ b/mods/mobs/oerkki.lua @@ -0,0 +1,47 @@ + +-- Oerkki + +mobs:register_mob("mobs:oerkki", { + type = "monster", + hp_min = 40, + hp_max = 50, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_oerkki.x", + textures = {"mobs_oerkki.png"}, + visual_size = {x=5, y=5}, + makes_footstep_sound = false, + view_range = 16, + walk_velocity = 2, + run_velocity = 4, + damage = 5, + drops = { + {name = "default:obsidian", + chance = 3, + min = 1, + max = 2,}, + }, + armor = 90, + drawtype = "front", + light_resistant = true, + water_damage = 1, + lava_damage = 1, + light_damage = 0, + attack_type = "dogfight", + animation = { + stand_start = 0, + stand_end = 23, + walk_start = 24, + walk_end = 36, + run_start = 37, + run_end = 49, + punch_start = 37, + punch_end = 49, + speed_normal = 15, + speed_run = 15, + }, + jump = true, + step = 1, + blood_texture = "mobs_blood.png", +}) +mobs:register_spawn("mobs:oerkki", {"default:stone"}, 2, -1, 6000, 1, -10) diff --git a/mods/mobs/oerkki.lua~ b/mods/mobs/oerkki.lua~ new file mode 100644 index 00000000..f1ccd5a8 --- /dev/null +++ b/mods/mobs/oerkki.lua~ @@ -0,0 +1,47 @@ + +-- Oerkki + +mobs:register_mob("mobs:oerkki", { + type = "monster", + hp_min = 40, + hp_max = 50, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_oerkki.x", + textures = {"mobs_oerkki.png"}, + visual_size = {x=5, y=5}, + makes_footstep_sound = false, + view_range = 15, + walk_velocity = 2, + run_velocity = 4, + damage = 5, + drops = { + {name = "default:obsidian", + chance = 3, + min = 1, + max = 2,}, + }, + armor = 100, + drawtype = "front", + light_resistant = true, + water_damage = 1, + lava_damage = 1, + light_damage = 0, + attack_type = "dogfight", + animation = { + stand_start = 0, + stand_end = 23, + walk_start = 24, + walk_end = 36, + run_start = 37, + run_end = 49, + punch_start = 37, + punch_end = 49, + speed_normal = 15, + speed_run = 15, + }, + jump = true, + step = 1, + blood_texture = "mobs_blood.png", +}) +mobs:register_spawn("mobs:oerkki", {"default:stone"}, 2, -1, 6000, 1, -10) diff --git a/mods/mobs/rat.lua b/mods/mobs/rat.lua new file mode 100644 index 00000000..bf6f3561 --- /dev/null +++ b/mods/mobs/rat.lua @@ -0,0 +1,62 @@ + +-- Rat + +mobs:register_mob("mobs:rat", { + type = "animal", + hp_min = 1, + hp_max = 4, -- 1 + collisionbox = {-0.2, -0.01, -0.2, 0.2, 0.2, 0.2}, + visual = "mesh", + mesh = "mobs_rat.x", + textures = {"mobs_rat.png"}, + makes_footstep_sound = false, + walk_velocity = 1, + armor = 200, + drops = {}, + drawtype = "front", + water_damage = 0, + lava_damage = 1, + light_damage = 0, +jump = true, +step = 1, +passive = true, + + on_rightclick = function(self, clicker) + if clicker:is_player() and clicker:get_inventory() then + clicker:get_inventory():add_item("main", "mobs:rat") + self.object:remove() + end + end, +}) +mobs:register_spawn("mobs:rat", {"default:stone"}, 20, -1, 7000, 1, 31000) + +-- Can Right-click Rat to Pick Up + +minetest.register_craftitem("mobs:rat", { + description = "Rat", + inventory_image = "mobs_rat_inventory.png", + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.above then + minetest.env:add_entity(pointed_thing.above, "mobs:rat") + itemstack:take_item() + end + return itemstack + end, +}) + +-- Cooked Rat, yummy! + +minetest.register_craftitem("mobs:rat_cooked", { + description = "Cooked Rat", + inventory_image = "mobs_cooked_rat.png", + + on_use = minetest.item_eat(3), +}) + +minetest.register_craft({ + type = "cooking", + output = "mobs:rat_cooked", + recipe = "mobs:rat", + cooktime = 5, +}) diff --git a/mods/mobs/sandmonster.lua b/mods/mobs/sandmonster.lua new file mode 100644 index 00000000..cd5a280f --- /dev/null +++ b/mods/mobs/sandmonster.lua @@ -0,0 +1,47 @@ + +-- Sand Monster + +mobs:register_mob("mobs:sand_monster", { + type = "monster", + hp_min = 10, + hp_max = 20, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_sand_monster.x", + textures = {"mobs_sand_monster.png"}, + visual_size = {x=8,y=8}, + makes_footstep_sound = true, + view_range = 16, + walk_velocity = 3, + run_velocity = 5, + damage = 3, + drops = { + {name = "default:desert_sand", + chance = 1, + min = 3, + max = 5,}, + }, + light_resistant = true, + armor = 90, + drawtype = "front", + water_damage = 3, + lava_damage = 1, + light_damage = 0, + attack_type = "dogfight", + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 0, + stand_end = 39, + walk_start = 41, + walk_end = 72, + run_start = 74, + run_end = 105, + punch_start = 74, + punch_end = 105, + }, + jump = true, + step = 1, + blood_texture = "mobs_blood.png", +}) +mobs:register_spawn("mobs:sand_monster", {"default:desert_sand", "default:sand"}, 20, -1, 4500, 1, 31000) diff --git a/mods/mobs/sandmonster.lua~ b/mods/mobs/sandmonster.lua~ new file mode 100644 index 00000000..b1c5c314 --- /dev/null +++ b/mods/mobs/sandmonster.lua~ @@ -0,0 +1,47 @@ + +-- Sand Monster + +mobs:register_mob("mobs:sand_monster", { + type = "monster", + hp_min = 10, + hp_max = 20, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_sand_monster.x", + textures = {"mobs_sand_monster.png"}, + visual_size = {x=8,y=8}, + makes_footstep_sound = true, + view_range = 18, + walk_velocity = 3, + run_velocity = 5, + damage = 3, + drops = { + {name = "default:desert_sand", + chance = 1, + min = 3, + max = 5,}, + }, + light_resistant = true, + armor = 100, + drawtype = "front", + water_damage = 3, + lava_damage = 1, + light_damage = 0, + attack_type = "dogfight", + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 0, + stand_end = 39, + walk_start = 41, + walk_end = 72, + run_start = 74, + run_end = 105, + punch_start = 74, + punch_end = 105, + }, + jump = true, + step = 1, + blood_texture = "mobs_blood.png", +}) +mobs:register_spawn("mobs:sand_monster", {"default:desert_sand", "default:sand"}, 20, -1, 4500, 1, 31000) diff --git a/mods/mobs/sheep.lua b/mods/mobs/sheep.lua new file mode 100644 index 00000000..b4bcf7f2 --- /dev/null +++ b/mods/mobs/sheep.lua @@ -0,0 +1,73 @@ + +-- Sheep + +mobs:register_mob("mobs:sheep", { + type = "animal", + hp_min = 10, + hp_max = 15, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, + textures = {"mobs_sheep.png"}, + visual = "mesh", + mesh = "mobs_sheep.x", + makes_footstep_sound = true, + walk_velocity = 1, + armor = 200, + drops = { + {name = "mobs:meat_raw", + chance = 1, + min = 2, + max = 3,}, + }, + drawtype = "front", + water_damage = 1, + lava_damage = 5, + light_damage = 0, + sounds = { + random = "mobs_sheep", + }, + animation = { + speed_normal = 15, + stand_start = 0, + stand_end = 80, + walk_start = 81, + walk_end = 100, + }, + jump = true, + step = 1, + blood_texture = "mobs_blood.png", + passive = true, + follow = "farming:wheat", + view_range = 8, + on_rightclick = function(self, clicker) + local item = clicker:get_wielded_item() + if item:get_name() == "farming:wheat" then + if not minetest.setting_getbool("creative_mode") then + item:take_item() + clicker:set_wielded_item(item) + end + self.food = (self.food or 0) + 1 + if self.food >= 8 then + self.food = 0 + self.naked = false + self.tamed = true + self.object:set_properties({ + textures = {"mobs_sheep.png"}, + mesh = "mobs_sheep.x", + }) + minetest.sound_play("mobs_sheep", {object = self.object,gain = 1.0,max_hear_distance = 32,loop = false,}) + end + return + end + if clicker:get_inventory() and not self.naked then + self.naked = true + if minetest.registered_items["wool:white"] then + clicker:get_inventory():add_item("main", ItemStack("wool:white "..math.random(1,3))) + end + self.object:set_properties({ + textures = {"mobs_sheep_shaved.png"}, + mesh = "mobs_sheep_shaved.x", + }) + end + end, +}) +mobs:register_spawn("mobs:sheep", {"default:dirt_with_grass"}, 20, 8, 9000, 1, 31000) diff --git a/mods/mobs/sheep.lua~ b/mods/mobs/sheep.lua~ new file mode 100644 index 00000000..7cb7d775 --- /dev/null +++ b/mods/mobs/sheep.lua~ @@ -0,0 +1,73 @@ + +-- Sheep + +mobs:register_mob("mobs:sheep", { + type = "animal", + hp_min = 10, + hp_max = 15, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, + textures = {"mobs_sheep.png"}, + visual = "mesh", + mesh = "mobs_sheep.x", + makes_footstep_sound = true, + walk_velocity = 1, + armor = 200, + drops = { + {name = "mobs:meat_raw", + chance = 1, + min = 2, + max = 3,}, + }, + drawtype = "front", + water_damage = 1, + lava_damage = 5, + light_damage = 0, + sounds = { + random = "mobs_sheep", + }, + animation = { + speed_normal = 15, + stand_start = 0, + stand_end = 80, + walk_start = 81, + walk_end = 100, + }, + jump = true, + step = 1, + blood_texture = "mobs_blood.png", + passive = true, + follow = "farming:wheat", + view_range = 5, + on_rightclick = function(self, clicker) + local item = clicker:get_wielded_item() + if item:get_name() == "farming:wheat" then + if not minetest.setting_getbool("creative_mode") then + item:take_item() + clicker:set_wielded_item(item) + end + self.food = (self.food or 0) + 1 + if self.food >= 8 then + self.food = 0 + self.naked = false + self.tamed = true + self.object:set_properties({ + textures = {"mobs_sheep.png"}, + mesh = "mobs_sheep.x", + }) + minetest.sound_play("mobs_sheep", {object = self.object,gain = 1.0,max_hear_distance = 32,loop = false,}) + end + return + end + if clicker:get_inventory() and not self.naked then + self.naked = true + if minetest.registered_items["wool:white"] then + clicker:get_inventory():add_item("main", ItemStack("wool:white "..math.random(1,3))) + end + self.object:set_properties({ + textures = {"mobs_sheep_shaved.png"}, + mesh = "mobs_sheep_shaved.x", + }) + end + end, +}) +mobs:register_spawn("mobs:sheep", {"default:dirt_with_grass"}, 20, 8, 9000, 1, 31000) diff --git a/mods/mobs/sounds/mobs_cow.ogg b/mods/mobs/sounds/mobs_cow.ogg new file mode 100644 index 00000000..e919c6ba Binary files /dev/null and b/mods/mobs/sounds/mobs_cow.ogg differ diff --git a/mods/mobs/sounds/mobs_eerie.ogg b/mods/mobs/sounds/mobs_eerie.ogg new file mode 100644 index 00000000..988509bd Binary files /dev/null and b/mods/mobs/sounds/mobs_eerie.ogg differ diff --git a/mods/mobs/sounds/mobs_fireball.ogg b/mods/mobs/sounds/mobs_fireball.ogg new file mode 100644 index 00000000..bdc4ac21 Binary files /dev/null and b/mods/mobs/sounds/mobs_fireball.ogg differ diff --git a/mods/mobs/sounds/mobs_howl.ogg b/mods/mobs/sounds/mobs_howl.ogg new file mode 100644 index 00000000..de7d8e84 Binary files /dev/null and b/mods/mobs/sounds/mobs_howl.ogg differ diff --git a/mods/mobs/sounds/mobs_oerkki_attack.ogg b/mods/mobs/sounds/mobs_oerkki_attack.ogg new file mode 100644 index 00000000..73505ca3 Binary files /dev/null and b/mods/mobs/sounds/mobs_oerkki_attack.ogg differ diff --git a/mods/mobs/sounds/mobs_pig.ogg b/mods/mobs/sounds/mobs_pig.ogg new file mode 100644 index 00000000..e7c7591e Binary files /dev/null and b/mods/mobs/sounds/mobs_pig.ogg differ diff --git a/mods/mobs/sounds/mobs_sheep.ogg b/mods/mobs/sounds/mobs_sheep.ogg new file mode 100644 index 00000000..54f62cd6 Binary files /dev/null and b/mods/mobs/sounds/mobs_sheep.ogg differ diff --git a/mods/mobs/spider.lua b/mods/mobs/spider.lua new file mode 100644 index 00000000..4dc64ac6 --- /dev/null +++ b/mods/mobs/spider.lua @@ -0,0 +1,104 @@ + +-- Glowtest Spider + +mobs:register_mob("mobs:spider", { + type = "monster", + hp_min = 20, + hp_max = 40, + collisionbox = {-0.9, -0.01, -0.7, 0.7, 0.6, 0.7}, + textures = {"mobs_spider.png"}, + visual_size = {x=7,y=7}, + visual = "mesh", + mesh = "mobs_spider.x", + makes_footstep_sound = true, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + armor = 200, + damage = 3, + drops = { + {name = "farming:string", + chance = 2, + min = 2, + max = 3,}, + {name = "mobs:meat_raw", + chance = 4, + min = 1, + max = 2,}, + {name = "ethereal:crystal_spike", + chance = 15, + min = 1, + max = 2,}, + }, + light_resistant = true, + drawtype = "front", + water_damage = 5, + lava_damage = 5, + light_damage = 0, + on_rightclick = nil, + attack_type = "dogfight", + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 1, + stand_end = 1, + walk_start = 20, + walk_end = 40, + run_start = 20, + run_end = 40, + punch_start = 50, + punch_end = 90, + }, +-- jump = true, +-- sounds = {}, +-- step = 1, +--}) +-- }, + jump = true, + step = 1, + blood_texture = "mobs_blood.png", + sounds = { + war_cry = "mobs_eerie", + death = "mobs_howl", + attack = "mobs_oerkki_attack", + }, + +}) +mobs:register_spawn("mobs:spider", {"default:junglegrass", "default:jungleleaves", "default:jungletree"}, 20, -10, 7000, 1, 31000) + +-- Ethereal crystal spike compatibility + +if not minetest.get_modpath("ethereal") then + minetest.register_alias("ethereal:crystal_spike", "default:sandstone") +end + +-- Cobweb + +minetest.register_node("mobs:cobweb", { + description = "Cobweb", + drawtype = "plantlike", + visual_scale = 1.1, + tiles = {"mobs_cobweb.png"}, + inventory_image = "mobs_cobweb.png", + paramtype = "light", + sunlight_propagates = true, + liquid_viscosity = 11, + liquidtype = "source", + liquid_alternative_flowing = "mobs:cobweb", + liquid_alternative_source = "mobs:cobweb", + liquid_renewable = false, + liquid_range = 0, + walkable = false, + groups = {snappy=1,liquid=3}, + drop = "farming:cotton", + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_craft({ + output = "mobs:cobweb", + recipe = { + {"farming:string", "farming:string", "farming:string"}, + {"farming:string", "farming:string", "farming:string"}, + {"farming:string", "farming:string", "farming:string"}, + } +}) diff --git a/mods/mobs/stonemonster.lua b/mods/mobs/stonemonster.lua new file mode 100644 index 00000000..46b5851e --- /dev/null +++ b/mods/mobs/stonemonster.lua @@ -0,0 +1,55 @@ + +-- Stone Monster + +mobs:register_mob("mobs:stone_monster", { + type = "monster", + hp_min = 25, + hp_max = 35, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_stone_monster.x", + textures = {"mobs_stone_monster.png"}, + visual_size = {x=3, y=2.6}, + makes_footstep_sound = true, + view_range = 16, + walk_velocity = 2, + run_velocity = 4, + damage = 3, + drops = { + {name = "default:torch", + chance = 2, + min = 3, + max = 5,}, + {name = "default:iron_lump", + chance=5, + min=1, + max=2,}, + {name = "default:coal_lump", + chance=3, + min=1, + max=3,}, + }, + light_resistant = true, + armor = 60, + drawtype = "front", + water_damage = 0, + lava_damage = 0, + light_damage = 0, + attack_type = "dogfight", + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 0, + stand_end = 14, + walk_start = 15, + walk_end = 38, + run_start = 40, + run_end = 63, + punch_start = 40, + punch_end = 63, + }, + jump = true, + step = 1, + blood_texture = "mobs_blood.png", +}) +mobs:register_spawn("mobs:stone_monster", {"default:stone"}, 3, -1, 5000, 1, 0) diff --git a/mods/mobs/stonemonster.lua~ b/mods/mobs/stonemonster.lua~ new file mode 100644 index 00000000..523dfacf --- /dev/null +++ b/mods/mobs/stonemonster.lua~ @@ -0,0 +1,55 @@ + +-- Stone Monster + +mobs:register_mob("mobs:stone_monster", { + type = "monster", + hp_min = 25, + hp_max = 35, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_stone_monster.x", + textures = {"mobs_stone_monster.png"}, + visual_size = {x=3, y=2.6}, + makes_footstep_sound = true, + view_range = 10, + walk_velocity = 2, + run_velocity = 4, + damage = 3, + drops = { + {name = "default:torch", + chance = 2, + min = 3, + max = 5,}, + {name = "default:iron_lump", + chance=5, + min=1, + max=2,}, + {name = "default:coal_lump", + chance=3, + min=1, + max=3,}, + }, + light_resistant = true, + armor = 60, + drawtype = "front", + water_damage = 0, + lava_damage = 0, + light_damage = 0, + attack_type = "dogfight", + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 0, + stand_end = 14, + walk_start = 15, + walk_end = 38, + run_start = 40, + run_end = 63, + punch_start = 40, + punch_end = 63, + }, + jump = true, + step = 1, + blood_texture = "mobs_blood.png", +}) +mobs:register_spawn("mobs:stone_monster", {"default:stone"}, 3, -1, 5000, 1, 0) diff --git a/mods/mobs/textures/mobs_bee_inv.png b/mods/mobs/textures/mobs_bee_inv.png new file mode 100644 index 00000000..94d5ace1 Binary files /dev/null and b/mods/mobs/textures/mobs_bee_inv.png differ diff --git a/mods/mobs/textures/mobs_beehive.png b/mods/mobs/textures/mobs_beehive.png new file mode 100644 index 00000000..be4a4fa1 Binary files /dev/null and b/mods/mobs/textures/mobs_beehive.png differ diff --git a/mods/mobs/textures/mobs_blood.png b/mods/mobs/textures/mobs_blood.png new file mode 100644 index 00000000..77cfbdaa Binary files /dev/null and b/mods/mobs/textures/mobs_blood.png differ diff --git a/mods/mobs/textures/mobs_bucket_milk.png b/mods/mobs/textures/mobs_bucket_milk.png new file mode 100644 index 00000000..c8979577 Binary files /dev/null and b/mods/mobs/textures/mobs_bucket_milk.png differ diff --git a/mods/mobs/textures/mobs_cheese.png b/mods/mobs/textures/mobs_cheese.png new file mode 100644 index 00000000..04e03d80 Binary files /dev/null and b/mods/mobs/textures/mobs_cheese.png differ diff --git a/mods/mobs/textures/mobs_cheeseblock.png b/mods/mobs/textures/mobs_cheeseblock.png new file mode 100644 index 00000000..dfa7c189 Binary files /dev/null and b/mods/mobs/textures/mobs_cheeseblock.png differ diff --git a/mods/mobs/textures/mobs_chicken_cooked.png b/mods/mobs/textures/mobs_chicken_cooked.png new file mode 100644 index 00000000..bda35f3a Binary files /dev/null and b/mods/mobs/textures/mobs_chicken_cooked.png differ diff --git a/mods/mobs/textures/mobs_chicken_egg.png b/mods/mobs/textures/mobs_chicken_egg.png new file mode 100644 index 00000000..be8a4e1c Binary files /dev/null and b/mods/mobs/textures/mobs_chicken_egg.png differ diff --git a/mods/mobs/textures/mobs_chicken_egg_fried.png b/mods/mobs/textures/mobs_chicken_egg_fried.png new file mode 100644 index 00000000..ad144a50 Binary files /dev/null and b/mods/mobs/textures/mobs_chicken_egg_fried.png differ diff --git a/mods/mobs/textures/mobs_chicken_inv.png b/mods/mobs/textures/mobs_chicken_inv.png new file mode 100644 index 00000000..ccaca249 Binary files /dev/null and b/mods/mobs/textures/mobs_chicken_inv.png differ diff --git a/mods/mobs/textures/mobs_chicken_raw.png b/mods/mobs/textures/mobs_chicken_raw.png new file mode 100644 index 00000000..3987a4a8 Binary files /dev/null and b/mods/mobs/textures/mobs_chicken_raw.png differ diff --git a/mods/mobs/textures/mobs_cobweb.png b/mods/mobs/textures/mobs_cobweb.png new file mode 100644 index 00000000..05b4fdcf Binary files /dev/null and b/mods/mobs/textures/mobs_cobweb.png differ diff --git a/mods/mobs/textures/mobs_cooked_rat.png b/mods/mobs/textures/mobs_cooked_rat.png new file mode 100644 index 00000000..daad3be0 Binary files /dev/null and b/mods/mobs/textures/mobs_cooked_rat.png differ diff --git a/mods/mobs/textures/mobs_dungeon_master_fireball.png b/mods/mobs/textures/mobs_dungeon_master_fireball.png new file mode 100644 index 00000000..f2d3de58 Binary files /dev/null and b/mods/mobs/textures/mobs_dungeon_master_fireball.png differ diff --git a/mods/mobs/textures/mobs_dungeon_master_fireball_back.png b/mods/mobs/textures/mobs_dungeon_master_fireball_back.png new file mode 100644 index 00000000..0553c7be Binary files /dev/null and b/mods/mobs/textures/mobs_dungeon_master_fireball_back.png differ diff --git a/mods/mobs/textures/mobs_fireball.png b/mods/mobs/textures/mobs_fireball.png new file mode 100644 index 00000000..3279e662 Binary files /dev/null and b/mods/mobs/textures/mobs_fireball.png differ diff --git a/mods/mobs/textures/mobs_honey_inv.png b/mods/mobs/textures/mobs_honey_inv.png new file mode 100644 index 00000000..e70666d7 Binary files /dev/null and b/mods/mobs/textures/mobs_honey_inv.png differ diff --git a/mods/mobs/textures/mobs_meat.png b/mods/mobs/textures/mobs_meat.png new file mode 100644 index 00000000..4c63fdd1 Binary files /dev/null and b/mods/mobs/textures/mobs_meat.png differ diff --git a/mods/mobs/textures/mobs_meat_raw.png b/mods/mobs/textures/mobs_meat_raw.png new file mode 100644 index 00000000..0dea4ec5 Binary files /dev/null and b/mods/mobs/textures/mobs_meat_raw.png differ diff --git a/mods/mobs/textures/mobs_pork_cooked.png b/mods/mobs/textures/mobs_pork_cooked.png new file mode 100644 index 00000000..8d8c1668 Binary files /dev/null and b/mods/mobs/textures/mobs_pork_cooked.png differ diff --git a/mods/mobs/textures/mobs_pork_raw.png b/mods/mobs/textures/mobs_pork_raw.png new file mode 100644 index 00000000..c070c57e Binary files /dev/null and b/mods/mobs/textures/mobs_pork_raw.png differ diff --git a/mods/mobs/textures/mobs_rat_inventory.png b/mods/mobs/textures/mobs_rat_inventory.png new file mode 100644 index 00000000..a8d61513 Binary files /dev/null and b/mods/mobs/textures/mobs_rat_inventory.png differ diff --git a/mods/mobs/textures/zmobs_egg_lava_flan.png b/mods/mobs/textures/zmobs_egg_lava_flan.png new file mode 100644 index 00000000..c46641bd Binary files /dev/null and b/mods/mobs/textures/zmobs_egg_lava_flan.png differ diff --git a/mods/mobs/textures/zmobs_egg_mese_monster.png b/mods/mobs/textures/zmobs_egg_mese_monster.png new file mode 100644 index 00000000..994acc4d Binary files /dev/null and b/mods/mobs/textures/zmobs_egg_mese_monster.png differ diff --git a/mods/mobs/textures/zmobs_lava_orb.png b/mods/mobs/textures/zmobs_lava_orb.png new file mode 100644 index 00000000..bffd74cd Binary files /dev/null and b/mods/mobs/textures/zmobs_lava_orb.png differ diff --git a/mods/mobs/treemonster.lua b/mods/mobs/treemonster.lua new file mode 100644 index 00000000..73294ff7 --- /dev/null +++ b/mods/mobs/treemonster.lua @@ -0,0 +1,64 @@ + +-- Tree Monster (or Tree Gollum as I like to call it) + +mobs:register_mob("mobs:tree_monster", { + type = "monster", + hp_min = 40, + hp_max = 50, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_tree_monster.x", + textures = {"mobs_tree_monster.png"}, + visual_size = {x=4.5,y=4.5}, + makes_footstep_sound = true, + view_range = 16, + walk_velocity = 0.5, + run_velocity = 2.5, + damage = 6, + drops = { + {name = "ethereal:tree_sapling", + chance = 3, + min = 1, + max = 2,}, + {name = "ethereal:jungle_tree_sapling", + chance = 3, + min = 1, + max = 2,}, + {name = "default:apple", + chance = 2, + min = 1, + max = 5, + }, + }, + light_resistant = true, + armor = 80, + drawtype = "front", + water_damage = 1, + lava_damage = 5, + light_damage = 2, + disable_fall_damage = true, + attack_type = "dogfight", + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 0, + stand_end = 24, + walk_start = 25, + walk_end = 47, + run_start = 48, + run_end = 62, + punch_start = 48, + punch_end = 62, + }, + jump = true, + step = 1, + blood_texture = "default_wood.png", +}) +mobs:register_spawn("mobs:tree_monster", {"default:leaves", "default:jungleleaves"}, 3, -1, 7000, 1, 31000) + +-- Ethereal sapling compatibility + +if not minetest.get_modpath("ethereal") then + minetest.register_alias("ethereal:tree_sapling", "default:sapling") + minetest.register_alias("ethereal:jungle_tree_sapling", "default:junglesapling") +end diff --git a/mods/mobs/treemonster.lua~ b/mods/mobs/treemonster.lua~ new file mode 100644 index 00000000..73294ff7 --- /dev/null +++ b/mods/mobs/treemonster.lua~ @@ -0,0 +1,64 @@ + +-- Tree Monster (or Tree Gollum as I like to call it) + +mobs:register_mob("mobs:tree_monster", { + type = "monster", + hp_min = 40, + hp_max = 50, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_tree_monster.x", + textures = {"mobs_tree_monster.png"}, + visual_size = {x=4.5,y=4.5}, + makes_footstep_sound = true, + view_range = 16, + walk_velocity = 0.5, + run_velocity = 2.5, + damage = 6, + drops = { + {name = "ethereal:tree_sapling", + chance = 3, + min = 1, + max = 2,}, + {name = "ethereal:jungle_tree_sapling", + chance = 3, + min = 1, + max = 2,}, + {name = "default:apple", + chance = 2, + min = 1, + max = 5, + }, + }, + light_resistant = true, + armor = 80, + drawtype = "front", + water_damage = 1, + lava_damage = 5, + light_damage = 2, + disable_fall_damage = true, + attack_type = "dogfight", + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 0, + stand_end = 24, + walk_start = 25, + walk_end = 47, + run_start = 48, + run_end = 62, + punch_start = 48, + punch_end = 62, + }, + jump = true, + step = 1, + blood_texture = "default_wood.png", +}) +mobs:register_spawn("mobs:tree_monster", {"default:leaves", "default:jungleleaves"}, 3, -1, 7000, 1, 31000) + +-- Ethereal sapling compatibility + +if not minetest.get_modpath("ethereal") then + minetest.register_alias("ethereal:tree_sapling", "default:sapling") + minetest.register_alias("ethereal:jungle_tree_sapling", "default:junglesapling") +end diff --git a/mods/mobs/warthog.lua b/mods/mobs/warthog.lua new file mode 100644 index 00000000..061c490c --- /dev/null +++ b/mods/mobs/warthog.lua @@ -0,0 +1,80 @@ +-- Warthog + +mobs:register_mob("mobs:pumba", { + type = "animal", + hp_min = 10, + hp_max = 15, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, + textures = {"mobs_pumba.png"}, + visual = "mesh", + mesh = "mobs_pumba.x", + makes_footstep_sound = true, + walk_velocity = 2, + armor = 200, + drops = { + {name = "mobs:pork_raw", + chance = 1, + min = 2, + max = 3,}, + }, + drawtype = "front", + water_damage = 1, + lava_damage = 5, + light_damage = 0, + sounds = { + random = "mobs_pig", + }, + animation = { + speed_normal = 15, + stand_start = 25, + stand_end = 55, + walk_start = 70, + walk_end = 100, + }, + follow = "farming:wheat", + view_range = 8, +jump = true, +step = 1, +passive = true, +blood_texture = "mobs_blood.png", + + on_rightclick = function(self, clicker) + local item = clicker:get_wielded_item() + if item:get_name() == "farming:wheat" then + if not minetest.setting_getbool("creative_mode") then + item:take_item() + clicker:set_wielded_item(item) + end + self.food = (self.food or 0) + 1 + if self.food >= 8 then + self.food = 0 + self.tamed = true + minetest.sound_play("mobs_pig", {object = self.object,gain = 1.0,max_hear_distance = 32,loop = false,}) + end + return + end + end, + +}) +mobs:register_spawn("mobs:pumba", {"default:dirt_with_grass"}, 20, 8, 9000, 1, 31000) + +-- Porkchops + +minetest.register_craftitem("mobs:pork_raw", { + description = "Raw Porkchop", + inventory_image = "mobs_pork_raw.png", + on_use = minetest.item_eat(4), +}) + +minetest.register_craftitem("mobs:pork_cooked", { + description = "Cooked Porkchop", + inventory_image = "mobs_pork_cooked.png", + on_use = minetest.item_eat(8), +}) + +minetest.register_craft({ + type = "cooking", + output = "mobs:pork_cooked", + recipe = "mobs:pork_raw", + cooktime = 5, +}) diff --git a/mods/mobs/warthog.lua~ b/mods/mobs/warthog.lua~ new file mode 100644 index 00000000..a31240c1 --- /dev/null +++ b/mods/mobs/warthog.lua~ @@ -0,0 +1,80 @@ +-- Warthog + +mobs:register_mob("mobs:pumba", { + type = "animal", + hp_min = 10, + hp_max = 15, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, + textures = {"mobs_pumba.png"}, + visual = "mesh", + mesh = "mobs_pumba.x", + makes_footstep_sound = true, + walk_velocity = 2, + armor = 200, + drops = { + {name = "mobs:pork_raw", + chance = 1, + min = 2, + max = 3,}, + }, + drawtype = "front", + water_damage = 1, + lava_damage = 5, + light_damage = 0, + sounds = { + random = "mobs_pig", + }, + animation = { + speed_normal = 15, + stand_start = 25, + stand_end = 55, + walk_start = 70, + walk_end = 100, + }, + follow = "farming:wheat", + view_range = 5, +jump = true, +step = 1, +passive = true, +blood_texture = "mobs_blood.png", + + on_rightclick = function(self, clicker) + local item = clicker:get_wielded_item() + if item:get_name() == "farming:wheat" then + if not minetest.setting_getbool("creative_mode") then + item:take_item() + clicker:set_wielded_item(item) + end + self.food = (self.food or 0) + 1 + if self.food >= 8 then + self.food = 0 + self.tamed = true + minetest.sound_play("mobs_pig", {object = self.object,gain = 1.0,max_hear_distance = 32,loop = false,}) + end + return + end + end, + +}) +mobs:register_spawn("mobs:pumba", {"default:dirt_with_grass"}, 20, 8, 9000, 1, 31000) + +-- Porkchops + +minetest.register_craftitem("mobs:pork_raw", { + description = "Raw Porkchop", + inventory_image = "mobs_pork_raw.png", + on_use = minetest.item_eat(4), +}) + +minetest.register_craftitem("mobs:pork_cooked", { + description = "Cooked Porkchop", + inventory_image = "mobs_pork_cooked.png", + on_use = minetest.item_eat(8), +}) + +minetest.register_craft({ + type = "cooking", + output = "mobs:pork_cooked", + recipe = "mobs:pork_raw", + cooktime = 5, +}) diff --git a/mods/money/README.txt b/mods/money/README.txt new file mode 100755 index 00000000..336850b9 --- /dev/null +++ b/mods/money/README.txt @@ -0,0 +1,33 @@ +Minetest 0.4 mod: money +======================= + +This can be found in: + https://github.com/kotolegokot/minetest-mod-money + +License of source code +---------------------- +Copyright (C) 2012 kotolegokot, Oleg Matveev +See README.txt in each mod directory for information about other authors. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 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, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +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 +----------------------- +Copyright (C) 2012 kotolegokot, Oleg Matveev diff --git a/mods/money/depends.txt b/mods/money/depends.txt new file mode 100755 index 00000000..2a64c3c9 --- /dev/null +++ b/mods/money/depends.txt @@ -0,0 +1,2 @@ +default +locked_sign \ No newline at end of file diff --git a/mods/money/init.lua b/mods/money/init.lua new file mode 100755 index 00000000..c24974ab --- /dev/null +++ b/mods/money/init.lua @@ -0,0 +1,699 @@ +--[[ + Mod by kotolegokot + Version 2012.8.12.0 +]] + +dofile(minetest.get_modpath("money") .. "/settings.txt") --Loading settings. + +--Loading accounts +local accounts = {} +local input = io.open(minetest.get_worldpath() .. "/accounts", "r") +if input then + accounts = minetest.deserialize(input:read("*l")) + io.close(input) +end +--End + +--Global functions. +money = {} +function money.save_accounts() + local output = io.open(minetest.get_worldpath() .. "/accounts", "w") + output:write(minetest.serialize(accounts)) + io.close(output) +end +function money.set_money(name, amount) + accounts[name].money = amount + money.save_accounts() +end +function money.get_money(name) + return accounts[name].money +end +function money.freeze(name) + accounts[name].frozen = true + money.save_accounts() +end +function money.unfreeze(name) + accounts[name].frozen = false + money.save_accounts() +end +function money.is_frozen(name) + return accounts[name].frozen or false +end +function money.exist(name) + return accounts[name] ~= nil +end +--End. + +--Local functions +local save_accounts = money.save_accounts +local set_money = money.set_money +local get_money = money.get_money +local freeze = money.freeze +local unfreeze = money.unfreeze +local is_frozen = money.is_frozen +local exist = money.exist +--End. + +--Creates player's account, if the player doesn't have it. +minetest.register_on_joinplayer(function(player) + name = player:get_player_name() + if not exist(name) then + local input = io.open(minetest.get_worldpath() .. "/money_" .. name .. ".txt") --For compatible with old versions. + if input then + local n = input:read("*n") + io.close(input) + accounts[name] = {money = n} + os.remove(minetest.get_worldpath() .. "/money_" .. name .. ".txt") + save_accounts() + else + accounts[name] = {money = INITIAL_MONEY} + end + end +end) +--End. + +--Registration privileges. +minetest.register_privilege("money", "Can use /money [pay ] command") +minetest.register_privilege("money_admin", { + description = "Can use /money | freeze/unfreeze | take/set/inc/dec ", + give_to_singleplayer = false, +}) +--End. + +--Registration "money" command. +minetest.register_chatcommand("money", { + privs = {money=true}, + params = "[ | freeze/unfreeze | pay/take/set/inc/dec ]", + description = "Operations with money", + func = function(name, param) + if param == "" then --/money + minetest.chat_send_player(name, "Account " .. name .. ":") + minetest.chat_send_player(name, " money: " .. CURRENCY_PREFIX .. get_money(name) .. CURRENCY_POSTFIX .. ";") + local is_f = "no" + if is_frozen(name) then is_f = "yes" end + minetest.chat_send_player(name, " is frozen: " .. is_f .. ".") + return true + end + local m = string.split(param, " ") + local param1, param2, param3 = m[1], m[2], m[3] + if param1 and not param2 then --/money + if minetest.get_player_privs(name)["money_admin"] then + if exist(param1) then + minetest.chat_send_player(name, "Account " .. param1 .. ":") + minetest.chat_send_player(name, " money: " .. CURRENCY_PREFIX .. get_money(param1) .. CURRENCY_POSTFIX .. ";") + local is_f = "no" + if is_frozen(name) then is_f = "yes" end + minetest.chat_send_player(name, " is frozen: " .. is_f .. ".") + else + minetest.chat_send_player(name, "\"" .. param1 .. "\" account don't exist.") + end + else + minetest.chat_send_player(name, "You don't have permission to run this command (missing privileges: money_admin)") + end + return true + end + if param1 and param2 and not param3 then --/money freeze/unfreeze + if param1 == "freeze" or param1 == "unfreeze" then + if minetest.get_player_privs(name)["money_admin"] then + if exist(param2) then + if param1 == "freeze" then + freeze(param2) + minetest.chat_send_player(name, "\"" .. param2 .. "\" account is frozen.") + else + unfreeze(param2) + minetest.chat_send_player(name, "\"" .. param2 .. "\" account isn't frozen.") + end + else + minetest.chat_send_player(name, "\"" .. param2 .. "\" account don't exist.") + end + return true + else + minetest.chat_send_player(name, "You don't have permission to run this command (missing privileges: money_admin)") + end + end + end + if param1 and param2 and param3 then --/money pay/take/set/inc/dec + if param1 == "pay" or param1 == "take" or param1 == "set" or param1 == "inc" or param1 == "dec" then + if exist(param2) then + if tonumber(param3) then + if tonumber(param3) >= 0 then + param3 = tonumber(param3) + if param1 == "pay" then + if not is_frozen(name) then + if not is_frozen(param2) then + if get_money(name) >= param3 then + set_money(param2, get_money(param2) + param3) + set_money(name, get_money(name) - param3) + minetest.chat_send_player(param2, name .. " sent you " .. CURRENCY_PREFIX .. param3 .. CURRENCY_POSTFIX .. ".") + minetest.chat_send_player(name, param2 .. " took your " .. CURRENCY_PREFIX .. param3 .. CURRENCY_POSTFIX .. ".") + else + minetest.chat_send_player(name, "You don't have enough " .. CURRENCY_PREFIX .. amount - get_money(name) .. CURRENCY_POSTFIX .. ".") + end + else + minetest.chat_send_player(name, "\"" .. param2 .. "\" account is frozen.") + end + else + minetest.chat_send_player(name, "Your account is frozen.") + end + return true + end + if minetest.get_player_privs(name)["money_admin"] then + if is_frozen(param2) then + minetest.chat_send_player(name, "Note: \"" .. param2 .. "\" account is frozen.") + end + if param1 == "take" then + if get_money(param2) >= param3 then + set_money(param2, get_money(param2) - param3) + set_money(name, get_money(name) + param3) + minetest.chat_send_player(param2, name .. " took your " .. CURRENCY_PREFIX .. param3 .. CURRENCY_POSTFIX .. ".") + minetest.chat_send_player(name, "You took " .. param2 .. "'s " .. CURRENCY_PREFIX .. param3 .. CURRENCY_POSTFIX .. ".") + else + minetest.chat_send_player(name, "Player named \""..param2.."\" do not have enough " .. CURRENCY_PREFIX .. param3 - get_money(player) .. CURRENCY_POSTFIX .. ".") + end + elseif param1 == "set" then + set_money(param2, param3) + minetest.chat_send_player(name, param2 .. " " .. CURRENCY_PREFIX .. param3 .. CURRENCY_POSTFIX) + elseif param1 == "inc" then + set_money(param2, get_money(param2) + param3) + minetest.chat_send_player(name, param2 .. " " .. CURRENCY_PREFIX .. get_money(param2) .. CURRENCY_POSTFIX) + elseif param1 == "dec" then + if get_money(param2) >= param3 then + set_money(param2, get_money(param2) - param3) + minetest.chat_send_player(name, param2 .. " " .. CURRENCY_PREFIX .. get_money(param2) .. CURRENCY_POSTFIX) + else + minetest.chat_send_player(name, "Player named \""..param2.."\" do not have enough " .. CURRENCY_PREFIX .. param3 - get_money(player) .. CURRENCY_POSTFIX .. ".") + end + end + else + minetest.chat_send_player(name, "You don't have permission to run this command (missing privileges: money_admin)") + end + else + minetest.chat_send_player(name, "Amount must be greater than -1.") + end + else + minetest.chat_send_player(name, "Amount must be a number.") + end + else + minetest.chat_send_player(name, "\"" .. param2 .. "\" account don't exist.") + end + return true + end + end + minetest.chat_send_player(name, "Invalid parameters (see /help money)") + end, +}) +--End. + +local function has_shop_privilege(meta, player)--Does player have permissions for this shop? + return player:get_player_name() == meta:get_string("owner") or minetest.get_player_privs(player:get_player_name())["money_admin"] +end + +--Shop. +minetest.register_node("money:shop", { + description = "Shop", + tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png", + "default_chest_side.png", "default_chest_side.png", "money_shop_front.png"}, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), + paramtype2 = "facedir", + after_place_node = function(pos, placer) + local meta = minetest.env:get_meta(pos) + meta:set_string("owner", placer:get_player_name()) + meta:set_string("infotext", "Untuned Shop (owned by " .. placer:get_player_name() .. ")") + end, + on_construct = function(pos) + local meta = minetest.env:get_meta(pos) + meta:set_string("formspec", "size[8,6.6]".. + "field[0.256,0.5;8,1;shopname;Name of your shop:;]".. + "field[0.256,1.5;8,1;action;Do you want buy(B) or sell(S) or buy and sell(BS):;]".. + "field[0.256,2.5;8,1;nodename;Name of node, that you want buy or/and sell:;]".. + "field[0.256,3.5;8,1;amount;Amount of these nodes:;]".. + "field[0.256,4.5;8,1;costbuy;Cost of purchase, if you buy nodes:;]".. + "field[0.256,5.5;8,1;costsell;Cost of sales, if you sell nodes:;]".. + "button_exit[3.1,6;2,1;button;Proceed]") + meta:set_string("infotext", "Untuned Shop") + meta:set_string("owner", "") + local inv = meta:get_inventory() + inv:set_size("main", 8*4) + meta:set_string("form", "yes") + end, + can_dig = function(pos,player) + local meta = minetest.env:get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") and (meta:get_string("owner") == player:get_player_name() or minetest.get_player_privs(player:get_player_name())["money_admin"]) + end, + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.env:get_meta(pos) + if not has_shop_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a shop belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos)) + return 0 + end + return count + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.env:get_meta(pos) + if not has_shop_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a shop belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos)) + return 0 + end + return stack:get_count() + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.env:get_meta(pos) + if not has_shop_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a shop belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos)) + return 0 + end + return stack:get_count() + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name().. + " moves stuff in shop 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 shop at "..minetest.pos_to_string(pos)) + end, + on_metadata_inventory_take = function(pos, listname, index, count, player) + minetest.log("action", player:get_player_name().. + " takes stuff from shop at "..minetest.pos_to_string(pos)) + end, + on_receive_fields = function(pos, formname, fields, sender) + local meta = minetest.env:get_meta(pos) + if meta:get_string("form") == "yes" then + if fields.shopname ~= "" and (fields.action == "B" or fields.action == "S" or fields.action == "BS") and minetest.registered_items[fields.nodename] and tonumber(fields.amount) and tonumber(fields.amount) >= 1 and (meta:get_string("owner") == sender:get_player_name() or minetest.get_player_privs(sender:get_player_name())["money_admin"]) then + if fields.action == "B" then + if not tonumber(fields.costbuy) then + return + end + if not (tonumber(fields.costbuy) >= 0) then + return + end + end + if fields.action == "S" then + if not tonumber(fields.costsell) then + return + end + if not (tonumber(fields.costsell) >= 0) then + return + end + end + if fields.action == "BS" then + if not tonumber(fields.costbuy) then + return + end + if not (tonumber(fields.costbuy) >= 0) then + return + end + if not tonumber(fields.costsell) then + return + end + if not (tonumber(fields.costsell) >= 0) then + return + end + end + local s, ss + if fields.action == "B" then + s = " sell " + ss = "button[1,5;2,1;buttonsell;Sell("..fields.costbuy..")]" + elseif fields.action == "S" then + s = " buy " + ss = "button[1,5;2,1;buttonbuy;Buy("..fields.costsell..")]" + else + s = " buy and sell " + ss = "button[1,5;2,1;buttonbuy;Buy("..fields.costsell..")]" .. "button[5,5;2,1;buttonsell;Sell("..fields.costbuy..")]" + end + local meta = minetest.env:get_meta(pos) + meta:set_string("formspec", "size[8,10;]".. + "list[context;main;0,0;8,4;]".. + "label[0.256,4.5;You can"..s..fields.amount.." "..fields.nodename.."]".. + ss.. + "list[current_player;main;0,6;8,4;]") + meta:set_string("shopname", fields.shopname) + meta:set_string("nodename", fields.nodename) + meta:set_string("amount", fields.amount) + meta:set_string("costbuy", fields.costsell) + meta:set_string("costsell", fields.costbuy) + meta:set_string("infotext", "Shop \"" .. fields.shopname .. "\" (owned by " .. meta:get_string("owner") .. ")") + meta:set_string("form", "no") + end + elseif fields["buttonbuy"] then + local sender_name = sender:get_player_name() + local inv = meta:get_inventory() + local sender_inv = sender:get_inventory() + if not inv:contains_item("main", meta:get_string("nodename") .. " " .. meta:get_string("amount")) then + minetest.chat_send_player(sender_name, "In the shop is not enough goods.") + return true + elseif not sender_inv:room_for_item("main", meta:get_string("nodename") .. " " .. meta:get_string("amount")) then + minetest.chat_send_player(sender_name, "In your inventory is not enough space.") + return true + elseif get_money(sender_name) - tonumber(meta:get_string("costbuy")) < 0 then + minetest.chat_send_player(sender_name, "You do not have enough money.") + return true + end + set_money(sender_name, get_money(sender_name) - meta:get_string("costbuy")) + set_money(meta:get_string("owner"), get_money(meta:get_string("owner")) + meta:get_string("costbuy")) + sender_inv:add_item("main", meta:get_string("nodename") .. " " .. meta:get_string("amount")) + inv:remove_item("main", meta:get_string("nodename") .. " " .. meta:get_string("amount")) + minetest.chat_send_player(sender_name, "You bought " .. meta:get_string("amount") .. " " .. meta:get_string("nodename") .. " at a price of " .. CURRENCY_PREFIX .. meta:get_string("costbuy") .. CURRENCY_POSTFIX .. ".") + elseif fields["buttonsell"] then + local sender_name = sender:get_player_name() + local inv = meta:get_inventory() + local sender_inv = sender:get_inventory() + if not sender_inv:contains_item("main", meta:get_string("nodename") .. " " .. meta:get_string("amount")) then + minetest.chat_send_player(sender_name, "You do not have enough product.") + return true + elseif not inv:room_for_item("main", meta:get_string("nodename") .. " " .. meta:get_string("amount")) then + minetest.chat_send_player(sender_name, "In the shop is not enough space.") + return true + elseif get_money(meta:get_string("owner")) - meta:get_string("costsell") < 0 then + minetest.chat_send_player(sender_name, "The buyer is not enough money.") + return true + end + set_money(sender_name, get_money(sender_name) + meta:get_string("costsell")) + set_money(meta:get_string("owner"), get_money(meta:get_string("owner")) - meta:get_string("costsell")) + sender_inv:remove_item("main", meta:get_string("nodename") .. " " .. meta:get_string("amount")) + inv:add_item("main", meta:get_string("nodename") .. " " .. meta:get_string("amount")) + minetest.chat_send_player(sender_name, "You sold " .. meta:get_string("amount") .. " " .. meta:get_string("nodename") .. " at a price of " .. CURRENCY_PREFIX .. meta:get_string("costsell") .. CURRENCY_POSTFIX .. ".") + end + end, + }) +--End. + +minetest.register_craft({--Shop recipe. + output = "money:shop", + recipe = { + {"default:chest_locked"}, + {"locked_sign:sign_wall_locked"}, + }, +}) + +minetest.register_alias("shop", "money:shop") + +--Barter shop. +minetest.register_node("money:barter_shop", { + description = "Barter Shop", + tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png", + "default_chest_side.png", "default_chest_side.png", "money_barter_shop_front.png"}, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), + paramtype2 = "facedir", + after_place_node = function(pos, placer) + local meta = minetest.env:get_meta(pos) + meta:set_string("owner", placer:get_player_name()) + meta:set_string("infotext", "Untuned Barter Shop (owned by " .. placer:get_player_name() .. ")") + end, + on_construct = function(pos) + local meta = minetest.env:get_meta(pos) + meta:set_string("formspec", "size[8,5.6]".. + "field[0.256,0.5;8,1;bartershopname;Name of your barter shop:;]".. + "field[0.256,1.5;8,1;nodename1;What kind of a node do you want to exchange:;]".. + "field[0.256,2.5;8,1;nodename2;for:;]".. + "field[0.256,3.5;8,1;amount1;Amount of first kind of node:;]".. + "field[0.256,4.5;8,1;amount2;Amount of second kind of node:;]".. + "button_exit[3.1,5;2,1;button;Proceed]") + meta:set_string("infotext", "Untuned Barter Shop") + meta:set_string("owner", "") + meta:set_string("form", "yes") + end, + can_dig = function(pos,player) + local meta = minetest.env:get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") and (meta:get_string("owner") == player:get_player_name() or minetest.get_player_privs(player:get_player_name())["money_admin"]) + end, + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.env:get_meta(pos) + if not has_shop_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a barter shop belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos)) + return 0 + end + return count + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.env:get_meta(pos) + if not has_shop_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a barter shop belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos)) + return 0 + end + return stack:get_count() + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.env:get_meta(pos) + if not has_shop_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a barter shop belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos)) + return 0 + end + return stack:get_count() + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name().. + " moves stuff in barter shop 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 barter shop at "..minetest.pos_to_string(pos)) + end, + on_metadata_inventory_take = function(pos, listname, index, count, player) + minetest.log("action", player:get_player_name().. + " takes stuff from barter shop at "..minetest.pos_to_string(pos)) + end, + on_receive_fields = function(pos, formname, fields, sender) + local meta = minetest.env:get_meta(pos) + if meta:get_string("form") == "yes" then + if fields.bartershopname ~= "" and minetest.registered_items[fields.nodename1] and minetest.registered_items[fields.nodename2] and tonumber(fields.amount1) and tonumber(fields.amount1) >= 1 and tonumber(fields.amount2) and tonumber(fields.amount2) >= 1 and (meta:get_string("owner") == sender:get_player_name() or minetest.get_player_privs(sender:get_player_name())["money_admin"]) then + meta:set_string("formspec", "size[8,10;]".. + "list[context;main;0,0;8,4;]".. + "label[0.256,4.5;"..fields.amount2.." "..fields.nodename2.." --> "..fields.amount1.." "..fields.nodename1.."]".. + "button[3.1,5;2,1;button;Exchange]".. + "list[current_player;main;0,6;8,4;]") + meta:set_string("bartershopname", fields.bartershopname) + meta:set_string("nodename1", fields.nodename1) + meta:set_string("nodename2", fields.nodename2) + meta:set_string("amount1", fields.amount1) + meta:set_string("amount2", fields.amount2) + meta:set_string("infotext", "Barter Shop \"" .. fields.bartershopname .. "\" (owned by " .. meta:get_string("owner") .. ")") + local inv = meta:get_inventory() + inv:set_size("main", 8*4) + meta:set_string("form", "no") + end + elseif fields["button"] then + local sender_name = sender:get_player_name() + local inv = meta:get_inventory() + local sender_inv = sender:get_inventory() + if not inv:contains_item("main", meta:get_string("nodename1") .. " " .. meta:get_string("amount1")) then + minetest.chat_send_player(sender_name, "In the barter shop is not enough goods.") + return + elseif not sender_inv:contains_item("main", meta:get_string("nodename2") .. " " .. meta:get_string("amount2")) then + minetest.chat_send_player(sender_name, "In your inventory is not enough goods.") + return + elseif not inv:room_for_item("main", meta:get_string("nodename2") .. " " .. meta:get_string("amount2")) then + minetest.chat_send_player(sender_name, "In the barter shop is not enough space.") + return + elseif not sender_inv:room_for_item("main", meta:get_string("nodename1") .. " " .. meta:get_string("amount1")) then + minetest.chat_send_player(sender_name, "In your inventory is not enough space.") + return + end + inv:remove_item("main", meta:get_string("nodename1") .. " " .. meta:get_string("amount1")) + sender_inv:remove_item("main", meta:get_string("nodename2") .. " " .. meta:get_string("amount2")) + inv:add_item("main", meta:get_string("nodename2") .. " " .. meta:get_string("amount2")) + sender_inv:add_item("main", meta:get_string("nodename1") .. " " .. meta:get_string("amount1")) + minetest.chat_send_player(sender_name, "You exchanged " .. meta:get_string("amount2") .. " " .. meta:get_string("nodename2") .. " on " .. meta:get_string("amount1") .. " " .. meta:get_string("nodename1") .. ".") + end + end, +}) +--End. + +minetest.register_craft({--Barter shop recipe. + output = "money:barter_shop", + recipe = { + {"locked_sign:sign_wall_locked"}, + {"default:chest_locked"}, + }, +}) + +minetest.register_alias("barter_shop", "money:barter_shop") + +--Admin shop. +minetest.register_node("money:admin_shop", { + description = "Admin Shop", + tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png", + "default_chest_side.png", "default_chest_side.png", "money_admin_shop_front.png"}, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), + paramtype2 = "facedir", + on_construct = function(pos) + local meta = minetest.env:get_meta(pos) + meta:set_string("infotext", "Untuned Admin Shop") + meta:set_string("formspec", "size[8,5.6]".. + "field[0.256,0.5;8,1;action;Do you want buy(B) or sell(S) or buy and sell(BS):;]".. + "field[0.256,1.5;8,1;nodename;Name of node, that you want buy or/and sell:;]".. + "field[0.256,2.5;8,1;amount;Amount of these nodes:;]".. + "field[0.256,3.5;8,1;costbuy;Cost of purchase, if you buy nodes:;]".. + "field[0.256,4.5;8,1;costsell;Cost of sales, if you sell nodes:;]".. + "button_exit[3.1,5;2,1;button;Proceed]") + meta:set_string("form", "yes") + end, + can_dig = function(pos,player) + return minetest.get_player_privs(player:get_player_name())["money_admin"] + end, + on_receive_fields = function(pos, formname, fields, sender) + local meta = minetest.env:get_meta(pos) + if meta:get_string("form") == "yes" then + if (fields.action == "B" or fields.action == "S" or fields.action == "BS") and minetest.registered_items[fields.nodename] and tonumber(fields.amount) and tonumber(fields.amount) >= 1 and (meta:get_string("owner") == sender:get_player_name() or minetest.get_player_privs(sender:get_player_name())["money_admin"]) then + if fields.action == "B" then + if not tonumber(fields.costbuy) then + return + end + if not (tonumber(fields.costbuy) >= 0) then + return + end + end + if fields.action == "S" then + if not tonumber(fields.costsell) then + return + end + if not (tonumber(fields.costsell) >= 0) then + return + end + end + if fields.action == "BS" then + if not tonumber(fields.costbuy) then + return + end + if not (tonumber(fields.costbuy) >= 0) then + return + end + if not tonumber(fields.costsell) then + return + end + if not (tonumber(fields.costsell) >= 0) then + return + end + end + local s, ss + if fields.action == "B" then + s = " sell " + ss = "button[1,0.5;2,1;buttonsell;Sell("..fields.costbuy..")]" + elseif fields.action == "S" then + s = " buy " + ss = "button[1,0.5;2,1;buttonbuy;Buy("..fields.costsell..")]" + else + s = " buy and sell " + ss = "button[1,0.5;2,1;buttonbuy;Buy("..fields.costsell..")]" .. "button[5,0.5;2,1;buttonsell;Sell("..fields.costbuy..")]" + end + local meta = minetest.env:get_meta(pos) + meta:set_string("formspec", "size[8,5.5;]".. + "label[0.256,0;You can"..s..fields.amount.." "..fields.nodename.."]".. + ss.. + "list[current_player;main;0,1.5;8,4;]") + meta:set_string("nodename", fields.nodename) + meta:set_string("amount", fields.amount) + meta:set_string("costbuy", fields.costsell) + meta:set_string("costsell", fields.costbuy) + meta:set_string("infotext", "Admin Shop") + meta:set_string("form", "no") + end + elseif fields["buttonbuy"] then + local sender_name = sender:get_player_name() + local sender_inv = sender:get_inventory() + if not sender_inv:room_for_item("main", meta:get_string("nodename") .. " " .. meta:get_string("amount")) then + minetest.chat_send_player(sender_name, "In your inventory is not enough space.") + return true + elseif get_money(sender_name) - tonumber(meta:get_string("costbuy")) < 0 then + minetest.chat_send_player(sender_name, "You do not have enough money.") + return true + end + set_money(sender_name, get_money(sender_name) - meta:get_string("costbuy")) + sender_inv:add_item("main", meta:get_string("nodename") .. " " .. meta:get_string("amount")) + minetest.chat_send_player(sender_name, "You bought " .. meta:get_string("amount") .. " " .. meta:get_string("nodename") .. " at a price of " .. CURRENCY_PREFIX .. meta:get_string("costbuy") .. CURRENCY_POSTFIX .. ".") + elseif fields["buttonsell"] then + local sender_name = sender:get_player_name() + local sender_inv = sender:get_inventory() + if not sender_inv:contains_item("main", meta:get_string("nodename") .. " " .. meta:get_string("amount")) then + minetest.chat_send_player(sender_name, "You do not have enough product.") + return true + end + set_money(sender_name, get_money(sender_name) + meta:get_string("costsell")) + sender_inv:remove_item("main", meta:get_string("nodename") .. " " .. meta:get_string("amount")) + minetest.chat_send_player(sender_name, "You sold " .. meta:get_string("amount") .. " " .. meta:get_string("nodename") .. " at a price of " .. CURRENCY_PREFIX .. meta:get_string("costsell") .. CURRENCY_POSTFIX .. ".") + end + end, + }) +--End. + +minetest.register_alias("admin_shop", "money:admin_shop") + +--Admin barter shop. +minetest.register_node("money:admin_barter_shop", { + description = "Admin Barter Shop", + tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png", + "default_chest_side.png", "default_chest_side.png", "money_admin_barter_shop_front.png"}, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), + paramtype2 = "facedir", + on_construct = function(pos) + local meta = minetest.env:get_meta(pos) + meta:set_string("formspec", "size[8,4.6]".. + "field[0.256,0.5;8,1;nodename1;What kind of a node do you want to exchange:;]".. + "field[0.256,1.5;8,1;nodename2;for:;]".. + "field[0.256,2.5;8,1;amount1;Amount of first kind of node:;]".. + "field[0.256,3.5;8,1;amount2;Amount of second kind of node:;]".. + "button_exit[3.1,4;2,1;button;Proceed]") + meta:set_string("infotext", "Untuned Admin Barter Shop") + meta:set_string("form", "yes") + end, + can_dig = function(pos,player) + return minetest.get_player_privs(player:get_player_name())["money_admin"] + end, + on_receive_fields = function(pos, formname, fields, sender) + local meta = minetest.env:get_meta(pos) + if meta:get_string("form") == "yes" then + if minetest.registered_items[fields.nodename1] and minetest.registered_items[fields.nodename2] and tonumber(fields.amount1) and tonumber(fields.amount1) >= 1 and tonumber(fields.amount2) and tonumber(fields.amount2) >= 1 and (meta:get_string("owner") == sender:get_player_name() or minetest.get_player_privs(sender:get_player_name())["money_admin"]) then + meta:set_string("formspec", "size[8,6;]".. + "label[0.256,0.0;"..fields.amount2.." "..fields.nodename2.." --> "..fields.amount1.." "..fields.nodename1.."]".. + "button[3.1,0.5;2,1;button;Exchange]".. + "list[current_player;main;0,1.5;8,4;]") + meta:set_string("nodename1", fields.nodename1) + meta:set_string("nodename2", fields.nodename2) + meta:set_string("amount1", fields.amount1) + meta:set_string("amount2", fields.amount2) + meta:set_string("infotext", "Admin Barter Shop") + meta:set_string("form", "no") + end + elseif fields["button"] then + local sender_name = sender:get_player_name() + local sender_inv = sender:get_inventory() + if not sender_inv:contains_item("main", meta:get_string("nodename2") .. " " .. meta:get_string("amount2")) then + minetest.chat_send_player(sender_name, "In your inventory is not enough goods.") + return + elseif not sender_inv:room_for_item("main", meta:get_string("nodename1") .. " " .. meta:get_string("amount1")) then + minetest.chat_send_player(sender_name, "In your inventory is not enough space.") + return + end + sender_inv:remove_item("main", meta:get_string("nodename2") .. " " .. meta:get_string("amount2")) + sender_inv:add_item("main", meta:get_string("nodename1") .. " " .. meta:get_string("amount1")) + minetest.chat_send_player(sender_name, "You exchanged " .. meta:get_string("amount2") .. " " .. meta:get_string("nodename2") .. " on " .. meta:get_string("amount1") .. " " .. meta:get_string("nodename1") .. ".") + end + end, +}) +--End. + +minetest.register_alias("admin_barter_shop", "money:admin_barter_shop") diff --git a/mods/money/settings.txt b/mods/money/settings.txt new file mode 100755 index 00000000..da4e363d --- /dev/null +++ b/mods/money/settings.txt @@ -0,0 +1,3 @@ +INITIAL_MONEY = 2000 +CURRENCY_PREFIX = "" +CURRENCY_POSTFIX = " money" diff --git a/mods/money/textures/MineToon/money_admin_barter_shop_front.png b/mods/money/textures/MineToon/money_admin_barter_shop_front.png new file mode 100755 index 00000000..3c85ab2d Binary files /dev/null and b/mods/money/textures/MineToon/money_admin_barter_shop_front.png differ diff --git a/mods/money/textures/MineToon/money_admin_shop_front.png b/mods/money/textures/MineToon/money_admin_shop_front.png new file mode 100755 index 00000000..3c85ab2d Binary files /dev/null and b/mods/money/textures/MineToon/money_admin_shop_front.png differ diff --git a/mods/money/textures/MineToon/money_barter_shop_front.png b/mods/money/textures/MineToon/money_barter_shop_front.png new file mode 100755 index 00000000..2a217c0a Binary files /dev/null and b/mods/money/textures/MineToon/money_barter_shop_front.png differ diff --git a/mods/money/textures/MineToon/money_shop_front.png b/mods/money/textures/MineToon/money_shop_front.png new file mode 100755 index 00000000..2a217c0a Binary files /dev/null and b/mods/money/textures/MineToon/money_shop_front.png differ diff --git a/mods/money/textures/money_admin_barter_shop_front.png b/mods/money/textures/money_admin_barter_shop_front.png new file mode 100755 index 00000000..7e7f7e75 Binary files /dev/null and b/mods/money/textures/money_admin_barter_shop_front.png differ diff --git a/mods/money/textures/money_admin_shop_front.png b/mods/money/textures/money_admin_shop_front.png new file mode 100755 index 00000000..7e7f7e75 Binary files /dev/null and b/mods/money/textures/money_admin_shop_front.png differ diff --git a/mods/money/textures/money_barter_shop_front.png b/mods/money/textures/money_barter_shop_front.png new file mode 100755 index 00000000..aa19907d Binary files /dev/null and b/mods/money/textures/money_barter_shop_front.png differ diff --git a/mods/money/textures/money_shop_front.png b/mods/money/textures/money_shop_front.png new file mode 100755 index 00000000..aa19907d Binary files /dev/null and b/mods/money/textures/money_shop_front.png differ diff --git a/mods/more_chests/LICENSE b/mods/more_chests/LICENSE new file mode 100755 index 00000000..22fbe5db --- /dev/null +++ b/mods/more_chests/LICENSE @@ -0,0 +1,339 @@ +GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) 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 +this service 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 make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. 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. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +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 +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the 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 a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE 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. + + 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 +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {description} + Copyright (C) {year} {fullname} + + 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 2 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, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision 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, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + {signature of Ty Coon}, 1 April 1989 + Ty Coon, President of Vice + +This 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. \ No newline at end of file diff --git a/mods/more_chests/README.md b/mods/more_chests/README.md new file mode 100755 index 00000000..d9035d2f --- /dev/null +++ b/mods/more_chests/README.md @@ -0,0 +1,46 @@ +more_chests +=========== + +More Chests + +This mod is a fork of 0gb.us's chests_0gb_us https://forum.minetest.net/viewtopic.php?f=11&t=4366 + +The following text was writen by 0gb.us +``` +Cobble Chest: +{'default:wood','default:cobble','default:wood'}, +{'default:cobble','default:steel_ingot','default:cobble'}, +{'default:wood','default:cobble','default:wood'} + +This locked chest looks like cobblestone, and has no info text. Great for hiding things in. However, unlike real cobblestone, this chest is breakable by hand. If you suspect there is one hiding, Hold the left mouse button, ant run your hand along the walls. When cracks appear, you've found the chest. + +Drop Box: +{'default:wood','','default:wood'}, +{'default:wood','default:steel_ingot','default:wood'}, +{'default:wood','default:wood','default:wood'} + +Anyone can put things in, but only the chest's placer can remove items. + +Secret Chest: +{'default:wood','default:cobble','default:wood'}, +{'default:wood','default:steel_ingot','default:wood'}, +{'default:wood','default:wood','default:wood'} + +As long as you remember to click “close” before you leave the chest, no one can see what the chest contains. Only the chest's owner can click “open” and “close” on the chest's formspec, revealing and hiding the chest's contents. + +Shared Chest: +{'default:wood','default:leaves','default:wood'}, +{'default:wood','default:steel_ingot','default:wood'}, +{'default:wood','default:wood','default:wood'} + +Exactly what it sounds like. The chest's placer can add people to the chest's shared list using the chest's formspec. Warning: anyone you add may empty the chest. When the chest is empty, it can be mined by anyone, just like a regular locked chest. + +Wifi Chest + +{'default:wood','default:mese','default:wood'}, +{'default:wood','default:steel_ingot','default:wood'}, +{'default:wood','default:wood','default:wood'} + +A wacky chest that doesn't store it's items in the usual way, but instead, stores them remotely. For that reason, all wifi chests appear to have the same inventory. Due to not actually having an inventory, wifi chests can also be mined, even when they appear to have stuff in them. Lastly, as everyone gets their own wifi account, the items you see in the wifi chest are not the same items anyone else sees. This chest's properties make it nice for keeping secrets, as well as essentially almost doubling your inventory space, if you choose to carry one with you. + +''' diff --git a/mods/more_chests/aliases.lua b/mods/more_chests/aliases.lua new file mode 100755 index 00000000..07a86865 --- /dev/null +++ b/mods/more_chests/aliases.lua @@ -0,0 +1,6 @@ +-- Aliases for compatibility with 0gb.us's chests_0gb_us mod. +minetest.register_alias("chests_0gb_us:cobble", "more_chests:cobble") +minetest.register_alias("chests_0gb_us:wifi", "more_chests:wifi") +minetest.register_alias("chests_0gb_us:shared", "more_chests:shared") +minetest.register_alias("chests_0gb_us:secret", "more_chests:secret") +minetest.register_alias("chests_0gb_us:dropbox", "more_chests:dropbox") diff --git a/mods/more_chests/cobble.lua b/mods/more_chests/cobble.lua new file mode 100755 index 00000000..e10d4f3a --- /dev/null +++ b/mods/more_chests/cobble.lua @@ -0,0 +1,93 @@ +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("more_chests:cobble", { + description = "Cobble Chest", + tiles = {"default_cobble.png", "default_cobble.png", "default_cobble.png", + "default_cobble.png", "default_cobble.png", "cobblechest_front.png"}, + paramtype2 = "facedir", + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + after_place_node = function(pos, placer) + local meta = minetest.env:get_meta(pos) + meta:set_string("owner", placer:get_player_name() or "") +--[[ meta:set_string("infotext", "Locked Chest (owned by ".. + meta:get_string("owner")..")")]] + end, + on_construct = function(pos) + local meta = minetest.env:get_meta(pos) + meta:set_string("formspec", + "size[8,9]".. + "list[current_name;main;0,0;8,4;]".. + "list[current_player;main;0,5;8,4;]") +-- meta:set_string("infotext", "Locked Chest") + meta:set_string("owner", "") + local inv = meta:get_inventory() + inv:set_size("main", 8*4) + end, + can_dig = function(pos,player) + local meta = minetest.env:get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.env:get_meta(pos) + if not has_locked_chest_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a locked chest belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos)) + return 0 + end + return count + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.env:get_meta(pos) + if not has_locked_chest_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a locked chest belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos)) + return 0 + end + return stack:get_count() + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.env:get_meta(pos) + if not has_locked_chest_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a locked chest belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos)) + return 0 + end + return stack:get_count() + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name().. + " moves stuff in locked chest at "..minetest.pos_to_string(pos)) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " moves stuff to locked chest at "..minetest.pos_to_string(pos)) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " takes stuff from locked chest at "..minetest.pos_to_string(pos)) + end, +}) + +minetest.register_craft({ + output = 'more_chests:cobble', + recipe = { + {'default:wood','default:cobble','default:wood'}, + {'default:cobble','default:steel_ingot','default:cobble'}, + {'default:wood','default:cobble','default:wood'} + } +}) + diff --git a/mods/more_chests/depends.txt b/mods/more_chests/depends.txt new file mode 100755 index 00000000..4ad96d51 --- /dev/null +++ b/mods/more_chests/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/more_chests/dropbox.lua b/mods/more_chests/dropbox.lua new file mode 100755 index 00000000..e2b64791 --- /dev/null +++ b/mods/more_chests/dropbox.lua @@ -0,0 +1,70 @@ +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("more_chests:dropbox", { + description = "Dropbox", + tiles = {"default_chest_top.png", "default_chest_top.png", "dropbox_right.png", + "default_chest_side.png", "default_chest_side.png", "dropbox_front.png"}, + paramtype2 = "facedir", + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + after_place_node = function(pos, placer) + local meta = minetest.env:get_meta(pos) + meta:set_string("owner", placer:get_player_name() or "") + meta:set_string("infotext", "Dropbox (owned by ".. + meta:get_string("owner")..")") + end, + on_construct = function(pos) + local meta = minetest.env:get_meta(pos) + meta:set_string("formspec", + "size[8,9]".. + "list[current_name;main;0,0;8,4;]".. + "list[current_player;main;0,5;8,4;]") + meta:set_string("infotext", "Chest") + local inv = meta:get_inventory() + inv:set_size("main", 8*4) + end, + can_dig = function(pos,player) + local meta = minetest.env:get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.env:get_meta(pos) + if not has_locked_chest_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a dropbox belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos)) + return 0 + end + return stack:get_count() + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name().. + " moves stuff in dropbox 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 dropbox 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 dropbox at "..minetest.pos_to_string(pos)) + end, +}) + +minetest.register_craft({ + output = 'more_chests:dropbox', + recipe = { + {'default:wood','','default:wood'}, + {'default:wood','default:steel_ingot','default:wood'}, + {'default:wood','default:wood','default:wood'} + } +}) + diff --git a/mods/more_chests/init.lua b/mods/more_chests/init.lua new file mode 100755 index 00000000..5b161ecb --- /dev/null +++ b/mods/more_chests/init.lua @@ -0,0 +1,7 @@ +dofile(minetest.get_modpath("more_chests").."/cobble.lua") +dofile(minetest.get_modpath("more_chests").."/dropbox.lua") +dofile(minetest.get_modpath("more_chests").."/secret.lua") +dofile(minetest.get_modpath("more_chests").."/shared.lua") +dofile(minetest.get_modpath("more_chests").."/wifi.lua") +dofile(minetest.get_modpath("more_chests").."/aliases.lua") + diff --git a/mods/more_chests/secret.lua b/mods/more_chests/secret.lua new file mode 100755 index 00000000..7fc9a2fa --- /dev/null +++ b/mods/more_chests/secret.lua @@ -0,0 +1,107 @@ +local function has_locked_chest_privilege(meta, player) + if player:get_player_name() ~= meta:get_string("owner") then + return false + end + return true +end + +local open = "size[8,10]".. + "list[current_name;main;0,0;8,4;]".. + "list[current_player;main;0,5;8,4;]".. + "button[3,9;2,1;open;close]" +local closed = "size[2,1]".. + "button[0,0;2,1;open;open]" + +minetest.register_node("more_chests:secret", { + description = "Secret Chest", + tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png", + "default_chest_side.png", "default_chest_side.png", "secret_front.png"}, + paramtype2 = "facedir", + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + after_place_node = function(pos, placer) + local meta = minetest.env:get_meta(pos) + meta:set_string("owner", placer:get_player_name() or "") + meta:set_string("infotext", "Secret Chest (owned by ".. + meta:get_string("owner")..")") + end, + on_construct = function(pos) + local meta = minetest.env:get_meta(pos) + meta:set_string("formspec", open) + meta:set_string("infotext", "Secret Chest") + meta:set_string("owner", "") + local inv = meta:get_inventory() + inv:set_size("main", 8*4) + end, + can_dig = function(pos,player) + local meta = minetest.env:get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.env:get_meta(pos) + if not has_locked_chest_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a secret chest belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos)) + return 0 + end + return count + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.env:get_meta(pos) + if not has_locked_chest_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a secret chest belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos)) + return 0 + end + return stack:get_count() + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.env:get_meta(pos) + if not has_locked_chest_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a secret chest belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos)) + return 0 + end + return stack:get_count() + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name().. + " moves stuff in secret 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 secret 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 secret chest at "..minetest.pos_to_string(pos)) + end, + on_receive_fields = function(pos, formname, fields, sender) + local meta = minetest.env:get_meta(pos) + if has_locked_chest_privilege(meta, sender) then + if fields.open == "open" then + meta:set_string("formspec", open) + else + meta:set_string("formspec", closed) + end + end + end, +}) + +minetest.register_craft({ + output = 'more_chests:secret', + recipe = { + {'default:wood','default:cobble','default:wood'}, + {'default:wood','default:steel_ingot','default:wood'}, + {'default:wood','default:wood','default:wood'} + } +}) + diff --git a/mods/more_chests/shared.lua b/mods/more_chests/shared.lua new file mode 100755 index 00000000..b3567c5e --- /dev/null +++ b/mods/more_chests/shared.lua @@ -0,0 +1,113 @@ +local function has_locked_chest_privilege(meta, player) + local name = player:get_player_name() + local shared = " "..meta:get_string("shared").." " + if name == meta:get_string("owner") then + return true + elseif shared:find(" "..name.." ") then + + return true + else + return false + end +end + +local function get_formspec(string) + return "size[8,10]".. + "list[current_name;main;0,0;8,4;]".. + "list[current_player;main;0,5;8,4;]".. + "field[.25,9.5;6,1;shared;Shared with (separate names with spaces):;"..string.."]".. + "button[6,9;2,1;submit;submit]" +end + +minetest.register_node("more_chests:shared", { + description = "Shared Chest", + tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png", + "default_chest_side.png", "default_chest_side.png", "shared_front.png"}, + paramtype2 = "facedir", + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + after_place_node = function(pos, placer) + local meta = minetest.env:get_meta(pos) + meta:set_string("owner", placer:get_player_name() or "") + meta:set_string("infotext", "Shared Chest (owned by ".. + meta:get_string("owner")..")") + end, + on_construct = function(pos) + local meta = minetest.env:get_meta(pos) + meta:set_string("formspec", get_formspec("")) + meta:set_string("infotext", "Shared Chest") + meta:set_string("owner", "") + local inv = meta:get_inventory() + inv:set_size("main", 8*4) + end, + can_dig = function(pos,player) + local meta = minetest.env:get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.env:get_meta(pos) + if not has_locked_chest_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a shared chest belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos)) + return 0 + end + return count + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.env:get_meta(pos) + if not has_locked_chest_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a shared chest belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos)) + return 0 + end + return stack:get_count() + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.env:get_meta(pos) + if not has_locked_chest_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a shared chest belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos)) + return 0 + end + return stack:get_count() + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name().. + " moves stuff in shared 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 shared 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 shared chest at "..minetest.pos_to_string(pos)) + end, + on_receive_fields = function(pos, formspec, fields, sender) + local meta = minetest.env:get_meta(pos); + if fields.shared then + if meta:get_string("owner") == sender:get_player_name() then + meta:set_string("shared", fields.shared); + meta:set_string("formspec", get_formspec(fields.shared)) + end + end + end, +}) + +minetest.register_craft({ + output = 'more_chests:shared', + recipe = { + {'default:wood','default:leaves','default:wood'}, + {'default:wood','default:steel_ingot','default:wood'}, + {'default:wood','default:wood','default:wood'} + } +}) + diff --git a/mods/more_chests/textures/cobblechest_front.png b/mods/more_chests/textures/cobblechest_front.png new file mode 100755 index 00000000..92f5ee97 Binary files /dev/null and b/mods/more_chests/textures/cobblechest_front.png differ diff --git a/mods/more_chests/textures/dropbox_front.png b/mods/more_chests/textures/dropbox_front.png new file mode 100755 index 00000000..b0b184d8 Binary files /dev/null and b/mods/more_chests/textures/dropbox_front.png differ diff --git a/mods/more_chests/textures/dropbox_right.png b/mods/more_chests/textures/dropbox_right.png new file mode 100755 index 00000000..6d53444e Binary files /dev/null and b/mods/more_chests/textures/dropbox_right.png differ diff --git a/mods/more_chests/textures/secret_front.png b/mods/more_chests/textures/secret_front.png new file mode 100755 index 00000000..b024f6e1 Binary files /dev/null and b/mods/more_chests/textures/secret_front.png differ diff --git a/mods/more_chests/textures/shared_front.png b/mods/more_chests/textures/shared_front.png new file mode 100755 index 00000000..2821c0c9 Binary files /dev/null and b/mods/more_chests/textures/shared_front.png differ diff --git a/mods/more_chests/textures/wifi_front_animated.png b/mods/more_chests/textures/wifi_front_animated.png new file mode 100755 index 00000000..77bcb445 Binary files /dev/null and b/mods/more_chests/textures/wifi_front_animated.png differ diff --git a/mods/more_chests/textures/wifi_side.png b/mods/more_chests/textures/wifi_side.png new file mode 100755 index 00000000..f58fae95 Binary files /dev/null and b/mods/more_chests/textures/wifi_side.png differ diff --git a/mods/more_chests/textures/wifi_top.png b/mods/more_chests/textures/wifi_top.png new file mode 100755 index 00000000..35c01d0f Binary files /dev/null and b/mods/more_chests/textures/wifi_top.png differ diff --git a/mods/more_chests/wifi.lua b/mods/more_chests/wifi.lua new file mode 100755 index 00000000..17b0bde9 --- /dev/null +++ b/mods/more_chests/wifi.lua @@ -0,0 +1,46 @@ +minetest.register_node("more_chests:wifi", { + description = "Wifi Chest", + tiles = {"wifi_top.png", "wifi_top.png", "wifi_side.png", + "wifi_side.png", "wifi_side.png", +{name="wifi_front_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0}} +}, + paramtype2 = "facedir", + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.env:get_meta(pos) + meta:set_string("formspec", + "size[8,9]".. + "list[current_player;more_chests:wifi;0,0;8,4;]".. + "list[current_player;main;0,5;8,4;]") + meta:set_string("infotext", "Wifi Chest") + 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 wifi 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 wifi 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 wifi chest at "..minetest.pos_to_string(pos)) + end, +}) + +minetest.register_craft({ + output = 'more_chests:wifi', + recipe = { + {'default:wood','default:mese','default:wood'}, + {'default:wood','default:steel_ingot','default:wood'}, + {'default:wood','default:wood','default:wood'} + } +}) + +minetest.register_on_joinplayer(function(player) + local inv = player:get_inventory() + inv:set_size("more_chests:wifi", 8*4) +end) + diff --git a/mods/moreblocks/LICENSE.txt b/mods/moreblocks/LICENSE.txt new file mode 100755 index 00000000..726257de --- /dev/null +++ b/mods/moreblocks/LICENSE.txt @@ -0,0 +1,13 @@ ++---- zlib/libpng license ----+ + +Copyright (c) 2013-2014 Calinou and contributors + +This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source distribution. diff --git a/mods/moreblocks/README.txt b/mods/moreblocks/README.txt new file mode 100755 index 00000000..aa99eda3 --- /dev/null +++ b/mods/moreblocks/README.txt @@ -0,0 +1,12 @@ +More Blocks +========== + +More Blocks for Minetest (http://minetest.net), a free and open source infinite +world block sandbox game. + +To install, just clone this repository into your "mods" directory. + +More Blocks code is under the zlib license, textures are under CC BY-SA 3.0 unported. + +Forum topic: http://forum.minetest.net/viewtopic.php?id=509 + diff --git a/mods/moreblocks/aliases.lua b/mods/moreblocks/aliases.lua new file mode 100755 index 00000000..df820c33 --- /dev/null +++ b/mods/moreblocks/aliases.lua @@ -0,0 +1,75 @@ +-- More Blocks aliases + +minetest.register_alias("sweeper", "moreblocks:sweeper") +minetest.register_alias("circular_saw", "moreblocks:circular_saw") +minetest.register_alias("jungle_stick", "moreblocks:jungle_stick") + +-- Old block/item replacement + +minetest.register_alias("moreblocks:oerkkiblock", "default:mossycobble") +minetest.register_alias("moreblocks:screwdriver", "screwdriver:screwdriver") + +-- Node and item renaming + +minetest.register_alias("moreblocks:stone_bricks", "default:stonebrick") +minetest.register_alias("moreblocks:stonebrick", "default:stonebrick") +minetest.register_alias("moreblocks:junglewood", "default:junglewood") +minetest.register_alias("moreblocks:jungle_wood", "default:junglewood") + +for _, t in pairs(circular_saw.names) do + minetest.register_alias("moreblocks:" ..t[1].. "_jungle_wood" ..t[2], + "moreblocks:" ..t[1].. "_junglewood" ..t[2]) +end +minetest.register_alias("moreblocks:horizontaltree", "moreblocks:horizontal_tree") +minetest.register_alias("moreblocks:horizontaljungletree", "moreblocks:horizontal_jungle_tree") +minetest.register_alias("moreblocks:stonesquare", "moreblocks:stone_tile") +minetest.register_alias("moreblocks:circlestonebrick", "moreblocks:circle_stone_bricks") +minetest.register_alias("moreblocks:ironstonebrick", "moreblocks:iron_stone_bricks") +minetest.register_alias("moreblocks:fence_junglewood", "moreblocks:fence_jungle_wood") +minetest.register_alias("moreblocks:coalstone", "moreblocks:coal_stone") +minetest.register_alias("moreblocks:ironstone", "moreblocks:iron_stone") +minetest.register_alias("moreblocks:woodtile", "moreblocks:wood_tile") +minetest.register_alias("moreblocks:woodtile_full", "moreblocks:wood_tile_full") +minetest.register_alias("moreblocks:woodtile_centered", "moreblocks:wood_tile_centered") +minetest.register_alias("moreblocks:woodtile_up", "moreblocks:wood_tile_up") +minetest.register_alias("moreblocks:woodtile_down", "moreblocks:wood_tile_down") +minetest.register_alias("moreblocks:woodtile_left", "moreblocks:wood_tile_left") +minetest.register_alias("moreblocks:woodtile_right", "moreblocks:wood_tile_right") +minetest.register_alias("moreblocks:coalglass", "moreblocks:coal_glass") +minetest.register_alias("moreblocks:ironglass", "moreblocks:iron_glass") +minetest.register_alias("moreblocks:glowglass", "moreblocks:glow_glass") +minetest.register_alias("moreblocks:superglowglass", "moreblocks:super_glow_glass") +minetest.register_alias("moreblocks:trapglass", "moreblocks:trap_glass") +minetest.register_alias("moreblocks:trapstone", "moreblocks:trap_stone") +minetest.register_alias("moreblocks:cactuschecker", "moreblocks:cactus_checker") +minetest.register_alias("moreblocks:coalchecker", "moreblocks:coal_checker") +minetest.register_alias("moreblocks:ironchecker", "moreblocks:iron_checker") +minetest.register_alias("moreblocks:cactusbrick", "moreblocks:cactus_brick") +minetest.register_alias("moreblocks:cleanglass", "moreblocks:clean_glass") +minetest.register_alias("moreblocks:emptybookshelf", "moreblocks:empty_bookshelf") +minetest.register_alias("moreblocks:junglestick", "moreblocks:jungle_stick") +minetest.register_alias("moreblocks:splitstonesquare","moreblocks:split_stone_tile") +minetest.register_alias("moreblocks:allfacestree","moreblocks:all_faces_tree") + +-- ABM for horizontal trees (fix facedir). + +local horizontal_tree_convert_facedir = {7, 12, 9, 18} + +minetest.register_abm({ + nodenames = {"moreblocks:horizontal_tree","moreblocks:horizontal_jungle_tree"}, + interval = 1, + chance = 1, + action = function(pos, node) + if node.name == "moreblocks:horizontal_tree" then + node.name = "default:tree" + else + node.name = "default:jungletree" + end + node.param2 = node.param2 < 3 and node.param2 or 0 + minetest.set_node(pos, { + name = node.name, + param2 = horizontal_tree_convert_facedir[node.param2 + 1] + }) + end, +}) + diff --git a/mods/moreblocks/circular_saw.lua b/mods/moreblocks/circular_saw.lua new file mode 100755 index 00000000..2af5972a --- /dev/null +++ b/mods/moreblocks/circular_saw.lua @@ -0,0 +1,355 @@ +local S = moreblocks.gettext +circular_saw = {} + +circular_saw.known_stairs = setmetatable({}, { + __newindex = function(k, v) + local modname = minetest.get_current_modname() + print(("WARNING: mod %s tried to add node %s to the circular saw" + .. " manually."):format(modname, v)) + end, +}) + +-- This is populated by stairsplus:register_all: +circular_saw.known_nodes = {} + +-- How many microblocks does this shape at the output inventory cost: +circular_saw.cost_in_microblocks = { + 1, 1, 1, 1, 1, 1, 1, 2, + 2, 3, 2, 4, 2, 4, 5, 6, + 7, 1, 1, 2, 4, 6, 7, 8, + 3, 1, 1, 2, 4, 0, 0, 0, +} + +circular_saw.names = { + {"micro", "_1"}, + {"panel", "_1"}, + {"micro", "_2"}, + {"panel", "_2"}, + {"micro", "_4"}, + {"panel", "_4"}, + {"micro", ""}, + {"panel", ""}, + {"micro", "_12"}, + {"panel", "_12"}, + {"micro", "_14"}, + {"panel", "_14"}, + {"micro", "_15"}, + {"panel", "_15"}, + {"stair", "_outer"}, + {"stair", ""}, + {"stair", "_inner"}, + {"slab", "_1"}, + {"slab", "_2"}, + {"slab", "_quarter"}, + {"slab", ""}, + {"slab", "_three_quarter"}, + {"slab", "_14"}, + {"slab", "_15"}, + {"stair", "_half"}, + {"stair", "_alt_1"}, + {"stair", "_alt_2"}, + {"stair", "_alt_4"}, + {"stair", "_alt"}, +} + +function circular_saw:get_cost(inv, stackname) + for i, item in pairs(inv:get_list("output")) do + if item:get_name() == stackname then + return circular_saw.cost_in_microblocks[i] + end + end +end + +function circular_saw:get_output_inv(modname, material, amount, max) + if (not max or max < 1 or max > 99) then max = 99 end + + local list = {} + -- If there is nothing inside, display empty inventory: + if amount < 1 then + return list + end + + for i, t in ipairs(circular_saw.names) do + local cost = circular_saw.cost_in_microblocks[i] + table.insert(list, modname .. ":" .. t[1] .. "_" .. material .. t[2] + .. " " .. math.min(math.floor(amount/cost), max)) + end + return list +end + + +-- Reset empty circular_saw after last full block has been taken out +-- (or the circular_saw has been placed the first time) +-- Note: max_offered is not reset: +function circular_saw:reset(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + + inv:set_list("input", {}) + inv:set_list("micro", {}) + inv:set_list("output", {}) + meta:set_int("anz", 0) + + meta:set_string("infotext", + S("Circular Saw is empty (owned by %s)") + :format(meta:get_string("owner") or "")) +end + + +-- Player has taken something out of the box or placed something inside +-- that amounts to count microblocks: +function circular_saw:update_inventory(pos, amount) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + + amount = meta:get_int("anz") + amount + + -- The material is recycled automaticly. + inv:set_list("recycle", {}) + + if amount < 1 then -- If the last block is taken out. + self:reset(pos) + return + end + + local stack = inv:get_stack("input", 1) + -- At least one "normal" block is necessary to see what kind of stairs are requested. + if stack:is_empty() then + -- Any microblocks not taken out yet are now lost. + -- (covers material loss in the machine) + self:reset(pos) + return + + end + local node_name = stack:get_name() or "" + local name_parts = circular_saw.known_nodes[node_name] or "" + local modname = name_parts[1] or "" + local material = name_parts[2] or "" + + inv:set_list("input", { -- Display as many full blocks as possible: + node_name.. " " .. math.floor(amount / 8) + }) + + -- The stairnodes made of default nodes use moreblocks namespace, other mods keep own: + if modname == "default" then + modname = "moreblocks" + end + -- print("circular_saw set to " .. modname .. " : " + -- .. material .. " with " .. (amount) .. " microblocks.") + + -- 0-7 microblocks may remain left-over: + inv:set_list("micro", { + modname .. ":micro_" .. material .. "_bottom " .. (amount % 8) + }) + -- Display: + inv:set_list("output", + self:get_output_inv(modname, material, amount, + meta:get_int("max_offered"))) + -- Store how many microblocks are available: + meta:set_int("anz", amount) + + meta:set_string("infotext", + S("Circular Saw is working on %s (owned by %s)") + :format(material, meta:get_string("owner") or "")) +end + + +-- The amount of items offered per shape can be configured: +function circular_saw.on_receive_fields(pos, formname, fields, sender) + local meta = minetest.get_meta(pos) + local max = tonumber(fields.max_offered) + if max and max > 0 then + meta:set_string("max_offered", max) + -- Update to show the correct number of items: + circular_saw:update_inventory(pos, 0) + end +end + + +-- Moving the inventory of the circular_saw around is not allowed because it +-- is a fictional inventory. Moving inventory around would be rather +-- impractical and make things more difficult to calculate: +function circular_saw.allow_metadata_inventory_move( + pos, from_list, from_index, to_list, to_index, count, player) + return 0 +end + + +-- Only input- and recycle-slot are intended as input slots: +function circular_saw.allow_metadata_inventory_put( + pos, listname, index, stack, player) + -- The player is not allowed to put something in there: + if listname == "output" or listname == "micro" then + return 0 + end + + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local stackname = stack:get_name() + local count = stack:get_count() + + -- Only alow those items that are offered in the output inventory to be recycled: + if listname == "recycle" then + if not inv:contains_item("output", stackname) then + return 0 + end + local stackmax = stack:get_stack_max() + local instack = inv:get_stack("input", 1) + local microstack = inv:get_stack("micro", 1) + local incount = instack:get_count() + local incost = (incount * 8) + microstack:get_count() + local maxcost = (stackmax * 8) + 7 + local cost = circular_saw:get_cost(inv, stackname) + if (incost + cost) > maxcost then + return math.max((maxcost - incost) / cost, 0) + end + return count + end + + -- Only accept certain blocks as input which are known to be craftable into stairs: + if listname == "input" then + if not inv:is_empty("input") and + inv:get_stack("input", index):get_name() ~= stackname then + return 0 + end + for name, t in pairs(circular_saw.known_nodes) do + if name == stackname and inv:room_for_item("input", stack) then + return count + end + end + return 0 + end +end + +-- Taking is allowed from all slots (even the internal microblock slot). +-- Putting something in is slightly more complicated than taking anything +-- because we have to make sure it is of a suitable material: +function circular_saw.on_metadata_inventory_put( + pos, listname, index, stack, player) + -- We need to find out if the circular_saw is already set to a + -- specific material or not: + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local stackname = stack:get_name() + local count = stack:get_count() + + -- Putting something into the input slot is only possible if that had + -- been empty before or did contain something of the same material: + if listname == "input" then + -- Each new block is worth 8 microblocks: + circular_saw:update_inventory(pos, 8 * count) + elseif listname == "recycle" then + -- Lets look which shape this represents: + local cost = circular_saw:get_cost(inv, stackname) + circular_saw:update_inventory(pos, cost * count) + end +end + +function circular_saw.on_metadata_inventory_take( + pos, listname, index, stack, player) + -- If it is one of the offered stairs: find out how many + -- microblocks have to be substracted: + if listname == "output" then + -- We do know how much each block at each position costs: + local cost = circular_saw.cost_in_microblocks[index] + * stack:get_count() + + circular_saw:update_inventory(pos, -cost) + elseif listname == "micro" then + -- Each microblock costs 1 microblock: + circular_saw:update_inventory(pos, -stack:get_count()) + elseif listname == "input" then + -- Each normal (= full) block taken costs 8 microblocks: + circular_saw:update_inventory(pos, 8 * -stack:get_count()) + end + -- The recycle field plays no role here since it is processed immediately. +end + +gui_slots = "listcolors[#606060AA;#808080;#101010;#202020;#FFF]" + +function circular_saw.on_construct(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", "size[11,9]" ..gui_slots.. + "label[0,0;" ..S("Input\nmaterial").. "]" .. + "list[current_name;input;1.5,0;1,1;]" .. + "label[0,1;" ..S("Left-over").. "]" .. + "list[current_name;micro;1.5,1;1,1;]" .. + "label[0,2;" ..S("Recycle\noutput").. "]" .. + "list[current_name;recycle;1.5,2;1,1;]" .. + "field[0.3,3.5;1,1;max_offered;" ..S("Max").. ":;${max_offered}]" .. + "button[1,3.2;1,1;Set;" ..S("Set").. "]" .. + "list[current_name;output;2.8,0;8,4;]" .. + "list[current_player;main;1.5,5;8,4;]") + + meta:set_int("anz", 0) -- No microblocks inside yet. + meta:set_string("max_offered", 99) -- How many items of this kind are offered by default? + meta:set_string("infotext", S("Circular Saw is empty")) + + local inv = meta:get_inventory() + inv:set_size("input", 1) -- Input slot for full blocks of material x. + inv:set_size("micro", 1) -- Storage for 1-7 surplus microblocks. + inv:set_size("recycle", 1) -- Surplus partial blocks can be placed here. + inv:set_size("output", 4*8) -- 4x8 versions of stair-parts of material x. + + circular_saw:reset(pos) +end + + +function circular_saw.can_dig(pos,player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if not inv:is_empty("input") or + not inv:is_empty("micro") or + not inv:is_empty("recycle") then + return false + end + -- Can be dug by anyone when empty, not only by the owner: + return true +end + +minetest.register_node("moreblocks:circular_saw", { + description = S("Circular Saw"), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.4, -0.5, -0.4, -0.25, 0.25, -0.25}, -- Leg + {0.25, -0.5, 0.25, 0.4, 0.25, 0.4}, -- Leg + {-0.4, -0.5, 0.25, -0.25, 0.25, 0.4}, -- Leg + {0.25, -0.5, -0.4, 0.4, 0.25, -0.25}, -- Leg + {-0.5, 0.25, -0.5, 0.5, 0.375, 0.5}, -- Tabletop + {-0.01, 0.4375, -0.125, 0.01, 0.5, 0.125}, -- Saw blade (top) + {-0.01, 0.375, -0.1875, 0.01, 0.4375, 0.1875}, -- Saw blade (bottom) + {-0.25, -0.0625, -0.25, 0.25, 0.25, 0.25}, -- Motor case + }, + }, + tiles = {"moreblocks_circular_saw_top.png", + "moreblocks_circular_saw_bottom.png", + "moreblocks_circular_saw_side.png"}, + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + groups = {choppy = 2,oddly_breakable_by_hand = 2}, + sounds = default.node_sound_wood_defaults(), + on_construct = circular_saw.on_construct, + can_dig = circular_saw.can_dig, + -- Set the owner of this circular saw. + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + local owner = placer and placer:get_player_name() or "" + meta:set_string("owner", owner) + meta:set_string("infotext", + S("Circular Saw is empty (owned by %s)") + :format(owner)) + end, + + -- The amount of items offered per shape can be configured: + on_receive_fields = circular_saw.on_receive_fields, + allow_metadata_inventory_move = circular_saw.allow_metadata_inventory_move, + -- Only input- and recycle-slot are intended as input slots: + allow_metadata_inventory_put = circular_saw.allow_metadata_inventory_put, + -- Taking is allowed from all slots (even the internal microblock slot). Moving is forbidden. + -- Putting something in is slightly more complicated than taking anything because we have to make sure it is of a suitable material: + on_metadata_inventory_put = circular_saw.on_metadata_inventory_put, + on_metadata_inventory_take = circular_saw.on_metadata_inventory_take, +}) diff --git a/mods/moreblocks/config.lua b/mods/moreblocks/config.lua new file mode 100755 index 00000000..e5db0861 --- /dev/null +++ b/mods/moreblocks/config.lua @@ -0,0 +1,22 @@ +moreblocks.config = {} + +local function getbool_default(setting, default) + local value = minetest.setting_getbool(setting) + if value == nil then + value = default + end + return value +end + +local function setting(settingtype, name, default) + if settingtype == "bool" then + moreblocks.config[name] = + getbool_default("moreblocks." .. name, default) + else + moreblocks.config[name] = + minetest.setting_get("moreblocks." .. name) or default + end +end + +-- Show stairs/slabs/panels/microblocks in creative inventory (true or false): +setting("bool", "stairsplus_in_creative_inventory", false) diff --git a/mods/moreblocks/crafting.lua b/mods/moreblocks/crafting.lua new file mode 100755 index 00000000..20477273 --- /dev/null +++ b/mods/moreblocks/crafting.lua @@ -0,0 +1,446 @@ +-- Crafting + +minetest.register_craft({ + output = "default:stick", + recipe = {{"default:dry_shrub"},} +}) + +minetest.register_craft({ + output = "default:stick", + recipe = {{"default:sapling"},} +}) + +minetest.register_craft({ + output = "default:stick", + recipe = {{"default:junglesapling"},} +}) + +minetest.register_craft({ + output = "default:wood", + recipe = { + {"default:stick", "default:stick"}, + {"default:stick", "default:stick"}, + } +}) + +minetest.register_craft({ + output = "default:junglewood", + recipe = { + {"moreblocks:jungle_stick", "moreblocks:jungle_stick"}, + {"moreblocks:jungle_stick", "moreblocks:jungle_stick"}, + } +}) + +minetest.register_craft({ + output = "default:dirt_with_grass", + type = "shapeless", + recipe = {"default:junglegrass", "default:dirt"}, +}) + +minetest.register_craft({ + output = "default:dirt_with_grass", + type = "shapeless", + recipe = {"default:mese", "default:dirt"}, +}) + +minetest.register_craft({ + output = "default:mossycobble", + type = "shapeless", + recipe = {"default:junglegrass", "default:cobble"}, +}) + +minetest.register_craft({ + output = "default:mossycobble", + type = "shapeless", + recipe = {"default:mese_crystal_fragment", "default:cobble"}, +}) + +minetest.register_craft({ + output = "moreblocks:wood_tile 9", + recipe = { + {"default:wood", "default:wood", "default:wood"}, + {"default:wood", "default:wood", "default:wood"}, + {"default:wood", "default:wood", "default:wood"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:wood_tile_flipped", + recipe = {{"moreblocks:wood_tile"},} +}) + +minetest.register_craft({ + output = "moreblocks:wood_tile_center 9", + recipe = { + {"default:wood", "default:wood", "default:wood"}, + {"default:wood", "moreblocks:wood_tile", "default:wood"}, + {"default:wood", "default:wood", "default:wood"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:wood_tile_full 4", + recipe = { + {"moreblocks:wood_tile", "moreblocks:wood_tile"}, + {"moreblocks:wood_tile", "moreblocks:wood_tile"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:wood_tile_up", + recipe = { + {"default:stick"}, + {"moreblocks:wood_tile_center"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:wood_tile_down", + recipe = { + {"moreblocks:wood_tile_center"}, + {"default:stick"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:wood_tile_left", + recipe = { + {"default:stick", "moreblocks:wood_tile_center"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:wood_tile_right", + recipe = { + {"moreblocks:wood_tile_center", "default:stick"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:junglestick 4", + recipe = {{"default:junglewood"},} +}) + +minetest.register_craft({ + output = "moreblocks:fence_jungle_wood 2", + recipe = { + {"moreblocks:jungle_stick", "moreblocks:jungle_stick", "moreblocks:jungle_stick"}, + {"moreblocks:jungle_stick", "moreblocks:jungle_stick", "moreblocks:jungle_stick"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:circle_stone_bricks 8", + recipe = { + {"default:stone", "default:stone", "default:stone"}, + {"default:stone", "", "default:stone"}, + {"default:stone", "default:stone", "default:stone"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:all_faces_tree 8", + recipe = { + {"default:tree", "default:tree", "default:tree"}, + {"default:tree", "", "default:tree"}, + {"default:tree", "default:tree", "default:tree"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:all_faces_jungle_tree 8", + recipe = { + {"default:jungletree", "default:jungletree", "default:jungletree"}, + {"default:jungletree", "", "default:jungletree"}, + {"default:jungletree", "default:jungletree", "default:jungletree"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:sweeper 4", + recipe = { + {"default:junglegrass"}, + {"default:stick"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:stone_tile 4", + recipe = { + {"default:cobble", "default:cobble"}, + {"default:cobble", "default:cobble"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:split_stone_tile", + recipe = { + {"moreblocks:stone_tile"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:split_stone_tile_alt", + recipe = { + {"moreblocks:split_stone_tile"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:grey_bricks 2", + type = "shapeless", + recipe = {"default:stone", "default:brick"}, +}) + +minetest.register_craft({ + output = "moreblocks:grey_bricks 2", + type = "shapeless", + recipe = {"default:stonebrick", "default:brick"}, +}) + +minetest.register_craft({ + output = "moreblocks:empty_bookshelf", + type = "shapeless", + recipe = {"moreblocks:sweeper", "default:bookshelf"}, +}) + +minetest.register_craft({ + output = "moreblocks:coal_stone_bricks 4", + recipe = { + {"moreblocks:coal_stone", "moreblocks:coal_stone"}, + {"moreblocks:coal_stone", "moreblocks:coal_stone"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:iron_stone_bricks 4", + recipe = { + {"moreblocks:iron_stone", "moreblocks:iron_stone"}, + {"moreblocks:iron_stone", "moreblocks:iron_stone"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:plankstone 4", + recipe = { + {"default:stone", "default:wood"}, + {"default:wood", "default:stone"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:plankstone 4", + recipe = { + {"default:wood", "default:stone"}, + {"default:stone", "default:wood"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:coal_checker 4", + recipe = { + {"default:stone", "default:coal_lump"}, + {"default:coal_lump", "default:stone"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:coal_checker 4", + recipe = { + {"default:coal_lump", "default:stone"}, + {"default:stone", "default:coal_lump"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:iron_checker 4", + recipe = { + {"default:steel_ingot", "default:stone"}, + {"default:stone", "default:steel_ingot"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:iron_checker 4", + recipe = { + {"default:stone", "default:steel_ingot"}, + {"default:steel_ingot", "default:stone"}, + } +}) + +minetest.register_craft({ + output = "default:chest_locked", + type = "shapeless", + recipe = {"default:steel_ingot", "default:chest"}, +}) +minetest.register_craft({ + output = "default:chest_locked", + type = "shapeless", + recipe = {"default:copper_ingot", "default:chest"}, +}) + +minetest.register_craft({ + output = "default:chest_locked", + type = "shapeless", + recipe = {"default:bronze_ingot", "default:chest"}, +}) + +minetest.register_craft({ + output = "default:chest_locked", + type = "shapeless", + recipe = {"default:gold_ingot", "default:chest"}, +}) + +minetest.register_craft({ + output = "moreblocks:iron_glass", + type = "shapeless", + recipe = {"default:steel_ingot", "default:glass"}, +}) + +minetest.register_craft({ + output = "default:glass", + type = "shapeless", + recipe = {"default:coal_lump", "moreblocks:iron_glass"}, +}) + + +minetest.register_craft({ + output = "moreblocks:coal_glass", + type = "shapeless", + recipe = {"default:coal_lump", "default:glass"}, +}) + +minetest.register_craft({ + output = "default:glass", + type = "shapeless", + recipe = {"default:steel_ingot", "moreblocks:coal_glass"}, +}) + +minetest.register_craft({ + output = "moreblocks:clean_glass", + type = "shapeless", + recipe = {"moreblocks:sweeper", "default:glass"}, +}) + +minetest.register_craft({ + output = "moreblocks:glow_glass", + type = "shapeless", + recipe = {"default:torch", "default:glass"}, +}) + +minetest.register_craft({ + output = "moreblocks:trap_glow_glass", + type = "shapeless", + recipe = {"default:mese_crystal_fragment", "default:glass", "default:torch"}, +}) + +minetest.register_craft({ + output = "moreblocks:trap_glow_glass", + type = "shapeless", + recipe = {"default:mese_crystal_fragment", "moreblocks:glow_glass"}, +}) + +minetest.register_craft({ + output = "moreblocks:super_glow_glass", + type = "shapeless", + recipe = {"default:torch", "default:torch", "default:glass"}, +}) + +minetest.register_craft({ + output = "moreblocks:super_glow_glass", + type = "shapeless", + recipe = {"default:torch", "moreblocks:glow_glass"}, +}) + + +minetest.register_craft({ + output = "moreblocks:trap_super_glow_glass", + type = "shapeless", + recipe = {"default:mese_crystal_fragment", "default:glass", "default:torch", "default:torch"}, +}) + +minetest.register_craft({ + output = "moreblocks:trap_super_glow_glass", + type = "shapeless", + recipe = {"default:mese_crystal_fragment", "moreblocks:super_glow_glass"}, +}) + +minetest.register_craft({ + output = "moreblocks:coal_stone", + type = "shapeless", + recipe = {"default:coal_lump", "default:stone"}, +}) + +minetest.register_craft({ + output = "default:stone", + type = "shapeless", + recipe = {"default:steel_ingot", "moreblocks:coal_stone"}, +}) + +minetest.register_craft({ + output = "moreblocks:iron_stone", + type = "shapeless", + recipe = {"default:steel_ingot", "default:stone"}, +}) + +minetest.register_craft({ + output = "default:stone", + type = "shapeless", + recipe = {"default:coal_lump", "moreblocks:iron_stone"}, +}) + +minetest.register_craft({ + output = "moreblocks:trap_stone", + type = "shapeless", + recipe = {"default:mese_crystal_fragment", "default:stone"}, +}) + +minetest.register_craft({ + output = "moreblocks:trap_glass", + type = "shapeless", + recipe = {"default:mese_crystal_fragment", "default:glass"}, +}) + +minetest.register_craft({ + output = "moreblocks:cactus_brick", + type = "shapeless", + recipe = {"default:cactus", "default:brick"}, +}) + +minetest.register_craft({ + output = "moreblocks:cactus_checker 4", + recipe = { + {"default:cactus", "default:stone"}, + {"default:stone", "default:cactus"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:cactuschecker 4", + recipe = { + {"default:stone", "default:cactus"}, + {"default:cactus", "default:stone"}, + } +}) + +minetest.register_craft({ + output = "moreblocks:rope 3", + recipe = { + {"default:junglegrass"}, + {"default:junglegrass"}, + {"default:junglegrass"}, + } +}) + +minetest.register_craft({ + type = "cooking", output = "moreblocks:tar", recipe = "default:gravel", +}) + +minetest.register_craft({ + output = "moreblocks:circular_saw", + recipe = { + { "", "default:steel_ingot", "" }, + { "group:wood", "group:wood", "group:wood"}, + { "group:wood", "", "group:wood"}, + } +}) diff --git a/mods/moreblocks/depends.txt b/mods/moreblocks/depends.txt new file mode 100755 index 00000000..9207dab8 --- /dev/null +++ b/mods/moreblocks/depends.txt @@ -0,0 +1,2 @@ +default +intllib? diff --git a/mods/moreblocks/init.lua b/mods/moreblocks/init.lua new file mode 100755 index 00000000..81802518 --- /dev/null +++ b/mods/moreblocks/init.lua @@ -0,0 +1,31 @@ +--[[ +-- More Blocks (moreblocks) by Calinou +-- Licensed under the zlib/ license for code and CC BY-SA 3.0 for textures, see LICENSE.txt for info. +--]] + +moreblocks = {} + +-- Load translation library if intllib is installed + +local S -- Load translation library if intllib is installed: +if intllib then + S = intllib.Getter(minetest.get_current_modname()) +else + S = function(s) return s end +end +moreblocks.gettext = S + +local modpath = minetest.get_modpath("moreblocks") + +dofile(modpath .. "/config.lua") +dofile(modpath .. "/circular_saw.lua") +dofile(modpath .. "/stairsplus/init.lua") +dofile(modpath .. "/nodes.lua") +dofile(modpath .. "/redefinitions.lua") +dofile(modpath .. "/crafting.lua") +dofile(modpath .. "/aliases.lua") + +if minetest.setting_getbool("log_mods") then + print(S("[moreblocks] loaded.")) +end + diff --git a/mods/moreblocks/locale/de.txt b/mods/moreblocks/locale/de.txt new file mode 100755 index 00000000..542f977f --- /dev/null +++ b/mods/moreblocks/locale/de.txt @@ -0,0 +1,67 @@ +# Translation by Xanthin + +###init.lua### +[moreblocks] loaded. = [moreblocks] geladen. + +###nodes.lua### +Jungle Wood Fence = Tropenholzzaun +Empty Bookshelf = Leeres Buecherregal +Clean Glass = Klares Glas +Plankstone = Brettstein +Wooden Tile = Holzfliese +Full Wooden Tile = Vollholzfliese +Centered Wooden Tile = Holzfliese mittig +Up Wooden Tile = Holzfliese oben +Down Wooden Tile = Holzfliese unten +Left Wooden Tile = Holzfliese links +Right Wooden Tile = Holzfliese rechts +Circle Stone Bricks = Kreissteinziegel +Stone Tile = Steinfliese +Split Stone Tile = Geteilte Steinfliese +Glow Glass = Leuchtglas +Super Glow Glass = Superleuchtglas +Coal Glass = Kohleglas +Iron Glass = Eisenglas +Coal Checker = Karierte Kohle +Iron Checker = Kariertes Eisen +Trap Stone = Steinfalle +Trap Glass = Glasfalle +Trap Glow Glass = Leuchtglasfalle +Trap Super Glow Glass = Superleuchtglasfalle +Coal Stone = Kohlestein +Iron Stone = Eisenstein +Coal Stone Bricks = Kohlesteinziegel +Iron Stone Bricks = Eisensteinziegel +Cactus Checker = Karierter Kaktus +Cactus Brick = Kaktusziegel +Sweeper = Besen +Jungle Stick = Tropenholzstock +Rope = Seil +All-faces Tree = Baumscheibenstamm + +###circular_saw.lua### +Circular Saw = Kreissaege +Circular saw, empty (owned by %s) = Kreissaege, leer (gehoert %s) +Circular saw, working with %s (owned by %s) = Kreissaege, arbeitet mit %s (gehoert %s) +Circular saw, empty = Kreissaege, leer +Circular saw is empty (owned by %s) = Kreissaege ist leer (gehoert %s) + +Input\nmaterial = Ausgangs-\nmaterial +Left-over = Rest +Max = Anzahl +Set = Ok +Recycle\noutput = Wiederver-\nwerten + +###./stairsplus/*### +%s Stairs = %streppe +%s Slab = %sstufe +%s Panel = %spaneel +%s Microblock = %smikroblock + +%s Pane = %sscheibe +%s Fence = %szaun + +###ownership.lua### +someone = jemand +Sorry, %s owns that spot. = Tut mir leid, %s gehoert diese Stelle. + diff --git a/mods/moreblocks/locale/es.txt b/mods/moreblocks/locale/es.txt new file mode 100755 index 00000000..d11ba494 --- /dev/null +++ b/mods/moreblocks/locale/es.txt @@ -0,0 +1,52 @@ +# Translation by kaeza + +[moreblocks] loaded. = [moreblocks] cargado. + +Jungle Wooden Planks = Tablones de madera de jungla +Empty Bookshelf = Estante para libros vacío +Clean Glass = Cristal Limpio +Plankstone = Tablones de piedra +Wooden Tile = Parquet +Full Wooden Tile = Parquet Completo +Centered Wooden Tile = Parquet Centrado +Up Wooden Tile = Parquet Superior +Down Wooden Tile = Parquet Inferior +Left Wooden Tile = Parquet Izquierdo +Right Wooden Tile = Parquet Derecho +Circle Stone Bricks = Bloques de Piedra Circulares +Stone Tile = Baldosa de Piedra +Split Stone Tile = Baldosas de Piedra Partida +Glow Glass = Cristal Brillante +Super Glow Glass = Cristal Súper Brillante +Coal Glass = Cristal con Carbón +Iron Glass = Cristal con Hierro +Coal Checker = Cuadros de Carbón +Iron Checker = Cuadros de Hierro +Trap Stone = Piedra Trampa +Trap Glass = Cristal Trampa +Coal Stone = Carbón y Piedra +Iron Stone = Hierro y Piedra +Cactus Checker = Cuadros de Cactus +Cactus Brick = Ladrillos de Cactus +Sweeper = Limpiador +Jungle Stick = Varita de Madera de Jungla +Horizontal Tree = Tronco de árbol horizontal +Horizontal Jungle Tree = Tronco de árbol de la jungla horizontal +Rope = Soga +All-faces Tree = Tronco de Árbol + +%s Stairs = Escalera de %s +%s Slab = Losa de %s +%s Panel = Panel de %s +%s Microblock = Microbloque de %s + +Wooden = Madera +Papyrus = Papiro +Dry Shrub = Arbusto Desértico +Sapling = Brote de Árbol +Wooden Planks = Tablones de Madera +Ladder = Escalera de Mano +Glass = Cristal + +%s Pane = Panel de %s +%s Fence = Valla de %s diff --git a/mods/moreblocks/locale/fr.txt b/mods/moreblocks/locale/fr.txt new file mode 100755 index 00000000..6bd7f98c --- /dev/null +++ b/mods/moreblocks/locale/fr.txt @@ -0,0 +1,72 @@ +# Translation by Calinou + +###init.lua### +[moreblocks] loaded. = [moreblocks] a t charg. + +Jungle Wooden Planks = Planches de bois de jungle +Empty Bookshelf = tagre vide +Clean Glass = Verre propre +Plankstone = Pierre-bois +Wooden Tile = Dalle en bois +Full Wooden Tile = Dalle en bois complte +Centered Wooden Tile = Dalle en bois centre +Up Wooden Tile = Dalle en bois vers le haut +Down Wooden Tile = Dalle en bois vers le bas +Left Wooden Tile = Dalle en bois vers la gauche +Right Wooden Tile = Dalle en bois vers la droite +Circle Stone Bricks = Briques en pierre circulaires +Stone Tile = Dalle en pierre +Split Stone Tile = Dalle en pierre dcoupe +Glow Glass = Verre brillant +Super Glow Glass = Verre trs brillant +Coal Glass = Verre de charbon +Iron Glass = Verre de fer +Coal Checker = Damier en charbon +Iron Checker = Damier en fer +Trap Stone = Pierre traversable +Trap Glass = Verre traversable +Trap Glow Glass = Verre brillant traversable +Trap Super Glow Glass = Verre trs brillant traversable +Coal Stone = Pierre de charbon +Iron Stone = Pierre de fer +Coal Stone Bricks = Briques en pierre de charbon +Iron Stone Bricks = Briques en pierre de fer +Cactus Checker = Damier en cactus +Cactus Brick = Briques de cactus +Sweeper = Balai +Jungle Stick = Bton en bois de jungle +Horizontal Tree = Tronc d'arbre horizontal +Horizontal Jungle Tree = Tronc d'arbre de jungle horizontal +Rope = Corde +All-faces Tree = Tronc d'arbre + +###redefinition.lua### +Wooden = bois +Papyrus = Papyrus +Dry Shrub = Buisson mort +Sapling = Pousse d'arbre +Wooden Planks = Planches de bois +Ladder = chelle +Glass = Verre + +###circular_saw.lua### +Circular Saw = Scie circulaire +Circular saw, empty (owned by %s) = Scie circulaire, vide (proprit de %s) +Circular saw, working with %s (owned by %s) = Scie circulaire, manipule %s (proprit de %s) +Circular saw, empty = Scie circulaire, vide +Circular saw is empty (owned by %s) = Scie circulaire est vide (proprit de %s) + +Input material = Entre du matriel +Rest/microblocks = Reste/microbloc +Max: = Max: +Set = Fixer +Recycle output = Recyclage + +###./stairsplus/*### +%s Stairs = Escaliers en %s +%s Slab = Demi-dalle en %s +%s Panel = Barre en %s +%s Microblock = Microbloc en %s + +%s Pane = Panneau en %s +%s Fence = Barrire en %s \ No newline at end of file diff --git a/mods/moreblocks/locale/template.txt b/mods/moreblocks/locale/template.txt new file mode 100755 index 00000000..2b882276 --- /dev/null +++ b/mods/moreblocks/locale/template.txt @@ -0,0 +1,64 @@ +###init.lua### +[moreblocks] loaded. = + +###nodes.lua### +Jungle Wood Fence = +Empty Bookshelf = +Clean Glass = +Plankstone = +Wooden Tile = +Full Wooden Tile = +Centered Wooden Tile = +Up Wooden Tile = +Down Wooden Tile = +Left Wooden Tile = +Right Wooden Tile = +Circle Stone Bricks = +Stone Tile = +Split Stone Tile = +Glow Glass = +Super Glow Glass = +Coal Glass = +Iron Glass = +Coal Checker = +Iron Checker = +Trap Stone = +Trap Glass = +Trap Glow Glass = +Trap Super Glow Glass = +Coal Stone = +Iron Stone = +Coal Stone Bricks = +Iron Stone Bricks = +Cactus Checker = +Cactus Brick = +Sweeper = +Jungle Stick = +Rope = +All-faces Tree = + +###circular_saw.lua### +Circular Saw = +Circular saw, empty (owned by %s) = +Circular saw, working with %s (owned by %s) = +Circular saw, empty = +Circular saw is empty (owned by %s) = + +Input\nmaterial = +Left-over = +Max = +Set = +Recycle\noutput = + +###ownership.lua### +someone = +Sorry, %s owns that spot. = + +###./stairsplus/*### +%s Stairs = +%s Slab = +%s Panel = +%s Microblock = + +%s Pane = +%s Fence = diff --git a/mods/moreblocks/nodes.lua b/mods/moreblocks/nodes.lua new file mode 100755 index 00000000..5efda8f8 --- /dev/null +++ b/mods/moreblocks/nodes.lua @@ -0,0 +1,344 @@ +local S = moreblocks.gettext + +local sound_wood = default.node_sound_wood_defaults() +local sound_stone = default.node_sound_stone_defaults() +local sound_glass = default.node_sound_glass_defaults() +local sound_leaves = default.node_sound_leaves_defaults() + +local function tile_tiles(name) + local tex = "moreblocks_" ..name.. ".png" + return {tex, tex, tex, tex, tex.. "^[transformR90", tex.. "^[transformR90"} +end + +local nodes = { + ["wood_tile"] = { + description = S("Wooden Tile"), + groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3}, + tiles = {"default_wood.png^moreblocks_wood_tile.png", + "default_wood.png^moreblocks_wood_tile.png", + "default_wood.png^moreblocks_wood_tile.png", + "default_wood.png^moreblocks_wood_tile.png", + "default_wood.png^moreblocks_wood_tile.png^[transformR90", + "default_wood.png^moreblocks_wood_tile.png^[transformR90"}, + sounds = sound_wood, + }, + ["wood_tile_flipped"] = { + description = S("Wooden Tile"), + groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3}, + tiles = {"default_wood.png^moreblocks_wood_tile.png^[transformR90", + "default_wood.png^moreblocks_wood_tile.png^[transformR90", + "default_wood.png^moreblocks_wood_tile.png^[transformR90", + "default_wood.png^moreblocks_wood_tile.png^[transformR90", + "default_wood.png^moreblocks_wood_tile.png^[transformR180", + "default_wood.png^moreblocks_wood_tile.png^[transformR180"}, + sounds = sound_wood, + no_stairs = true, + }, + ["wood_tile_center"] = { + description = S("Centered Wooden Tile"), + groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3}, + tiles = {"default_wood.png^moreblocks_wood_tile_center.png"}, + sounds = sound_wood, + }, + ["wood_tile_full"] = { + description = S("Full Wooden Tile"), + groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3}, + tiles = tile_tiles("wood_tile_full"), + sounds = sound_wood, + }, + ["wood_tile_up"] = { + description = S("Upwards Wooden Tile"), + groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3}, + tiles = {"default_wood.png^moreblocks_wood_tile_up.png"}, + sounds = sound_wood, + no_stairs = true, + }, + ["wood_tile_down"] = { + description = S("Downwards Wooden Tile"), + groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3}, + tiles = {"default_wood.png^[transformR180^moreblocks_wood_tile_up.png^[transformR180"}, + sounds = sound_wood, + no_stairs = true, + }, + ["wood_tile_left"] = { + description = S("Leftwards Wooden Tile"), + groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3}, + tiles = {"default_wood.png^[transformR270^moreblocks_wood_tile_up.png^[transformR270"}, + sounds = sound_wood, + no_stairs = true, + }, + ["wood_tile_right"] = { + description = S("Rightwards Wooden Tile"), + groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3}, + tiles = {"default_wood.png^[transformR90^moreblocks_wood_tile_up.png^[transformR90"}, + sounds = sound_wood, + no_stairs = true, + }, + ["circle_stone_bricks"] = { + description = S("Circle Stone Bricks"), + groups = {cracky = 3}, + sounds = sound_stone, + }, + ["grey_bricks"] = { + description = S("Stone Bricks"), + groups = {cracky = 3}, + sounds = sound_stone, + }, + ["coal_stone_bricks"] = { + description = S("Coal Stone Bricks"), + groups = {cracky = 3}, + sounds = sound_stone, + }, + ["iron_stone_bricks"] = { + description = S("Iron Stone Bricks"), + groups = {cracky = 3}, + sounds = sound_stone, + }, + ["stone_tile"] = { + description = S("Stone Tile"), + groups = {cracky = 3}, + sounds = sound_stone, + }, + ["split_stone_tile"] = { + description = S("Split Stone Tile"), + tiles = {"moreblocks_split_stone_tile_top.png", + "moreblocks_split_stone_tile.png"}, + groups = {cracky = 3}, + sounds = sound_stone, + }, + ["split_stone_tile_alt"] = { + description = S("Checkered Stone Tile"), + groups = {cracky = 3}, + sounds = sound_stone, + }, + ["tar"] = { + description = S("Tar"), + groups = {cracky = 2}, + sounds = sound_stone, + }, + ["plankstone"] = { + description = S("Plankstone"), + groups = {cracky = 3}, + tiles = tile_tiles("plankstone"), + sounds = sound_stone, + }, + ["iron_glass"] = { + description = S("Iron Glass"), + drawtype = "glasslike_framed", + paramtype = "light", + sunlight_propagates = true, + groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3}, + sounds = sound_glass, + }, + ["coal_glass"] = { + description = S("Coal Glass"), + drawtype = "glasslike_framed", + paramtype = "light", + sunlight_propagates = true, + groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3}, + sounds = sound_glass, + }, + ["clean_glass"] = { + description = S("Clean Glass"), + drawtype = "glasslike_framed", + paramtype = "light", + sunlight_propagates = true, + groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3}, + sounds = sound_glass, + }, + ["cactus_brick"] = { + description = S("Cactus Brick"), + groups = {cracky = 3}, + sounds = sound_stone, + }, + ["cactus_checker"] = { + description = S("Cactus Checker"), + groups = {cracky = 3}, + tiles = {"default_stone.png^moreblocks_cactus_checker.png", + "default_stone.png^moreblocks_cactus_checker.png", + "default_stone.png^moreblocks_cactus_checker.png", + "default_stone.png^moreblocks_cactus_checker.png", + "default_stone.png^moreblocks_cactus_checker.png^[transformR90", + "default_stone.png^moreblocks_cactus_checker.png^[transformR90"}, + sounds = sound_stone, + }, + ["empty_bookshelf"] = { + description = S("Empty Bookshelf"), + tiles = {"default_wood.png", "default_wood.png", + "moreblocks_empty_bookshelf.png"}, + groups = {snappy = 2, choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + sounds = sound_wood, + no_stairs = true, + }, + ["coal_stone"] = { + description = S("Coal Stone"), + groups = {cracky = 3}, + sounds = sound_stone, + }, + ["iron_stone"] = { + description = S("Iron Stone"), + groups = {cracky = 3}, + sounds = sound_stone, + }, + ["coal_checker"] = { + description = S("Coal Checker"), + tiles = {"default_stone.png^moreblocks_coal_checker.png", + "default_stone.png^moreblocks_coal_checker.png", + "default_stone.png^moreblocks_coal_checker.png", + "default_stone.png^moreblocks_coal_checker.png", + "default_stone.png^moreblocks_coal_checker.png^[transformR90", + "default_stone.png^moreblocks_coal_checker.png^[transformR90"}, + groups = {cracky = 3}, + sounds = sound_stone, + }, + ["iron_checker"] = { + description = S("Iron Checker"), + tiles = {"default_stone.png^moreblocks_iron_checker.png", + "default_stone.png^moreblocks_iron_checker.png", + "default_stone.png^moreblocks_iron_checker.png", + "default_stone.png^moreblocks_iron_checker.png", + "default_stone.png^moreblocks_iron_checker.png^[transformR90", + "default_stone.png^moreblocks_iron_checker.png^[transformR90"}, + groups = {cracky = 3}, + sounds = sound_stone, + }, + ["trap_stone"] = { + description = S("Trap Stone"), + walkable = false, + groups = {cracky = 3}, + sounds = sound_stone, + no_stairs = true, + }, + ["trap_glass"] = { + description = S("Trap Glass"), + drawtype = "glasslike_framed", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3}, + sounds = sound_glass, + no_stairs = true, + }, + ["fence_jungle_wood"] = { + description = S("Jungle Wood Fence"), + drawtype = "fencelike", + tiles = {"default_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", + paramtype = "light", + selection_box = { + type = "fixed", + fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, + }, + groups = {snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = sound_wood, + no_stairs = true, + }, + ["all_faces_tree"] = { + description = S("All-faces Tree"), + tiles = {"default_tree_top.png"}, + groups = {tree = 1,snappy = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = sound_wood, + furnace_burntime = 30, + }, + ["all_faces_jungle_tree"] = { + description = S("All-faces Jungle Tree"), + tiles = {"default_jungletree_top.png"}, + groups = {tree = 1,snappy = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = sound_wood, + furnace_burntime = 30, + }, + ["glow_glass"] = { + description = S("Glow Glass"), + drawtype = "glasslike_framed", + paramtype = "light", + sunlight_propagates = true, + light_source = 11, + groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3}, + sounds = sound_glass, + }, + ["trap_glow_glass"] = { + description = S("Trap Glow Glass"), + drawtype = "glasslike_framed", + paramtype = "light", + sunlight_propagates = true, + light_source = 11, + walkable = false, + groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3}, + sounds = sound_glass, + no_stairs = true, + }, + ["super_glow_glass"] = { + description = S("Super Glow Glass"), + drawtype = "glasslike_framed", + paramtype = "light", + sunlight_propagates = true, + light_source = 15, + groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3}, + sounds = sound_glass, + }, + ["trap_super_glow_glass"] = { + description = S("Trap Super Glow Glass"), + drawtype = "glasslike_framed", + paramtype = "light", + sunlight_propagates = true, + light_source = 15, + walkable = false, + groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3}, + sounds = sound_glass, + no_stairs = true, + }, + ["rope"] = { + description = S("Rope"), + drawtype = "signlike", + inventory_image = "moreblocks_rope.png", + wield_image = "moreblocks_rope.png", + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "wallmounted", + walkable = false, + climbable = true, + selection_box = {type = "wallmounted",}, + groups = {snappy = 3, flammable = 2}, + sounds = sound_leaves, + no_stairs = true, + }, +} + +for name, def in pairs(nodes) do + def.tiles = def.tiles or {"moreblocks_" ..name.. ".png"} + minetest.register_node("moreblocks:" ..name, def) + minetest.register_alias(name, "moreblocks:" ..name) + if not def.no_stairs then + local groups = {} + for k, v in pairs(def.groups) do groups[k] = v end + stairsplus:register_all("moreblocks", name, "moreblocks:" ..name, { + description = def.description, + groups = groups, + tiles = def.tiles, + sunlight_propagates = def.sunlight_propagates, + light_source = def.light_source, + sounds = def.sounds, + }) + end +end + + +-- Items + +minetest.register_craftitem("moreblocks:sweeper", { + description = S("Sweeper"), + inventory_image = "moreblocks_sweeper.png", +}) + +minetest.register_craftitem("moreblocks:jungle_stick", { + description = S("Jungle Stick"), + inventory_image = "moreblocks_junglestick.png", + groups = {stick= 1}, +}) + +minetest.register_craftitem("moreblocks:nothing", { + inventory_image = "invisible.png", + on_use = function() end, +}) + diff --git a/mods/moreblocks/ownership.lua b/mods/moreblocks/ownership.lua new file mode 100755 index 00000000..9cd4cb30 --- /dev/null +++ b/mods/moreblocks/ownership.lua @@ -0,0 +1,35 @@ + +local S = moreblocks.gettext + +function moreblocks.node_is_owned(pos, placer) + local ownername = false + if type(IsPlayerNodeOwner) == "function" then -- node_ownership mod + if HasOwner(pos, placer) then -- returns true if the node is owned + if not IsPlayerNodeOwner(pos, placer:get_player_name()) then + if type(getLastOwner) == "function" then -- ...is an old version + ownername = getLastOwner(pos) + elseif type(GetNodeOwnerName) == "function" then -- ...is a recent version + ownername = GetNodeOwnerName(pos) + else + ownername = S("someone") + end + end + end + + elseif type(isprotect)=="function" then -- glomie's protection mod + if not isprotect(5, pos, placer) then + ownername = S("someone") + end + elseif type(protector)=="table" and type(protector.can_dig)=="function" then -- Zeg9's protection mod + if not protector.can_dig(5, pos, placer) then + ownername = S("someone") + end + end + + if ownername ~= false then + minetest.chat_send_player( placer:get_player_name(), S("Sorry, %s owns that spot."):format(ownername) ) + return true + else + return false + end +end diff --git a/mods/moreblocks/redefinitions.lua b/mods/moreblocks/redefinitions.lua new file mode 100755 index 00000000..4db169b1 --- /dev/null +++ b/mods/moreblocks/redefinitions.lua @@ -0,0 +1,96 @@ +-- Redefinitions of some default crafting recipes: + +minetest.register_craft({ + output = "default:sign_wall 4", + recipe = { + {"default:wood", "default:wood", "default:wood"}, + {"default:wood", "default:wood", "default:wood"}, + {"", "default:stick", ""}, + } +}) + +minetest.register_craft({ + output = "default:ladder 4", + recipe = { + {"default:stick", "", "default:stick"}, + {"default:stick", "default:stick", "default:stick"}, + {"default:stick", "", "default:stick"}, + } +}) + +minetest.register_craft({ + output = "default:paper 4", + recipe = { + {"default:papyrus", "default:papyrus", "default:papyrus"}, + } +}) + +minetest.register_craft({ + output = "default:rail 16", + recipe = { + {"default:steel_ingot", "", "default:steel_ingot"}, + {"default:steel_ingot", "default:stick", "default:steel_ingot"}, + {"default:steel_ingot", "", "default:steel_ingot"}, + } +}) + +minetest.register_craft({ + type = "toolrepair", + additional_wear = -0.15, -- Tool repair buff (15% bonus instead of 2%). +}) + +-- Redefinitions of some default nodes: + +-- Make glass and obsidian glass framed, like the More Blocks glasses: +minetest.override_item("default:glass", { + drawtype = "glasslike_framed", +}) + +minetest.override_item("default:obsidian_glass", { + drawtype = "glasslike_framed", +}) + +-- Let there be light. This makes some nodes let light pass through: +minetest.override_item("default:ladder", { + paramtype = "light", + sunlight_propagates = true, +}) + +minetest.override_item("default:sapling", { + paramtype = "light", + sunlight_propagates = true, +}) + +minetest.override_item("default:dry_shrub", { + paramtype = "light", + sunlight_propagates = true, +}) + +minetest.override_item("default:papyrus", { + paramtype = "light", + sunlight_propagates = true, +}) + +minetest.override_item("default:junglegrass", { + paramtype = "light", + sunlight_propagates = true, +}) + +minetest.override_item("default:junglesapling", { + paramtype = "light", + sunlight_propagates = true, +}) + +minetest.override_item("default:grass_1", { + inventory_image = "default_grass_3.png", -- Use a bigger inventory image. + wield_image = "default_grass_3.png", + paramtype = "light", + sunlight_propagates = true, +}) + +for i = 2, 5 do + minetest.override_item("default:grass_" ..i, { + paramtype = "light", + sunlight_propagates = true, + }) +end diff --git a/mods/moreblocks/stairsplus/API.md b/mods/moreblocks/stairsplus/API.md new file mode 100755 index 00000000..a98ec81e --- /dev/null +++ b/mods/moreblocks/stairsplus/API.md @@ -0,0 +1,25 @@ +API documentation for Stairs+ +================================ +- - - - - - - - - - - - - - - - + +* `stairsplus:register_all(modname, subname, recipeitem, fields)` + Registers a stair, slab, panel, microblock, and any other types of + nodes to be added in the future. + This also registers the node with the circular saw. + Example: + ```lua + stairsplus:register_all("moreblocks", "wood", "defaut:wood", { + description = "Wooden", + tiles = {"default_wood.png"}, + groups = {oddly_breakabe_by_hand=1}, + sounds = default.node_sound_wood_defaults(), + }) + ``` +The following register only a particular type of microblock. +You will probably never want to use them directly: + +* `stairsplus:register_stair(modname, subname, recipeitem, fields)` +* `stairsplus:register_slab(modname, subname, recipeitem, fields)` +* `stairsplus:register_panel(modname, subname, recipeitem, fields)` +* `stairsplus:register_micro(modname, subname, recipeitem, fields)` + diff --git a/mods/moreblocks/stairsplus/aliases.lua b/mods/moreblocks/stairsplus/aliases.lua new file mode 100755 index 00000000..c92df483 --- /dev/null +++ b/mods/moreblocks/stairsplus/aliases.lua @@ -0,0 +1,62 @@ + +local function register_stairsplus_alias(modname, origname, newname) + minetest.register_alias(modname.. ":slab_" ..origname, "moreblocks:slab_" ..newname) + minetest.register_alias(modname.. ":slab_" ..origname.. "_inverted", "moreblocks:slab_" ..newname.. "_inverted") + minetest.register_alias(modname.. ":slab_" ..origname.. "_wall", "moreblocks:slab_" ..newname.. "_wall") + minetest.register_alias(modname.. ":slab_" ..origname.. "_quarter", "moreblocks:slab_" ..newname.. "_quarter") + minetest.register_alias(modname.. ":slab_" ..origname.. "_quarter_inverted", "moreblocks:slab_" ..newname.. "_quarter_inverted") + minetest.register_alias(modname.. ":slab_" ..origname.. "_quarter_wall", "moreblocks:slab_" ..newname.. "_quarter_wall") + minetest.register_alias(modname.. ":slab_" ..origname.. "_three_quarter", "moreblocks:slab_" ..newname.. "_three_quarter") + minetest.register_alias(modname.. ":slab_" ..origname.. "_three_quarter_inverted", "moreblocks:slab_" ..newname.. "_three_quarter_inverted") + minetest.register_alias(modname.. ":slab_" ..origname.. "_three_quarter_wall", "moreblocks:slab_" ..newname.. "_three_quarter_wall") + minetest.register_alias(modname.. ":stair_" ..origname, "moreblocks:stair_" ..newname) + minetest.register_alias(modname.. ":stair_" ..origname.. "_inverted", "moreblocks:stair_" ..newname.. "_inverted") + minetest.register_alias(modname.. ":stair_" ..origname.. "_wall", "moreblocks:stair_" ..newname.. "_wall") + minetest.register_alias(modname.. ":stair_" ..origname.. "_wall_half", "moreblocks:stair_" ..newname.. "_wall_half") + minetest.register_alias(modname.. ":stair_" ..origname.. "_wall_half_inverted", "moreblocks:stair_" ..newname.. "_wall_half_inverted") + minetest.register_alias(modname.. ":stair_" ..origname.. "_half", "moreblocks:stair_" ..newname.. "_half") + minetest.register_alias(modname.. ":stair_" ..origname.. "_half_inverted", "moreblocks:stair_" ..newname.. "_half_inverted") + minetest.register_alias(modname.. ":stair_" ..origname.. "_right_half", "moreblocks:stair_" ..newname.. "_right_half") + minetest.register_alias(modname.. ":stair_" ..origname.. "_right_half_inverted", "moreblocks:stair_" ..newname.. "_right_half_inverted") + minetest.register_alias(modname.. ":stair_" ..origname.. "_wall_half", "moreblocks:stair_" ..newname.. "_wall_half") + minetest.register_alias(modname.. ":stair_" ..origname.. "_wall_half_inverted", "moreblocks:stair_" ..newname.. "_wall_half_inverted") + minetest.register_alias(modname.. ":stair_" ..origname.. "_inner", "moreblocks:stair_" ..newname.. "_inner") + minetest.register_alias(modname.. ":stair_" ..origname.. "_inner_inverted", "moreblocks:stair_" ..newname.. "_inner_inverted") + minetest.register_alias(modname.. ":stair_" ..origname.. "_outer", "moreblocks:stair_" ..newname.. "_outer") + minetest.register_alias(modname.. ":stair_" ..origname.. "_outer_inverted", "moreblocks:stair_" ..newname.. "_outer_inverted") + minetest.register_alias(modname.. ":panel_" ..origname.. "_bottom", "moreblocks:panel_" ..newname.. "_bottom") + minetest.register_alias(modname.. ":panel_" ..origname.. "_top", "moreblocks:panel_" ..newname.. "_top") + minetest.register_alias(modname.. ":panel_" ..origname.. "_vertical", "moreblocks:panel_" ..newname.. "_vertical") + minetest.register_alias(modname.. ":micro_" ..origname.. "_bottom", "moreblocks:micro_" ..newname.. "_bottom") + minetest.register_alias(modname.. ":micro_" ..origname.. "_top", "moreblocks:micro_" ..newname.. "_top") +end + +register_stairsplus_alias("stairsplus", "stone", "stone") +register_stairsplus_alias("stairsplus", "wood", "wood") +register_stairsplus_alias("stairsplus", "cobble", "cobble") +register_stairsplus_alias("stairsplus", "brick", "brick") +register_stairsplus_alias("stairsplus", "sandstone", "sandstone") +register_stairsplus_alias("stairsplus", "glass", "glass") +register_stairsplus_alias("stairsplus", "tree", "tree") +register_stairsplus_alias("stairsplus", "jungletree", "jungletree") +register_stairsplus_alias("stairsplus", "desert_stone", "desert_stone") +register_stairsplus_alias("stairsplus", "steelblock", "steelblock") +register_stairsplus_alias("stairsplus", "mossycobble", "mossycobble") + +register_stairsplus_alias("moreblocks", "coalstone", "coal_stone") +register_stairsplus_alias("moreblocks", "junglewood", "jungle_wood") +register_stairsplus_alias("moreblocks", "circlestonebrick", "circle_stone_bricks") +register_stairsplus_alias("moreblocks", "ironstone", "iron_stone") +register_stairsplus_alias("moreblocks", "coalglass", "coal_glass") +register_stairsplus_alias("moreblocks", "ironglass", "iron_glass") +register_stairsplus_alias("moreblocks", "glowglass", "glow_glass") +register_stairsplus_alias("moreblocks", "superglowglass", "super_glow_glass") +register_stairsplus_alias("moreblocks", "coalchecker", "coal_checker") +register_stairsplus_alias("moreblocks", "ironchecker", "iron_checker") +register_stairsplus_alias("moreblocks", "cactuschecker", "cactus_checker") +register_stairsplus_alias("moreblocks", "ironstonebrick", "iron_stone_bricks") +register_stairsplus_alias("moreblocks", "stonesquare", "stone_tile") +register_stairsplus_alias("moreblocks", "splitstonesquare", "split_stone_tile") +register_stairsplus_alias("moreblocks", "woodtile", "wood_tile") +register_stairsplus_alias("moreblocks", "woodtile_centered", "wood_tile_centered") +register_stairsplus_alias("moreblocks", "woodtile_full", "wood_tile_full") diff --git a/mods/moreblocks/stairsplus/conversion.lua b/mods/moreblocks/stairsplus/conversion.lua new file mode 100755 index 00000000..fda30c7b --- /dev/null +++ b/mods/moreblocks/stairsplus/conversion.lua @@ -0,0 +1,132 @@ +-- Function to convert all stairs/slabs/etc nodes from +-- inverted, wall, etc to regular + 6d facedir + +local dirs1 = {21, 20, 23, 22, 21} +local dirs2 = {15, 8, 17, 6, 15} +local dirs3 = {14, 11, 16, 5, 14} + +function stairsplus:register_6dfacedir_conversion(modname, material) + --print("Register stairsplus 6d facedir conversion") + --print('ABM for '..modname..' "'..material..'"') + + local objects_list1 = { + modname.. ":slab_" ..material.. "_inverted", + modname.. ":slab_" ..material.. "_quarter_inverted", + modname.. ":slab_" ..material.. "_three_quarter_inverted", + modname.. ":stair_" ..material.. "_inverted", + modname.. ":stair_" ..material.. "_wall", + modname.. ":stair_" ..material.. "_wall_half", + modname.. ":stair_" ..material.. "_wall_half_inverted", + modname.. ":stair_" ..material.. "_half_inverted", + modname.. ":stair_" ..material.. "_right_half_inverted", + modname.. ":panel_" ..material.. "_vertical", + modname.. ":panel_" ..material.. "_top", + } + + local objects_list2 = { + modname.. ":slab_" ..material.. "_wall", + modname.. ":slab_" ..material.. "_quarter_wall", + modname.. ":slab_" ..material.. "_three_quarter_wall", + modname.. ":stair_" ..material.. "_inner_inverted", + modname.. ":stair_" ..material.. "_outer_inverted", + modname.. ":micro_" ..material.. "_top" + } + + for _, object in pairs(objects_list1) do + local flip_upside_down = false + local flip_to_wall = false + + local dest_object = object + + if string.find(dest_object, "_inverted") then + flip_upside_down = true + dest_object = string.gsub(dest_object, "_inverted", "") + end + + if string.find(object, "_top") then + flip_upside_down = true + dest_object = string.gsub(dest_object, "_top", "") + end + + if string.find(dest_object, "_wall") then + flip_to_wall = true + dest_object = string.gsub(dest_object, "_wall", "") + end + + if string.find(dest_object, "_vertical") then + flip_to_wall = true + dest_object = string.gsub(dest_object, "_vertical", "") + end + + if string.find(dest_object, "_half") and not string.find(dest_object, "_right_half") then + dest_object = string.gsub(dest_object, "_half", "_right_half") + elseif string.find(dest_object, "_right_half") then + dest_object = string.gsub(dest_object, "_right_half", "_half") + end + + --print(" +---> convert " ..object) + --print(" | to " ..dest_object) + + minetest.register_abm({ + nodenames = {object}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local fdir = node.param2 or 0 + + if flip_upside_down and not flip_to_wall then + nfdir = dirs1[fdir + 2] + elseif flip_to_wall and not flip_upside_down then + nfdir = dirs2[fdir + 1] + elseif flip_to_wall and flip_upside_down then + nfdir = dirs3[fdir + 2] + end + minetest.set_node(pos, {name = dest_object, param2 = nfdir}) + end + }) + end + + for _, object in pairs(objects_list2) do + local flip_upside_down = false + local flip_to_wall = false + + local dest_object = object + + if string.find(dest_object, "_inverted") then + flip_upside_down = true + dest_object = string.gsub(dest_object, "_inverted", "") + end + + if string.find(dest_object, "_top") then + flip_upside_down = true + dest_object = string.gsub(dest_object, "_top", "") + end + + if string.find(dest_object, "_wall") then + flip_to_wall = true + dest_object = string.gsub(dest_object, "_wall", "") + end + + --print(" +---> convert " ..object) + --print(" | to " ..dest_object) + + minetest.register_abm({ + nodenames = {object}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local fdir = node.param2 + local nfdir = 20 + + if flip_upside_down and not flip_to_wall then + nfdir = dirs1[fdir + 1] + elseif flip_to_wall and not flip_upside_down then + nfdir = dirs2[fdir + 2] + + end + minetest.set_node(pos, {name = dest_object, param2 = nfdir}) + end + }) + end +end + diff --git a/mods/moreblocks/stairsplus/init.lua b/mods/moreblocks/stairsplus/init.lua new file mode 100755 index 00000000..ae09b7d3 --- /dev/null +++ b/mods/moreblocks/stairsplus/init.lua @@ -0,0 +1,43 @@ +-- Nodes will be called :{stair,slab,panel,micro}_ + +local modpath = minetest.get_modpath("moreblocks").. "/stairsplus" + +stairsplus = {} +stairsplus.expect_infinite_stacks = false + +if not minetest.get_modpath("unified_inventory") +and minetest.setting_getbool("creative_mode") then + stairsplus.expect_infinite_stacks = true +end + +function stairsplus:register_all(modname, subname, recipeitem, fields) + fields = fields or {} + fields.groups = fields.groups or {} + if not moreblocks.config.stairsplus_in_creative_inventory then + fields.groups.not_in_creative_inventory = 1 + end + self:register_stair(modname, subname, recipeitem, fields) + self:register_slab (modname, subname, recipeitem, fields) + self:register_panel(modname, subname, recipeitem, fields) + self:register_micro(modname, subname, recipeitem, fields) + -- self:register_6dfacedir_conversion(modname, subname) -- Not needed as of Q3 2013, uncomment to fix old maps. + circular_saw.known_nodes[recipeitem] = {modname, subname} +end + +function register_stair_slab_panel_micro(modname, subname, recipeitem, groups, images, description, drop, light) + stairsplus:register_all(modname, subname, recipeitem, { + groups = groups, + tiles = images, + description = description, + drop = drop, + light_source = light + }) +end + +-- dofile(modpath.. "/aliases.lua") -- Not needed as of Q2 2013, uncomment to fix old maps. +-- dofile(modpath.. "/conversion.lua") -- Not needed as of Q2 2013, uncomment to fix old maps. +dofile(modpath.. "/stairs.lua") +dofile(modpath.. "/slabs.lua") +dofile(modpath.. "/panels.lua") +dofile(modpath.. "/microblocks.lua") +dofile(modpath.. "/registrations.lua") diff --git a/mods/moreblocks/stairsplus/microblocks.lua b/mods/moreblocks/stairsplus/microblocks.lua new file mode 100755 index 00000000..aac69ee7 --- /dev/null +++ b/mods/moreblocks/stairsplus/microblocks.lua @@ -0,0 +1,122 @@ +local S -- Load translation library if intllib is installed: +if intllib then + S = intllib.Getter(minetest.get_current_modname()) +else + S = function(s) return s end +end + +-- Node will be called :micro_ + +function register_micro(modname, subname, recipeitem, groups, images, description, drop, light) + return stairsplus:register_micro(modname, subname, recipeitem, { + groups = groups, + tiles = images, + description = description, + drop = drop, + light_source = light, + sounds = default.node_sound_stone_defaults(), + }) +end + +function stairsplus:register_micro(modname, subname, recipeitem, fields) + local defs = { + [""] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0, 0, 0, 0.5}, + }, + }, + ["_1"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0, 0, -0.4375, 0.5}, + }, + }, + ["_2"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0, 0, -0.375, 0.5}, + }, + }, + ["_4"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0, 0, -0.25, 0.5}, + }, + }, + ["_12"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0, 0, 0.25, 0.5}, + }, + }, + ["_14"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0, 0, 0.375, 0.5}, + }, + }, + ["_15"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0, 0, 0.4375, 0.5}, + }, + } + } + + local desc = S("%s Microblock"):format(fields.description) + for alternate, def in pairs(defs) do + def.drawtype = "nodebox" + def.paramtype = "light" + def.paramtype2 = "facedir" + def.on_place = minetest.rotate_node + for k, v in pairs(fields) do + def[k] = v + end + def.description = desc + if fields.drop then + def.drop = modname.. ":micro_" ..fields.drop..alternate + end + minetest.register_node(":" ..modname.. ":micro_" ..subname..alternate, def) + end + + minetest.register_alias(modname.. ":micro_" ..subname.. "_bottom", modname.. ":micro_" ..subname) + + -- Some saw-less recipes: + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":micro_" .. subname .. " 7", + recipe = {modname .. ":stair_" .. subname .. "_inner"}, + }) + + minetest.register_craft({ + output = modname .. ":micro_" .. subname .. " 6", + type = "shapeless", + recipe = {modname .. ":stair_" .. subname}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":micro_" .. subname .. " 5", + recipe = {modname .. ":stair_" .. subname .. "_outer"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":micro_" .. subname .. " 4", + recipe = {modname .. ":slab_" .. subname}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":micro_" .. subname .. " 2", + recipe = {modname .. ":panel_" .. subname}, + }) + + minetest.register_craft({ + type = "shapeless", + output = recipeitem, + recipe = {modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname}, + }) +end diff --git a/mods/moreblocks/stairsplus/panels.lua b/mods/moreblocks/stairsplus/panels.lua new file mode 100755 index 00000000..f93f1cf3 --- /dev/null +++ b/mods/moreblocks/stairsplus/panels.lua @@ -0,0 +1,113 @@ +local S -- Load translation library if intllib is installed: +if intllib then + S = intllib.Getter(minetest.get_current_modname()) +else + S = function(s) return s end +end + +-- Node will be called :panel_ + +function register_panel(modname, subname, recipeitem, groups, images, description, drop, light) + return stairsplus:register_panel(modname, subname, recipeitem, { + groups = groups, + tiles = images, + description = description, + drop = drop, + light_source = light, + sounds = default.node_sound_stone_defaults(), + }) +end + +function stairsplus:register_panel(modname, subname, recipeitem, fields) + local defs = { + [""] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0, 0.5, 0, 0.5}, + }, + }, + ["_1"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0, 0.5, -0.4375, 0.5}, + }, + }, + ["_2"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0, 0.5, -0.375, 0.5}, + }, + }, + ["_4"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0, 0.5, -0.25, 0.5}, + }, + }, + ["_12"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0, 0.5, 0.25, 0.5}, + }, + }, + ["_14"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0, 0.5, 0.375, 0.5}, + }, + }, + ["_15"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0, 0.5, 0.4375, 0.5}, + }, + } + } + + local desc = S("%s Panel"):format(fields.description) + for alternate, def in pairs(defs) do + def.drawtype = "nodebox" + def.paramtype = "light" + def.paramtype2 = "facedir" + def.on_place = minetest.rotate_node + for k, v in pairs(fields) do + def[k] = v + end + def.description = desc + if fields.drop then + def.drop = modname.. ":panel_" ..fields.drop..alternate + end + minetest.register_node(":" ..modname.. ":panel_" ..subname..alternate, def) + end + minetest.register_alias(modname.. ":panel_" ..subname.. "_bottom", modname.. ":panel_" ..subname) + + -- Some saw-less recipes: + + minetest.register_craft({ + output = modname .. ":panel_" .. subname .. " 12", + recipe = { + {recipeitem, ""}, + {recipeitem, recipeitem}, + }, + }) + + minetest.register_craft({ + output = modname .. ":panel_" .. subname .. " 12", + recipe = { + {"", recipeitem}, + {recipeitem, recipeitem}, + }, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":panel_" .. subname, + recipe = {modname .. ":micro_" .. subname, modname .. ":micro_" .. subname}, + }) + + minetest.register_craft({ + type = "shapeless", + output = recipeitem, + recipe = {modname .. ":panel_" .. subname, modname .. ":panel_" .. subname, modname .. ":panel_" .. subname, modname .. ":panel_" .. subname}, + }) +end diff --git a/mods/moreblocks/stairsplus/registrations.lua b/mods/moreblocks/stairsplus/registrations.lua new file mode 100755 index 00000000..cc22d333 --- /dev/null +++ b/mods/moreblocks/stairsplus/registrations.lua @@ -0,0 +1,49 @@ +local default_nodes = { -- Default stairs/slabs/panels/microblocks: + "stone", + "cobble", + "mossycobble", + "brick", + "sandstone", + "steelblock", + "goldblock", + "copperblock", + "bronzeblock", + "diamondblock", + "desert_stone", +-- "desert_cobble", + "glass", + "tree", + "wood", + "jungletree", + "junglewood", + "obsidian", + "obsidian_glass", + "stonebrick", + "desert_stonebrick", + "sandstonebrick", +} + +for _, name in pairs(default_nodes) do + local nodename = "default:" .. name + local ndef = minetest.registered_nodes[nodename] + local groups = {} + for k, v in pairs(ndef.groups) + -- Ignore wood and stone groups to not make them usable in crafting: + do if k ~= "wood" and k ~= "stone" then + groups[k] = v + end + end + local drop + if type(ndef.drop) == "string" then + drop = ndef.drop:sub(9) + end + stairsplus:register_all("moreblocks", name, nodename, { + description = ndef.description, + drop = drop, + groups = groups, + sounds = ndef.sounds, + tiles = ndef.tiles, + sunlight_propagates = true, + }) +end + diff --git a/mods/moreblocks/stairsplus/slabs.lua b/mods/moreblocks/stairsplus/slabs.lua new file mode 100755 index 00000000..bbae96b3 --- /dev/null +++ b/mods/moreblocks/stairsplus/slabs.lua @@ -0,0 +1,120 @@ +local S -- Load translation library if intllib is installed: +if intllib then + S = intllib.Getter(minetest.get_current_modname()) +else + S = function(s) return s end +end + +-- Node will be called :slab_ + +function register_slab(modname, subname, recipeitem, groups, images, description, drop, light) + return stairsplus:register_slab(modname, subname, recipeitem, { + groups = groups, + tiles = images, + description = description, + drop = drop, + light_source = light, + sounds = default.node_sound_stone_defaults(), + }) +end + +function stairsplus:register_slab(modname, subname, recipeitem, fields) + local defs = { + [""] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + }, + }, + ["_quarter"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, + }, + }, + ["_three_quarter"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.25, 0.5}, + }, + }, + ["_1"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, + }, + }, + ["_2"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.375, 0.5}, + }, + }, + ["_14"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.375, 0.5}, + }, + }, + ["_15"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.4375, 0.5}, + }, + }, + } + local desc = S("%s Slab"):format(fields.description) + for alternate, def in pairs(defs) do + def.drawtype = "nodebox" + def.paramtype = "light" + def.paramtype2 = "facedir" + def.on_place = minetest.rotate_node + for k, v in pairs(fields) do + def[k] = v + end + def.description = desc + if fields.drop then + def.drop = modname.. ":slab_" ..fields.drop..alternate + end + minetest.register_node(":" ..modname.. ":slab_" ..subname..alternate, def) + end + minetest.register_alias("stairs:slab_" ..subname, modname.. ":slab_" ..subname) + + -- Some saw-less recipes: + + minetest.register_craft({ + output = modname .. ":slab_" .. subname .. " 6", + recipe = {{recipeitem, recipeitem, recipeitem}}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":slab_" .. subname, + recipe = {modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname}, + }) + + minetest.register_craft({ + output = modname .. ":slab_" .. subname, + recipe = {{modname .. ":panel_" .. subname, modname .. ":panel_" .. subname}}, + }) + + minetest.register_craft({ + output = modname .. ":slab_" .. subname, + recipe = { + {modname .. ":panel_" .. subname}, + {modname .. ":panel_" .. subname}, + }, + }) + + minetest.register_craft({ + type = "shapeless", + output = recipeitem, + recipe = {modname .. ":slab_" .. subname, modname .. ":slab_" .. subname}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":slab_" .. subname .. " 3", + recipe = {modname .. ":stair_" .. subname, modname .. ":stair_" .. subname}, + }) +end diff --git a/mods/moreblocks/stairsplus/stairs.lua b/mods/moreblocks/stairsplus/stairs.lua new file mode 100755 index 00000000..b921d081 --- /dev/null +++ b/mods/moreblocks/stairsplus/stairs.lua @@ -0,0 +1,225 @@ +local S -- Load translation library if intllib is installed: +if intllib then + S = intllib.Getter(minetest.get_current_modname()) +else + S = function(s) return s end +end + +-- Node will be called :stair_ + +function register_stair(modname, subname, recipeitem, groups, images, description, drop, light) + return stairsplus:register_stair(modname, subname, recipeitem, { + groups = groups, + tiles = images, + description = description, + drop = drop, + light_source = light, + sounds = default.node_sound_stone_defaults(), + }) +end + +function stairsplus:register_stair(modname, subname, recipeitem, fields) + local defs = { + [""] = { + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + {-0.5, 0, 0, 0.5, 0.5, 0.5}, + }, + }, + }, + ["_half"] = { + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0, 0, 0.5}, + {-0.5, 0, 0, 0, 0.5, 0.5}, + }, + }, + }, + ["_right_half" ]= { + node_box = { + type = "fixed", + fixed = { + {0, -0.5, -0.5, 0.5, 0, 0.5}, + {0, 0, 0, 0.5, 0.5, 0.5}, + }, + }, + }, + ["_inner"] = { + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + {-0.5, 0, 0, 0.5, 0.5, 0.5}, + {-0.5, 0, -0.5, 0, 0.5, 0}, + }, + }, + }, + ["_outer"] = { + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + {-0.5, 0, 0, 0, 0.5, 0.5}, + }, + }, + }, + ["_alt"] = { + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0, 0}, + {-0.5, 0, 0, 0.5, 0.5, 0.5}, + }, + }, + }, + ["_alt_1"] = { + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.0625, -0.5, 0.5, 0, 0}, + {-0.5, 0.4375, 0, 0.5, 0.5, 0.5}, + }, + }, + }, + ["_alt_2"] = { + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.125, -0.5, 0.5, 0, 0}, + {-0.5, 0.375, 0, 0.5, 0.5, 0.5}, + }, + }, + }, + ["_alt_4"] = { + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.25, -0.5, 0.5, 0, 0}, + {-0.5, 0.25, 0, 0.5, 0.5, 0.5}, + }, + }, + }, + } + + local desc = S("%s Stairs"):format(fields.description) + for alternate, def in pairs(defs) do + def.drawtype = "nodebox" + def.paramtype = "light" + def.paramtype2 = "facedir" + def.on_place = minetest.rotate_node + for k, v in pairs(fields) do + def[k] = v + end + def.description = desc + if fields.drop then + def.drop = modname.. ":stair_" ..fields.drop..alternate + end + minetest.register_node(":" ..modname.. ":stair_" ..subname..alternate, def) + end + minetest.register_alias(":stairs:stair_" ..subname, modname.. ":stair_" ..subname) + + -- Some saw-less recipes: + + minetest.register_craft({ + output = modname .. ":stair_" .. subname .. " 8", + recipe = { + {recipeitem, "", ""}, + {recipeitem, recipeitem, ""}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + + minetest.register_craft({ + output = modname .. ":stair_" .. subname .. " 8", + recipe = { + {"", "", recipeitem}, + {"", recipeitem, recipeitem}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":stair_" .. subname, + recipe = {modname .. ":panel_" .. subname, modname .. ":slab_" .. subname}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":stair_" .. subname, + recipe = {modname .. ":panel_" .. subname, modname .. ":panel_" .. subname, modname .. ":panel_" .. subname}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":stair_" .. subname .. "_outer", + recipe = {modname .. ":micro_" .. subname, modname .. ":slab_" .. subname}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":stair_" .. subname .. "_half", + recipe = {modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":stair_" .. subname .. "_half", + recipe = {modname .. ":panel_" .. subname, modname .. ":micro_" .. subname}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":stair_" .. subname .. "_right_half", + recipe = {modname .. ":stair_" .. subname .. "_half"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":stair_" .. subname .. "_half", + recipe = {modname .. ":stair_" .. subname .. "_right_half"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":stair_" .. subname, + recipe = {modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":stair_" .. subname .. "_inner", + recipe = {modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":stair_" .. subname .. "_outer", + recipe = {modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":stair_" .. subname, + recipe = {modname .. ":panel_" .. subname, modname .. ":panel_" .. subname, modname .. ":panel_" .. subname}, + }) + + minetest.register_craft({ -- See mirrored variation of the recipe below. + output = modname .. ":stair_" .. subname .. "_alt", + recipe = { + {modname .. ":panel_" .. subname, ""}, + {"" , modname .. ":panel_" .. subname}, + }, + }) + + minetest.register_craft({ -- Mirrored variation of the recipe above. + output = modname .. ":stair_" .. subname .. "_alt", + recipe = { + {"" , modname .. ":panel_" .. subname}, + {modname .. ":panel_" .. subname, ""}, + }, + }) +end diff --git a/mods/moreblocks/textures/default_brick.png b/mods/moreblocks/textures/default_brick.png new file mode 100755 index 00000000..9c76033f Binary files /dev/null and b/mods/moreblocks/textures/default_brick.png differ diff --git a/mods/moreblocks/textures/default_fence_overlay.png b/mods/moreblocks/textures/default_fence_overlay.png new file mode 100755 index 00000000..780e7368 Binary files /dev/null and b/mods/moreblocks/textures/default_fence_overlay.png differ diff --git a/mods/moreblocks/textures/invisible.png b/mods/moreblocks/textures/invisible.png new file mode 100755 index 00000000..4b5b3029 Binary files /dev/null and b/mods/moreblocks/textures/invisible.png differ diff --git a/mods/moreblocks/textures/moreblocks_cactus_brick.png b/mods/moreblocks/textures/moreblocks_cactus_brick.png new file mode 100755 index 00000000..0e8c2c9e Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_cactus_brick.png differ diff --git a/mods/moreblocks/textures/moreblocks_cactus_checker.png b/mods/moreblocks/textures/moreblocks_cactus_checker.png new file mode 100755 index 00000000..99c26773 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_cactus_checker.png differ diff --git a/mods/moreblocks/textures/moreblocks_circle_stone_bricks.png b/mods/moreblocks/textures/moreblocks_circle_stone_bricks.png new file mode 100755 index 00000000..4ca0134d Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_circle_stone_bricks.png differ diff --git a/mods/moreblocks/textures/moreblocks_circular_saw_bottom.png b/mods/moreblocks/textures/moreblocks_circular_saw_bottom.png new file mode 100755 index 00000000..15228297 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_circular_saw_bottom.png differ diff --git a/mods/moreblocks/textures/moreblocks_circular_saw_side.png b/mods/moreblocks/textures/moreblocks_circular_saw_side.png new file mode 100755 index 00000000..ce9e16f7 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_circular_saw_side.png differ diff --git a/mods/moreblocks/textures/moreblocks_circular_saw_top.png b/mods/moreblocks/textures/moreblocks_circular_saw_top.png new file mode 100755 index 00000000..96f3350c Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_circular_saw_top.png differ diff --git a/mods/moreblocks/textures/moreblocks_clean_glass.png b/mods/moreblocks/textures/moreblocks_clean_glass.png new file mode 100755 index 00000000..140ee2b9 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_clean_glass.png differ diff --git a/mods/moreblocks/textures/moreblocks_coal_checker.png b/mods/moreblocks/textures/moreblocks_coal_checker.png new file mode 100755 index 00000000..3df90c30 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_coal_checker.png differ diff --git a/mods/moreblocks/textures/moreblocks_coal_glass.png b/mods/moreblocks/textures/moreblocks_coal_glass.png new file mode 100755 index 00000000..5cb72277 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_coal_glass.png differ diff --git a/mods/moreblocks/textures/moreblocks_coal_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_coal_glass_stairsplus.png new file mode 100755 index 00000000..8086a28f Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_coal_glass_stairsplus.png differ diff --git a/mods/moreblocks/textures/moreblocks_coal_stone.png b/mods/moreblocks/textures/moreblocks_coal_stone.png new file mode 100755 index 00000000..1e514edd Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_coal_stone.png differ diff --git a/mods/moreblocks/textures/moreblocks_coal_stone_bricks.png b/mods/moreblocks/textures/moreblocks_coal_stone_bricks.png new file mode 100755 index 00000000..366e4453 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_coal_stone_bricks.png differ diff --git a/mods/moreblocks/textures/moreblocks_empty_bookshelf.png b/mods/moreblocks/textures/moreblocks_empty_bookshelf.png new file mode 100755 index 00000000..b49fd2e4 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_empty_bookshelf.png differ diff --git a/mods/moreblocks/textures/moreblocks_fence_jungle_wood.png b/mods/moreblocks/textures/moreblocks_fence_jungle_wood.png new file mode 100755 index 00000000..b59db104 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_fence_jungle_wood.png differ diff --git a/mods/moreblocks/textures/moreblocks_fence_wood.png b/mods/moreblocks/textures/moreblocks_fence_wood.png new file mode 100755 index 00000000..e3510c52 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_fence_wood.png differ diff --git a/mods/moreblocks/textures/moreblocks_glass.png b/mods/moreblocks/textures/moreblocks_glass.png new file mode 100755 index 00000000..912b029e Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_glass.png differ diff --git a/mods/moreblocks/textures/moreblocks_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_glass_stairsplus.png new file mode 100755 index 00000000..b879ec32 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_glass_stairsplus.png differ diff --git a/mods/moreblocks/textures/moreblocks_glow_glass.png b/mods/moreblocks/textures/moreblocks_glow_glass.png new file mode 100755 index 00000000..843bebf1 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_glow_glass.png differ diff --git a/mods/moreblocks/textures/moreblocks_glow_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_glow_glass_stairsplus.png new file mode 100755 index 00000000..cdb80443 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_glow_glass_stairsplus.png differ diff --git a/mods/moreblocks/textures/moreblocks_grey_bricks.png b/mods/moreblocks/textures/moreblocks_grey_bricks.png new file mode 100755 index 00000000..9839ca25 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_grey_bricks.png differ diff --git a/mods/moreblocks/textures/moreblocks_iron_checker.png b/mods/moreblocks/textures/moreblocks_iron_checker.png new file mode 100755 index 00000000..d27f4df7 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_iron_checker.png differ diff --git a/mods/moreblocks/textures/moreblocks_iron_glass.png b/mods/moreblocks/textures/moreblocks_iron_glass.png new file mode 100755 index 00000000..51be0d63 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_iron_glass.png differ diff --git a/mods/moreblocks/textures/moreblocks_iron_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_iron_glass_stairsplus.png new file mode 100755 index 00000000..52e3bf37 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_iron_glass_stairsplus.png differ diff --git a/mods/moreblocks/textures/moreblocks_iron_stone.png b/mods/moreblocks/textures/moreblocks_iron_stone.png new file mode 100755 index 00000000..20c42f33 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_iron_stone.png differ diff --git a/mods/moreblocks/textures/moreblocks_iron_stone_bricks.png b/mods/moreblocks/textures/moreblocks_iron_stone_bricks.png new file mode 100755 index 00000000..1f817f87 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_iron_stone_bricks.png differ diff --git a/mods/moreblocks/textures/moreblocks_junglestick.png b/mods/moreblocks/textures/moreblocks_junglestick.png new file mode 100755 index 00000000..7c6c462c Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_junglestick.png differ diff --git a/mods/moreblocks/textures/moreblocks_obsidian_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_obsidian_glass_stairsplus.png new file mode 100755 index 00000000..3eb22d0a Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_obsidian_glass_stairsplus.png differ diff --git a/mods/moreblocks/textures/moreblocks_plankstone.png b/mods/moreblocks/textures/moreblocks_plankstone.png new file mode 100755 index 00000000..b1a65c54 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_plankstone.png differ diff --git a/mods/moreblocks/textures/moreblocks_plankstone_2.png b/mods/moreblocks/textures/moreblocks_plankstone_2.png new file mode 100755 index 00000000..953c2f55 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_plankstone_2.png differ diff --git a/mods/moreblocks/textures/moreblocks_rope.png b/mods/moreblocks/textures/moreblocks_rope.png new file mode 100755 index 00000000..19787fe5 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_rope.png differ diff --git a/mods/moreblocks/textures/moreblocks_split_stone_tile.png b/mods/moreblocks/textures/moreblocks_split_stone_tile.png new file mode 100755 index 00000000..d7d69af4 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_split_stone_tile.png differ diff --git a/mods/moreblocks/textures/moreblocks_split_stone_tile_alt.png b/mods/moreblocks/textures/moreblocks_split_stone_tile_alt.png new file mode 100755 index 00000000..9d11b4f3 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_split_stone_tile_alt.png differ diff --git a/mods/moreblocks/textures/moreblocks_split_stone_tile_top.png b/mods/moreblocks/textures/moreblocks_split_stone_tile_top.png new file mode 100755 index 00000000..3c8eb6d1 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_split_stone_tile_top.png differ diff --git a/mods/moreblocks/textures/moreblocks_stone_tile.png b/mods/moreblocks/textures/moreblocks_stone_tile.png new file mode 100755 index 00000000..c2083eaa Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_stone_tile.png differ diff --git a/mods/moreblocks/textures/moreblocks_super_glow_glass.png b/mods/moreblocks/textures/moreblocks_super_glow_glass.png new file mode 100755 index 00000000..a9d4c5f2 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_super_glow_glass.png differ diff --git a/mods/moreblocks/textures/moreblocks_super_glow_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_super_glow_glass_stairsplus.png new file mode 100755 index 00000000..9118c781 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_super_glow_glass_stairsplus.png differ diff --git a/mods/moreblocks/textures/moreblocks_sweeper.png b/mods/moreblocks/textures/moreblocks_sweeper.png new file mode 100755 index 00000000..34f1cdec Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_sweeper.png differ diff --git a/mods/moreblocks/textures/moreblocks_tar.png b/mods/moreblocks/textures/moreblocks_tar.png new file mode 100755 index 00000000..e1eb427d Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_tar.png differ diff --git a/mods/moreblocks/textures/moreblocks_trap_glass.png b/mods/moreblocks/textures/moreblocks_trap_glass.png new file mode 100755 index 00000000..25c33878 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_trap_glass.png differ diff --git a/mods/moreblocks/textures/moreblocks_trap_glow_glass.png b/mods/moreblocks/textures/moreblocks_trap_glow_glass.png new file mode 100755 index 00000000..1096dd7e Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_trap_glow_glass.png differ diff --git a/mods/moreblocks/textures/moreblocks_trap_stone.png b/mods/moreblocks/textures/moreblocks_trap_stone.png new file mode 100755 index 00000000..764aa818 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_trap_stone.png differ diff --git a/mods/moreblocks/textures/moreblocks_trap_super_glow_glass.png b/mods/moreblocks/textures/moreblocks_trap_super_glow_glass.png new file mode 100755 index 00000000..fef974bc Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_trap_super_glow_glass.png differ diff --git a/mods/moreblocks/textures/moreblocks_tree_stairsplus.png b/mods/moreblocks/textures/moreblocks_tree_stairsplus.png new file mode 100755 index 00000000..60100c9b Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_tree_stairsplus.png differ diff --git a/mods/moreblocks/textures/moreblocks_wood_tile.png b/mods/moreblocks/textures/moreblocks_wood_tile.png new file mode 100755 index 00000000..d0faa3dc Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_wood_tile.png differ diff --git a/mods/moreblocks/textures/moreblocks_wood_tile_center.png b/mods/moreblocks/textures/moreblocks_wood_tile_center.png new file mode 100755 index 00000000..02b0f84e Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_wood_tile_center.png differ diff --git a/mods/moreblocks/textures/moreblocks_wood_tile_full.png b/mods/moreblocks/textures/moreblocks_wood_tile_full.png new file mode 100755 index 00000000..7ec7f056 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_wood_tile_full.png differ diff --git a/mods/moreblocks/textures/moreblocks_wood_tile_up.png b/mods/moreblocks/textures/moreblocks_wood_tile_up.png new file mode 100755 index 00000000..3f6a2f24 Binary files /dev/null and b/mods/moreblocks/textures/moreblocks_wood_tile_up.png differ diff --git a/mods/moreores/LICENSE.txt b/mods/moreores/LICENSE.txt new file mode 100755 index 00000000..2499ee93 --- /dev/null +++ b/mods/moreores/LICENSE.txt @@ -0,0 +1,17 @@ ++---- GNU GPL v3 ----+ + +More Ores -- a Minetest mod that adds ores. +Copyright (C) 2013 Calinou + +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 . diff --git a/mods/moreores/README.txt b/mods/moreores/README.txt new file mode 100755 index 00000000..4c155813 --- /dev/null +++ b/mods/moreores/README.txt @@ -0,0 +1,22 @@ +Calinou's Minetest Mods +===================== + +Calinou's Mods for Minetest [http://minetest.net], a free and opensource Minecraft-like game. + +This Git repository is mostly made for servers; it allows easy updating. + +To install, just clone this repository somewhere, then copy the "calinou_mods" folder in the "mods/minetest" folder of Minetest's installation folder. + + + +Misc stuff +===================== + +All these mods' source codes, except More Ores are under the zlib/libpng license. More Ores is under the GNU GPLv3; the mods' textures are under the CC BY-SA 3.0 Unported. + +Mods' forum threads: +More Blocks: http://minetest.net/forum/viewtopic.php?id=509 +More Ores: http://minetest.net/forum/viewtopic.php?id=549 +Map Tools: http://minetest.net/forum/viewtopic.php?id=1882 +Doors+: http://minetest.net/forum/viewtopic.php?id=2059 +Stairs+: http://minetest.net/forum/viewtopic.php?id=2092 diff --git a/mods/moreores/_config.txt b/mods/moreores/_config.txt new file mode 100755 index 00000000..68c66580 --- /dev/null +++ b/mods/moreores/_config.txt @@ -0,0 +1,35 @@ +------------------------------------------------------------------------------ +------------------------------ CONFIGURATION --------------------------------- +------------------------------------------------------------------------------ + +------------------------------------------------------------------------------ +-------- Change settings by changing the values after the "=". --------------- +------------------------------------------------------------------------------ + +-- Chunk sizes for ore generation (bigger = ore deposits are more scattered around) +moreores_copper_chunk_size = 8 +moreores_tin_chunk_size = 7 +moreores_silver_chunk_size = 11 +moreores_gold_chunk_size = 14 +moreores_mithril_chunk_size = 11 + +-- Amount of ore per chunk (higher = bigger ore deposits) +moreores_copper_ore_per_chunk = 8 +moreores_tin_ore_per_chunk = 3 +moreores_silver_ore_per_chunk = 4 +moreores_gold_ore_per_chunk = 4 +moreores_mithril_ore_per_chunk = 1 + +-- Minimal depths of ore generation (Y coordinate, 0 being sea level by default) +moreores_copper_min_depth = -31000 +moreores_tin_min_depth = -31000 +moreores_silver_min_depth = -31000 +moreores_gold_min_depth = -31000 +moreores_mithril_min_depth = -31000 + +-- Maximal depths of ore generation (Y coordinate, 0 being sea level by default) +moreores_copper_max_depth = 64 +moreores_tin_max_depth = 8 +moreores_silver_max_depth = -2 +moreores_gold_max_depth = -64 +moreores_mithril_max_depth = -512 diff --git a/mods/moreores/depends.txt b/mods/moreores/depends.txt new file mode 100755 index 00000000..02190529 --- /dev/null +++ b/mods/moreores/depends.txt @@ -0,0 +1,2 @@ +default +mg? diff --git a/mods/moreores/init.lua b/mods/moreores/init.lua new file mode 100755 index 00000000..e4b1f811 --- /dev/null +++ b/mods/moreores/init.lua @@ -0,0 +1,367 @@ +-- Load translation library if intllib is installed + +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) + else + S = function ( s ) return s end +end + +moreores_modpath = minetest.get_modpath("moreores") +dofile(moreores_modpath .. "/_config.txt") + +--[[ +**** +More Ores +by Calinou +with the help of Nore/Novatux +Licensed under the CC0 +**** +--]] + +-- Utility functions + +local default_stone_sounds = default.node_sound_stone_defaults() + +local function hoe_on_use(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 pos = {x = pt.under.x, y = pt.under.y + 1, z = pt.under.z} + local above = minetest.get_node(pos) + + -- 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 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}) + itemstack:add_wear(65535 / (uses - 1)) + return itemstack +end + +local function get_recipe(c, name) + if name == "sword" then + return {{c}, {c}, {"group:stick"}} + end + if name == "shovel" then + return {{c}, {"group:stick"}, {"group:stick"}} + end + if name == "axe" then + return {{c, c}, {c, "group:stick"}, {"", "group:stick"}} + end + if name == "pick" then + return {{c, c, c}, {"", "group:stick", ""}, {"", "group:stick", ""}} + end + if name == "hoe" then + return {{c, c}, {"", "group:stick"}, {"", "group:stick"}} + end + if name == "block" then + return {{c, c, c}, {c, c, c}, {c, c, c}} + end + if name == "lockedchest" then + return {{"group:wood", "group:wood", "group:wood"}, {"group:wood", c, "group:wood"}, {"group:wood", "group:wood", "group:wood"}} + end +end + +local function add_ore(modname, description, mineral_name, oredef) + local img_base = modname .. "_" .. mineral_name + local toolimg_base = modname .. "_tool_"..mineral_name + local tool_base = modname .. ":" + local tool_post = "_" .. mineral_name + local item_base = tool_base .. mineral_name + local ingot = item_base .. "_ingot" + local lumpitem = item_base .. "_lump" + local ingotcraft = ingot + + if oredef.makes.ore then + minetest.register_node(modname .. ":mineral_"..mineral_name, { + description = S("%s Ore"):format(S(description)), + tiles = {"default_stone.png^"..modname.."_mineral_"..mineral_name..".png"}, + groups = {cracky = 3}, + sounds = default_stone_sounds, + drop = lumpitem + }) + end + + if oredef.makes.block then + local blockitem = item_base .. "_block" + minetest.register_node(blockitem, { + description = S("%s Block"):format(S(description)), + tiles = { img_base .. "_block.png" }, + groups = {snappy = 1,bendy = 2, cracky = 1,melty = 2,level= 2}, + sounds = default_stone_sounds + }) + minetest.register_alias(mineral_name.."_block", blockitem) + if oredef.makes.ingot then + minetest.register_craft( { + output = blockitem, + recipe = get_recipe(ingot, "block") + }) + minetest.register_craft( { + output = ingot .. " 9", + recipe = { + { blockitem } + } + }) + end + end + + if oredef.makes.lump then + minetest.register_craftitem(lumpitem, { + description = S("%s Lump"):format(S(description)), + inventory_image = img_base .. "_lump.png", + }) + minetest.register_alias(mineral_name .. "_lump", lumpitem) + if oredef.makes.ingot then + minetest.register_craft({ + type = "cooking", + output = ingot, + recipe = lumpitem + }) + end + end + + if oredef.makes.ingot then + minetest.register_craftitem(ingot, { + description = S("%s Ingot"):format(S(description)), + inventory_image = img_base .. "_ingot.png", + }) + minetest.register_alias(mineral_name .. "_ingot", ingot) + end + + if oredef.makes.chest then + minetest.register_craft( { + output = "default:chest_locked", + recipe = { + {ingot}, + {"default:chest"} + } + }) + minetest.register_craft( { + output = "default:chest_locked", + recipe = get_recipe(ingot, "lockedchest") + }) + end + + oredef.oredef.ore_type = "scatter" + oredef.oredef.ore = modname .. ":mineral_" .. mineral_name + oredef.oredef.wherein = "default:stone" + + minetest.register_ore(oredef.oredef) + + for toolname, tooldef in pairs(oredef.tools) do + local tdef = { + description = "", + inventory_image = toolimg_base .. toolname .. ".png", + tool_capabilities = { + max_drop_level = 3, + groupcaps = tooldef + } + } + + if toolname == "sword" then + tdef.tool_capabilities.full_punch_interval = oredef.full_punch_interval + tdef.tool_capabilities.damage_groups = oredef.damage_groups + tdef.description = S("%s Sword"):format(S(description)) + end + + if toolname == "pick" then + tdef.tool_capabilities.full_punch_interval = oredef.full_punch_interval + tdef.tool_capabilities.damage_groups = oredef.damage_groups + tdef.description = S("%s Pickaxe"):format(S(description)) + end + + if toolname == "axe" then + tdef.tool_capabilities.full_punch_interval = oredef.full_punch_interval + tdef.tool_capabilities.damage_groups = oredef.damage_groups + tdef.description = S("%s Axe"):format(S(description)) + end + + if toolname == "shovel" then + tdef.full_punch_interval = oredef.full_punch_interval + tdef.tool_capabilities.damage_groups = oredef.damage_groups + tdef.description = S("%s Shovel"):format(S(description)) + end + + if toolname == "hoe" then + tdef.description = S("%s Hoe"):format(S(description)) + local uses = tooldef.uses + tooldef.uses = nil + tdef.on_use = function(itemstack, user, pointed_thing) + return hoe_on_use(itemstack, user, pointed_thing, uses) + end + end + + local fulltoolname = tool_base .. toolname .. tool_post + minetest.register_tool(fulltoolname, tdef) + minetest.register_alias(toolname .. tool_post, fulltoolname) + if oredef.makes.ingot then + minetest.register_craft({ + output = fulltoolname, + recipe = get_recipe(ingot, toolname) + }) + end + end +end + +-- Add everything: +local modname = "moreores" + +local oredefs = { + silver = { + desc = "Silver", + makes = {ore = true, block = true, lump = true, ingot = true, chest = true}, + oredef = {clust_scarcity = moreores_silver_chunk_size * moreores_silver_chunk_size * moreores_silver_chunk_size, + clust_num_ores = moreores_silver_ore_per_chunk, + clust_size = moreores_silver_chunk_size, + height_min = moreores_silver_min_depth, + height_max = moreores_silver_max_depth + }, + tools = { + pick = { + cracky = {times = {[1] = 2.60, [2] = 1.00, [3] = 0.60}, uses = 100, maxlevel= 1} + }, + hoe = { + uses = 300 + }, + shovel = { + crumbly = {times = {[1] = 1.10, [2] = 0.40, [3] = 0.25}, uses = 100, maxlevel= 1} + }, + axe = { + choppy = {times = {[1] = 2.50, [2] = 0.80, [3] = 0.50}, uses = 100, maxlevel= 1}, + fleshy = {times = {[2] = 1.10, [3] = 0.60}, uses = 100, maxlevel= 1} + }, + sword = { + 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 = 100, maxlevel= 0} + } + }, + full_punch_interval = 1.0, + damage_groups = {fleshy = 6}, + }, + tin = { + desc = "Tin", + makes = {ore = true, block = true, lump = true, ingot = true, chest = false}, + oredef = {clust_scarcity = moreores_tin_chunk_size * moreores_tin_chunk_size * moreores_tin_chunk_size, + clust_num_ores = moreores_tin_ore_per_chunk, + clust_size = moreores_tin_chunk_size, + height_min = moreores_tin_min_depth, + height_max = moreores_tin_max_depth + }, + tools = {} + }, + mithril = { + desc = "Mithril", + makes = {ore = true, block = true, lump = true, ingot = true, chest = false}, + oredef = {clust_scarcity = moreores_mithril_chunk_size * moreores_mithril_chunk_size * moreores_mithril_chunk_size, + clust_num_ores = moreores_mithril_ore_per_chunk, + clust_size = moreores_mithril_chunk_size, + height_min = moreores_mithril_min_depth, + height_max = moreores_mithril_max_depth + }, + tools = { + pick = { + cracky = {times = {[1] = 2.25, [2] = 0.55, [3] = 0.35}, uses = 200, maxlevel= 1} + }, + hoe = { + uses = 1000 + }, + shovel = { + crumbly = {times = {[1] = 0.70, [2] = 0.35, [3] = 0.20}, uses = 200, maxlevel= 1} + }, + axe = { + choppy = {times = {[1] = 1.75, [2] = 0.45, [3] = 0.45}, uses = 200, maxlevel= 1}, + fleshy = {times = {[2] = 0.95, [3] = 0.30}, uses = 200, maxlevel= 1} + }, + sword = { + 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} + } + }, + full_punch_interval = 0.45, + damage_groups = {fleshy = 9}, + } +} + +for orename,def in pairs(oredefs) do + add_ore(modname, def.desc, orename, def) +end + +--[[ désactivé car utilisé par le mod "cart_boost" +-- Copper rail (special node) + +minetest.register_craft({ + output = "moreores:copper_rail 16", + recipe = { + {"default:copper_ingot", "", "default:copper_ingot"}, + {"default:copper_ingot", "group:stick", "default:copper_ingot"}, + {"default:copper_ingot", "", "default:copper_ingot"} + } +}) +--]] + +-- Bronze has some special cases, because it is made from copper and tin: +minetest.register_craft( { + type = "shapeless", + output = "default:bronze_ingot 3", + recipe = { + "moreores:tin_ingot", + "default:copper_ingot", + "default:copper_ingot", + } +}) + +-- Unique node: +minetest.register_node("moreores:copper_rail", { + description = S("Copper Rail"), + drawtype = "raillike", + tiles = {"moreores_copper_rail.png", "moreores_copper_rail_curved.png", "moreores_copper_rail_t_junction.png", "moreores_copper_rail_crossing.png"}, + inventory_image = "moreores_copper_rail.png", + wield_image = "moreores_copper_rail.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, + }, + groups = {bendy = 2,snappy = 1,dig_immediate = 2,rail= 1, connect_to_raillike = 1}, + mesecons = { + effector = { + action_on = function(pos, node) + minetest.get_meta(pos):set_string("cart_acceleration", "0.5") + end, + + action_off = function(pos, node) + minetest.get_meta(pos):set_string("cart_acceleration", "0") + end, + }, + }, +}) + +-- mg support: +if minetest.get_modpath("mg") then + dofile(moreores_modpath.."/mg.lua") +end + +if minetest.setting_getbool("log_mods") then + print(S("[moreores] loaded.")) +end diff --git a/mods/moreores/locale/de.txt b/mods/moreores/locale/de.txt new file mode 100755 index 00000000..2eb60757 --- /dev/null +++ b/mods/moreores/locale/de.txt @@ -0,0 +1,22 @@ +# Translation by Xanthin + +[moreores] loaded. = [moreores] geladen. + +%s Ore = %serz +%s Lump = %sklumpen +%s Ingot = %sbarren +%s Block = %sblock +%s Pickaxe = %sspitzhacke +%s Shovel = %sschaufel +%s Axe = %saxt +%s Sword = %sschwert +%s Hoe = %shacke + +Copper = Kupfer +Tin = Zinn +Bronze = Bronze +Silver = Silber +Gold = Gold +Mithril = Mithril + +Copper Rail = Kupferschiene diff --git a/mods/moreores/locale/es.txt b/mods/moreores/locale/es.txt new file mode 100755 index 00000000..1344a5a6 --- /dev/null +++ b/mods/moreores/locale/es.txt @@ -0,0 +1,21 @@ +# Translation by kaeza + +[moreores] loaded. = [moreores] cargado. + +%s Ore = Mineral de %s +%s Lump = Pepita de %s +%s Ingot = Lingote de %s +%s Block = Bloque de %s +%s Pickaxe = Pico de %s +%s Shovel = Pala de %s +%s Axe = Hacha de %s +%s Sword = Espada de %s + +Copper = cobre +Tin = estaño +Bronze = bronce +Silver = plata +Gold = oro +Mithril = mitrilo + +Copper Rail = Riel de Cobre diff --git a/mods/moreores/locale/fr.txt b/mods/moreores/locale/fr.txt new file mode 100755 index 00000000..65687fa4 --- /dev/null +++ b/mods/moreores/locale/fr.txt @@ -0,0 +1,21 @@ +# Translation by Calinou + +[moreores] loaded. = [moreores] a été chargé. + +%s Ore = Minerai en %s +%s Lump = Roche en %s +%s Ingot = Lingot en %s +%s Block = Bloc en %s +%s Pickaxe = Pioche en %s +%s Shovel = Pelle en %s +%s Axe = Hache en %s +%s Sword = Épée en %s + +Copper = cuivre +Tin = étain +Bronze = bronze +Silver = argent +Gold = or +Mithril = mithril + +Copper Rail = Rail en cuivre diff --git a/mods/moreores/locale/it.txt b/mods/moreores/locale/it.txt new file mode 100755 index 00000000..dcd8c52a --- /dev/null +++ b/mods/moreores/locale/it.txt @@ -0,0 +1,21 @@ +# Translation by Pagliaccio + +[moreores] loaded. = [moreores] caricato. + +%s Ore = Minerale di %s +%s Lump = %s grezzo +%s Ingot = Lingotto di %s +%s Block = Blocco di %s +%s Pickaxe = Piccone di %s +%s Shovel = Badile di %s +%s Axe = Ascia di %s +%s Sword = Spada di %s + +Copper = Rame +Tin = Stagno +Bronze = Bronzo +Silver = Argento +Gold = Oro +Mithril = Mithril + +Copper Rail = Binario di rame \ No newline at end of file diff --git a/mods/moreores/mg.lua b/mods/moreores/mg.lua new file mode 100755 index 00000000..c950a4b1 --- /dev/null +++ b/mods/moreores/mg.lua @@ -0,0 +1,46 @@ +mg.register_ore({ + name = "moreores:mineral_tin", + wherein = "default:stone", + seeddiff = 8, + maxvdistance = 10.5, + maxheight = 8, + seglenghtn = 15, + seglenghtdev = 6, + segincln = 0, + segincldev = 0.6, + turnangle = 57, + forkturnangle = 57, + numperblock = 2 +}) + +mg.register_ore({ + name = "moreores:mineral_silver", + wherein = "default:stone", + seeddiff = 9, + maxvdistance = 10.5, + maxheight = -2, + seglenghtn = 15, + seglenghtdev = 6, + sizen = 60, + sizedev = 30, + segincln = 0, + segincldev = 0.6, + turnangle = 57, + forkturnangle = 57, + numperblock = 2 +}) + +mg.register_ore({ + name = "moreores:mineral_mithril", + wherein = "default:stone", + seeddiff = 10, + maxvdistance = 10.5, + maxheight = -512, + seglenghtn = 2, + seglenghtdev = 4, + sizen = 12, + sizedev = 5, + segincln = 0, + segincldev = 0.6, + turnangle = 57, +}) diff --git a/mods/moreores/old_init.lua b/mods/moreores/old_init.lua new file mode 100755 index 00000000..03be6bc4 --- /dev/null +++ b/mods/moreores/old_init.lua @@ -0,0 +1,745 @@ +--[[ +**** +More Ores +by Calinou +Old and "inefficient" version; use if the new version does not work for some reason. Outdated. +Licensed under the zlib/libpng license, see LICENSE.txt for info. +**** +--]] + +-- Blocks + +minetest.register_node( "moreores:mineral_gold", { + description = "Gold Ore", + tile_images = { "default_stone.png^moreores_mineral_gold.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = 'craft "moreores:gold_lump" 1', +}) + +minetest.register_node( "moreores:gold_block", { + description = "Gold Block", + tile_images = { "moreores_gold_block.png" }, + is_ground_content = true, + groups = {snappy=1,bendy=2,cracky=1,melty=2,level=2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node( "moreores:mineral_silver", { + description = "Silver Ore", + tile_images = { "default_stone.png^moreores_mineral_silver.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = 'craft "moreores:silver_lump" 1', +}) + +minetest.register_node( "moreores:silver_block", { + description = "Silver Block", + tile_images = { "moreores_silver_block.png" }, + is_ground_content = true, + groups = {snappy=1,bendy=2,cracky=1,melty=2,level=2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node( "moreores:mineral_copper", { + description = "Copper Ore", + tile_images = { "default_stone.png^moreores_mineral_copper.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = 'craft "moreores:copper_lump" 1', +}) + +minetest.register_node( "moreores:mineral_tin", { + description = "Tin Ore", + tile_images = { "default_stone.png^moreores_mineral_tin.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = 'craft "moreores:tin_lump" 1', +}) + +minetest.register_node( "moreores:bronze_block", { + description = "Bronze Block", + tile_images = { "moreores_bronze_block.png" }, + is_ground_content = true, + groups = {snappy=1,bendy=2,cracky=1,melty=2,level=2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node( "moreores:mineral_mithril", { + description = "Mithril Ore", + tile_images = { "default_stone.png^moreores_mineral_mithril.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = 'craft "moreores:mithril_lump" 1', +}) + +minetest.register_node( "moreores:mithril_block", { + description = "Mithril Block", + tile_images = { "moreores_mithril_block.png" }, + is_ground_content = true, + groups = {snappy=1,bendy=2,cracky=1,melty=2,level=2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("moreores:copper_rail", { + description = "Copper Rail", + drawtype = "raillike", + tile_images = {"moreores_copper_rail.png", "moreores_copper_rail_curved.png", "moreores_copper_rail_t_junction.png", "moreores_copper_rail_crossing.png"}, + inventory_image = "moreores_copper_rail.png", + wield_image = "moreores_copper_rail.png", + paramtype = "light", + is_ground_content = true, + walkable = false, + selection_box = { + type = "fixed", + --fixed = + }, + groups = {bendy=2,snappy=1,dig_immediate=2}, +}) + +-- Items + +minetest.register_craftitem( "moreores:gold_lump", { + description = "Gold Lump", + inventory_image = "moreores_gold_lump.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craftitem( "moreores:gold_ingot", { + description = "Gold Ingot", + inventory_image = "moreores_gold_ingot.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craftitem( "moreores:silver_lump", { + description = "Silver Lump", + inventory_image = "moreores_silver_lump.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craftitem( "moreores:silver_ingot", { + description = "Silver Ingot", + inventory_image = "moreores_silver_ingot.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craftitem( "moreores:copper_lump", { + description = "Copper Lump", + inventory_image = "moreores_copper_lump.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craftitem( "moreores:copper_ingot", { + description = "Copper Ingot", + inventory_image = "moreores_copper_ingot.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craftitem( "moreores:tin_lump", { + description = "Tin Lump", + inventory_image = "moreores_tin_lump.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craftitem( "moreores:tin_ingot", { + description = "Tin Ingot", + inventory_image = "moreores_tin_ingot.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craftitem( "moreores:bronze_ingot", { + description = "Bronze Ingot", + inventory_image = "moreores_bronze_ingot.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craftitem( "moreores:mithril_lump", { + description = "Mithril Lump", + inventory_image = "moreores_mithril_lump.png", + on_place_on_ground = minetest.craftitem_place_item, + on_use = minetest.item_eat(2), +}) + +minetest.register_craftitem( "moreores:mithril_ingot", { + description = "Mithril Ingot", + inventory_image = "moreores_mithril_ingot.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +-- Tools + +minetest.register_tool("moreores:pick_bronze", { + description = "Bronze Pickaxe", + inventory_image = "moreores_tool_bronzepick.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky={times={[1]=3.00, [2]=1.20, [3]=0.80}, uses=160, maxlevel=1} + } + }, +}) + +minetest.register_tool("moreores:shovel_bronze", { + description = "Bronze Shovel", + inventory_image = "moreores_tool_bronzeshovel.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + crumbly={times={[1]=1.50, [2]=0.50, [3]=0.30}, uses=160, maxlevel=1} + } + }, +}) + +minetest.register_tool("moreores:axe_bronze", { + description = "Bronze Axe", + inventory_image = "moreores_tool_bronzeaxe.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + choppy={times={[1]=3.00, [2]=1.00, [3]=0.60}, uses=160, maxlevel=1}, + fleshy={times={[2]=1.30, [3]=0.70}, uses=160, maxlevel=1} + } + }, +}) + +minetest.register_tool("moreores:sword_bronze", { + description = "Bronze Sword", + inventory_image = "moreores_tool_bronzesword.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=3, + groupcaps={ + fleshy={times={[2]=0.80, [3]=0.40}, uses=160, maxlevel=1}, + snappy={times={[2]=0.80, [3]=0.40}, uses=160, maxlevel=1}, + choppy={times={[3]=0.90}, uses=160, maxlevel=0} + } + } +}) + +minetest.register_tool("moreores:pick_silver", { + description = "Silver Pickaxe", + inventory_image = "moreores_tool_silverpick.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky={times={[1]=2.60, [2]=1.00, [3]=0.60}, uses=100, maxlevel=1} + } + }, +}) + +minetest.register_tool("moreores:shovel_silver", { + description = "Silver Shovel", + inventory_image = "moreores_tool_silvershovel.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + crumbly={times={[1]=1.10, [2]=0.40, [3]=0.25}, uses=100, maxlevel=1} + } + }, +}) + +minetest.register_tool("moreores:axe_silver", { + description = "Silver Axe", + inventory_image = "moreores_tool_silveraxe.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + choppy={times={[1]=2.50, [2]=0.80, [3]=0.50}, uses=100, maxlevel=1}, + fleshy={times={[2]=1.10, [3]=0.60}, uses=100, maxlevel=1} + } + }, +}) + +minetest.register_tool("moreores:sword_silver", { + description = "Silver Sword", + inventory_image = "moreores_tool_silversword.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=3, + 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=100, maxlevel=0} + } + } +}) + +minetest.register_tool("moreores:pick_gold", { + description = "Golden Pickaxe", + inventory_image = "moreores_tool_goldpick.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky={times={[1]=2.00, [2]=0.50, [3]=0.30}, uses=70, maxlevel=1} + } + }, +}) + +minetest.register_tool("moreores:shovel_gold", { + description = "Golden Shovel", + inventory_image = "moreores_tool_goldshovel.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + crumbly={times={[1]=0.60, [2]=0.25, [3]=0.15}, uses=70, maxlevel=1} + } + }, +}) + +minetest.register_tool("moreores:axe_gold", { + description = "Golden Axe", + inventory_image = "moreores_tool_goldaxe.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + choppy={times={[1]=1.70, [2]=0.40, [3]=0.35}, uses=70, maxlevel=1}, + fleshy={times={[2]=0.90, [3]=0.30}, uses=70, maxlevel=1} + } + }, +}) + +minetest.register_tool("moreores:sword_gold", { + description = "Golden Sword", + inventory_image = "moreores_tool_goldsword.png", + tool_capabilities = { + full_punch_interval = 0.85, + max_drop_level=3, + groupcaps={ + fleshy={times={[2]=0.60, [3]=0.20}, uses=70, maxlevel=1}, + snappy={times={[2]=0.60, [3]=0.20}, uses=70, maxlevel=1}, + choppy={times={[3]=0.65}, uses=70, maxlevel=0} + } + } +}) + +minetest.register_tool("moreores:pick_mithril", { + description = "Mithril Pickaxe", + inventory_image = "moreores_tool_mithrilpick.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky={times={[1]=2.25, [2]=0.55, [3]=0.35}, uses=200, maxlevel=1} + } + }, +}) + +minetest.register_tool("moreores:shovel_mithril", { + description = "Mithril Shovel", + inventory_image = "moreores_tool_mithrilshovel.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + crumbly={times={[1]=0.70, [2]=0.35, [3]=0.20}, uses=200, maxlevel=1} + } + }, +}) + +minetest.register_tool("moreores:axe_mithril", { + description = "Mithril Axe", + inventory_image = "moreores_tool_mithrilaxe.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + choppy={times={[1]=1.75, [2]=0.45, [3]=0.45}, uses=200, maxlevel=1}, + fleshy={times={[2]=0.95, [3]=0.30}, uses=200, maxlevel=1} + } + }, +}) + +minetest.register_tool("moreores:sword_mithril", { + description = "Mithril Sword", + inventory_image = "moreores_tool_mithrilsword.png", + tool_capabilities = { + full_punch_interval = 0.45, + max_drop_level=3, + 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} + } + } +}) + +-- Crafting + +minetest.register_craft({ + output = 'moreores:copper_rail 15', + recipe = { + {'moreores:copper_ingot', '', 'moreores:copper_ingot'}, + {'moreores:copper_ingot', 'default:stick', 'moreores:copper_ingot'}, + {'moreores:copper_ingot', '', 'moreores:copper_ingot'}, + } +}) + +minetest.register_craft( { + output = 'craft "moreores:pick_bronze" 1', + recipe = { + { 'craft "moreores:bronze_ingot"', 'craft "moreores:bronze_ingot"', 'craft "moreores:bronze_ingot"' }, + { '', 'craft "Stick"', '' }, + { '', 'craft "Stick"', '' }, + } +}) + +minetest.register_craft( { + output = 'craft "moreores:shovel_bronze" 1', + recipe = { + { '', 'craft "moreores:bronze_ingot"', '' }, + { '', 'craft "Stick"', '' }, + { '', 'craft "Stick"', '' }, + } +}) + +minetest.register_craft( { + output = 'craft "moreores:axe_bronze" 1', + recipe = { + { 'craft "moreores:bronze_ingot"', 'craft "moreores:bronze_ingot"', '' }, + { 'craft "moreores:bronze_ingot"', 'craft "Stick"', '' }, + { '', 'craft "Stick"', '' }, + } +}) + +minetest.register_craft( { + output = 'craft "moreores:sword_bronze" 1', + recipe = { + { '', 'craft "moreores:bronze_ingot"', '' }, + { '', 'craft "moreores:bronze_ingot"', '' }, + { '', 'craft "Stick"', '' }, + } +}) + +minetest.register_craft( { + output = 'craft "moreores:pick_silver" 1', + recipe = { + { 'craft "moreores:silver_ingot"', 'craft "moreores:silver_ingot"', 'craft "moreores:silver_ingot"' }, + { '', 'craft "Stick"', '' }, + { '', 'craft "Stick"', '' }, + } +}) + +minetest.register_craft( { + output = 'craft "moreores:shovel_silver" 1', + recipe = { + { '', 'craft "moreores:silver_ingot"', '' }, + { '', 'craft "Stick"', '' }, + { '', 'craft "Stick"', '' }, + } +}) + +minetest.register_craft( { + output = 'craft "moreores:axe_silver" 1', + recipe = { + { 'craft "moreores:silver_ingot"', 'craft "moreores:silver_ingot"', '' }, + { 'craft "moreores:silver_ingot"', 'craft "Stick"', '' }, + { '', 'craft "Stick"', '' }, + } +}) + +minetest.register_craft( { + output = 'craft "moreores:sword_silver" 1', + recipe = { + { '', 'craft "moreores:silver_ingot"', '' }, + { '', 'craft "moreores:silver_ingot"', '' }, + { '', 'craft "Stick"', '' }, + } +}) + +minetest.register_craft( { + output = 'craft "moreores:pick_gold" 1', + recipe = { + { 'craft "moreores:gold_ingot"', 'craft "moreores:gold_ingot"', 'craft "moreores:gold_ingot"' }, + { '', 'craft "Stick"', '' }, + { '', 'craft "Stick"', '' }, + } +}) + +minetest.register_craft( { + output = 'craft "moreores:shovel_gold" 1', + recipe = { + { '', 'craft "moreores:gold_ingot"', '' }, + { '', 'craft "Stick"', '' }, + { '', 'craft "Stick"', '' }, + } +}) + +minetest.register_craft( { + output = 'craft "moreores:axe_gold" 1', + recipe = { + { 'craft "moreores:gold_ingot"', 'craft "moreores:gold_ingot"', '' }, + { 'craft "moreores:gold_ingot"', 'craft "Stick"', '' }, + { '', 'craft "Stick"', '' }, + } +}) + +minetest.register_craft( { + output = 'craft "moreores:sword_gold" 1', + recipe = { + { '', 'craft "moreores:gold_ingot"', '' }, + { '', 'craft "moreores:gold_ingot"', '' }, + { '', 'craft "Stick"', '' }, + } +}) + +minetest.register_craft( { + output = 'craft "moreores:pick_mithril" 1', + recipe = { + { 'craft "moreores:mithril_ingot"', 'craft "moreores:mithril_ingot"', 'craft "moreores:mithril_ingot"' }, + { '', 'craft "Stick"', '' }, + { '', 'craft "Stick"', '' }, + } +}) + +minetest.register_craft( { + output = 'craft "moreores:shovel_mithril" 1', + recipe = { + { '', 'craft "moreores:mithril_ingot"', '' }, + { '', 'craft "Stick"', '' }, + { '', 'craft "Stick"', '' }, + } +}) + +minetest.register_craft( { + output = 'craft "moreores:axe_mithril" 1', + recipe = { + { 'craft "moreores:mithril_ingot"', 'craft "moreores:mithril_ingot"', '' }, + { 'craft "moreores:mithril_ingot"', 'craft "Stick"', '' }, + { '', 'craft "Stick"', '' }, + } +}) + +minetest.register_craft( { + output = 'craft "moreores:sword_mithril" 1', + recipe = { + { '', 'craft "moreores:mithril_ingot"', '' }, + { '', 'craft "moreores:mithril_ingot"', '' }, + { '', 'craft "Stick"', '' }, + } +}) + +minetest.register_craft( { + output = 'craft "moreores:bronze_ingot"', + recipe = { + { 'craft "moreores:tin_ingot"'}, + { 'craft "moreores:copper_ingot"'}, + } +}) + +minetest.register_craft( { + output = 'craft "moreores:bronze_ingot"', + recipe = { + { 'craft "moreores:copper_ingot"'}, + { 'craft "moreores:tin_ingot"'}, + } +}) + +minetest.register_craft( { + output = 'node "moreores:gold_block" 1', + recipe = { + { 'craft "moreores:gold_ingot"', 'craft "moreores:gold_ingot"', 'craft "moreores:gold_ingot"' }, + { 'craft "moreores:gold_ingot"', 'craft "moreores:gold_ingot"', 'craft "moreores:gold_ingot"' }, + { 'craft "moreores:gold_ingot"', 'craft "moreores:gold_ingot"', 'craft "moreores:gold_ingot"' }, + } +}) + +minetest.register_craft( { + output = 'craft "moreores:gold_ingot" 9', + recipe = { + { 'node "moreores:gold_block"' }, + } +}) + +minetest.register_craft( { + output = 'node "moreores:silver_block" 1', + recipe = { + { 'craft "moreores:silver_ingot"', 'craft "moreores:silver_ingot"', 'craft "moreores:silver_ingot"' }, + { 'craft "moreores:silver_ingot"', 'craft "moreores:silver_ingot"', 'craft "moreores:silver_ingot"' }, + { 'craft "moreores:silver_ingot"', 'craft "moreores:silver_ingot"', 'craft "moreores:silver_ingot"' }, + } +}) + +minetest.register_craft( { + output = 'craft "moreores:silver_ingot" 9', + recipe = { + { 'node "moreores:silver_block"' }, + } +}) + +minetest.register_craft( { + output = 'node "moreores:bronze_block" 1', + recipe = { + { 'craft "moreores:bronze_ingot"', 'craft "moreores:bronze_ingot"', 'craft "moreores:bronze_ingot"' }, + { 'craft "moreores:bronze_ingot"', 'craft "moreores:bronze_ingot"', 'craft "moreores:bronze_ingot"' }, + { 'craft "moreores:bronze_ingot"', 'craft "moreores:bronze_ingot"', 'craft "moreores:bronze_ingot"' }, + } +}) + +minetest.register_craft( { + output = 'craft "moreores:bronze_ingot" 9', + recipe = { + { 'node "moreores:bronze_block"' }, + } +}) + +minetest.register_craft( { + output = 'node "moreores:mithril_block" 1', + recipe = { + { 'craft "moreores:mithril_ingot"', 'craft "moreores:mithril_ingot"', 'craft "moreores:mithril_ingot"' }, + { 'craft "moreores:mithril_ingot"', 'craft "moreores:mithril_ingot"', 'craft "moreores:mithril_ingot"' }, + { 'craft "moreores:mithril_ingot"', 'craft "moreores:mithril_ingot"', 'craft "moreores:mithril_ingot"' }, + } +}) + +minetest.register_craft( { + output = 'craft "moreores:mithril_ingot" 9', + recipe = { + { 'node "moreores:mithril_block"' }, + } +}) + +-- Smelting + +minetest.register_craft({ + type = "cooking", + output = "moreores:gold_ingot", + recipe = "moreores:gold_lump", +}) + +minetest.register_craft({ + type = "cooking", + output = "moreores:silver_ingot", + recipe = "moreores:silver_lump", +}) + +minetest.register_craft({ + type = "cooking", + output = "moreores:tin_ingot", + recipe = "moreores:tin_lump", +}) + +minetest.register_craft({ + type = "cooking", + output = "moreores:copper_ingot", + recipe = "moreores:copper_lump", +}) + +minetest.register_craft({ + type = "cooking", + output = "moreores:mithril_ingot", + recipe = "moreores:mithril_lump", +}) + +minetest.register_craft( { + output = 'node "default:chest_locked" 1', + recipe = { + { 'craft "moreores:bronze_ingot"' }, + { 'node "default:chest"' }, + } +}) + +minetest.register_craft( { + output = 'node "default:chest_locked" 1', + recipe = { + { 'craft "moreores:silver_ingot"' }, + { 'node "default:chest"' }, + } +}) + +minetest.register_craft( { + output = 'node "default:chest_locked" 1', + recipe = { + { 'craft "moreores:gold_ingot"' }, + { 'node "default:chest"' }, + } +}) + +minetest.register_craft( { + output = 'node "default:chest_locked" 1', + recipe = { + { 'node "default:wood"', 'node "default:wood"', 'node "default:wood"' }, + { 'node "default:wood"', 'craft "moreores:bronze_ingot"', 'node "default:wood"' }, + { 'node "default:wood"', 'node "default:wood"', 'node "default:wood"' }, + } +}) + +minetest.register_craft( { + output = 'node "default:chest_locked" 1', + recipe = { + { 'node "default:wood"', 'node "default:wood"', 'node "default:wood"' }, + { 'node "default:wood"', 'craft "moreores:bronze_ingot"', 'node "default:wood"' }, + { 'node "default:wood"', 'node "default:wood"', 'node "default:wood"' }, + } +}) + +minetest.register_craft( { + output = 'node "default:chest_locked" 1', + recipe = { + { 'node "default:wood"', 'node "default:wood"', 'node "default:wood"' }, + { 'node "default:wood"', 'craft "moreores:silver_ingot"', 'node "default:wood"' }, + { 'node "default:wood"', 'node "default:wood"', 'node "default:wood"' }, + } +}) + +minetest.register_craft( { + output = 'node "default:chest_locked" 1', + recipe = { + { 'node "default:wood"', 'node "default:wood"', 'node "default:wood"' }, + { 'node "default:wood"', 'craft "moreores:gold_ingot"', 'node "default:wood"' }, + { 'node "default:wood"', 'node "default:wood"', 'node "default:wood"' }, + } +}) + +-- Ore generation + +local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, ore_per_chunk, height_min, height_max) + 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) + local num_chunks = math.floor(chunks_per_volume * volume) + local chunk_size = 3 + if ore_per_chunk <= 4 then + chunk_size = 2 + end + 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 + if (y_max-chunk_size+1 <= y_min) then return end + 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.env:get_node(p2).name == wherein then + minetest.env:set_node(p2, {name=name}) + end + end + end + end + end + end + end + --print("generate_ore done") +end + +minetest.register_on_generated(function(minp, maxp, seed) +generate_ore("moreores:mineral_copper", "default:stone", minp, maxp, seed+16, 1/11/11/11, 8, -31000, 64) +generate_ore("moreores:mineral_tin", "default:stone", minp, maxp, seed+17, 1/8/8/8, 2, -31000, 8) +generate_ore("moreores:mineral_silver", "default:stone", minp, maxp, seed+18, 1/10/10/10, 5, -31000, 2) +generate_ore("moreores:mineral_gold", "default:stone", minp, maxp, seed+19, 1/12/12/12, 5, -31000, -64) +generate_ore("moreores:mineral_mithril", "default:stone", minp, maxp, seed+20, 1/6/6/6, 1, -31000, -512) +end) \ No newline at end of file diff --git a/mods/moreores/textures/moreores_bronze_block.png b/mods/moreores/textures/moreores_bronze_block.png new file mode 100755 index 00000000..3f714dfc Binary files /dev/null and b/mods/moreores/textures/moreores_bronze_block.png differ diff --git a/mods/moreores/textures/moreores_bronze_ingot.png b/mods/moreores/textures/moreores_bronze_ingot.png new file mode 100755 index 00000000..99b3f02a Binary files /dev/null and b/mods/moreores/textures/moreores_bronze_ingot.png differ diff --git a/mods/moreores/textures/moreores_copper_block.png b/mods/moreores/textures/moreores_copper_block.png new file mode 100755 index 00000000..9a164af8 Binary files /dev/null and b/mods/moreores/textures/moreores_copper_block.png differ diff --git a/mods/moreores/textures/moreores_copper_ingot.png b/mods/moreores/textures/moreores_copper_ingot.png new file mode 100755 index 00000000..1a4e4e1d Binary files /dev/null and b/mods/moreores/textures/moreores_copper_ingot.png differ diff --git a/mods/moreores/textures/moreores_copper_lump.png b/mods/moreores/textures/moreores_copper_lump.png new file mode 100755 index 00000000..45702a9c Binary files /dev/null and b/mods/moreores/textures/moreores_copper_lump.png differ diff --git a/mods/moreores/textures/moreores_copper_rail.png b/mods/moreores/textures/moreores_copper_rail.png new file mode 100755 index 00000000..73963f62 Binary files /dev/null and b/mods/moreores/textures/moreores_copper_rail.png differ diff --git a/mods/moreores/textures/moreores_copper_rail_crossing.png b/mods/moreores/textures/moreores_copper_rail_crossing.png new file mode 100755 index 00000000..6ff11530 Binary files /dev/null and b/mods/moreores/textures/moreores_copper_rail_crossing.png differ diff --git a/mods/moreores/textures/moreores_copper_rail_curved.png b/mods/moreores/textures/moreores_copper_rail_curved.png new file mode 100755 index 00000000..6cfc8c2d Binary files /dev/null and b/mods/moreores/textures/moreores_copper_rail_curved.png differ diff --git a/mods/moreores/textures/moreores_copper_rail_t_junction.png b/mods/moreores/textures/moreores_copper_rail_t_junction.png new file mode 100755 index 00000000..57759193 Binary files /dev/null and b/mods/moreores/textures/moreores_copper_rail_t_junction.png differ diff --git a/mods/moreores/textures/moreores_gold_block.png b/mods/moreores/textures/moreores_gold_block.png new file mode 100755 index 00000000..2f54afd1 Binary files /dev/null and b/mods/moreores/textures/moreores_gold_block.png differ diff --git a/mods/moreores/textures/moreores_gold_ingot.png b/mods/moreores/textures/moreores_gold_ingot.png new file mode 100755 index 00000000..b8dbcf8a Binary files /dev/null and b/mods/moreores/textures/moreores_gold_ingot.png differ diff --git a/mods/moreores/textures/moreores_gold_lump.png b/mods/moreores/textures/moreores_gold_lump.png new file mode 100755 index 00000000..9f79149b Binary files /dev/null and b/mods/moreores/textures/moreores_gold_lump.png differ diff --git a/mods/moreores/textures/moreores_mineral_copper.png b/mods/moreores/textures/moreores_mineral_copper.png new file mode 100755 index 00000000..bc3d9c16 Binary files /dev/null and b/mods/moreores/textures/moreores_mineral_copper.png differ diff --git a/mods/moreores/textures/moreores_mineral_gold.png b/mods/moreores/textures/moreores_mineral_gold.png new file mode 100755 index 00000000..c8aede3d Binary files /dev/null and b/mods/moreores/textures/moreores_mineral_gold.png differ diff --git a/mods/moreores/textures/moreores_mineral_mithril.png b/mods/moreores/textures/moreores_mineral_mithril.png new file mode 100755 index 00000000..126daeae Binary files /dev/null and b/mods/moreores/textures/moreores_mineral_mithril.png differ diff --git a/mods/moreores/textures/moreores_mineral_silver.png b/mods/moreores/textures/moreores_mineral_silver.png new file mode 100755 index 00000000..6b57c62b Binary files /dev/null and b/mods/moreores/textures/moreores_mineral_silver.png differ diff --git a/mods/moreores/textures/moreores_mineral_tin.png b/mods/moreores/textures/moreores_mineral_tin.png new file mode 100755 index 00000000..fc718370 Binary files /dev/null and b/mods/moreores/textures/moreores_mineral_tin.png differ diff --git a/mods/moreores/textures/moreores_mithril_block.png b/mods/moreores/textures/moreores_mithril_block.png new file mode 100755 index 00000000..1b3398f6 Binary files /dev/null and b/mods/moreores/textures/moreores_mithril_block.png differ diff --git a/mods/moreores/textures/moreores_mithril_ingot.png b/mods/moreores/textures/moreores_mithril_ingot.png new file mode 100755 index 00000000..6f178d02 Binary files /dev/null and b/mods/moreores/textures/moreores_mithril_ingot.png differ diff --git a/mods/moreores/textures/moreores_mithril_lump.png b/mods/moreores/textures/moreores_mithril_lump.png new file mode 100755 index 00000000..3aa7255a Binary files /dev/null and b/mods/moreores/textures/moreores_mithril_lump.png differ diff --git a/mods/moreores/textures/moreores_silver_block.png b/mods/moreores/textures/moreores_silver_block.png new file mode 100755 index 00000000..556af1c3 Binary files /dev/null and b/mods/moreores/textures/moreores_silver_block.png differ diff --git a/mods/moreores/textures/moreores_silver_ingot.png b/mods/moreores/textures/moreores_silver_ingot.png new file mode 100755 index 00000000..1357a714 Binary files /dev/null and b/mods/moreores/textures/moreores_silver_ingot.png differ diff --git a/mods/moreores/textures/moreores_silver_lump.png b/mods/moreores/textures/moreores_silver_lump.png new file mode 100755 index 00000000..f71f5e32 Binary files /dev/null and b/mods/moreores/textures/moreores_silver_lump.png differ diff --git a/mods/moreores/textures/moreores_tin_block.png b/mods/moreores/textures/moreores_tin_block.png new file mode 100755 index 00000000..9dd053c1 Binary files /dev/null and b/mods/moreores/textures/moreores_tin_block.png differ diff --git a/mods/moreores/textures/moreores_tin_ingot.png b/mods/moreores/textures/moreores_tin_ingot.png new file mode 100755 index 00000000..4481928d Binary files /dev/null and b/mods/moreores/textures/moreores_tin_ingot.png differ diff --git a/mods/moreores/textures/moreores_tin_lump.png b/mods/moreores/textures/moreores_tin_lump.png new file mode 100755 index 00000000..5114985a Binary files /dev/null and b/mods/moreores/textures/moreores_tin_lump.png differ diff --git a/mods/moreores/textures/moreores_tool_bronzeaxe.png b/mods/moreores/textures/moreores_tool_bronzeaxe.png new file mode 100755 index 00000000..cea9f359 Binary files /dev/null and b/mods/moreores/textures/moreores_tool_bronzeaxe.png differ diff --git a/mods/moreores/textures/moreores_tool_bronzepick.png b/mods/moreores/textures/moreores_tool_bronzepick.png new file mode 100755 index 00000000..e9d3ca72 Binary files /dev/null and b/mods/moreores/textures/moreores_tool_bronzepick.png differ diff --git a/mods/moreores/textures/moreores_tool_bronzeshovel.png b/mods/moreores/textures/moreores_tool_bronzeshovel.png new file mode 100755 index 00000000..cdc73842 Binary files /dev/null and b/mods/moreores/textures/moreores_tool_bronzeshovel.png differ diff --git a/mods/moreores/textures/moreores_tool_bronzesword.png b/mods/moreores/textures/moreores_tool_bronzesword.png new file mode 100755 index 00000000..aa6adc3c Binary files /dev/null and b/mods/moreores/textures/moreores_tool_bronzesword.png differ diff --git a/mods/moreores/textures/moreores_tool_goldaxe.png b/mods/moreores/textures/moreores_tool_goldaxe.png new file mode 100755 index 00000000..0290f3f6 Binary files /dev/null and b/mods/moreores/textures/moreores_tool_goldaxe.png differ diff --git a/mods/moreores/textures/moreores_tool_goldpick.png b/mods/moreores/textures/moreores_tool_goldpick.png new file mode 100755 index 00000000..129e449a Binary files /dev/null and b/mods/moreores/textures/moreores_tool_goldpick.png differ diff --git a/mods/moreores/textures/moreores_tool_goldshovel.png b/mods/moreores/textures/moreores_tool_goldshovel.png new file mode 100755 index 00000000..1d07af88 Binary files /dev/null and b/mods/moreores/textures/moreores_tool_goldshovel.png differ diff --git a/mods/moreores/textures/moreores_tool_goldsword.png b/mods/moreores/textures/moreores_tool_goldsword.png new file mode 100755 index 00000000..e94ec054 Binary files /dev/null and b/mods/moreores/textures/moreores_tool_goldsword.png differ diff --git a/mods/moreores/textures/moreores_tool_mithrilaxe.png b/mods/moreores/textures/moreores_tool_mithrilaxe.png new file mode 100755 index 00000000..f243a290 Binary files /dev/null and b/mods/moreores/textures/moreores_tool_mithrilaxe.png differ diff --git a/mods/moreores/textures/moreores_tool_mithrilhoe.png b/mods/moreores/textures/moreores_tool_mithrilhoe.png new file mode 100755 index 00000000..9d226f7d Binary files /dev/null and b/mods/moreores/textures/moreores_tool_mithrilhoe.png differ diff --git a/mods/moreores/textures/moreores_tool_mithrilpick.png b/mods/moreores/textures/moreores_tool_mithrilpick.png new file mode 100755 index 00000000..ff1ed7c9 Binary files /dev/null and b/mods/moreores/textures/moreores_tool_mithrilpick.png differ diff --git a/mods/moreores/textures/moreores_tool_mithrilshovel.png b/mods/moreores/textures/moreores_tool_mithrilshovel.png new file mode 100755 index 00000000..18a7de09 Binary files /dev/null and b/mods/moreores/textures/moreores_tool_mithrilshovel.png differ diff --git a/mods/moreores/textures/moreores_tool_mithrilsword.png b/mods/moreores/textures/moreores_tool_mithrilsword.png new file mode 100755 index 00000000..09a030ca Binary files /dev/null and b/mods/moreores/textures/moreores_tool_mithrilsword.png differ diff --git a/mods/moreores/textures/moreores_tool_silveraxe.png b/mods/moreores/textures/moreores_tool_silveraxe.png new file mode 100755 index 00000000..d33edd59 Binary files /dev/null and b/mods/moreores/textures/moreores_tool_silveraxe.png differ diff --git a/mods/moreores/textures/moreores_tool_silverhoe.png b/mods/moreores/textures/moreores_tool_silverhoe.png new file mode 100755 index 00000000..066b9088 Binary files /dev/null and b/mods/moreores/textures/moreores_tool_silverhoe.png differ diff --git a/mods/moreores/textures/moreores_tool_silverpick.png b/mods/moreores/textures/moreores_tool_silverpick.png new file mode 100755 index 00000000..69de0970 Binary files /dev/null and b/mods/moreores/textures/moreores_tool_silverpick.png differ diff --git a/mods/moreores/textures/moreores_tool_silvershovel.png b/mods/moreores/textures/moreores_tool_silvershovel.png new file mode 100755 index 00000000..d55185b2 Binary files /dev/null and b/mods/moreores/textures/moreores_tool_silvershovel.png differ diff --git a/mods/moreores/textures/moreores_tool_silversword.png b/mods/moreores/textures/moreores_tool_silversword.png new file mode 100755 index 00000000..220ba2bc Binary files /dev/null and b/mods/moreores/textures/moreores_tool_silversword.png differ diff --git a/mods/moretrees/.gitignore b/mods/moretrees/.gitignore new file mode 100755 index 00000000..b25c15b8 --- /dev/null +++ b/mods/moretrees/.gitignore @@ -0,0 +1 @@ +*~ diff --git a/mods/moretrees/LICENSE b/mods/moretrees/LICENSE new file mode 100755 index 00000000..c4742e6b --- /dev/null +++ b/mods/moretrees/LICENSE @@ -0,0 +1,392 @@ +Minetest mod moretrees +====================== + +All source code: + © 2013, Vanessa Ezekowitz + Published under the terms and conditions of the WTFPL. +All sapling textures (textures/*_sapling.png): + © 2013, Tim Huppertz + Published under the terms and conditions of CC-BY-SA-3.0 Unported. +All other textures: + © 2013, Vanessa Ezekowitz + Published under the terms and conditions of CC-BY-SA-3.0 Unported. + +------------------------------------------------------------------------------- + + 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. + +This license is commonly known as "WTFPL". + +------------------------------------------------------------------------------- + +Creative Commons Legal Code + +Attribution-ShareAlike 3.0 Unported + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR + DAMAGES RESULTING FROM ITS USE. + +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE +COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY +COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS +AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE +TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY +BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS +CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND +CONDITIONS. + +1. Definitions + + a. "Adaptation" means a work based upon the Work, or upon the Work and + other pre-existing works, such as a translation, adaptation, + derivative work, arrangement of music or other alterations of a + literary or artistic work, or phonogram or performance and includes + cinematographic adaptations or any other form in which the Work may be + recast, transformed, or adapted including in any form recognizably + derived from the original, except that a work that constitutes a + Collection will not be considered an Adaptation for the purpose of + this License. For the avoidance of doubt, where the Work is a musical + work, performance or phonogram, the synchronization of the Work in + timed-relation with a moving image ("synching") will be considered an + Adaptation for the purpose of this License. + b. "Collection" means a collection of literary or artistic works, such as + encyclopedias and anthologies, or performances, phonograms or + broadcasts, or other works or subject matter other than works listed + in Section 1(f) below, which, by reason of the selection and + arrangement of their contents, constitute intellectual creations, in + which the Work is included in its entirety in unmodified form along + with one or more other contributions, each constituting separate and + independent works in themselves, which together are assembled into a + collective whole. A work that constitutes a Collection will not be + considered an Adaptation (as defined below) for the purposes of this + License. + c. "Creative Commons Compatible License" means a license that is listed + at http://creativecommons.org/compatiblelicenses that has been + approved by Creative Commons as being essentially equivalent to this + License, including, at a minimum, because that license: (i) contains + terms that have the same purpose, meaning and effect as the License + Elements of this License; and, (ii) explicitly permits the relicensing + of adaptations of works made available under that license under this + License or a Creative Commons jurisdiction license with the same + License Elements as this License. + d. "Distribute" means to make available to the public the original and + copies of the Work or Adaptation, as appropriate, through sale or + other transfer of ownership. + e. "License Elements" means the following high-level license attributes + as selected by Licensor and indicated in the title of this License: + Attribution, ShareAlike. + f. "Licensor" means the individual, individuals, entity or entities that + offer(s) the Work under the terms of this License. + g. "Original Author" means, in the case of a literary or artistic work, + the individual, individuals, entity or entities who created the Work + or if no individual or entity can be identified, the publisher; and in + addition (i) in the case of a performance the actors, singers, + musicians, dancers, and other persons who act, sing, deliver, declaim, + play in, interpret or otherwise perform literary or artistic works or + expressions of folklore; (ii) in the case of a phonogram the producer + being the person or legal entity who first fixes the sounds of a + performance or other sounds; and, (iii) in the case of broadcasts, the + organization that transmits the broadcast. + h. "Work" means the literary and/or artistic work offered under the terms + of this License including without limitation any production in the + literary, scientific and artistic domain, whatever may be the mode or + form of its expression including digital form, such as a book, + pamphlet and other writing; a lecture, address, sermon or other work + of the same nature; a dramatic or dramatico-musical work; a + choreographic work or entertainment in dumb show; a musical + composition with or without words; a cinematographic work to which are + assimilated works expressed by a process analogous to cinematography; + a work of drawing, painting, architecture, sculpture, engraving or + lithography; a photographic work to which are assimilated works + expressed by a process analogous to photography; a work of applied + art; an illustration, map, plan, sketch or three-dimensional work + relative to geography, topography, architecture or science; a + performance; a broadcast; a phonogram; a compilation of data to the + extent it is protected as a copyrightable work; or a work performed by + a variety or circus performer to the extent it is not otherwise + considered a literary or artistic work. + i. "You" means an individual or entity exercising rights under this + License who has not previously violated the terms of this License with + respect to the Work, or who has received express permission from the + Licensor to exercise rights under this License despite a previous + violation. + j. "Publicly Perform" means to perform public recitations of the Work and + to communicate to the public those public recitations, by any means or + process, including by wire or wireless means or public digital + performances; to make available to the public Works in such a way that + members of the public may access these Works from a place and at a + place individually chosen by them; to perform the Work to the public + by any means or process and the communication to the public of the + performances of the Work, including by public digital performance; to + broadcast and rebroadcast the Work by any means including signs, + sounds or images. + k. "Reproduce" means to make copies of the Work by any means including + without limitation by sound or visual recordings and the right of + fixation and reproducing fixations of the Work, including storage of a + protected performance or phonogram in digital form or other electronic + medium. + +2. Fair Dealing Rights. Nothing in this License is intended to reduce, +limit, or restrict any uses free from copyright or rights arising from +limitations or exceptions that are provided for in connection with the +copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, +Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +perpetual (for the duration of the applicable copyright) license to +exercise the rights in the Work as stated below: + + a. to Reproduce the Work, to incorporate the Work into one or more + Collections, and to Reproduce the Work as incorporated in the + Collections; + b. to create and Reproduce Adaptations provided that any such Adaptation, + including any translation in any medium, takes reasonable steps to + clearly label, demarcate or otherwise identify that changes were made + to the original Work. For example, a translation could be marked "The + original work was translated from English to Spanish," or a + modification could indicate "The original work has been modified."; + c. to Distribute and Publicly Perform the Work including as incorporated + in Collections; and, + d. to Distribute and Publicly Perform Adaptations. + e. For the avoidance of doubt: + + i. Non-waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme cannot be waived, the Licensor + reserves the exclusive right to collect such royalties for any + exercise by You of the rights granted under this License; + ii. Waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme can be waived, the Licensor waives the + exclusive right to collect such royalties for any exercise by You + of the rights granted under this License; and, + iii. Voluntary License Schemes. The Licensor waives the right to + collect royalties, whether individually or, in the event that the + Licensor is a member of a collecting society that administers + voluntary licensing schemes, via that society, from any exercise + by You of the rights granted under this License. + +The above rights may be exercised in all media and formats whether now +known or hereafter devised. The above rights include the right to make +such modifications as are technically necessary to exercise the rights in +other media and formats. Subject to Section 8(f), all rights not expressly +granted by Licensor are hereby reserved. + +4. Restrictions. The license granted in Section 3 above is expressly made +subject to and limited by the following restrictions: + + a. You may Distribute or Publicly Perform the Work only under the terms + of this License. You must include a copy of, or the Uniform Resource + Identifier (URI) for, this License with every copy of the Work You + Distribute or Publicly Perform. You may not offer or impose any terms + on the Work that restrict the terms of this License or the ability of + the recipient of the Work to exercise the rights granted to that + recipient under the terms of the License. You may not sublicense the + Work. You must keep intact all notices that refer to this License and + to the disclaimer of warranties with every copy of the Work You + Distribute or Publicly Perform. When You Distribute or Publicly + Perform the Work, You may not impose any effective technological + measures on the Work that restrict the ability of a recipient of the + Work from You to exercise the rights granted to that recipient under + the terms of the License. This Section 4(a) applies to the Work as + incorporated in a Collection, but this does not require the Collection + apart from the Work itself to be made subject to the terms of this + License. If You create a Collection, upon notice from any Licensor You + must, to the extent practicable, remove from the Collection any credit + as required by Section 4(c), as requested. If You create an + Adaptation, upon notice from any Licensor You must, to the extent + practicable, remove from the Adaptation any credit as required by + Section 4(c), as requested. + b. You may Distribute or Publicly Perform an Adaptation only under the + terms of: (i) this License; (ii) a later version of this License with + the same License Elements as this License; (iii) a Creative Commons + jurisdiction license (either this or a later license version) that + contains the same License Elements as this License (e.g., + Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible + License. If you license the Adaptation under one of the licenses + mentioned in (iv), you must comply with the terms of that license. If + you license the Adaptation under the terms of any of the licenses + mentioned in (i), (ii) or (iii) (the "Applicable License"), you must + comply with the terms of the Applicable License generally and the + following provisions: (I) You must include a copy of, or the URI for, + the Applicable License with every copy of each Adaptation You + Distribute or Publicly Perform; (II) You may not offer or impose any + terms on the Adaptation that restrict the terms of the Applicable + License or the ability of the recipient of the Adaptation to exercise + the rights granted to that recipient under the terms of the Applicable + License; (III) You must keep intact all notices that refer to the + Applicable License and to the disclaimer of warranties with every copy + of the Work as included in the Adaptation You Distribute or Publicly + Perform; (IV) when You Distribute or Publicly Perform the Adaptation, + You may not impose any effective technological measures on the + Adaptation that restrict the ability of a recipient of the Adaptation + from You to exercise the rights granted to that recipient under the + terms of the Applicable License. This Section 4(b) applies to the + Adaptation as incorporated in a Collection, but this does not require + the Collection apart from the Adaptation itself to be made subject to + the terms of the Applicable License. + c. If You Distribute, or Publicly Perform the Work or any Adaptations or + Collections, You must, unless a request has been made pursuant to + Section 4(a), keep intact all copyright notices for the Work and + provide, reasonable to the medium or means You are utilizing: (i) the + name of the Original Author (or pseudonym, if applicable) if supplied, + and/or if the Original Author and/or Licensor designate another party + or parties (e.g., a sponsor institute, publishing entity, journal) for + attribution ("Attribution Parties") in Licensor's copyright notice, + terms of service or by other reasonable means, the name of such party + or parties; (ii) the title of the Work if supplied; (iii) to the + extent reasonably practicable, the URI, if any, that Licensor + specifies to be associated with the Work, unless such URI does not + refer to the copyright notice or licensing information for the Work; + and (iv) , consistent with Ssection 3(b), in the case of an + Adaptation, a credit identifying the use of the Work in the Adaptation + (e.g., "French translation of the Work by Original Author," or + "Screenplay based on original Work by Original Author"). The credit + required by this Section 4(c) may be implemented in any reasonable + manner; provided, however, that in the case of a Adaptation or + Collection, at a minimum such credit will appear, if a credit for all + contributing authors of the Adaptation or Collection appears, then as + part of these credits and in a manner at least as prominent as the + credits for the other contributing authors. For the avoidance of + doubt, You may only use the credit required by this Section for the + purpose of attribution in the manner set out above and, by exercising + Your rights under this License, You may not implicitly or explicitly + assert or imply any connection with, sponsorship or endorsement by the + Original Author, Licensor and/or Attribution Parties, as appropriate, + of You or Your use of the Work, without the separate, express prior + written permission of the Original Author, Licensor and/or Attribution + Parties. + d. Except as otherwise agreed in writing by the Licensor or as may be + otherwise permitted by applicable law, if You Reproduce, Distribute or + Publicly Perform the Work either by itself or as part of any + Adaptations or Collections, You must not distort, mutilate, modify or + take other derogatory action in relation to the Work which would be + prejudicial to the Original Author's honor or reputation. Licensor + agrees that in those jurisdictions (e.g. Japan), in which any exercise + of the right granted in Section 3(b) of this License (the right to + make Adaptations) would be deemed to be a distortion, mutilation, + modification or other derogatory action prejudicial to the Original + Author's honor and reputation, the Licensor will waive or not assert, + as appropriate, this Section, to the fullest extent permitted by the + applicable national law, to enable You to reasonably exercise Your + right under Section 3(b) of this License (right to make Adaptations) + but not otherwise. + +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR +OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY +KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, +INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, +FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF +LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, +WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION +OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE +LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR +ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES +ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS +BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + + a. This License and the rights granted hereunder will terminate + automatically upon any breach by You of the terms of this License. + Individuals or entities who have received Adaptations or Collections + from You under this License, however, will not have their licenses + terminated provided such individuals or entities remain in full + compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will + survive any termination of this License. + b. Subject to the above terms and conditions, the license granted here is + perpetual (for the duration of the applicable copyright in the Work). + Notwithstanding the above, Licensor reserves the right to release the + Work under different license terms or to stop distributing the Work at + any time; provided, however that any such election will not serve to + withdraw this License (or any other license that has been, or is + required to be, granted under the terms of this License), and this + License will continue in full force and effect unless terminated as + stated above. + +8. Miscellaneous + + a. Each time You Distribute or Publicly Perform the Work or a Collection, + the Licensor offers to the recipient a license to the Work on the same + terms and conditions as the license granted to You under this License. + b. Each time You Distribute or Publicly Perform an Adaptation, Licensor + offers to the recipient a license to the original Work on the same + terms and conditions as the license granted to You under this License. + c. If any provision of this License is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability of + the remainder of the terms of this License, and without further action + by the parties to this agreement, such provision shall be reformed to + the minimum extent necessary to make such provision valid and + enforceable. + d. No term or provision of this License shall be deemed waived and no + breach consented to unless such waiver or consent shall be in writing + and signed by the party to be charged with such waiver or consent. + e. This License constitutes the entire agreement between the parties with + respect to the Work licensed here. There are no understandings, + agreements or representations with respect to the Work not specified + here. Licensor shall not be bound by any additional provisions that + may appear in any communication from You. This License may not be + modified without the mutual written agreement of the Licensor and You. + f. The rights granted under, and the subject matter referenced, in this + License were drafted utilizing the terminology of the Berne Convention + for the Protection of Literary and Artistic Works (as amended on + September 28, 1979), the Rome Convention of 1961, the WIPO Copyright + Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 + and the Universal Copyright Convention (as revised on July 24, 1971). + These rights and subject matter take effect in the relevant + jurisdiction in which the License terms are sought to be enforced + according to the corresponding provisions of the implementation of + those treaty provisions in the applicable national law. If the + standard suite of rights granted under applicable copyright law + includes additional rights not granted under this License, such + additional rights are deemed to be included in the License; this + License is not intended to restrict the license of any rights under + applicable law. + + +Creative Commons Notice + + Creative Commons is not a party to this License, and makes no warranty + whatsoever in connection with the Work. Creative Commons will not be + liable to You or any party on any legal theory for any damages + whatsoever, including without limitation any general, special, + incidental or consequential damages arising in connection to this + license. Notwithstanding the foregoing two (2) sentences, if Creative + Commons has expressly identified itself as the Licensor hereunder, it + shall have all rights and obligations of Licensor. + + Except for the limited purpose of indicating to the public that the + Work is licensed under the CCPL, Creative Commons does not authorize + the use by either party of the trademark "Creative Commons" or any + related trademark or logo of Creative Commons without the prior + written consent of Creative Commons. Any permitted use will be in + compliance with Creative Commons' then-current trademark usage + guidelines, as may be published on its website or otherwise made + available upon request from time to time. For the avoidance of doubt, + this trademark restriction does not form part of the License. + + Creative Commons may be contacted at http://creativecommons.org/. diff --git a/mods/moretrees/README.md b/mods/moretrees/README.md new file mode 100755 index 00000000..8e5758bc --- /dev/null +++ b/mods/moretrees/README.md @@ -0,0 +1,11 @@ +More trees! + +This mod adds a whole bunch of new types of trees to the game + +Much of the code here came from cisoun's conifers mod and bas080's +jungle trees mod, and big contributions by RealBadAngel. + +Brought together into one mod and made L-systems compatible by Vanessa +Ezekowitz. + +Dependencies: plants_lib and default diff --git a/mods/moretrees/biome_defs.lua b/mods/moretrees/biome_defs.lua new file mode 100755 index 00000000..8c50de79 --- /dev/null +++ b/mods/moretrees/biome_defs.lua @@ -0,0 +1,183 @@ + +moretrees.beech_biome = { + surface = "default:dirt_with_grass", + avoid_nodes = moretrees.avoidnodes, + avoid_radius = 8, + seed_diff = 2, + rarity = 50, + max_count = 20, +} + +moretrees.palm_biome = { + surface = "default:sand", + avoid_nodes = moretrees.avoidnodes, + avoid_radius = 5, + seed_diff = 330, + min_elevation = -1, + max_elevation = 1, + near_nodes = {"default:water_source"}, + near_nodes_size = 15, + near_nodes_count = 10, + temp_min = 0.25, + temp_max = -0.15, + rarity = 50, + max_count = 10, +} + +moretrees.apple_tree_biome = { + surface = "default:dirt_with_grass", + avoid_nodes = moretrees.avoidnodes, + avoid_radius = 10, + seed_diff = 331, + min_elevation = 1, + max_elevation = 10, + temp_min = 0.1, + temp_max = -0.15, + rarity = 75, + max_count = 5, +} + +moretrees.oak_biome = { + surface = "default:dirt_with_grass", + avoid_nodes = moretrees.avoidnodes, + avoid_radius = 15, + seed_diff = 332, + min_elevation = 0, + max_elevation = 10, + temp_min = 0.4, + temp_max = 0.2, + rarity = 50, + max_count = 5, +} + +moretrees.sequoia_biome = { + surface = "default:dirt_with_grass", + avoid_nodes = moretrees.avoidnodes, + avoid_radius = 10, + seed_diff = 333, + min_elevation = 0, + max_elevation = 10, + temp_min = 1, + temp_max = -0.4, + rarity = 90, + max_count = 5, +} + +moretrees.birch_biome = { + surface = "default:dirt_with_grass", + avoid_nodes = moretrees.avoidnodes, + avoid_radius = 5, + seed_diff = 334, + min_elevation = 10, + max_elevation = 15, + temp_min = 0.9, + temp_max = 0.3, + rarity = 50, + max_count = 10, +} + +moretrees.willow_biome = { + surface = "default:dirt_with_grass", + avoid_nodes = moretrees.avoidnodes, + avoid_radius = 10, + seed_diff = 337, + min_elevation = -5, + max_elevation = 5, + near_nodes = {"default:water_source"}, + near_nodes_size = 15, + near_nodes_count = 5, + rarity = 75, + max_count = 5, +} + +moretrees.acacia_biome = { + surface = { "default:dirt_with_grass", "default:desert_sand" }, + avoid_nodes = moretrees.avoidnodes, + avoid_radius = 15, + seed_diff = 1, + rarity = 50, + max_count = 15, + plantlife_limit = -1, + humidity_min = 0.3, + humidity_max = 0, +} + +moretrees.rubber_tree_biome = { + surface = "default:dirt_with_grass", + avoid_nodes = moretrees.avoidnodes, + avoid_radius = 10, + seed_diff = 338, + min_elevation = -5, + max_elevation = 5, + near_nodes = {"default:water_source"}, + near_nodes_size = 15, + near_nodes_count = 10, + temp_min = -0.15, + rarity = 75, + max_count = 10, +} + +moretrees.jungletree_biome = { + surface = "default:dirt_with_grass", + avoid_nodes = moretrees.avoidnodes, + avoid_radius = 5, + seed_diff = 329, + min_elevation = -5, + max_elevation = 10, + temp_min = 0.25, + near_nodes = {"default:water_source"}, + near_nodes_size = 20, + near_nodes_count = 7, + rarity = 10, + max_count = 10, +} + +moretrees.spruce_biome = { + surface = "default:dirt_with_grass", + avoid_nodes = moretrees.avoidnodes, + avoid_radius = 10, + seed_diff = 335, + min_elevation = 20, + temp_min = 0.9, + temp_max = 0.7, + rarity = 50, + max_count = 5, +} + +moretrees.pine_biome = { + surface = "default:dirt_with_grass", + avoid_nodes = moretrees.avoidnodes, + avoid_radius = 10, + seed_diff = 336, + near_nodes = {"default:water_source"}, + near_nodes_size = 15, + near_nodes_count = 5, + rarity = 50, + max_count = 10, +} + +moretrees.fir_biome = { + surface = "default:dirt_with_grass", + avoid_nodes = moretrees.avoidnodes, + avoid_radius = 10, + seed_diff = 359, + min_elevation = 25, + temp_min = 0.9, + temp_max = 0.3, + rarity = 50, + max_count = 10, +} + +moretrees.fir_biome_snow = { + surface = {"snow:dirt_with_snow", "snow:snow"}, + below_nodes = {"default:dirt", "default:dirt_with_grass", "snow:dirt_with_snow"}, + avoid_nodes = moretrees.avoidnodes, + avoid_radius = 10, + seed_diff = 359, + rarity = 50, + max_count = 10, + check_air = false, + delete_above = true, + spawn_replace_node = true +} + diff --git a/mods/moretrees/crafts.lua b/mods/moretrees/crafts.lua new file mode 100755 index 00000000..746f2a13 --- /dev/null +++ b/mods/moretrees/crafts.lua @@ -0,0 +1,158 @@ +-- Boilerplate to support localized strings if intllib mod is installed. +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) +else + S = function ( s ) return s end +end + +for i in ipairs(moretrees.treelist) do + local treename = moretrees.treelist[i][1] + + minetest.register_craft({ + output = "moretrees:"..treename.."_trunk 2", + recipe = { + {"moretrees:"..treename.."_trunk_sideways"}, + {"moretrees:"..treename.."_trunk_sideways"} + } + }) + + minetest.register_craft({ + type = "shapeless", + output = "moretrees:"..treename.."_planks 4", + recipe = { + "moretrees:"..treename.."_trunk" + } + }) + + minetest.register_craft({ + type = "shapeless", + output = "moretrees:"..treename.."_planks 4", + recipe = { + "moretrees:"..treename.."_trunk_sideways" + } + }) + + minetest.register_craft({ + type = "fuel", + recipe = "moretrees:"..treename.."_sapling", + burntime = 10, + }) +end + +minetest.register_craft({ + type = "shapeless", + output = "moretrees:rubber_tree_planks 4", + recipe = { + "moretrees:rubber_tree_trunk_empty" + } +}) + +minetest.register_craft({ + type = "fuel", + recipe = "group:moretrees_leaves", + burntime = 1, +}) + +-- Food recipes! + +minetest.register_craftitem("moretrees:coconut_milk", { + description = S("Coconut Milk"), + inventory_image = "moretrees_coconut_milk_inv.png", + wield_image = "moretrees_coconut_milk.png", + on_use = minetest.item_eat(2), +}) + +minetest.register_craftitem("moretrees:raw_coconut", { + description = S("Raw Coconut"), + inventory_image = "moretrees_raw_coconut.png", + on_use = minetest.item_eat(4), +}) + +minetest.register_craftitem("moretrees:acorn_muffin_batter", { + description = S("Acorn Muffin batter"), + inventory_image = "moretrees_acorn_muffin_batter.png", +}) + +minetest.register_craftitem("moretrees:acorn_muffin", { + description = S("Acorn Muffin"), + inventory_image = "moretrees_acorn_muffin.png", + on_use = minetest.item_eat(4), +}) + +minetest.register_craftitem("moretrees:spruce_nuts", { + description = S("Roasted Spruce Cone Nuts"), + inventory_image = "moretrees_spruce_nuts.png", + on_use = minetest.item_eat(1), +}) + +minetest.register_craftitem("moretrees:pine_nuts", { + description = S("Roasted Pine Cone Nuts"), + inventory_image = "moretrees_pine_nuts.png", + on_use = minetest.item_eat(1), +}) + +minetest.register_craftitem("moretrees:fir_nuts", { + description = S("Roasted Fir Cone Nuts"), + inventory_image = "moretrees_fir_nuts.png", + on_use = minetest.item_eat(1), +}) + +for i in ipairs(moretrees.cutting_tools) do + local tool = moretrees.cutting_tools[i] + minetest.register_craft({ + type = "shapeless", + output = "moretrees:coconut_milk", + recipe = { + "moretrees:coconut", + "vessels:drinking_glass", + tool + }, + replacements = { + { "moretrees:coconut", "moretrees:raw_coconut" }, + { tool, tool } + } + }) +end + +minetest.register_craft({ + type = "shapeless", + output = "moretrees:acorn_muffin_batter", + recipe = { + "moretrees:acorn", + "moretrees:acorn", + "moretrees:acorn", + "moretrees:acorn", + "moretrees:coconut_milk", + }, + replacements = { + { "moretrees:coconut_milk", "vessels:drinking_glass" } + } +}) + +minetest.register_craft({ + type = "cooking", + output = "moretrees:acorn_muffin 4", + recipe = "moretrees:acorn_muffin_batter", +}) + +minetest.register_craft({ + type = "cooking", + output = "moretrees:spruce_nuts 4", + recipe = "moretrees:spruce_cone", +}) + +minetest.register_craft({ + type = "cooking", + output = "moretrees:pine_nuts 4", + recipe = "moretrees:pine_cone", +}) + +minetest.register_craft({ + type = "cooking", + output = "moretrees:fir_nuts 4", + recipe = "moretrees:fir_cone", +}) + + diff --git a/mods/moretrees/default_settings.txt b/mods/moretrees/default_settings.txt new file mode 100755 index 00000000..5c693245 --- /dev/null +++ b/mods/moretrees/default_settings.txt @@ -0,0 +1,87 @@ +-- Global configuration variables + +-- Enable the various kinds of trees. + +moretrees.enable_apple_tree = true +moretrees.enable_oak = true +moretrees.enable_sequoia = true +moretrees.enable_palm = true +moretrees.enable_pine = true +moretrees.enable_rubber_tree = true +moretrees.enable_willow = true +moretrees.enable_acacia = true +moretrees.enable_birch = true +moretrees.enable_spruce = true +moretrees.enable_jungle_tree = true +moretrees.enable_fir = true +moretrees.enable_beech = false + +-- set this to true to make moretrees spawn saplings at mapgen time instead +-- of fully-grown trees, which will grow into full trees very quickly. With +-- older versions of plants_lib, doing this will reduce mapgen lag. + +moretrees.spawn_saplings = false + +-- Set this to true to allow usage of the stairsplus mod in moreblocks + +moretrees.enable_stairsplus = true + +-- Set this to true if you want the plantlike drawtype for leaves, which +-- improves some peoples' framerates without resorting to making leaf nodes opaque. +-- Affects default leaves and default jungle leaves also. + +moretrees.plantlike_leaves = false + +-- Set this to true to enable leaf decay of all trees except the default ones. + +moretrees.enable_leafdecay = true + +-- Enable this one if you want this mod's leafdecay code to affect the old +-- default trees too; this setting is independent of the one above. You'll +-- want to manually disable the default leafdecay code in minetest_game if +-- you enable this, otherwise you'll have two sets of leaf decay code running +-- at the same time, which will just waste CPU for no benefit. + +moretrees.enable_default_leafdecay = true + +-- Enable this one for default *jungle* leaves + +moretrees.enable_default_jungle_leafdecay = true + +-- Enable this if you want moretrees to redefine default apples so that they +-- fall when leaves decay/are dug. + +moretrees.enable_redefine_apple = true + +-- various settings to configure default and default-jungle leaf decay. + +moretrees.leafdecay_delay = 2 +moretrees.leafdecay_chance = 100 +moretrees.leafdecay_radius = 5 + +moretrees.default_jungle_leafdecay_delay = 2 +moretrees.default_jungle_leafdecay_chance = 100 +moretrees.default_jungle_leafdecay_radius = 5 + +moretrees.palm_leafdecay_radius = 15 + +moretrees.default_leafdecay_delay = 3 +moretrees.default_leafdecay_chance = 50 +moretrees.default_leafdecay_radius = 4 + +-- Change these settings if you want default trees to be gradually cut down +-- above the elevation where firs normally generate. + +moretrees.firs_remove_default_trees = false +moretrees.firs_remove_interval = 2 +moretrees.firs_remove_chance = 150 + +-- Sapling settings + +moretrees.sapling_interval = 500 +moretrees.sapling_chance = 20 + +-- If this variable is set to true, drop leaves out as entities during leaf +-- decay, rather than just disappearing them. + +moretrees.decay_leaves_as_items = false diff --git a/mods/moretrees/depends.txt b/mods/moretrees/depends.txt new file mode 100755 index 00000000..cacd7e66 --- /dev/null +++ b/mods/moretrees/depends.txt @@ -0,0 +1,4 @@ +default +plants_lib +moreblocks? + diff --git a/mods/moretrees/init.lua b/mods/moretrees/init.lua new file mode 100755 index 00000000..786b9e9b --- /dev/null +++ b/mods/moretrees/init.lua @@ -0,0 +1,304 @@ +-- More trees! 2013-04-07 +-- +-- This mod adds more types of trees to the game +-- +-- Some of the node definitions and textures came from cisoun's conifers mod +-- and bas080's jungle trees mod. +-- +-- Brought together into one mod and made L-systems compatible by Vanessa +-- Ezekowitz. +-- +-- Firs and Jungle tree axioms/rules by Vanessa Ezekowitz, with the +-- latter having been tweaked by RealBadAngel, most other axioms/rules written +-- by RealBadAngel. +-- +-- License: WTFPL for all parts (code and textures, including those copied +-- from the jungletree and conifers mods) except the default jungle tree trunk +-- texture, which is CC-By-SA. + +moretrees = {} + +-- Read the default config file (and if necessary, copy it to the world folder). + +local worldpath=minetest.get_worldpath() +local modpath=minetest.get_modpath("moretrees") + +dofile(modpath.."/default_settings.txt") + +if io.open(worldpath.."/moretrees_settings.txt","r") == nil then + + io.input(modpath.."/default_settings.txt") + io.output(worldpath.."/moretrees_settings.txt") + + local size = 2^13 -- good buffer size (8K) + while true do + local block = io.read(size) + if not block then + io.close() + break + end + io.write(block) + end +else + dofile(worldpath.."/moretrees_settings.txt") +end + +-- Boilerplate to support localized strings if intllib mod is installed. +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) +else + S = function ( s ) return s end +end + +-- infinite stacks checking + +if minetest.get_modpath("unified_inventory") or not minetest.setting_getbool("creative_mode") then + moretrees.expect_infinite_stacks = false +else + moretrees.expect_infinite_stacks = true +end + +-- tables, load other files + +moretrees.cutting_tools = { + "default:axe_bronze", + "default:axe_diamond", + "default:axe_mese", + "default:axe_steel", + "glooptest:axe_alatro", + "glooptest:axe_arol", + "moreores:axe_mithril", + "moreores:axe_silver", + "titanium:axe", +} + +dofile(modpath.."/tree_models.lua") +dofile(modpath.."/node_defs.lua") +dofile(modpath.."/biome_defs.lua") +dofile(modpath.."/saplings.lua") +dofile(modpath.."/crafts.lua") +dofile(modpath.."/leafdecay.lua") + +-- tree spawning setup + +if moretrees.spawn_saplings then + moretrees.spawn_beech_object = "moretrees:beech_sapling_ongen" + moretrees.spawn_apple_tree_object = "moretrees:apple_tree_sapling_ongen" + moretrees.spawn_oak_object = "moretrees:oak_sapling_ongen" + moretrees.spawn_sequoia_object = "moretrees:sequoia_sapling_ongen" + moretrees.spawn_palm_object = "moretrees:palm_sapling_ongen" + moretrees.spawn_pine_object = "moretrees:pine_sapling_ongen" + moretrees.spawn_rubber_tree_object = "moretrees:rubber_tree_sapling_ongen" + moretrees.spawn_willow_object = "moretrees:willow_sapling_ongen" + moretrees.spawn_acacia_object = "moretrees:acacia_sapling_ongen" + moretrees.spawn_birch_object = "moretrees:birch_sapling_ongen" + moretrees.spawn_spruce_object = "moretrees:spruce_sapling_ongen" + moretrees.spawn_jungletree_object = "moretrees:jungletree_sapling_ongen" + moretrees.spawn_fir_object = "moretrees:fir_sapling_ongen" + moretrees.spawn_fir_snow_object = "snow:sapling_pine" +else + moretrees.spawn_beech_object = moretrees.beech_model + moretrees.spawn_apple_tree_object = moretrees.apple_tree_model + moretrees.spawn_oak_object = moretrees.oak_model + moretrees.spawn_sequoia_object = moretrees.sequoia_model + moretrees.spawn_palm_object = moretrees.palm_model + moretrees.spawn_pine_object = moretrees.pine_model + moretrees.spawn_rubber_tree_object = moretrees.rubber_tree_model + moretrees.spawn_willow_object = moretrees.willow_model + moretrees.spawn_acacia_object = moretrees.acacia_model + moretrees.spawn_birch_object = "moretrees:grow_birch" + moretrees.spawn_spruce_object = "moretrees:grow_spruce" + moretrees.spawn_jungletree_object = "moretrees:grow_jungletree" + moretrees.spawn_fir_object = "moretrees:grow_fir" + moretrees.spawn_fir_snow_object = "moretrees:grow_fir_snow" +end + + +if moretrees.enable_beech then + plantslib:register_generate_plant(moretrees.beech_biome, moretrees.spawn_beech_object) +end + +if moretrees.enable_apple_tree then + plantslib:register_generate_plant(moretrees.apple_tree_biome, moretrees.spawn_apple_tree_object) +end + +if moretrees.enable_oak then + plantslib:register_generate_plant(moretrees.oak_biome, moretrees.spawn_oak_object) +end + +if moretrees.enable_sequoia then + plantslib:register_generate_plant(moretrees.sequoia_biome, moretrees.spawn_sequoia_object) +end + +if moretrees.enable_palm then + plantslib:register_generate_plant(moretrees.palm_biome, moretrees.spawn_palm_object) +end + +if moretrees.enable_pine then + plantslib:register_generate_plant(moretrees.pine_biome, moretrees.spawn_pine_object) +end + +if moretrees.enable_rubber_tree then + plantslib:register_generate_plant(moretrees.rubber_tree_biome, moretrees.spawn_rubber_tree_object) +end + +if moretrees.enable_willow then + plantslib:register_generate_plant(moretrees.willow_biome, moretrees.spawn_willow_object) +end + +if moretrees.enable_acacia then + plantslib:register_generate_plant(moretrees.acacia_biome, moretrees.spawn_acacia_object) +end + +if moretrees.enable_birch then + plantslib:register_generate_plant(moretrees.birch_biome, moretrees.spawn_birch_object) +end + +if moretrees.enable_spruce then + plantslib:register_generate_plant(moretrees.spruce_biome, moretrees.spawn_spruce_object) +end + +if moretrees.enable_jungle_tree then + plantslib:register_generate_plant(moretrees.jungletree_biome, moretrees.spawn_jungletree_object) +end + +if moretrees.enable_fir then + plantslib:register_generate_plant(moretrees.fir_biome, moretrees.spawn_fir_object) + if minetest.get_modpath("snow") then + plantslib:register_generate_plant(moretrees.fir_biome_snow, moretrees.spawn_fir_snow_object) + end +end + +-- Code to spawn a birch tree + +function moretrees:grow_birch(pos) + minetest.remove_node(pos) + if math.random(1,2) == 1 then + minetest.spawn_tree(pos, moretrees.birch_model1) + else + minetest.spawn_tree(pos, moretrees.birch_model2) + end +end + +-- Code to spawn a spruce tree + +function moretrees:grow_spruce(pos) + minetest.remove_node(pos) + if math.random(1,2) == 1 then + minetest.spawn_tree(pos, moretrees.spruce_model1) + else + minetest.spawn_tree(pos, moretrees.spruce_model2) + end +end + +-- Code to spawn jungle trees + +moretrees.jt_axiom1 = "FFFA" +moretrees.jt_rules_a1 = "FFF[&&-FBf[&&&Ff]^^^Ff][&&+FBFf[&&&FFf]^^^Ff][&&---FBFf[&&&Ff]^^^Ff][&&+++FBFf[&&&Ff]^^^Ff]F/A" +moretrees.jt_rules_b1 = "[-Ff&f][+Ff&f]B" + +moretrees.jt_axiom2 = "FFFFFA" +moretrees.jt_rules_a2 = "FFFFF[&&-FFFBF[&&&FFff]^^^FFf][&&+FFFBFF[&&&FFff]^^^FFf][&&---FFFBFF[&&&FFff]^^^FFf][&&+++FFFBFF[&&&FFff]^^^FFf]FF/A" +moretrees.jt_rules_b2 = "[-FFf&ff][+FFf&ff]B" + +moretrees.ct_rules_a1 = "FF[FF][&&-FBF][&&+FBF][&&---FBF][&&+++FBF]F/A" +moretrees.ct_rules_b1 = "[-FBf][+FBf]" + +moretrees.ct_rules_a2 = "FF[FF][&&-FBF][&&+FBF][&&---FBF][&&+++FBF]F/A" +moretrees.ct_rules_b2 = "[-fB][+fB]" + +function moretrees:grow_jungletree(pos) + local r1 = math.random(2) + local r2 = math.random(3) + if r1 == 1 then + moretrees.jungletree_model.leaves2 = "moretrees:jungletree_leaves_red" + else + moretrees.jungletree_model.leaves2 = "moretrees:jungletree_leaves_yellow" + end + moretrees.jungletree_model.leaves2_chance = math.random(25, 75) + + if r2 == 1 then + moretrees.jungletree_model.trunk_type = "single" + moretrees.jungletree_model.iterations = 2 + moretrees.jungletree_model.axiom = moretrees.jt_axiom1 + moretrees.jungletree_model.rules_a = moretrees.jt_rules_a1 + moretrees.jungletree_model.rules_b = moretrees.jt_rules_b1 + elseif r2 == 2 then + moretrees.jungletree_model.trunk_type = "double" + moretrees.jungletree_model.iterations = 4 + moretrees.jungletree_model.axiom = moretrees.jt_axiom2 + moretrees.jungletree_model.rules_a = moretrees.jt_rules_a2 + moretrees.jungletree_model.rules_b = moretrees.jt_rules_b2 + elseif r2 == 3 then + moretrees.jungletree_model.trunk_type = "crossed" + moretrees.jungletree_model.iterations = 4 + moretrees.jungletree_model.axiom = moretrees.jt_axiom2 + moretrees.jungletree_model.rules_a = moretrees.jt_rules_a2 + moretrees.jungletree_model.rules_b = moretrees.jt_rules_b2 + end + + minetest.remove_node(pos) + local leaves = minetest.find_nodes_in_area({x = pos.x-1, y = pos.y, z = pos.z-1}, {x = pos.x+1, y = pos.y+10, z = pos.z+1}, "default:leaves") + for leaf in ipairs(leaves) do + minetest.remove_node(leaves[leaf]) + end + minetest.spawn_tree(pos, moretrees.jungletree_model) +end + +-- code to spawn fir trees + +function moretrees:grow_fir(pos) + if math.random(2) == 1 then + moretrees.fir_model.leaves="moretrees:fir_leaves" + else + moretrees.fir_model.leaves="moretrees:fir_leaves_bright" + end + if math.random(2) == 1 then + moretrees.fir_model.rules_a = moretrees.ct_rules_a1 + moretrees.fir_model.rules_b = moretrees.ct_rules_b1 + else + moretrees.fir_model.rules_a = moretrees.ct_rules_a2 + moretrees.fir_model.rules_b = moretrees.ct_rules_b2 + end + + moretrees.fir_model.iterations = 7 + moretrees.fir_model.random_level = 5 + + minetest.remove_node(pos) + local leaves = minetest.find_nodes_in_area({x = pos.x, y = pos.y, z = pos.z}, {x = pos.x, y = pos.y+5, z = pos.z}, "default:leaves") + for leaf in ipairs(leaves) do + minetest.remove_node(leaves[leaf]) + end + minetest.spawn_tree(pos,moretrees.fir_model) +end + +-- same thing, but a smaller version that grows only in snow biomes + +function moretrees:grow_fir_snow(pos) + if math.random(2) == 1 then + moretrees.fir_model.leaves="moretrees:fir_leaves" + else + moretrees.fir_model.leaves="moretrees:fir_leaves_bright" + end + if math.random(2) == 1 then + moretrees.fir_model.rules_a = moretrees.ct_rules_a1 + moretrees.fir_model.rules_b = moretrees.ct_rules_b1 + else + moretrees.fir_model.rules_a = moretrees.ct_rules_a2 + moretrees.fir_model.rules_b = moretrees.ct_rules_b2 + end + + moretrees.fir_model.iterations = 2 + moretrees.fir_model.random_level = 2 + + minetest.remove_node(pos) + local leaves = minetest.find_nodes_in_area({x = pos.x, y = pos.y, z = pos.z}, {x = pos.x, y = pos.y+5, z = pos.z}, "default:leaves") + for leaf in ipairs(leaves) do + minetest.remove_node(leaves[leaf]) + end + minetest.spawn_tree(pos,moretrees.fir_model) +end + +print(S("[Moretrees] Loaded (2013-02-11)")) diff --git a/mods/moretrees/leafdecay.lua b/mods/moretrees/leafdecay.lua new file mode 100755 index 00000000..04ee7114 --- /dev/null +++ b/mods/moretrees/leafdecay.lua @@ -0,0 +1,117 @@ +-- leaf decay + +-- this function is based on the default leafdecay code +local process_drops = function(pos, name) + local drops = minetest.get_node_drops(name) + for _,dropitem in ipairs(drops) do + if dropitem ~= name + or (string.find(name, "leaves") and moretrees.decay_leaves_as_items) then + local newpos = { + x=pos.x + math.random() - 0.5, + y=pos.y + math.random() - 0.5, + z=pos.z + math.random() - 0.5 + } + minetest.add_item(newpos, dropitem) + end + end +end + +if moretrees.enable_leafdecay then + for i in ipairs(moretrees.treelist) do + local treename = moretrees.treelist[i][1] + if treename ~= "jungletree" and treename ~= "fir" and treename ~= "palm" then + minetest.register_abm({ + nodenames = "moretrees:"..treename.."_leaves", + interval = moretrees.leafdecay_delay, + chance = moretrees.leafdecay_chance, + action = function(pos, node, active_object_count, active_object_count_wider) + if minetest.find_node_near(pos, moretrees.leafdecay_radius, { "ignore", "moretrees:"..treename.."_trunk" }) then return end + process_drops(pos, node.name) + minetest.remove_node(pos) + nodeupdate(pos) + end + }) + end + end + + minetest.register_abm({ + nodenames = {"moretrees:jungletree_leaves_red","moretrees:jungletree_leaves_green","moretrees:jungletree_leaves_yellow"}, + interval = moretrees.leafdecay_delay, + chance = moretrees.leafdecay_chance, + action = function(pos, node, active_object_count, active_object_count_wider) + if minetest.find_node_near(pos, moretrees.leafdecay_radius, {"ignore", "default:jungletree", "moretrees:jungletree_trunk"}) then return end + process_drops(pos, node.name) + minetest.remove_node(pos) + nodeupdate(pos) + end + }) + + minetest.register_abm({ + nodenames = {"moretrees:fir_leaves", "moretrees:fir_leaves_bright"}, + interval = moretrees.leafdecay_delay, + chance = moretrees.leafdecay_chance, + action = function(pos, node, active_object_count, active_object_count_wider) + if minetest.find_node_near(pos, moretrees.leafdecay_radius, { "ignore", "moretrees:fir_trunk" }) then return end + process_drops(pos, node.name) + minetest.remove_node(pos) + nodeupdate(pos) + end + }) + + minetest.register_abm({ + nodenames = "moretrees:palm_leaves", + interval = moretrees.leafdecay_delay, + chance = moretrees.leafdecay_chance, + action = function(pos, node, active_object_count, active_object_count_wider) + if minetest.find_node_near(pos, moretrees.palm_leafdecay_radius, { "ignore", "moretrees:palm_trunk" }) then return end + process_drops(pos, node.name) + minetest.remove_node(pos) + nodeupdate(pos) + end + }) +end + +if moretrees.enable_default_leafdecay then + + minetest.register_abm({ + nodenames = "default:leaves", + interval = moretrees.default_leafdecay_delay, + chance = moretrees.default_leafdecay_chance, + action = function(pos, node, active_object_count, active_object_count_wider) + if minetest.find_node_near(pos, moretrees.default_leafdecay_radius, { "ignore", "default:tree" }) then return end + process_drops(pos, node.name) + minetest.remove_node(pos) + nodeupdate(pos) + end + }) +end + +-- Decay apple tree blossoms from nature_classic mod +if minetest.get_modpath("nature_classic") then + minetest.register_abm({ + nodenames = "moretrees:apple_blossoms", + interval = moretrees.default_leafdecay_delay, + chance = moretrees.default_leafdecay_chance, + action = function(pos, node, active_object_count, active_object_count_wider) + if minetest.find_node_near(pos, moretrees.leafdecay_radius, { "ignore", "moretrees:apple_tree_trunk" }) then return end + process_drops(pos, "moretrees:apple_tree_leaves") + minetest.remove_node(pos) + nodeupdate(pos) + end + }) +end + +if moretrees.enable_default_jungle_leafdecay then + minetest.register_abm({ + nodenames = "default:jungleleaves", + interval = moretrees.default_jungle_leafdecay_delay, + chance = moretrees.default_jungle_leafdecay_chance, + action = function(pos, node, active_object_count, active_object_count_wider) + if minetest.find_node_near(pos, moretrees.default_jungle_leafdecay_radius, { "ignore", "default:jungletree" }) then return end + process_drops(pos, node.name) + minetest.remove_node(pos) + nodeupdate(pos) + end + }) +end + diff --git a/mods/moretrees/locale/de.txt b/mods/moretrees/locale/de.txt new file mode 100755 index 00000000..b01b1db2 --- /dev/null +++ b/mods/moretrees/locale/de.txt @@ -0,0 +1,74 @@ +# Translation by Xanthin + +### crafts.lua ### +Coconut Milk = Kokosnussmilch +Raw Coconut = Kokosnussfleisch +Acorn Muffin batter = Eichelmuffinteig +Acorn Muffin = Eichelmuffin +Roasted Spruce Cone Nuts = Geroestete Fichtenzapfen +Roasted Pine Cone Nuts = Geroestete Kiefernzapfen +Roasted Fir Cone Nuts = Geroestete Tannenzapfen + +### node_defs.lua ### +Beech Tree Trunk = Buchenstamm +Apple Tree Trunk = Apfelbaumstamm +Oak Tree Trunk = Eichenstamm +Giant Sequoia Trunk = Riesenmammutbaumstamm +Birch Tree Trunk = Birkenstamm +Palm Tree Trunk = Palmenstamm +Spruce Tree Trunk = Fichtenstamm +Pine Tree Trunk = Kiefernstamm +Willow Tree Trunk = Weidenstamm +Rubber Tree Trunk = Gummibaumstamm +Jungle Tree Trunk = Tropenbaumstamm +Douglas Fir Trunk = Douglasienstamm +Beech Tree Planks = Buchebretter +Apple Tree Planks = Apfelbaumbretter +Oak Tree Planks = Eichenbretter +Giant Sequoia Planks = Riesenmammutbaumbretter +Birch Tree Planks = Birkebretter +Palm Tree Planks = Palmenbretter +Spruce Tree Planks = Fichtenbretter +Pine Tree Planks = Kiefernbretter +Willow Tree Planks = Weidenbretter +Rubber Tree Planks = Gummibaumbretter +Jungle Tree Planks = Tropenholzbretter +Douglas Fir Planks = Douglasienbretter +Beech Tree Sapling = Buchesetzling +Apple Tree Sapling = Apfelbaumsetzling +Oak Tree Sapling = Eichensetzling +Giant Sequoia Sapling = Riesenmammutbaumsetzling +Birch Tree Sapling = Birkensetzling +Palm Tree Sapling = Palmensetzling +Spruce Tree Sapling = Fichtensetzling +Pine Tree Sapling = Kiefernsetzling +Willow Tree Sapling = Weidensetzling +Rubber Tree Sapling = Gummibaumsetzling +Jungle Tree Sapling = Tropenbaumsetzling +Douglas Fir Sapling = Douglasiensetzling +Beech Tree Leaves = Buchenlaub +Apple Tree Leaves = Apfelbaumlaub +Oak Tree Leaves = Eichenlaub +Giant Sequoia Leaves = Riesenmammutbaumlaub +Birch Tree Leaves = Birkenlaub +Palm Tree Leaves = Palmenlaub +Spruce Tree Leaves = Fichtennadeln +Pine Tree Leaves = Kiefernnadeln +Willow Tree Leaves = Weidenlaub +Rubber Tree Leaves = Gummibaumlaub +Jungle Tree Leaves = Tropenbaumlaub +Douglas Fir Leaves = Douglasiennadeln + +Acorn = Eichel +Coconut = Kokosnuss +Spruce Cone = Fichtenzapfen +Pine Cone = Kiefernzapfen +Fir Cone = Tannenzapfen +Jungle Sapling = Tropenbaumsetzling +Jungle Tree Leaves (Green) = Tropenbaumlaub (gruen) +Jungle Tree Leaves (Yellow) = Tropenbaumlaub (gelb) +Jungle Tree Leaves (Red) = Tropenbaumlaub (rot) +Douglas Fir Leaves (Bright) = Douglasiennadeln (breit) +Rubber Tree Trunk (Empty) = Gummibaumstamm (leer) + +[Moretrees] Loaded (2013-02-11) = [Moretrees] geladen (2013-02-11) diff --git a/mods/moretrees/locale/template.txt b/mods/moretrees/locale/template.txt new file mode 100755 index 00000000..5f4bc327 --- /dev/null +++ b/mods/moretrees/locale/template.txt @@ -0,0 +1,74 @@ +# Template + +### crafts.lua ### +Coconut Milk = +Raw Coconut = +Acorn Muffin batter = +Acorn Muffin = +Roasted Spruce Cone Nuts = +Roasted Pine Cone Nuts = +Roasted Fir Cone Nuts = + +### node_defs.lua ### +Beech Tree Trunk = +Apple Tree Trunk = +Oak Tree Trunk = +Giant Sequoia Trunk = +Birch Tree Trunk = +Palm Tree Trunk = +Spruce Tree Trunk = +Pine Tree Trunk = +Willow Tree Trunk = +Rubber Tree Trunk = +Jungle Tree Trunk = +Douglas Fir Trunk = +Beech Tree Planks = +Apple Tree Planks = +Oak Tree Planks = +Giant Sequoia Planks = +Birch Tree Planks = +Palm Tree Planks = +Spruce Tree Planks = +Pine Tree Planks = +Willow Tree Planks = +Rubber Tree Planks = +Jungle Tree Planks = +Douglas Fir Planks = +Beech Tree Sapling = +Apple Tree Sapling = +Oak Tree Sapling = +Giant Sequoia Sapling = +Birch Tree Sapling = +Palm Tree Sapling = +Spruce Tree Sapling = +Pine Tree Sapling = +Willow Tree Sapling = +Rubber Tree Sapling = +Jungle Tree Sapling = +Douglas Fir Sapling = +Beech Tree Leaves = +Apple Tree Leaves = +Oak Tree Leaves = +Giant Sequoia Leaves = +Birch Tree Leaves = +Palm Tree Leaves = +Spruce Tree Leaves = +Pine Tree Leaves = +Willow Tree Leaves = +Rubber Tree Leaves = +Jungle Tree Leaves = +Douglas Fir Leaves = + +Acorn = +Coconut = +Spruce Cone = +Pine Cone = +Fir Cone = +Jungle Sapling = +Jungle Tree Leaves (Green) = +Jungle Tree Leaves (Yellow) = +Jungle Tree Leaves (Red) = +Douglas Fir Leaves (Bright) = +Rubber Tree Trunk (Empty) = + +[Moretrees] Loaded (2013-02-11) = diff --git a/mods/moretrees/node_defs.lua b/mods/moretrees/node_defs.lua new file mode 100755 index 00000000..c4871897 --- /dev/null +++ b/mods/moretrees/node_defs.lua @@ -0,0 +1,438 @@ +-- Boilerplate to support localized strings if intllib mod is installed. +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) +else + S = function ( s ) return s end +end + +moretrees.avoidnodes = {} + +moretrees.treelist = { + {"beech", "Beech Tree"}, + {"apple_tree", "Apple Tree"}, + {"oak", "Oak Tree", "acorn", "Acorn", {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 }, + {"sequoia", "Giant Sequoia"}, + {"birch", "Birch Tree"}, + {"palm", "Palm Tree", "coconut", "Coconut", {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 1.0 }, + {"spruce", "Spruce Tree", "spruce_cone", "Spruce Cone", {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 }, + {"pine", "Pine Tree", "pine_cone", "Pine Cone", {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 }, + {"willow", "Willow Tree"}, + {"acacia", "Acacia Tree"}, + {"rubber_tree", "Rubber Tree"}, + {"jungletree", "Jungle Tree"}, + {"fir", "Douglas Fir", "fir_cone", "Fir Cone", {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 }, +} + +local dirs1 = { 21, 20, 23, 22, 21 } +local dirs2 = { 12, 9, 18, 7, 12 } +local dirs3 = { 14, 11, 16, 5, 14 } + +local moretrees_new_leaves_drawtype = "allfaces_optional" +local moretrees_new_leaves_extension = ".png" +local moretrees_plantlike_leaves_visual_scale = 1 + +if moretrees.plantlike_leaves then + moretrees_new_leaves_drawtype = "plantlike" + moretrees_new_leaves_extension = "_plantlike.png" + moretrees_plantlike_leaves_visual_scale = 1.189 +end + +-- redefine default leaves to handle plantlike and/or leaf decay options + +if moretrees.enable_default_leafdecay then + minetest.override_item("default:leaves", { + groups = { snappy = 3, flammable = 2, leaves = 1 } + }) +end +if moretrees.plantlike_leaves then + minetest.override_item("default:leaves", { + inventory_image = minetest.inventorycube("default_leaves.png"), + drawtype = "plantlike", + visual_scale = 1.189, + tiles = { "default_leaves_plantlike.png" } + }) +else + minetest.override_item("default:leaves", { + waving = 1 + }) +end + +-- redefine default jungle leaves for same + +if moretrees.enable_default_leafdecay then + minetest.override_item("default:jungleleaves", { + groups = { snappy = 3, flammable = 2, leaves = 1 } + }) +end +if moretrees.plantlike_leaves then + minetest.override_item("default:jungleleaves", { + inventory_image = minetest.inventorycube("default_jungleleaves.png"), + drawtype = "plantlike", + visual_scale = 1.189, + tiles = { "default_jungleleaves_plantlike.png" } + }) +else + minetest.override_item("default:jungleleaves", { + waving = 1 + }) +end + +for i in ipairs(moretrees.treelist) do + local treename = moretrees.treelist[i][1] + local treedesc = moretrees.treelist[i][2] + local fruit = moretrees.treelist[i][3] + local fruitdesc = moretrees.treelist[i][4] + local selbox = moretrees.treelist[i][5] + local vscale = moretrees.treelist[i][6] + + if treename ~= "jungletree" then -- the default game provides jungle tree trunk/planks nodes. + + minetest.register_node("moretrees:"..treename.."_trunk", { + description = S(treedesc.." Trunk"), + tiles = { + "moretrees_"..treename.."_trunk_top.png", + "moretrees_"..treename.."_trunk_top.png", + "moretrees_"..treename.."_trunk.png" + }, + paramtype2 = "facedir", + is_ground_content = true, + groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2}, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node, + }) + + minetest.register_node("moretrees:"..treename.."_planks", { + description = S(treedesc.." Planks"), + tiles = {"moretrees_"..treename.."_wood.png"}, + is_ground_content = true, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + sounds = default.node_sound_wood_defaults(), + }) + + minetest.register_node("moretrees:"..treename.."_sapling", { + description = S(treedesc.." Sapling"), + drawtype = "plantlike", + tiles = {"moretrees_"..treename.."_sapling.png"}, + inventory_image = "moretrees_"..treename.."_sapling.png", + paramtype = "light", + paramtype2 = "waving", + 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_defaults(), + }) + + minetest.register_node("moretrees:"..treename.."_sapling_ongen", { + description = S(treedesc.." Sapling"), + drawtype = "plantlike", + tiles = {"moretrees_"..treename.."_sapling.png"}, + inventory_image = "moretrees_"..treename.."_sapling.png", + paramtype = "light", + paramtype2 = "waving", + 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,not_in_creative_inventory=1,sapling=1}, + sounds = default.node_sound_defaults(), + drop = "moretrees:"..treename.."_sapling" + }) + + -- player will get a sapling with 1/100 chance + -- player will get leaves only if he/she gets no saplings, + -- this is because max_items is 1 + + + local droprarity = 100 + + if treename == "palm" then + droprarity = 20 + end + + local moretrees_leaves_inventory_image = nil + local moretrees_new_leaves_waving = nil + + if moretrees.plantlike_leaves then + moretrees_leaves_inventory_image = minetest.inventorycube("moretrees_"..treename.."_leaves.png") + else + moretrees_new_leaves_waving = 1 + end + + minetest.register_node("moretrees:"..treename.."_leaves", { + description = S(treedesc.." Leaves"), + drawtype = moretrees_new_leaves_drawtype, + waving = moretrees_new_leaves_waving, + visual_scale = moretrees_plantlike_leaves_visual_scale, + tiles = { "moretrees_"..treename.."_leaves"..moretrees_new_leaves_extension }, + inventory_image = moretrees_leaves_inventory_image, + paramtype = "light", + groups = {snappy=3, flammable=2, leaves=1, moretrees_leaves=1}, + sounds = default.node_sound_leaves_defaults(), + + drop = { + max_items = 1, + items = { + {items = {"moretrees:"..treename.."_sapling"}, rarity = droprarity }, + {items = {"moretrees:"..treename.."_leaves"} } + } + }, + }) + + if minetest.get_modpath("moreblocks") and moretrees.enable_stairsplus then + +-- stairsplus:register_all(modname, subname, recipeitem, {fields}) + + stairsplus:register_all( + "moretrees", + treename.."_trunk", + "moretrees:"..treename.."_trunk", + { + groups = { snappy=1, choppy=2, oddly_breakable_by_hand=1, flammable=2, not_in_creative_inventory=1 }, + tiles = { + "moretrees_"..treename.."_trunk_top.png", + "moretrees_"..treename.."_trunk_top.png", + "moretrees_"..treename.."_trunk.png" + }, + description = S(treedesc.." Trunk"), + drop = treename.."_trunk", + } + ) + + stairsplus:register_all( + "moretrees", + treename.."_planks", + "moretrees:"..treename.."_planks", + { + groups = { snappy=1, choppy=2, oddly_breakable_by_hand=2, flammable=3, not_in_creative_inventory=1 }, + tiles = { "moretrees_"..treename.."_wood.png" }, + description = S(treedesc.." Planks"), + drop = treename.."_planks", + } + ) + end + end + + if fruit then + minetest.register_node("moretrees:"..fruit, { + description = S(fruitdesc), + drawtype = "plantlike", + tiles = { "moretrees_"..fruit..".png" }, + inventory_image = "moretrees_"..fruit..".png^[transformR180", + wield_image = "moretrees_"..fruit..".png^[transformR180", + visual_scale = vscale, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = selbox + }, + groups = {fleshy=3,dig_immediate=3,flammable=2, attached_node=1}, + sounds = default.node_sound_defaults(), + }) + end + + minetest.register_abm({ + nodenames = { "moretrees:"..treename.."_trunk_sideways" }, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local fdir = node.param2 or 0 + nfdir = dirs2[fdir+1] + minetest.add_node(pos, {name = "moretrees:"..treename.."_trunk", param2 = nfdir}) + end, + }) + + table.insert(moretrees.avoidnodes, "moretrees:"..treename.."_trunk") + + if moretrees.spawn_saplings then + table.insert(moretrees.avoidnodes, "moretrees:"..treename.."_sapling") + table.insert(moretrees.avoidnodes, "moretrees:"..treename.."_sapling_ongen") + end +end + +-- Extra nodes for jungle trees: + +minetest.register_node("moretrees:jungletree_sapling", { + description = S("Jungle Sapling"), + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"default_junglesapling.png"}, + inventory_image = "default_junglesapling.png", + wield_image = "default_junglesapling.png", + paramtype = "light", + paramtype2 = "waving", + 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(), +}) + +minetest.register_node("moretrees:jungletree_sapling_ongen", { + description = S("Jungle Sapling"), + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"default_junglesapling.png"}, + inventory_image = "default_junglesapling.png", + wield_image = "default_junglesapling.png", + paramtype = "light", + paramtype2 = "waving", + 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,not_in_creative_inventory=1,sapling=1}, + sounds = default.node_sound_leaves_defaults(), + drop = "moretrees:jungletree_sapling" +}) + +local jungleleaves = {"green","yellow","red"} +local jungleleavesnames = {"Green", "Yellow", "Red"} +for color = 1, 3 do + local leave_name = "moretrees:jungletree_leaves_"..jungleleaves[color] + + local moretrees_leaves_inventory_image = nil + + if moretrees.plantlike_leaves then + moretrees_leaves_inventory_image = minetest.inventorycube("moretrees_jungletree_leaves_"..jungleleaves[color]..".png") + else + moretrees_new_leaves_waving = 1 + end + + minetest.register_node(leave_name, { + description = S("Jungle Tree Leaves ("..jungleleavesnames[color]..")"), + drawtype = moretrees_new_leaves_drawtype, + waving = moretrees_new_leaves_waving, + visual_scale = moretrees_plantlike_leaves_visual_scale, + tiles = {"moretrees_jungletree_leaves_"..jungleleaves[color]..moretrees_new_leaves_extension}, + inventory_image = moretrees_leaves_inventory_image, + paramtype = "light", + groups = {snappy=3, flammable=2, leaves=1, moretrees_leaves=1}, + drop = { + max_items = 1, + items = { + {items = {'moretrees:jungletree_sapling'}, rarity = 100 }, + {items = {"moretrees:jungletree_leaves_"..jungleleaves[color]} } + } + }, + sounds = default.node_sound_leaves_defaults(), + }) +end + +-- Extra needles for firs + +local moretrees_leaves_inventory_image = nil + +if moretrees.plantlike_leaves then + moretrees_leaves_inventory_image = minetest.inventorycube("moretrees_fir_leaves_bright.png") +end + +minetest.register_node("moretrees:fir_leaves_bright", { + drawtype = moretrees_new_leaves_drawtype, + waving = moretrees_new_leaves_waving, + visual_scale = moretrees_plantlike_leaves_visual_scale, + description = S("Douglas Fir Leaves (Bright)"), + tiles = { "moretrees_fir_leaves_bright"..moretrees_new_leaves_extension }, + inventory_image = moretrees_leaves_inventory_image, + paramtype = "light", + groups = {snappy=3, flammable=2, leaves=1, moretrees_leaves=1 }, + drop = { + max_items = 1, + items = { + {items = {'moretrees:fir_sapling'}, rarity = 100 }, + {items = {'moretrees:fir_leaves_bright'} } + } + }, + sounds = default.node_sound_leaves_defaults() +}) + +if moretrees.enable_redefine_apple then + minetest.override_item("default:apple", + {groups = { fleshy=3, dig_immediate=3, flammable=2, leafdecay=3, leafdecay_drop=1, attached_node = 1} + }) +end + +table.insert(moretrees.avoidnodes, "default:jungletree") +table.insert(moretrees.avoidnodes, "moretrees:jungletree_trunk") +table.insert(moretrees.avoidnodes, "moretrees:fir_trunk") +table.insert(moretrees.avoidnodes, "default:tree") + +if moretrees.spawn_saplings then + table.insert(moretrees.avoidnodes, "snow:sapling_pine") + table.insert(moretrees.avoidnodes, "default:junglesapling") + table.insert(moretrees.avoidnodes, "moretrees:jungle_tree_sapling") + table.insert(moretrees.avoidnodes, "moretrees:jungle_tree_sapling_ongen") +end + +-- "empty" (tapped) rubber tree nodes + +minetest.register_node("moretrees:rubber_tree_trunk_empty", { + description = S("Rubber Tree Trunk (Empty)"), + tiles = { + "moretrees_rubber_tree_trunk_top.png", + "moretrees_rubber_tree_trunk_top.png", + "moretrees_rubber_tree_trunk_empty.png" + }, + is_ground_content = true, + groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2}, + sounds = default.node_sound_wood_defaults(), + paramtype2 = "facedir", + on_place = minetest.rotate_node, +}) + +minetest.register_abm({ + nodenames = { "moretrees:rubber_tree_trunk_empty_sideways" }, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local fdir = node.param2 or 0 + nfdir = dirs2[fdir+1] + minetest.add_node(pos, {name = "moretrees:rubber_tree_trunk_empty", param2 = nfdir}) + end, +}) + +-- For compatibility with old nodes and recently-changed nodes. + +minetest.register_alias("technic:rubber_tree_full", "moretrees:rubber_tree_trunk") +minetest.register_alias("farming_plus:rubber_tree_full", "moretrees:rubber_tree_trunk") +minetest.register_alias("farming:rubber_tree_full", "moretrees:rubber_tree_trunk") + +minetest.register_alias("technic:rubber_leaves", "moretrees:rubber_tree_leaves") +minetest.register_alias("farming_plus:rubber_leaves", "moretrees:rubber_tree_leaves") +minetest.register_alias("farming:rubber_leaves", "moretrees:rubber_tree_leaves") + +minetest.register_alias("technic:rubber_tree_sapling", "moretrees:rubber_tree_sapling") +minetest.register_alias("farming_plus:rubber_sapling", "moretrees:rubber_tree_sapling") +minetest.register_alias("farming:rubber_sapling", "moretrees:rubber_tree_sapling") + +minetest.register_alias("default:junglesapling","moretrees:jungletree_sapling") +minetest.register_alias("moretrees:jungletree_trunk_sideways", "moreblocks:horizontal_jungle_tree") +minetest.register_alias("moretrees:jungletree_trunk", "default:jungletree") +minetest.register_alias("moretrees:jungletree_planks", "default:junglewood") + +minetest.register_alias("jungletree:leaves_green", "moretrees:jungletree_leaves_green") +minetest.register_alias("jungletree:leaves_red", "moretrees:jungletree_leaves_red") +minetest.register_alias("jungletree:leaves_yellow", "moretrees:jungletree_leaves_yellow") + +minetest.register_alias("moretrees:conifer_trunk", "moretrees:fir_trunk") +minetest.register_alias("moretrees:conifer_trunk_sideways", "moretrees:fir_trunk_sideways") +minetest.register_alias("moretrees:conifer_leaves", "moretrees:fir_leaves") +minetest.register_alias("moretrees:conifer_leaves_bright", "moretrees:fir_leaves_bright") +minetest.register_alias("moretrees:conifer_sapling", "moretrees:fir_sapling") + +minetest.register_alias("conifers:trunk", "moretrees:fir_trunk") +minetest.register_alias("conifers:trunk_reversed", "moretrees:fir_trunk_sideways") +minetest.register_alias("conifers:leaves", "moretrees:fir_leaves") +minetest.register_alias("conifers:leaves_special", "moretrees:fir_leaves_bright") +minetest.register_alias("conifers:sapling", "moretrees:fir_sapling") + diff --git a/mods/moretrees/saplings.lua b/mods/moretrees/saplings.lua new file mode 100755 index 00000000..7d8a9b97 --- /dev/null +++ b/mods/moretrees/saplings.lua @@ -0,0 +1,93 @@ +-- sapling growth + +for i in ipairs(moretrees.treelist) do + local treename = moretrees.treelist[i][1] + local tree_model = treename.."_model" + local tree_biome = treename.."_biome" + + if treename ~= "birch" and treename ~= "spruce" and treename ~= "fir" and treename ~= "jungletree" then + + plantslib:dbg(dump(moretrees[tree_biome].surface)) + plantslib:grow_plants({ + grow_delay = moretrees.sapling_interval, + grow_chance = moretrees.sapling_chance, + grow_plant = "moretrees:"..treename.."_sapling", + grow_nodes = moretrees[tree_biome].surface, + grow_function = moretrees[tree_model], + }) + + plantslib:grow_plants({ + grow_delay = 2, + grow_chance = 30, + grow_plant = "moretrees:"..treename.."_sapling_ongen", + grow_nodes = moretrees[tree_biome].surface, + grow_function = moretrees[tree_model], + }) + + end +end + +plantslib:grow_plants({ + grow_delay = moretrees.sapling_interval, + grow_chance = moretrees.sapling_chance, + grow_plant = "moretrees:birch_sapling", + grow_nodes = moretrees.birch_biome.surface, + grow_function = "moretrees:grow_birch" +}) + +plantslib:grow_plants({ + grow_delay = 2, + grow_chance = 30, + grow_plant = "moretrees:birch_sapling_ongen", + grow_nodes = moretrees.birch_biome.surface, + grow_function = "moretrees:grow_birch" +}) + +plantslib:grow_plants({ + grow_delay = moretrees.sapling_interval, + grow_chance = moretrees.sapling_chance, + grow_plant = "moretrees:spruce_sapling", + grow_nodes = moretrees.spruce_biome.surface, + grow_function = "moretrees:grow_spruce" +}) + +plantslib:grow_plants({ + grow_delay = 2, + grow_chance = 30, + grow_plant = "moretrees:spruce_sapling_ongen", + grow_nodes = moretrees.spruce_biome.surface, + grow_function = "moretrees:grow_spruce" +}) + +plantslib:grow_plants({ + grow_delay = moretrees.sapling_interval, + grow_chance = moretrees.sapling_chance, + grow_plant = "moretrees:fir_sapling", + grow_nodes = moretrees.fir_biome.surface, + grow_function = "moretrees:grow_fir" +}) + +plantslib:grow_plants({ + grow_delay = 2, + grow_chance = 30, + grow_plant = "moretrees:fir_sapling_ongen", + grow_nodes = moretrees.fir_biome.surface, + grow_function = "moretrees:grow_fir" +}) + +plantslib:grow_plants({ + grow_delay = moretrees.sapling_interval, + grow_chance = moretrees.sapling_chance, + grow_plant = "moretrees:jungletree_sapling", + grow_nodes = moretrees.jungletree_biome.surface, + grow_function = "moretrees:grow_jungletree" +}) + +plantslib:grow_plants({ + grow_delay = 2, + grow_chance = 30, + grow_plant = "moretrees:jungletree_sapling_ongen", + grow_nodes = moretrees.jungletree_biome.surface, + grow_function = "moretrees:grow_jungletree" +}) + diff --git a/mods/moretrees/textures/default_jungleleaves_plantlike.png b/mods/moretrees/textures/default_jungleleaves_plantlike.png new file mode 100755 index 00000000..ad3e3e4f Binary files /dev/null and b/mods/moretrees/textures/default_jungleleaves_plantlike.png differ diff --git a/mods/moretrees/textures/default_leaves_plantlike.png b/mods/moretrees/textures/default_leaves_plantlike.png new file mode 100755 index 00000000..7d93edeb Binary files /dev/null and b/mods/moretrees/textures/default_leaves_plantlike.png differ diff --git a/mods/moretrees/textures/moretrees_acacia_leaves.png b/mods/moretrees/textures/moretrees_acacia_leaves.png new file mode 100755 index 00000000..08cf3998 Binary files /dev/null and b/mods/moretrees/textures/moretrees_acacia_leaves.png differ diff --git a/mods/moretrees/textures/moretrees_acacia_leaves_plantlike.png b/mods/moretrees/textures/moretrees_acacia_leaves_plantlike.png new file mode 100755 index 00000000..6c26b32d Binary files /dev/null and b/mods/moretrees/textures/moretrees_acacia_leaves_plantlike.png differ diff --git a/mods/moretrees/textures/moretrees_acacia_sapling.png b/mods/moretrees/textures/moretrees_acacia_sapling.png new file mode 100755 index 00000000..07170a03 Binary files /dev/null and b/mods/moretrees/textures/moretrees_acacia_sapling.png differ diff --git a/mods/moretrees/textures/moretrees_acacia_trunk.png b/mods/moretrees/textures/moretrees_acacia_trunk.png new file mode 100755 index 00000000..169823d4 Binary files /dev/null and b/mods/moretrees/textures/moretrees_acacia_trunk.png differ diff --git a/mods/moretrees/textures/moretrees_acacia_trunk_top.png b/mods/moretrees/textures/moretrees_acacia_trunk_top.png new file mode 100755 index 00000000..2cf5ef0b Binary files /dev/null and b/mods/moretrees/textures/moretrees_acacia_trunk_top.png differ diff --git a/mods/moretrees/textures/moretrees_acacia_wood.png b/mods/moretrees/textures/moretrees_acacia_wood.png new file mode 100755 index 00000000..f5e6a686 Binary files /dev/null and b/mods/moretrees/textures/moretrees_acacia_wood.png differ diff --git a/mods/moretrees/textures/moretrees_acorn.png b/mods/moretrees/textures/moretrees_acorn.png new file mode 100755 index 00000000..dc2ef329 Binary files /dev/null and b/mods/moretrees/textures/moretrees_acorn.png differ diff --git a/mods/moretrees/textures/moretrees_acorn_muffin.png b/mods/moretrees/textures/moretrees_acorn_muffin.png new file mode 100755 index 00000000..166ca838 Binary files /dev/null and b/mods/moretrees/textures/moretrees_acorn_muffin.png differ diff --git a/mods/moretrees/textures/moretrees_acorn_muffin_batter.png b/mods/moretrees/textures/moretrees_acorn_muffin_batter.png new file mode 100755 index 00000000..b22e7491 Binary files /dev/null and b/mods/moretrees/textures/moretrees_acorn_muffin_batter.png differ diff --git a/mods/moretrees/textures/moretrees_apple_tree_leaves.png b/mods/moretrees/textures/moretrees_apple_tree_leaves.png new file mode 100755 index 00000000..a671742a Binary files /dev/null and b/mods/moretrees/textures/moretrees_apple_tree_leaves.png differ diff --git a/mods/moretrees/textures/moretrees_apple_tree_leaves_plantlike.png b/mods/moretrees/textures/moretrees_apple_tree_leaves_plantlike.png new file mode 100755 index 00000000..b08582bd Binary files /dev/null and b/mods/moretrees/textures/moretrees_apple_tree_leaves_plantlike.png differ diff --git a/mods/moretrees/textures/moretrees_apple_tree_sapling.png b/mods/moretrees/textures/moretrees_apple_tree_sapling.png new file mode 100755 index 00000000..cd76f0cb Binary files /dev/null and b/mods/moretrees/textures/moretrees_apple_tree_sapling.png differ diff --git a/mods/moretrees/textures/moretrees_apple_tree_trunk.png b/mods/moretrees/textures/moretrees_apple_tree_trunk.png new file mode 100755 index 00000000..5e9a202f Binary files /dev/null and b/mods/moretrees/textures/moretrees_apple_tree_trunk.png differ diff --git a/mods/moretrees/textures/moretrees_apple_tree_trunk_top.png b/mods/moretrees/textures/moretrees_apple_tree_trunk_top.png new file mode 100755 index 00000000..292ef17b Binary files /dev/null and b/mods/moretrees/textures/moretrees_apple_tree_trunk_top.png differ diff --git a/mods/moretrees/textures/moretrees_apple_tree_wood.png b/mods/moretrees/textures/moretrees_apple_tree_wood.png new file mode 100755 index 00000000..b3229dd9 Binary files /dev/null and b/mods/moretrees/textures/moretrees_apple_tree_wood.png differ diff --git a/mods/moretrees/textures/moretrees_beech_leaves.png b/mods/moretrees/textures/moretrees_beech_leaves.png new file mode 100755 index 00000000..ae86e25a Binary files /dev/null and b/mods/moretrees/textures/moretrees_beech_leaves.png differ diff --git a/mods/moretrees/textures/moretrees_beech_leaves_plantlike.png b/mods/moretrees/textures/moretrees_beech_leaves_plantlike.png new file mode 100755 index 00000000..7d93edeb Binary files /dev/null and b/mods/moretrees/textures/moretrees_beech_leaves_plantlike.png differ diff --git a/mods/moretrees/textures/moretrees_beech_sapling.png b/mods/moretrees/textures/moretrees_beech_sapling.png new file mode 100755 index 00000000..16c8887e Binary files /dev/null and b/mods/moretrees/textures/moretrees_beech_sapling.png differ diff --git a/mods/moretrees/textures/moretrees_beech_trunk.png b/mods/moretrees/textures/moretrees_beech_trunk.png new file mode 100755 index 00000000..06b4ae9c Binary files /dev/null and b/mods/moretrees/textures/moretrees_beech_trunk.png differ diff --git a/mods/moretrees/textures/moretrees_beech_trunk_top.png b/mods/moretrees/textures/moretrees_beech_trunk_top.png new file mode 100755 index 00000000..b9c1dd7b Binary files /dev/null and b/mods/moretrees/textures/moretrees_beech_trunk_top.png differ diff --git a/mods/moretrees/textures/moretrees_beech_wood.png b/mods/moretrees/textures/moretrees_beech_wood.png new file mode 100755 index 00000000..dbfe4ab8 Binary files /dev/null and b/mods/moretrees/textures/moretrees_beech_wood.png differ diff --git a/mods/moretrees/textures/moretrees_birch_leaves.png b/mods/moretrees/textures/moretrees_birch_leaves.png new file mode 100755 index 00000000..a03bd806 Binary files /dev/null and b/mods/moretrees/textures/moretrees_birch_leaves.png differ diff --git a/mods/moretrees/textures/moretrees_birch_leaves_plantlike.png b/mods/moretrees/textures/moretrees_birch_leaves_plantlike.png new file mode 100755 index 00000000..0633d79d Binary files /dev/null and b/mods/moretrees/textures/moretrees_birch_leaves_plantlike.png differ diff --git a/mods/moretrees/textures/moretrees_birch_sapling.png b/mods/moretrees/textures/moretrees_birch_sapling.png new file mode 100755 index 00000000..0235b475 Binary files /dev/null and b/mods/moretrees/textures/moretrees_birch_sapling.png differ diff --git a/mods/moretrees/textures/moretrees_birch_trunk.png b/mods/moretrees/textures/moretrees_birch_trunk.png new file mode 100755 index 00000000..2b222f7b Binary files /dev/null and b/mods/moretrees/textures/moretrees_birch_trunk.png differ diff --git a/mods/moretrees/textures/moretrees_birch_trunk_top.png b/mods/moretrees/textures/moretrees_birch_trunk_top.png new file mode 100755 index 00000000..ea4994b1 Binary files /dev/null and b/mods/moretrees/textures/moretrees_birch_trunk_top.png differ diff --git a/mods/moretrees/textures/moretrees_birch_wood.png b/mods/moretrees/textures/moretrees_birch_wood.png new file mode 100755 index 00000000..66246da2 Binary files /dev/null and b/mods/moretrees/textures/moretrees_birch_wood.png differ diff --git a/mods/moretrees/textures/moretrees_coconut.png b/mods/moretrees/textures/moretrees_coconut.png new file mode 100755 index 00000000..1783f6f4 Binary files /dev/null and b/mods/moretrees/textures/moretrees_coconut.png differ diff --git a/mods/moretrees/textures/moretrees_coconut_milk.png b/mods/moretrees/textures/moretrees_coconut_milk.png new file mode 100755 index 00000000..9a54ad8a Binary files /dev/null and b/mods/moretrees/textures/moretrees_coconut_milk.png differ diff --git a/mods/moretrees/textures/moretrees_coconut_milk_inv.png b/mods/moretrees/textures/moretrees_coconut_milk_inv.png new file mode 100755 index 00000000..d9733a1a Binary files /dev/null and b/mods/moretrees/textures/moretrees_coconut_milk_inv.png differ diff --git a/mods/moretrees/textures/moretrees_fir_cone.png b/mods/moretrees/textures/moretrees_fir_cone.png new file mode 100755 index 00000000..45eef928 Binary files /dev/null and b/mods/moretrees/textures/moretrees_fir_cone.png differ diff --git a/mods/moretrees/textures/moretrees_fir_leaves.png b/mods/moretrees/textures/moretrees_fir_leaves.png new file mode 100755 index 00000000..eda8b248 Binary files /dev/null and b/mods/moretrees/textures/moretrees_fir_leaves.png differ diff --git a/mods/moretrees/textures/moretrees_fir_leaves_bright.png b/mods/moretrees/textures/moretrees_fir_leaves_bright.png new file mode 100755 index 00000000..aa9eb158 Binary files /dev/null and b/mods/moretrees/textures/moretrees_fir_leaves_bright.png differ diff --git a/mods/moretrees/textures/moretrees_fir_leaves_bright_plantlike.png b/mods/moretrees/textures/moretrees_fir_leaves_bright_plantlike.png new file mode 100755 index 00000000..9ecc81ce Binary files /dev/null and b/mods/moretrees/textures/moretrees_fir_leaves_bright_plantlike.png differ diff --git a/mods/moretrees/textures/moretrees_fir_leaves_plantlike.png b/mods/moretrees/textures/moretrees_fir_leaves_plantlike.png new file mode 100755 index 00000000..e80836f3 Binary files /dev/null and b/mods/moretrees/textures/moretrees_fir_leaves_plantlike.png differ diff --git a/mods/moretrees/textures/moretrees_fir_nuts.png b/mods/moretrees/textures/moretrees_fir_nuts.png new file mode 100755 index 00000000..56845bd8 Binary files /dev/null and b/mods/moretrees/textures/moretrees_fir_nuts.png differ diff --git a/mods/moretrees/textures/moretrees_fir_sapling.png b/mods/moretrees/textures/moretrees_fir_sapling.png new file mode 100755 index 00000000..b11c09a4 Binary files /dev/null and b/mods/moretrees/textures/moretrees_fir_sapling.png differ diff --git a/mods/moretrees/textures/moretrees_fir_trunk.png b/mods/moretrees/textures/moretrees_fir_trunk.png new file mode 100755 index 00000000..9c58721e Binary files /dev/null and b/mods/moretrees/textures/moretrees_fir_trunk.png differ diff --git a/mods/moretrees/textures/moretrees_fir_trunk_top.png b/mods/moretrees/textures/moretrees_fir_trunk_top.png new file mode 100755 index 00000000..58183d19 Binary files /dev/null and b/mods/moretrees/textures/moretrees_fir_trunk_top.png differ diff --git a/mods/moretrees/textures/moretrees_fir_wood.png b/mods/moretrees/textures/moretrees_fir_wood.png new file mode 100755 index 00000000..7f490797 Binary files /dev/null and b/mods/moretrees/textures/moretrees_fir_wood.png differ diff --git a/mods/moretrees/textures/moretrees_jungletree_leaves_green.png b/mods/moretrees/textures/moretrees_jungletree_leaves_green.png new file mode 100755 index 00000000..7391753d Binary files /dev/null and b/mods/moretrees/textures/moretrees_jungletree_leaves_green.png differ diff --git a/mods/moretrees/textures/moretrees_jungletree_leaves_green_plantlike.png b/mods/moretrees/textures/moretrees_jungletree_leaves_green_plantlike.png new file mode 100755 index 00000000..9c482f26 Binary files /dev/null and b/mods/moretrees/textures/moretrees_jungletree_leaves_green_plantlike.png differ diff --git a/mods/moretrees/textures/moretrees_jungletree_leaves_red.png b/mods/moretrees/textures/moretrees_jungletree_leaves_red.png new file mode 100755 index 00000000..794be6ad Binary files /dev/null and b/mods/moretrees/textures/moretrees_jungletree_leaves_red.png differ diff --git a/mods/moretrees/textures/moretrees_jungletree_leaves_red_plantlike.png b/mods/moretrees/textures/moretrees_jungletree_leaves_red_plantlike.png new file mode 100755 index 00000000..a137954b Binary files /dev/null and b/mods/moretrees/textures/moretrees_jungletree_leaves_red_plantlike.png differ diff --git a/mods/moretrees/textures/moretrees_jungletree_leaves_yellow.png b/mods/moretrees/textures/moretrees_jungletree_leaves_yellow.png new file mode 100755 index 00000000..bb3ea8db Binary files /dev/null and b/mods/moretrees/textures/moretrees_jungletree_leaves_yellow.png differ diff --git a/mods/moretrees/textures/moretrees_jungletree_leaves_yellow_plantlike.png b/mods/moretrees/textures/moretrees_jungletree_leaves_yellow_plantlike.png new file mode 100755 index 00000000..e02217c6 Binary files /dev/null and b/mods/moretrees/textures/moretrees_jungletree_leaves_yellow_plantlike.png differ diff --git a/mods/moretrees/textures/moretrees_oak_leaves.png b/mods/moretrees/textures/moretrees_oak_leaves.png new file mode 100755 index 00000000..f9bc20fa Binary files /dev/null and b/mods/moretrees/textures/moretrees_oak_leaves.png differ diff --git a/mods/moretrees/textures/moretrees_oak_leaves_plantlike.png b/mods/moretrees/textures/moretrees_oak_leaves_plantlike.png new file mode 100755 index 00000000..d9009285 Binary files /dev/null and b/mods/moretrees/textures/moretrees_oak_leaves_plantlike.png differ diff --git a/mods/moretrees/textures/moretrees_oak_sapling.png b/mods/moretrees/textures/moretrees_oak_sapling.png new file mode 100755 index 00000000..f241f6b3 Binary files /dev/null and b/mods/moretrees/textures/moretrees_oak_sapling.png differ diff --git a/mods/moretrees/textures/moretrees_oak_trunk.png b/mods/moretrees/textures/moretrees_oak_trunk.png new file mode 100755 index 00000000..b0ca9103 Binary files /dev/null and b/mods/moretrees/textures/moretrees_oak_trunk.png differ diff --git a/mods/moretrees/textures/moretrees_oak_trunk_top.png b/mods/moretrees/textures/moretrees_oak_trunk_top.png new file mode 100755 index 00000000..d7a5a6ea Binary files /dev/null and b/mods/moretrees/textures/moretrees_oak_trunk_top.png differ diff --git a/mods/moretrees/textures/moretrees_oak_wood.png b/mods/moretrees/textures/moretrees_oak_wood.png new file mode 100755 index 00000000..05d02f95 Binary files /dev/null and b/mods/moretrees/textures/moretrees_oak_wood.png differ diff --git a/mods/moretrees/textures/moretrees_palm_leaves.png b/mods/moretrees/textures/moretrees_palm_leaves.png new file mode 100755 index 00000000..90b07002 Binary files /dev/null and b/mods/moretrees/textures/moretrees_palm_leaves.png differ diff --git a/mods/moretrees/textures/moretrees_palm_leaves_plantlike.png b/mods/moretrees/textures/moretrees_palm_leaves_plantlike.png new file mode 100755 index 00000000..6dcf65c3 Binary files /dev/null and b/mods/moretrees/textures/moretrees_palm_leaves_plantlike.png differ diff --git a/mods/moretrees/textures/moretrees_palm_sapling.png b/mods/moretrees/textures/moretrees_palm_sapling.png new file mode 100755 index 00000000..48b8cd23 Binary files /dev/null and b/mods/moretrees/textures/moretrees_palm_sapling.png differ diff --git a/mods/moretrees/textures/moretrees_palm_trunk.png b/mods/moretrees/textures/moretrees_palm_trunk.png new file mode 100755 index 00000000..a0641572 Binary files /dev/null and b/mods/moretrees/textures/moretrees_palm_trunk.png differ diff --git a/mods/moretrees/textures/moretrees_palm_trunk_top.png b/mods/moretrees/textures/moretrees_palm_trunk_top.png new file mode 100755 index 00000000..655cd248 Binary files /dev/null and b/mods/moretrees/textures/moretrees_palm_trunk_top.png differ diff --git a/mods/moretrees/textures/moretrees_palm_wood.png b/mods/moretrees/textures/moretrees_palm_wood.png new file mode 100755 index 00000000..c0c0ed64 Binary files /dev/null and b/mods/moretrees/textures/moretrees_palm_wood.png differ diff --git a/mods/moretrees/textures/moretrees_pine_cone.png b/mods/moretrees/textures/moretrees_pine_cone.png new file mode 100755 index 00000000..384c274d Binary files /dev/null and b/mods/moretrees/textures/moretrees_pine_cone.png differ diff --git a/mods/moretrees/textures/moretrees_pine_leaves.png b/mods/moretrees/textures/moretrees_pine_leaves.png new file mode 100755 index 00000000..c38a51d2 Binary files /dev/null and b/mods/moretrees/textures/moretrees_pine_leaves.png differ diff --git a/mods/moretrees/textures/moretrees_pine_leaves_plantlike.png b/mods/moretrees/textures/moretrees_pine_leaves_plantlike.png new file mode 100755 index 00000000..1264e1aa Binary files /dev/null and b/mods/moretrees/textures/moretrees_pine_leaves_plantlike.png differ diff --git a/mods/moretrees/textures/moretrees_pine_nuts.png b/mods/moretrees/textures/moretrees_pine_nuts.png new file mode 100755 index 00000000..c58c12db Binary files /dev/null and b/mods/moretrees/textures/moretrees_pine_nuts.png differ diff --git a/mods/moretrees/textures/moretrees_pine_sapling.png b/mods/moretrees/textures/moretrees_pine_sapling.png new file mode 100755 index 00000000..d7338ec4 Binary files /dev/null and b/mods/moretrees/textures/moretrees_pine_sapling.png differ diff --git a/mods/moretrees/textures/moretrees_pine_trunk.png b/mods/moretrees/textures/moretrees_pine_trunk.png new file mode 100755 index 00000000..96a63224 Binary files /dev/null and b/mods/moretrees/textures/moretrees_pine_trunk.png differ diff --git a/mods/moretrees/textures/moretrees_pine_trunk_top.png b/mods/moretrees/textures/moretrees_pine_trunk_top.png new file mode 100755 index 00000000..14188c77 Binary files /dev/null and b/mods/moretrees/textures/moretrees_pine_trunk_top.png differ diff --git a/mods/moretrees/textures/moretrees_pine_wood.png b/mods/moretrees/textures/moretrees_pine_wood.png new file mode 100755 index 00000000..8680bd5b Binary files /dev/null and b/mods/moretrees/textures/moretrees_pine_wood.png differ diff --git a/mods/moretrees/textures/moretrees_raw_coconut.png b/mods/moretrees/textures/moretrees_raw_coconut.png new file mode 100755 index 00000000..04e5d7bb Binary files /dev/null and b/mods/moretrees/textures/moretrees_raw_coconut.png differ diff --git a/mods/moretrees/textures/moretrees_rubber_tree_leaves.png b/mods/moretrees/textures/moretrees_rubber_tree_leaves.png new file mode 100755 index 00000000..4b20cfe7 Binary files /dev/null and b/mods/moretrees/textures/moretrees_rubber_tree_leaves.png differ diff --git a/mods/moretrees/textures/moretrees_rubber_tree_leaves_plantlike.png b/mods/moretrees/textures/moretrees_rubber_tree_leaves_plantlike.png new file mode 100755 index 00000000..476393bd Binary files /dev/null and b/mods/moretrees/textures/moretrees_rubber_tree_leaves_plantlike.png differ diff --git a/mods/moretrees/textures/moretrees_rubber_tree_sapling.png b/mods/moretrees/textures/moretrees_rubber_tree_sapling.png new file mode 100755 index 00000000..bdc07206 Binary files /dev/null and b/mods/moretrees/textures/moretrees_rubber_tree_sapling.png differ diff --git a/mods/moretrees/textures/moretrees_rubber_tree_trunk.png b/mods/moretrees/textures/moretrees_rubber_tree_trunk.png new file mode 100755 index 00000000..a0e41c5f Binary files /dev/null and b/mods/moretrees/textures/moretrees_rubber_tree_trunk.png differ diff --git a/mods/moretrees/textures/moretrees_rubber_tree_trunk_empty.png b/mods/moretrees/textures/moretrees_rubber_tree_trunk_empty.png new file mode 100755 index 00000000..55423bcf Binary files /dev/null and b/mods/moretrees/textures/moretrees_rubber_tree_trunk_empty.png differ diff --git a/mods/moretrees/textures/moretrees_rubber_tree_trunk_top.png b/mods/moretrees/textures/moretrees_rubber_tree_trunk_top.png new file mode 100755 index 00000000..d1d44d69 Binary files /dev/null and b/mods/moretrees/textures/moretrees_rubber_tree_trunk_top.png differ diff --git a/mods/moretrees/textures/moretrees_rubber_tree_wood.png b/mods/moretrees/textures/moretrees_rubber_tree_wood.png new file mode 100755 index 00000000..ed845acf Binary files /dev/null and b/mods/moretrees/textures/moretrees_rubber_tree_wood.png differ diff --git a/mods/moretrees/textures/moretrees_sequoia_leaves.png b/mods/moretrees/textures/moretrees_sequoia_leaves.png new file mode 100755 index 00000000..d0bc984e Binary files /dev/null and b/mods/moretrees/textures/moretrees_sequoia_leaves.png differ diff --git a/mods/moretrees/textures/moretrees_sequoia_leaves_plantlike.png b/mods/moretrees/textures/moretrees_sequoia_leaves_plantlike.png new file mode 100755 index 00000000..6321be82 Binary files /dev/null and b/mods/moretrees/textures/moretrees_sequoia_leaves_plantlike.png differ diff --git a/mods/moretrees/textures/moretrees_sequoia_sapling.png b/mods/moretrees/textures/moretrees_sequoia_sapling.png new file mode 100755 index 00000000..fea89169 Binary files /dev/null and b/mods/moretrees/textures/moretrees_sequoia_sapling.png differ diff --git a/mods/moretrees/textures/moretrees_sequoia_trunk.png b/mods/moretrees/textures/moretrees_sequoia_trunk.png new file mode 100755 index 00000000..c326c292 Binary files /dev/null and b/mods/moretrees/textures/moretrees_sequoia_trunk.png differ diff --git a/mods/moretrees/textures/moretrees_sequoia_trunk_top.png b/mods/moretrees/textures/moretrees_sequoia_trunk_top.png new file mode 100755 index 00000000..2b955a0f Binary files /dev/null and b/mods/moretrees/textures/moretrees_sequoia_trunk_top.png differ diff --git a/mods/moretrees/textures/moretrees_sequoia_wood.png b/mods/moretrees/textures/moretrees_sequoia_wood.png new file mode 100755 index 00000000..2e43595b Binary files /dev/null and b/mods/moretrees/textures/moretrees_sequoia_wood.png differ diff --git a/mods/moretrees/textures/moretrees_spruce_cone.png b/mods/moretrees/textures/moretrees_spruce_cone.png new file mode 100755 index 00000000..1c9da850 Binary files /dev/null and b/mods/moretrees/textures/moretrees_spruce_cone.png differ diff --git a/mods/moretrees/textures/moretrees_spruce_leaves.png b/mods/moretrees/textures/moretrees_spruce_leaves.png new file mode 100755 index 00000000..eda8b248 Binary files /dev/null and b/mods/moretrees/textures/moretrees_spruce_leaves.png differ diff --git a/mods/moretrees/textures/moretrees_spruce_leaves_plantlike.png b/mods/moretrees/textures/moretrees_spruce_leaves_plantlike.png new file mode 100755 index 00000000..e80836f3 Binary files /dev/null and b/mods/moretrees/textures/moretrees_spruce_leaves_plantlike.png differ diff --git a/mods/moretrees/textures/moretrees_spruce_nuts.png b/mods/moretrees/textures/moretrees_spruce_nuts.png new file mode 100755 index 00000000..69f4005b Binary files /dev/null and b/mods/moretrees/textures/moretrees_spruce_nuts.png differ diff --git a/mods/moretrees/textures/moretrees_spruce_sapling.png b/mods/moretrees/textures/moretrees_spruce_sapling.png new file mode 100755 index 00000000..0aec483f Binary files /dev/null and b/mods/moretrees/textures/moretrees_spruce_sapling.png differ diff --git a/mods/moretrees/textures/moretrees_spruce_trunk.png b/mods/moretrees/textures/moretrees_spruce_trunk.png new file mode 100755 index 00000000..9c58721e Binary files /dev/null and b/mods/moretrees/textures/moretrees_spruce_trunk.png differ diff --git a/mods/moretrees/textures/moretrees_spruce_trunk_top.png b/mods/moretrees/textures/moretrees_spruce_trunk_top.png new file mode 100755 index 00000000..c458fe82 Binary files /dev/null and b/mods/moretrees/textures/moretrees_spruce_trunk_top.png differ diff --git a/mods/moretrees/textures/moretrees_spruce_wood.png b/mods/moretrees/textures/moretrees_spruce_wood.png new file mode 100755 index 00000000..aaf91576 Binary files /dev/null and b/mods/moretrees/textures/moretrees_spruce_wood.png differ diff --git a/mods/moretrees/textures/moretrees_willow_leaves.png b/mods/moretrees/textures/moretrees_willow_leaves.png new file mode 100755 index 00000000..8682c769 Binary files /dev/null and b/mods/moretrees/textures/moretrees_willow_leaves.png differ diff --git a/mods/moretrees/textures/moretrees_willow_leaves_plantlike.png b/mods/moretrees/textures/moretrees_willow_leaves_plantlike.png new file mode 100755 index 00000000..ae612059 Binary files /dev/null and b/mods/moretrees/textures/moretrees_willow_leaves_plantlike.png differ diff --git a/mods/moretrees/textures/moretrees_willow_sapling.png b/mods/moretrees/textures/moretrees_willow_sapling.png new file mode 100755 index 00000000..0742caa6 Binary files /dev/null and b/mods/moretrees/textures/moretrees_willow_sapling.png differ diff --git a/mods/moretrees/textures/moretrees_willow_trunk.png b/mods/moretrees/textures/moretrees_willow_trunk.png new file mode 100755 index 00000000..c1aa0bae Binary files /dev/null and b/mods/moretrees/textures/moretrees_willow_trunk.png differ diff --git a/mods/moretrees/textures/moretrees_willow_trunk_top.png b/mods/moretrees/textures/moretrees_willow_trunk_top.png new file mode 100755 index 00000000..971a98dc Binary files /dev/null and b/mods/moretrees/textures/moretrees_willow_trunk_top.png differ diff --git a/mods/moretrees/textures/moretrees_willow_wood.png b/mods/moretrees/textures/moretrees_willow_wood.png new file mode 100755 index 00000000..466c95de Binary files /dev/null and b/mods/moretrees/textures/moretrees_willow_wood.png differ diff --git a/mods/moretrees/tree_biomes.txt b/mods/moretrees/tree_biomes.txt new file mode 100755 index 00000000..07b639e5 --- /dev/null +++ b/mods/moretrees/tree_biomes.txt @@ -0,0 +1,34 @@ + + Elevation Temperature Nearness to Nearby What nodes Perlin Avoid +Tree type (m) (approx., °C) some node water to spawn on seed diff radius +----------------------------------------------------------------------------------------------------------------------- +jungle tree - 5 to +10 above +15 water, 20 10 dirt_with_grass 329 5 +fir above +25 -20 to +10 n/a n/a dirt_with_grass 359 8 +firs on snow above +15 -20 to +10 n/a n/a snow:snow 359 8 +palm - 1 to + 1 +15 to +32 water, 15 10 sand 330 5 +apple + 1 to +10 +23 to +32 n/a n/a dirt_with grass 331 15 +oak 0 to +10 + 4 to +16 n/a n/a dirt_with grass 332 15 +sequoia 0 to +10 -30 to +50 n/a n/a dirt_with grass 333 10 +birch +10 to +15 -20 to +10 n/a n/a dirt_with grass 334 5 +spruce above +20 -20 to +10 n/a n/a dirt_with grass 335 10 +pine n/a n/a water, 15 5 dirt_with grass 336 10 +willow - 5 to + 5 n/a water, 15 5 dirt_with grass 337 20 +acacia n/a n/a n/a n/a dirt_with_grass, + desert_sand n/a 15 +rubber - 5 to + 5 above +32 water, 15 10 dirt_with_grass 338 20 + +beech n/a n/a n/a n/a dirt_with_grass 2 10 + + +Notes: +------ + +Beech trees are meant to replace default trees, but are themselves disabled by default. They grow in the same areas +as the default ones do, and under the same conditions. + +Acacia trees depend on humidity as their primary control, and they don't use the fertile ground option. They grow near +the edges of a desert biome, occasionally into the grass beyond, and anywhere else on desert sand or dirt with grass, +where the humidity is low (but not bone dry). + +Fir trees appear in a snow biome only with older versions of SPlizard's Snow Biomes mod. In more recent versions, +these trees will not grow, due to an engine bug. diff --git a/mods/moretrees/tree_models.lua b/mods/moretrees/tree_models.lua new file mode 100755 index 00000000..f1cf5a51 --- /dev/null +++ b/mods/moretrees/tree_models.lua @@ -0,0 +1,246 @@ +moretrees.beech_model={ + axiom="FFFFFBFB", + rules_a="[&&&GGF[++^Fd][--&Fd]//Fd[+^Fd][--&Fd]]////[&&&GGF[++^Fd][--&Fd]//Fd[+^Fd][--&Fd]]////[&&&GGF[++^Fd][--&Fd]//Fd[+^Fd][--&Fdd]]", + rules_b="[&&&F[++^Fd][--&d]//d[+^d][--&d]]////[&&&F[++^Fd][--&d]//d[+^d][--&d]]////[&&&F[++^Fd][--&Fd]//d[+^d][--&d]]", + rules_c="/", + rules_d="F", + trunk="moretrees:beech_trunk", + leaves="moretrees:beech_leaves", + angle=30, + iterations=2, + random_level=0, + trunk_type="single", + thin_branches=true +} + +moretrees.apple_tree_model={ + axiom="FFFFFAFFBF", + rules_a="[&&&FFFFF&&FFFF][&&&++++FFFFF&&FFFF][&&&----FFFFF&&FFFF]", + rules_b="[&&&++FFFFF&&FFFF][&&&--FFFFF&&FFFF][&&&------FFFFF&&FFFF]", + trunk="moretrees:apple_tree_trunk", + leaves="moretrees:apple_tree_leaves", + angle=30, + iterations=2, + random_level=0, + trunk_type="single", + thin_branches=true, + fruit="default:apple", + fruit_chance=15, +} + +moretrees.oak_model={ + axiom="FFFFFFA", + rules_a="[&FFBFA]////[&BFFFA]////[&FBFFA]", + rules_b="[&FFFA]////[&FFFA]////[&FFFA]", + trunk="moretrees:oak_trunk", + leaves="moretrees:oak_leaves", + angle=30, + iterations=5, + random_level=2, + trunk_type="crossed", + thin_branches=false, + fruit="moretrees:acorn", + fruit_chance=3, +} + +moretrees.sequoia_model={ + axiom="FFFFFFFFFFddccA///cccFddcFA///ddFcFA/cFFddFcdBddd/A/ccdcddd/ccAddddcFBcccAccFdFcFBcccc/BFdFFcFFdcccc/B", + rules_a="[&&&GGF[++^FFdd][--&Fddd]//Fdd[+^Fd][--&Fdd]]////[&&&GGF[++^FFdd][--&Fddd]//Fdd[+^Fd][--&Fdd]]////[&&&GGF[++^FFdd][--&Fddd]//Fdd[+^Fd][--&Fdd]]", + rules_b="[&&&GGF[++^Fdd][--&Fdd]//dd[+^d][--&Fd]]////[&&&GGF[++^Fdd][--&Fdd]//dd[+^d][--&Fd]]////[&&&GGF[++^Fdd][--&Fdd]//dd[+^d][--&Fd]]", + rules_c="/", + rules_d="F", + trunk="moretrees:sequoia_trunk", + leaves="moretrees:sequoia_leaves", + angle=30, + iterations=2, + random_level=0, + trunk_type="crossed", + thin_branches=true +} + +moretrees.birch_model1={ + axiom="FFFFFdddccA/FFFFFFcA/FFFFFFcB", + rules_a="[&&&dddd^^ddddddd][&&&---dddd^^ddddddd][&&&+++dddd^^ddddddd][&&&++++++dddd^^ddddddd]", + rules_b="[&&&ddd^^ddddd][&&&---ddd^^ddddd][&&&+++ddd^^ddddd][&&&++++++ddd^^ddddd]", + rules_c="/", + rules_d="F", + trunk="moretrees:birch_trunk", + leaves="moretrees:birch_leaves", + angle=30, + iterations=2, + random_level=0, + trunk_type="single", + thin_branches=true +} + +moretrees.birch_model2={ + axiom="FFFdddccA/FFFFFccA/FFFFFccB", + rules_a="[&&&dFFF^^FFFdd][&&&---dFFF^^FFFdd][&&&+++dFFF^^FFFdd][&&&++++++dFFF^^FFFdd]", + rules_b="[&&&dFF^^FFFd][&&&---dFFF^^FFFd][&&&+++dFF^^FFFd][&&&++++++dFF^^FFFd]", + rules_c="/", + rules_d="F", + trunk="moretrees:birch_trunk", + leaves="moretrees:birch_leaves", + angle=30, + iterations=2, + random_level=0, + trunk_type="single", + thin_branches=true +} + +moretrees.palm_model={ + axiom="FFcccccc&FFFFFddd[^&&&GR][^///&&&GR][^//////&&&GR][^***&&&GR]FA//A//A//A//A//A", + rules_a="[&fb&bbb[++f--&ffff&ff][--f++&ffff&ff]&ffff&bbbb&b]", + rules_b="f", + rules_c="/", + rules_d="F", + trunk="moretrees:palm_trunk", + leaves="moretrees:palm_leaves", + angle=30, + iterations=2, + random_level=0, + trunk_type="single", + thin_branches=true, + fruit="moretrees:coconut", + fruit_chance=0 +} + +moretrees.spruce_model1={ + axiom="FFFFFAFFFFFFBFFFFFFCFFFFFFDFFFFFF[&&&F^^FF][&&&++F^^FF][&&&++++F^^FF][&&&++++++F^^FF][&&&--F^^FF][&&&----F^^FF][FFFFf]", + rules_a="[&&&FFFFFF^^FFF][&&&++FFFFFF^^FFF][&&&++++FFFFFF^^FFF][&&&++++++FFFFFF^^FFF][&&&--FFFFFF^^FFF][&&&----FFFFFF^^FFF]", + rules_b="[&&&FFFFF^^FFF][&&&++FFFFF^^FFF][&&&++++FFFFF^^FFF][&&&++++++FFFFF^^FFF][&&&--FFFFF^^FFF][&&&----FFFFF^^FFF]", + rules_c="[&&&FFFF^^FFF][&&&++FFFF^^FFF][&&&++++FFFF^^FFF][&&&++++++FFFF^^FFF][&&&--FFFF^^FFF][&&&----FFFF^^FFF]", + rules_d="[&&&FFF^^FFF][&&&++FFF^^FFF][&&&++++FFF^^FFF][&&&++++++FFF^^FFF][&&&--FFF^^FFF][&&&----FFF^^FFF]", + trunk="moretrees:spruce_trunk", + leaves="moretrees:spruce_leaves", + angle=30, + iterations=2, + random_level=0, + trunk_type="crossed", + thin_branches=true, + fruit="moretrees:spruce_cone", + fruit_chance=8 +} + +moretrees.spruce_model2={ + axiom="FFFFFFBFFFFFFCFFFFFFDFFFFFF[&&&F^^FF][&&&++F^^FF][&&&++++F^^FF][&&&++++++F^^FF][&&&--F^^FF][&&&----F^^FF][FFFFf]", + rules_b="[&&&FFFFF^^FFF][&&&++FFFFF^^FFF][&&&++++FFFFF^^FFF][&&&++++++FFFFF^^FFF][&&&--FFFFF^^FFF][&&&----FFFFF^^FFF]", + rules_c="[&&&FFFF^^FFF][&&&++FFFF^^FFF][&&&++++FFFF^^FFF][&&&++++++FFFF^^FFF][&&&--FFFF^^FFF][&&&----FFFF^^FFF]", + rules_d="[&&&FFF^^FFF][&&&++FFF^^FFF][&&&++++FFF^^FFF][&&&++++++FFF^^FFF][&&&--FFF^^FFF][&&&----FFF^^FFF]", + trunk="moretrees:spruce_trunk", + leaves="moretrees:spruce_leaves", + angle=30, + iterations=2, + random_level=0, + trunk_type="crossed", + thin_branches=true, + fruit="moretrees:spruce_cone", + fruit_chance=8 +} + +moretrees.pine_model={ + axiom="FFFFFcccdddB///cFdFB////cFdFB///cFdFB///cFdFA///cFdFA///cFdFB[FF]f", + rules_a="[&&&TTTT[++^TFdd][--&TFd]//Tdd[+^Fd][--&Fdd]]", + rules_b="[&&&TTT[++^Fdd][--&Fdd]//dd[+^d][--&Fd]]", + rules_c="/", + rules_d="F", + trunk="moretrees:pine_trunk", + leaves="moretrees:pine_leaves", + angle=30, + iterations=2, + random_level=0, + trunk_type="single", + thin_branches=true, + fruit="moretrees:pine_cone", + fruit_chance=8 +} + +moretrees.willow_model={ + axiom="FFFFFFFFccA", + rules_a="[&FF&FFFF&&F&FFFFFFFdddd][**&FF&FFFF&&F&FFFFFFFdddd][//&FF&FFFF&&F&FFFFFFFdddd][////&FF&FFFF&&F&FFFFFFFdddd][//////&FF&FFFF&&F&FFFFFFFdddd][////////&FF&FFFF&&F&FFFFFFFdddd]", + rules_c="/", + rules_d="F", + trunk="moretrees:willow_trunk", + leaves="moretrees:willow_leaves", + angle=30, + iterations=2, + random_level=0, + trunk_type="crossed", + thin_branches=true +} + +moretrees.acacia_model={ + axiom="FFFFFFccccA", + rules_a = "[B]//[B]//[B]//[B]", + rules_b = "&TTTT&TT^^G&&----GGGGGG++GGG++" -- line up with the "canvas" edge + .."fffffffGG++G++" -- first layer, drawn in a zig-zag raster pattern + .."Gffffffff--G--" + .."ffffffffG++G++" + .."fffffffff--G--" + .."fffffffff++G++" + .."fffffffff--G--" + .."ffffffffG++G++" + .."Gffffffff--G--" + .."fffffffGG" + .."^^G&&----GGGGGGG++GGGGGG++" -- re-align to second layer canvas edge + .."ffffGGG++G++" -- second layer + .."GGfffff--G--" + .."ffffffG++G++" + .."fffffff--G--" + .."ffffffG++G++" + .."GGfffff--G--" + .."ffffGGG", + rules_c = "/", + trunk="moretrees:acacia_trunk", + leaves="moretrees:acacia_leaves", + angle=45, + iterations=3, + random_level=0, + trunk_type="single", + thin_branches=true, +} + +moretrees.rubber_tree_model={ + axiom="FFFFA", + rules_a="[&FFBFA]////[&BFFFA]////[&FBFFA]", + rules_b="[&FFA]////[&FFA]////[&FFA]", + trunk="moretrees:rubber_tree_trunk", + leaves="moretrees:rubber_tree_leaves", + angle=35, + iterations=3, + random_level=1, + trunk_type="double", + thin_branches=true +} + +moretrees.jungletree_model={ + axiom=nil, + rules_a=nil, + rules_b=nil, + trunk="default:jungletree", + leaves="moretrees:jungletree_leaves_green", + leaves2=nil, + leaves2_chance=nil, + angle=45, + iterations=nil, + random_level=2, + trunk_type=nil, + thin_branches=true, + fruit_chance=15, + fruit="vines:vine" +} + +moretrees.fir_model={ + axiom="FFFAF[&&-F][&&+F][&&---F][&&+++F]Fff", + rules_a=nil, + rules_b=nil, + trunk="moretrees:fir_trunk", + leaves=nil, + angle=45, + iterations=7, + random_level=5, + trunk_type="single", + thin_branches=true, + fruit="moretrees:fir_cone", + fruit_chance=8 +} diff --git a/mods/multitest/craftitems.lua b/mods/multitest/craftitems.lua new file mode 100755 index 00000000..d8cef05d --- /dev/null +++ b/mods/multitest/craftitems.lua @@ -0,0 +1,14 @@ +minetest.register_craftitem("multitest:handle_grip", { + description = "Grip", + inventory_image = "multitest_handle_grip.png", +}) + +minetest.register_craftitem("multitest:rubber", { + description = "Rubber", + inventory_image = "multitest_rubber.png", +}) + +minetest.register_craftitem("multitest:rubber_raw", { + description = "Raw Rubber", + inventory_image = "multitest_rubber_raw.png", +}) \ No newline at end of file diff --git a/mods/multitest/crafts.lua b/mods/multitest/crafts.lua new file mode 100755 index 00000000..d83960b7 --- /dev/null +++ b/mods/multitest/crafts.lua @@ -0,0 +1,280 @@ +minetest.register_craft({ + output = "multitest:shears", + recipe = { + {"default:steel_ingot", "", "default:steel_ingot"}, + {"", "default:wood", ""}, + {"multitest:handle_grip", "", "multitest:handle_grip"} + } +}) + +minetest.register_craft({ + output = "multitest:wood_shears", + recipe = { + {"default:tree", "", "default:tree"}, + {"", "default:wood", ""}, + {"multitest:handle_grip", "", "multitest:handle_grip"} + } +}) + +minetest.register_craft({ + output = "multitest:stone_shears", + recipe = { + {"default:cobble", "", "default:cobble"}, + {"", "default:wood", ""}, + {"multitest:handle_grip", "", "multitest:handle_grip"} + } +}) + +minetest.register_craft({ + output = "multitest:rubber_raw 4", + recipe = { + {"default:clay_lump", "default:papyrus", "default:clay_lump"}, + {"default:papyrus", "bucket:bucket_water", "default:papyrus"}, + {"default:clay_lump", "default:papyrus", "default:clay_lump"}, + }, + replacements = {{ "bucket:bucket_water", "bucket:bucket_empty" }} +}) + +minetest.register_craft({ + type = "cooking", + recipe = "multitest:rubber_raw", + output = "multitest:rubber", +}) + +minetest.register_craft({ + output = "multitest:handle_grip 2", + recipe = { + {"", "", ""}, + {"multitest:rubber", "multitest:rubber", "multitest:rubber"}, + {"", "", ""} + } +}) + +minetest.register_craft({ + type = "cooking", + recipe = "multitest:blackcobble", + output = "multitest:blackstone", +}) + +minetest.register_craft({ + output = "multitest:rubberblock", + recipe = { + {"multitest:rubber", "multitest:rubber", ""}, + {"multitest:rubber", "multitest:rubber", ""}, + {"", "", ""} + } +}) + +minetest.register_craft({ + output = "multitest:scraper", + recipe = { + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"", "default:steel_ingot", ""}, + {"", "multitest:handle_grip", ""} + } +}) + +minetest.register_craft({ + output = "multitest:blackstone_paved", + recipe = { + {"multitest:scraper", "multitest:blackstone", ""}, + {"", "", ""}, + {"", "", ""}, + }, + replacements = {{ "multitest:scraper", "multitest:scraper" }} +}) + +minetest.register_craft({ + output = "multitest:rubber 4", + recipe = { + {"multitest:rubberblock", "", ""}, + {"", "", ""}, + {"", "", ""}, + }, +}) + +minetest.register_craft({ + output = "multitest:blackstone", + recipe = { + {"default:stone", "default:stone", "default:stone"}, + {"default:stone", "dye:black", "default:stone"}, + {"default:stone", "default:stone", "default:stone"}, + }, +}) + +minetest.register_craft({ + output = "multitest:blackstone_brick", + recipe = { + {"multitest:blackstone", "multitest:blackstone", ""}, + {"multitest:blackstone", "multitest:blackstone", ""}, + {"", "", ""}, + }, +}) + +minetest.register_craft({ + output = "multitest:hayblock 4", + recipe = { + {"farming:wheat", "farming:wheat", "farming:wheat"}, + {"farming:wheat", "farming:wheat", "farming:wheat"}, + {"farming:wheat", "farming:wheat", "farming:wheat"}, + }, +}) + +minetest.register_craft({ + output = "multitest:checkered_floor", + recipe = { + {"default:stone", "multitest:blackstone", ""}, + {"multitest:blackstone", "default:stone", ""}, + {"", "", ""}, + }, +}) + +minetest.register_craft({ + output = "multitest:checkered_floor", + recipe = { + {"multitest:blackstone", "default:stone", ""}, + {"default:stone", "multitest:blackstone", ""}, + {"", "", ""}, + }, +}) + +minetest.register_craft({ + output = "multitest:checkered_floor", + recipe = { + {"multitest:blackstone", "default:stone", ""}, + {"default:stone", "multitest:blackstone", ""}, + {"", "", ""}, + }, +}) + +for i, v in ipairs(multitest.colors) do + minetest.register_craft({ + output = "multitest:carpet_"..v.." 4", + recipe = { + {"wool:"..v, "wool:"..v, ""}, + {"", "", ""}, + {"", "", ""}, + }, + }) +end + +minetest.register_craft({ + output = "multitest:lamp", + recipe = { + {"", "default:tree", ""}, + {"default:tree", "default:torch", "default:tree"}, + {"", "default:tree", ""}, + }, +}) + +minetest.register_craft({ + output = "multitest:door_mat", + recipe = { + {"wool:black", "wool:black", "wool:black"}, + {"wool:black", "wool:brown", "wool:black"}, + {"wool:black", "wool:black", "wool:black"}, + }, +}) + +minetest.register_craft({ + output = "multitest:andesite 4", + recipe = { + {"default:stone", "default:stone", "default:stone"}, + {"default:cobble", "default:cobble", "default:cobble"}, + {"default:stone", "default:stone", "default:stone"}, + }, +}) + +minetest.register_craft({ + output = "multitest:andesite_smooth", + recipe = { + {"multitest:andesite", "multitest:scraper", ""}, + {"", "", ""}, + {"", "", ""}, + }, + replacements = {{ "multitest:scraper", "multitest:scraper" }} +}) + +minetest.register_craft({ + output = "multitest:granite 4", + recipe = { + {"multitest:andesite", "default:bronze_ingot", ""}, + {"", "", ""}, + {"", "", ""}, + }, +}) + +minetest.register_craft({ + output = "multitest:granite_smooth", + recipe = { + {"multitest:granite", "multitest:scraper", ""}, + {"", "", ""}, + {"", "", ""}, + }, + replacements = {{ "multitest:scraper", "multitest:scraper" }} +}) + +minetest.register_craft({ + output = "multitest:diorite 4", + recipe = { + {"multitest:andesite", "default:clay_lump", ""}, + {"", "", ""}, + {"", "", ""}, + }, +}) + +minetest.register_craft({ + output = "multitest:diorite_smooth", + recipe = { + {"multitest:diorite", "multitest:scraper", ""}, + {"", "", ""}, + {"", "", ""}, + }, + replacements = {{ "multitest:scraper", "multitest:scraper" }} +}) + +minetest.register_craft({ + output = "multitest:diorite", + recipe = { + {"multitest:diorite_smooth", "", ""}, + {"", "", ""}, + {"", "", ""}, + }, +}) + +minetest.register_craft({ + output = "multitest:granite", + recipe = { + {"multitest:granite_smooth", "", ""}, + {"", "", ""}, + {"", "", ""}, + }, +}) + +minetest.register_craft({ + output = "multitest:andesite", + recipe = { + {"multitest:andesite_smooth", "", ""}, + {"", "", ""}, + {"", "", ""}, + }, +}) + +minetest.register_craft({ + output = "multitest:sandstone_carved", + recipe = { + {"default:sandstone", "multitest:scraper", ""}, + {"", "", ""}, + {"", "", ""}, + }, + replacements = {{ "multitest:scraper", "multitest:scraper" }} +}) + +minetest.register_craft({ + output = "multitest:sponge_block 4", + recipe = { + {"", "dye:yellow", ""}, + {"", "wool:white", ""}, + {"", "farming:wheat", ""}, + }, +}) \ No newline at end of file diff --git a/mods/multitest/depends.txt b/mods/multitest/depends.txt new file mode 100755 index 00000000..034a95e6 --- /dev/null +++ b/mods/multitest/depends.txt @@ -0,0 +1,3 @@ +default +stairs +wool \ No newline at end of file diff --git a/mods/multitest/fuel.lua b/mods/multitest/fuel.lua new file mode 100755 index 00000000..adaef9e8 --- /dev/null +++ b/mods/multitest/fuel.lua @@ -0,0 +1,11 @@ +minetest.register_craft({ + type = "fuel", + recipe = "multitest:rubber", + burntime = 5, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "multitest:rubberblock", + burntime = 3, +}) \ No newline at end of file diff --git a/mods/multitest/init.lua b/mods/multitest/init.lua new file mode 100755 index 00000000..90820558 --- /dev/null +++ b/mods/multitest/init.lua @@ -0,0 +1,57 @@ +multitest = {} + +multitest.colors = {"black", "blue", "brown", "cyan", "dark_green", +"dark_grey", "green", "grey", "magenta", "orange", +"pink", "red", "violet", "white", "yellow"} + +multitest.colornames = {"Black", "Blue", "Brown", "Cyan", "Dark Green", +"Dark Grey", "Green", "Grey", "Magenta", "Orange", +"Pink", "Red", "Violet", "White", "Yellow"} + +dofile(minetest.get_modpath("multitest").."/crafts.lua") +dofile(minetest.get_modpath("multitest").."/craftitems.lua") +dofile(minetest.get_modpath("multitest").."/nodes.lua") +dofile(minetest.get_modpath("multitest").."/fuel.lua") + +minetest.register_tool("multitest:shears", { + description = "Shears", + inventory_image = "multitest_shears.png", + tool_capabilities = { + max_drop_level=3, + groupcaps= { + crumbly={times={[1]=5.00, [2]=3.50, [3]=3.00}, uses=80, maxlevel=1} + } + } +}) + +minetest.register_tool("multitest:wood_shears", { + description = "Wood Shears", + inventory_image = "multitest_wood_shears.png", + tool_capabilities = { + max_drop_level=3, + groupcaps= { + crumbly={times={[1]=3.00, [2]=2.50, [3]=1.00}, uses=40, maxlevel=1} + } + } +}) + +minetest.register_tool("multitest:stone_shears", { + description = "Stone Shears", + inventory_image = "multitest_stone_shears.png", + tool_capabilities = { + max_drop_level=3, + groupcaps= { + crumbly={times={[1]=4.00, [2]=3.00, [3]=1.50}, uses=50, maxlevel=1} + } + } +}) + +minetest.register_tool("multitest:scraper", { + description = "Scraper", + inventory_image = "multitest_scraper.png", + tool_capabilities = { + max_drop_level=3, + groupcaps= { + } + } +}) diff --git a/mods/multitest/nodes.lua b/mods/multitest/nodes.lua new file mode 100755 index 00000000..03a92557 --- /dev/null +++ b/mods/multitest/nodes.lua @@ -0,0 +1,182 @@ +-- nodes +minetest.register_node("multitest:rubberblock", { + description = "Rubber Block", + tiles = {"multitest_rubberblock.png"}, + groups = {oddly_breakable_by_hand=5,crumbly=3}, +}) + +minetest.register_node("multitest:blackstone", { + description = "Blackstone", + tiles = {"multitest_blackstone.png"}, + groups = {cracky=3, stone=1}, + drop = 'multitest:blackcobble', + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("multitest:blackcobble", { + description = "Black Cobblestone", + tiles = {"multitest_blackcobble.png"}, + groups = {cracky=2, stone=2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("multitest:blackstone_paved", { + description = "Paved Blackstone", + tiles = {"multitest_blackstone_paved.png"}, + groups = {cracky=2, stone=1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("multitest:blackstone_paved", { + description = "Paved Blackstone", + tiles = {"multitest_blackstone_paved.png"}, + groups = {cracky=2, stone=1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("multitest:blackstone_brick", { + description = "Blackstone Bricks", + tiles = {"multitest_blackstone_brick.png"}, + groups = {cracky=2, stone=1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("multitest:hayblock", { + description = "Hay Bale", + tiles = {"multitest_hayblock_top.png", "multitest_hayblock_top.png", "multitest_hayblock.png"}, + paramtype2 = "facedir", + groups = {snappy=1,flammable=2,crumbly=1,cracky=4,oddly_breakable_by_hand=2}, + sounds = default.node_sound_sand_defaults(), + on_place = minetest.rotate_node +}) + +minetest.register_node("multitest:checkered_floor", { + description = "Checkered Floor", + tiles = {"multitest_checkered_floor.png"}, + groups = {cracky=2, oddly_breakable_by_hand=4}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("multitest:lamp", { + description = "Lamp", + tiles = {"multitest_lamp.png"}, + paramtype = "light", + sunlight_propagates = true, + light_source = LIGHT_MAX-1, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("multitest:andesite", { + description = "Andesite", + tiles = {"multitest_andesite.png"}, + groups = {cracky=3,}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("multitest:diorite", { + description = "Diorite", + tiles = {"multitest_diorite.png"}, + groups = {cracky=3,}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("multitest:granite", { + description = "Granite", + tiles = {"multitest_granite.png"}, + groups = {cracky=3,}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("multitest:andesite_smooth", { + description = "Smooth Andesite", + tiles = {"multitest_andesite_smooth.png"}, + groups = {cracky=3,}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("multitest:diorite_smooth", { + description = "Smooth Diorite", + tiles = {"multitest_diorite_smooth.png"}, + groups = {cracky=3,}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("multitest:granite_smooth", { + description = "Smooth Granite", + tiles = {"multitest_granite_smooth.png"}, + groups = {cracky=3,}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("multitest:sandstone_carved", { + description = "Carved Sandstone", + tiles = {"multitest_sandstone_carved_top.png", "multitest_sandstone_carved_top.png", "multitest_sandstone_carved.png"}, + groups = {crumbly=2,cracky=4,}, + sounds = default.node_sound_sand_defaults(), +}) + +-- stairs:stair_blackstone +stairs.register_stair_and_slab("blackstone", "multitest:blackstone", + {cracky=3, stone=1}, + {"multitest_blackstone.png"}, + "Blackstone Stairs", + "Blackstone Slab", nil) + +stairs.register_stair_and_slab("blackcobble", "multitest:blackcobble", + {cracky=3, stone=1}, + {"multitest_blackcobble.png"}, + "Black Cobble Stairs", + "Black Cobble Slab", nil) + +stairs.register_stair_and_slab("blackstone_bricks", "multitest:blackstone_brick", + {cracky=3, stone=1}, + {"multitest_blackstone_brick.png"}, + "Blackstonestone brick Stairs", + "Blackstone Brick Slab", nil) + +stairs.register_stair_and_slab("blackstone_paved", "multitest:blackstone_paved", + {cracky=3, stone=1}, + {"multitest_blackstone_paved.png"}, + "Paved Blackstone Stairs", + "Paved Blackstone Slab", nil) + +-- others +for i, v in ipairs(multitest.colors) do + minetest.register_node("multitest:carpet_"..v, { + tiles = {"wool_"..v..".png"}, + description = multitest.colornames[i].."Carpet", + groups = {oddly_breakable_by_hand=2,flammable=3}, + drawtype="nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5}, + } + } + }) +end + +minetest.register_node("multitest:door_mat", { + description = "Door Mat", + tiles = {"multitest_door_mat.png"}, + inventory_image = "multitest_door_mat.png", + wield_image = "multitest_door_mat.png", + groups = {oddly_breakable_by_hand=2,flammable=3}, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.363675, 0.5, -0.454674, 0.426703}, + } + } +}) + +minetest.register_node("multitest:sponge_block", { + description = "Sponge block", + tiles = {"multitest_sponge_block.png"}, + groups = {oddly_breakable_by_hand=3,}, +}) diff --git a/mods/multitest/sounds/shears.ogg b/mods/multitest/sounds/shears.ogg new file mode 100755 index 00000000..198aec4a Binary files /dev/null and b/mods/multitest/sounds/shears.ogg differ diff --git a/mods/multitest/textures/multitest_andesite.png b/mods/multitest/textures/multitest_andesite.png new file mode 100755 index 00000000..739f0dad Binary files /dev/null and b/mods/multitest/textures/multitest_andesite.png differ diff --git a/mods/multitest/textures/multitest_andesite_smooth.png b/mods/multitest/textures/multitest_andesite_smooth.png new file mode 100755 index 00000000..2fb5afa1 Binary files /dev/null and b/mods/multitest/textures/multitest_andesite_smooth.png differ diff --git a/mods/multitest/textures/multitest_blackcobble.png b/mods/multitest/textures/multitest_blackcobble.png new file mode 100755 index 00000000..dd008d75 Binary files /dev/null and b/mods/multitest/textures/multitest_blackcobble.png differ diff --git a/mods/multitest/textures/multitest_blackstone.png b/mods/multitest/textures/multitest_blackstone.png new file mode 100755 index 00000000..3464c09d Binary files /dev/null and b/mods/multitest/textures/multitest_blackstone.png differ diff --git a/mods/multitest/textures/multitest_blackstone_brick.png b/mods/multitest/textures/multitest_blackstone_brick.png new file mode 100755 index 00000000..d9a9ead6 Binary files /dev/null and b/mods/multitest/textures/multitest_blackstone_brick.png differ diff --git a/mods/multitest/textures/multitest_blackstone_paved.png b/mods/multitest/textures/multitest_blackstone_paved.png new file mode 100755 index 00000000..34d76a45 Binary files /dev/null and b/mods/multitest/textures/multitest_blackstone_paved.png differ diff --git a/mods/multitest/textures/multitest_checkered_floor.png b/mods/multitest/textures/multitest_checkered_floor.png new file mode 100755 index 00000000..67638bff Binary files /dev/null and b/mods/multitest/textures/multitest_checkered_floor.png differ diff --git a/mods/multitest/textures/multitest_diorite.png b/mods/multitest/textures/multitest_diorite.png new file mode 100755 index 00000000..8a244a1d Binary files /dev/null and b/mods/multitest/textures/multitest_diorite.png differ diff --git a/mods/multitest/textures/multitest_diorite_smooth.png b/mods/multitest/textures/multitest_diorite_smooth.png new file mode 100755 index 00000000..66c0bd7d Binary files /dev/null and b/mods/multitest/textures/multitest_diorite_smooth.png differ diff --git a/mods/multitest/textures/multitest_door_mat.png b/mods/multitest/textures/multitest_door_mat.png new file mode 100755 index 00000000..9b5d0827 Binary files /dev/null and b/mods/multitest/textures/multitest_door_mat.png differ diff --git a/mods/multitest/textures/multitest_granite.png b/mods/multitest/textures/multitest_granite.png new file mode 100755 index 00000000..4a65da2b Binary files /dev/null and b/mods/multitest/textures/multitest_granite.png differ diff --git a/mods/multitest/textures/multitest_granite_smooth.png b/mods/multitest/textures/multitest_granite_smooth.png new file mode 100755 index 00000000..3a0b5817 Binary files /dev/null and b/mods/multitest/textures/multitest_granite_smooth.png differ diff --git a/mods/multitest/textures/multitest_handle_grip.png b/mods/multitest/textures/multitest_handle_grip.png new file mode 100755 index 00000000..7ad95719 Binary files /dev/null and b/mods/multitest/textures/multitest_handle_grip.png differ diff --git a/mods/multitest/textures/multitest_hayblock.png b/mods/multitest/textures/multitest_hayblock.png new file mode 100755 index 00000000..34532ff9 Binary files /dev/null and b/mods/multitest/textures/multitest_hayblock.png differ diff --git a/mods/multitest/textures/multitest_hayblock_top.png b/mods/multitest/textures/multitest_hayblock_top.png new file mode 100755 index 00000000..2e607ab7 Binary files /dev/null and b/mods/multitest/textures/multitest_hayblock_top.png differ diff --git a/mods/multitest/textures/multitest_lamp.png b/mods/multitest/textures/multitest_lamp.png new file mode 100755 index 00000000..339b832f Binary files /dev/null and b/mods/multitest/textures/multitest_lamp.png differ diff --git a/mods/multitest/textures/multitest_moss_stone.png b/mods/multitest/textures/multitest_moss_stone.png new file mode 100755 index 00000000..b4553611 Binary files /dev/null and b/mods/multitest/textures/multitest_moss_stone.png differ diff --git a/mods/multitest/textures/multitest_moss_stonebrick.png b/mods/multitest/textures/multitest_moss_stonebrick.png new file mode 100755 index 00000000..f83895a3 Binary files /dev/null and b/mods/multitest/textures/multitest_moss_stonebrick.png differ diff --git a/mods/multitest/textures/multitest_rubber.png b/mods/multitest/textures/multitest_rubber.png new file mode 100755 index 00000000..4a2db625 Binary files /dev/null and b/mods/multitest/textures/multitest_rubber.png differ diff --git a/mods/multitest/textures/multitest_rubber_raw.png b/mods/multitest/textures/multitest_rubber_raw.png new file mode 100755 index 00000000..000601f3 Binary files /dev/null and b/mods/multitest/textures/multitest_rubber_raw.png differ diff --git a/mods/multitest/textures/multitest_rubberblock.png b/mods/multitest/textures/multitest_rubberblock.png new file mode 100755 index 00000000..7848375b Binary files /dev/null and b/mods/multitest/textures/multitest_rubberblock.png differ diff --git a/mods/multitest/textures/multitest_sandstone_carved.png b/mods/multitest/textures/multitest_sandstone_carved.png new file mode 100755 index 00000000..15dca618 Binary files /dev/null and b/mods/multitest/textures/multitest_sandstone_carved.png differ diff --git a/mods/multitest/textures/multitest_sandstone_carved_top.png b/mods/multitest/textures/multitest_sandstone_carved_top.png new file mode 100755 index 00000000..bd9cb869 Binary files /dev/null and b/mods/multitest/textures/multitest_sandstone_carved_top.png differ diff --git a/mods/multitest/textures/multitest_scraper.png b/mods/multitest/textures/multitest_scraper.png new file mode 100755 index 00000000..ceccc6ec Binary files /dev/null and b/mods/multitest/textures/multitest_scraper.png differ diff --git a/mods/multitest/textures/multitest_shears.png b/mods/multitest/textures/multitest_shears.png new file mode 100755 index 00000000..d4c9dae9 Binary files /dev/null and b/mods/multitest/textures/multitest_shears.png differ diff --git a/mods/multitest/textures/multitest_sponge_block.png b/mods/multitest/textures/multitest_sponge_block.png new file mode 100755 index 00000000..ad021b4b Binary files /dev/null and b/mods/multitest/textures/multitest_sponge_block.png differ diff --git a/mods/multitest/textures/multitest_stone_shears.png b/mods/multitest/textures/multitest_stone_shears.png new file mode 100755 index 00000000..79a53f34 Binary files /dev/null and b/mods/multitest/textures/multitest_stone_shears.png differ diff --git a/mods/multitest/textures/multitest_wood_shears.png b/mods/multitest/textures/multitest_wood_shears.png new file mode 100755 index 00000000..537669b0 Binary files /dev/null and b/mods/multitest/textures/multitest_wood_shears.png differ diff --git a/mods/name_restrictions/.gitignore b/mods/name_restrictions/.gitignore new file mode 100644 index 00000000..5236e1e4 --- /dev/null +++ b/mods/name_restrictions/.gitignore @@ -0,0 +1,2 @@ +*~ + diff --git a/mods/name_restrictions/init.lua b/mods/name_restrictions/init.lua new file mode 100644 index 00000000..64d8538f --- /dev/null +++ b/mods/name_restrictions/init.lua @@ -0,0 +1,228 @@ +-- name_restrictions mod by ShadowNinja +-- License: WTFPL + +---------------------------- +-- Restriction exemptions -- +---------------------------- +-- For legitimate player names that are caught by the filters. + +local exemptions = {} +local temp = minetest.setting_get("name_restrictions.exemptions") +temp = temp and temp:split() or {} +for _, allowed_name in pairs(temp) do + exemptions[allowed_name] = true +end +temp = nil +-- Exempt server owner +exemptions[minetest.setting_get("name")] = true +exemptions["singleplayer"] = true + +--------------------- +-- Simple matching -- +--------------------- + +local disallowed = { + ["^guest[0-9]+"] = "Guest accounts are disallowed on this server." .. + " Please choose a proper name and try again.", + ["[4a]dm[1il]n"] = "Misleading name." .. + " Please choose a proper name and try again.", + ["[0o]wn[e3]r"] = "Misleading name." .. + " Please choose a proper name and try again.", + ["^[0-9]+$"] = "All-numeric names are disallowed on this server." .. + " Please choose a proper name and try again.", + ["[0-9].-[0-9].-[0-9].-[0-9].-[0-9].-[0-9]"] = "Too many numbers in your name (must be 5 at most)." .. + " Please choose a proper name and try again.", +} + +minetest.register_on_prejoinplayer(function(name, ip) + local lname = name:lower() + for re, reason in pairs(disallowed) do + if lname:find(re) then + return reason + end + end +end) + + +------------------------ +-- Case-insensitivity -- +------------------------ + +minetest.register_on_prejoinplayer(function(name, ip) + local lname = name:lower() + for iname, data in pairs(minetest.auth_table) do + if iname:lower() == lname and iname ~= name then + return "Sorry, someone else is already using this" + .." name. Please pick another name." + .." Another posibility is that you used the" + .." wrong case for your name." + end + end +end) + +-- Compatability, for old servers with conflicting players +minetest.register_chatcommand("choosecase", { + description = "Choose the casing that a player name should have", + params = "", + privs = {server = true}, + func = function(name, params) + local lname = params:lower() + local worldpath = minetest.get_worldpath() + for iname, data in pairs(minetest.auth_table) do + if iname:lower() == lname and iname ~= params then + minetest.auth_table[iname] = nil + assert(not iname:find("[/\\]")) + os.remove(worldpath .. "/players/" .. iname) + end + end + return true, "Done." + end, +}) + + +------------------------ +-- Anti-impersonation -- +------------------------ +-- Prevents names that are too similar to annother player's name. + +local similar_chars = { + -- Only A-Z, a-z, 1-9, dash, and underscore are allowed in playernames + "A4", + "B8", + "COco0", + "Ee3", + "Gg69", + "ILil1", + "S5", + "Tt7", + "Zz2", +} + +-- Map of characters to a regex of similar characters +local char_map = {} +for _, str in pairs(similar_chars) do + for c in str:gmatch(".") do + if not char_map[c] then + char_map[c] = str + else + char_map[c] = char_map[c] .. str + end + end +end + +for c, str in pairs(char_map) do + char_map[c] = "[" .. char_map[c] .."]" +end + +-- Characters to match for, containing all characters +local all_chars = "[" +for _, str in pairs(similar_chars) do + all_chars = all_chars .. str +end +all_chars = all_chars .. "]" + + +minetest.register_on_prejoinplayer(function(name, ip) + if exemptions[name] then return end + + -- Generate a regular expression to match all similar names + local re = name:gsub(all_chars, char_map) + re = "^[_-]*" .. re .. "[_-]*$" + + for authName, _ in pairs(minetest.auth_table) do + if authName ~= name and authName:match(re) then + return "Your name is too similar to another player's name." + end + end +end) + + + +----------------- +-- Name length -- +----------------- + +local min_name_len = tonumber(minetest.setting_get("name_restrictions.minimum_name_length")) or 2 +local max_name_len = tonumber(minetest.setting_get("name_restrictions.maximum_name_length")) or 17 + +minetest.register_on_prejoinplayer(function(name, ip) + if exemptions[name] then return end + + if #name < min_name_len then + return "Your player name is too short" + .. " (" .. #name .. " characters, must be " .. min_name_len .. " characters at least)." + .. " Please try a longer name." + end + + if #name > max_name_len then + return "Your player name is too long" + .. " (" .. #name .. " characters, must be " .. max_name_len .. " characters at most)." + .. " Please try a shorter name." + end +end) + + +---------------------- +-- Pronounceability -- +---------------------- + +-- Original implementation (in Python) by sfan5 +local function pronounceable(pronounceability, text) + local pronounceable = 0 + local nonpronounceable = 0 + local cn = 0 + local lastc = "" + for c in text:lower():gmatch(".") do + if c:find("[aeiou0-9_-]") then + if not c:find("[0-9]") then + if cn > 2 then + nonpronounceable = nonpronounceable + 1 + else + pronounceable = pronounceable + 1 + end + end + cn = 0 + else + if cn == 1 and lastc == c and lastc ~= 's' then + nonpronounceable = nonpronounceable + 1 + cn = 0 + end + if cn > 2 then + nonpronounceable = nonpronounceable + 1 + cn = 0 + end + if lastc:find("[aeiou]") then + pronounceable = pronounceable + 1 + cn = 0 + end + if not (c == "r" and lastc:find("[aipfom]")) and + not (lastc == "c" and c == "h") then + cn = cn + 1 + end + end + lastc = c + end + if cn > 0 then + nonpronounceable = nonpronounceable + 1 + end + return pronounceable * pronounceability >= nonpronounceable +end + +-- Pronounceability factor: +-- nil = Checking disabled. +-- 0 = Everything's unpronounceable. +-- 0.5 = Strict checking. +-- 1 = Normal checking. +-- 2 = Relaxed checking. +local pronounceability = tonumber(minetest.setting_get("name_restrictions.pronounceability")) +if pronounceability then + minetest.register_on_prejoinplayer(function(name, ip) + if exemptions[name] then return end + + if not pronounceable(pronounceability, name) then + return "Your player name does not seem to be pronounceable." + .." Please choose a more pronounceable name." + end + end) +end + diff --git a/mods/names_per_ip/depends.txt b/mods/names_per_ip/depends.txt new file mode 100755 index 00000000..e69de29b diff --git a/mods/names_per_ip/init.lua b/mods/names_per_ip/init.lua new file mode 100755 index 00000000..d3c2b00e --- /dev/null +++ b/mods/names_per_ip/init.lua @@ -0,0 +1,119 @@ +minetest.register_privilege("whois", { + description = "Allows player to see other player IPs"}) + +-- Created by Krock to stop mass-account-creators +-- License: WTFPL + +ipnames = {} +ipnames.data = {} +ipnames.tmp_data = {} +ipnames.changes = false +ipnames.save_interval = 120 +ipnames.save_time = 0 +ipnames.file = minetest.get_worldpath().."/ipnames.txt" + +ipnames.name_per_ip_limit = tonumber(minetest.setting_get("max_names_per_ip")) or 5 + +-- Get accounts self: +minetest.register_chatcommand("whois", { + description = "Gets all players who have the same IP as the specified player", + privs = {whois = true}, + func = function(name, param) + if not ipnames.data[param] then + minetest.chat_send_player(name, "The player \"" .. param .. "\" did not join yet.") + return + end + + local ip = ipnames.data[param] + local names = ""; + for k, v in pairs(ipnames.data) do + if v == ip then + if names ~= "" then + names = names .. ", " .. k + else + names = names .. " " .. k + end + end + end + minetest.chat_send_player(name, "Players for IP address " .. ip .. ": " .. names) + end, +}) + +-- Get IP if player tries to join, ban if there are too much names per IP: +minetest.register_on_prejoinplayer(function(name, ip) + -- Only stop new accounts: + ipnames.tmp_data[name] = ip + if not ipnames.data[name] then + local count = 1 + local names = "" + for k, v in pairs(ipnames.data) do + if v == ip then + count = count + 1 + names = names .. k .. ", " + end + end + + if count <= ipnames.name_per_ip_limit and count > 1 then + minetest.log("action", name .. " now has " .. count .. " accounts. Other accounts: " .. names) + end + + if count > ipnames.name_per_ip_limit then + ipnames.tmp_data[name] = nil + if tostring(ip) ~= "127.0.0.1" then + return ("\nYou exceeded the limit of accounts (" .. ipnames.name_per_ip_limit .. + ").\nYou already have the following accounts:\n" .. names) + end + end + end +end) + +-- Save IP if player joined: +minetest.register_on_joinplayer(function(player) + local name = player:get_player_name() + ipnames.data[name] = ipnames.tmp_data[name] + ipnames.tmp_data[name] = nil + ipnames.changes = true +end) + +function ipnames.load_data() + local file = io.open(ipnames.file, "r") + if not file then + return + end + for line in file:lines() do + if line ~= "" then + local data = line:split("|") + if #data >= 2 then + ipnames.data[data[1]] = data[2] + end + end + end + io.close(file) +end + +function ipnames.save_data() + if not ipnames.changes then + return + end + ipnames.changes = false + local file = io.open(ipnames.file, "w") + for i, v in pairs(ipnames.data) do + if v ~= nil then + file:write(i .. "|" .. v .. "\n") + end + end + io.close(file) +end + +minetest.register_globalstep(function(t) + ipnames.save_time = ipnames.save_time + t + if ipnames.save_time < ipnames.save_interval then + return + end + ipnames.save_time = 0 + ipnames.save_data() +end) + +minetest.register_on_shutdown(function() ipnames.save_data() end) + +minetest.after(3, function() ipnames.load_data() end) diff --git a/mods/nether/.gitignore b/mods/nether/.gitignore new file mode 100644 index 00000000..d9c069a6 --- /dev/null +++ b/mods/nether/.gitignore @@ -0,0 +1,4 @@ +## Generic ignorable patterns and files +*~ +.*.swp +debug.txt diff --git a/mods/nether/README.txt b/mods/nether/README.txt new file mode 100755 index 00000000..570b021b --- /dev/null +++ b/mods/nether/README.txt @@ -0,0 +1,10 @@ +This is a modified version of lkjoel's nether mod. +Look here if you want to see the differences: +https://github.com/HybridDog/minetest-nether/compare/lkjoel:master...master + +this happens really selden to me +http://i.imgur.com/pMZYqt9.png + + +TODO: +— finish nether forest diff --git a/mods/nether/depends.txt b/mods/nether/depends.txt new file mode 100755 index 00000000..c5f1f379 --- /dev/null +++ b/mods/nether/depends.txt @@ -0,0 +1,2 @@ +default +stairs? diff --git a/mods/nether/init.lua b/mods/nether/init.lua new file mode 100755 index 00000000..fc0d887d --- /dev/null +++ b/mods/nether/init.lua @@ -0,0 +1,422 @@ +-- Minetest 0.4 Mod: Nether + +local NETHER_DEPTH = -5000 + +minetest.register_node("nether:portal", { + description = "Nether Portal", + tiles = { + "nether_transparent.png", + "nether_transparent.png", + "nether_transparent.png", + "nether_transparent.png", + { + name = "nether_portal.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 0.5, + }, + }, + { + name = "nether_portal.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 0.5, + }, + }, + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + use_texture_alpha = true, + walkable = false, + digable = false, + pointable = false, + buildable_to = false, + drop = "", + light_source = 5, + post_effect_color = {a=180, r=128, g=0, b=128}, + alpha = 192, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.1, 0.5, 0.5, 0.1}, + }, + }, + groups = {not_in_creative_inventory=1} +}) + +local function build_portal(pos, target) + local p = {x=pos.x-1, y=pos.y-1, z=pos.z} + local p1 = {x=pos.x-1, y=pos.y-1, z=pos.z} + local p2 = {x=p1.x+3, y=p1.y+4, z=p1.z} + for i=1,4 do + minetest.set_node(p, {name="default:obsidian"}) + p.y = p.y+1 + end + for i=1,3 do + minetest.set_node(p, {name="default:obsidian"}) + p.x = p.x+1 + end + for i=1,4 do + minetest.set_node(p, {name="default:obsidian"}) + p.y = p.y-1 + end + for i=1,3 do + minetest.set_node(p, {name="default:obsidian"}) + p.x = p.x-1 + end + for x=p1.x,p2.x do + for y=p1.y,p2.y do + p = {x=x, y=y, z=p1.z} + if not (x == p1.x or x == p2.x or y==p1.y or y==p2.y) then + minetest.set_node(p, {name="nether:portal", param2=0}) + end + local meta = minetest.get_meta(p) + meta:set_string("p1", minetest.pos_to_string(p1)) + meta:set_string("p2", minetest.pos_to_string(p2)) + meta:set_string("target", minetest.pos_to_string(target)) + + if y ~= p1.y then + for z=-2,2 do + if z ~= 0 then + p.z = p.z+z + if minetest.registered_nodes[minetest.get_node(p).name].is_ground_content then + minetest.remove_node(p) + end + p.z = p.z-z + end + end + end + + end + end +end + +minetest.register_abm({ + nodenames = {"nether:portal"}, + interval = 1, + chance = 2, + action = function(pos, node) + minetest.add_particlespawner( + 32, --amount + 4, --time + {x=pos.x-0.25, y=pos.y-0.25, z=pos.z-0.25}, --minpos + {x=pos.x+0.25, y=pos.y+0.25, z=pos.z+0.25}, --maxpos + {x=-0.8, y=-0.8, z=-0.8}, --minvel + {x=0.8, y=0.8, z=0.8}, --maxvel + {x=0,y=0,z=0}, --minacc + {x=0,y=0,z=0}, --maxacc + 0.5, --minexptime + 1, --maxexptime + 1, --minsize + 2, --maxsize + false, --collisiondetection + "nether_particle.png" --texture + ) + for _,obj in ipairs(minetest.get_objects_inside_radius(pos, 1)) do + if obj:is_player() then + local meta = minetest.get_meta(pos) + local target = minetest.string_to_pos(meta:get_string("target")) + if target then + minetest.after(3, function(obj, pos, target) + local objpos = obj:getpos() + objpos.y = objpos.y+0.1 -- Fix some glitches at -8000 + if minetest.get_node(objpos).name ~= "nether:portal" then + return + end + + obj:setpos(target) + + local function check_and_build_portal(pos, target) + local n = minetest.get_node_or_nil(target) + if n and n.name ~= "nether:portal" then + build_portal(target, pos) + minetest.after(2, check_and_build_portal, pos, target) + minetest.after(4, check_and_build_portal, pos, target) + elseif not n then + minetest.after(1, check_and_build_portal, pos, target) + end + end + + minetest.after(1, check_and_build_portal, pos, target) + + end, obj, pos, target) + end + end + end + end, +}) + +local function move_check(p1, max, dir) + local p = {x=p1.x, y=p1.y, z=p1.z} + local d = math.abs(max-p1[dir]) / (max-p1[dir]) + while p[dir] ~= max do + p[dir] = p[dir] + d + if minetest.get_node(p).name ~= "default:obsidian" then + return false + end + end + return true +end + +local function check_portal(p1, p2) + if p1.x ~= p2.x then + if not move_check(p1, p2.x, "x") then + return false + end + if not move_check(p2, p1.x, "x") then + return false + end + elseif p1.z ~= p2.z then + if not move_check(p1, p2.z, "z") then + return false + end + if not move_check(p2, p1.z, "z") then + return false + end + else + return false + end + + if not move_check(p1, p2.y, "y") then + return false + end + if not move_check(p2, p1.y, "y") then + return false + end + + return true +end + +local function is_portal(pos) + for d=-3,3 do + for y=-4,4 do + local px = {x=pos.x+d, y=pos.y+y, z=pos.z} + local pz = {x=pos.x, y=pos.y+y, z=pos.z+d} + if check_portal(px, {x=px.x+3, y=px.y+4, z=px.z}) then + return px, {x=px.x+3, y=px.y+4, z=px.z} + end + if check_portal(pz, {x=pz.x, y=pz.y+4, z=pz.z+3}) then + return pz, {x=pz.x, y=pz.y+4, z=pz.z+3} + end + end + end +end + +local function make_portal(pos) + local p1, p2 = is_portal(pos) + if not p1 or not p2 then + return false + end + + for d=1,2 do + for y=p1.y+1,p2.y-1 do + local p + if p1.z == p2.z then + p = {x=p1.x+d, y=y, z=p1.z} + else + p = {x=p1.x, y=y, z=p1.z+d} + end + if minetest.get_node(p).name ~= "air" then + return false + end + end + end + + local param2 + if p1.z == p2.z then param2 = 0 else param2 = 1 end + + local target = {x=p1.x, y=p1.y, z=p1.z} + target.x = target.x + 1 + if target.y < NETHER_DEPTH then + target.y = math.random(-50, 20) + else + target.y = NETHER_DEPTH - math.random(500, 1500) + end + + for d=0,3 do + for y=p1.y,p2.y do + local p = {} + if param2 == 0 then p = {x=p1.x+d, y=y, z=p1.z} else p = {x=p1.x, y=y, z=p1.z+d} end + if minetest.get_node(p).name == "air" then + minetest.set_node(p, {name="nether:portal", param2=param2}) + end + local meta = minetest.get_meta(p) + meta:set_string("p1", minetest.pos_to_string(p1)) + meta:set_string("p2", minetest.pos_to_string(p2)) + meta:set_string("target", minetest.pos_to_string(target)) + end + end + return true +end + +minetest.register_node(":default:obsidian", { + description = "Obsidian", + tiles = {"default_obsidian.png"}, + is_ground_content = true, + sounds = default.node_sound_stone_defaults(), + groups = {cracky=1,level=2}, + + on_destruct = function(pos) + local meta = minetest.get_meta(pos) + local p1 = minetest.string_to_pos(meta:get_string("p1")) + local p2 = minetest.string_to_pos(meta:get_string("p2")) + local target = minetest.string_to_pos(meta:get_string("target")) + if not p1 or not p2 then + return + end + for x=p1.x,p2.x do + for y=p1.y,p2.y do + for z=p1.z,p2.z do + local nn = minetest.get_node({x=x,y=y,z=z}).name + if nn == "default:obsidian" or nn == "nether:portal" then + if nn == "nether:portal" then + minetest.remove_node({x=x,y=y,z=z}) + end + local m = minetest.get_meta({x=x,y=y,z=z}) + m:set_string("p1", "") + m:set_string("p2", "") + m:set_string("target", "") + end + end + end + end + meta = minetest.get_meta(target) + if not meta then + return + end + p1 = minetest.string_to_pos(meta:get_string("p1")) + p2 = minetest.string_to_pos(meta:get_string("p2")) + if not p1 or not p2 then + return + end + for x=p1.x,p2.x do + for y=p1.y,p2.y do + for z=p1.z,p2.z do + local nn = minetest.get_node({x=x,y=y,z=z}).name + if nn == "default:obsidian" or nn == "nether:portal" then + if nn == "nether:portal" then + minetest.remove_node({x=x,y=y,z=z}) + end + local m = minetest.get_meta({x=x,y=y,z=z}) + m:set_string("p1", "") + m:set_string("p2", "") + m:set_string("target", "") + end + end + end + end + end, +}) + +minetest.register_craftitem(":default:mese_crystal_fragment", { + description = "Mese Crystal Fragment", + inventory_image = "default_mese_crystal_fragment.png", + on_place = function(stack,_, pt) + if pt.under and minetest.get_node(pt.under).name == "default:obsidian" then + local done = make_portal(pt.under) + if done and not minetest.setting_getbool("creative_mode") then + stack:take_item() + end + end + return stack + end, +}) + +minetest.register_node("nether:rack", { + description = "Netherrack", + tiles = {"nether_rack.png"}, + is_ground_content = true, + drop = { + max_items = 1, + items = {{ + rarity = 3, + items = {"nether:rack"}, + }} + }, + groups = {cracky=3,level=2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("nether:sand", { + description = "Nethersand", + tiles = {"nether_sand.png"}, + is_ground_content = true, + groups = {crumbly=3,level=2,falling_node=1}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_gravel_footstep", gain=0.45}, + }), +}) + +minetest.register_node("nether:glowstone", { + description = "Glowstone", + tiles = {"nether_glowstone.png"}, + is_ground_content = true, + light_source = 13, + groups = {cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("nether:brick", { + description = "Nether Brick", + tiles = {"nether_brick.png"}, + groups = {cracky=2,level=2}, + sounds = default.node_sound_stone_defaults(), +}) + +local air = minetest.get_content_id("air") +local stone_with_coal = minetest.get_content_id("default:stone_with_coal") +local stone_with_iron = minetest.get_content_id("default:stone_with_iron") +local stone_with_mese = minetest.get_content_id("default:stone_with_mese") +local stone_with_diamond = minetest.get_content_id("default:stone_with_diamond") +local stone_with_gold = minetest.get_content_id("default:stone_with_gold") +local stone_with_copper = minetest.get_content_id("default:stone_with_copper") +local gravel = minetest.get_content_id("default:gravel") +local dirt = minetest.get_content_id("default:dirt") +local sand = minetest.get_content_id("default:sand") +local cobble = minetest.get_content_id("default:cobble") +local mossycobble = minetest.get_content_id("default:mossycobble") +local stair_cobble = minetest.get_content_id("stairs:stair_cobble") +local lava_source = minetest.get_content_id("default:lava_source") +local lava_flowing = minetest.get_content_id("default:lava_flowing") +local glowstone = minetest.get_content_id("nether:glowstone") +local nethersand = minetest.get_content_id("nether:sand") +local netherbrick = minetest.get_content_id("nether:brick") +local netherrack = minetest.get_content_id("nether:rack") + +minetest.register_on_generated(function(minp, maxp, seed) + if maxp.y > NETHER_DEPTH then + return + end + local vm, emin, emax = minetest.get_mapgen_object("voxelmanip") + local data = vm:get_data() + local area = VoxelArea:new{MinEdge=emin, MaxEdge=emax} + for i in area:iterp(minp, maxp) do + local d = data[i] + if d == air or d == stone_with_coal or d == stone_with_iron then + data[i] = air + elseif d == stone_with_mese or d == stone_with_diamond or d == lava_source then + data[i] = lava_source + elseif d == lava_flowing then + -- nothing + elseif d == stone_with_gold then + data[i] = glowstone + elseif d == stone_with_copper or d == gravel or d == dirt or d == sand then + data[i] = nethersand + elseif d == cobble or d == mossycobble or d == stair_cobble then + data[i] = netherbrick + else + data[i] = netherrack + end + end + vm:set_data(data) + --vm:set_lighting({day=0, night=0}) + vm:calc_lighting() + vm:update_liquids() + vm:write_to_map() +end) diff --git a/mods/nether/modpack.txt b/mods/nether/modpack.txt new file mode 100644 index 00000000..e69de29b diff --git a/mods/nether/nether/crafting.lua b/mods/nether/nether/crafting.lua new file mode 100644 index 00000000..43bceb91 --- /dev/null +++ b/mods/nether/nether/crafting.lua @@ -0,0 +1,210 @@ +minetest.register_craft({ + output = "nether:fim", + recipe = { + {"nether:shroom_head"}, + {"nether:fruit_no_leaf"}, + {"nether:shroom_head"}, + } +}) + +minetest.register_craft({ + output = "nether:fruit_leaves", + recipe = { + {"nether:fruit_leaf", "nether:fruit_leaf", "nether:fruit_leaf"}, + {"nether:fruit_leaf", "nether:fruit_leaf", "nether:fruit_leaf"}, + {"nether:fruit_leaf", "nether:fruit_leaf", "nether:fruit_leaf"}, + } +}) + +minetest.register_craft({ + output = "nether:pick_mushroom", + recipe = { + {"nether:shroom_head", "nether:shroom_head", "nether:shroom_head"}, + {"", "nether:shroom_stem", ""}, + {"", "nether:shroom_stem", ""}, + } +}) + +minetest.register_craft({ + output = "nether:pick_wood", + recipe = { + {"nether:wood_cooked", "nether:wood_cooked", "nether:wood_cooked"}, + {"", "group:stick", ""}, + {"", "group:stick", ""}, + } +}) + +for _,m in pairs({"netherrack", "netherrack_blue", "white"}) do + local input = "nether:"..m + + minetest.register_craft({ + output = "nether:pick_"..m, + recipe = { + {input, input, input}, + {"", "group:stick", ""}, + {"", "group:stick", ""}, + } + }) + + minetest.register_craft({ + output = "nether:axe_"..m, + recipe = { + {input, input}, + {input, "group:stick"}, + {"", "group:stick"}, + } + }) + + minetest.register_craft({ + output = "nether:sword_"..m, + recipe = { + {input}, + {input}, + {"group:stick"}, + } + }) + + minetest.register_craft({ + output = "nether:shovel_"..m, + recipe = { + {input}, + {"group:stick"}, + {"group:stick"}, + } + }) +end + +minetest.register_craft({ + output = "nether:netherrack_brick 4", + recipe = { + {"nether:netherrack", "nether:netherrack"}, + {"nether:netherrack", "nether:netherrack"}, + } +}) + +minetest.register_craft({ + output = "nether:netherrack_brick_black 4", + recipe = { + {"nether:netherrack_black", "nether:netherrack_black"}, + {"nether:netherrack_black", "nether:netherrack_black"}, + } +}) + +minetest.register_craft({ + output = "nether:netherrack_brick_blue 4", + recipe = { + {"nether:netherrack_blue", "nether:netherrack_blue"}, + {"nether:netherrack_blue", "nether:netherrack_blue"}, + } +}) + +minetest.register_craft({ + output = "default:furnace", + recipe = { + {"nether:netherrack_brick", "nether:netherrack_brick", "nether:netherrack_brick"}, + {"nether:netherrack_brick", "", "nether:netherrack_brick"}, + {"nether:netherrack_brick", "nether:netherrack_brick", "nether:netherrack_brick"}, + } +}) + +minetest.register_craft({ + output = "nether:extractor", + recipe = { + {"nether:netherrack_brick", "nether:blood_top_cooked", "nether:netherrack_brick"}, + {"nether:blood_cooked", "nether:shroom_stem", "nether:blood_cooked"}, + {"nether:netherrack_brick", "nether:blood_stem_cooked", "nether:netherrack_brick"}, + } +}) + +minetest.register_craft({ + output = "nether:wood 4", + recipe = { + {"nether:blood_stem"}, + } +}) + +minetest.register_craft({ + output = "nether:wood_empty 4", + recipe = { + {"nether:blood_stem_empty"}, + } +}) + +minetest.register_craft({ + output = "nether:stick 4", + recipe = { + {"nether:wood_empty"}, + } +}) + +minetest.register_craft({ + output = "nether:forest_wood", + recipe = { + {"nether:forest_planks", "nether:forest_planks", "nether:forest_planks"}, + {"nether:forest_planks", "", "nether:forest_planks"}, + {"nether:forest_planks", "nether:forest_planks", "nether:forest_planks"}, + } +}) + +minetest.register_craft({ + output = "nether:forest_planks 8", + recipe = { + {"nether:forest_wood"}, + } +}) + +minetest.register_craft({ --crafting bad here, needs to become changed + output = "nether:forest_planks 7", + recipe = { + {"nether:tree"}, + }, + replacements = {{"nether:tree", "nether:bark 4"}}, +}) + +minetest.register_craft({ + output = "default:paper", + recipe = { + {"nether:grass_dried", "nether:grass_dried", "nether:grass_dried"}, + } +}) + + +minetest.register_craft({ + type = "cooking", + output = "default:coal", + recipe = "nether:tree", +}) + +minetest.register_craft({ + type = "cooking", + output = "nether:grass_dried", + recipe = "nether:grass", +}) + +minetest.register_craft({ + type = "cooking", + output = "nether:pearl", + recipe = "nether:fim", +}) + +minetest.register_craft({ + type = "cooking", + output = "nether:hotbed", + recipe = "nether:blood_extracted", +}) + +for _,i in ipairs({"nether:blood", "nether:blood_top", "nether:blood_stem", "nether:wood"}) do + local cooked = i.."_cooked" + + minetest.register_craft({ + type = "cooking", + output = cooked, + recipe = i, + }) + + minetest.register_craft({ + type = "fuel", + recipe = cooked, + burntime = 30, + }) +end diff --git a/mods/nether/nether/depends.txt b/mods/nether/nether/depends.txt new file mode 100644 index 00000000..06355e58 --- /dev/null +++ b/mods/nether/nether/depends.txt @@ -0,0 +1,4 @@ +default +glow +riesenpilz +stairs diff --git a/mods/nether/nether/guide.lua b/mods/nether/nether/guide.lua new file mode 100644 index 00000000..4bb9322d --- /dev/null +++ b/mods/nether/nether/guide.lua @@ -0,0 +1,383 @@ +local cube = minetest.inventorycube + +-- the content of the guide +local guide_infos = { + { + description = "mushroom", + {"text", "You can find the nether mushroom on the ground of the nether and on netherrack soil, it can be dug by hand."}, + {"y", -0.3}, + {"image", {1, 1, "riesenpilz_nether_shroom_side.png"}}, + {"y", 0.2}, + {"text", "If you drop it without holding aux1 (the fast key), you can split it into its stem and head:"}, + {"image", {1, 1, "nether_shroom_top.png", 1}}, + {"image", {1, 1, "nether_shroom_stem.png"}}, + {"y", 0.2}, + {"text", "You can get more mushrooms by using a netherrack soil:\n".. + "1. search a dark place and, if necessary, place netherrack with air about it\n".. + "2. right click with cooked blood onto the netherrack to make it soiled\n".. + "3. right click onto the netherrack soil with a nether mushroom head to add some spores\n".. + "4. dig the mushroom which grew after some time to make place for another one"}, + {"image", {1, 1, "riesenpilz_nether_shroom_side.png", 6, 0.12}}, + {"y", 1}, + {"image", {1, 1, "nether_netherrack.png^nether_netherrack_soil.png", 1.8}}, + {"image", {1, 1, "nether_hotbed.png", 1.3, -0.4}}, + {"image", {1, 1, "nether_netherrack.png^nether_netherrack_soil.png", 3.6}}, + {"image", {1, 1, "nether_shroom_top.png", 3.1, -0.5}}, + {"image", {1, 1, "nether_netherrack.png^nether_netherrack_soil.png", 6}}, + {"image", {1, 1, "nether_netherrack.png"}}, + }, + { + description = "tools", + {"text", "You can craft 5 types of tools in the nether, which (except the mushroom pick) require sticks to be crafted:"}, + {"y", 0.4}, + {"image", {1, 1, "nether_pick_mushroom.png"}}, + {"text", "strength: 1\n".. + "The mushroom pick needs mushroom stems and heads to be crafted."}, + {"y", 0.2}, + {"image", {1, 1, "nether_pick_wood.png"}}, + {"text", "strength: 2\n".. + "The nether wood pick can be crafted with cooked nether blood wood."}, + {"y", 0.2}, + {"image", {1, 1, "nether_axe_netherrack.png", 1}}, + {"image", {1, 1, "nether_shovel_netherrack.png", 2}}, + {"image", {1, 1, "nether_sword_netherrack.png", 3}}, + {"image", {1, 1, "nether_pick_netherrack.png"}}, + {"text", "strength: 3\n".. + "The red netherrack tools can be crafted with usual netherrack."}, + {"y", 0.2}, + {"image", {1, 1, "nether_axe_netherrack_blue.png", 1}}, + {"image", {1, 1, "nether_shovel_netherrack_blue.png", 2}}, + {"image", {1, 1, "nether_sword_netherrack_blue.png", 3}}, + {"image", {1, 1, "nether_pick_netherrack_blue.png"}}, + {"text", "strength: 3\n".. + "The blue netherrack tools can be crafted with blue netherrack."}, + {"y", 0.2}, + {"image", {1, 1, "nether_axe_white.png", 1}}, + {"image", {1, 1, "nether_shovel_white.png", 2}}, + {"image", {1, 1, "nether_sword_white.png", 3}}, + {"image", {1, 1, "nether_pick_white.png"}}, + {"text", "strength: 3\n".. + "The siwtonic tools can be crafted with the siwtonic ore."}, + }, + { + description = "blood structures", + {"text", "You can find blood structures on the ground and dig their nodes even with the bare hand."}, + {"y", 0.2}, + {"text", "One contains 4 kinds of blocks:"}, + {"image", {1, 1, cube("nether_blood.png"), 1}}, + {"image", {1, 1, + cube("nether_blood_top.png", "nether_blood.png^nether_blood_side.png", "nether_blood.png^nether_blood_side.png"), + 2}}, + {"image", {1, 1, "nether_fruit.png", 3}}, + {"image", {1, 1, cube("nether_blood_stem_top.png", "nether_blood_stem.png", "nether_blood_stem.png")}}, + {"text", "the blood stem, blood, blood head and nether fruit"}, + {"y", 0.2}, + {"text", "You can craft the stem to 4 blood wood:"}, + {"image", {1, 1, cube("nether_wood.png")}}, + {"y", 0.2}, + {"text", "The 4 blood nodes can be cooked and, except blood wood, their blood can be extracted."}, + }, + { + description = "fruit", + {"text", "You can find the nether fruit at blood structures and dig it even with the bare hand."}, + {"y", 0.05}, + {"image", {1, 1, "nether_fruit.png"}}, + {"text", "You can eat it to get a bit blood because of its acid effect:"}, + {"image", {1, 1, "nether_blood_extracted.png"}}, + {"y", 0.2}, + {"text", "If you eat it at the right place inside a portal, you teleport instead of getting blood."}, + {"y", 0.2}, + {"text", "If you drop it without holding aux1 (the fast key), you can split it into its fruit and leaf:"}, + {"image", {1, 1, "nether_fruit_leaf.png", 1}}, + {"image", {1, 1, "nether_fruit_no_leaf.png"}}, + {"y", 0.2}, + {"text", "9 fruit leaves can be crafted to a fruit leaves block and the fruit without leaf can be used for crafting a nether pearl."}, + {"y", 0.2}, + {"image", {1, 1, cube("nether_fruit_leaves.png")}}, + {"text", "fruit leaves block"}, + }, + { + description = "cooking", + {"text", "To get a furnace you need to dig at least 8 netherrack bricks.\n".. + "They can be found at pyramid like constructions and require at least a strength 1 nether pick to be dug.\n".. + "For crafting the furnace, use the netherrack bricks like cobble:"}, + {"y", 0.2}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png"), 0.5}}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png"), 1}}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png")}}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png"), 1}}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png")}}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png"), 0.5}}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png"), 1}}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png")}}, + {"y", 0.2}, + {"text", "To begin cooking stuff, you can use a mushroom or fruit.\n".. + "After that it's recommended to use cooked blood nodes."}, + {"y", 0.2}, + {"text", "Some nether items can be cooked:"}, + {"y", 0.1}, + {"image", {1, 1, cube("nether_blood_stem_top_cooked.png", "nether_blood_stem_cooked.png", "nether_blood_stem_cooked.png"), 0.35}}, + {"image", {1, 1, cube("nether_blood_cooked.png"), 1.6}}, + {"image", {1, 1, + cube("nether_blood_top_cooked.png", "nether_blood_cooked.png^nether_blood_side_cooked.png", "nether_blood_cooked.png^nether_blood_side_cooked.png"), + 2.9}}, + {"image", {1, 1, cube("nether_wood_cooked.png"), 4.3}}, + {"y", 1}, + {"text", "cooked blood stem, cooked blood, cooked blood head, cooked blood wood,"}, + {"y", 0.2}, + {"image", {1, 1, "nether_hotbed.png", 0.3}}, + {"image", {1, 1, "nether_pearl.png", 2}}, + {"y", 1}, + {"text", "cooked extracted blood and nether pearl"}, + }, + { + description = "extractor", + {"text", "Here you can find out information about the nether extractor."}, + {"y", 0.4}, + {"text", "Here you can see its craft recipe:"}, + {"y", 0.2}, + {"image", {0.5, 0.5, cube("nether_blood_top_cooked.png", "nether_blood_cooked.png^nether_blood_side_cooked.png", "nether_blood_cooked.png^nether_blood_side_cooked.png"), 0.5}}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png"), 1}}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png")}}, + {"image", {0.5, 0.5, cube("nether_blood_extractor.png"), 2.5}}, + {"image", {0.5, 0.5, "nether_shroom_stem.png", 0.5}}, + {"image", {0.5, 0.5, cube("nether_blood_cooked.png"), 1}}, + {"image", {0.5, 0.5, cube("nether_blood_cooked.png")}}, + {"image", {0.5, 0.5, cube("nether_blood_stem_top_cooked.png", "nether_blood_stem_cooked.png", "nether_blood_stem_cooked.png"), 0.5}}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png"), 1}}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png")}}, + {"y", 0.2}, + {"text", "You can extract blood from the blood nodes you get from the blood structure.\n".. + "You can also get blood with a nether fruit."}, + {"y", 0.2}, + {"text", "So you can use it:\n".. + "1. place it somewhere\n".. + "2. place blood blocks next to it (4 or less)\n".. + "3. right click with extracted blood onto it to power it\n".. + "4. take the new extracted blood and dig the extracted nodes"}, + {"y", 0.2}, + {"text", "Example (view from the top):"}, + {"y", 0.88}, + {"image", {1, 1, "nether_blood_stem_top.png", 0.82, -0.88}}, + {"image", {1, 1, "nether_blood.png", 1.63}}, + {"image", {1, 1, "nether_blood_extractor.png", 0.82}}, + {"image", {1, 1, "nether_blood_stem_top_empty.png", 3.82, -0.88}}, + {"image", {1, 1, "nether_blood_empty.png", 4.63}}, + {"image", {1, 1, "nether_blood_empty.png", 3.001}}, + {"image", {1, 1, "nether_blood_extractor.png", 3.82}}, + {"image", {1, 1, "nether_blood.png"}}, + {"image", {1, 1, "nether_blood.png", 0.82, -0.12}}, + {"image", {1, 1, "nether_blood_empty.png", 3.82, -0.12}}, + {"y", 1.2}, + {"text", "The empty blood stem can be crafted to empty nether wood, which can be crafted to nether sticks."}, + }, + { + description = "ores", + {"text", "You can find 5 types of ores:"}, + {"y", 0.4}, + {"image", {1, 1, cube("nether_netherrack_black.png"), 4}}, + {"image", {1, 1, cube("nether_netherrack.png")}}, + {"text", "The red netherrack is generated like stone and the black netherrack is generated like gravel.\n".. + "Both require at least a strength 2 nether pick to be dug."}, + {"y", 0.2}, + {"image", {1, 1, cube("nether_white.png"), 4}}, + {"image", {1, 1, cube("nether_netherrack_blue.png")}}, + {"text", "The blue netherrack is generated like diamond ore and the siwtonic ore is generated like mese blocks.\n".. + "Both require at least a strength 3 nether pick to be dug."}, + {"y", 0.2}, + {"image", {1, 1, cube("nether_netherrack_tiled.png"), 4}}, + {"image", {1, 1, cube("glow_stone.png")}}, + {"text", "The glow stone can be used for lighting and the tiled netherrack is generated like coal ore.\n".. + "Glow stone requires at least a strength 1 pick to be dug.\n".. + "Tiled netherrack requires at least a strength 2 nether pick to be dug."}, + }, + { + description = "vines", + {"text", "The nether vines can be fed with blood.\n".. + "They can be dug by hand and drop nether children."}, + {"image", {1, 1, "nether_vine.png"}}, + {"y", 0.2}, + {"text", "To let a nether child grow to a blood structure, place it at a dark place onto a blood structure head node."}, + {"image", {1, 1, "nether_sapling.png"}}, + {"y", -0.11}, + {"image", {1, 1, "nether_blood.png^nether_blood_side.png"}}, + }, + { + description = "pearl", + {"text", "The nether pearl can be thrown for teleporting.\n".. + "So cou can get one:"}, + {"y", 0.4}, + {"text", "At first you need to craft 2 mushroom heads and 1 nether fruit without leaf together:"}, + {"image", {1, 1, "nether_shroom_top.png"}}, + {"image", {1, 1, "nether_fim.png", 3}}, + {"image", {1, 1, "nether_fruit_no_leaf.png"}}, + {"image", {1, 1, "nether_shroom_top.png"}}, + {"y", 0.2}, + {"text", "Then you need to put the result into the furnance to cook it to a nether pearl:"}, + {"image", {1, 1, "nether_pearl.png"}}, + }, + { + description = "bricks", + {"text", "You can craft bricks of red, black and blue netherrack."}, + {"y", 0.4}, + {"image", {1, 1, cube("nether_netherrack_brick_black.png"), 1}}, + {"image", {1, 1, cube("nether_netherrack_brick_blue.png"), 2}}, + {"image", {1, 1, cube("nether_netherrack_brick.png")}}, + {"y", 0.2}, + {"text", "These bricks require at least a strength 1 nether pick to be dug."}, + {"y", 0.2}, + {"text", "Because the crafing recipe of bricks is well known, it's not shown here."}, + }, + { + description = "portal", + {"text", "Here you can find out how to built the nether portal."}, + {"y", 0.4}, + {"text", "A nether portal requires following nodes:"}, + {"y", 0.05}, + {"text", "21 empty nether wooden planks\n".. + "12 blue netherrack bricks\n".. + "12 black netherrack\n".. + "8 red netherrack\n".. + "8 cooked nether wood\n".. + "4 nether fruits\n".. + "2 siwtonic blocks"}, + {"y", 0.2}, + {"text", "It should look approximately like this one:"}, + {"image", {5.625, 6, "nether_teleporter.png", 0, -1.5}}, + {"y", 5.5}, + {"text", "You can activate it by standing in the middle on a siwtonic block and eating a nether fruit.\n".. + "Don't forget to take enough stuff with you to be able to build a portal back."}, + }, + { + description = "nether forest", + {"text", "The nether forest is generated in caves above the usual nether."}, + {"y", 0.2}, + {"text", "There you can find some plants:"}, + {"y", 0.2}, + {"image", {1, 1, "nether_grass_middle.png", 1}}, + {"image", {1, 1, "nether_grass_big.png", 2}}, + {"image", {1, 1, "nether_grass_small.png"}}, + {"y", 0.2}, + {"text", "The nether forest grass can be used to get paper.\n".. + "Just dig it, put the grass into the furnace and craft paper out of the dried grass.\n".. + "The recipe is similar to the one of crafting paper with papyrus."}, + {"y", 0.2}, + {"image", {1, 1, cube("nether_tree_top.png", "nether_tree.png", "nether_tree.png")}}, + {"text", "Nether trunks can be found at nether trees, you can craft nether wood out of them."}, + {"y", 0.2}, + {"image", {1, 1, "nether_glowflower.png"}}, + {"text", "Currently this flower can be used for lighting and decoration."}, + }, +} + +-- the size of guide pages +local guide_size = {x=15, y=10, cx=0.1, cy=-0.2} + +-- informations about settings and ... +local formspec_offset = {x=0.25, y=0.55} +local font_size +if minetest.is_singleplayer() then + font_size = tonumber(minetest.setting_get("font_size")) or 13 +else + font_size = 13 +end +guide_size.fx = math.floor((guide_size.x-2*(guide_size.cx+formspec_offset.x))*font_size) +guide_size.fy = font_size/65 + +-- the default guide formspecs +local guide_forms = { + contents = "size[3,"..(#guide_infos+1)*0.5 ..";]label["..guide_size.cx+0.8 ..","..guide_size.cy..";Contents:]", +} + +-- change the infos to formspecs +for n,data in ipairs(guide_infos) do + local form = "" + local y = 0 + local x = guide_size.cx + for _,i in ipairs(data) do + local typ, content = unpack(i) + if typ == "y" then + y = y+content + elseif typ == "x" then + x = math.max(x, content) + elseif typ == "text" then + local tab = minetest.splittext(content, guide_size.fx) + local l = guide_size.cx + for _,str in ipairs(tab) do + form = form.."label["..guide_size.cx..","..guide_size.cy+y..";"..str.."]" + y = y+guide_size.fy + l = math.max(l, #str) + end + x = math.max(x, l/font_size) + elseif typ == "image" then + local w, h, texture_name, px, py = unpack(content) + if not px then + form = form.."image["..guide_size.cx..","..guide_size.cy+y+h*0.3 ..";"..w..","..h..";"..texture_name.."]" + y = y+h + else + px = guide_size.cx+px + py = py or 0 + form = form.."image["..px..",".. + guide_size.cy+y+h*0.3+py ..";"..w..","..h..";"..texture_name.."]" + x = math.max(x, px+w) + end + end + end + form = "size["..x..","..y+1 ..";]"..form.."button["..x/2-0.5 ..","..y ..";1,2;quit;back]" + guide_forms[n] = {data.description, form} +end + +local desc_tab = {} +for n,i in ipairs(guide_forms) do + desc_tab[i[1]] = n +end + +-- creates contents formspec +local y = 0 +for y,i in ipairs(guide_forms) do + local desc, form = unpack(i) + local s = #desc*1.3/font_size+0.3 + guide_forms.contents = guide_forms.contents.."button["..guide_size.cx+math.random()..","..guide_size.cy+y/2 ..";"..s..",1;name;"..desc.."]" +end + +-- shows the contents of the formspec +local function show_guide(pname) + minetest.show_formspec(pname, "nether_guide_contents", guide_forms["contents"]) +end + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname == "nether_guide_contents" then + local fname = fields.name + local pname = player:get_player_name() + if fname + and pname then + minetest.show_formspec(pname, "nether_guide", guide_forms[desc_tab[fname]][2]) + end + elseif formname == "nether_guide" then + local fname = fields.quit + local pname = player:get_player_name() + if fname + and pname then + minetest.show_formspec(pname, "nether_guide_contents", guide_forms["contents"]) + end + end +end) + +minetest.register_chatcommand("nether_help", { + params = "", + description = "Shows a nether guide", + func = function(name) + local player = minetest.get_player_by_name(name) + if not player then + minetest.chat_send_player(name, "Something went wrong.") + return false + end + if player:getpos().y > nether.start then + minetest.chat_send_player(name, "Usually you don't neet this guide here. You can view it in the nether.") + return false + end + minetest.chat_send_player(name, "Showing guide...") + show_guide(name) + return true + end +}) diff --git a/mods/nether/nether/init.lua b/mods/nether/nether/init.lua new file mode 100644 index 00000000..fcd79d06 --- /dev/null +++ b/mods/nether/nether/init.lua @@ -0,0 +1,974 @@ +-- Nether Mod (based on Nyanland by Jeija, Catapult by XYZ, and Livehouse by neko259) +-- lkjoel (main developer, code, ideas, textures) +-- == CONTRIBUTERS == +-- jordan4ibanez (code, ideas, textures) +-- Gilli (code, ideas, textures, mainly for the Glowstone) +-- Death Dealer (code, ideas, textures) +-- LolManKuba (ideas, textures) +-- IPushButton2653 (ideas, textures) +-- Menche (textures) +-- sdzen (ideas) +-- godkiller447 (ideas) +-- If I didn't list you, please let me know! + +nether = nether or {} + +--== EDITABLE OPTIONS ==-- + +--says some information. +nether.info = true + +-- tell everyone about the generation +nether.inform_all = minetest.is_singleplayer() + +--1: 2: 3: +nether.max_spam = 2 + +-- Depth of the nether +local nether_middle = -20000 + +-- forest bottom perlin multiplication +local f_bottom_scale = 4 + +-- forest bottom height +local f_h_min = nether_middle+10 + +-- forest top height +local f_h_max = f_h_min+250 + +-- Frequency of trees in the nether forest (higher is less frequent) +local tree_rarity = 200 + +-- Frequency of glowflowers in the nether forest (higher is less frequent) +local glowflower_rarity = 120 + +-- Frequency of nether grass in the nether forest (higher is less frequent) +local grass_rarity = 2 + +-- Frequency of nether mushrooms in the nether forest (higher is less frequent) +local mushroom_rarity = 80 + +-- Frequency of trees in the nether forest (higher is less frequent) +local tree_rarity = 200 + +-- height of the nether generation's end +nether.start = f_h_max+100 + +-- Height of the nether (bottom of the nether is nether_middle - NETHER_HEIGHT) +local NETHER_HEIGHT = 30 + +-- Maximum amount of randomness in the map generation +NETHER_RANDOM = 2 + +-- Frequency of Glowstone on the "roof" of the Nether (higher is less frequent) +local GLOWSTONE_FREQ_ROOF = 500 + +-- Frequency of lava (higher is less frequent) +local LAVA_FREQ = 100 + +local nether_structure_freq = 350 +local NETHER_SHROOM_FREQ = 100 + +-- Maximum height of lava +--LAVA_HEIGHT = 2 +-- Frequency of Glowstone on lava (higher is less frequent) +--GLOWSTONE_FREQ_LAVA = 2 +-- Height of nether structures +--NETHER_TREESIZE = 2 +-- Frequency of apples in a nether structure (higher is less frequent) +--NETHER_APPLE_FREQ = 5 +-- Frequency of healing apples in a nether structure (higher is less frequent) +--NETHER_HEAL_APPLE_FREQ = 10 +-- Start position for the Throne of Hades (y is relative to the bottom of the nether) +--HADES_THRONE_STARTPOS = {x=0, y=1, z=0} +-- Spawn pos for when the nether hasn't been loaded yet (i.e. no portal in the nether) (y is relative to the bottom of the nether) +--NETHER_SPAWNPOS = {x=0, y=5, z=0} +-- Structure of the nether portal (all is relative to the nether portal creator block) + +--== END OF EDITABLE OPTIONS ==-- + +if nether.info then + function nether:inform(msg, spam, t) + if spam <= self.max_spam then + local info + if t then + info = string.format("[nether] "..msg.." after ca. %.2fs", os.clock() - t) + else + info = "[nether] "..msg + end + print(info) + if self.inform_all then + minetest.chat_send_all(info) + end + end + end +else + function nether:inform() + end +end + + +local path = minetest.get_modpath("nether") +dofile(path.."/weird_mapgen_noise.lua") +dofile(path.."/items.lua") +dofile(path.."/pearl.lua") + +local function table_contains(t, v) + for _,i in pairs(t) do + if i == v then + return true + end + end + return false +end + +local function dif(z1, z2) + if z1 < 0 + and z2 < 0 then + z1,z2 = -z1,-z2 + end + return math.abs(z1-z2) +end + +local function pymg(x1, x2, z1, z2) + return math.max(dif(x1, x2), dif(z1, z2)) +end + +local function r_area(manip, width, height, pos) + local emerged_pos1, emerged_pos2 = manip:read_from_map( + {x=pos.x-width, y=pos.y, z=pos.z-width}, + {x=pos.x+width, y=pos.y+height, z=pos.z+width} + ) + return VoxelArea:new({MinEdge=emerged_pos1, MaxEdge=emerged_pos2}) +end + +local function set_vm_data(manip, nodes, pos, t1, name, generated) + manip:set_data(nodes) + manip:write_to_map() + local spam = 2 + if generated then + spam = 3 + end + nether:inform(name.." grew at ("..pos.x.."|"..pos.y.."|"..pos.z..")", spam, t1) + if not generated then + local t1 = os.clock() + manip:update_map() + nether:inform("map updated", spam, t1) + end +end + +local function fix_light(minp, maxp) + local manip = minetest.get_voxel_manip() + local emerged_pos1, emerged_pos2 = manip:read_from_map(minp, maxp) + area = VoxelArea:new({MinEdge=emerged_pos1, MaxEdge=emerged_pos2}) + nodes = manip:get_data() + + manip:set_data(nodes) + manip:write_to_map() + manip:update_map() +end + +-- Generated variables +local NETHER_BOTTOM = (nether_middle - NETHER_HEIGHT) +nether.buildings = NETHER_BOTTOM+12 +local NETHER_ROOF_ABS = (nether_middle - NETHER_RANDOM) +local f_yscale_top = (f_h_max-f_h_min)/2 +local f_yscale_bottom = f_yscale_top/2 +--HADES_THRONE_STARTPOS_ABS = {x=HADES_THRONE_STARTPOS.x, y=(NETHER_BOTTOM + HADES_THRONE_STARTPOS.y), z=HADES_THRONE_STARTPOS.z} +--LAVA_Y = (NETHER_BOTTOM + LAVA_HEIGHT) +--HADES_THRONE_ABS = {} +--HADES_THRONE_ENDPOS_ABS = {} +--HADES_THRONE_GENERATED = minetest.get_worldpath() .. "/netherhadesthrone.txt" +--NETHER_SPAWNPOS_ABS = {x=NETHER_SPAWNPOS.x, y=(NETHER_BOTTOM + NETHER_SPAWNPOS.y), z=NETHER_SPAWNPOS.z} +--[[for i,v in ipairs(HADES_THRONE) do + v.pos.x = v.pos.x + HADES_THRONE_STARTPOS_ABS.x + v.pos.y = v.pos.y + HADES_THRONE_STARTPOS_ABS.y + v.pos.z = v.pos.z + HADES_THRONE_STARTPOS_ABS.z + HADES_THRONE_ABS[i] = v +end +local htx = 0 +local hty = 0 +local htz = 0 +for i,v in ipairs(HADES_THRONE_ABS) do + if v.pos.x > htx then + htx = v.pos.x + end + if v.pos.y > hty then + hty = v.pos.y + end + if v.pos.z > htz then + htz = v.pos.z + end +end +HADES_THRONE_ENDPOS_ABS = {x=htx, y=hty, z=htz}]] + +local c +local function define_contents() + c = { + air = minetest.get_content_id("air"), + lava = minetest.get_content_id("default:lava_source"), + gravel = minetest.get_content_id("default:gravel"), + coal = minetest.get_content_id("default:stone_with_coal"), + diamond = minetest.get_content_id("default:stone_with_diamond"), + mese = minetest.get_content_id("default:mese"), + + glowstone = minetest.get_content_id("glow:stone"), --https://github.com/Zeg9/minetest-glow + + nether_shroom = minetest.get_content_id("riesenpilz:nether_shroom"), + + netherrack = minetest.get_content_id("nether:netherrack"), + netherrack_tiled = minetest.get_content_id("nether:netherrack_tiled"), + netherrack_black = minetest.get_content_id("nether:netherrack_black"), + netherrack_blue = minetest.get_content_id("nether:netherrack_blue"), + netherrack_brick = minetest.get_content_id("nether:netherrack_brick"), + white = minetest.get_content_id("nether:white"), + + nether_vine = minetest.get_content_id("nether:vine"), + blood = minetest.get_content_id("nether:blood"), + blood_top = minetest.get_content_id("nether:blood_top"), + blood_stem = minetest.get_content_id("nether:blood_stem"), + nether_apple = minetest.get_content_id("nether:apple"), + + nether_tree = minetest.get_content_id("nether:tree"), + nether_tree_corner = minetest.get_content_id("nether:tree_corner"), + nether_leaves = minetest.get_content_id("nether:leaves"), + nether_grass = { + minetest.get_content_id("nether:grass_small"), + minetest.get_content_id("nether:grass_middle"), + minetest.get_content_id("nether:grass_big") + }, + glowflower = minetest.get_content_id("nether:glowflower"), + nether_dirt = minetest.get_content_id("nether:dirt"), + nether_dirt_top = minetest.get_content_id("nether:dirt_top"), + nether_dirt_bottom = minetest.get_content_id("nether:dirt_bottom"), + } +end + +local pr, contents_defined + +local function return_nether_ore(id, glowstone) + if glowstone + and pr:next(0,GLOWSTONE_FREQ_ROOF) == 1 then + return c.glowstone + end + if id == c.coal then + return c.netherrack_tiled + end + if id == c.gravel then + return c.netherrack_black + end + if id == c.diamond then + return c.netherrack_blue + end + if id == c.mese then + return c.white + end + return c.netherrack +end + +local f_perlins = {} + +--local perlin1 = minetest.get_perlin(13,3, 0.5, 50) --Get map specific perlin +-- local perlin2 = minetest.get_perlin(133,3, 0.5, 10) +-- local perlin3 = minetest.get_perlin(112,3, 0.5, 5) +local tmp = f_yscale_top*4 +local tmp2 = tmp/f_bottom_scale +local perlins = { + { + seed = 13, + octaves = 3, + persist = 0.5, + spread = {x=50, y=50, z=50}, + scale = 1, + offset = 0, + }, + { + seed = 133, + octaves = 3, + persist = 0.5, + spread = {x=10, y=10, z=10}, + scale = 1, + offset = 0, + }, + { + seed = 112, + octaves = 3, + persist = 0.5, + spread = {x=5, y=5, z=5}, + scale = 1, + offset = 0, + }, + --[[forest_bottom = { + seed = 11, + octaves = 3, + persist = 0.8, + spread = {x=tmp2, y=tmp2, z=tmp2}, + scale = 1, + offset = 0, + },]] + forest_top = { + seed = 21, + octaves = 3, + persist = 0.8, + spread = {x=tmp, y=tmp, z=tmp}, + scale = 1, + offset = 0, + }, +} + +local info = true +local structures_enabled = true +local vine_maxlength = math.floor(NETHER_HEIGHT/4+0.5) +-- Create the Nether +minetest.register_on_generated(function(minp, maxp, seed) + if not (maxp.y >= NETHER_BOTTOM-100 and minp.y <= nether.start) then --avoid big map generation + return + end + local addpos = {} + + local t1 = os.clock() + nether:inform("generates at: x=["..minp.x.."; "..maxp.x.."]; y=["..minp.y.."; "..maxp.y.."]; z=["..minp.z.."; "..maxp.z.."]", 2) + + if not contents_defined then + define_contents() + contents_defined = true + end + + local buildings = 0 + if maxp.y <= NETHER_BOTTOM then + buildings = 1 + elseif minp.y <= nether.buildings then + buildings = 2 + end + + local vm, emin, emax = minetest.get_mapgen_object("voxelmanip") + local data = vm:get_data() + local area = VoxelArea:new{MinEdge=emin, MaxEdge=emax} + + pr = PseudoRandom(seed+33) + local tab,num = {},1 + local trees,num_trees = {},1 + + --local perlin1 = minetest.get_perlin(13,3, 0.5, 50) --Get map specific perlin + --local perlin2 = minetest.get_perlin(133,3, 0.5, 10) + --local perlin3 = minetest.get_perlin(112,3, 0.5, 5) + + local side_length = maxp.x - minp.x + 1 + local map_lengths_xyz = {x=side_length, y=side_length, z=side_length} + + local pmap1 = minetest.get_perlin_map(perlins[1], map_lengths_xyz):get2dMap_flat(minp) + local pmap2 = minetest.get_perlin_map(perlins[2], map_lengths_xyz):get2dMap_flat(minp) + local pmap3 = minetest.get_perlin_map(perlins[3], map_lengths_xyz):get2dMap_flat(minp) + + local forest_possible = maxp.y > f_h_min and minp.y < f_h_max + + --local pmap_f_bottom = minetest.get_perlin_map(perlins.forest_bottom, map_lengths_xyz):get2dMap_flat(minp) + local perlin_f_bottom, pmap_f_top + if forest_possible then + perlin_f_bottom = minetest.get_perlin(11, 3, 0.8, tmp2) + pmap_f_top = minetest.get_perlin_map(perlins.forest_top, map_lengths_xyz):get2dMap_flat(minp) + end + + local num2, tab2 + if buildings >= 1 then + num2 = 1 + tab2 = nether_weird_noise({x=minp.x, y=nether.buildings-79, z=minp.z}, pymg, 200, 8, 10, 79) + end + + local count = 0 + for z=minp.z, maxp.z do + for x=minp.x, maxp.x do + + count = count+1 + + local test = pmap1[count]+1 + local test2 = pmap2[count] + local test3 = math.abs(pmap3[count]) + + local t = math.floor(test*3+0.5) + + if test2 < 0 then + h = math.floor(test2*3+0.5)-1 + else + h = 3+t+pr:next(0,NETHER_RANDOM) + end + + local generate_vine = false + if test3 >= 0.72+pr:next(0,NETHER_RANDOM)/10 + and pr:next(0,NETHER_RANDOM) == 1 then + generate_vine = true + end + + local bottom = NETHER_BOTTOM+h + local top = nether_middle-pr:next(0,NETHER_RANDOM)+t + + local py_h = 0 + local difn, noisp, py_h_g + if buildings >= 1 then + py_h = tab2[num2].y + num2 = num2+1 + + difn = nether.buildings-py_h + if difn == 5 then + noisp = 1 + elseif difn < 5 then + noisp = 2 + end + py_h_g = nether.buildings-7 + end + + if buildings == 1 + and noisp then + if noisp == 1 then + for y=minp.y, maxp.y do + local p_addpos = area:index(x, y, z) + data[p_addpos] = c.netherrack_brick + end + else + for y=minp.y, maxp.y do + local p_addpos = area:index(x, y, z) + data[p_addpos] = c.lava + end + end + else + + local r_structure = pr:next(1,nether_structure_freq) + local r_shroom = pr:next(1,NETHER_SHROOM_FREQ) + local r_glowstone = pr:next(0,GLOWSTONE_FREQ_ROOF) + local r_vine_length = pr:next(1,vine_maxlength) + + local f_bottom, f_top, is_forest, f_h_dirt + if forest_possible then + local p = {x=math.floor(x/f_bottom_scale), z=math.floor(z/f_bottom_scale)} + local pstr = p.x.." "..p.z + if not f_perlins[pstr] then + f_perlins[pstr] = math.floor(f_h_min+(math.abs(perlin_f_bottom:get2d({x=p.x, y=p.z})+1))*f_yscale_bottom+0.5) + end + f_bottom = f_perlins[pstr]+math.random(0,f_bottom_scale-1) + f_top = math.floor(f_h_max-(pmap_f_top[count]+1)*f_yscale_top+0.5) + is_forest = f_bottom < f_top + f_h_dirt = f_bottom-pr:next(0,1) + end + + for y=minp.y, maxp.y do + local p_addpos = area:index(x, y, z) + local d_p_addp = data[p_addpos] + --if py_h >= maxp.y-4 then + if y <= py_h + and noisp then + if noisp == 1 then + data[p_addpos] = c.netherrack_brick + elseif noisp == 2 then + if y == py_h then + data[p_addpos] = c.netherrack_brick + elseif y == py_h_g + and pr:next(1,3) <= 2 then + data[p_addpos] = c.netherrack + elseif y <= py_h_g then + data[p_addpos] = c.lava + else + data[p_addpos] = c.air + end + end + elseif d_p_addp ~= c.air then + + if is_forest + and y == f_bottom then + data[p_addpos] = c.nether_dirt_top + elseif is_forest + and y < f_bottom + and y >= f_h_dirt then + data[p_addpos] = c.nether_dirt + elseif is_forest + and y == f_h_dirt-1 then + data[p_addpos] = c.nether_dirt_bottom + elseif is_forest + and y == f_h_dirt+1 then + if pr:next(1,tree_rarity) == 1 then + trees[num_trees] = {x=x, y=y, z=z} + num_trees = num_trees+1 + elseif pr:next(1,mushroom_rarity) == 1 then + data[p_addpos] = c.nether_shroom + elseif pr:next(1,glowflower_rarity) == 1 then + data[p_addpos] = c.glowflower + elseif pr:next(1,grass_rarity) == 1 then + data[p_addpos] = c.nether_grass[pr:next(1,3)] + else + data[p_addpos] = c.air + end + elseif is_forest + and y > f_bottom + and y < f_top then + if not table_contains( + {c.nether_tree, c.nether_tree_corner, c.nether_leaves, c.nether_fruit}, + d_p_addp + ) then + data[p_addpos] = c.air + end + + elseif y <= NETHER_BOTTOM then + if y <= bottom then + data[p_addpos] = return_nether_ore(d_p_addp, true) + else + data[p_addpos] = c.lava + end + elseif r_structure == 1 + and y == bottom then + tab[num] = {x=x, y=y-1, z=z} + num = num+1 + elseif y <= bottom then + if pr:next(1,LAVA_FREQ) == 1 then + data[p_addpos] = c.lava + else + data[p_addpos] = return_nether_ore(d_p_addp, false) + end + elseif r_shroom == 1 + and r_structure ~= 1 + and y == bottom+1 then + data[p_addpos] = c.nether_shroom + elseif (y == top and r_glowstone == 1) then + data[p_addpos] = c.glowstone + elseif y >= top then + data[p_addpos] = return_nether_ore(d_p_addp, true) + elseif y <= top-1 + and generate_vine + and y >= top-r_vine_length then + data[p_addpos] = c.nether_vine + else + data[p_addpos] = c.air + end + end + end + end + end + end + vm:set_data(data) +-- vm:set_lighting(12) +-- vm:calc_lighting() +-- vm:update_liquids() + vm:write_to_map() + + nether:inform("nodes set", 2, t1) + + local t2 = os.clock() + + if structures_enabled then --Trees: + for _,v in ipairs(tab) do + nether.grow_netherstructure(v, true) + end + end + + if forest_possible then --Trees: + for _,v in ipairs(trees) do + nether.grow_tree(v, true) + end + end + + nether:inform("trees set", 2, t2) + + t2 = os.clock() + fix_light(minp, maxp) + + nether:inform("map updated", 2, t2) + + nether:inform("done", 1, t1) +end) + + +function nether.grow_netherstructure(pos, generated) + local t1 = os.clock() + + if not contents_defined then + define_contents() + contents_defined = true + end + + if not pos.x then print(dump(pos)) + nether:inform("Error: "..dump(pos), 1) + return + end + + local height = 6 + local manip = minetest.get_voxel_manip() + local area = r_area(manip, 2, height, pos) + local nodes = manip:get_data() + + for i = 0, height-1 do + nodes[area:index(pos.x, pos.y+i, pos.z)] = c.blood_stem + end + + for i = -1,1 do + for j = -1,1 do + nodes[area:index(pos.x+i, pos.y+height, pos.z+j)] = c.blood_top + end + end + + for k = -1, 1, 2 do + for l = -2+1, 2 do + local p1 = {pos.x+2*k, pos.y+height, pos.z-l*k} + local p2 = {pos.x+l*k, pos.y+height, pos.z+2*k} + local udat = c.blood_top + if math.random(2) == 1 then + nodes[area:index(p1[1], p1[2], p1[3])] = c.blood_top + nodes[area:index(p2[1], p2[2], p2[3])] = c.blood_top + udat = c.blood + end + nodes[area:index(p1[1], p1[2]-1, p1[3])] = udat + nodes[area:index(p2[1], p2[2]-1, p2[3])] = udat + end + for l = 0, 1 do + for _,p in ipairs({ + {pos.x+k, pos.y+height-1, pos.z-l*k}, + {pos.x+l*k, pos.y+height-1, pos.z+k}, + }) do + if math.random(2) == 1 then + nodes[area:index(p[1], p[2], p[3])] = c.nether_apple + --elseif math.random(10) == 1 then + -- nodes[area:index(p[1], p[2], p[3])] = c.apple + end + end + end + end + set_vm_data(manip, nodes, pos, t1, "blood", generated) +end + + +local function update_minmax(min, max, p) + min.x = math.min(min.x, p.x) + max.x = math.max(max.x, p.x) + min.z = math.min(min.z, p.z) + max.z = math.max(max.z, p.z) + return min, max +end + +local fruit_chances = {} +for y = -2,1 do --like a hyperbola + fruit_chances[y] = math.floor(-4/(y-2)+0.5) +end + +local dirs = { + {-1, 0, 12, 19}, + {1, 0, 12, 13}, + {0, 1, 4}, + {0, -1, 4, 10}, +} + +local h_max = 26 +local h_stem_min = 3 +local h_stem_max = 7 +local h_arm_min = 2 +local h_arm_max = 6 +local r_arm_min = 1 +local r_arm_max = 5 +local fruit_rarity = 25 --a bigger number results in less fruits +local leaf_thickness = 3 --a bigger number results in more blank trees + +local h_trunk_max = h_max-h_arm_max + +function nether.grow_tree(pos, generated) + local t1 = os.clock() + + if not contents_defined then + define_contents() + contents_defined = true + end + + local min = vector.new(pos) + local max = vector.new(pos) + min.y = min.y-1 + max.y = max.y+h_max + + local trunks = {} + local trunk_corners = {} + local h_stem = math.random(h_stem_min, h_stem_max) + local stems = {{x=pos.x, y=pos.y+h_stem, z=pos.z}} + local fi + while not fi do + for n,p in pairs(stems) do + local used_dirs = {} + for _,dir in pairs(dirs) do + if math.random(1,2) == 1 then + table.insert(used_dirs, dir) + end + end + if not used_dirs[1] then + local dir1 = math.random(4) + local dir2 = math.random(3) + if dir1 <= dir2 then + dir2 = dir2+1 + end + used_dirs[1] = dirs[dir1] + used_dirs[2] = dirs[dir2] + end + for _,dir in pairs(used_dirs) do + local p = vector.new(p) + local r = math.random(r_arm_min, r_arm_max) + for j = 1,r do + local x = p.x+j*dir[1] + local z = p.z+j*dir[2] + trunks[x.." "..p.y.." "..z] = dir[3] + end + r = r+1 + p.x = p.x+r*dir[1] + p.z = p.z+r*dir[2] + trunk_corners[p.x.." "..p.y.." "..p.z] = dir[4] or dir[3] + local h = math.random(h_arm_min, h_arm_max) + for i = 1,h do + trunks[p.x.." "..p.y+i.." "..p.z] = true + end + p.y = p.y+h + table.insert(stems, p) + end + if p.y > pos.y+h_trunk_max then + fi = true + break + end + stems[n] = nil + end + end + local leaves = {} + local fruits = {} + local trunk_ps = {} + local count = 0 + for n,par in pairs(trunks) do + local p = {} + p.x, p.y, p.z = unpack(string.split(n, " ")) + if par ~= true then + p.par = par + end + table.insert(trunk_ps, p) + count = count+1 + if count > leaf_thickness then + count = 0 + for y = -2,2 do + local fruit_chance = fruit_chances[y] + for z = -2,2 do + for x = -2,2 do + local dist = math.sqrt(x*x+y*y+z*z) + if math.floor(dist) ~= 0 + and math.random(1, dist) == 1 then + local pstr = p.x+x.." "..p.y+y.." "..p.z+z + if not trunks[pstr] then + if math.random(1, fruit_rarity) == 1 + and fruit_chance + and math.random(1, fruit_chance) == 1 then + fruits[pstr] = true + else + leaves[pstr] = true + end + end + end + end + end + end + end + end + + local leaf_ps = {} + for n,_ in pairs(leaves) do + local p = {} + p.x, p.y, p.z = unpack(string.split(n, " ")) + table.insert(leaf_ps, p) + min, max = update_minmax(min, max, p) + end + + for n,_ in pairs(trunks) do + local p = {} + p.x, _, p.z = unpack(string.split(n, " ")) + min, max = update_minmax(min, max, p) + end + + for i = -1,h_stem+1 do + table.insert(trunk_ps, {x=pos.x, y=pos.y+i, z=pos.z, par=0}) + end + + local trunk_corner_ps = {} + for n,par in pairs(trunk_corners) do + local p = {} + p.x, p.y, p.z = unpack(string.split(n, " ")) + p.par = par + table.insert(trunk_corner_ps, p) + end + + local fruit_ps = {} + for n,_ in pairs(fruits) do + local p = {} + p.x, p.y, p.z = unpack(string.split(n, " ")) + table.insert(fruit_ps, p) + end + + local manip = minetest.get_voxel_manip() + local emerged_pos1, emerged_pos2 = manip:read_from_map(min, max) + local area = VoxelArea:new({MinEdge=emerged_pos1, MaxEdge=emerged_pos2}) + local nodes = manip:get_data() + local param2s = manip:get_param2_data() + + for _,p in pairs(leaf_ps) do + p = area:indexp(p) + if nodes[p] == c.air then + nodes[p] = c.nether_leaves + param2s[p] = math.random(0,44) + end + end + + for _,p in pairs(fruit_ps) do + p = area:indexp(p) + if nodes[p] == c.air then + nodes[p] = c.nether_apple + --param2s[p] = math.random(0,44) + end + end + + for _,p in pairs(trunk_ps) do + local par = p.par + p = area:indexp(p) + if par then + param2s[p] = par + end + nodes[p] = c.nether_tree + end + + for _,p in pairs(trunk_corner_ps) do + local par = p.par + p = area:indexp(p) + nodes[p] = c.nether_tree_corner + param2s[p] = par + end + + --calculating took ca. 0.07 - 0.18 [s] + manip:set_data(nodes) + manip:set_param2_data(param2s) + manip:write_to_map() + local spam = 2 + if generated then + spam = 3 + end + nether:inform("a nether tree grew at ("..pos.x.."|"..pos.y.."|"..pos.z..")", spam, t1) + if not generated then + local t1 = os.clock() + manip:update_map() + nether:inform("map updated", spam, t1) + end +end + + +--abms + +minetest.register_abm({ + nodenames = {"nether:sapling"}, + neighbors = {"nether:blood_top"}, + interval = 20, + chance = 8, + action = function(pos) + local under = {x=pos.x, y=pos.y-1, z=pos.z} + if minetest.get_node_light(pos) < 4 + and minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "air" + and minetest.get_node(under).name == "nether:blood_top" then + nether.grow_netherstructure(under) + end + end +}) + +minetest.register_abm({ + nodenames = {"nether:tree_sapling"}, + neighbors = {"group:nether_dirt"}, + interval = 864, + chance = 100, + action = function(pos) + local under = {x=pos.x, y=pos.y-1, z=pos.z} + if minetest.get_node({x=pos.x, y=pos.y+2, z=pos.z}).name == "air" + and minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "air" then + local udata = minetest.registered_nodes[minetest.get_node(under).name] + if udata + and udata.groups + and udata.groups.nether_dirt then + nether.grow_tree(pos) + end + end + end +}) + +minetest.register_abm({ + nodenames = {"nether:netherrack_soil"}, + neighbors = {"air"}, + interval = 20, + chance = 20, + action = function(pos, node) + local par2 = node.param2 + if par2 == 0 then + return + end + pos.y = pos.y+1 + if minetest.get_node_light(pos) > 7 then --mushrooms grow at dark places + return + end + if minetest.get_node(pos).name == "air" then + minetest.set_node(pos, {name="riesenpilz:nether_shroom"}) + pos.y = pos.y-1 + minetest.set_node(pos, {name="nether:netherrack_soil", param2=par2-1}) + end + end +}) + +local function grass_allowed(pos) + local nd = minetest.get_node(pos).name + if nd == "air" then + return true + end + if nd == "ignore" then + return 0 + end + local data = minetest.registered_nodes[nd] + local drawtype = data.drawtype + if drawtype + and drawtype ~= "normal" + and drawtype ~= "liquid" + and drawtype ~= "flowingliquid" then + return true + end + local light = data.light_source + if light + and light > 0 then + return true + end + return false +end + +minetest.register_abm({ + nodenames = {"nether:dirt"}, + interval = 20, + chance = 9, + action = function(pos) + local allowed = grass_allowed({x=pos.x, y=pos.y+1, z=pos.z}) + if allowed == 0 then + return + end + if allowed then + minetest.set_node(pos, {name="nether:dirt_top"}) + end + end +}) + +minetest.register_abm({ + nodenames = {"nether:dirt_top"}, + interval = 30, + chance = 9, + action = function(pos) + local allowed = grass_allowed({x=pos.x, y=pos.y+1, z=pos.z}) + if allowed == 0 then + return + end + if not allowed then + minetest.set_node(pos, {name="nether:dirt"}) + end + end +}) + + +minetest.register_privilege("nether", "Allows sending players to nether and extracting them") + +dofile(path.."/crafting.lua") +dofile(path.."/portal.lua") +dofile(path.."/guide.lua") + +nether:inform("loaded!", 1) diff --git a/mods/nether/nether/items.lua b/mods/nether/nether/items.lua new file mode 100644 index 00000000..7125f77a --- /dev/null +++ b/mods/nether/nether/items.lua @@ -0,0 +1,978 @@ +local nether_sound = default.node_sound_stone_defaults({ + dig = {name="nether_dig", gain=0.7}, + dug = {name="nether_dug", gain=1}, + footstep = {name="nether_footstep", gain=0.4} +}) + +local function add_stair_and_slab(name) + local nd = "nether:"..name + if not string.find(name, "nether") then + name = "nether_"..name + end + local data = minetest.registered_nodes[nd] + stairs.register_stair_and_slab(name, nd, + data.groups, + data.tiles, + data.description.." Stair", + data.description.." Slab", + data.sounds + ) +end + +local function digging_allowed(player, v) + if not player then + return false + end + local tool = minetest.registered_tools[player:get_wielded_item():get_name()] + if not tool then + return false + end + local capabilities = tool.tool_capabilities + if not capabilities then + return false + end + local groups = capabilities.groupcaps + if not groups then + return false + end + local nether = groups.nether + if not nether then + return false + end + if nether.times[v] then + return true + end + return false +end + +-- Netherrack +minetest.register_node("nether:netherrack", { + description = "Netherrack", + tiles = {"nether_netherrack.png"}, + groups = {nether=2}, + sounds = nether_sound, + can_dig = function(_, player) + return digging_allowed(player, 2) + end, +}) +add_stair_and_slab("netherrack") + +minetest.register_node("nether:netherrack_tiled", { + description = "Tiled Netherrack", + tiles = {"nether_netherrack_tiled.png"}, + groups = {nether=2}, + sounds = nether_sound, + can_dig = function(_, player) + return digging_allowed(player, 2) + end, +}) +add_stair_and_slab("netherrack_tiled") + +minetest.register_node("nether:netherrack_soil", { + description = "Dirty Netherrack", + tiles = {"nether_netherrack.png^nether_netherrack_soil.png"}, + groups = {nether=2}, + sounds = nether_sound, + can_dig = function(_, player) + return digging_allowed(player, 2) + end, +}) + +minetest.register_node("nether:netherrack_black", { + description = "Black Netherrack", + tiles = {"nether_netherrack_black.png"}, + groups = {nether=2}, + sounds = nether_sound, + can_dig = function(_, player) + return digging_allowed(player, 2) + end, +}) +add_stair_and_slab("netherrack_black") + +minetest.register_node("nether:netherrack_blue", { + description = "Blue Netherrack", + tiles = {"nether_netherrack_blue.png"}, + groups = {nether=1}, + sounds = nether_sound, + can_dig = function(_, player) + return digging_allowed(player, 1) + end, +}) +add_stair_and_slab("netherrack_blue") + +-- Netherbrick +minetest.register_node("nether:netherrack_brick", { + description = "Netherrack Brick", + tiles = {"nether_netherrack_brick.png"}, + groups = {nether=3}, + sounds = nether_sound, + can_dig = function(_, player) + return digging_allowed(player, 3) + end, +}) +add_stair_and_slab("netherrack_brick") + +minetest.register_node("nether:netherrack_brick_blue", { + description = "Blue Netherrack Brick", + tiles = {"nether_netherrack_brick_blue.png"}, + groups = {nether=3}, + sounds = nether_sound, + can_dig = function(_, player) + return digging_allowed(player, 3) + end, +}) +add_stair_and_slab("netherrack_brick_blue") + +minetest.register_node("nether:netherrack_brick_black", { + description = "Black Netherrack Brick", + tiles = {"nether_netherrack_brick_black.png"}, + groups = {nether=3}, + sounds = nether_sound, + can_dig = function(_, player) + return digging_allowed(player, 3) + end, +}) +add_stair_and_slab("netherrack_brick_black") + +minetest.register_node("nether:white", { + description = "Siwtonic block", + tiles = {"nether_white.png"}, + groups = {nether=1}, + sounds = nether_sound, + can_dig = function(_, player) + return digging_allowed(player, 1) + end, +}) +add_stair_and_slab("white") + + +-- Nether blood +minetest.register_node("nether:sapling", { + description = "Nether Blood Child", + drawtype = "plantlike", + tiles = {"nether_sapling.png"}, + inventory_image = "nether_sapling.png", + wield_image = "nether_sapling.png", + paramtype = "light", + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} + }, + groups = {snappy=2, oddly_breakable_by_hand=2, attached_node=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("nether:blood", { + description = "Nether Blood", + tiles = {"nether_blood.png"}, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=1}, + sounds = default.node_sound_wood_defaults(), +}) +add_stair_and_slab("blood") + +minetest.register_node("nether:blood_cooked", { + description = "Cooked Nether Blood", + tiles = {"nether_blood_cooked.png"}, + groups = {nether=3}, + sounds = nether_sound, + furnace_burntime = 10, + can_dig = function(_, player) + return digging_allowed(player, 3) + end, +}) +add_stair_and_slab("blood_cooked") + +minetest.register_node("nether:blood_empty", { + description = "Nether Blood Extracted", + tiles = {"nether_blood_empty.png"}, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=1}, + sounds = default.node_sound_wood_defaults(), +}) +add_stair_and_slab("blood_empty") + + +minetest.register_node("nether:blood_top", { + description = "Nether Blood Head", + tiles = {"nether_blood_top.png", "nether_blood.png", "nether_blood.png^nether_blood_side.png"}, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=1}, + sounds = default.node_sound_wood_defaults(), +}) +add_stair_and_slab("blood_top") + +minetest.register_node("nether:blood_top_cooked", { + description = "Cooked Nether Blood Head", + tiles = {"nether_blood_top_cooked.png", "nether_blood_cooked.png", "nether_blood_cooked.png^nether_blood_side_cooked.png"}, + groups = {nether=3}, + sounds = nether_sound, + furnace_burntime = 10, + can_dig = function(_, player) + return digging_allowed(player, 3) + end, +}) +add_stair_and_slab("blood_top_cooked") + +minetest.register_node("nether:blood_top_empty", { + description = "Nether Blood Head Extracted", + tiles = {"nether_blood_top_empty.png", "nether_blood_empty.png", "nether_blood_empty.png^nether_blood_side_empty.png"}, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=1}, + sounds = default.node_sound_wood_defaults(), +}) +add_stair_and_slab("blood_top_empty") + + +minetest.register_node("nether:blood_stem", { + description = "Nether Blood Stem", + tiles = {"nether_blood_stem_top.png", "nether_blood_stem_top.png", "nether_blood_stem.png"}, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=1}, + sounds = default.node_sound_wood_defaults(), +}) +add_stair_and_slab("blood_stem") + +minetest.register_node("nether:blood_stem_cooked", { + description = "Cooked Nether Blood Stem", + tiles = {"nether_blood_stem_top_cooked.png", "nether_blood_stem_top_cooked.png", "nether_blood_stem_cooked.png"}, + groups = {nether=3}, + sounds = nether_sound, + furnace_burntime = 30, + can_dig = function(_, player) + return digging_allowed(player, 3) + end, +}) +add_stair_and_slab("blood_stem_cooked") + +minetest.register_node("nether:blood_stem_empty", { + description = "Nether Blood Stem Extracted", + tiles = {"nether_blood_stem_top_empty.png", "nether_blood_stem_top_empty.png", "nether_blood_stem_empty.png"}, + groups = {tree=1, choppy=2, oddly_breakable_by_hand=1}, + sounds = default.node_sound_wood_defaults(), +}) +add_stair_and_slab("blood_stem_empty") + + +minetest.register_node("nether:wood", { + description = "Nether Blood Wood", + tiles = {"nether_wood.png"}, + groups = {choppy=2, oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), +}) +add_stair_and_slab("wood") + +minetest.register_node("nether:wood_cooked", { + description = "Cooked Nether Blood Wood", + tiles = {"nether_wood_cooked.png"}, + groups = {nether=3}, + sounds = nether_sound, + furnace_burntime = 8, + can_dig = function(_, player) + return digging_allowed(player, 3) + end, +}) +add_stair_and_slab("wood_cooked") + +minetest.register_node("nether:wood_empty", { + description = "Nether Wood", + tiles = {"nether_wood_empty.png"}, + groups = {choppy=2, oddly_breakable_by_hand=2, wood=1}, + sounds = default.node_sound_wood_defaults(), +}) +add_stair_and_slab("wood_empty") + +minetest.register_node("nether:extractor", { + description = "Nether Blood Extractor", + tiles = {"nether_blood_extractor.png"}, + groups = {nether=3}, + sounds = nether_sound, + can_dig = function(_, player) + return digging_allowed(player, 3) + end, +}) + +-- Nether fruit +minetest.register_node("nether:fruit_leaves", { + description = "Nether Fruit Leaves", + tiles = {"nether_fruit_leaves.png"}, + groups = {fleshy=3, dig_immediate=2}, + sounds = default.node_sound_defaults(), + furnace_burntime = 18, +}) +add_stair_and_slab("fruit_leaves") + +local function room_for_items(inv) + local free_slots = 0 + for _,i in ipairs(inv:get_list("main")) do + if i:get_count() == 0 then + free_slots = free_slots+1 + end + end + if free_slots < 2 then + return false + end + return true +end + +local drop_mushroom = minetest.registered_nodes["riesenpilz:nether_shroom"].on_drop +minetest.override_item("riesenpilz:nether_shroom", { + on_drop = function(itemstack, dropper, pos) + if dropper:get_player_control().aux1 then + return drop_mushroom(itemstack, dropper, pos) + end + local inv = dropper:get_inventory() + if not inv then + return + end + if not room_for_items(inv) then + return + end + minetest.sound_play("nether_remove_leaf", {pos = pos, gain = 0.25}) + itemstack:take_item() + inv:add_item("main", "nether:shroom_head") + inv:add_item("main", "nether:shroom_stem") + return itemstack + end, +}) + +minetest.register_node("nether:apple", { + description = "Nether Fruit", + drawtype = "nodebox", + tiles = {"nether_fruit_top.png", "nether_fruit_bottom.png", "nether_fruit.png", "nether_fruit.png^[transformFX", "nether_fruit.png^[transformFX", "nether_fruit.png"}, + node_box = { + type = "fixed", + fixed = { + {-1/6, -1/4, -1/6, 1/6, -1/6, 1/6}, + + {-1/6, -1/6, -1/4, 1/6, 1/6, 1/4}, + {-1/4, -1/6, -1/6, 1/4, 1/6, 1/6}, + + {-1/4, 1/6, -1/12, 1/4, 1/4, 1/12}, + {-1/12, 1/6, -1/4, 1/12, 1/4, 1/4}, + + {-1/6, 1/6, -1/6, 1/6, 1/3, 1/6}, + + {-1/12, 1/3, -1/12, 0, 5/12, 0}, + + {-1/12, 5/12, -1/6, 0, 0.5, 1/12}, + {-1/6, 5/12, -1/12, 1/12, 0.5, 0}, + } + }, + paramtype = "light", + groups = {fleshy=3, dig_immediate=3}, + on_use = function(itemstack, user) + local inv = user:get_inventory() + if not inv then + return + end + itemstack:take_item() + if nether_port(user, vector.round(user:getpos())) then + return itemstack + end + local amount = math.random(4, 6) + inv:add_item("main", {name="nether:blood_extracted", count=math.floor(amount/3)}) + user:set_hp(user:get_hp()-amount) + return itemstack + end, + sounds = default.node_sound_defaults(), + furnace_burntime = 6, +}) + +local drop_fruit = minetest.registered_nodes["nether:apple"].on_drop +minetest.override_item("nether:apple", { + on_drop = function(itemstack, dropper, pos) + if dropper:get_player_control().aux1 then + return drop_fruit(itemstack, dropper, pos) + end + local inv = dropper:get_inventory() + if not inv then + return + end + if not room_for_items(inv) then + return + end + minetest.sound_play("nether_remove_leaf", {pos = pos, gain = 0.25}) + itemstack:take_item() + inv:add_item("main", "nether:fruit_leaf") + inv:add_item("main", "nether:fruit_no_leaf") + return itemstack + end, +}) + +-- Nether vine +minetest.register_node("nether:vine", { + description = "Nether vine", + walkable = false, + drop = "nether:sapling", + sunlight_propagates = true, + paramtype = "light", + tiles = { "nether_vine.png" }, + drawtype = "plantlike", + inventory_image = "nether_vine.png", + groups = { snappy = 3,flammable=2 }, + sounds = default.node_sound_leaves_defaults(), + after_dig_node = function(pos, _, _, digger) + if digger then + local p = {x=pos.x, y=pos.y-1, z=pos.z} + local nn = minetest.get_node(p) + if nn.name == "nether:vine" then + minetest.node_dig(p, nn, digger) + end + end + end +}) + + +-- forest stuff + +for n,i in pairs({"small", "middle", "big"}) do + minetest.register_node("nether:grass_"..i, { + description = "Nehter Grass", + drawtype = "plantlike", + waving = 1, + tiles = {"nether_grass_"..i..".png"}, + inventory_image = "nether_grass_"..i..".png", + wield_image = "nether_grass_"..i..".png", + paramtype = "light", + walkable = false, + buildable_to = true, + drop = "nether:grass "..n, + groups = {snappy=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}, + }, + }) +end + +minetest.register_node("nether:glowflower", { + description = "Glowing Flower", + drawtype = "plantlike", + tiles = {"nether_glowflower.png"}, + inventory_image = "nether_glowflower.png", + wield_image = "nether_glowflower.png", + sunlight_propagates = true, + paramtype = "light", + walkable = false, + buildable_to = true, + light_source = 10, + groups = {snappy=3,flammable=2,flower=1,flora=1,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 }, + }, +}) + +minetest.register_node("nether:tree_sapling", { + description = "Nether Tree Sapling", + drawtype = "plantlike", + tiles = {"nether_tree_sapling.png"}, + inventory_image = "nether_tree_sapling.png", + wield_image = "nether_tree_sapling.png", + paramtype = "light", + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} + }, + groups = {snappy=2, oddly_breakable_by_hand=2, attached_node=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("nether:tree", { + description = "Nehter Trunk", + tiles = {"nether_tree_top.png", "nether_tree_top.png", "nether_tree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree=1,choppy=2,oddly_breakable_by_hand=1}, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node +}) + +minetest.register_node("nether:tree_corner", { + description = "Nehter Trunk Corner", + tiles = {"nether_tree.png^[transformR180", "nether_tree_top.png", "nether_tree_corner.png^[transformFY", + "nether_tree_corner.png^[transformR180", "nether_tree.png", "nether_tree_top.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,not_in_creative_inventory=1}, + drop = "nether:tree", + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node +}) + +minetest.register_node("nether:forest_wood", { + description = "Nether Wood Block", + tiles = {"nether_forest_wood.png"}, + groups = {choppy=2,oddly_breakable_by_hand=2,wood=1}, + sounds = default.node_sound_wood_defaults(), +}) +add_stair_and_slab("forest_wood") + +minetest.register_node("nether:leaves", { + description = "Nether Leaves", + drawtype = "plantlike", + waving = 1, + visual_scale = math.sqrt(math.sqrt(2)), + tiles = {"nether_leaves.png"}, + inventory_image = "nether_leaves.png", + wield_image = "nether_leaves.png", + paramtype = "light", + is_ground_content = false, + groups = {snappy=3, leafdecay=3, leaves=1}, + drop = { + max_items = 1, + items = { + { + items = {"nether:tree_sapling"}, + rarity = 30, + }, + { + items = {"nether:leaves"}, + } + } + }, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("nether:dirt", { + description = "Nether Dirt", + tiles = {"nether_dirt.png"}, + groups = {crumbly=3,soil=1,nether_dirt=1}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("nether:dirt_top", { + description = "Nether Dirt Top", + tiles = {"nether_dirt_top.png", "nether_dirt.png", "nether_dirt.png^nether_dirt_top_side.png"}, + groups = {crumbly=3,soil=1,nether_dirt=1}, + drop = "nether:dirt", + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.25}, + }), +}) + +minetest.register_node("nether:dirt_bottom", { + description = "Netherrack Dirt Transition", + tiles = {"nether_dirt.png", "nether_netherrack.png", "nether_netherrack.png^nether_dirt_transition.png"}, + groups = {nether=2}, + drop = "nether:netherrack", + sounds = default.node_sound_dirt_defaults({ + dig = {name="nether_dig", gain=0.7}, + dug = {name="nether_dug", gain=1}, + }), + can_dig = function(_, player) + return digging_allowed(player, 2) + end, +}) + + +-- Nether torch +minetest.register_node("nether:torch", { + description = "Nether Torch", + drawtype = "torchlike", + tiles = {"nether_torch_on_floor.png", "nether_torch_on_ceiling.png", "nether_torch.png"}, + inventory_image = "nether_torch_on_floor.png", + wield_image = "nether_torch_on_floor.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + light_source = LIGHT_MAX-1, + selection_box = { + type = "wallmounted", + wall_top = {-0.1, 0.5-0.6, -0.1, 0.1, 0.5, 0.1}, + wall_bottom = {-0.1, -0.5, -0.1, 0.1, -0.5+0.6, 0.1}, + wall_side = {-0.5, -0.3, -0.1, -0.5+0.3, 0.3, 0.1}, + }, + groups = {choppy=2, dig_immediate=3, attached_node=1, hot=2}, + legacy_wallmounted = true, + sounds = default.node_sound_defaults(), +}) + +minetest.register_node("nether:portal", { + description = "Nether Portal Essence", + tiles = {"nether_transparent.png", "nether_transparent.png", "nether_transparent.png", "nether_transparent.png", "nether_portal_stuff.png"}, + inventory_image = "nether_portal_stuff.png", + wield_image = "nether_portal_stuff.png", + light_source = LIGHT_MAX - 2, + paramtype = "light", + sunlight_propagates = true, + use_texture_alpha = true, + walkable = false, + digable = false, + pointable = false, + buildable_to = false, + drop = "", + groups = {not_in_creative_inventory=1}, + post_effect_color = {a=200, r=50, g=0, b=60},--{a=180, r=128, g=0, b=128} + drawtype = "nodebox", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.1, 0.5, 0.5, 0.1}, + }, + }, +}) + + +minetest.register_craftitem("nether:grass", { + description = "Nehter Grass", + inventory_image = "nether_grass.png", +}) + +minetest.register_craftitem("nether:grass_dried", { + description = "Dried Nehter Grass", + inventory_image = "nether_grass_dried.png", + furnace_burntime = 1, +}) + +minetest.register_craftitem("nether:forest_planks", { + description = "Nether Wooden Planks", + inventory_image = "nether_forest_planks.png", + stack_max = 990, +}) + +minetest.register_craftitem("nether:bark", { + description = "Nether Trunk Bark", + inventory_image = "nether_bark.png", + furnace_burntime = 5, +}) + +-- Nether Pearl +minetest.register_craftitem("nether:pearl", { + description = "Nether Pearl", + inventory_image = "nether_pearl.png", +}) + +minetest.register_craftitem("nether:stick", { + description = "Nether Stick", + inventory_image = "nether_stick.png", + groups = {stick=1}, +}) + +local tmp = {} +minetest.register_craftitem("nether:shroom_head", { + description = "Nether Mushroom Head", + inventory_image = "nether_shroom_top.png", + furnace_burntime = 3, + on_place = function(itemstack, _, pointed_thing) + if not pointed_thing then + return + end + + if pointed_thing.type ~= "node" then + return + end + + local pos = minetest.get_pointed_thing_position(pointed_thing) + local node = minetest.get_node(pos) + local pstr = pos.x.." "..pos.y.." "..pos.z + + if node.name == "nether:netherrack_soil" + and not tmp[pstr] then + minetest.sound_play("default_grass_footstep", {pos=pos}) + minetest.set_node(pos, {name="nether:netherrack_soil", param2=math.max(node.param2, math.random(3, 10))}) + tmp[pstr] = true + minetest.after(3, function() tmp[pos.x.." "..pos.y.." "..pos.z] = nil end) + end + end +}) + +minetest.register_craftitem("nether:shroom_stem", { + description = "Nether Mushroom Stem", + inventory_image = "nether_shroom_stem.png", + furnace_burntime = 3, +}) + +minetest.register_craftitem("nether:fruit_leaf", { + description = "Nether Fruit Leaf", + inventory_image = "nether_fruit_leaf.png", + furnace_burntime = 2, +}) + +minetest.register_craftitem("nether:fruit_no_leaf", { + description = "Nether Fruit Without Leaf", + inventory_image = "nether_fruit_no_leaf.png", + furnace_burntime = 4, +}) + +minetest.register_craftitem("nether:fim", { + description = "Nether FIM", --fruit in mushroom + inventory_image = "nether_fim.png", + furnace_burntime = 10, +}) + +local blood_exno = {} +for _,i in ipairs({"nether:blood", "nether:blood_top", "nether:blood_stem"}) do + blood_exno[i] = i.."_empty" +end + +minetest.register_craftitem("nether:blood_extracted", { + description = "Blood", + inventory_image = "nether_blood_extracted.png", + on_place = function(itemstack, _, pointed_thing) + if not pointed_thing then + return + end + + if pointed_thing.type ~= "node" then + return + end + + local pos = minetest.get_pointed_thing_position(pointed_thing) + local node = minetest.get_node_or_nil(pos) + + if not node then + return + end + + if node.name == "nether:vine" then + pos = {x=pos.x, y=pos.y-1, z=pos.z} + if minetest.get_node(pos).name == "air" then + minetest.set_node(pos, {name = "nether:vine"}) + end + itemstack:take_item() + return itemstack + end + + if node.name ~= "nether:extractor" then + return + end + itemstack:take_item() + minetest.after(1, function(pos) + for i = -1,1,2 do + for _,p in ipairs({ + {x=pos.x+i, y=pos.y, z=pos.z}, + {x=pos.x, y=pos.y, z=pos.z+i}, + }) do + local nodename = blood_exno[minetest.get_node(p).name] + if nodename then + minetest.set_node(p, {name=nodename}) + p = vector.add(p, {x=math.random()-0.5, y=math.random()+0.5, z=math.random()-0.5}) + minetest.sound_play("nether_extract_blood", {pos = p, gain = 1}) + minetest.add_item(p, "nether:blood_extracted") + end + end + end + end, pos) + + return itemstack + end +}) + +minetest.register_craftitem("nether:hotbed", { + description = "Cooked Blood", + inventory_image = "nether_hotbed.png", + on_place = function(itemstack, _, pointed_thing) + if not pointed_thing then + return + end + if pointed_thing.type ~= "node" then + return + end + local pos = minetest.get_pointed_thing_position(pointed_thing) + local node = minetest.get_node(pos) + + if node.name ~= "nether:netherrack" then + return + end + + minetest.sound_play("default_place_node", {pos=pos}) + minetest.set_node(pos, {name = "nether:netherrack_soil"}) + + itemstack:take_item() + return itemstack + end +}) + + +minetest.register_tool("nether:pick_mushroom", { + description = "Nether Mushroom Pickaxe", + inventory_image = "nether_pick_mushroom.png", + tool_capabilities = { + max_drop_level=0, + groupcaps={ + cracky = {times={[3]=3}, uses=1, maxlevel=1}, + nether = {times={[3]=3}, uses=1, maxlevel=1}, + }, + }, +}) + +minetest.register_tool("nether:pick_wood", { + description = "Nether Wood Pickaxe", + inventory_image = "nether_pick_wood.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level=0, + groupcaps={ + cracky = {times={[3]=1.6}, uses=10, maxlevel=1}, + nether = {times={[2]=6, [3]=1.6}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, +}) + +minetest.register_tool("nether:pick_netherrack", { + description = "Netherrack Pickaxe", + inventory_image = "nether_pick_netherrack.png", + tool_capabilities = { + full_punch_interval = 1.3, + max_drop_level=0, + groupcaps={ + cracky = {times={[2]=2.0, [3]=1.20}, uses=20, maxlevel=1}, + nether = {times={[1]=16, [2]=2, [3]=1.20}, uses=20, maxlevel=1}, + }, + damage_groups = {fleshy=3}, + }, +}) + +minetest.register_tool("nether:pick_netherrack_blue", { + description = "Blue Netherrack Pickaxe", + inventory_image = "nether_pick_netherrack_blue.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}, + nether = {times={[1]=4.00, [2]=1.60, [3]=0.80}, uses=30, maxlevel=2}, + }, + damage_groups = {fleshy=4}, + }, +}) + +minetest.register_tool("nether:pick_white", { + description = "Siwtonic Pickaxe", + inventory_image = "nether_pick_white.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=3, + groupcaps={ + cracky = {times={[1]=1, [2]=0.8, [3]=0.3}, uses=180, maxlevel=3}, + nether = {times={[1]=1, [2]=0.5, [3]=0.3}, uses=180, maxlevel=3}, + }, + damage_groups = {fleshy=5}, + }, +}) + +minetest.register_tool("nether:axe_netherrack", { + description = "Netherrack Axe", + inventory_image = "nether_axe_netherrack.png", + tool_capabilities = { + full_punch_interval = 1.3, + max_drop_level=0, + groupcaps={ + choppy={times={[1]=2.9, [2]=1.9, [3]=1.4}, uses=20, maxlevel=1}, + }, + damage_groups = {fleshy=4}, + }, +}) + +minetest.register_tool("nether:axe_netherrack_blue", { + description = "Blue Netherrack Axe", + inventory_image = "nether_axe_netherrack_blue.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=2.5, [2]=1.5, [3]=1}, uses=30, maxlevel=2}, + }, + damage_groups = {fleshy=6}, + }, +}) + +minetest.register_tool("nether:axe_white", { + description = "Siwtonic Axe", + inventory_image = "nether_axe_white.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=1.2, [2]=0.5, [3]=0.3}, uses=180, maxlevel=2}, + }, + damage_groups = {fleshy=8}, + }, +}) + +minetest.register_tool("nether:shovel_netherrack", { + description = "Netherrack Shovel", + inventory_image = "nether_shovel_netherrack.png", + wield_image = "nether_shovel_netherrack.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.4, + max_drop_level=0, + groupcaps={ + crumbly = {times={[1]=1.7, [2]=1.1, [3]=0.45}, uses=22, maxlevel=2}, + }, + damage_groups = {fleshy=2}, + }, +}) + +minetest.register_tool("nether:shovel_netherrack_blue", { + description = "Blue Netherrack Shovel", + inventory_image = "nether_shovel_netherrack_blue.png", + wield_image = "nether_shovel_netherrack_blue.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.1, + max_drop_level=1, + groupcaps={ + crumbly = {times={[1]=1.4, [2]=0.8, [3]=0.35}, uses=50, maxlevel=2}, + }, + damage_groups = {fleshy=3}, + }, +}) + +minetest.register_tool("nether:shovel_white", { + description = "Siwtonic Shovel", + inventory_image = "nether_shovel_white.png", + wield_image = "nether_shovel_white.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1, + max_drop_level=1, + groupcaps={ + crumbly = {times={[1]=0.95, [2]=0.45, [3]=0.1}, uses=151, maxlevel=3}, + }, + damage_groups = {fleshy=4}, + }, +}) + +minetest.register_tool("nether:sword_netherrack", { + description = "Netherrack Sword", + inventory_image = "nether_sword_netherrack.png", + tool_capabilities = { + full_punch_interval = 1, + max_drop_level=0, + groupcaps={ + snappy={times={[2]=1.3, [3]=0.38}, uses=40, maxlevel=1}, + }, + damage_groups = {fleshy=5}, + }, +}) + +minetest.register_tool("nether:sword_netherrack_blue", { + description = "Blue Netherrack Sword", + inventory_image = "nether_sword_netherrack_blue.png", + tool_capabilities = { + full_punch_interval = 0.8, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=2.5, [2]=1.1, [3]=0.33}, uses=40, maxlevel=2}, + }, + damage_groups = {fleshy=7}, + }, +}) + +minetest.register_tool("nether:sword_white", { + description = "Siwtonic Sword", + inventory_image = "nether_sword_white.png", + wield_image = "nether_sword_white.png^[transformR90", + tool_capabilities = { + full_punch_interval = 0.7, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=1.7, [2]=0.8, [3]=0.2}, uses=100, maxlevel=3}, + }, + damage_groups = {fleshy=11}, + }, +}) + diff --git a/mods/nether/nether/pearl.lua b/mods/nether/nether/pearl.lua new file mode 100644 index 00000000..25dfac26 --- /dev/null +++ b/mods/nether/nether/pearl.lua @@ -0,0 +1,114 @@ +local function table_contains(t, v) + for _,i in pairs(t) do + if v == i then + return true + end + end + return false +end + +local teleportball_player +local function throw_pearl(item, player) + local playerpos = player:getpos() + local obj = minetest.add_entity({x=playerpos.x,y=playerpos.y+1.625,z=playerpos.z}, "nether:pearl_entity") + local dir = player:get_look_dir() + obj:setvelocity({x=dir.x*30, y=dir.y*30, z=dir.z*30}) + obj:setacceleration({x=dir.x*-3, y=-dir.y^8*80-10, z=dir.z*-3}) + if not minetest.setting_getbool("creative_mode") then + item:take_item() + end + teleportball_player = player + return item +end + +local ENTITY = { + timer=0, + collisionbox = {0,0,0,0,0,0}, --not pointable + physical = false, -- Collides with things + textures = {"nether_pearl.png"}, + lastpos={}, + player = "", +} + +local allowed_nodes = {"air", "default:water_source"} +local function teleport_player(pos, player) + local nd2 = minetest.get_node(pos).name + pos.y = pos.y+1 + local nd3 = minetest.get_node(pos).name + if table_contains(allowed_nodes, nd2) + and table_contains(allowed_nodes, nd3) then + pos.y = pos.y-1.4 + player:moveto(pos) + pos.y = pos.y-0.6 + return true + end + return false +end + +ENTITY.on_step = function(self, dtime) + self.timer=self.timer+dtime + +--[[ local delay = self.delay + if delay < 0.1 then + self.delay = delay+dtime + return + end + self.delay = 0]] + local pos = self.object:getpos() + local lastpos = self.lastpos + if lastpos.x + and vector.equals(vector.round(lastpos), vector.round(pos)) then + return + end + local player = self.player + if not player + or player == "" then + self.player = teleportball_player + player = teleportball_player + end + if not player then + self.object:remove() + return + end + if lastpos.x then --If there is no lastpos for some reason. + local free, p = minetest.line_of_sight(lastpos, pos) + if not free then + local nd1 = minetest.get_node(p).name + if not table_contains(allowed_nodes, nd1) + and nd1 ~= "ignore" then + self.object:remove() + minetest.after(0, function(p) --minetest.after us used that the sound is played after the teleportation + minetest.sound_play("nether_pearl", {pos=p, max_hear_distance=10}) + end, p) + p.y = p.y+1 + if teleport_player(p, player) then + return + end + p.y = p.y-2 + for i = -1,1,2 do + for _,j in pairs({{i, 0}, {0, i}}) do + if teleport_player({x=p.x+j[1], y=p.y, z=p.z+j[2]}, player) then + return + end + end + end + for i = -1,1,2 do + for j = -1,1,2 do + if teleport_player({x=p.x+j, y=p.y, z=p.z+i}, player) then + return + end + end + end + end + end + end + if self.timer > 20 then + self.object:remove() + return + end + self.lastpos = vector.new(pos) +end + +minetest.register_entity("nether:pearl_entity", ENTITY) + +minetest.override_item("nether:pearl", {on_use = throw_pearl}) diff --git a/mods/nether/nether/portal.lua b/mods/nether/nether/portal.lua new file mode 100644 index 00000000..5afb1233 --- /dev/null +++ b/mods/nether/nether/portal.lua @@ -0,0 +1,531 @@ +--code copied from Pilzadam's nether mod and edited +local portal_target = nether.buildings+1 +local damage_enabled = minetest.setting_getbool("enable_damage") + +local abm_allowed +minetest.after(5, function() + abm_allowed = true +end) + +table.icontains = table.icontains or function(t, v) + for _,i in ipairs(t) do + if i == v then + return true + end + end + return false +end + +local players_in_nether = {} +local file = io.open(minetest.get_worldpath()..'/nether_players', "r") +if file then + local contents = file:read('*all') + io.close(file) + if contents then + players_in_nether = string.split(contents, " ") + end +end + +local function save_nether_players() + local output = '' + for _,name in ipairs(players_in_nether) do + output = output..name..' ' + end + local f = io.open(minetest.get_worldpath()..'/nether_players', "w") + f:write(output) + io.close(f) +end + +local function player_to_nether(player, safe) + local pname = player:get_player_name() + if table.icontains(players_in_nether, pname) then + return + end + table.insert(players_in_nether, pname) + save_nether_players() + if not safe then + minetest.chat_send_player(pname, "For any reason you arrived here. Type /nether_help to find out things like craft recipes.") + player:set_hp(0) + end + player:set_sky({r=15, g=0, b=0}, "plain") +end + +local function player_from_nether(player) + local pname = player:get_player_name() + local changes + for n,i in ipairs(players_in_nether) do + if i == pname then + table.remove(players_in_nether, n) + changes = true + end + end + if changes then + save_nether_players() + end + player:set_sky(nil, "regular") +end + + +if damage_enabled then +local function player_exists(name) + for _,player in pairs(minetest.get_connected_players()) do + if player:get_player_name() == name then + return true + end + end + return false +end + +-- Chatcommands (edited) written by sss +--[[ +minetest.register_chatcommand("to_hell", { + params = "", + description = "Send someone to hell", + func = function(name, pname) + if not minetest.check_player_privs(name, {nether=true}) then + local self_player = minetest.get_player_by_name(name) + if self_player then + minetest.chat_send_player(name, "You can't send anyone to hell, go to hell instead") + player_to_nether(self_player) + else + minetest.chat_send_player(name, "Something went wrong.") + end + return false + end + if not player_exists(pname) then + pname = name + end + local player = minetest.get_player_by_name(pname) + if not player then + minetest.chat_send_player(name, "Something went wrong.") + return false + end + minetest.chat_send_player(pname, "Go to hell !!!") + player_to_nether(player) + return true + end +}) + +minetest.register_chatcommand("from_hell", { + params = "", + description = "Extract from hell", + func = function(name, pname) + if not minetest.check_player_privs(name, {nether=true}) then + local self_player = minetest.get_player_by_name(name) + if self_player then + minetest.chat_send_player(name, "You can't send anyone to hell, go to hell instead") + player_to_nether(self_player) + else + minetest.chat_send_player(name, "Something went wrong.") + end + return false + end + if not player_exists(pname) then + pname = name + end + local player = minetest.get_player_by_name(pname) + if not player then + minetest.chat_send_player(name, "Something went wrong.") + return false + end + minetest.chat_send_player(pname, "You are free now") + player_from_nether(player) + player:moveto({x=pos.x, y=100, z=pos.z}) + return true + end +}) +--]] +minetest.register_on_respawnplayer(function(player) + local pname = player:get_player_name() + if not table.icontains(players_in_nether, pname) then + return + end + local target = vector.add(player:getpos(), {x=math.random(-100,100), y=0, z=math.random(-100,100)}) + target.y = portal_target + math.random(4) + player:moveto(target) + minetest.after(0, function(pname, target) + local player = minetest.get_player_by_name(pname) + if player then + player:moveto(target) + end + end, pname, target) + return true +end) + +local function update_players() + for _,player in ipairs(minetest.get_connected_players()) do + local pname = player:get_player_name() + local ppos = player:getpos() + if table.icontains(players_in_nether, pname) then + if ppos.y > nether.start then + player:moveto({x=ppos.x, y=portal_target, z=ppos.z}) + player:set_sky({r=15, g=0, b=0}, "plain") + --[[minetest.kick_player(pname, "\n1. Maybe you were not allowed to teleport out of the nether.".. + "\n2. Maybe the server lagged.".. + "\n3. please rejoin")]] + end + elseif ppos.y < nether.start then + player:set_sky(nil, "regular") + player:moveto({x=ppos.x, y=20, z=ppos.z}) + --[[minetest.kick_player(pname, "\n1. Maybe you were not allowed to teleport to the nether.".. + "\n2. Maybe the server lagged.".. + "\n3. please rejoin")]] + end + end +end + +local timer = 0 --doesn't work if the server lags +minetest.register_globalstep(function(dtime) + timer = timer + dtime; + if timer >= 2 then + --minetest.after(1, update_players) + update_players() + timer = 0 + end +end) + +minetest.register_on_joinplayer(function(player) + minetest.after(0, function(player) + if player:getpos().y < nether.start then + player:set_sky({r=15, g=0, b=0}, "plain") + end + end, player) +end) + +local function remove_portal_essence(pos) + for z = -1,1 do + for y = -2,2 do + for x = -1,1 do + local p = {x=pos.x+x, y=pos.y+y, z=pos.z+z} + if minetest.get_node(p).name == "nether:portal" then + minetest.remove_node(p) + end + end + end + end +end + +minetest.register_abm({ + nodenames = {"nether:portal"}, + interval = 1, + chance = 2, + action = function(pos, node) + if not abm_allowed then + return + end + minetest.add_particlespawner({ + amount = 32, + time = 4, + minpos = {x=pos.x-0.25, y=pos.y-0.5, z=pos.z-0.25}, + maxpos = {x=pos.x+0.25, y=pos.y+0.34, z=pos.z+0.25}, + minvel = {x=0, y=1, z=0}, + maxvel = {x=0, y=2, z=0}, + minacc = {x=-0.5,y=-3,z=-0.3}, + maxacc = {x=0.5,y=-0.4,z=0.3}, + minexptime = 1, + maxexptime = 1, + minsize = 0.4, + maxsize = 3, + collisiondetection = true, + texture = "nether_portal_particle.png", + }) + for _,obj in pairs(minetest.get_objects_inside_radius(pos, 1)) do + if obj:is_player() then + local meta = minetest.get_meta(pos) + local target = minetest.string_to_pos(meta:get_string("target")) + if target then + minetest.after(3, function(obj, pos, target) + local pname = obj:get_player_name() + if table.icontains(players_in_nether, pname) then + return + end + local objpos = obj:getpos() + objpos.y = objpos.y+0.1 -- Fix some glitches at -8000 + if minetest.get_node(vector.round(objpos)).name ~= "nether:portal" then + return + end + + remove_portal_essence(pos) + + minetest.sound_play("nether_portal_usual", {to_player=pname, gain=1}) + player_to_nether(obj) + --obj:setpos(target) + + end, obj, pos, target) + end + end + end + end, +}) + +local function move_check(p1, max, dir) + local p = {x=p1.x, y=p1.y, z=p1.z} + local d = math.abs(max-p1[dir]) / (max-p1[dir]) + while p[dir] ~= max do + p[dir] = p[dir] + d + if minetest.get_node(p).name ~= "default:obsidian" then + return false + end + end + return true +end + +local function check_portal(p1, p2) + if p1.x ~= p2.x then + if not move_check(p1, p2.x, "x") then + return false + end + if not move_check(p2, p1.x, "x") then + return false + end + elseif p1.z ~= p2.z then + if not move_check(p1, p2.z, "z") then + return false + end + if not move_check(p2, p1.z, "z") then + return false + end + else + return false + end + + if not move_check(p1, p2.y, "y") then + return false + end + if not move_check(p2, p1.y, "y") then + return false + end + + return true +end + +local function is_portal(pos) + for d=-3,3 do + for y=-4,4 do + local px = {x=pos.x+d, y=pos.y+y, z=pos.z} + local pz = {x=pos.x, y=pos.y+y, z=pos.z+d} + if check_portal(px, {x=px.x+3, y=px.y+4, z=px.z}) then + return px, {x=px.x+3, y=px.y+4, z=px.z} + end + if check_portal(pz, {x=pz.x, y=pz.y+4, z=pz.z+3}) then + return pz, {x=pz.x, y=pz.y+4, z=pz.z+3} + end + end + end +end + +local function make_portal(pos) + local p1, p2 = is_portal(pos) + if not p1 + or not p2 then + print("[nether] something failed.") + return false + end + + if p1.y < nether.start then + print("[nether] aborted, obsidian portals can't be used to get out") + return + end + + for d=1,2 do + for y=p1.y+1,p2.y-1 do + local p + if p1.z == p2.z then + p = {x=p1.x+d, y=y, z=p1.z} + else + p = {x=p1.x, y=y, z=p1.z+d} + end + if minetest.get_node(p).name ~= "air" then + return false + end + end + end + + local param2 + if p1.z == p2.z then + param2 = 0 + else + param2 = 1 + end + + local target = {x=p1.x, y=p1.y, z=p1.z} + target.x = target.x + 1 + target.y = portal_target + math.random(4) + + for d=0,3 do + for y=p1.y,p2.y do + local p = {} + if param2 == 0 then + p = {x=p1.x+d, y=y, z=p1.z} + else + p = {x=p1.x, y=y, z=p1.z+d} + end + if minetest.get_node(p).name == "air" then + minetest.set_node(p, {name="nether:portal", param2=param2}) + end + local meta = minetest.get_meta(p) + meta:set_string("p1", minetest.pos_to_string(p1)) + meta:set_string("p2", minetest.pos_to_string(p2)) + meta:set_string("target", minetest.pos_to_string(target)) + end + end + print("[nether] construction accepted.") + return true +end + +minetest.override_item("default:obsidian", { + on_destruct = function(pos) + local meta = minetest.get_meta(pos) + local p1 = minetest.string_to_pos(meta:get_string("p1")) + local p2 = minetest.string_to_pos(meta:get_string("p2")) + local target = minetest.string_to_pos(meta:get_string("target")) + if not p1 or not p2 then + return + end + for x=p1.x,p2.x do + for y=p1.y,p2.y do + for z=p1.z,p2.z do + local nn = minetest.get_node({x=x,y=y,z=z}).name + if nn == "default:obsidian" or nn == "nether:portal" then + if nn == "nether:portal" then + minetest.remove_node({x=x,y=y,z=z}) + end + local m = minetest.get_meta({x=x,y=y,z=z}) + m:set_string("p1", "") + m:set_string("p2", "") + m:set_string("target", "") + end + end + end + end + meta = minetest.get_meta(target) + if not meta then + return + end + p1 = minetest.string_to_pos(meta:get_string("p1")) + p2 = minetest.string_to_pos(meta:get_string("p2")) + if not p1 or not p2 then + return + end + for x=p1.x,p2.x do + for y=p1.y,p2.y do + for z=p1.z,p2.z do + local nn = minetest.get_node({x=x,y=y,z=z}).name + if nn == "default:obsidian" or nn == "nether:portal" then + if nn == "nether:portal" then + minetest.remove_node({x=x,y=y,z=z}) + end + local m = minetest.get_meta({x=x,y=y,z=z}) + m:set_string("p1", "") + m:set_string("p2", "") + m:set_string("target", "") + end + end + end + end + end +}) + +minetest.after(0.1, function() + minetest.override_item("default:mese_crystal_fragment", { + on_place = function(stack, player, pt) + if pt.under + and minetest.get_node(pt.under).name == "default:obsidian" then + print("[nether] tries to enable a portal") + local done = make_portal(pt.under) + if done then + minetest.chat_send_player( + player:get_player_name(), + "Warning: If you are in the nether you may not be able to find the way out!" + ) + if not minetest.setting_getbool("creative_mode") then + stack:take_item() + end + end + end + return stack + end + }) +end) +end + + +vector.square = vector.square or +function(r) + local tab, n = {}, 1 + for i = -r+1, r do + for j = -1, 1, 2 do + local a, b = r*j, i*j + tab[n] = {a, b} + tab[n+1] = {b, a} + n=n+2 + end + end + return tab +end + +local function netherport(pos) + local x, y, z = pos.x, pos.y, pos.z + for _,i in ipairs({-1, 3}) do + if minetest.get_node({x=x, y=y+i, z=z}).name ~= "nether:white" then + return + end + end + for _,sn in ipairs(vector.square(1)) do + if minetest.get_node({x=x+sn[1], y=y-1, z=z+sn[2]}).name ~= "nether:netherrack" + or minetest.get_node({x=x+sn[1], y=y+3, z=z+sn[2]}).name ~= "nether:blood_cooked" then + return + end + end + for _,sn in ipairs(vector.square(2)) do + if minetest.get_node({x=x+sn[1], y=y-1, z=z+sn[2]}).name ~= "nether:netherrack_black" + or minetest.get_node({x=x+sn[1], y=y+3, z=z+sn[2]}).name ~= "nether:wood_empty" then + return + end + end + for i = -1,1,2 do + for j = -1,1,2 do + if minetest.get_node({x=x+i, y=y+2, z=z+j}).name ~= "nether:apple" then + return + end + end + end + for i = -2,2,4 do + for j = 0,2 do + for k = -2,2,4 do + if minetest.get_node({x=x+i, y=y+j, z=z+k}).name ~= "nether:netherrack_brick_blue" then + return + end + end + end + end + for i = -1,1 do + for j = -1,1 do + if minetest.get_node({x=x+i, y=y+4, z=z+j}).name ~= "nether:wood_empty" then + return + end + end + end + return true +end + +function nether_port(player, pos) + if not player + or not pos + or not pos.x then + print("[nether] something failed.") + return + end + if not netherport(pos) then + return + end + minetest.sound_play("nether_teleporter", {pos=pos}) + if pos.y < nether.start then + player_from_nether(player) + player:moveto({x=pos.x, y=100, z=pos.z}) + else + player:moveto({x=pos.x, y=portal_target+math.random(4), z=pos.z}) + player_to_nether(player, true) + end + return true +end diff --git a/mods/nether/nether/rest/Nicht Leere Datei.lua b/mods/nether/nether/rest/Nicht Leere Datei.lua new file mode 100644 index 00000000..ed3353f7 --- /dev/null +++ b/mods/nether/nether/rest/Nicht Leere Datei.lua @@ -0,0 +1,365 @@ +--[[ Nether leaves +minetest.register_node("nether:leaves", { + description = "Nether Leaves", + drawtype = "allfaces_optional", +-- visual_scale = 1.189, --scale^2=sqrt(2) + tiles = {"nether_leaves.png"}, + paramtype = "light", + groups = {snappy=3, leafdecay=2}, + sounds = default.node_sound_leaves_defaults(), +})]] + +--[[ Nether Lava +minetest.register_node("nether:lava_flowing", { + description = "Nether Lava (flowing)", + inventory_image = minetest.inventorycube("default_lava.png"), + drawtype = "flowingliquid", + tiles = {"default_lava.png"}, + paramtype = "light", + light_source = LIGHT_MAX - 1, + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + liquidtype = "flowing", + liquid_alternative_flowing = "nether:lava_flowing", + liquid_alternative_source = "default:lava_source", + liquid_viscosity = LAVA_VISC, + damage_per_second = 4*2, + post_effect_color = {a=192, r=255, g=64, b=0}, + special_materials = { + {image="default_lava.png", backface_culling=false}, + {image="default_lava.png", backface_culling=true}, + }, + groups = {lava=3, liquid=2, hot=3}, +}) + +minetest.register_node("nether:lava_source", { + description = "Nether Lava", + inventory_image = minetest.inventorycube("default_lava.png"), + drawtype = "liquid", + tiles = {"default_lava.png"}, + paramtype = "light", + light_source = LIGHT_MAX - 1, + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + liquidtype = "source", + liquid_alternative_flowing = "nether:lava_flowing", + liquid_alternative_source = "default:lava_source", + liquid_viscosity = LAVA_VISC, + damage_per_second = 4*2, + post_effect_color = {a=192, r=255, g=64, b=0}, + special_materials = { + -- New-style lava source material (mostly unused) + {image="default_lava.png", backface_culling=false}, + }, + groups = {lava=3, liquid=2, hot=3}, +})]] + +-- Throne of Hades +HADES_THRONE = { + -- Lava Moat + {pos={x=-1,y=-1,z=-1}, block="default:lava_source"}, + {pos={x=-1,y=-1,z=0}, block="default:lava_source"}, + {pos={x=-1,y=-1,z=1}, block="default:lava_source"}, + {pos={x=-1,y=-1,z=2}, block="default:lava_source"}, + {pos={x=-1,y=-1,z=3}, block="default:lava_source"}, + {pos={x=-1,y=-1,z=4}, block="default:lava_source"}, + {pos={x=-1,y=-1,z=5}, block="default:lava_source"}, + {pos={x=-1,y=-1,z=6}, block="default:lava_source"}, + {pos={x=-1,y=-1,z=7}, block="default:lava_source"}, + {pos={x=0,y=-1,z=7}, block="default:lava_source"}, + {pos={x=1,y=-1,z=7}, block="default:lava_source"}, + {pos={x=2,y=-1,z=7}, block="default:lava_source"}, + {pos={x=3,y=-1,z=7}, block="default:lava_source"}, + {pos={x=4,y=-1,z=7}, block="default:lava_source"}, + {pos={x=5,y=-1,z=7}, block="default:lava_source"}, + {pos={x=6,y=-1,z=7}, block="default:lava_source"}, + {pos={x=6,y=-1,z=6}, block="default:lava_source"}, + {pos={x=6,y=-1,z=5}, block="default:lava_source"}, + {pos={x=6,y=-1,z=4}, block="default:lava_source"}, + {pos={x=6,y=-1,z=3}, block="default:lava_source"}, + {pos={x=6,y=-1,z=2}, block="default:lava_source"}, + {pos={x=6,y=-1,z=1}, block="default:lava_source"}, + {pos={x=6,y=-1,z=0}, block="default:lava_source"}, + {pos={x=6,y=-1,z=-1}, block="default:lava_source"}, + {pos={x=5,y=-1,z=-1}, block="default:lava_source"}, + {pos={x=4,y=-1,z=-1}, block="default:lava_source"}, + {pos={x=3,y=-1,z=-1}, block="default:lava_source"}, + {pos={x=2,y=-1,z=-1}, block="default:lava_source"}, + {pos={x=1,y=-1,z=-1}, block="default:lava_source"}, + {pos={x=0,y=-1,z=-1}, block="default:lava_source"}, + -- Floor 1 + {pos={x=0,y=0,z=0}, block="nether:netherrack"}, + {pos={x=0,y=0,z=1}, block="nether:netherrack"}, + {pos={x=0,y=0,z=2}, block="nether:netherrack"}, + {pos={x=0,y=0,z=3}, block="nether:netherrack"}, + {pos={x=0,y=0,z=4}, block="nether:netherrack"}, + {pos={x=0,y=0,z=5}, block="nether:netherrack"}, + {pos={x=1,y=0,z=5}, block="nether:netherrack"}, + {pos={x=2,y=0,z=5}, block="nether:netherrack"}, + {pos={x=3,y=0,z=5}, block="nether:netherrack"}, + {pos={x=4,y=0,z=5}, block="nether:netherrack"}, + {pos={x=5,y=0,z=5}, block="nether:netherrack"}, + {pos={x=0,y=0,z=6}, block="nether:netherrack"}, + {pos={x=1,y=0,z=6}, block="nether:netherrack"}, + {pos={x=2,y=0,z=6}, block="nether:netherrack"}, + {pos={x=3,y=0,z=6}, block="nether:netherrack"}, + {pos={x=4,y=0,z=6}, block="nether:netherrack"}, + {pos={x=5,y=0,z=6}, block="nether:netherrack"}, + {pos={x=5,y=0,z=4}, block="nether:netherrack"}, + {pos={x=5,y=0,z=3}, block="nether:netherrack"}, + {pos={x=5,y=0,z=2}, block="nether:netherrack"}, + {pos={x=5,y=0,z=1}, block="nether:netherrack"}, + {pos={x=5,y=0,z=0}, block="nether:netherrack"}, + {pos={x=4,y=0,z=0}, block="nether:netherrack"}, + {pos={x=3,y=0,z=0}, block="nether:netherrack"}, + {pos={x=2,y=0,z=0}, block="nether:netherrack"}, + {pos={x=1,y=0,z=0}, block="nether:netherrack"}, + -- Floor 2 + {pos={x=0,y=1,z=0}, block="nether:netherrack"}, + {pos={x=0,y=1,z=1}, block="nether:netherrack"}, + {pos={x=0,y=1,z=2}, block="nether:netherrack"}, + {pos={x=0,y=1,z=3}, block="nether:netherrack"}, + {pos={x=0,y=1,z=4}, block="nether:netherrack"}, + {pos={x=0,y=1,z=5}, block="nether:netherrack"}, + {pos={x=1,y=1,z=5}, block="nether:netherrack"}, + {pos={x=2,y=1,z=5}, block="nether:netherrack"}, + {pos={x=3,y=1,z=5}, block="nether:netherrack"}, + {pos={x=4,y=1,z=5}, block="nether:netherrack"}, + {pos={x=5,y=1,z=5}, block="nether:netherrack"}, + {pos={x=0,y=1,z=6}, block="nether:netherrack"}, + {pos={x=1,y=1,z=6}, block="nether:netherrack"}, + {pos={x=2,y=1,z=6}, block="nether:netherrack"}, + {pos={x=3,y=1,z=6}, block="nether:netherrack"}, + {pos={x=4,y=1,z=6}, block="nether:netherrack"}, + {pos={x=5,y=1,z=6}, block="nether:netherrack"}, + {pos={x=5,y=1,z=4}, block="nether:netherrack"}, + {pos={x=5,y=1,z=3}, block="nether:netherrack"}, + {pos={x=5,y=1,z=2}, block="nether:netherrack"}, + {pos={x=5,y=1,z=1}, block="nether:netherrack"}, + {pos={x=5,y=1,z=0}, block="nether:netherrack"}, + {pos={x=4,y=1,z=0}, block="nether:netherrack"}, + {pos={x=3,y=1,z=1}, block="nether:netherrack"}, + {pos={x=2,y=1,z=1}, block="nether:netherrack"}, + {pos={x=1,y=1,z=0}, block="nether:netherrack"}, + {pos={x=1,y=1,z=1}, block="nether:netherrack"}, + {pos={x=4,y=1,z=1}, block="nether:netherrack"}, + -- Floor 3 + {pos={x=0,y=2,z=0}, block="nether:netherrack"}, + {pos={x=0,y=2,z=1}, block="nether:netherrack"}, + {pos={x=0,y=2,z=2}, block="nether:netherrack"}, + {pos={x=0,y=2,z=3}, block="nether:netherrack"}, + {pos={x=0,y=2,z=4}, block="nether:netherrack"}, + {pos={x=0,y=2,z=5}, block="nether:netherrack"}, + {pos={x=1,y=2,z=5}, block="nether:netherrack"}, + {pos={x=2,y=2,z=5}, block="nether:netherrack"}, + {pos={x=3,y=2,z=5}, block="nether:netherrack"}, + {pos={x=4,y=2,z=5}, block="nether:netherrack"}, + {pos={x=5,y=2,z=5}, block="nether:netherrack"}, + {pos={x=0,y=2,z=6}, block="nether:netherrack"}, + {pos={x=1,y=2,z=6}, block="nether:netherrack"}, + {pos={x=2,y=2,z=6}, block="nether:netherrack"}, + {pos={x=3,y=2,z=6}, block="nether:netherrack"}, + {pos={x=4,y=2,z=6}, block="nether:netherrack"}, + {pos={x=5,y=2,z=6}, block="nether:netherrack"}, + {pos={x=5,y=2,z=4}, block="nether:netherrack"}, + {pos={x=5,y=2,z=3}, block="nether:netherrack"}, + {pos={x=5,y=2,z=2}, block="nether:netherrack"}, + {pos={x=5,y=2,z=1}, block="nether:netherrack"}, + {pos={x=5,y=2,z=0}, block="nether:netherrack"}, + {pos={x=4,y=2,z=0}, block="nether:netherrack"}, + {pos={x=3,y=2,z=2}, block="nether:netherrack"}, + {pos={x=2,y=2,z=2}, block="nether:netherrack"}, + {pos={x=1,y=2,z=0}, block="nether:netherrack"}, + {pos={x=1,y=2,z=1}, block="nether:netherrack"}, + {pos={x=4,y=2,z=1}, block="nether:netherrack"}, + {pos={x=1,y=2,z=2}, block="nether:netherrack"}, + {pos={x=4,y=2,z=2}, block="nether:netherrack"}, + -- Floor 4 + {pos={x=0,y=3,z=0}, block="nether:netherrack"}, + {pos={x=0,y=3,z=1}, block="nether:netherrack"}, + {pos={x=0,y=3,z=2}, block="nether:netherrack"}, + {pos={x=0,y=3,z=3}, block="nether:netherrack"}, + {pos={x=0,y=3,z=4}, block="nether:netherrack"}, + {pos={x=0,y=3,z=5}, block="nether:netherrack"}, + {pos={x=1,y=3,z=5}, block="nether:netherrack"}, + {pos={x=2,y=3,z=5}, block="nether:netherrack"}, + {pos={x=3,y=3,z=5}, block="nether:netherrack"}, + {pos={x=4,y=3,z=5}, block="nether:netherrack"}, + {pos={x=5,y=3,z=5}, block="nether:netherrack"}, + {pos={x=0,y=3,z=6}, block="nether:netherrack"}, + {pos={x=1,y=3,z=6}, block="nether:netherrack"}, + {pos={x=2,y=3,z=6}, block="nether:netherrack"}, + {pos={x=3,y=3,z=6}, block="nether:netherrack"}, + {pos={x=4,y=3,z=6}, block="nether:netherrack"}, + {pos={x=5,y=3,z=6}, block="nether:netherrack"}, + {pos={x=5,y=3,z=4}, block="nether:netherrack"}, + {pos={x=5,y=3,z=3}, block="nether:netherrack"}, + {pos={x=5,y=3,z=2}, block="nether:netherrack"}, + {pos={x=5,y=3,z=1}, block="nether:netherrack"}, + {pos={x=5,y=3,z=0}, block="nether:netherrack"}, + {pos={x=4,y=3,z=0}, block="nether:netherrack"}, + {pos={x=3,y=3,z=3}, block="nether:netherrack"}, + {pos={x=2,y=3,z=3}, block="nether:netherrack"}, + {pos={x=1,y=3,z=0}, block="nether:netherrack"}, + {pos={x=1,y=3,z=1}, block="nether:netherrack"}, + {pos={x=4,y=3,z=1}, block="nether:netherrack"}, + {pos={x=1,y=3,z=2}, block="nether:netherrack"}, + {pos={x=4,y=3,z=2}, block="nether:netherrack"}, + {pos={x=1,y=3,z=3}, block="nether:netherrack"}, + {pos={x=4,y=3,z=3}, block="nether:netherrack"}, + {pos={x=1,y=3,z=4}, block="nether:netherrack"}, + {pos={x=4,y=3,z=4}, block="nether:netherrack"}, + {pos={x=2,y=3,z=4}, block="nether:netherrack"}, + {pos={x=2,y=3,z=5}, block="nether:netherrack"}, + {pos={x=3,y=3,z=4}, block="nether:netherrack"}, + {pos={x=3,y=3,z=5}, block="nether:netherrack"}, + -- Floor 5 + {pos={x=2,y=4,z=4}, block="nether:netherrack"}, + {pos={x=2,y=4,z=5}, block="nether:netherrack"}, + {pos={x=3,y=4,z=4}, block="nether:netherrack"}, + {pos={x=3,y=4,z=5}, block="nether:netherrack"}, + {pos={x=2,y=4,z=6}, block="nether:netherrack"}, + {pos={x=3,y=4,z=6}, block="nether:netherrack"}, + -- Torches on floor 5 + {pos={x=0,y=4,z=4}, block="nether:torch_bottom"}, + {pos={x=1,y=4,z=4}, block="nether:torch_bottom"}, + {pos={x=0,y=4,z=5}, block="nether:torch_bottom"}, + {pos={x=1,y=4,z=5}, block="nether:torch_bottom"}, + {pos={x=4,y=4,z=4}, block="nether:torch_bottom"}, + {pos={x=5,y=4,z=4}, block="nether:torch_bottom"}, + {pos={x=4,y=4,z=5}, block="nether:torch_bottom"}, + {pos={x=5,y=4,z=5}, block="nether:torch_bottom"}, + {pos={x=0,y=4,z=0}, block="nether:torch_bottom"}, + {pos={x=1,y=4,z=0}, block="nether:torch_bottom"}, + {pos={x=0,y=4,z=1}, block="nether:torch_bottom"}, + {pos={x=1,y=4,z=1}, block="nether:torch_bottom"}, + {pos={x=4,y=4,z=0}, block="nether:torch_bottom"}, + {pos={x=5,y=4,z=0}, block="nether:torch_bottom"}, + {pos={x=4,y=4,z=1}, block="nether:torch_bottom"}, + {pos={x=5,y=4,z=1}, block="nether:torch_bottom"}, + {pos={x=0,y=4,z=2}, block="nether:torch_bottom"}, + {pos={x=1,y=4,z=2}, block="nether:torch_bottom"}, + {pos={x=0,y=4,z=3}, block="nether:torch_bottom"}, + {pos={x=1,y=4,z=3}, block="nether:torch_bottom"}, + {pos={x=4,y=4,z=2}, block="nether:torch_bottom"}, + {pos={x=5,y=4,z=2}, block="nether:torch_bottom"}, + {pos={x=4,y=4,z=3}, block="nether:torch_bottom"}, + {pos={x=5,y=4,z=3}, block="nether:torch_bottom"}, + {pos={x=4,y=4,z=6}, block="nether:torch_bottom"}, + {pos={x=5,y=4,z=6}, block="nether:torch_bottom"}, + {pos={x=0,y=4,z=6}, block="nether:torch_bottom"}, + {pos={x=1,y=4,z=6}, block="nether:torch_bottom"}, + -- Nether Portal + {pos={x=1,y=5,z=6}, portalblock=true}, +} + + +minetest.register_on_generated(function(minp, maxp, seed) + if minp.y <= 99 then + return + end + local vm, emin, emax = minetest.get_mapgen_object("voxelmanip") + local data = vm:get_data() + local area = VoxelArea:new{MinEdge=emin, MaxEdge=emax} + + local perlin1 = minetest.get_perlin(13,3, 0.5, 50) --Get map specific perlin + local perlin2 = minetest.get_perlin(133,3, 0.5, 10) + for x=minp.x, maxp.x, 1 do + for z=minp.z, maxp.z, 1 do + local test = perlin1:get2d({x=x, y=z})+1 + local test2 = perlin2:get2d({x=x, y=z}) +-- print(test) + if test2 < 0 then + h = 200+math.floor(test2*3+0.5) + else + h = 203+math.floor(test*3+0.5) + end + for y=minp.y, maxp.y, 1 do + p_addpos = area:index(x, y, z) + if y <= h then + data[p_addpos] = c_netherrack + elseif y <= 201 then + data[p_addpos] = c_lava + end + end + end + end + + vm:set_data(data) + --vm:set_lighting({day=0, night=0}) + vm:calc_lighting() + vm:update_liquids() + vm:write_to_map() +end) + + +We don't want the Throne of Hades to get regenerated (especially since it will screw up portals) + if (minp.x <= HADES_THRONE_STARTPOS_ABS.x) + and (maxp.x >= HADES_THRONE_STARTPOS_ABS.x) + and (minp.y <= HADES_THRONE_STARTPOS_ABS.y) + and (maxp.y >= HADES_THRONE_STARTPOS_ABS.y) + and (minp.z <= HADES_THRONE_STARTPOS_ABS.z) + and (maxp.z >= HADES_THRONE_STARTPOS_ABS.z) + and (nether:fileexists(HADES_THRONE_GENERATED) == false) then + -- Pass 3: Make way for the Throne of Hades! + for x=(HADES_THRONE_STARTPOS_ABS.x - 1), (HADES_THRONE_ENDPOS_ABS.x + 1), 1 do + for z=(HADES_THRONE_STARTPOS_ABS.z - 1), (HADES_THRONE_ENDPOS_ABS.z + 1), 1 do + -- Notice I did not put a -1 for the beginning. This is because we don't want the throne to float + for y=HADES_THRONE_STARTPOS_ABS.y, (HADES_THRONE_ENDPOS_ABS.y + 1), 1 do + addpos = {x=x, y=y, z=z} + minetest.add_node(addpos, {name="air"}) + end + end + end + -- Pass 4: Throne of Hades + for i,v in ipairs(HADES_THRONE_ABS) do + if v.portalblock == true then + NETHER_PORTALS_FROM_NETHER[table.getn(NETHER_PORTALS_FROM_NETHER)+1] = v.pos + nether:save_portal_from_nether(v.pos) + nether:createportal(v.pos) + else + minetest.add_node(v.pos, {name=v.block}) + end + end + nether:touch(HADES_THRONE_GENERATED) + end + +--[[ Create a nether tree +function nether:grow_nethertree(pos) + --TRUNK + pos.y=pos.y+1 + local trunkpos={x=pos.x, z=pos.z} + for y=pos.y, pos.y+4+math.random(2) do + trunkpos.y=y + minetest.add_node(trunkpos, {name="nether:tree"}) + end + --LEAVES + local leafpos={} + for x=(trunkpos.x-NETHER_TREESIZE), (trunkpos.x+NETHER_TREESIZE), 1 do + for y=(trunkpos.y-NETHER_TREESIZE), (trunkpos.y+NETHER_TREESIZE), 1 do + for z=(trunkpos.z-NETHER_TREESIZE), (trunkpos.z+NETHER_TREESIZE), 1 do + if (x-trunkpos.x)*(x-trunkpos.x) + +(y-trunkpos.y)*(y-trunkpos.y) + +(z-trunkpos.z)*(z-trunkpos.z) + <= NETHER_TREESIZE*NETHER_TREESIZE + NETHER_TREESIZE then + leafpos={x=x, y=y, z=z} + if minetest.get_node(leafpos).name=="air" then + if math.random(NETHER_APPLE_FREQ) == 1 then + if math.random(NETHER_HEAL_APPLE_FREQ) == 1 then + minetest.add_node(leafpos, {name="default:apple"}) + else + minetest.add_node(leafpos, {name="nether:apple"}) + end + else + minetest.add_node(leafpos, {name="nether:leaves"}) + end + end + end + end + end + end +end]] diff --git a/mods/nether/nether/rest/nether_fruit_leaves.png b/mods/nether/nether/rest/nether_fruit_leaves.png new file mode 100644 index 00000000..c230ae51 Binary files /dev/null and b/mods/nether/nether/rest/nether_fruit_leaves.png differ diff --git a/mods/nether/nether/rest/nether_glowstone.png b/mods/nether/nether/rest/nether_glowstone.png new file mode 100644 index 00000000..6a6a7a4b Binary files /dev/null and b/mods/nether/nether/rest/nether_glowstone.png differ diff --git a/mods/nether/nether/rest/nether_leaves.png b/mods/nether/nether/rest/nether_leaves.png new file mode 100644 index 00000000..b6d304d9 Binary files /dev/null and b/mods/nether/nether/rest/nether_leaves.png differ diff --git a/mods/nether/nether/rest/nether_leaves_decision/nether_leaves.png b/mods/nether/nether/rest/nether_leaves_decision/nether_leaves.png new file mode 100644 index 00000000..bed61624 Binary files /dev/null and b/mods/nether/nether/rest/nether_leaves_decision/nether_leaves.png differ diff --git a/mods/nether/nether/rest/nether_leaves_decision/nether_leaves_high_cont.png b/mods/nether/nether/rest/nether_leaves_decision/nether_leaves_high_cont.png new file mode 100644 index 00000000..7ad80591 Binary files /dev/null and b/mods/nether/nether/rest/nether_leaves_decision/nether_leaves_high_cont.png differ diff --git a/mods/nether/nether/rest/nether_netherrack.png1 b/mods/nether/nether/rest/nether_netherrack.png1 new file mode 100644 index 00000000..66cccbe1 Binary files /dev/null and b/mods/nether/nether/rest/nether_netherrack.png1 differ diff --git a/mods/nether/nether/rest/nether_portal_creator.png b/mods/nether/nether/rest/nether_portal_creator.png new file mode 100644 index 00000000..e3f8e805 Binary files /dev/null and b/mods/nether/nether/rest/nether_portal_creator.png differ diff --git a/mods/nether/nether/rest/nether_tree.png b/mods/nether/nether/rest/nether_tree.png new file mode 100644 index 00000000..0c4cd89a Binary files /dev/null and b/mods/nether/nether/rest/nether_tree.png differ diff --git a/mods/nether/nether/rest/nether_tree_top.png b/mods/nether/nether/rest/nether_tree_top.png new file mode 100644 index 00000000..eb82f062 Binary files /dev/null and b/mods/nether/nether/rest/nether_tree_top.png differ diff --git a/mods/nether/nether/rest/temp.txt b/mods/nether/nether/rest/temp.txt new file mode 100644 index 00000000..feafa5a1 --- /dev/null +++ b/mods/nether/nether/rest/temp.txt @@ -0,0 +1,166 @@ + -- Floor 1 + {pos={x=0,y=0,z=0}, block="nether:netherrack"}, + {pos={x=0,y=0,z=1}, block="nether:netherrack"}, + {pos={x=0,y=0,z=2}, block="nether:netherrack"}, + {pos={x=0,y=0,z=3}, block="nether:netherrack"}, + {pos={x=0,y=0,z=4}, block="nether:netherrack"}, + {pos={x=0,y=0,z=5}, block="nether:netherrack"}, + {pos={x=1,y=0,z=5}, block="nether:netherrack"}, + {pos={x=2,y=0,z=5}, block="nether:netherrack"}, + {pos={x=3,y=0,z=5}, block="nether:netherrack"}, + {pos={x=4,y=0,z=5}, block="nether:netherrack"}, + {pos={x=5,y=0,z=5}, block="nether:netherrack"}, + {pos={x=0,y=0,z=6}, block="nether:netherrack"}, + {pos={x=1,y=0,z=6}, block="nether:netherrack"}, + {pos={x=2,y=0,z=6}, block="nether:netherrack"}, + {pos={x=3,y=0,z=6}, block="nether:netherrack"}, + {pos={x=4,y=0,z=6}, block="nether:netherrack"}, + {pos={x=5,y=0,z=6}, block="nether:netherrack"}, + {pos={x=5,y=0,z=4}, block="nether:netherrack"}, + {pos={x=5,y=0,z=3}, block="nether:netherrack"}, + {pos={x=5,y=0,z=2}, block="nether:netherrack"}, + {pos={x=5,y=0,z=1}, block="nether:netherrack"}, + {pos={x=5,y=0,z=0}, block="nether:netherrack"}, + {pos={x=4,y=0,z=0}, block="nether:netherrack"}, + {pos={x=3,y=0,z=0}, block="nether:netherrack"}, + {pos={x=2,y=0,z=0}, block="nether:netherrack"}, + {pos={x=1,y=0,z=0}, block="nether:netherrack"}, + -- Floor 2 + {pos={x=0,y=1,z=0}, block="nether:netherrack"}, + {pos={x=0,y=1,z=1}, block="nether:netherrack"}, + {pos={x=0,y=1,z=2}, block="nether:netherrack"}, + {pos={x=0,y=1,z=3}, block="nether:netherrack"}, + {pos={x=0,y=1,z=4}, block="nether:netherrack"}, + {pos={x=0,y=1,z=5}, block="nether:netherrack"}, + {pos={x=1,y=1,z=5}, block="nether:netherrack"}, + {pos={x=2,y=1,z=5}, block="nether:netherrack"}, + {pos={x=3,y=1,z=5}, block="nether:netherrack"}, + {pos={x=4,y=1,z=5}, block="nether:netherrack"}, + {pos={x=5,y=1,z=5}, block="nether:netherrack"}, + {pos={x=0,y=1,z=6}, block="nether:netherrack"}, + {pos={x=1,y=1,z=6}, block="nether:netherrack"}, + {pos={x=2,y=1,z=6}, block="nether:netherrack"}, + {pos={x=3,y=1,z=6}, block="nether:netherrack"}, + {pos={x=4,y=1,z=6}, block="nether:netherrack"}, + {pos={x=5,y=1,z=6}, block="nether:netherrack"}, + {pos={x=5,y=1,z=4}, block="nether:netherrack"}, + {pos={x=5,y=1,z=3}, block="nether:netherrack"}, + {pos={x=5,y=1,z=2}, block="nether:netherrack"}, + {pos={x=5,y=1,z=1}, block="nether:netherrack"}, + {pos={x=5,y=1,z=0}, block="nether:netherrack"}, + {pos={x=4,y=1,z=0}, block="nether:netherrack"}, + {pos={x=3,y=1,z=1}, block="nether:netherrack"}, + {pos={x=2,y=1,z=1}, block="nether:netherrack"}, + {pos={x=1,y=1,z=0}, block="nether:netherrack"}, + {pos={x=1,y=1,z=1}, block="nether:netherrack"}, + {pos={x=4,y=1,z=1}, block="nether:netherrack"}, + -- Floor 3 + {pos={x=0,y=2,z=0}, block="nether:netherrack"}, + {pos={x=0,y=2,z=1}, block="nether:netherrack"}, + {pos={x=0,y=2,z=2}, block="nether:netherrack"}, + {pos={x=0,y=2,z=3}, block="nether:netherrack"}, + {pos={x=0,y=2,z=4}, block="nether:netherrack"}, + {pos={x=0,y=2,z=5}, block="nether:netherrack"}, + {pos={x=1,y=2,z=5}, block="nether:netherrack"}, + {pos={x=2,y=2,z=5}, block="nether:netherrack"}, + {pos={x=3,y=2,z=5}, block="nether:netherrack"}, + {pos={x=4,y=2,z=5}, block="nether:netherrack"}, + {pos={x=5,y=2,z=5}, block="nether:netherrack"}, + {pos={x=0,y=2,z=6}, block="nether:netherrack"}, + {pos={x=1,y=2,z=6}, block="nether:netherrack"}, + {pos={x=2,y=2,z=6}, block="nether:netherrack"}, + {pos={x=3,y=2,z=6}, block="nether:netherrack"}, + {pos={x=4,y=2,z=6}, block="nether:netherrack"}, + {pos={x=5,y=2,z=6}, block="nether:netherrack"}, + {pos={x=5,y=2,z=4}, block="nether:netherrack"}, + {pos={x=5,y=2,z=3}, block="nether:netherrack"}, + {pos={x=5,y=2,z=2}, block="nether:netherrack"}, + {pos={x=5,y=2,z=1}, block="nether:netherrack"}, + {pos={x=5,y=2,z=0}, block="nether:netherrack"}, + {pos={x=4,y=2,z=0}, block="nether:netherrack"}, + {pos={x=3,y=2,z=2}, block="nether:netherrack"}, + {pos={x=2,y=2,z=2}, block="nether:netherrack"}, + {pos={x=1,y=2,z=0}, block="nether:netherrack"}, + {pos={x=1,y=2,z=1}, block="nether:netherrack"}, + {pos={x=4,y=2,z=1}, block="nether:netherrack"}, + {pos={x=1,y=2,z=2}, block="nether:netherrack"}, + {pos={x=4,y=2,z=2}, block="nether:netherrack"}, + -- Floor 4 + {pos={x=0,y=3,z=0}, block="nether:netherrack"}, + {pos={x=0,y=3,z=1}, block="nether:netherrack"}, + {pos={x=0,y=3,z=2}, block="nether:netherrack"}, + {pos={x=0,y=3,z=3}, block="nether:netherrack"}, + {pos={x=0,y=3,z=4}, block="nether:netherrack"}, + {pos={x=0,y=3,z=5}, block="nether:netherrack"}, + {pos={x=1,y=3,z=5}, block="nether:netherrack"}, + {pos={x=2,y=3,z=5}, block="nether:netherrack"}, + {pos={x=3,y=3,z=5}, block="nether:netherrack"}, + {pos={x=4,y=3,z=5}, block="nether:netherrack"}, + {pos={x=5,y=3,z=5}, block="nether:netherrack"}, + {pos={x=0,y=3,z=6}, block="nether:netherrack"}, + {pos={x=1,y=3,z=6}, block="nether:netherrack"}, + {pos={x=2,y=3,z=6}, block="nether:netherrack"}, + {pos={x=3,y=3,z=6}, block="nether:netherrack"}, + {pos={x=4,y=3,z=6}, block="nether:netherrack"}, + {pos={x=5,y=3,z=6}, block="nether:netherrack"}, + {pos={x=5,y=3,z=4}, block="nether:netherrack"}, + {pos={x=5,y=3,z=3}, block="nether:netherrack"}, + {pos={x=5,y=3,z=2}, block="nether:netherrack"}, + {pos={x=5,y=3,z=1}, block="nether:netherrack"}, + {pos={x=5,y=3,z=0}, block="nether:netherrack"}, + {pos={x=4,y=3,z=0}, block="nether:netherrack"}, + {pos={x=3,y=3,z=3}, block="nether:netherrack"}, + {pos={x=2,y=3,z=3}, block="nether:netherrack"}, + {pos={x=1,y=3,z=0}, block="nether:netherrack"}, + {pos={x=1,y=3,z=1}, block="nether:netherrack"}, + {pos={x=4,y=3,z=1}, block="nether:netherrack"}, + {pos={x=1,y=3,z=2}, block="nether:netherrack"}, + {pos={x=4,y=3,z=2}, block="nether:netherrack"}, + {pos={x=1,y=3,z=3}, block="nether:netherrack"}, + {pos={x=4,y=3,z=3}, block="nether:netherrack"}, + {pos={x=1,y=3,z=4}, block="nether:netherrack"}, + {pos={x=4,y=3,z=4}, block="nether:netherrack"}, + {pos={x=2,y=3,z=4}, block="nether:netherrack"}, + {pos={x=2,y=3,z=5}, block="nether:netherrack"}, + {pos={x=3,y=3,z=4}, block="nether:netherrack"}, + {pos={x=3,y=3,z=5}, block="nether:netherrack"}, + -- Floor 5 + {pos={x=2,y=4,z=4}, block="nether:netherrack"}, + {pos={x=2,y=4,z=5}, block="nether:netherrack"}, + {pos={x=3,y=4,z=4}, block="nether:netherrack"}, + {pos={x=3,y=4,z=5}, block="nether:netherrack"}, + {pos={x=2,y=4,z=6}, block="nether:netherrack"}, + {pos={x=3,y=4,z=6}, block="nether:netherrack"}, + -- Torches on floor 5 + {pos={x=0,y=4,z=4}, block="nether:nether_torch_bottom"}, + {pos={x=1,y=4,z=4}, block="nether:nether_torch_bottom"}, + {pos={x=0,y=4,z=5}, block="nether:nether_torch_bottom"}, + {pos={x=1,y=4,z=5}, block="nether:nether_torch_bottom"}, + {pos={x=4,y=4,z=4}, block="nether:nether_torch_bottom"}, + {pos={x=5,y=4,z=4}, block="nether:nether_torch_bottom"}, + {pos={x=4,y=4,z=5}, block="nether:nether_torch_bottom"}, + {pos={x=5,y=4,z=5}, block="nether:nether_torch_bottom"}, + {pos={x=0,y=4,z=0}, block="nether:nether_torch_bottom"}, + {pos={x=1,y=4,z=0}, block="nether:nether_torch_bottom"}, + {pos={x=0,y=4,z=1}, block="nether:nether_torch_bottom"}, + {pos={x=1,y=4,z=1}, block="nether:nether_torch_bottom"}, + {pos={x=4,y=4,z=0}, block="nether:nether_torch_bottom"}, + {pos={x=5,y=4,z=0}, block="nether:nether_torch_bottom"}, + {pos={x=4,y=4,z=1}, block="nether:nether_torch_bottom"}, + {pos={x=5,y=4,z=1}, block="nether:nether_torch_bottom"}, + {pos={x=0,y=4,z=2}, block="nether:nether_torch_bottom"}, + {pos={x=1,y=4,z=2}, block="nether:nether_torch_bottom"}, + {pos={x=0,y=4,z=3}, block="nether:nether_torch_bottom"}, + {pos={x=1,y=4,z=3}, block="nether:nether_torch_bottom"}, + {pos={x=4,y=4,z=2}, block="nether:nether_torch_bottom"}, + {pos={x=5,y=4,z=2}, block="nether:nether_torch_bottom"}, + {pos={x=4,y=4,z=3}, block="nether:nether_torch_bottom"}, + {pos={x=5,y=4,z=3}, block="nether:nether_torch_bottom"}, + {pos={x=4,y=4,z=6}, block="nether:nether_torch_bottom"}, + {pos={x=5,y=4,z=6}, block="nether:nether_torch_bottom"}, + -- Floor 6 + {pos={x=2,y=5,z=6}, block="nether:netherrack"}, + {pos={x=3,y=5,z=6}, block="nether:netherrack"}, + -- Floor 7 + {pos={x=2,y=6,z=6}, block="nether:netherrack"}, + {pos={x=3,y=6,z=6}, block="nether:netherrack"}, diff --git a/mods/nether/nether/sounds/nether_dig.1.ogg b/mods/nether/nether/sounds/nether_dig.1.ogg new file mode 100644 index 00000000..4c498328 Binary files /dev/null and b/mods/nether/nether/sounds/nether_dig.1.ogg differ diff --git a/mods/nether/nether/sounds/nether_dig.2.ogg b/mods/nether/nether/sounds/nether_dig.2.ogg new file mode 100644 index 00000000..c69b45e2 Binary files /dev/null and b/mods/nether/nether/sounds/nether_dig.2.ogg differ diff --git a/mods/nether/nether/sounds/nether_dug.1.ogg b/mods/nether/nether/sounds/nether_dug.1.ogg new file mode 100644 index 00000000..a6dfa9e7 Binary files /dev/null and b/mods/nether/nether/sounds/nether_dug.1.ogg differ diff --git a/mods/nether/nether/sounds/nether_dug.2.ogg b/mods/nether/nether/sounds/nether_dug.2.ogg new file mode 100644 index 00000000..cc7666ba Binary files /dev/null and b/mods/nether/nether/sounds/nether_dug.2.ogg differ diff --git a/mods/nether/nether/sounds/nether_extract_blood.1.ogg b/mods/nether/nether/sounds/nether_extract_blood.1.ogg new file mode 100644 index 00000000..c69d4866 Binary files /dev/null and b/mods/nether/nether/sounds/nether_extract_blood.1.ogg differ diff --git a/mods/nether/nether/sounds/nether_extract_blood.2.ogg b/mods/nether/nether/sounds/nether_extract_blood.2.ogg new file mode 100644 index 00000000..bf418211 Binary files /dev/null and b/mods/nether/nether/sounds/nether_extract_blood.2.ogg differ diff --git a/mods/nether/nether/sounds/nether_extract_blood.3.ogg b/mods/nether/nether/sounds/nether_extract_blood.3.ogg new file mode 100644 index 00000000..db3a39c8 Binary files /dev/null and b/mods/nether/nether/sounds/nether_extract_blood.3.ogg differ diff --git a/mods/nether/nether/sounds/nether_extract_blood.4.ogg b/mods/nether/nether/sounds/nether_extract_blood.4.ogg new file mode 100644 index 00000000..2ac34955 Binary files /dev/null and b/mods/nether/nether/sounds/nether_extract_blood.4.ogg differ diff --git a/mods/nether/nether/sounds/nether_extract_blood.5.ogg b/mods/nether/nether/sounds/nether_extract_blood.5.ogg new file mode 100644 index 00000000..5d628d9c Binary files /dev/null and b/mods/nether/nether/sounds/nether_extract_blood.5.ogg differ diff --git a/mods/nether/nether/sounds/nether_extract_blood.6.ogg b/mods/nether/nether/sounds/nether_extract_blood.6.ogg new file mode 100644 index 00000000..618d6d6e Binary files /dev/null and b/mods/nether/nether/sounds/nether_extract_blood.6.ogg differ diff --git a/mods/nether/nether/sounds/nether_extract_blood.7.ogg b/mods/nether/nether/sounds/nether_extract_blood.7.ogg new file mode 100644 index 00000000..fd0a7fec Binary files /dev/null and b/mods/nether/nether/sounds/nether_extract_blood.7.ogg differ diff --git a/mods/nether/nether/sounds/nether_footstep.1.ogg b/mods/nether/nether/sounds/nether_footstep.1.ogg new file mode 100644 index 00000000..15f31a0b Binary files /dev/null and b/mods/nether/nether/sounds/nether_footstep.1.ogg differ diff --git a/mods/nether/nether/sounds/nether_footstep.2.ogg b/mods/nether/nether/sounds/nether_footstep.2.ogg new file mode 100644 index 00000000..fbc200a5 Binary files /dev/null and b/mods/nether/nether/sounds/nether_footstep.2.ogg differ diff --git a/mods/nether/nether/sounds/nether_footstep.3.ogg b/mods/nether/nether/sounds/nether_footstep.3.ogg new file mode 100644 index 00000000..16480433 Binary files /dev/null and b/mods/nether/nether/sounds/nether_footstep.3.ogg differ diff --git a/mods/nether/nether/sounds/nether_pearl.ogg b/mods/nether/nether/sounds/nether_pearl.ogg new file mode 100644 index 00000000..90dde6ae Binary files /dev/null and b/mods/nether/nether/sounds/nether_pearl.ogg differ diff --git a/mods/nether/nether/sounds/nether_portal_usual.ogg b/mods/nether/nether/sounds/nether_portal_usual.ogg new file mode 100644 index 00000000..cf1f84af Binary files /dev/null and b/mods/nether/nether/sounds/nether_portal_usual.ogg differ diff --git a/mods/nether/nether/sounds/nether_remove_leaf.1.ogg b/mods/nether/nether/sounds/nether_remove_leaf.1.ogg new file mode 100644 index 00000000..224b424d Binary files /dev/null and b/mods/nether/nether/sounds/nether_remove_leaf.1.ogg differ diff --git a/mods/nether/nether/sounds/nether_remove_leaf.2.ogg b/mods/nether/nether/sounds/nether_remove_leaf.2.ogg new file mode 100644 index 00000000..c02ef1cd Binary files /dev/null and b/mods/nether/nether/sounds/nether_remove_leaf.2.ogg differ diff --git a/mods/nether/nether/sounds/nether_remove_leaf.3.ogg b/mods/nether/nether/sounds/nether_remove_leaf.3.ogg new file mode 100644 index 00000000..c5b79baa Binary files /dev/null and b/mods/nether/nether/sounds/nether_remove_leaf.3.ogg differ diff --git a/mods/nether/nether/sounds/nether_teleporter.1.ogg b/mods/nether/nether/sounds/nether_teleporter.1.ogg new file mode 100644 index 00000000..65e48030 Binary files /dev/null and b/mods/nether/nether/sounds/nether_teleporter.1.ogg differ diff --git a/mods/nether/nether/sounds/nether_teleporter.2.ogg b/mods/nether/nether/sounds/nether_teleporter.2.ogg new file mode 100644 index 00000000..eaafec9e Binary files /dev/null and b/mods/nether/nether/sounds/nether_teleporter.2.ogg differ diff --git a/mods/nether/nether/sounds/nether_teleporter.3.ogg b/mods/nether/nether/sounds/nether_teleporter.3.ogg new file mode 100644 index 00000000..949dd934 Binary files /dev/null and b/mods/nether/nether/sounds/nether_teleporter.3.ogg differ diff --git a/mods/nether/nether/textures/nether_axe_netherrack.png b/mods/nether/nether/textures/nether_axe_netherrack.png new file mode 100644 index 00000000..5f9076cf Binary files /dev/null and b/mods/nether/nether/textures/nether_axe_netherrack.png differ diff --git a/mods/nether/nether/textures/nether_axe_netherrack_blue.png b/mods/nether/nether/textures/nether_axe_netherrack_blue.png new file mode 100644 index 00000000..cfd9e6f3 Binary files /dev/null and b/mods/nether/nether/textures/nether_axe_netherrack_blue.png differ diff --git a/mods/nether/nether/textures/nether_axe_white.png b/mods/nether/nether/textures/nether_axe_white.png new file mode 100644 index 00000000..44f3de0f Binary files /dev/null and b/mods/nether/nether/textures/nether_axe_white.png differ diff --git a/mods/nether/nether/textures/nether_bark.png b/mods/nether/nether/textures/nether_bark.png new file mode 100644 index 00000000..69e079af Binary files /dev/null and b/mods/nether/nether/textures/nether_bark.png differ diff --git a/mods/nether/nether/textures/nether_blood.png b/mods/nether/nether/textures/nether_blood.png new file mode 100644 index 00000000..067285bf Binary files /dev/null and b/mods/nether/nether/textures/nether_blood.png differ diff --git a/mods/nether/nether/textures/nether_blood_cooked.png b/mods/nether/nether/textures/nether_blood_cooked.png new file mode 100644 index 00000000..ac72a3d6 Binary files /dev/null and b/mods/nether/nether/textures/nether_blood_cooked.png differ diff --git a/mods/nether/nether/textures/nether_blood_empty.png b/mods/nether/nether/textures/nether_blood_empty.png new file mode 100644 index 00000000..d1d8dda0 Binary files /dev/null and b/mods/nether/nether/textures/nether_blood_empty.png differ diff --git a/mods/nether/nether/textures/nether_blood_extracted.png b/mods/nether/nether/textures/nether_blood_extracted.png new file mode 100644 index 00000000..9f2ca0ff Binary files /dev/null and b/mods/nether/nether/textures/nether_blood_extracted.png differ diff --git a/mods/nether/nether/textures/nether_blood_extractor.png b/mods/nether/nether/textures/nether_blood_extractor.png new file mode 100644 index 00000000..49897f6a Binary files /dev/null and b/mods/nether/nether/textures/nether_blood_extractor.png differ diff --git a/mods/nether/nether/textures/nether_blood_side.png b/mods/nether/nether/textures/nether_blood_side.png new file mode 100644 index 00000000..086b645f Binary files /dev/null and b/mods/nether/nether/textures/nether_blood_side.png differ diff --git a/mods/nether/nether/textures/nether_blood_side_cooked.png b/mods/nether/nether/textures/nether_blood_side_cooked.png new file mode 100644 index 00000000..60f86ba2 Binary files /dev/null and b/mods/nether/nether/textures/nether_blood_side_cooked.png differ diff --git a/mods/nether/nether/textures/nether_blood_side_empty.png b/mods/nether/nether/textures/nether_blood_side_empty.png new file mode 100644 index 00000000..9df720b5 Binary files /dev/null and b/mods/nether/nether/textures/nether_blood_side_empty.png differ diff --git a/mods/nether/nether/textures/nether_blood_stem.png b/mods/nether/nether/textures/nether_blood_stem.png new file mode 100644 index 00000000..21ac5cc5 Binary files /dev/null and b/mods/nether/nether/textures/nether_blood_stem.png differ diff --git a/mods/nether/nether/textures/nether_blood_stem_cooked.png b/mods/nether/nether/textures/nether_blood_stem_cooked.png new file mode 100644 index 00000000..e1c200b9 Binary files /dev/null and b/mods/nether/nether/textures/nether_blood_stem_cooked.png differ diff --git a/mods/nether/nether/textures/nether_blood_stem_empty.png b/mods/nether/nether/textures/nether_blood_stem_empty.png new file mode 100644 index 00000000..008d49d3 Binary files /dev/null and b/mods/nether/nether/textures/nether_blood_stem_empty.png differ diff --git a/mods/nether/nether/textures/nether_blood_stem_top.png b/mods/nether/nether/textures/nether_blood_stem_top.png new file mode 100644 index 00000000..2191e370 Binary files /dev/null and b/mods/nether/nether/textures/nether_blood_stem_top.png differ diff --git a/mods/nether/nether/textures/nether_blood_stem_top_cooked.png b/mods/nether/nether/textures/nether_blood_stem_top_cooked.png new file mode 100644 index 00000000..4ed24039 Binary files /dev/null and b/mods/nether/nether/textures/nether_blood_stem_top_cooked.png differ diff --git a/mods/nether/nether/textures/nether_blood_stem_top_empty.png b/mods/nether/nether/textures/nether_blood_stem_top_empty.png new file mode 100644 index 00000000..16223a57 Binary files /dev/null and b/mods/nether/nether/textures/nether_blood_stem_top_empty.png differ diff --git a/mods/nether/nether/textures/nether_blood_top.png b/mods/nether/nether/textures/nether_blood_top.png new file mode 100644 index 00000000..622fbcc6 Binary files /dev/null and b/mods/nether/nether/textures/nether_blood_top.png differ diff --git a/mods/nether/nether/textures/nether_blood_top_cooked.png b/mods/nether/nether/textures/nether_blood_top_cooked.png new file mode 100644 index 00000000..7385db15 Binary files /dev/null and b/mods/nether/nether/textures/nether_blood_top_cooked.png differ diff --git a/mods/nether/nether/textures/nether_blood_top_empty.png b/mods/nether/nether/textures/nether_blood_top_empty.png new file mode 100644 index 00000000..815d998a Binary files /dev/null and b/mods/nether/nether/textures/nether_blood_top_empty.png differ diff --git a/mods/nether/nether/textures/nether_dirt.png b/mods/nether/nether/textures/nether_dirt.png new file mode 100644 index 00000000..8eea86e0 Binary files /dev/null and b/mods/nether/nether/textures/nether_dirt.png differ diff --git a/mods/nether/nether/textures/nether_dirt_normal.png b/mods/nether/nether/textures/nether_dirt_normal.png new file mode 100644 index 00000000..5e117c1b Binary files /dev/null and b/mods/nether/nether/textures/nether_dirt_normal.png differ diff --git a/mods/nether/nether/textures/nether_dirt_top.png b/mods/nether/nether/textures/nether_dirt_top.png new file mode 100644 index 00000000..1bb0fbaf Binary files /dev/null and b/mods/nether/nether/textures/nether_dirt_top.png differ diff --git a/mods/nether/nether/textures/nether_dirt_top_normal.png b/mods/nether/nether/textures/nether_dirt_top_normal.png new file mode 100644 index 00000000..885f03d5 Binary files /dev/null and b/mods/nether/nether/textures/nether_dirt_top_normal.png differ diff --git a/mods/nether/nether/textures/nether_dirt_top_side.png b/mods/nether/nether/textures/nether_dirt_top_side.png new file mode 100644 index 00000000..577367af Binary files /dev/null and b/mods/nether/nether/textures/nether_dirt_top_side.png differ diff --git a/mods/nether/nether/textures/nether_dirt_top_side_normal.png b/mods/nether/nether/textures/nether_dirt_top_side_normal.png new file mode 100644 index 00000000..9aa7c9ab Binary files /dev/null and b/mods/nether/nether/textures/nether_dirt_top_side_normal.png differ diff --git a/mods/nether/nether/textures/nether_dirt_transition.png b/mods/nether/nether/textures/nether_dirt_transition.png new file mode 100644 index 00000000..9937ff36 Binary files /dev/null and b/mods/nether/nether/textures/nether_dirt_transition.png differ diff --git a/mods/nether/nether/textures/nether_dirt_transition_normal.png b/mods/nether/nether/textures/nether_dirt_transition_normal.png new file mode 100644 index 00000000..137e2e82 Binary files /dev/null and b/mods/nether/nether/textures/nether_dirt_transition_normal.png differ diff --git a/mods/nether/nether/textures/nether_fim.png b/mods/nether/nether/textures/nether_fim.png new file mode 100644 index 00000000..eaa319c8 Binary files /dev/null and b/mods/nether/nether/textures/nether_fim.png differ diff --git a/mods/nether/nether/textures/nether_forest_planks.png b/mods/nether/nether/textures/nether_forest_planks.png new file mode 100644 index 00000000..20010029 Binary files /dev/null and b/mods/nether/nether/textures/nether_forest_planks.png differ diff --git a/mods/nether/nether/textures/nether_forest_wood.png b/mods/nether/nether/textures/nether_forest_wood.png new file mode 100644 index 00000000..69f8d1e5 Binary files /dev/null and b/mods/nether/nether/textures/nether_forest_wood.png differ diff --git a/mods/nether/nether/textures/nether_forest_wood_normal.png b/mods/nether/nether/textures/nether_forest_wood_normal.png new file mode 100644 index 00000000..52128944 Binary files /dev/null and b/mods/nether/nether/textures/nether_forest_wood_normal.png differ diff --git a/mods/nether/nether/textures/nether_fruit.png b/mods/nether/nether/textures/nether_fruit.png new file mode 100644 index 00000000..8fb46af6 Binary files /dev/null and b/mods/nether/nether/textures/nether_fruit.png differ diff --git a/mods/nether/nether/textures/nether_fruit_bottom.png b/mods/nether/nether/textures/nether_fruit_bottom.png new file mode 100644 index 00000000..f6436cbc Binary files /dev/null and b/mods/nether/nether/textures/nether_fruit_bottom.png differ diff --git a/mods/nether/nether/textures/nether_fruit_leaf.png b/mods/nether/nether/textures/nether_fruit_leaf.png new file mode 100644 index 00000000..784c2f79 Binary files /dev/null and b/mods/nether/nether/textures/nether_fruit_leaf.png differ diff --git a/mods/nether/nether/textures/nether_fruit_leaves.png b/mods/nether/nether/textures/nether_fruit_leaves.png new file mode 100644 index 00000000..4f41ff33 Binary files /dev/null and b/mods/nether/nether/textures/nether_fruit_leaves.png differ diff --git a/mods/nether/nether/textures/nether_fruit_no_leaf.png b/mods/nether/nether/textures/nether_fruit_no_leaf.png new file mode 100644 index 00000000..19d6c998 Binary files /dev/null and b/mods/nether/nether/textures/nether_fruit_no_leaf.png differ diff --git a/mods/nether/nether/textures/nether_fruit_top.png b/mods/nether/nether/textures/nether_fruit_top.png new file mode 100644 index 00000000..3945e176 Binary files /dev/null and b/mods/nether/nether/textures/nether_fruit_top.png differ diff --git a/mods/nether/nether/textures/nether_glowflower.png b/mods/nether/nether/textures/nether_glowflower.png new file mode 100644 index 00000000..5784ce51 Binary files /dev/null and b/mods/nether/nether/textures/nether_glowflower.png differ diff --git a/mods/nether/nether/textures/nether_grass.png b/mods/nether/nether/textures/nether_grass.png new file mode 100644 index 00000000..2e11a1f9 Binary files /dev/null and b/mods/nether/nether/textures/nether_grass.png differ diff --git a/mods/nether/nether/textures/nether_grass_big.png b/mods/nether/nether/textures/nether_grass_big.png new file mode 100644 index 00000000..53ed7958 Binary files /dev/null and b/mods/nether/nether/textures/nether_grass_big.png differ diff --git a/mods/nether/nether/textures/nether_grass_dried.png b/mods/nether/nether/textures/nether_grass_dried.png new file mode 100644 index 00000000..8f2af2b5 Binary files /dev/null and b/mods/nether/nether/textures/nether_grass_dried.png differ diff --git a/mods/nether/nether/textures/nether_grass_middle.png b/mods/nether/nether/textures/nether_grass_middle.png new file mode 100644 index 00000000..b5c82faa Binary files /dev/null and b/mods/nether/nether/textures/nether_grass_middle.png differ diff --git a/mods/nether/nether/textures/nether_grass_small.png b/mods/nether/nether/textures/nether_grass_small.png new file mode 100644 index 00000000..b540c49f Binary files /dev/null and b/mods/nether/nether/textures/nether_grass_small.png differ diff --git a/mods/nether/nether/textures/nether_hotbed.png b/mods/nether/nether/textures/nether_hotbed.png new file mode 100644 index 00000000..96b90634 Binary files /dev/null and b/mods/nether/nether/textures/nether_hotbed.png differ diff --git a/mods/nether/nether/textures/nether_leaves.png b/mods/nether/nether/textures/nether_leaves.png new file mode 100644 index 00000000..a5ef8086 Binary files /dev/null and b/mods/nether/nether/textures/nether_leaves.png differ diff --git a/mods/nether/nether/textures/nether_netherrack.png b/mods/nether/nether/textures/nether_netherrack.png new file mode 100644 index 00000000..e30280cd Binary files /dev/null and b/mods/nether/nether/textures/nether_netherrack.png differ diff --git a/mods/nether/nether/textures/nether_netherrack_black.png b/mods/nether/nether/textures/nether_netherrack_black.png new file mode 100644 index 00000000..8b130d51 Binary files /dev/null and b/mods/nether/nether/textures/nether_netherrack_black.png differ diff --git a/mods/nether/nether/textures/nether_netherrack_black_normal.png b/mods/nether/nether/textures/nether_netherrack_black_normal.png new file mode 100644 index 00000000..aebf5fe0 Binary files /dev/null and b/mods/nether/nether/textures/nether_netherrack_black_normal.png differ diff --git a/mods/nether/nether/textures/nether_netherrack_blue.png b/mods/nether/nether/textures/nether_netherrack_blue.png new file mode 100644 index 00000000..03f4bf5c Binary files /dev/null and b/mods/nether/nether/textures/nether_netherrack_blue.png differ diff --git a/mods/nether/nether/textures/nether_netherrack_blue_normal.png b/mods/nether/nether/textures/nether_netherrack_blue_normal.png new file mode 100644 index 00000000..ff6a573c Binary files /dev/null and b/mods/nether/nether/textures/nether_netherrack_blue_normal.png differ diff --git a/mods/nether/nether/textures/nether_netherrack_brick.png b/mods/nether/nether/textures/nether_netherrack_brick.png new file mode 100644 index 00000000..b9199b7d Binary files /dev/null and b/mods/nether/nether/textures/nether_netherrack_brick.png differ diff --git a/mods/nether/nether/textures/nether_netherrack_brick_black.png b/mods/nether/nether/textures/nether_netherrack_brick_black.png new file mode 100644 index 00000000..7efb1796 Binary files /dev/null and b/mods/nether/nether/textures/nether_netherrack_brick_black.png differ diff --git a/mods/nether/nether/textures/nether_netherrack_brick_blue.png b/mods/nether/nether/textures/nether_netherrack_brick_blue.png new file mode 100644 index 00000000..9db6250e Binary files /dev/null and b/mods/nether/nether/textures/nether_netherrack_brick_blue.png differ diff --git a/mods/nether/nether/textures/nether_netherrack_normal.png b/mods/nether/nether/textures/nether_netherrack_normal.png new file mode 100644 index 00000000..5e2eafd2 Binary files /dev/null and b/mods/nether/nether/textures/nether_netherrack_normal.png differ diff --git a/mods/nether/nether/textures/nether_netherrack_soil.png b/mods/nether/nether/textures/nether_netherrack_soil.png new file mode 100644 index 00000000..dedab0ef Binary files /dev/null and b/mods/nether/nether/textures/nether_netherrack_soil.png differ diff --git a/mods/nether/nether/textures/nether_netherrack_soil_normal.png b/mods/nether/nether/textures/nether_netherrack_soil_normal.png new file mode 100644 index 00000000..b939572c Binary files /dev/null and b/mods/nether/nether/textures/nether_netherrack_soil_normal.png differ diff --git a/mods/nether/nether/textures/nether_netherrack_tiled.png b/mods/nether/nether/textures/nether_netherrack_tiled.png new file mode 100644 index 00000000..dcaa06a4 Binary files /dev/null and b/mods/nether/nether/textures/nether_netherrack_tiled.png differ diff --git a/mods/nether/nether/textures/nether_netherrack_tiled_normal.png b/mods/nether/nether/textures/nether_netherrack_tiled_normal.png new file mode 100644 index 00000000..ca51e52c Binary files /dev/null and b/mods/nether/nether/textures/nether_netherrack_tiled_normal.png differ diff --git a/mods/nether/nether/textures/nether_pearl.png b/mods/nether/nether/textures/nether_pearl.png new file mode 100644 index 00000000..e3a1b706 Binary files /dev/null and b/mods/nether/nether/textures/nether_pearl.png differ diff --git a/mods/nether/nether/textures/nether_pick_mushroom.png b/mods/nether/nether/textures/nether_pick_mushroom.png new file mode 100644 index 00000000..a0e3029a Binary files /dev/null and b/mods/nether/nether/textures/nether_pick_mushroom.png differ diff --git a/mods/nether/nether/textures/nether_pick_netherrack.png b/mods/nether/nether/textures/nether_pick_netherrack.png new file mode 100644 index 00000000..922a0970 Binary files /dev/null and b/mods/nether/nether/textures/nether_pick_netherrack.png differ diff --git a/mods/nether/nether/textures/nether_pick_netherrack_blue.png b/mods/nether/nether/textures/nether_pick_netherrack_blue.png new file mode 100644 index 00000000..e8757fba Binary files /dev/null and b/mods/nether/nether/textures/nether_pick_netherrack_blue.png differ diff --git a/mods/nether/nether/textures/nether_pick_white.png b/mods/nether/nether/textures/nether_pick_white.png new file mode 100644 index 00000000..8bd46cb6 Binary files /dev/null and b/mods/nether/nether/textures/nether_pick_white.png differ diff --git a/mods/nether/nether/textures/nether_pick_wood.png b/mods/nether/nether/textures/nether_pick_wood.png new file mode 100644 index 00000000..0973dfe0 Binary files /dev/null and b/mods/nether/nether/textures/nether_pick_wood.png differ diff --git a/mods/nether/nether/textures/nether_portal_particle.png b/mods/nether/nether/textures/nether_portal_particle.png new file mode 100644 index 00000000..e619dc81 Binary files /dev/null and b/mods/nether/nether/textures/nether_portal_particle.png differ diff --git a/mods/nether/nether/textures/nether_portal_stuff.png b/mods/nether/nether/textures/nether_portal_stuff.png new file mode 100644 index 00000000..9a91adb7 Binary files /dev/null and b/mods/nether/nether/textures/nether_portal_stuff.png differ diff --git a/mods/nether/nether/textures/nether_portal_stuff_normal.png b/mods/nether/nether/textures/nether_portal_stuff_normal.png new file mode 100644 index 00000000..0e013bfa Binary files /dev/null and b/mods/nether/nether/textures/nether_portal_stuff_normal.png differ diff --git a/mods/nether/nether/textures/nether_sapling.png b/mods/nether/nether/textures/nether_sapling.png new file mode 100644 index 00000000..f0aea814 Binary files /dev/null and b/mods/nether/nether/textures/nether_sapling.png differ diff --git a/mods/nether/nether/textures/nether_shovel_netherrack.png b/mods/nether/nether/textures/nether_shovel_netherrack.png new file mode 100644 index 00000000..3cb91b63 Binary files /dev/null and b/mods/nether/nether/textures/nether_shovel_netherrack.png differ diff --git a/mods/nether/nether/textures/nether_shovel_netherrack_blue.png b/mods/nether/nether/textures/nether_shovel_netherrack_blue.png new file mode 100644 index 00000000..03caa1c6 Binary files /dev/null and b/mods/nether/nether/textures/nether_shovel_netherrack_blue.png differ diff --git a/mods/nether/nether/textures/nether_shovel_white.png b/mods/nether/nether/textures/nether_shovel_white.png new file mode 100644 index 00000000..989e29ea Binary files /dev/null and b/mods/nether/nether/textures/nether_shovel_white.png differ diff --git a/mods/nether/nether/textures/nether_shroom_stem.png b/mods/nether/nether/textures/nether_shroom_stem.png new file mode 100644 index 00000000..d4ab2038 Binary files /dev/null and b/mods/nether/nether/textures/nether_shroom_stem.png differ diff --git a/mods/nether/nether/textures/nether_shroom_top.png b/mods/nether/nether/textures/nether_shroom_top.png new file mode 100644 index 00000000..6dd58c7e Binary files /dev/null and b/mods/nether/nether/textures/nether_shroom_top.png differ diff --git a/mods/nether/nether/textures/nether_stick.png b/mods/nether/nether/textures/nether_stick.png new file mode 100644 index 00000000..c287e166 Binary files /dev/null and b/mods/nether/nether/textures/nether_stick.png differ diff --git a/mods/nether/nether/textures/nether_sword_netherrack.png b/mods/nether/nether/textures/nether_sword_netherrack.png new file mode 100644 index 00000000..d0824e36 Binary files /dev/null and b/mods/nether/nether/textures/nether_sword_netherrack.png differ diff --git a/mods/nether/nether/textures/nether_sword_netherrack_blue.png b/mods/nether/nether/textures/nether_sword_netherrack_blue.png new file mode 100644 index 00000000..90a26ee7 Binary files /dev/null and b/mods/nether/nether/textures/nether_sword_netherrack_blue.png differ diff --git a/mods/nether/nether/textures/nether_sword_white.png b/mods/nether/nether/textures/nether_sword_white.png new file mode 100644 index 00000000..73f41f7d Binary files /dev/null and b/mods/nether/nether/textures/nether_sword_white.png differ diff --git a/mods/nether/nether/textures/nether_teleporter.png b/mods/nether/nether/textures/nether_teleporter.png new file mode 100644 index 00000000..eaac9266 Binary files /dev/null and b/mods/nether/nether/textures/nether_teleporter.png differ diff --git a/mods/nether/nether/textures/nether_torch.png b/mods/nether/nether/textures/nether_torch.png new file mode 100644 index 00000000..8fb95f62 Binary files /dev/null and b/mods/nether/nether/textures/nether_torch.png differ diff --git a/mods/nether/nether/textures/nether_torch_on_ceiling.png b/mods/nether/nether/textures/nether_torch_on_ceiling.png new file mode 100644 index 00000000..43cb69a4 Binary files /dev/null and b/mods/nether/nether/textures/nether_torch_on_ceiling.png differ diff --git a/mods/nether/nether/textures/nether_torch_on_floor.png b/mods/nether/nether/textures/nether_torch_on_floor.png new file mode 100644 index 00000000..c5d5da01 Binary files /dev/null and b/mods/nether/nether/textures/nether_torch_on_floor.png differ diff --git a/mods/nether/nether/textures/nether_transparent.png b/mods/nether/nether/textures/nether_transparent.png new file mode 100644 index 00000000..d0ff2244 Binary files /dev/null and b/mods/nether/nether/textures/nether_transparent.png differ diff --git a/mods/nether/nether/textures/nether_tree.png b/mods/nether/nether/textures/nether_tree.png new file mode 100644 index 00000000..99101b35 Binary files /dev/null and b/mods/nether/nether/textures/nether_tree.png differ diff --git a/mods/nether/nether/textures/nether_tree_corner.png b/mods/nether/nether/textures/nether_tree_corner.png new file mode 100644 index 00000000..4b79eb52 Binary files /dev/null and b/mods/nether/nether/textures/nether_tree_corner.png differ diff --git a/mods/nether/nether/textures/nether_tree_sapling.png b/mods/nether/nether/textures/nether_tree_sapling.png new file mode 100644 index 00000000..14686be5 Binary files /dev/null and b/mods/nether/nether/textures/nether_tree_sapling.png differ diff --git a/mods/nether/nether/textures/nether_tree_top.png b/mods/nether/nether/textures/nether_tree_top.png new file mode 100644 index 00000000..f58589e5 Binary files /dev/null and b/mods/nether/nether/textures/nether_tree_top.png differ diff --git a/mods/nether/nether/textures/nether_vine.png b/mods/nether/nether/textures/nether_vine.png new file mode 100644 index 00000000..a8a6632a Binary files /dev/null and b/mods/nether/nether/textures/nether_vine.png differ diff --git a/mods/nether/nether/textures/nether_white.png b/mods/nether/nether/textures/nether_white.png new file mode 100644 index 00000000..47d412c9 Binary files /dev/null and b/mods/nether/nether/textures/nether_white.png differ diff --git a/mods/nether/nether/textures/nether_wood.png b/mods/nether/nether/textures/nether_wood.png new file mode 100644 index 00000000..8604e025 Binary files /dev/null and b/mods/nether/nether/textures/nether_wood.png differ diff --git a/mods/nether/nether/textures/nether_wood_cooked.png b/mods/nether/nether/textures/nether_wood_cooked.png new file mode 100644 index 00000000..761f1d67 Binary files /dev/null and b/mods/nether/nether/textures/nether_wood_cooked.png differ diff --git a/mods/nether/nether/textures/nether_wood_empty.png b/mods/nether/nether/textures/nether_wood_empty.png new file mode 100644 index 00000000..6c848d61 Binary files /dev/null and b/mods/nether/nether/textures/nether_wood_empty.png differ diff --git a/mods/nether/nether/textures/nether_wood_empty_normal.png b/mods/nether/nether/textures/nether_wood_empty_normal.png new file mode 100644 index 00000000..43628f52 Binary files /dev/null and b/mods/nether/nether/textures/nether_wood_empty_normal.png differ diff --git a/mods/nether/nether/weird_mapgen_noise.lua b/mods/nether/nether/weird_mapgen_noise.lua new file mode 100644 index 00000000..05883abb --- /dev/null +++ b/mods/nether/nether/weird_mapgen_noise.lua @@ -0,0 +1,88 @@ +--V2 +local function get_random(a, b, seed) + return PseudoRandom(math.abs(a+b*5)+seed) +end + +local r_chs = {} + +function nether_weird_noise(minp, fct, s, seed, range, scale) + if not r_chs[s] then + r_chs[s] = math.floor(s/3+0.5) + end + scale = scale or 15 + local r_ch = r_chs[s] + local maxp = vector.add(minp, scale) + + local tab,n = {},1 + local sm = range or (s+r_ch)*2 + for z = -sm, scale+sm do + local pz = z+minp.z + if pz%s == 0 then + for x = -sm, scale+sm do + local px = x+minp.x + if px%s == 0 then + local pr = get_random(px, pz, seed) + tab[n] = {x=px+pr:next(-r_ch, r_ch), y=0, z=pz+pr:next(-r_ch, r_ch)} + n = n+1 + end + end + end + end + + local tab2,n = {},1 + for z = minp.z, maxp.z do + for x = minp.x, maxp.x do + local h = sm + for _,i in ipairs(tab) do + h = math.min(h, fct(x, i.x, z, i.z)) + end + tab2[n] = {x=x, y=maxp.y-h, z=z} + n = n+1 + end + end + return tab2 +end + +--[[ +local function dif(z1, z2) + return math.abs(z1-z2) +end + +local function pymg(x1, x2, z1, z2) + return math.max(dif(x1, x2), dif(z1, z2)) +end + +local function romg(x1, x2, z1, z2) + return math.hypot(dif(x1, x2), dif(z1, z2)) +end + +local function py2mg(x1, x2, z1, z2) + return dif(x1, x2) + dif(z1, z2) +end + +minetest.register_node("ac:wmg", { + description = "wmg", + tiles = {"ac_block.png"}, + groups = {snappy=1,bendy=2,cracky=1}, + sounds = default_stone_sounds, + on_construct = function(pos) + local minp = vector.chunkcorner(pos) + for _,p in ipairs(weird_noise(minp, pymg, 20, 8, 4)) do + local p2 = {x=p.x, y=p.y+1, z=p.z} + if p.y <= minp.y+7 then + local p2 = {x=p.x, y=minp.y+6, z=p.z} + local p3 = {x=p.x, y=p2.y+1, z=p.z} + if minetest.get_node(p2).name ~= "default:desert_stone" then + minetest.set_node(p2, {name="default:desert_stone"}) + end + if minetest.get_node(p3).name ~= "default:desert_sand" then + minetest.set_node(p3, {name="default:desert_sand"}) + end + else + if minetest.get_node(p).name ~= "default:desert_stone" then + minetest.set_node(p, {name="default:desert_stone"}) + end + end + end + end, +})]] diff --git a/mods/nether/textures/nether_brick.png b/mods/nether/textures/nether_brick.png new file mode 100755 index 00000000..3e8c8035 Binary files /dev/null and b/mods/nether/textures/nether_brick.png differ diff --git a/mods/nether/textures/nether_glowstone.png b/mods/nether/textures/nether_glowstone.png new file mode 100755 index 00000000..9016eac3 Binary files /dev/null and b/mods/nether/textures/nether_glowstone.png differ diff --git a/mods/nether/textures/nether_particle.png b/mods/nether/textures/nether_particle.png new file mode 100755 index 00000000..56a5b78c Binary files /dev/null and b/mods/nether/textures/nether_particle.png differ diff --git a/mods/nether/textures/nether_portal.png b/mods/nether/textures/nether_portal.png new file mode 100755 index 00000000..824d6523 Binary files /dev/null and b/mods/nether/textures/nether_portal.png differ diff --git a/mods/nether/textures/nether_rack.png b/mods/nether/textures/nether_rack.png new file mode 100755 index 00000000..201a11ad Binary files /dev/null and b/mods/nether/textures/nether_rack.png differ diff --git a/mods/nether/textures/nether_sand.png b/mods/nether/textures/nether_sand.png new file mode 100755 index 00000000..8ec343dd Binary files /dev/null and b/mods/nether/textures/nether_sand.png differ diff --git a/mods/nether/textures/nether_transparent.png b/mods/nether/textures/nether_transparent.png new file mode 100755 index 00000000..4883728c Binary files /dev/null and b/mods/nether/textures/nether_transparent.png differ diff --git a/mods/no_bad_names/init.lua b/mods/no_bad_names/init.lua new file mode 100755 index 00000000..60eca289 --- /dev/null +++ b/mods/no_bad_names/init.lua @@ -0,0 +1,81 @@ +-- No guests and misleading names mod. +-- By VanessaE, sfan5, and kaeza. + +local disallowed = { + ["guest"] = "Guest accounts are disallowed on this server. ".. + "Please choose a proper username and try again.", + ["[4a]dm[1il]n"] = "That is a clearly false, misleading, or otherwise disallowed username. ".. + "Please choose a unique username and try again.", + ["^[0-9]+$"] = "All-numeric usernames are disallowed on this server. ".. + "Please choose a proper username and try again.", +-- ["[0-9].-[0-9].-[0-9].-[0-9].-[0-9]"] = "Too many numbers in your username. ".. +-- "Please try again with less than five digits in your username." +} + +-- Original implementation (in Python) by sfan5 +--[[ +local function judge(msg) + local numspeakable = 0 + local numnotspeakable = 0 + local cn = 0 + local lastc = '____' + for c in msg:gmatch(".") do + c = c:lower() + if c:find("[aeiou0-9_-]") then + if cn > 2 and not c:find("[0-9]") then + numnotspeakable = numnotspeakable + 1 + elseif not c:find("[0-9]") then + numspeakable = numspeakable + 1 + end + cn = 0 + else + if (cn == 1) and (lastc == c) and (lastc ~= 's') then + numnotspeakable = numnotspeakable + 1 + cn = 0 + end + if cn > 2 then + numnotspeakable = numnotspeakable + 1 + cn = 0 + end + if lastc:find("[aeiou]") then + numspeakable = numspeakable + 1 + cn = 0 + end + if not ((lastc:find("[aipfom]") and c == "r") or (lastc == "c" and c == "h")) then + cn = cn + 1 + end + end + lastc = c + end + if cn > 0 then + numnotspeakable = numnotspeakable + 1 + end + return (numspeakable >= numnotspeakable) +end +--]] + +minetest.register_on_prejoinplayer(function(name, ip) + local lname = name:lower() + for re, reason in pairs(disallowed) do + if lname:find(re) then + return reason + end + end + + if #name < 2 then + return "Too short of a username. ".. + "Please pick a name with at least 2 characters and try again." + end + + --[[ + if not judge(name) and #name > 5 then + return "Your username just plain looks like gibberish. ".. + "Please pick something readable and try again." + end + --]] + +end) + +if minetest.setting_getbool("log_mods") then + minetest.log("action", "Carbone: [no_bad_names] loaded.") +end diff --git a/mods/painting/README.md b/mods/painting/README.md new file mode 100755 index 00000000..24a974f3 --- /dev/null +++ b/mods/painting/README.md @@ -0,0 +1,4 @@ +painting +======== + +in-game painting mod for minetest diff --git a/mods/painting/crafts.lua b/mods/painting/crafts.lua new file mode 100755 index 00000000..c231e6c0 --- /dev/null +++ b/mods/painting/crafts.lua @@ -0,0 +1,39 @@ +-- painting - in-game painting for minetest + +-- THIS MOD CODE AND TEXTURES LICENSED +-- <3 TO YOU <3 +-- UNDER TERMS OF WTFPL LICENSE + +-- 2012, 2013, 2014 obneq aka jin xi + +minetest.register_craft({ + output = 'painting:easel 1', + recipe = { + { '', 'default:wood', '' }, + { '', 'default:wood', '' }, + { 'default:stick','', 'default:stick' }, + }}) + +minetest.register_craft({ + output = 'painting:canvas_16 1', + recipe = { + { '', '', '' }, + { '', '', '' }, + { 'default:paper', '', '' }, + }}) + +minetest.register_craft({ + output = 'painting:canvas_32 1', + recipe = { + { '', '', '' }, + { 'default:paper', 'default:paper', '' }, + { 'default:paper', 'default:paper', '' }, + }}) + +minetest.register_craft({ + output = 'painting:canvas_64 1', + recipe = { + { 'default:paper', 'default:paper', 'default:paper' }, + { 'default:paper', 'default:paper', 'default:paper' }, + { 'default:paper', 'default:paper', 'default:paper' }, + }}) diff --git a/mods/painting/init.lua b/mods/painting/init.lua new file mode 100755 index 00000000..cf16f164 --- /dev/null +++ b/mods/painting/init.lua @@ -0,0 +1,441 @@ +-- painting - in-game painting for minetest + +-- THIS MOD CODE AND TEXTURES LICENSED +-- <3 TO YOU <3 +-- UNDER TERMS OF WTFPL LICENSE + +-- 2012, 2013, 2014 obneq aka jin xi + +-- picture is drawn using a nodebox to draw the canvas +-- and an entity which has the painting as its texture. +-- this texture is created by minetests internal image +-- compositing engine (see tile.cpp). + +dofile(minetest.get_modpath("painting").."/crafts.lua") + +textures = { + white = "white.png", yellow = "yellow.png", + orange = "orange.png", red = "red.png", + violet = "violet.png", blue = "blue.png", + green = "green.png", magenta = "magenta.png", + cyan = "cyan.png", grey = "grey.png", + darkgrey = "darkgrey.png", black = "black.png", + darkgreen = "darkgreen.png", brown="brown.png", + pink = "pink.png" +} + +local colors = {} +local revcolors = {} + +thickness = 0.1 + +-- picture node +picbox = { + type = "fixed", + fixed = { -0.499, -0.499, 0.499, 0.499, 0.499, 0.499 - thickness } +} + +picnode = { + description = "Picture", + tiles = { "white.png" }, + inventory_image = "painted.png", + drawtype = "nodebox", + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + node_box = picbox, + selection_box = picbox, + groups = { snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory=1}, + + --handle that right below, don't drop anything + drop = "", + + after_dig_node=function(pos, oldnode, oldmetadata, digger) + --find and remove the entity + local objects = minetest.env:get_objects_inside_radius(pos, 0.5) + for _, e in ipairs(objects) do + if e:get_luaentity().name == "painting:picent" then + e:remove() + end + end + + --put picture data back into inventory item + local data = oldmetadata.fields["painting:picturedata"] + local item = { name = "painting:paintedcanvas", count = 1, metadata = data } + digger:get_inventory():add_item("main", item) + end +} + +-- picture texture entity +picent = { + collisionbox = { 0, 0, 0, 0, 0, 0 }, + visual = "upright_sprite", + textures = { "white.png" }, + + on_activate = function(self, staticdata) + local pos = self.object:getpos() + local meta = minetest.env:get_meta(pos) + local data = meta:get_string("painting:picturedata") + data = minetest.deserialize(data) + if not data.grid then return end + self.object:set_properties({textures = { to_imagestring(data.grid, data.res) }}) + end +} + +paintbox = { [0] = { -0.5,-0.5,0,0.5,0.5,0 }, + [1] = { 0,-0.5,-0.5,0,0.5,0.5 } } + +paintent = { + collisionbox = { 0, 0, 0, 0, 0, 0 }, + visual = "upright_sprite", + textures = { "white.png" }, + + on_punch = function(self, puncher, time_from_last_punch, tool_capabilities, dir) + --check for brush + local name = puncher:get_wielded_item():get_name() + name = string.split(name, "_")[2] + if not textures[name] then return end + + --get player eye level + --see player.h line 129 + local ppos = puncher:getpos() + ppos = { x = ppos.x, y = ppos.y + 1.625, z = ppos.z } + + local pos = self.object:getpos() + local l = puncher:get_look_dir() + + local d = dirs[self.fd] + local od = dirs[(self.fd + 1) % 4] + local normal = { x = d.x, y = 0, z = d.z } + local p = intersect(ppos, l, pos, normal) + + local off = -0.5 + pos = { x = pos.x + off * od.x, y = pos.y + off, z = pos.z + off * od.z } + p = sub(p, pos) + local x = math.abs(p.x + p.z) + local y = 1 - p.y + + --print("x: "..x.." y: "..y) + + x = math.floor(x / (1/self.res) ) + y = math.floor(y / (1/self.res) ) + + --print("grid x: "..x.." grid y: "..y) + + x = clamp(x, self.res) + y = clamp(y, self.res) + + self.grid[x][y] = colors[name] + self.object:set_properties({textures = { to_imagestring(self.grid, self.res) }}) + + local wielded = puncher:get_wielded_item() + wielded:add_wear(65535/256) + puncher:set_wielded_item(wielded) + end, + + on_activate = function(self, staticdata) + local data = minetest.deserialize(staticdata) + if not data then return end + self.fd = data.fd + self.res = data.res + self.grid = data.grid + self.object:set_properties({ textures = { to_imagestring(self.grid, self.res) }}) + self.object:set_properties({ collisionbox = paintbox[self.fd%2] }) + self.object:set_armor_groups({immortal=1}) + end, + + get_staticdata = function(self) + local data = { fd = self.fd, res = self.res, grid = self.grid } + return minetest.serialize(data) + end +} + +-- just pure magic +local walltoface = {-1, -1, 1, 3, 0, 2} + +--paintedcanvas picture inventory item +paintedcanvas = { + description = "Painted Canvas", + inventory_image = "painted.png", + stack_max = 1, + groups = { snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory=1 }, + + on_place = function(itemstack, placer, pointed_thing) + --place node + local pos = pointed_thing.above + + local under = pointed_thing.under + local above = pointed_thing.above + local dir = sub(under, above) + + local wm = minetest.dir_to_wallmounted(dir) + + local fd = walltoface[wm + 1] + if fd == -1 then + return itemstack + end + + minetest.env:add_node(pos, { name = "painting:pic", + param2 = fd, + paramtype2 = "none" }) + + --save metadata + local data = itemstack:get_metadata() + local meta = minetest.env:get_meta(pos) + meta:set_string("painting:picturedata", data) + + --add entity + dir = dirs[fd] + local off = 0.5 - thickness - 0.01 + + pos = { x = pos.x + dir.x * off, + y = pos.y, + z = pos.z + dir.z * off } + + data = minetest.deserialize(data) + + local p = minetest.env:add_entity(pos, "painting:picent"):get_luaentity() + p.object:set_properties({ textures = { to_imagestring(data.grid, data.res) }}) + p.object:setyaw(math.pi * fd / -2) + + return ItemStack("") + end +} + +--canvas inventory item +canvas = { + description = "Canvas", + inventory_image = "default_paper.png", + stack_max = 99, +} + +--canvas for drawing +canvasbox = { + type = "fixed", + fixed = { -0.5, -0.5, 0.0, 0.5, 0.5, thickness } +} + +canvasnode = { + description = "Canvas", + tiles = { "white.png" }, + inventory_image = "painted.png", + drawtype = "nodebox", + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + node_box = canvasbox, + selection_box = canvasbox, + groups = { snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory=1 }, + + drop = "", + + after_dig_node=function(pos, oldnode, oldmetadata, digger) + --get data and remove pixels + local data = {} + local objects = minetest.env:get_objects_inside_radius(pos, 0.5) + for _, e in ipairs(objects) do + e = e:get_luaentity() + if e.grid then + data.grid = e.grid + data.res = e.res + end + e.object:remove() + end + + pos.y = pos.y-1 + minetest.env:get_meta(pos):set_string("has_canvas", 0) + + if data.grid then + local item = { name = "painting:paintedcanvas", count = 1, metadata = minetest.serialize(data) } + digger:get_inventory():add_item("main", item) + end + end +} + +-- easel +easelbox = { + type="fixed", + fixed = { + --feet + {-0.4, -0.5, -0.5, -0.3, -0.4, 0.5 }, + { 0.3, -0.5, -0.5, 0.4, -0.4, 0.5 }, + --legs + {-0.4, -0.4, 0.1, -0.3, 1.5, 0.2 }, + { 0.3, -0.4, 0.1, 0.4, 1.5, 0.2 }, + --shelf + {-0.5, 0.35, -0.3, 0.5, 0.45, 0.1 } + } +} + +easel = { + description = "Easel", + tiles = { "default_wood.png" }, + drawtype = "nodebox", + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + node_box = easelbox, + selection_box = easelbox, + + groups = { snappy = 2, choppy = 2, oddly_breakable_by_hand = 2 }, + + on_punch = function(pos, node, player) + local wielded_raw = player:get_wielded_item():get_name() + wielded = string.split(wielded_raw, "_") + + local name = wielded[1] + local res = tonumber(wielded[2]) + + if name ~= "painting:canvas" then + return + end + local meta = minetest.env:get_meta(pos) + local fd = node.param2 + pos = { x = pos.x, y = pos.y + 1, z = pos.z } + + if minetest.env:get_node(pos).name ~= "air" then return end + minetest.env:add_node(pos, { name = "painting:canvasnode", + param2 = fd, + paramtype2 = "none" }) + + local dir = dirs[fd] + pos = { x = pos.x - 0.01 * dir.x, y = pos.y, z = pos.z - 0.01 * dir.z } + + local p = minetest.env:add_entity(pos, "painting:paintent"):get_luaentity() + p.object:set_properties({ collisionbox = paintbox[fd%2] }) + p.object:set_armor_groups({immortal=1}) + p.object:setyaw(math.pi * fd / -2) + p.grid = initgrid(res) + p.res = res + p.fd = fd + + meta:set_int("has_canvas", 1) + local itemstack = ItemStack(wielded_raw) + player:get_inventory():remove_item("main", itemstack) + end, + + can_dig = function(pos,player) + local meta = minetest.env:get_meta(pos) + local inv = meta:get_inventory() + + if meta:get_int("has_canvas") == 0 then + return true + end + return false + end +} + +--brushes +local function table_copy(t) + local t2 = {} + for k,v in pairs(t) do + t2[k] = v + end + return t2 +end + +brush = { + description = "brush", + inventory_image = "default_tool_steelaxe.png", + wield_image = "", + wield_scale = { x = 1, y = 1, z = 1 }, + stack_max = 99, + liquids_pointable = false, + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=0, + groupcaps = {} + } +} + +minetest.register_entity("painting:picent", picent) +minetest.register_node("painting:pic", picnode) + +minetest.register_craftitem("painting:canvas_16", canvas) + +minetest.register_craftitem("painting:canvas_32", canvas) +minetest.register_craftitem("painting:canvas_64", canvas) + +minetest.register_craftitem("painting:paintedcanvas", paintedcanvas) +minetest.register_entity("painting:paintent", paintent) +minetest.register_node("painting:canvasnode", canvasnode) + +minetest.register_node("painting:easel", easel) + +for color, _ in pairs(textures) do + table.insert(revcolors, color) + local brush_new = table_copy(brush) + brush_new.description = color:gsub("^%l", string.upper).." brush" + brush_new.inventory_image = "painting_brush_"..color..".png" + minetest.register_tool("painting:brush_"..color, brush_new) + minetest.register_craft({ + output = "painting:brush_"..color, + recipe = { + {"dye:"..color}, + {"default:stick"}, + {"default:stick"} + } + }) +end + +for i, color in ipairs(revcolors) do + colors[color] = i +end + +minetest.register_alias("easel", "painting:easel") +minetest.register_alias("canvas", "painting:canvas_16") + +function initgrid(res) + local grid, x, y = {} + for x = 0, res - 1 do + grid[x] = {} + for y = 0, res - 1 do + grid[x][y] = colors["white"] + end + end + return grid +end + +function to_imagestring(data, res) + if not data then return end + local t = { "[combine:", res, "x", res, ":" } + for y = 0, res - 1 do + for x = 0, res - 1 do + table.insert(t, x..","..y.."="..revcolors[ data[x][y] ]..".png:") + end + end + return table.concat(t) +end + +dirs = { + [0] = { x = 0, z = 1 }, + [1] = { x = 1, z = 0 }, + [2] = { x = 0, z =-1 }, + [3] = { x =-1, z = 0 } } + +function sub(v, w) + return { x = v.x - w.x, + y = v.y - w.y, + z = v.z - w.z } +end + +function dot(v, w) + return v.x * w.x + v.y * w.y + v.z * w.z +end + +function intersect(pos, dir, origin, normal) + local t = -(dot(sub(pos, origin), normal)) / dot(dir, normal) + return { x = pos.x + dir.x * t, + y = pos.y + dir.y * t, + z = pos.z + dir.z * t } +end + +function clamp(num, res) + if num < 0 then + return 0 + elseif num > res - 1 then + return res - 1 + else + return num + end +end diff --git a/mods/painting/textures/black.png b/mods/painting/textures/black.png new file mode 100755 index 00000000..daa5f56b Binary files /dev/null and b/mods/painting/textures/black.png differ diff --git a/mods/painting/textures/blue.png b/mods/painting/textures/blue.png new file mode 100755 index 00000000..1eb42179 Binary files /dev/null and b/mods/painting/textures/blue.png differ diff --git a/mods/painting/textures/brown.png b/mods/painting/textures/brown.png new file mode 100755 index 00000000..12a74907 Binary files /dev/null and b/mods/painting/textures/brown.png differ diff --git a/mods/painting/textures/cyan.png b/mods/painting/textures/cyan.png new file mode 100755 index 00000000..557ee603 Binary files /dev/null and b/mods/painting/textures/cyan.png differ diff --git a/mods/painting/textures/darkgreen.png b/mods/painting/textures/darkgreen.png new file mode 100755 index 00000000..42e0f225 Binary files /dev/null and b/mods/painting/textures/darkgreen.png differ diff --git a/mods/painting/textures/darkgrey.png b/mods/painting/textures/darkgrey.png new file mode 100755 index 00000000..d1503079 Binary files /dev/null and b/mods/painting/textures/darkgrey.png differ diff --git a/mods/painting/textures/green.png b/mods/painting/textures/green.png new file mode 100755 index 00000000..1f965f98 Binary files /dev/null and b/mods/painting/textures/green.png differ diff --git a/mods/painting/textures/grey.png b/mods/painting/textures/grey.png new file mode 100755 index 00000000..30baffe8 Binary files /dev/null and b/mods/painting/textures/grey.png differ diff --git a/mods/painting/textures/magenta.png b/mods/painting/textures/magenta.png new file mode 100755 index 00000000..4ff568a1 Binary files /dev/null and b/mods/painting/textures/magenta.png differ diff --git a/mods/painting/textures/orange.png b/mods/painting/textures/orange.png new file mode 100755 index 00000000..e951ba3e Binary files /dev/null and b/mods/painting/textures/orange.png differ diff --git a/mods/painting/textures/painted.png b/mods/painting/textures/painted.png new file mode 100755 index 00000000..a376a7ae Binary files /dev/null and b/mods/painting/textures/painted.png differ diff --git a/mods/painting/textures/painting_brush_black.png b/mods/painting/textures/painting_brush_black.png new file mode 100755 index 00000000..b97e9339 Binary files /dev/null and b/mods/painting/textures/painting_brush_black.png differ diff --git a/mods/painting/textures/painting_brush_blue.png b/mods/painting/textures/painting_brush_blue.png new file mode 100755 index 00000000..5e935889 Binary files /dev/null and b/mods/painting/textures/painting_brush_blue.png differ diff --git a/mods/painting/textures/painting_brush_brown.png b/mods/painting/textures/painting_brush_brown.png new file mode 100755 index 00000000..4f1cb88d Binary files /dev/null and b/mods/painting/textures/painting_brush_brown.png differ diff --git a/mods/painting/textures/painting_brush_cyan.png b/mods/painting/textures/painting_brush_cyan.png new file mode 100755 index 00000000..2e0c05bc Binary files /dev/null and b/mods/painting/textures/painting_brush_cyan.png differ diff --git a/mods/painting/textures/painting_brush_darkgreen.png b/mods/painting/textures/painting_brush_darkgreen.png new file mode 100755 index 00000000..38aa85bf Binary files /dev/null and b/mods/painting/textures/painting_brush_darkgreen.png differ diff --git a/mods/painting/textures/painting_brush_darkgrey.png b/mods/painting/textures/painting_brush_darkgrey.png new file mode 100755 index 00000000..79e24e45 Binary files /dev/null and b/mods/painting/textures/painting_brush_darkgrey.png differ diff --git a/mods/painting/textures/painting_brush_green.png b/mods/painting/textures/painting_brush_green.png new file mode 100755 index 00000000..14a9b547 Binary files /dev/null and b/mods/painting/textures/painting_brush_green.png differ diff --git a/mods/painting/textures/painting_brush_grey.png b/mods/painting/textures/painting_brush_grey.png new file mode 100755 index 00000000..1dff28c6 Binary files /dev/null and b/mods/painting/textures/painting_brush_grey.png differ diff --git a/mods/painting/textures/painting_brush_magenta.png b/mods/painting/textures/painting_brush_magenta.png new file mode 100755 index 00000000..98f48021 Binary files /dev/null and b/mods/painting/textures/painting_brush_magenta.png differ diff --git a/mods/painting/textures/painting_brush_orange.png b/mods/painting/textures/painting_brush_orange.png new file mode 100755 index 00000000..e05eee23 Binary files /dev/null and b/mods/painting/textures/painting_brush_orange.png differ diff --git a/mods/painting/textures/painting_brush_pink.png b/mods/painting/textures/painting_brush_pink.png new file mode 100755 index 00000000..8293898c Binary files /dev/null and b/mods/painting/textures/painting_brush_pink.png differ diff --git a/mods/painting/textures/painting_brush_red.png b/mods/painting/textures/painting_brush_red.png new file mode 100755 index 00000000..6c73aa96 Binary files /dev/null and b/mods/painting/textures/painting_brush_red.png differ diff --git a/mods/painting/textures/painting_brush_violet.png b/mods/painting/textures/painting_brush_violet.png new file mode 100755 index 00000000..f4566207 Binary files /dev/null and b/mods/painting/textures/painting_brush_violet.png differ diff --git a/mods/painting/textures/painting_brush_white.png b/mods/painting/textures/painting_brush_white.png new file mode 100755 index 00000000..29514d22 Binary files /dev/null and b/mods/painting/textures/painting_brush_white.png differ diff --git a/mods/painting/textures/painting_brush_yellow.png b/mods/painting/textures/painting_brush_yellow.png new file mode 100755 index 00000000..b53ca822 Binary files /dev/null and b/mods/painting/textures/painting_brush_yellow.png differ diff --git a/mods/painting/textures/palette.png b/mods/painting/textures/palette.png new file mode 100755 index 00000000..f0b0998b Binary files /dev/null and b/mods/painting/textures/palette.png differ diff --git a/mods/painting/textures/pink.png b/mods/painting/textures/pink.png new file mode 100755 index 00000000..0e8924a2 Binary files /dev/null and b/mods/painting/textures/pink.png differ diff --git a/mods/painting/textures/red.png b/mods/painting/textures/red.png new file mode 100755 index 00000000..26f57d27 Binary files /dev/null and b/mods/painting/textures/red.png differ diff --git a/mods/painting/textures/violet.png b/mods/painting/textures/violet.png new file mode 100755 index 00000000..18b8ccf5 Binary files /dev/null and b/mods/painting/textures/violet.png differ diff --git a/mods/painting/textures/white.png b/mods/painting/textures/white.png new file mode 100755 index 00000000..de406e15 Binary files /dev/null and b/mods/painting/textures/white.png differ diff --git a/mods/painting/textures/yellow.png b/mods/painting/textures/yellow.png new file mode 100755 index 00000000..140cb764 Binary files /dev/null and b/mods/painting/textures/yellow.png differ diff --git a/mods/paintings/depends.txt b/mods/paintings/depends.txt new file mode 100755 index 00000000..470ec30b --- /dev/null +++ b/mods/paintings/depends.txt @@ -0,0 +1,2 @@ +default +wool diff --git a/mods/paintings/init.lua b/mods/paintings/init.lua new file mode 100755 index 00000000..14ee0375 --- /dev/null +++ b/mods/paintings/init.lua @@ -0,0 +1,57 @@ +-- Licensed under CC0. +-- Painting textures from Stunt Rally , licensed under CC0. + +local paintings = {} +paintings.dyes = { + {"white", "White"}, + {"grey", "Grey"}, + {"black", "Black"}, + {"red", "Red"}, + {"yellow", "Yellow"}, + {"green", "Green"}, + {"cyan", "Cyan"}, + {"blue", "Blue"}, + {"magenta", "Magenta"}, + {"orange", "Orange",}, + {"violet", "Violet"}, + {"brown", "Brown"}, + {"pink", "Pink"}, + {"dark_grey", "Dark Grey"}, + {"dark_green", "Dark Green"}, +} + +for _, row in ipairs(paintings.dyes) do + local name = row[1] + local desc = row[2] + minetest.register_node("paintings:" .. name, { + description = desc .. " Painting", + drawtype = "nodebox", + tiles = {"paintings_" .. name .. ".png"}, + inventory_image = "paintings_" .. name .. ".png", + wield_image = "paintings_" .. name .. ".png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + node_box = { + type = "wallmounted", + wall_top = {-0.5, 0.4375, -0.5, 0.5, 0.5, 0.5}, + wall_bottom = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, + wall_side = {-0.5, -0.5, -0.5, -0.4375, 0.5, 0.5}, + }, + groups = {snappy = 2, choppy = 2, oddly_breakable_by_hand = 3, flammable = 3}, + sounds = default.node_sound_wood_defaults(), + }) + minetest.register_craft({ + output = "paintings:" .. name, + recipe = { + {"group:stick", "group:stick", "group:stick"}, + {"group:stick", "wool:" .. name, "group:stick"}, + {"group:stick", "group:stick", "group:stick"}, + } + }) +end + +if minetest.setting_getbool("log_mods") then + minetest.log("action", "Carbone: [paintings] loaded.") +end diff --git a/mods/paintings/textures/paintings_black.png b/mods/paintings/textures/paintings_black.png new file mode 100755 index 00000000..9c493feb Binary files /dev/null and b/mods/paintings/textures/paintings_black.png differ diff --git a/mods/paintings/textures/paintings_blue.png b/mods/paintings/textures/paintings_blue.png new file mode 100755 index 00000000..ad5be64f Binary files /dev/null and b/mods/paintings/textures/paintings_blue.png differ diff --git a/mods/paintings/textures/paintings_brown.png b/mods/paintings/textures/paintings_brown.png new file mode 100755 index 00000000..0b45646a Binary files /dev/null and b/mods/paintings/textures/paintings_brown.png differ diff --git a/mods/paintings/textures/paintings_cyan.png b/mods/paintings/textures/paintings_cyan.png new file mode 100755 index 00000000..2d0af00e Binary files /dev/null and b/mods/paintings/textures/paintings_cyan.png differ diff --git a/mods/paintings/textures/paintings_dark_green.png b/mods/paintings/textures/paintings_dark_green.png new file mode 100755 index 00000000..1cfb3bbf Binary files /dev/null and b/mods/paintings/textures/paintings_dark_green.png differ diff --git a/mods/paintings/textures/paintings_dark_grey.png b/mods/paintings/textures/paintings_dark_grey.png new file mode 100755 index 00000000..656fd8de Binary files /dev/null and b/mods/paintings/textures/paintings_dark_grey.png differ diff --git a/mods/paintings/textures/paintings_green.png b/mods/paintings/textures/paintings_green.png new file mode 100755 index 00000000..a3faab7e Binary files /dev/null and b/mods/paintings/textures/paintings_green.png differ diff --git a/mods/paintings/textures/paintings_grey.png b/mods/paintings/textures/paintings_grey.png new file mode 100755 index 00000000..218946f0 Binary files /dev/null and b/mods/paintings/textures/paintings_grey.png differ diff --git a/mods/paintings/textures/paintings_magenta.png b/mods/paintings/textures/paintings_magenta.png new file mode 100755 index 00000000..216f49a4 Binary files /dev/null and b/mods/paintings/textures/paintings_magenta.png differ diff --git a/mods/paintings/textures/paintings_orange.png b/mods/paintings/textures/paintings_orange.png new file mode 100755 index 00000000..0885e1ec Binary files /dev/null and b/mods/paintings/textures/paintings_orange.png differ diff --git a/mods/paintings/textures/paintings_pink.png b/mods/paintings/textures/paintings_pink.png new file mode 100755 index 00000000..e735cf94 Binary files /dev/null and b/mods/paintings/textures/paintings_pink.png differ diff --git a/mods/paintings/textures/paintings_red.png b/mods/paintings/textures/paintings_red.png new file mode 100755 index 00000000..cdb3fdd5 Binary files /dev/null and b/mods/paintings/textures/paintings_red.png differ diff --git a/mods/paintings/textures/paintings_violet.png b/mods/paintings/textures/paintings_violet.png new file mode 100755 index 00000000..4a7c6cf9 Binary files /dev/null and b/mods/paintings/textures/paintings_violet.png differ diff --git a/mods/paintings/textures/paintings_white.png b/mods/paintings/textures/paintings_white.png new file mode 100755 index 00000000..8f18ee42 Binary files /dev/null and b/mods/paintings/textures/paintings_white.png differ diff --git a/mods/paintings/textures/paintings_yellow.png b/mods/paintings/textures/paintings_yellow.png new file mode 100755 index 00000000..9591b46d Binary files /dev/null and b/mods/paintings/textures/paintings_yellow.png differ diff --git a/mods/plantlife_modpack/.gitignore b/mods/plantlife_modpack/.gitignore new file mode 100755 index 00000000..b25c15b8 --- /dev/null +++ b/mods/plantlife_modpack/.gitignore @@ -0,0 +1 @@ +*~ diff --git a/mods/plantlife_modpack/API.txt b/mods/plantlife_modpack/API.txt new file mode 100755 index 00000000..730ea67c --- /dev/null +++ b/mods/plantlife_modpack/API.txt @@ -0,0 +1,612 @@ +This document describes the Plantlife mod API. + +Last revision: 2014-05-24 + + +========= +Functions +========= + +There are three main functions defined by the main "plants_lib" mod: + +spawn_on_surfaces() +register_generate_plant() +grow_plants() + +There are also several internal, helper functions that can be called if so +desired, but they are not really intended for use by other mods and may change +at any time. They are briefly described below these main functions, but see +init.lua for details. + +Most functions in plants lib are declared locally to avoid namespace +collisions with other mods. They are accessible via the "plantslib" method, +e.g. plantslib:spawn_on_surfaces() and so forth. + +===== +spawn_on_surfaces(biome) +spawn_on_surfaces(sdelay, splant, sradius, schance, ssurface, savoid) + +This first function is an ABM-based spawner function originally created as +part of Ironzorg's flowers mod. It has since been largely extended and +expanded. There are two ways to call this function: You can either pass it +several individual string and number parameters to use the legacy interface, +or you can pass a single biome definition as a table, with all of your options +spelled out nicely. This is the preferred method. + +When used with the legacy interface, you must specify the parameters exactly +in order, with the first five being mandatory (even if some are set to nil), +and the last one being optional: + +sdelay: The value passed to the ABM's interval parameter, in seconds. +splant: The node name of the item to spawn (e.g. + "flowers:flower_rose"). A plant will of course only be + spawned if the node about to be replaced is air. +sradius: Don't spawn within this many nodes of the avoid items + mentioned below. If set to nil, this check is skipped. +schance: The value passed to the ABM's chance parameter, normally in + the 10-100 range (1-in-X chance of operating on a given node) +ssurface: String with the name of the node on which to spawn the plant + in question, such as "default:sand" or + "default:dirt_with_grass". It is not recommended to put air, + stone, or plain dirt here if you can use some other node, as + doing so will cause the engine to process potentially large + numbers of such nodes when deciding when to execute the ABM + and where it should operate. +savoid: Table with a list of groups and/or node names to avoid when + spawning the plant, such as {"group:flowers", "default:tree"}. + +When passed a table as the argument, and thus using the modern calling method, +you must pass a number of arguments in the form of an ordinary keyed-value +table. Below is a list of everything supported by this function: + +biome = { + spawn_plants = something, -- [*] String or table; see below. + spawn_delay = number, -- same as sdelay, above. + spawn_chance = number, -- same as schance, above. + spawn_surfaces = {table}, -- List of node names on which the plants + -- should be spawned. As with the single- + -- node "ssurface" option in the legacy API, + -- you should not put stone, air, etc. here. + + ---- From here down are a number of optional parameters. You will + ---- most likely want to use at least some of these to limit how and + ---- where your objects are spawned. + + avoid_nodes = {table}, -- same meaning as savoid, above + avoid_radius = num, -- same as sradius + seed_diff = num, -- The Perlin seed difference value passed to + -- the minetest.get_perlin() function. + -- Used along with the global Perlin controls + -- below to create the "biome" in which the + -- plants will spawn. Defaults to 0 if not + -- provided. + light_min = num, -- Minimum amount of light necessary to make a + -- plant spawn. Defaults to 0. + light_max = num, -- Maximum amount of light needed to spawn. + -- Defaults to the engine's MAX_LIGHT value of + -- 14. + neighbors = {table}, -- List of neighboring nodes that need to be + -- immediately next to the node the plant is + -- about to spawn on. Can also be a string + -- with a single node name. It is both passed + -- to the ABM as the "neighbors" parameter, + -- and is used to manually check the + -- adjacent nodes. It only takes one of these + -- for the spawn routine to mark the target as + -- spawnable. Defaults to nil (ignored). + ncount = num, -- There must be at least this many of the + -- above neighbors in the eight spaces + -- immediately surrounding the node the plant + -- is about to spawn on for it to happen. If + -- not provided, this check is disabled. + facedir = num, -- The value passed to the param2 variable + -- when adding the node to the map. Defaults + -- to 0. Be sure that the value you use here + -- (and the range thereof) is appropriate for + -- the type of node you're spawning. + random_facedir = {table}, -- If set, the table should contain two + -- values. If they're both provided, the + -- spawned plant will be given a random + -- facedir value in the range specified by + -- these two numbers. Overrides the facedir + -- parameter above, if it exists. Use {0,3} + -- if you want the full range for wallmounted + -- nodes, or {2,5} for most everything else, + -- or any other pair of numbers in the 0 to 5 + -- range, as appropriate for the node you want + -- to spawn. + verticals_list = {table}, -- List of nodes that should be considered + -- to be natural walls. + alt_wallnode = "string", -- If specified, this node will be + -- substituted in place of the plant(s) + -- defined by spawn_plants above, if the spawn + -- target has one or more adjacent walls. In + -- such a case, the two above facedir + -- parameters will be ignored. + depth_max = num, -- If the object spawns on top of a water + -- source, the water must be at most this + -- deep. Defaults to 1 node. + min_elevation = num, -- Surface must be at this altitude or higher + -- to spawn at all. Defaults to -31000... + max_elevation = num, -- ...but must be no higher than this + -- altitude. Defaults to +31000. + near_nodes = {table}, -- List of nodes that must be somewhere in the + -- vicinity in order for the plant to spawn. + -- Can also be a string with a single node + -- name. If not provided, this check is + -- disabled. + near_nodes_size = num, -- How large of an area to check for the above + -- node. Specifically, this checks a flat + -- horizontal area centered on the node to be + -- spawned on. Defaults to 0, but is ignored + -- if the above near_nodes value is not set. + near_nodes_vertical = num, -- Used with the size value above, this + -- extends the vertical range of the near + -- nodes search. Basically, this turns the + -- flat region described above into a cuboid + -- region. The area to be checked will extend + -- this high AND this low above/below the + -- target node, centered thereon. Defaults to + -- 1 (check only the layer above, the layer + -- at, and the layer below the target node), + -- but is ignored if near_nodes is not set. + near_nodes_count = num, -- How many of the above nodes must be within + -- that radius. Defaults to 1 but is ignored + -- if near_nodes isn't set. Bear in mind that + -- the total area to be checked is equal to + -- (near_nodes_size^2)*near_nodes_vertical*2. + -- so for example, if size is 10 and vertical + -- is 4 then the area is (10^2)*8 = 800 nodes + -- in size, so you'll want to make sure you + -- specify a value appropriate for the amount + -- in question. + air_size = num, -- How large of an area to check for air + -- above and around the target. If omitted, + -- only the space above the target is checked. + -- This does not check for air at the sides or + -- below the target. + air_count = num, -- How many of the surrounding nodes need to + -- be air for the above check to return true. + -- If omitted, only the space above the target + -- is checked. + plantlife_limit = num, -- The value compared against the generic + -- "plants can grow here" Perlin noise layer. + -- Smaller numbers result in more abundant + -- plants. Range of -1 to +1, with values in + -- the range of about 0 to 0.5 being most + -- useful. Defaults to 0.1. + temp_min = num, -- Minimum temperature needed for the desired + -- object to spawn. This is a 2d Perlin + -- value, which has an inverted range of +1 to + -- -1. Larger values represent *colder* + -- temperatures, so this value is actually the + -- upper end of the desired Perlin range. See + -- the temperature map section at the bottom + -- of this document for details on how these + -- values work. Defaults to +1 (unlimited + -- coldness). + temp_max = num, -- Maximum temperature/lower end of the Perlin + -- range. Defaults to -1 (unlimited heat). + humidity_min = num, -- Minimum humidity for the plant to spawn in. + -- Like the temperature map, this is a Perlin + -- value where lower numbers mean more + -- humidity in the area. Defaults to +1 (0% + -- relative humidity). + humidity_max = num, -- Maximum humidity for the plant to spawn at. + -- Defaults to -1 (100% humidity). + spawn_on_side = bool, -- Set this to true to spawn the node on one + -- side of the target node rather than the + -- top. The code will search for an airspace + -- to the side of the target, then spawn the + -- plant at the first one found. The above + -- facedir and random_facedir parameters are + -- ignored in this case. If the above + -- parameters for selecting generic wall nodes + -- are provided, this option is ignored. + -- Important note: the facedir values assigned + -- by this option only make sense with + -- wallmounted nodes (nodes which don't use + -- facedir won't be affected). + spawn_on_bottom = bool, -- If set to true, spawn the object below the + -- target node instead of above it. The above + -- spawn_on_side variable takes precedence + -- over this one if both happen to be true. + -- When using this option with the random + -- facedir function above, the values given to + -- the facedir parameter are for regular + -- nodes, not wallmounted. + spawn_replace_node = bool, -- If set to true, the target node itself + -- is replaced by the spawned object. + -- Overrides the spawn_on_bottom and + -- spawn_on_side settings. +} + +[*] spawn_plants must be either a table or a string. If it's a table, the +values therein are treated as a list of nodenames to pick from randomly on +each application of the ABM code. The more nodes you can pack into this +parameter to avoid making too many calls to this function, the lower the CPU +load will likely be. + +You can also specify a string containing the name of a function to execute. +In this case, the function will be passed a single position parameter +indicating where the function should place the desired object, and the checks +for spawning on top vs. sides vs. bottom vs. replacing the target node will be +skipped. + +By default, if a biome node, size, and count are not defined, the biome +checking is disabled. Same holds true for the nneighbors bit above that. + + +===== +plantslib:register_generate_plant(biome, nodes_or_function_or_treedef) + +To register an object to be spawned at mapgen time rather than via an ABM, +call this function with two parameters: a table with your object's biome +information, and a string, function, or table describing what to do if the +engine finds a suitable surface node (see below). + +The biome table contains quite a number of options, though there are fewer +here than are available in the ABM-based spawner, as some stuff doesn't make +sense at map-generation time. + +biome = { + surface = something, -- What node(s). May be a string such as + -- "default:dirt_with_grass" or a table with + -- multiple such entries. + + ---- Everything else is optional, but you'll definitely want to use + ---- some of these other fields to limit where and under what + ---- conditions the objects are spawned. + + below_nodes = {table}, -- List of nodes that must be below the target + -- node. Useful in snow biomes to keep + -- objects from spawning in snow that's on the + -- wrong surface for that object. + avoid_nodes = {table}, -- List of nodes or groups to avoid when + -- spawning. + avoid_radius = num, -- how much distance to leave between the + -- object to be added and the objects to be + -- avoided. If this or the avoid_nodes value + -- is nil or omitted, this check is skipped. + -- Avoid using excessively large radii or you + -- will slow down the map generator. + rarity = num, -- how rare should this object be in its + -- biome? Larger values make objects more + -- rare, via: math.random(1,100) > this + max_count = num, -- The absolute maximum number of your object + -- that should be allowed to spawn in a 5x5x5 + -- mapblock area (80x80x80 nodes). Defaults + -- to 5, but be sure you set this to some + -- reasonable value depending on your object + -- and its size if 5 is insufficient. + seed_diff = num, -- perlin seed-diff value. Defaults to 0, + -- which causes the function to inherit the + -- global value of 329. + neighbors = {table}, -- What ground nodes must be right next to and + -- at the same elevation as the node to be + -- spawned on. + ncount = num, -- at least this many of the above nodes must + -- be next to the node to spawn on. Any value + -- greater than 8 will probably cause the code + -- to never spawn anything. Defaults to 0. + depth = num, -- how deep/thick of a layer the spawned-on + -- node must be. Typically used for water. + min_elevation = num, -- minimum elevation in meters/nodes. + -- Defaults to -31000 (unlimited). + max_elevation = num, -- maximum elevation. Defaults to +31000 + -- (unlimited). + near_nodes = {table}, -- what nodes must be in the general vicinity + -- of the object being spawned. + near_nodes_size = num, -- how wide of a search area to look for + -- the nodes in that list. + near_nodes_vertical = num, -- How high/low of an area to search from + -- the target node. + near_nodes_count = num, -- at least this many of those nodes must be + -- in the area. + plantlife_limit = num, -- The value compared against the generic + -- "plants can grow here" Perlin noise layer. + -- Smaller numbers result in more abundant + -- plants. Range of -1 to +1, with values in + -- the range of about 0 to 0.5 being most + -- useful. Defaults to 0.1. + temp_min = num, -- coldest allowable temperature for a plant + -- to spawn (that is, the highest Perlin + -- temperature map value). + temp_max = num, -- warmest allowable temperature to spawn a + -- plant (lowest Perlin temperature value). + verticals_list = {table}, -- Same as with the spawn_on_surfaces + -- function. + check_air = bool, -- Flag to tell the mapgen code to check for + -- air above the spawn target. Defaults to + -- true if not explicitly set to false. + delete_above = bool, -- Flag to tell the mapgen code to delete the + -- two nodes directly above the spawn target + -- just before adding the plant or tree. + -- Useful when generating in snow biomes. + -- Defaults to false. + delete_above_surround = bool, -- Flag to tell the mapgen code to also + -- delete the four nodes surrounding the above + -- space, and the four nodes above those, + -- resulting in a two-node-deep cross-shaped + -- empty region above the spawn target. + -- Useful when adding trees to snow biomes. + -- Defaults to false. + spawn_replace_node = bool, -- same as with the ABM spawner. + random_facedir = {table}, -- same as with the ABM spawner. +} + +Regarding nodes_or_function_or_treedef, this must either be a string naming +a node to spawn, a table with a list of nodes to choose from, a table with an +L-Systems tree definition, or a function. + +If you specified a string, the code will attempt to determine whether that +string specifies a valid node name. If it does, that node will be placed on +top of the target position directly (unless one of the other mapgen options +directs the code to do otherwise). + +If you specified a table and there is no "axiom" field, the code assumes that +it is a list of nodes. Simply name one node per entry in the list, e.g. +{"default:junglegrass", "default:dry_shrub"} and so on, for as many nodes as +you want to list. A random node from the list will be chosen each time the +code goes to place a node. + +If you specified a table, and there *is* an "axiom" field, the code assumes +that this table contains an L-Systems tree definition, which will be passed +directly to the engine's spawn_tree() function along with the position on +which to spawn the tree. + +You can also supply a function to be directly executed, which is given the +current node position (the usual "pos" table format) as its sole argument. It +will be called in the form: + + somefunction(pos) + + +===== +plantslib:grow_plants(options) + +The third function, grow_plants() is used to turn the spawned nodes above +into something else over time. This function has no return value, and accepts +a biome definition table as the only parameter. These are defined like so: + +options = { + grow_plant = "string", -- Name of the node to be grown into something + -- else. This value is passed to the ABM as + -- the "nodenames" parameter, so it is the + -- plants themselves that are the ABM trigger, + -- rather than the ground they spawned on. A + -- plant will only grow if the node above it + -- is air. Can also be a table, but note that + -- all nodes referenced therein will be grown + -- into the same object. + grow_delay = num, -- Passed as the ABM "interval" parameter, as + -- with spawning. + grow_chance = num, -- Passed as the ABM "chance" parameter. + grow_result = "string", -- Name of the node into which the grow_plant + -- node(s) should transform when the ABM + -- executes. + + ---- Everything from here down is optional. + + dry_early_node = "string", -- This value is ignored except for jungle + -- grass (a corner case needed by that mod), + -- where it indicates which node the grass + -- must be on in order for it to turn from + -- the short size to "default:dry_shrub" + -- instead of the medium size. + grow_nodes = {table}, -- One of these nodes must be under the plant + -- in order for it to grow at all. Normally + -- this should be the same as the list of + -- surfaces passed to the spawning ABM as the + -- "nodenames" parameter. This is so that the + -- plant can be manually placed on something + -- like a flower pot or something without it + -- growing and eventually dieing. Defaults to + -- "default:dirt_with_grass". + facedir = num, -- Same as with spawning a plant. + need_wall = bool, -- Set this to true if you the plant needs to + -- grow against a wall. Defaults to false. + verticals_list = {table}, -- List of nodes that should be considered + -- to be wall surfaces when growing the plant + -- vertically. If not provided, the walls + -- check is skipped. + grow_vertically = bool, -- Set this to true if the plant needs to grow + -- vertically, as in climbing poison ivy. + -- Defaults to false. + height_limit = num, -- Set this to limit how tall the desired node + -- can grow. The mod will search straight + -- down from the position being spawned at to + -- find a ground node, set via the parameter + -- below. Defaults to 5 nodes. + ground_nodes = {table}, -- What nodes should be treated as "the + -- ground" below a vertically-growing plant. + -- Usually this should be the same as the + -- grow_nodes table, but might also include, + -- for example, water or some other + -- surrounding material. Defaults to + -- "default:dirt_with_grass". + grow_function = something, -- [*] see below. + seed_diff = num, -- [*] see below. +} + +[*] grow_function can take one of three possible settings: it can be nil (or + not provided), a string, or a table. + +If it is not provided or it's set to nil, all of the regular growing code is +executed normally, the value of seed_diff, if any, is ignored, and the node to +be placed is assumed to be specified in the grow_result variable. + +If this value is set to a simple string, this is treated as the name of the +function to use to grow the plant. In this case, all of the usual growing +code is executeed, but then instead of a plant being simply added to the +world, grow_result is ignored and the named function is executed and passed a +few parmeters in the following general form: + + somefunction(pos, perlin1, perlin2) + +These values represent the current position (the usual table), the Perlin +noise value for that spot in the generic "plants can grow here" map for the +seed_diff value above, the Perlin value for that same spot from the +temperature map, and the detected neighboring wall face, if there was one (or +nil if not). If seed_diff is not provided, it defaults to 0. + +If this variable is instead set to a table, it is treated an an L-Systems tree +definition. All of the growing code is executed in the usual manner, then the +tree described by that definition is spawned at the current position instead, +and grow_result is ignored. + + +===== +find_adjacent_wall(pos, verticals) + +Of the few helper functions, this one expects a position parameter and a table +with the list of nodes that should be considered as walls. The code will +search around the given position for a neighboring wall, returning the first +one it finds as a facedir value, or nil if there are no adjacent walls. + + +===== +is_node_loaded(pos) + +This acts as a wrapper for the minetest.get_node_or_nil(node_pos) +function and accepts a single position parameter. Returns true if the node in +question is already loaded, or false if not. + + +===== +dbg(string) + +This is a simple debug output function which takes one string parameter. It +just checks if DEBUG is true and outputs the phrase "[Plantlife] " followed by +the supplied string, via the print() function, if so. + +===== +plantslib:generate_tree(pos, treemodel) +plantslib:grow_tree(pos, treemodel) + +In the case of the growing code and the mapgen-based tree generator code, +generating a tree is done via the above two calls, which in turn immediately +call the usual spawn_tree() functions. This rerouting exists as a way for +other mods to hook into plants_lib's tree-growing functions in general, +perhaps to execute something extra whenever a tree is spawned. + +plantslib:generate_tree(pos, treemodel) is called any time a +tree is spawned at map generation time. 'pos' is the position of the block on +which the tree is to be placed. 'treemodel' is the standard L-Systems tree +definition table expected by the spawn_tree() function. Refer to the 'trunk' +field in that table to derive the name of the tree being spawned. + +plantslib:grow_tree(pos, treemodel) does the same sort of thing whenever a +tree is spawned within the abm-based growing code, for example when growing a +sapling into a tree. + + +===== +There are other, internal helper functions that are not meant for use by other +mods. Don't rely on them, as they are subject to change without notice. + + +=============== +Global Settings +=============== + +Set this to true if you want the mod to spam your console with debug info :-) + + plantlife_debug = false + + +====================== +Fertile Ground Mapping +====================== + +The mod uses Perlin noise to create "biomes" of the various plants, via the +minetest.get_perlin() function. At present, there are three layers of +Perlin noise used. + +The first one is for a "fertile ground" layer, which I tend to refer to as the +generic "stuff can potentially grow here" layer. Its values are hard-coded: + + plantslib.plantlife_seed_diff = 329 + perlin_octaves = 3 + perlin_persistence = 0.6 + perlin_scale = 100 + +For more information on how Perlin noise is generated, you will need to search +the web, as these default values were from that which is used by minetest_game +to spawn jungle grass at mapgen time, and I'm still learning how Perlin noise +works. ;-) + + +=================== +Temperature Mapping +=================== + +The second Perlin layer is a temperature map, with values taken from +SPlizard's Snow Biomes mod so that the two will be compatible, since that mod +appears to be the standard now. Those values are: + + temperature_seeddiff = 112 + temperature_octaves = 3 + temperature_persistence = 0.5 + temperature_scale = 150 + +The way Perlin values are used by this mod, in keeping with the snow mod's +apparent methods, larger values returned by the Perlin function represent +*colder* temperatures. In this mod, the following table gives a rough +approximation of how temperature maps to these values, normalized to +0.53 = 0 °C and +1.0 = -25 °C. + +Perlin Approx. Temperature +-1.0 81 °C ( 178 °F) +-0.75 68 °C ( 155 °F) +-0.56 58 °C ( 136 °F) +-0.5 55 °C ( 131 °F) +-0.25 41 °C ( 107 °F) +-0.18 38 °C ( 100 °F) + 0 28 °C ( 83 °F) + 0.13 21 °C ( 70 °F) + 0.25 15 °C ( 59 °F) + 0.5 2 °C ( 35 °F) + 0.53 0 °C ( 32 °F) + 0.75 -12 °C ( 11 °F) + 0.86 -18 °C ( 0 °F) + 1.0 -25 °C (- 13 °F) + +Included in this table are even 0.25 steps in Perlin values along with some +common temperatures on both the Centigrade and Fahrenheit scales. Note that +unless you're trying to model the Moon or perhaps Mercury in your mods/maps, +you probably won't need to bother with Perlin values of less than -0.56 or so. + + +================ +Humidity Mapping +================ + +Last but not least is a moisture/humidity map. Like the temperature map +above, Perlin values can be tested to determine the approximate humidity of +the *air* in the area. This humidity map is basically the perlin layer used +for deserts. + +A value of +1.0 is very moist (basically a thick fog, if it could be seen), a +value of roughly +0.25 represents the edge of a desert as usually seen in the +game, and a value of -1.0 is as dry as a bone. + +This does not check for nearby water, just general air humidity, and that +being the case, nearby ground does not affect the reported humidity of a +region (because this isn't yet possible to calculate yet). Use the near_nodes +and avoid_nodes parameters and their related options to check for water and +such. + +The Perlin values use for this layer are: + + humidity_seeddiff = 9130 + humidity_octaves = 3 + humidity_persistence = 0.5 + humidity_scale = 250 + +And this particular one is mapped slightly differently from the others: + + noise3 = perlin3:get2d({x=p_top.x+150, y=p_top.z+50}) + +(Note the +150 and +50 offsets) + diff --git a/mods/plantlife_modpack/LICENSE b/mods/plantlife_modpack/LICENSE new file mode 100755 index 00000000..c578745a --- /dev/null +++ b/mods/plantlife_modpack/LICENSE @@ -0,0 +1,335 @@ + +For the code, Ironzorg's textures, and everything else: WTFPL + +For Mossmanikin's mods (Ferns, Dryplans, and the components +from the Undergrowth modpack), and all of my own textures: +CC-By-SA 3.0 + +---------- + 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. + + This license is also known as "WTFPL" + +----------- + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS +CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS +PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE +WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW +IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND +AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS +LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS +YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE +OF SUCH TERMS AND CONDITIONS. + +1. Definitions + + "Collective Work" means a work, such as a periodical issue, +anthology or encyclopedia, in which the Work in its entirety in +unmodified form, along with one or more other contributions, +constituting separate and independent works in themselves, are +assembled into a collective whole. A work that constitutes a +Collective Work will not be considered a Derivative Work (as +defined below) for the purposes of this License. + "Creative Commons Compatible License" means a license that is +listed at http://creativecommons.org/compatiblelicenses that has +been approved by Creative Commons as being essentially equivalent +to this License, including, at a minimum, because that license: +(i) contains terms that have the same purpose, meaning and effect +as the License Elements of this License; and, (ii) explicitly +permits the relicensing of derivatives of works made available +under that license under this License or either a Creative Commons +unported license or a Creative Commons jurisdiction license with +the same License Elements as this License. + "Derivative Work" means a work based upon the Work or upon the +Work and other pre-existing works, such as a translation, musical +arrangement, dramatization, fictionalization, motion picture +version, sound recording, art reproduction, abridgment, +condensation, or any other form in which the Work may be recast, +transformed, or adapted, except that a work that constitutes a +Collective Work will not be considered a Derivative Work for the +purpose of this License. For the avoidance of doubt, where the +Work is a musical composition or sound recording, the +synchronization of the Work in timed-relation with a moving image +("synching") will be considered a Derivative Work for the purpose +of this License. + "License Elements" means the following high-level license +attributes as selected by Licensor and indicated in the title of +this License: Attribution, ShareAlike. + "Licensor" means the individual, individuals, entity or +entities that offers the Work under the terms of this License. + "Original Author" means the individual, individuals, entity or +entities who created the Work. + "Work" means the copyrightable work of authorship offered +under the terms of this License. + "You" means an individual or entity exercising rights under +this License who has not previously violated the terms of this +License with respect to the Work, or who has received express +permission from the Licensor to exercise rights under this License +despite a previous violation. + +2. Fair Use Rights. Nothing in this license is intended to reduce, +limit, or restrict any rights arising from fair use, first sale or +other limitations on the exclusive rights of the copyright owner +under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this +License, Licensor hereby grants You a worldwide, royalty-free, +non-exclusive, perpetual (for the duration of the applicable +copyright) license to exercise the rights in the Work as stated +below: + + to reproduce the Work, to incorporate the Work into one or +more Collective Works, and to reproduce the Work as incorporated +in the Collective Works; + to create and reproduce Derivative Works provided that any +such Derivative Work, including any translation in any medium, +takes reasonable steps to clearly label, demarcate or otherwise +identify that changes were made to the original Work. For example, +a translation could be marked "The original work was translated +from English to Spanish," or a modification could indicate "The +original work has been modified."; + to distribute copies or phonorecords of, display publicly, +perform publicly, and perform publicly by means of a digital audio +transmission the Work including as incorporated in Collective +Works; + to distribute copies or phonorecords of, display publicly, +perform publicly, and perform publicly by means of a digital audio +transmission Derivative Works. + + For the avoidance of doubt, where the Work is a musical +composition: + Performance Royalties Under Blanket Licenses. Licensor +waives the exclusive right to collect, whether individually or, in +the event that Licensor is a member of a performance rights +society (e.g. ASCAP, BMI, SESAC), via that society, royalties for +the public performance or public digital performance (e.g. +webcast) of the Work. + Mechanical Rights and Statutory Royalties. Licensor waives +the exclusive right to collect, whether individually or via a +music rights agency or designated agent (e.g. Harry Fox Agency), +royalties for any phonorecord You create from the Work ("cover +version") and distribute, subject to the compulsory license +created by 17 USC Section 115 of the US Copyright Act (or the +equivalent in other jurisdictions). + Webcasting Rights and Statutory Royalties. For the avoidance +of doubt, where the Work is a sound recording, Licensor waives the +exclusive right to collect, whether individually or via a +performance-rights society (e.g. SoundExchange), royalties for the +public digital performance (e.g. webcast) of the Work, subject to +the compulsory license created by 17 USC Section 114 of the US +Copyright Act (or the equivalent in other jurisdictions). + +The above rights may be exercised in all media and formats whether +now known or hereafter devised. The above rights include the right +to make such modifications as are technically necessary to +exercise the rights in other media and formats. All rights not +expressly granted by Licensor are hereby reserved. + +4. Restrictions. The license granted in Section 3 above is +expressly made subject to and limited by the following +restrictions: + + You may distribute, publicly display, publicly perform, or +publicly digitally perform the Work only under the terms of this +License, and You must include a copy of, or the Uniform Resource +Identifier for, this License with every copy or phonorecord of the +Work You distribute, publicly display, publicly perform, or +publicly digitally perform. You may not offer or impose any terms +on the Work that restrict the terms of this License or the ability +of a recipient of the Work to exercise of the rights granted to +that recipient under the terms of the License. You may not +sublicense the Work. You must keep intact all notices that refer +to this License and to the disclaimer of warranties. When You +distribute, publicly display, publicly perform, or publicly +digitally perform the Work, You may not impose any technological +measures on the Work that restrict the ability of a recipient of +the Work from You to exercise of the rights granted to that +recipient under the terms of the License. This Section 4(a) +applies to the Work as incorporated in a Collective Work, but this +does not require the Collective Work apart from the Work itself to +be made subject to the terms of this License. If You create a +Collective Work, upon notice from any Licensor You must, to the +extent practicable, remove from the Collective Work any credit as +required by Section 4(c), as requested. If You create a Derivative +Work, upon notice from any Licensor You must, to the extent +practicable, remove from the Derivative Work any credit as +required by Section 4(c), as requested. + You may distribute, publicly display, publicly perform, or +publicly digitally perform a Derivative Work only under: (i) the +terms of this License; (ii) a later version of this License with +the same License Elements as this License; (iii) either the +Creative Commons (Unported) license or a Creative Commons +jurisdiction license (either this or a later license version) that +contains the same License Elements as this License (e.g. +Attribution-ShareAlike 3.0 (Unported)); (iv) a Creative Commons +Compatible License. If you license the Derivative Work under one +of the licenses mentioned in (iv), you must comply with the terms +of that license. If you license the Derivative Work under the +terms of any of the licenses mentioned in (i), (ii) or (iii) (the +"Applicable License"), you must comply with the terms of the +Applicable License generally and with the following provisions: +(I) You must include a copy of, or the Uniform Resource Identifier +for, the Applicable License with every copy or phonorecord of each +Derivative Work You distribute, publicly display, publicly +perform, or publicly digitally perform; (II) You may not offer or +impose any terms on the Derivative Works that restrict the terms +of the Applicable License or the ability of a recipient of the +Work to exercise the rights granted to that recipient under the +terms of the Applicable License; (III) You must keep intact all +notices that refer to the Applicable License and to the disclaimer +of warranties; and, (IV) when You distribute, publicly display, +publicly perform, or publicly digitally perform the Work, You may +not impose any technological measures on the Derivative Work that +restrict the ability of a recipient of the Derivative Work from +You to exercise the rights granted to that recipient under the +terms of the Applicable License. This Section 4(b) applies to the +Derivative Work as incorporated in a Collective Work, but this +does not require the Collective Work apart from the Derivative +Work itself to be made subject to the terms of the Applicable +License. + If You distribute, publicly display, publicly perform, or +publicly digitally perform the Work (as defined in Section 1 +above) or any Derivative Works (as defined in Section 1 above) or +Collective Works (as defined in Section 1 above), You must, unless +a request has been made pursuant to Section 4(a), keep intact all +copyright notices for the Work and provide, reasonable to the +medium or means You are utilizing: (i) the name of the Original +Author (or pseudonym, if applicable) if supplied, and/or (ii) if +the Original Author and/or Licensor designate another party or +parties (e.g. a sponsor institute, publishing entity, journal) for +attribution ("Attribution Parties") in Licensor's copyright +notice, terms of service or by other reasonable means, the name of +such party or parties; the title of the Work if supplied; to the +extent reasonably practicable, the Uniform Resource Identifier, if +any, that Licensor specifies to be associated with the Work, +unless such URI does not refer to the copyright notice or +licensing information for the Work; and, consistent with Section +3(b) in the case of a Derivative Work, a credit identifying the +use of the Work in the Derivative Work (e.g., "French translation +of the Work by Original Author," or "Screenplay based on original +Work by Original Author"). The credit required by this Section +4(c) may be implemented in any reasonable manner; provided, +however, that in the case of a Derivative Work or Collective Work, +at a minimum such credit will appear, if a credit for all +contributing authors of the Derivative Work or Collective Work +appears, then as part of these credits and in a manner at least as +prominent as the credits for the other contributing authors. For +the avoidance of doubt, You may only use the credit required by +this Section for the purpose of attribution in the manner set out +above and, by exercising Your rights under this License, You may +not implicitly or explicitly assert or imply any connection with, +sponsorship or endorsement by the Original Author, Licensor and/or +Attribution Parties, as appropriate, of You or Your use of the +Work, without the separate, express prior written permission of +the Original Author, Licensor and/or Attribution Parties. + +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, +LICENSOR OFFERS THE WORK AS-IS AND ONLY TO THE EXTENT OF ANY +RIGHTS HELD IN THE LICENSED WORK BY THE LICENSOR. THE LICENSOR +MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE +WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT +LIMITATION, WARRANTIES OF TITLE, MARKETABILITY, MERCHANTIBILITY, +FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE +OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE +OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT +ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY +NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY +APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY +LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE +OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE +WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + +7. Termination + + This License and the rights granted hereunder will terminate +automatically upon any breach by You of the terms of this License. +Individuals or entities who have received Derivative Works or +Collective Works from You under this License, however, will not +have their licenses terminated provided such individuals or +entities remain in full compliance with those licenses. Sections +1, 2, 5, 6, 7, and 8 will survive any termination of this License. + Subject to the above terms and conditions, the license granted +here is perpetual (for the duration of the applicable copyright in +the Work). Notwithstanding the above, Licensor reserves the right +to release the Work under different license terms or to stop +distributing the Work at any time; provided, however that any such +election will not serve to withdraw this License (or any other +license that has been, or is required to be, granted under the +terms of this License), and this License will continue in full +force and effect unless terminated as stated above. + +8. Miscellaneous + + Each time You distribute or publicly digitally perform the +Work (as defined in Section 1 above) or a Collective Work (as +defined in Section 1 above), the Licensor offers to the recipient +a license to the Work on the same terms and conditions as the +license granted to You under this License. + Each time You distribute or publicly digitally perform a +Derivative Work, Licensor offers to the recipient a license to the +original Work on the same terms and conditions as the license +granted to You under this License. + If any provision of this License is invalid or unenforceable +under applicable law, it shall not affect the validity or +enforceability of the remainder of the terms of this License, and +without further action by the parties to this agreement, such +provision shall be reformed to the minimum extent necessary to +make such provision valid and enforceable. + No term or provision of this License shall be deemed waived +and no breach consented to unless such waiver or consent shall be +in writing and signed by the party to be charged with such waiver +or consent. + This License constitutes the entire agreement between the +parties with respect to the Work licensed here. There are no +understandings, agreements or representations with respect to the +Work not specified here. Licensor shall not be bound by any +additional provisions that may appear in any communication from +You. This License may not be modified without the mutual written +agreement of the Licensor and You. + + Creative Commons Notice + + Creative Commons is not a party to this License, and makes no +warranty whatsoever in connection with the Work. Creative Commons +will not be liable to You or any party on any legal theory for any +damages whatsoever, including without limitation any general, +special, incidental or consequential damages arising in connection +to this license. Notwithstanding the foregoing two (2) sentences, +if Creative Commons has expressly identified itself as the +Licensor hereunder, it shall have all rights and obligations of +Licensor. + + Except for the limited purpose of indicating to the public +that the Work is licensed under the CCPL, Creative Commons does +not authorize the use by either party of the trademark "Creative +Commons" or any related trademark or logo of Creative Commons +without the prior written consent of Creative Commons. Any +permitted use will be in compliance with Creative Commons' +then-current trademark usage guidelines, as may be published on +its website or otherwise made available upon request from time to +time. For the avoidance of doubt, this trademark restriction does +not form part of this License. + + Creative Commons may be contacted at +http://creativecommons.org/. + diff --git a/mods/plantlife_modpack/README b/mods/plantlife_modpack/README new file mode 100755 index 00000000..8e32dd52 --- /dev/null +++ b/mods/plantlife_modpack/README @@ -0,0 +1,72 @@ +README file for Plantlife mod, by Vanessa Ezekowitz +--------------------------------------------------- + +Plantlife is a combined form of my Flowers and Poison Ivy mods and an expanded +version of the old Bushes mod, now called bushes_classic. The entire package +has been significantly rewritten and re-organized. This mod supplies all +three of these components and should be 100% compatible with mods that used +the old versions. + +Its purpose is to add various kinds of flowers, cotton plants, water foliage, +poison ivy, and fruit bushes, obviously. :-) All of these are spawned as +normal nodes and can be collected and used in any recipes that depend on the +old mods. + +Spawning of plants is sensitive to the amount of available light. Flowers, +cotton, and waterlilies only spawn when there at least a signficant amount of +light. Seaweed will grow only in dimly-lit areas. Poison ivy also grows only +in the daytime, but require less light than flowers. + +Growing of poison ivy will only occur for plants that are on the same surface +that is necessary for them to spawn on, so they won't grow if placed on e.g. +cobble or homedecor flower pot, etc. This doesn't affect wall-climbing poison +ivy, since it uses a different growth pattern. + +All plants use multiple controls provided by plants_lib, to keep where they +grow under control - no more random spread of plants! In addition, the density +of the plants in any region they appear in has been fixed and brought under +control. + +Poison ivy is found sparsely among junglegrass, but will not grow near flowers. + +------------------------------------------------------------------------------ + +Important details: + +Configuration: Any of the three components of this mod can be disabled +by just removing their respective directories. + +Dependencies: Just the game's default stuff. + +Recommends: Nothing in particular. + +Conflicts: This mod should not be installed alongside the original, separate +Poison Ivy, or old Bushes mods. If those exist, delete them, as this mod +supplies their functionality. If you still use the old Jungle Grass mod +either as previously supplied with this modpack, or in its standalone form, +you'll want to delete the "junglegrass" directory from this modpack to get rid +of the aliases-to-air that it supplies. + +Software Requirements: This mod requires Minetest 0.4.9 or later. It is +unlikely to work with old versions. + +------------------------------------------------------------------------------ + +Crafting: + +For crafting recipes, please see the forum thread for this modpack: + +https://forum.minetest.net/viewtopic.php?f=11&t=3898 + +------------------------------------------------------------------------------ + +Notes: + +Poison Ivy will spawn on grass and in some cases, on vertical surfaces +including trees and jungle trees where they meet the dirt or grass. Ivy +previously spawned on the ground taller/thicker or start climbing up said +vertical surfaces and trees. + +At present, the poison ivy presents little more than an annoyance - they can +only be cut down and either re-planted or thrown away. No damage is done by +harvesting them, yet. ;-) diff --git a/mods/plantlife_modpack/along_shore/depends.txt b/mods/plantlife_modpack/along_shore/depends.txt new file mode 100755 index 00000000..e27a0d06 --- /dev/null +++ b/mods/plantlife_modpack/along_shore/depends.txt @@ -0,0 +1,3 @@ +default +plants_lib +flowers_plus? \ No newline at end of file diff --git a/mods/plantlife_modpack/along_shore/init.lua b/mods/plantlife_modpack/along_shore/init.lua new file mode 100755 index 00000000..719d3245 --- /dev/null +++ b/mods/plantlife_modpack/along_shore/init.lua @@ -0,0 +1,9 @@ +----------------------------------------------------------------------------------------------- +local title = "Along the Shore" +local version = "0.0.4" +local mname = "along_shore" +----------------------------------------------------------------------------------------------- + +----------------------------------------------------------------------------------------------- +print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") +----------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/mods/plantlife_modpack/along_shore/textures/along_shore_seaweed_1Darker.png b/mods/plantlife_modpack/along_shore/textures/along_shore_seaweed_1Darker.png new file mode 100755 index 00000000..7c559267 Binary files /dev/null and b/mods/plantlife_modpack/along_shore/textures/along_shore_seaweed_1Darker.png differ diff --git a/mods/plantlife_modpack/along_shore/textures/credit_textures.txt b/mods/plantlife_modpack/along_shore/textures/credit_textures.txt new file mode 100755 index 00000000..89b4ce71 --- /dev/null +++ b/mods/plantlife_modpack/along_shore/textures/credit_textures.txt @@ -0,0 +1,30 @@ +------------------------------------------------------------- +Credit for textures of "along_shore" +------------------------------------------------------------- +(If more than one author is listed the names are in alphabetical order) +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +FOLDER TEXTURE AUTHORS +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +../along_shore/textures along_shore_seaweed_1Darker.png Neuromancer, VanessaE +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +../along_shore/textures/old (along_shore_empty.png) (Mossmanikin) + along_shore_lilypads_1.png Mossmanikin, Neuromancer + along_shore_lilypads_2.png Mossmanikin, Neuromancer + along_shore_lilypads_3.png Mossmanikin, Neuromancer + along_shore_lilypads_4.png Mossmanikin, Neuromancer + along_shore_pondscum_1.png Neuromancer + along_shore_seaweed_1.png Neuromancer, VanessaE + along_shore_seaweed_2.png Mossmanikin, Neuromancer, VanessaE + along_shore_seaweed_3.png Mossmanikin, Neuromancer, VanessaE + along_shore_seaweed_4.png Mossmanikin, Neuromancer, VanessaE + flowers_seaweed.png Neuromancer, VanessaE + flowers_waterlily.png Mossmanikin, VanessaE + flowers_waterlily_22.5.png Mossmanikin, VanessaE + flowers_waterlily_45.png Mossmanikin, VanessaE + flowers_waterlily_67.5.png Mossmanikin, VanessaE + lillypad3Flower16x.png Neuromancer + LillyPad3x16.png Neuromancer + lillyPad5x16.png Neuromancer + MultiLilly16x.png Neuromancer + pondscum16xc.png Neuromancer +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- diff --git a/mods/plantlife_modpack/along_shore/textures/old/LillyPad3x16.png b/mods/plantlife_modpack/along_shore/textures/old/LillyPad3x16.png new file mode 100755 index 00000000..f121ec1b Binary files /dev/null and b/mods/plantlife_modpack/along_shore/textures/old/LillyPad3x16.png differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/MultiLilly16x.png b/mods/plantlife_modpack/along_shore/textures/old/MultiLilly16x.png new file mode 100755 index 00000000..5a996949 Binary files /dev/null and b/mods/plantlife_modpack/along_shore/textures/old/MultiLilly16x.png differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_empty.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_empty.png new file mode 100755 index 00000000..c6824538 Binary files /dev/null and b/mods/plantlife_modpack/along_shore/textures/old/along_shore_empty.png differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_1.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_1.png new file mode 100755 index 00000000..186bb315 Binary files /dev/null and b/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_1.png differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_2.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_2.png new file mode 100755 index 00000000..6ad36cea Binary files /dev/null and b/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_2.png differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_3.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_3.png new file mode 100755 index 00000000..a7a7931e Binary files /dev/null and b/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_3.png differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_4.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_4.png new file mode 100755 index 00000000..93d20304 Binary files /dev/null and b/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_4.png differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_pondscum_1.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_pondscum_1.png new file mode 100755 index 00000000..18b18794 Binary files /dev/null and b/mods/plantlife_modpack/along_shore/textures/old/along_shore_pondscum_1.png differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_1.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_1.png new file mode 100755 index 00000000..51f791db Binary files /dev/null and b/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_1.png differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_2.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_2.png new file mode 100755 index 00000000..a3195f52 Binary files /dev/null and b/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_2.png differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_3.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_3.png new file mode 100755 index 00000000..b791ee9d Binary files /dev/null and b/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_3.png differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_4.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_4.png new file mode 100755 index 00000000..2fccd04e Binary files /dev/null and b/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_4.png differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/flowers_seaweed.png b/mods/plantlife_modpack/along_shore/textures/old/flowers_seaweed.png new file mode 100755 index 00000000..51f791db Binary files /dev/null and b/mods/plantlife_modpack/along_shore/textures/old/flowers_seaweed.png differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily.png b/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily.png new file mode 100755 index 00000000..7653409b Binary files /dev/null and b/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily.png differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_22.5.png b/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_22.5.png new file mode 100755 index 00000000..860f1809 Binary files /dev/null and b/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_22.5.png differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_45.png b/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_45.png new file mode 100755 index 00000000..c73a6f4f Binary files /dev/null and b/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_45.png differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_67.5.png b/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_67.5.png new file mode 100755 index 00000000..29f0ee89 Binary files /dev/null and b/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_67.5.png differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/lillyPad5x16.png b/mods/plantlife_modpack/along_shore/textures/old/lillyPad5x16.png new file mode 100755 index 00000000..20aa209b Binary files /dev/null and b/mods/plantlife_modpack/along_shore/textures/old/lillyPad5x16.png differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/lillypad3Flower16x.png b/mods/plantlife_modpack/along_shore/textures/old/lillypad3Flower16x.png new file mode 100755 index 00000000..0c581f1c Binary files /dev/null and b/mods/plantlife_modpack/along_shore/textures/old/lillypad3Flower16x.png differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/pondscum16xc.png b/mods/plantlife_modpack/along_shore/textures/old/pondscum16xc.png new file mode 100755 index 00000000..18b18794 Binary files /dev/null and b/mods/plantlife_modpack/along_shore/textures/old/pondscum16xc.png differ diff --git a/mods/plantlife_modpack/bushes/depends.txt b/mods/plantlife_modpack/bushes/depends.txt new file mode 100755 index 00000000..bde0bdf5 --- /dev/null +++ b/mods/plantlife_modpack/bushes/depends.txt @@ -0,0 +1,2 @@ +default +plants_lib \ No newline at end of file diff --git a/mods/plantlife_modpack/bushes/init.lua b/mods/plantlife_modpack/bushes/init.lua new file mode 100755 index 00000000..d92187b8 --- /dev/null +++ b/mods/plantlife_modpack/bushes/init.lua @@ -0,0 +1,258 @@ +-- Bushes Mod by Mossmanikin, Evergreen, & Neuromancer +-- The initial code for this was taken from Mossmanikin's Grasses Mod, then heavilly modified by Neuromancer for this mod. +-- Mossmanikin also greatly helped with providing samples for coding. +-- bush leaf textures are cc-by-sa 3.0. from VannessaE's moretrees mod. (Leaf texture created by RealBadAngel or VanessaE) +-- Branch textures created by Neuromancer. +-- Licence for Code and Non-Bush leaf code is WTFPL. + + abstract_bushes = {} + + minetest.register_node("bushes:youngtree2_bottom", { + description = "Young Tree 2 (bottom)", + drawtype="nodebox", + tiles = {"bushes_youngtree2trunk.png"}, + inventory_image = "bushes_youngtree2trunk_inv.png", + wield_image = "bushes_youngtree2trunk_inv.png", +paramtype = "light", + walkable = false, + is_ground_content = true, +node_box = { + type = "fixed", + fixed = { + --{0.375000,-0.500000,-0.500000,0.500000,0.500000,-0.375000}, --NodeBox 1 + {-0.0612,-0.500000,-0.500000,0.0612,0.500000,-0.375000}, --NodeBox 1 + } +}, + groups = {snappy=3,flammable=2}, + sounds = default.node_sound_leaves_defaults(), + drop = 'default:stick' +}) + + local BushBranchCenter = { {1,1}, {3,2} } +for i in pairs(BushBranchCenter) do + local Num = BushBranchCenter[i][1] + local TexNum = BushBranchCenter[i][2] + minetest.register_node("bushes:bushbranches"..Num, { + description = "Bush Branches "..Num, + drawtype = "nodebox", + tiles = { + "bushes_leaves_"..TexNum..".png", + "bushes_branches_center_"..TexNum..".png" + }, + node_box = { + type = "fixed", + fixed = { + {0, -1/2, -1/2, -1/4, 1/2, 1/2}, + {0, -1/2, -1/2, 1/4, 1/2, 1/2} + }, + }, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, 1/2, 1/2}, + }, + inventory_image = "bushes_branches_center_"..TexNum..".png", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + groups = { + -- tree=1, -- MM: disabled because some recipes use group:tree for trunks + snappy=3, + flammable=2, + leaves=1 + }, + sounds = default.node_sound_leaves_defaults(), + drop = 'default:stick 4' + }) +end + +local BushBranchSide = { {2,1}, {4,2} } +for i in pairs(BushBranchSide) do + local Num = BushBranchSide[i][1] + local TexNum = BushBranchSide[i][2] + minetest.register_node("bushes:bushbranches"..Num, { + description = "Bush Branches "..Num, + drawtype = "nodebox", + tiles = { +--[[top]] "bushes_leaves_"..TexNum..".png", +--[[bottom]]"bushes_branches_center_"..TexNum..".png", +--[[right]] "bushes_branches_left_"..TexNum..".png", +--[[left]] "bushes_branches_right_"..TexNum..".png", -- MM: We could also mirror the previous here, +--[[back]] "bushes_branches_center_"..TexNum..".png",-- unless U really want 'em 2 B different +--[[front]] "bushes_branches_right_"..TexNum..".png" + }, + node_box = { + type = "fixed", + fixed = { +-- { left , bottom , front, right , top , back } + {0.137748,-0.491944, 0.5 ,-0.125000,-0.179444,-0.007790}, --NodeBox 1 + {0.262748,-0.185995, 0.5 ,-0.237252, 0.126505,-0.260269}, --NodeBox 2 + {0.500000, 0.125000, 0.5 ,-0.500000, 0.500000,-0.500000}, --NodeBox 3 + }, + }, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, 1/2, 1/2}, + }, + inventory_image = "bushes_branches_right_"..TexNum..".png", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + groups = { + -- tree=1, -- MM: disabled because some recipes use group:tree for trunks + snappy=3, + flammable=2, + leaves=1 + }, + sounds = default.node_sound_leaves_defaults(), + drop = 'default:stick 3' + }) +end + +local BushLeafNode = { {1}, {2}} +for i in pairs(BushLeafNode) do + local Num = BushLeafNode[i][1] + minetest.register_node("bushes:BushLeaves"..Num, { + description = "Bush Leaves "..Num, + drawtype = "allfaces_optional", + tiles = {"bushes_leaves_"..Num..".png"}, + paramtype = "light", + groups = { -- MM: Should we add leafdecay? + snappy=3, + flammable=2, + attached_node=1 + }, + sounds = default.node_sound_leaves_defaults(), + }) +end + +abstract_bushes.grow_bush = function(pos) + local leaf_type = math.random(1,2) + local bush_side_height = math.random(0,1) + local chance_of_bush_node_right = math.random(1,10) + if chance_of_bush_node_right> 5 then + local right_pos = {x=pos.x+1, y=pos.y+bush_side_height, z=pos.z} + abstract_bushes.grow_bush_node(right_pos,3,leaf_type) + end + local chance_of_bush_node_left = math.random(1,10) + if chance_of_bush_node_left> 5 then + bush_side_height = math.random(0,1) + local left_pos = {x=pos.x-1, y=pos.y+bush_side_height, z=pos.z} + abstract_bushes.grow_bush_node(left_pos,1,leaf_type) + end + local chance_of_bush_node_front = math.random(1,10) + if chance_of_bush_node_front> 5 then + bush_side_height = math.random(0,1) + local front_pos = {x=pos.x, y=pos.y+bush_side_height, z=pos.z+1} + abstract_bushes.grow_bush_node(front_pos,2,leaf_type) + end + local chance_of_bush_node_back = math.random(1,10) + if chance_of_bush_node_back> 5 then + bush_side_height = math.random(0,1) + local back_pos = {x=pos.x, y=pos.y+bush_side_height, z=pos.z-1} + abstract_bushes.grow_bush_node(back_pos,0,leaf_type) + end + +abstract_bushes.grow_bush_node(pos,5,leaf_type) +end + +abstract_bushes.grow_bush_node = function(pos,dir, leaf_type) + + + local right_here = {x=pos.x, y=pos.y+1, z=pos.z} + local above_right_here = {x=pos.x, y=pos.y+2, z=pos.z} + + --local bush_branch_type = math.random(1,3) + --local bush_branch_type = 2 + + -- MM: I'm not sure if it's slower now than before... + if dir ~= 5 and leaf_type == 1 then + bush_branch_type = 2 + end + if dir ~= 5 and leaf_type == 2 then + bush_branch_type = 4 + end + if dir == 5 and leaf_type == 1 then + bush_branch_type = 1 + dir = 1 + end + if dir == 5 and leaf_type == 2 then + bush_branch_type = 3 + dir = 1 + end + + if minetest.get_node(right_here).name == "air" -- instead of check_air = true, + or minetest.get_node(right_here).name == "default:junglegrass" then + minetest.set_node(right_here, {name="bushes:bushbranches"..bush_branch_type , param2=dir}) + --minetest.chat_send_all("leaf_type: (" .. leaf_type .. ")") + minetest.set_node(above_right_here, {name="bushes:BushLeaves"..leaf_type}) + local chance_of_high_leaves = math.random(1,10) + if chance_of_high_leaves> 5 then + local two_above_right_here = {x=pos.x, y=pos.y+3, z=pos.z} + --minetest.chat_send_all("leaf_type: (" .. leaf_type .. ")") + minetest.set_node(two_above_right_here, {name="bushes:BushLeaves"..leaf_type}) + end + end +end + + +plantslib:register_generate_plant({ + surface = { + "default:dirt_with_grass", + "stoneage:grass_with_silex", + "sumpf:peat", + "sumpf:sumpf" + }, + max_count = 15, --10,15 + rarity = 101 - 4, --3,4 + min_elevation = 1, -- above sea level + plantlife_limit = -0.9, + }, + abstract_bushes.grow_bush +) + + abstract_bushes.grow_youngtree2 = function(pos) + local height = math.random(4,5) + abstract_bushes.grow_youngtree_node2(pos,height) +end + +abstract_bushes.grow_youngtree_node2 = function(pos, height) + + + local right_here = {x=pos.x, y=pos.y+1, z=pos.z} + local above_right_here = {x=pos.x, y=pos.y+2, z=pos.z} + local two_above_right_here = {x=pos.x, y=pos.y+3, z=pos.z} + local three_above_right_here = {x=pos.x, y=pos.y+4, z=pos.z} + + if minetest.get_node(right_here).name == "air" -- instead of check_air = true, + or minetest.get_node(right_here).name == "default:junglegrass" then + if height == 4 then + local two_above_right_here_south = {x=pos.x, y=pos.y+3, z=pos.z-1} + local three_above_right_here_south = {x=pos.x, y=pos.y+4, z=pos.z-1} + minetest.set_node(right_here, {name="bushes:youngtree2_bottom"}) + minetest.set_node(above_right_here, {name="bushes:youngtree2_bottom"}) + minetest.set_node(two_above_right_here, {name="bushes:bushbranches2" , param2=2}) + minetest.set_node(two_above_right_here_south, {name="bushes:bushbranches2" , param2=0}) + minetest.set_node(three_above_right_here, {name="bushes:BushLeaves1" }) + minetest.set_node(three_above_right_here_south, {name="bushes:BushLeaves1" }) + end + + end +end + + +plantslib:register_generate_plant({ + surface = { + "default:dirt_with_grass", + "stoneage:grass_with_silex", + "sumpf:peat", + "sumpf:sumpf" + }, + max_count = 55, --10,15 + rarity = 101 - 4, --3,4 + min_elevation = 1, -- above sea level + plantlife_limit = -0.9, + }, + abstract_bushes.grow_youngtree2 +) + + --http://dev.minetest.net/Node_Drawtypes diff --git a/mods/plantlife_modpack/bushes/textures/bushes_branches_center_1.png b/mods/plantlife_modpack/bushes/textures/bushes_branches_center_1.png new file mode 100755 index 00000000..f0598514 Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/bushes_branches_center_1.png differ diff --git a/mods/plantlife_modpack/bushes/textures/bushes_branches_center_2.png b/mods/plantlife_modpack/bushes/textures/bushes_branches_center_2.png new file mode 100755 index 00000000..2009b503 Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/bushes_branches_center_2.png differ diff --git a/mods/plantlife_modpack/bushes/textures/bushes_branches_left_1.png b/mods/plantlife_modpack/bushes/textures/bushes_branches_left_1.png new file mode 100755 index 00000000..e0f1ce69 Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/bushes_branches_left_1.png differ diff --git a/mods/plantlife_modpack/bushes/textures/bushes_branches_left_2.png b/mods/plantlife_modpack/bushes/textures/bushes_branches_left_2.png new file mode 100755 index 00000000..cb3e2379 Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/bushes_branches_left_2.png differ diff --git a/mods/plantlife_modpack/bushes/textures/bushes_branches_right_1.png b/mods/plantlife_modpack/bushes/textures/bushes_branches_right_1.png new file mode 100755 index 00000000..e7762bb8 Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/bushes_branches_right_1.png differ diff --git a/mods/plantlife_modpack/bushes/textures/bushes_branches_right_2.png b/mods/plantlife_modpack/bushes/textures/bushes_branches_right_2.png new file mode 100755 index 00000000..55184a4e Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/bushes_branches_right_2.png differ diff --git a/mods/plantlife_modpack/bushes/textures/bushes_leaves_1.png b/mods/plantlife_modpack/bushes/textures/bushes_leaves_1.png new file mode 100755 index 00000000..d0bc984e Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/bushes_leaves_1.png differ diff --git a/mods/plantlife_modpack/bushes/textures/bushes_leaves_2.png b/mods/plantlife_modpack/bushes/textures/bushes_leaves_2.png new file mode 100755 index 00000000..c38a51d2 Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/bushes_leaves_2.png differ diff --git a/mods/plantlife_modpack/bushes/textures/bushes_youngtree2trunk.png b/mods/plantlife_modpack/bushes/textures/bushes_youngtree2trunk.png new file mode 100755 index 00000000..96a63224 Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/bushes_youngtree2trunk.png differ diff --git a/mods/plantlife_modpack/bushes/textures/bushes_youngtree2trunk_inv.png b/mods/plantlife_modpack/bushes/textures/bushes_youngtree2trunk_inv.png new file mode 100755 index 00000000..ac36abd3 Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/bushes_youngtree2trunk_inv.png differ diff --git a/mods/plantlife_modpack/bushes/textures/old & unused/BlockBranch1.png b/mods/plantlife_modpack/bushes/textures/old & unused/BlockBranch1.png new file mode 100755 index 00000000..c3ba887d Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/old & unused/BlockBranch1.png differ diff --git a/mods/plantlife_modpack/bushes/textures/old & unused/BlockBranch1L.png b/mods/plantlife_modpack/bushes/textures/old & unused/BlockBranch1L.png new file mode 100755 index 00000000..08fbb66a Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/old & unused/BlockBranch1L.png differ diff --git a/mods/plantlife_modpack/bushes/textures/old & unused/BlockBranch1R.png b/mods/plantlife_modpack/bushes/textures/old & unused/BlockBranch1R.png new file mode 100755 index 00000000..58b92141 Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/old & unused/BlockBranch1R.png differ diff --git a/mods/plantlife_modpack/bushes/textures/old & unused/BushBranches1.png b/mods/plantlife_modpack/bushes/textures/old & unused/BushBranches1.png new file mode 100755 index 00000000..c02b7abf Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/old & unused/BushBranches1.png differ diff --git a/mods/plantlife_modpack/bushes/textures/old & unused/BushBranches1sm.png b/mods/plantlife_modpack/bushes/textures/old & unused/BushBranches1sm.png new file mode 100755 index 00000000..2ab7ca35 Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/old & unused/BushBranches1sm.png differ diff --git a/mods/plantlife_modpack/bushes/textures/old & unused/BushBranches1sm2.png b/mods/plantlife_modpack/bushes/textures/old & unused/BushBranches1sm2.png new file mode 100755 index 00000000..81005e14 Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/old & unused/BushBranches1sm2.png differ diff --git a/mods/plantlife_modpack/bushes/textures/old & unused/BushBranches1sm3.png b/mods/plantlife_modpack/bushes/textures/old & unused/BushBranches1sm3.png new file mode 100755 index 00000000..c626a1fc Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/old & unused/BushBranches1sm3.png differ diff --git a/mods/plantlife_modpack/bushes/textures/old & unused/BushBranches1sm4.png b/mods/plantlife_modpack/bushes/textures/old & unused/BushBranches1sm4.png new file mode 100755 index 00000000..146ff086 Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/old & unused/BushBranches1sm4.png differ diff --git a/mods/plantlife_modpack/bushes/textures/old & unused/BushBranchesCenter.png b/mods/plantlife_modpack/bushes/textures/old & unused/BushBranchesCenter.png new file mode 100755 index 00000000..cf6f00a3 Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/old & unused/BushBranchesCenter.png differ diff --git a/mods/plantlife_modpack/bushes/textures/old & unused/BushBranchesSide1.png b/mods/plantlife_modpack/bushes/textures/old & unused/BushBranchesSide1.png new file mode 100755 index 00000000..ca1305c5 Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/old & unused/BushBranchesSide1.png differ diff --git a/mods/plantlife_modpack/bushes/textures/old & unused/BushBranchesSide2.png b/mods/plantlife_modpack/bushes/textures/old & unused/BushBranchesSide2.png new file mode 100755 index 00000000..41f0fc13 Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/old & unused/BushBranchesSide2.png differ diff --git a/mods/plantlife_modpack/bushes/textures/old & unused/blank.png b/mods/plantlife_modpack/bushes/textures/old & unused/blank.png new file mode 100755 index 00000000..06776a05 Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/old & unused/blank.png differ diff --git a/mods/plantlife_modpack/bushes/textures/old & unused/moretrees_pine_leaves3.png b/mods/plantlife_modpack/bushes/textures/old & unused/moretrees_pine_leaves3.png new file mode 100755 index 00000000..af348538 Binary files /dev/null and b/mods/plantlife_modpack/bushes/textures/old & unused/moretrees_pine_leaves3.png differ diff --git a/mods/plantlife_modpack/bushes_classic/cooking.lua b/mods/plantlife_modpack/bushes_classic/cooking.lua new file mode 100755 index 00000000..6e566190 --- /dev/null +++ b/mods/plantlife_modpack/bushes_classic/cooking.lua @@ -0,0 +1,126 @@ +-- Boilerplate to support localized strings if intllib mod is installed. +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) +else + S = function ( s ) return s end +end + + +-- Basket + +minetest.register_craft({ + output = "bushes:basket_empty", + recipe = { + { "default:stick", "default:stick", "default:stick" }, + { "", "default:stick", "" }, + }, +}) + +-- Sugar + +minetest.register_craftitem(":bushes:sugar", { + description = S("Sugar"), + inventory_image = "bushes_sugar.png", + on_use = minetest.item_eat(1), + groups = {food_sugar=1} +}) + +minetest.register_craft({ + output = "bushes:sugar 1", + recipe = { + { "default:papyrus", "default:papyrus" }, + }, +}) + +for i, berry in ipairs(bushes_classic.bushes) do + local desc = bushes_classic.bushes_descriptions[i] + + minetest.register_craftitem(":bushes:"..berry.."_pie_raw", { + description = S("Raw "..desc.." pie"), + inventory_image = "bushes_"..berry.."_pie_raw.png", + on_use = minetest.item_eat(4), + }) + + if berry ~= "mixed_berry" then + + if berry == "strawberry" and minetest.registered_nodes["farming_plus:strawberry"] then + -- Special case for strawberries, when farming_plus is in use. Use + -- the item from that mod, but redefine it so it has the right + -- groups and does't look so ugly! + minetest.register_craftitem(":farming_plus:strawberry_item", { + description = S("Strawberry"), + inventory_image = "bushes_"..berry..".png", + on_use = minetest.item_eat(2), + groups = {berry=1, strawberry=1} + }) + minetest.register_alias("bushes:strawberry", "farming_plus:strawberry_item") + else + minetest.register_craftitem(":bushes:"..berry, { + description = desc, + inventory_image = "bushes_"..berry..".png", + groups = {berry = 1, [berry] = 1}, + on_use = minetest.item_eat(1), + }) + end + minetest.register_craft({ + output = "bushes:"..berry.."_pie_raw 1", + recipe = { + { "group:food_sugar", "farming:flour", "group:food_sugar" }, + { "group:"..berry, "group:"..berry, "group:"..berry }, + }, + }) + end + + -- Cooked pie + + minetest.register_craftitem(":bushes:"..berry.."_pie_cooked", { + description = S("Cooked "..desc.." pie"), + inventory_image = "bushes_"..berry.."_pie_cooked.png", + on_use = minetest.item_eat(6), + }) + + minetest.register_craft({ + type = "cooking", + output = "bushes:"..berry.."_pie_cooked", + recipe = "bushes:"..berry.."_pie_raw", + cooktime = 30, + }) + + -- slice of pie + + minetest.register_craftitem(":bushes:"..berry.."_pie_slice", { + description = S("Slice of "..desc.." pie"), + inventory_image = "bushes_"..berry.."_pie_slice.png", + on_use = minetest.item_eat(1), + }) + + minetest.register_craft({ + output = "bushes:"..berry.."_pie_slice 6", + recipe = { + { "bushes:"..berry.."_pie_cooked" }, + }, + }) + + -- Basket with pies + + minetest.register_craft({ + output = "bushes:basket_"..berry.." 1", + recipe = { + { "bushes:"..berry.."_pie_cooked", "bushes:"..berry.."_pie_cooked", "bushes:"..berry.."_pie_cooked" }, + { "", "bushes:basket_empty", "" }, + }, + }) +end + +minetest.register_craft({ + output = "bushes:mixed_berry_pie_raw 2", + recipe = { + { "group:food_sugar", "farming:flour", "group:food_sugar" }, + { "group:berry", "group:berry", "group:berry" }, + { "group:berry", "group:berry", "group:berry" }, + }, +}) + + diff --git a/mods/plantlife_modpack/bushes_classic/depends.txt b/mods/plantlife_modpack/bushes_classic/depends.txt new file mode 100755 index 00000000..632373e9 --- /dev/null +++ b/mods/plantlife_modpack/bushes_classic/depends.txt @@ -0,0 +1,3 @@ +plants_lib +farming? +farming_plus? diff --git a/mods/plantlife_modpack/bushes_classic/image_credits.txt b/mods/plantlife_modpack/bushes_classic/image_credits.txt new file mode 100755 index 00000000..a4ddc519 --- /dev/null +++ b/mods/plantlife_modpack/bushes_classic/image_credits.txt @@ -0,0 +1,5 @@ +strawberry: http://www.clker.com/clipart-4060.html +blueberry: http://www.clker.com/clipart-cerezafiro12.html +blackberry: http://www.clker.com/clipart-blackberry-2.html +raspberry: http://www.clker.com/clipart-simple-raspberry.html +gooseberry: http://www.clker.com/clipart-26281.html diff --git a/mods/plantlife_modpack/bushes_classic/init.lua b/mods/plantlife_modpack/bushes_classic/init.lua new file mode 100755 index 00000000..40eb9764 --- /dev/null +++ b/mods/plantlife_modpack/bushes_classic/init.lua @@ -0,0 +1,64 @@ +-- Bushes classic mod originally by unknown +-- now maintained by VanessaE +-- +-- License: WTFPL +-- Boilerplate to support localized strings if intllib mod is installed. +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) +else + S = function ( s ) return s end +end + +bushes_classic = {} + +bushes_classic.bushes = { + "strawberry", + "blackberry", + "blueberry", + "raspberry", + "gooseberry", + "mixed_berry" +} + +bushes_classic.bushes_descriptions = { + "Strawberry", + "Blackberry", + "Blueberry", + "Raspberry", + "Gooseberry", + "Mixed Berry" +} + +bushes_classic.spawn_list = {} + +dofile(minetest.get_modpath('bushes_classic') .. '/cooking.lua') +dofile(minetest.get_modpath('bushes_classic') .. '/nodes.lua') + +plantslib:spawn_on_surfaces({ + spawn_delay = 3600, + spawn_plants = bushes_classic.spawn_list, + avoid_radius = 10, + spawn_chance = 100, + spawn_surfaces = { + "default:dirt_with_grass", + "woodsoils:dirt_with_leaves_1", + "woodsoils:grass_with_leaves_1", + "woodsoils:grass_with_leaves_2", + "farming:soil", + "farming:soil_wet" + }, + avoid_nodes = {"group:bush"}, + seed_diff = 545342534, -- chosen by a fair mashing of the keyboard - guaranteed to be random :P + plantlife_limit = -0.1, + light_min = 10, + temp_min = 0.15, -- approx 20C + temp_max = -0.15, -- approx 35C + humidity_min = 0, -- 50% RH + humidity_max = -1, -- 100% RH +}) + +minetest.register_alias("bushes:basket_pies", "bushes:basket_strawberry") + +print(S("[Bushes] Loaded.")) diff --git a/mods/plantlife_modpack/bushes_classic/locale/de.txt b/mods/plantlife_modpack/bushes_classic/locale/de.txt new file mode 100755 index 00000000..3724274f --- /dev/null +++ b/mods/plantlife_modpack/bushes_classic/locale/de.txt @@ -0,0 +1,43 @@ +# Translation by Xanthin + +Strawberry = Erdbeere +Blackberry = Brombeere +Blueberry = Blaubeere +Raspberry = Himbeere +Gooseberry = Stachelbeere +Mixed Berry = Beerenmix +Basket with Strawberry Pies = Korb mit Erdbeertorten +Basket with Blackberry Pies = Korb mit Brombeertorten +Basket with Blueberry Pies = Korb mit Blaubeertorten +Basket with Raspberry Pies = Korb mit Himbeertorten +Basket with Gooseberry Pies = Korb mit Stachelbeertorten +Basket with Mixed Berry Pies = Korb mit Beerenmixtorten +currently fruitless = zur Zeit fruechteloser +Strawberry Bush = Erdbeerbusch +Blackberry Bush = Brombeerbusch +Blueberry Bush = Blaubeerbusch +Raspberry Bush = Himbeerbusch +Gooseberry Bush = Stachelbeerbusch +Mixed Berry Bush = Beerenmixbusch +Basket = Korb +Sugar = Zucker +Raw Strawberry pie = Rohe Erdbeertorte +Raw Blackberry pie = Rohe Brombeertorte +Raw Blueberry pie = Rohe Blaubeertorte +Raw Raspberry pie = Rohe Himbeertorte +Raw Gooseberry pie = Rohe Stachelbeertorte +Raw Mixed Berry pie = Rohe Beerenmixtorte +Cooked Strawberry pie = Erdbeertorte +Cooked Blackberry pie = Brombeertorte +Cooked Blueberry pie = Blaubeertorte +Cooked Raspberry pie = Himbeertorte +Cooked Gooseberry pie = Stachelbeertorte +Cooked Mixed Berry pie = Beerenmixtorte +Slice of Strawberry pie = Erdbeertortenstueck +Slice of Blackberry pie = Brombeertortenstueck +Slice of Blueberry pie = Blaubeertortenstueck +Slice of Raspberry pie = Himbeertortenstueck +Slice of Gooseberry pie = Stachelbeertortenstueck +Slice of Mixed Berry pie = Beerenmixtortenstueck + +[Bushes] Loaded. = [Bushes] Geladen. diff --git a/mods/plantlife_modpack/bushes_classic/locale/template.txt b/mods/plantlife_modpack/bushes_classic/locale/template.txt new file mode 100755 index 00000000..6c35312c --- /dev/null +++ b/mods/plantlife_modpack/bushes_classic/locale/template.txt @@ -0,0 +1,43 @@ +# Template + +Strawberry = +Blackberry = +Blueberry = +Raspberry = +Gooseberry = +Mixed Berry = +Basket with Strawberry Pies = +Basket with Blackberry Pies = +Basket with Blueberry Pies = +Basket with Raspberry Pies = +Basket with Gooseberry Pies = +Basket with Mixed Berry Pies = +currently fruitless = +Strawberry Bush = +Blackberry Bush = +Blueberry Bush = +Raspberry Bush = +Gooseberry Bush = +Mixed Berry Bush = +Basket = +Sugar = +Raw Strawberry pie = +Raw Blackberry pie = +Raw Blueberry pie = +Raw Raspberry pie = +Raw Gooseberry pie = +Raw Mixed Berry pie = +Cooked Strawberry pie = +Cooked Blackberry pie = +Cooked Blueberry pie = +Cooked Raspberry pie = +Cooked Gooseberry pie = +Cooked Mixed Berry pie = +Slice of Strawberry pie = +Slice of Blackberry pie = +Slice of Blueberry pie = +Slice of Raspberry pie = +Slice of Gooseberry pie = +Slice of Mixed Berry pie = + +[Bushes] Loaded. = diff --git a/mods/plantlife_modpack/bushes_classic/nodes.lua b/mods/plantlife_modpack/bushes_classic/nodes.lua new file mode 100755 index 00000000..caa886e5 --- /dev/null +++ b/mods/plantlife_modpack/bushes_classic/nodes.lua @@ -0,0 +1,228 @@ +-- Boilerplate to support localized strings if intllib mod is installed. +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) +else + S = function ( s ) return s end +end + + +plantlife_bushes = {} + +-- TODO: add support for nodebreakers? those dig like mese picks +plantlife_bushes.after_dig_node = function(pos, oldnode, oldmetadata, digger) + if( not( digger ) or not( pos ) or not (oldnode )) then + return nil; + end + + -- find out which bush type we are dealing with + local bush_name = ""; + local can_harvest = false; + + if( oldnode.name == 'bushes:fruitless_bush' ) then + -- this bush has not grown fruits yet (but will eventually) + bush_name = oldmetadata[ 'fields' ][ 'bush_type' ]; + -- no fruits to be found, so can_harvest stays false + else + local name_parts = oldnode.name:split( ":" ); + if( #name_parts >= 2 and name_parts[2]~=nil ) then + + name_parts = name_parts[2]:split( "_" ); + + if( #name_parts >= 2 and name_parts[1]~=nil ) then + bush_name = name_parts[1]; + -- this bush really carries fruits + can_harvest = true; + end + end + end + + -- find out which tool the digger was wielding (if any) + local toolstack = digger:get_wielded_item(); + local capabilities = toolstack:get_tool_capabilities(); + + -- what the player will get + local harvested = ""; + local amount = ""; + + -- failure to find out what the tool can do: destroy the bush and return nothing + if( not( capabilities["groupcaps"] )) then + return nil; + + -- digging with the hand or something like that + elseif( capabilities["groupcaps"]["snappy"] ) then + + -- plant a new bush without fruits + minetest.set_node(pos,{type='node',name='bushes:fruitless_bush'}) + local meta = minetest.get_meta( pos ); + meta:set_string( 'bush_type', bush_name ); + + -- construct the stack of fruits the player will get + -- only bushes that have grown fruits can actually give fruits + if( can_harvest == true ) then + amount = "4"; + harvested = "bushes:"..bush_name.." "..amount; + end + + -- something like a shovel + elseif( capabilities["groupcaps"]["crumbly"] ) then + + -- with a chance of 1/3, return 2 bushes + if( math.random(1,3)==1 ) then + amount = "2"; + else + amount = "1"; + end + -- return the bush itself + harvested = "bushes:" .. bush_name .. "_bush "..amount; + + -- something like an axe + elseif( capabilities["groupcaps"]["choppy"] ) then + + -- the amount of sticks may vary + amount = math.random( 4, 20 ); + -- return some sticks + harvested = "default:stick "..amount; + + -- nothing known - destroy the plant + else + return nil; + end + + -- give the harvested result to the player + if( harvested ~= "" ) then + --minetest.chat_send_player("singleplayer","you would now get "..tostring( harvested ) ); + digger:get_inventory():add_item( "main", harvested ); + end +end + + + +plantlife_bushes.after_place_node = function(pos, placer, itemstack) + + if( not( itemstack ) or not( pos )) then + return nil; + end + + local name_parts = itemstack:get_name():split( ":" ); + if( #name_parts <2 or name_parts[2]==nil ) then + return nil; + end + + name_parts = name_parts[2]:split( "_" ); + + if( #name_parts <2 or name_parts[1]==nil ) then + return nil; + end + + minetest.set_node( pos, {type='node',name='bushes:fruitless_bush'}); + local meta = minetest.get_meta( pos ); + meta:set_string( 'bush_type', name_parts[1] ); + + return nil; +end + + + +-- regrow berries (uses a base abm instead of plants_lib because of the use of metadata). + +minetest.register_abm({ + nodenames = { "bushes:fruitless_bush" }, + interval = 500, + chance = 5, + action = function(pos, node, active_object_count, active_object_count_wider) + + local meta = minetest.get_meta( pos ); + local bush_name = meta:get_string( 'bush_type' ); + if( bush_name ~= nil and bush_name ~= '' ) then + local dirtpos = { x = pos.x, y = pos.y-1, z = pos.z } + local dirt = minetest.get_node(dirtpos) + if dirt.name == "farming:soil_wet" or math.random(1,3) == 1 then + minetest.set_node( pos, {type='node',name='bushes:'..bush_name..'_bush'}) + end + end + end +}) + +-- Define the basket and bush nodes + +for i, bush_name in ipairs(bushes_classic.bushes) do + + local desc = bushes_classic.bushes_descriptions[i] + + minetest.register_node(":bushes:basket_"..bush_name, { + description = S("Basket with "..desc.." Pies"), + tiles = { + "bushes_basket_"..bush_name.."_top.png", + "bushes_basket_bottom.png", + "bushes_basket_side.png" + }, + on_use = minetest.item_eat(18), + groups = { dig_immediate = 3 }, + }) + + local texture_top, texture_bottom + + local groups = {snappy = 3, bush = 1, flammable = 2, attached_node=1} + if bush_name == "mixed_berry" then + bush_name = "fruitless"; + desc = S("currently fruitless"); + texture_top = "bushes_fruitless_bush_top.png" + texture_bottom = "bushes_fruitless_bush_bottom.png" + groups.not_in_creative_inventory = 1 + else + texture_top = "bushes_bush_top.png" + texture_bottom = "bushes_bush_bottom.png" + end + + minetest.register_node(":bushes:" .. bush_name .. "_bush", { + description = S(desc.." Bush"), + drawtype = "nodebox", + tiles = {texture_top, texture_bottom, "bushes_" .. bush_name .. "_bush.png"}, + inventory_image = "bushes_" .. bush_name .. "_bush.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + node_box = { + type = "fixed", + fixed = { + {-1/16, -8/16, -1/16, 1/16, -6/16, 1/16}, + {-4/16, -6/16, -4/16, 4/16, 5/16, 4/16}, + {-5/16, -5/16, -5/16, 5/16, 3/16, 5/16}, + {-6/16, -4/16, -6/16, 6/16, 2/16, 6/16}, + {-6.5/16, -3/16, -6.5/16, 6.5/16, -2/16, 6.5/16}, + {-3/16, 5/16, -3/16, 3/16, 6/16, 3/16}, + {-2/16, 5/16, -2/16, 2/16, 7/16, 2/16} + } + }, + + groups = groups, + sounds = default.node_sound_leaves_defaults(), + drop = "", + after_dig_node = function( pos, oldnode, oldmetadata, digger ) + return plantlife_bushes.after_dig_node(pos, oldnode, oldmetadata, digger); + end, + after_place_node = function( pos, placer, itemstack ) + return plantlife_bushes.after_place_node(pos, placer, itemstack); + end, + }) + + -- do not spawn fruitless bushes + if bush_name ~= "fruitless" then + table.insert(bushes_classic.spawn_list, "bushes:"..bush_name.."_bush") + end +end + + +minetest.register_node(":bushes:basket_empty", { + description = S("Basket"), + tiles = { + "bushes_basket_empty_top.png", + "bushes_basket_bottom.png", + "bushes_basket_side.png" + }, + groups = { dig_immediate = 3 }, +}) + + diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_blackberry_top.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_blackberry_top.png new file mode 100755 index 00000000..f3fbe2bd Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_blackberry_top.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_blueberry_top.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_blueberry_top.png new file mode 100755 index 00000000..cdedf351 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_blueberry_top.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_bottom.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_bottom.png new file mode 100755 index 00000000..5e8d40de Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_bottom.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_empty_top.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_empty_top.png new file mode 100755 index 00000000..7b75e704 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_empty_top.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_gooseberry_top.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_gooseberry_top.png new file mode 100755 index 00000000..be4cda4c Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_gooseberry_top.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_mixed_berry_top.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_mixed_berry_top.png new file mode 100755 index 00000000..33cc552f Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_mixed_berry_top.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_raspberry_top.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_raspberry_top.png new file mode 100755 index 00000000..d06896b0 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_raspberry_top.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_side.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_side.png new file mode 100755 index 00000000..e6ddc3f0 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_side.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_strawberry_top.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_strawberry_top.png new file mode 100755 index 00000000..cbbc7888 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_basket_strawberry_top.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_blackberry.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_blackberry.png new file mode 100755 index 00000000..13cf3770 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_blackberry.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_blackberry_bush.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_blackberry_bush.png new file mode 100755 index 00000000..1b39ff63 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_blackberry_bush.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_blackberry_pie_cooked.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_blackberry_pie_cooked.png new file mode 100755 index 00000000..b52bd602 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_blackberry_pie_cooked.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_blackberry_pie_raw.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_blackberry_pie_raw.png new file mode 100755 index 00000000..446e6838 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_blackberry_pie_raw.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_blackberry_pie_slice.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_blackberry_pie_slice.png new file mode 100755 index 00000000..f2eb2081 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_blackberry_pie_slice.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_blueberry.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_blueberry.png new file mode 100755 index 00000000..a5d22340 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_blueberry.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_blueberry_bush.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_blueberry_bush.png new file mode 100755 index 00000000..41f075f5 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_blueberry_bush.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_blueberry_pie_cooked.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_blueberry_pie_cooked.png new file mode 100755 index 00000000..53851070 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_blueberry_pie_cooked.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_blueberry_pie_raw.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_blueberry_pie_raw.png new file mode 100755 index 00000000..b8ea7095 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_blueberry_pie_raw.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_blueberry_pie_slice.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_blueberry_pie_slice.png new file mode 100755 index 00000000..8e481b23 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_blueberry_pie_slice.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_bush_bottom.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_bush_bottom.png new file mode 100755 index 00000000..73056ea9 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_bush_bottom.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_bush_top.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_bush_top.png new file mode 100755 index 00000000..a972c0c0 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_bush_top.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_fruitless_bush.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_fruitless_bush.png new file mode 100755 index 00000000..ae850eb9 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_fruitless_bush.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_fruitless_bush_bottom.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_fruitless_bush_bottom.png new file mode 100755 index 00000000..7632894f Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_fruitless_bush_bottom.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_fruitless_bush_top.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_fruitless_bush_top.png new file mode 100755 index 00000000..e1fc6130 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_fruitless_bush_top.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_gooseberry.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_gooseberry.png new file mode 100755 index 00000000..cd62a5b0 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_gooseberry.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_gooseberry_bush.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_gooseberry_bush.png new file mode 100755 index 00000000..fd3fec47 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_gooseberry_bush.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_gooseberry_pie_cooked.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_gooseberry_pie_cooked.png new file mode 100755 index 00000000..f96887d2 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_gooseberry_pie_cooked.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_gooseberry_pie_raw.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_gooseberry_pie_raw.png new file mode 100755 index 00000000..5e1239e9 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_gooseberry_pie_raw.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_gooseberry_pie_slice.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_gooseberry_pie_slice.png new file mode 100755 index 00000000..c2660a36 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_gooseberry_pie_slice.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_mixed_berry_pie_cooked.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_mixed_berry_pie_cooked.png new file mode 100755 index 00000000..19fbcefb Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_mixed_berry_pie_cooked.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_mixed_berry_pie_raw.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_mixed_berry_pie_raw.png new file mode 100755 index 00000000..aa842c22 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_mixed_berry_pie_raw.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_mixed_berry_pie_slice.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_mixed_berry_pie_slice.png new file mode 100755 index 00000000..0568da41 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_mixed_berry_pie_slice.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_raspberry.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_raspberry.png new file mode 100755 index 00000000..051c3c7d Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_raspberry.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_raspberry_bush.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_raspberry_bush.png new file mode 100755 index 00000000..a1be6486 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_raspberry_bush.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_raspberry_pie_cooked.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_raspberry_pie_cooked.png new file mode 100755 index 00000000..0e4496c8 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_raspberry_pie_cooked.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_raspberry_pie_raw.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_raspberry_pie_raw.png new file mode 100755 index 00000000..abe6d194 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_raspberry_pie_raw.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_raspberry_pie_slice.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_raspberry_pie_slice.png new file mode 100755 index 00000000..859e6ed9 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_raspberry_pie_slice.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_strawberry.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_strawberry.png new file mode 100755 index 00000000..fdf5d442 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_strawberry.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_strawberry_bush.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_strawberry_bush.png new file mode 100755 index 00000000..7aa85cb3 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_strawberry_bush.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_strawberry_pie_cooked.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_strawberry_pie_cooked.png new file mode 100755 index 00000000..e5224962 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_strawberry_pie_cooked.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_strawberry_pie_raw.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_strawberry_pie_raw.png new file mode 100755 index 00000000..c71d45fd Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_strawberry_pie_raw.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_strawberry_pie_slice.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_strawberry_pie_slice.png new file mode 100755 index 00000000..a00a884e Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_strawberry_pie_slice.png differ diff --git a/mods/plantlife_modpack/bushes_classic/textures/bushes_sugar.png b/mods/plantlife_modpack/bushes_classic/textures/bushes_sugar.png new file mode 100755 index 00000000..10ecf703 Binary files /dev/null and b/mods/plantlife_modpack/bushes_classic/textures/bushes_sugar.png differ diff --git a/mods/plantlife_modpack/cavestuff/depends.txt b/mods/plantlife_modpack/cavestuff/depends.txt new file mode 100755 index 00000000..3a7daa1d --- /dev/null +++ b/mods/plantlife_modpack/cavestuff/depends.txt @@ -0,0 +1,2 @@ +default + diff --git a/mods/plantlife_modpack/cavestuff/init.lua b/mods/plantlife_modpack/cavestuff/init.lua new file mode 100755 index 00000000..f2bed1a5 --- /dev/null +++ b/mods/plantlife_modpack/cavestuff/init.lua @@ -0,0 +1,12 @@ +----------------------------------------------------------------------------------------------- +local title = "Cave Stuff" +local version = "0.0.3" +local mname = "cavestuff" +----------------------------------------------------------------------------------------------- + +dofile(minetest.get_modpath("cavestuff").."/nodes.lua") +dofile(minetest.get_modpath("cavestuff").."/mapgen.lua") + +----------------------------------------------------------------------------------------------- + +print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") diff --git a/mods/plantlife_modpack/cavestuff/mapgen.lua b/mods/plantlife_modpack/cavestuff/mapgen.lua new file mode 100755 index 00000000..a91a2f09 --- /dev/null +++ b/mods/plantlife_modpack/cavestuff/mapgen.lua @@ -0,0 +1,52 @@ +--Map Generation Stuff + +minetest.register_on_generated(function(minp, maxp, seed) + if maxp.y >= 2 and minp.y <= 0 then + -- Generate pebbles + 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 pebble amount from perlin noise + local pebble_amount = math.floor(perlin1:get2d({x=x0, y=z0}) ^ 2 * 2) + -- Find random positions for pebbles based on this random + local pr = PseudoRandom(seed+1) + for i=0,pebble_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:dirt_with_grass" then + minetest.set_node(p,{name="cavestuff:pebble_"..pr:next(1,2), param2=math.random(0,3)}) + elseif nn == "default:desert_sand" then + minetest.set_node(p,{name="cavestuff:desert_pebble_"..pr:next(1,2), param2=math.random(0,3)}) + end + end + end + + end + end + end + end +end) diff --git a/mods/plantlife_modpack/cavestuff/nodes.lua b/mods/plantlife_modpack/cavestuff/nodes.lua new file mode 100755 index 00000000..7327f702 --- /dev/null +++ b/mods/plantlife_modpack/cavestuff/nodes.lua @@ -0,0 +1,243 @@ +--Rocks + +minetest.register_node("cavestuff:pebble_1",{ + drawtype = "nodebox", + description = "Pebble", + tiles = {"undergrowth_pebble.png"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {cracky=3, stone=1}, + node_box = { + type = "fixed", + fixed = { +-- { left, bottom, front, right, top , back} + {-5/16, -2/16, -3/16, 1/16, -1/16, -1/16}, + {-4/16, -2/16, -4/16, 0 , -1/16, 0 }, +-- { left, bottom, front, right, top , back} + {-7/16, -7/16, -3/16, -6/16, -3/16, 1/16}, + {-6/16, -7/16, -4/16, -5/16, -3/16, 2/16}, + {-5/16, -7/16, -5/16, 3/16, -3/16, 3/16}, + {-4/16, -7/16, -6/16, 1/16, -3/16, -5/16}, + {-3/16, -7/16, 3/16, 3/16, -3/16, 4/16}, + { 0 , -7/16, 4/16, 3/16, -3/16, 5/16}, + { 3/16, -7/16, -4/16, 4/16, -3/16, 5/16}, + { 4/16, -7/16, -3/16, 5/16, -3/16, 4/16}, + { 5/16, -7/16, -1/16, 6/16, -3/16, 2/16}, +-- { left, bottom, front, right, top , back} + {-6/16, -8/16, -3/16, 3/16, -2/16, 0 }, + {-5/16, -8/16, -4/16, 2/16, -2/16, 1/16}, + {-4/16, -8/16, -5/16, 0 , -2/16, 2/16}, + {-2/16, -8/16, -2/16, 4/16, -2/16, 3/16}, + { 0 , -8/16, 3/16, 3/16, -2/16, 4/16}, + { 4/16, -8/16, -1/16, 5/16, -2/16, 2/16}, + }, + }, + selection_box = { + type = "fixed", + fixed = {-7/16, -1/2, -6/16, 6/16, -1/16, 5/16}, + }, + on_place = function(itemstack, placer, pointed_thing) + -- place a random pebble node + local stack = ItemStack("cavestuff:pebble_"..math.random(1,2)) + local ret = minetest.item_place(stack, placer, pointed_thing) + return ItemStack("cavestuff:pebble_1 "..itemstack:get_count()-(1-ret:get_count())) + end, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("cavestuff:pebble_2",{ + drawtype = "nodebox", + drop = "cavestuff:pebble_1", + tiles = {"undergrowth_pebble.png"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {cracky=3, stone=1, not_in_creative_inventory=1}, + node_box = { + type = "fixed", + fixed = { +-- { left, bottom, front, right, top , back} + {-5/16, -1/16, -3/16, 1/16, 0 , -1/16}, + {-4/16, -1/16, -4/16, 0 , 0 , 0 }, +-- { left, bottom, front, right, top , back} + {-7/16, -7/16, -3/16, -6/16, -2/16, 1/16}, + {-6/16, -7/16, -4/16, -5/16, -2/16, 2/16}, + {-5/16, -7/16, -5/16, 3/16, -2/16, 3/16}, + {-4/16, -7/16, -6/16, 1/16, -2/16, -5/16}, + {-3/16, -7/16, 3/16, 3/16, -2/16, 4/16}, + { 0 , -7/16, 4/16, 3/16, -2/16, 5/16}, + { 3/16, -7/16, -4/16, 4/16, -2/16, 5/16}, + { 4/16, -7/16, -3/16, 5/16, -2/16, 4/16}, + { 5/16, -7/16, -1/16, 6/16, -2/16, 2/16}, +-- { left, bottom, front, right, top , back} + {-6/16, -8/16, -3/16, 3/16, -1/16, 0 }, + {-5/16, -8/16, -4/16, 2/16, -1/16, 1/16}, + {-4/16, -8/16, -5/16, 0 , -1/16, 2/16}, + {-2/16, -8/16, -2/16, 4/16, -1/16, 3/16}, + { 0 , -8/16, 3/16, 3/16, -1/16, 4/16}, + { 4/16, -8/16, -1/16, 5/16, -1/16, 2/16}, + }, + }, + selection_box = { + type = "fixed", + fixed = {-7/16, -1/2, -6/16, 6/16, 0, 5/16}, + }, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("cavestuff:desert_pebble_1",{ + drawtype = "nodebox", + description = "Desert Pebble", + tiles = {"default_desert_stone.png"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {cracky=3, stone=1}, + node_box = { + type = "fixed", + fixed = { +-- { left, bottom, front, right, top , back} + {-5/16, -2/16, -3/16, 1/16, -1/16, -1/16}, + {-4/16, -2/16, -4/16, 0 , -1/16, 0 }, +-- { left, bottom, front, right, top , back} + {-7/16, -7/16, -3/16, -6/16, -3/16, 1/16}, + {-6/16, -7/16, -4/16, -5/16, -3/16, 2/16}, + {-5/16, -7/16, -5/16, 3/16, -3/16, 3/16}, + {-4/16, -7/16, -6/16, 1/16, -3/16, -5/16}, + {-3/16, -7/16, 3/16, 3/16, -3/16, 4/16}, + { 0 , -7/16, 4/16, 3/16, -3/16, 5/16}, + { 3/16, -7/16, -4/16, 4/16, -3/16, 5/16}, + { 4/16, -7/16, -3/16, 5/16, -3/16, 4/16}, + { 5/16, -7/16, -1/16, 6/16, -3/16, 2/16}, +-- { left, bottom, front, right, top , back} + {-6/16, -8/16, -3/16, 3/16, -2/16, 0 }, + {-5/16, -8/16, -4/16, 2/16, -2/16, 1/16}, + {-4/16, -8/16, -5/16, 0 , -2/16, 2/16}, + {-2/16, -8/16, -2/16, 4/16, -2/16, 3/16}, + { 0 , -8/16, 3/16, 3/16, -2/16, 4/16}, + { 4/16, -8/16, -1/16, 5/16, -2/16, 2/16}, + }, + }, + selection_box = { + type = "fixed", + fixed = {-7/16, -1/2, -6/16, 6/16, -1/16, 5/16}, + }, + on_place = function(itemstack, placer, pointed_thing) + -- place a random pebble node + local stack = ItemStack("cavestuff:desert_pebble_"..math.random(1,2)) + local ret = minetest.item_place(stack, placer, pointed_thing) + return ItemStack("cavestuff:desert_pebble_1 "..itemstack:get_count()-(1-ret:get_count())) + end, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("cavestuff:desert_pebble_2",{ + drawtype = "nodebox", + drop = "cavestuff:desert_pebble_1", + tiles = {"default_desert_stone.png"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {cracky=3, stone=1, not_in_creative__inventory=1}, + node_box = { + type = "fixed", + fixed = { +-- { left, bottom, front, right, top , back} + {-5/16, -1/16, -3/16, 1/16, 0 , -1/16}, + {-4/16, -1/16, -4/16, 0 , 0 , 0 }, +-- { left, bottom, front, right, top , back} + {-7/16, -7/16, -3/16, -6/16, -2/16, 1/16}, + {-6/16, -7/16, -4/16, -5/16, -2/16, 2/16}, + {-5/16, -7/16, -5/16, 3/16, -2/16, 3/16}, + {-4/16, -7/16, -6/16, 1/16, -2/16, -5/16}, + {-3/16, -7/16, 3/16, 3/16, -2/16, 4/16}, + { 0 , -7/16, 4/16, 3/16, -2/16, 5/16}, + { 3/16, -7/16, -4/16, 4/16, -2/16, 5/16}, + { 4/16, -7/16, -3/16, 5/16, -2/16, 4/16}, + { 5/16, -7/16, -1/16, 6/16, -2/16, 2/16}, +-- { left, bottom, front, right, top , back} + {-6/16, -8/16, -3/16, 3/16, -1/16, 0 }, + {-5/16, -8/16, -4/16, 2/16, -1/16, 1/16}, + {-4/16, -8/16, -5/16, 0 , -1/16, 2/16}, + {-2/16, -8/16, -2/16, 4/16, -1/16, 3/16}, + { 0 , -8/16, 3/16, 3/16, -1/16, 4/16}, + { 4/16, -8/16, -1/16, 5/16, -1/16, 2/16}, + }, + }, + selection_box = { + type = "fixed", + fixed = {-7/16, -1/2, -6/16, 6/16, 0, 5/16}, + }, + sounds = default.node_sound_stone_defaults(), +}) + +--Staclactites + +minetest.register_node("cavestuff:stalactite_1",{ + drawtype="nodebox", + tiles = {"undergrowth_pebble.png"}, + groups = {cracky=3,attached_node=1}, + description = "Stalactite", + paramtype = "light", + paramtype2 = "wallmounted", + node_box = { + type = "fixed", + fixed = { + {-0.187500,0.425000,-0.150003,0.162500,0.500000,0.162500}, + {-0.112500,0.162500,-0.100000,0.087500,0.475000,0.087500}, + {-0.062500,-0.275000,-0.062500,0.062500,0.500000,0.062500}, + {-0.037500,-0.837500,0.037500,0.037500,0.500000,-0.025000}, + } + }, + + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if minetest.get_node(pt.under).name=="default:stone" + and minetest.get_node({x=pt.under.x, y=pt.under.y-1, z=pt.under.z}).name=="air" + and minetest.get_node({x=pt.under.x, y=pt.under.y-2, z=pt.under.z}).name=="air" then + minetest.set_node({x=pt.under.x, y=pt.under.y-1, z=pt.under.z}, {name="cavestuff:stalactite_"..math.random(1,3)}) + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + end + return itemstack + end, +}) + +minetest.register_node("cavestuff:stalactite_2",{ + drawtype="nodebox", + tiles = {"undergrowth_pebble.png"}, + groups = {cracky=3,attached_node=1,not_in_creative_inventory=1}, + drop = "cavestuff:stalactite_1", + paramtype = "light", + paramtype2 = "wallmounted", + node_box = { + type = "fixed", + fixed = { + {-0.187500,0.387500,-0.150003,0.162500,0.500000,0.162500}, + {-0.112500,0.112500,-0.100000,0.087500,0.475000,0.087500}, + {-0.062500,-0.675000,-0.062500,0.062500,0.500000,0.062500}, + {-0.037500,-0.975000,0.037500,0.037500,0.500000,-0.025000}, + } + }, +}) + +minetest.register_node("cavestuff:stalactite_3",{ + drawtype="nodebox", + tiles = {"undergrowth_pebble.png"}, + groups = {cracky=3,attached_node=1,not_in_creative_inventory=1}, + drop = "cavestuff:stalactite_1", + paramtype = "light", + paramtype2 = "wallmounted", + node_box = { + type = "fixed", + fixed = { + {-0.187500,0.387500,-0.150003,0.162500,0.500000,0.162500}, + {-0.112500,0.037500,-0.100000,0.087500,0.475000,0.087500}, + {-0.062500,-0.437500,-0.062500,0.062500,0.500000,0.062500}, + {-0.037500,-1.237500,0.037500,0.037500,0.500000,-0.025000}, + } + }, +}) + +--Stalagmites + + + diff --git a/mods/plantlife_modpack/cavestuff/textures/undergrowth_desert_pebble.png b/mods/plantlife_modpack/cavestuff/textures/undergrowth_desert_pebble.png new file mode 100755 index 00000000..f85dbbd8 Binary files /dev/null and b/mods/plantlife_modpack/cavestuff/textures/undergrowth_desert_pebble.png differ diff --git a/mods/plantlife_modpack/cavestuff/textures/undergrowth_pebble.png b/mods/plantlife_modpack/cavestuff/textures/undergrowth_pebble.png new file mode 100755 index 00000000..507778da Binary files /dev/null and b/mods/plantlife_modpack/cavestuff/textures/undergrowth_pebble.png differ diff --git a/mods/plantlife_modpack/copyright.txt b/mods/plantlife_modpack/copyright.txt new file mode 100755 index 00000000..63d2431b --- /dev/null +++ b/mods/plantlife_modpack/copyright.txt @@ -0,0 +1,10 @@ +Ironzorg's Flowers mod served as the basis for the three mods that eventually +went into creating this file. Any code still remaining from that mod is +entirely his work (though I'm pretty sure it's all been phased out). + +Flowers textures by Ironzorg. + +Junglegrass textures are modified copies of the original one from the game's +default set. + +All remaining code, textures, etc. by Vanessa Ezekowitz. diff --git a/mods/plantlife_modpack/dryplants/crafting.lua b/mods/plantlife_modpack/dryplants/crafting.lua new file mode 100755 index 00000000..ae36a3cb --- /dev/null +++ b/mods/plantlife_modpack/dryplants/crafting.lua @@ -0,0 +1,360 @@ +----------------------------------------------------------------------------------------------- +-- Dry Plants - Recipes 0.1.0 -- Short Grass -> Dirt +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): WTFPL +-- Looked at code from: darkage, default, farming, sickle, stairs +-- Dependencies: default, farming +-- Supports: flint, stoneage, sumpf +----------------------------------------------------------------------------------------------- + +----------------------------------------------------------------------------------------------- +-- Short Grass +----------------------------------------------------------------------------------------------- +minetest.register_craft({ + output = "default:dirt", + recipe = { + {"dryplants:grass_short"}, + } +}) + +----------------------------------------------------------------------------------------------- +-- Cut Grass +----------------------------------------------------------------------------------------------- +-- grass recipes (remove roots) +minetest.register_craft({ + output = "dryplants:grass", + recipe = { + {"default:grass_1"}, + } +}) +minetest.register_craft({ + output = "dryplants:grass", + recipe = { + {"default:junglegrass"}, + } +}) +if minetest.get_modpath("sumpf") ~= nil then + minetest.register_craft({ + output = "dryplants:grass", + recipe = { + {"sumpf:gras"}, + } + }) +end + +----------------------------------------------------------------------------------------------- +-- Sickle +----------------------------------------------------------------------------------------------- +minetest.register_craft({ + output = "dryplants:sickle", + recipe = { + {"group:stone",""}, + {"", "default:stick"}, + {"default:stick",""} + } +}) +if minetest.get_modpath("flint") ~= nil then + minetest.register_craft({ + output = "dryplants:sickle", + recipe = { + {"flint:flintstone",""}, + {"", "default:stick"}, + {"default:stick",""} + } + }) +end +if minetest.get_modpath("stoneage") ~= nil then + minetest.register_craft({ + output = "dryplants:sickle", + recipe = { + {"stoneage:silex",""}, + {"", "default:stick"}, + {"default:stick",""} + } + }) +end + +----------------------------------------------------------------------------------------------- +-- Hay +----------------------------------------------------------------------------------------------- +--cooking +minetest.register_craft({ + type = "cooking", + output = "dryplants:hay", + recipe = "dryplants:grass", + cooktime = 2, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "dryplants:hay", + burntime = 1, +}) + +----------------------------------------------------------------------------------------------- +-- Wet Reed +----------------------------------------------------------------------------------------------- +minetest.register_craft({ -- papyrus -> wetreed + output = "dryplants:wetreed 2", + recipe = { + {"default:papyrus","default:papyrus"}, + {"default:papyrus","default:papyrus"}, + } +}) +minetest.register_craft({ -- reedmace_sapling -> wetreed + output = "dryplants:wetreed 2", + recipe = { + {"dryplants:reedmace_sapling","dryplants:reedmace_sapling"}, + {"dryplants:reedmace_sapling","dryplants:reedmace_sapling"}, + } +}) +minetest.register_craft({ -- reedmace_top -> wetreed + output = "dryplants:wetreed 2", + recipe = { + {"dryplants:reedmace_top","dryplants:reedmace_top"}, + {"dryplants:reedmace_top","dryplants:reedmace_top"}, + } +}) +minetest.register_craft({ -- reedmace -> wetreed + output = "dryplants:wetreed 2", + recipe = { + {"dryplants:reedmace","dryplants:reedmace"}, + {"dryplants:reedmace","dryplants:reedmace"}, + } +}) +minetest.register_craft({ -- reedmace_bottom -> wetreed + output = "dryplants:wetreed 2", + recipe = { + {"dryplants:reedmace_bottom","dryplants:reedmace_bottom"}, + {"dryplants:reedmace_bottom","dryplants:reedmace_bottom"}, + } +}) + + +local ReeD = { + {"wetreed"}, + {"reed"} +} +for i in pairs(ReeD) do + local reed = "dryplants:"..ReeD[i][1] + local slab = reed.."_slab" + local roof = reed.."_roof" + local corner = roof.."_corner" + local corner_2 = corner.."_2" +----------------------------------------------------------------------------------------------- +-- Block +----------------------------------------------------------------------------------------------- + minetest.register_craft({ -- slab -> block + output = reed, + recipe = { + {slab}, + {slab}, + } + }) + minetest.register_craft({ -- roof -> block + output = reed, + recipe = { + {roof}, + {roof}, + } + }) + minetest.register_craft({ -- corner -> block + type = "shapeless", + output = reed.." 3", + recipe = {corner,corner,corner,corner,corner,corner,corner,corner}, -- 8x + }) + minetest.register_craft({ -- corner_2 -> block + type = "shapeless", + output = reed.." 3", + recipe = {corner_2,corner_2,corner_2,corner_2,corner_2,corner_2,corner_2,corner_2}, -- 8x + }) +----------------------------------------------------------------------------------------------- +-- Slab +----------------------------------------------------------------------------------------------- + minetest.register_craft({ -- block -> slab + output = slab.." 6", + recipe = { + {reed,reed,reed}, + } + }) + minetest.register_craft({ -- roof -> slab + output = slab, + recipe = { + {roof}, + } + }) + minetest.register_craft({ -- corner -> slab + output = slab.." 3", + recipe = { + {corner,corner}, + {corner,corner}, + } + }) + minetest.register_craft({ -- corner_2 -> slab + output = slab.." 3", + recipe = { + {corner_2,corner_2}, + {corner_2,corner_2}, + } + }) +----------------------------------------------------------------------------------------------- +-- Roof +----------------------------------------------------------------------------------------------- + minetest.register_craft({ -- block -> roof + output = roof.." 4", + recipe = { + {reed,""}, + {"",reed}, + } + }) + minetest.register_craft({ -- block -> roof + output = roof.." 4", + recipe = { + {"",reed}, + {reed,""}, + } + }) + minetest.register_craft({ -- slab -> roof + output = roof, + recipe = { + {slab}, + } + }) +----------------------------------------------------------------------------------------------- +-- Roof Corner +----------------------------------------------------------------------------------------------- + minetest.register_craft({ -- block -> corner + output = corner.." 8", + recipe = { + {"",reed,""}, + {reed,"",reed}, + } + }) + minetest.register_craft({ -- corner_2 -> corner + output = corner, + recipe = { + {corner_2}, + } + }) +----------------------------------------------------------------------------------------------- +-- Roof Corner 2 +----------------------------------------------------------------------------------------------- + minetest.register_craft({ -- block -> corner_2 + output = corner_2.." 8", + recipe = { + {reed,"",reed}, + {"",reed,""}, + } + }) + minetest.register_craft({ -- corner -> corner_2 + output = corner_2, + recipe = { + {corner}, + } + }) +end + +----------------------------------------------------------------------------------------------- +-- Reed +----------------------------------------------------------------------------------------------- +minetest.register_craft({ -- hay -> reed + output = "dryplants:reed 2", + recipe = { + {"dryplants:hay","dryplants:hay"}, + {"dryplants:hay","dryplants:hay"}, + } +}) +--cooking +minetest.register_craft({ -- wetreed -> reed + type = "cooking", + output = "dryplants:reed", + recipe = "dryplants:wetreed", + cooktime = 2, +}) +--fuel +minetest.register_craft({ + type = "fuel", + recipe = "dryplants:reed", + burntime = 4, +}) +----------------------------------------------------------------------------------------------- +-- Reed Slab +----------------------------------------------------------------------------------------------- +--cooking +minetest.register_craft({ -- wetreed_slab -> reed_slab + type = "cooking", + output = "dryplants:reed_slab", + recipe = "dryplants:wetreed_slab", + cooktime = 1, +}) +--fuel +minetest.register_craft({ + type = "fuel", + recipe = "dryplants:reed_slab", + burntime = 2, +}) +----------------------------------------------------------------------------------------------- +-- Reed Roof +----------------------------------------------------------------------------------------------- +--cooking +minetest.register_craft({ -- wetreed_roof -> reed_roof + type = "cooking", + output = "dryplants:reed_roof", + recipe = "dryplants:wetreed_roof", + cooktime = 1, +}) +--fuel +minetest.register_craft({ + type = "fuel", + recipe = "dryplants:reed_roof", + burntime = 2, +}) +----------------------------------------------------------------------------------------------- +-- Reed Roof Corner +----------------------------------------------------------------------------------------------- +--cooking +minetest.register_craft({ -- wetreed_roof_corner -> reed_roof_corner + type = "cooking", + output = "dryplants:reed_roof_corner", + recipe = "dryplants:wetreed_roof_corner", + cooktime = 1, +}) +--fuel +minetest.register_craft({ + type = "fuel", + recipe = "dryplants:reed_roof_corner", + burntime = 2, +}) +----------------------------------------------------------------------------------------------- +-- Wet Reed Roof Corner 2 +----------------------------------------------------------------------------------------------- +--cooking +minetest.register_craft({ -- wetreed_roof_corner -> reed_roof_corner + type = "cooking", + output = "dryplants:reed_roof_corner_2", + recipe = "dryplants:wetreed_roof_corner_2", + cooktime = 1, +}) +--fuel +minetest.register_craft({ + type = "fuel", + recipe = "dryplants:reed_roof_corner_2", + burntime = 2, +}) +----------------------------------------------------------------------------------------------- +-- Dandelion Leave +----------------------------------------------------------------------------------------------- +--[[minetest.register_craftitem("dryplants:dandelion_leave", { + description = "Dandelion Leave", + inventory_image = "dryplants_dandelion_leave.png", + on_use = minetest.item_eat(1), +}) +minetest.register_craft({ + type = "shapeless", + output = "dryplants:dandelion_leave 4", + recipe = {"flowers:dandelion_yellow"}, + replacements = { + {"flowers:dandelion_yellow", "dye:yellow"} + }, +})]] \ No newline at end of file diff --git a/mods/plantlife_modpack/dryplants/depends.txt b/mods/plantlife_modpack/dryplants/depends.txt new file mode 100755 index 00000000..7e9f4724 --- /dev/null +++ b/mods/plantlife_modpack/dryplants/depends.txt @@ -0,0 +1,3 @@ +default +farming +plants_lib \ No newline at end of file diff --git a/mods/plantlife_modpack/dryplants/init.lua b/mods/plantlife_modpack/dryplants/init.lua new file mode 100755 index 00000000..954a840d --- /dev/null +++ b/mods/plantlife_modpack/dryplants/init.lua @@ -0,0 +1,185 @@ +----------------------------------------------------------------------------------------------- +local title = "Grasses" -- former "Dry plants" +local version = "0.1.5" +local mname = "dryplants" +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- textures & ideas partly by Neuromancer + +-- License (everything): WTFPL +-- Contains code from: default, farming +-- Looked at code from: darkage, sickle, stairs +-- Dependencies: default, farming, plants_lib +-- Supports: +----------------------------------------------------------------------------------------------- +abstract_dryplants = {} + +dofile(minetest.get_modpath("dryplants").."/crafting.lua") +dofile(minetest.get_modpath("dryplants").."/settings.txt") +dofile(minetest.get_modpath("dryplants").."/reed.lua") +if REEDMACE_GENERATES == true then +dofile(minetest.get_modpath("dryplants").."/reedmace.lua") +end +if SMALL_JUNCUS_GENERATES == true then +dofile(minetest.get_modpath("dryplants").."/juncus.lua") +end +if EXTRA_TALL_GRASS_GENERATES == true then +dofile(minetest.get_modpath("dryplants").."/moregrass.lua") +end +--dofile(minetest.get_modpath("dryplants").."/meadowvariation.lua") + +----------------------------------------------------------------------------------------------- +-- Sickle +----------------------------------------------------------------------------------------------- +-- turns nodes with group flora=1 & flower=0 into cut grass +local function sickle_on_use(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 + + local node = minetest.get_node(pt.under) + -- check if something that can be cut using fine tools + if minetest.get_item_group(under.name, "snappy") > 0 then + -- check if flora but no flower + if minetest.get_item_group(under.name, "flora") == 1 and minetest.get_item_group(under.name, "flower") == 0 then + -- turn the node into cut grass, wear out item and play sound + minetest.set_node(pt.under, {name="dryplants:grass"}) + else -- otherwise get the drop + local inv = user:get_inventory() + local name = minetest. get_node(pt.under).name + + local the_drop = minetest.registered_nodes[name].drop + + if the_drop ~= nil then + if inv:room_for_item("main", the_drop) then + inv:add_item("main", the_drop) + end + else + if inv:room_for_item("main", name) then + inv:add_item("main", name) + end + end + minetest.remove_node(pt.under) + end + minetest.sound_play("default_dig_crumbly", { + pos = pt.under, + gain = 0.5, + }) + itemstack:add_wear(65535/(uses-1)) + return itemstack + elseif string.find(node.name, "default:dirt_with_grass") then + minetest.set_node(pt.under, {name="dryplants:grass_short"}) + minetest.set_node(pt.above, {name="dryplants:grass"}) + minetest.sound_play("default_dig_crumbly", { + pos = pt.under, + gain = 0.5, + }) + itemstack:add_wear(65535/(uses-1)) + return itemstack + end +end +-- the tool +minetest.register_tool("dryplants:sickle", { + description = "Sickle", + inventory_image = "dryplants_sickle.png", + on_use = function(itemstack, user, pointed_thing) + return sickle_on_use(itemstack, user, pointed_thing, 220) + end, +}) + +----------------------------------------------------------------------------------------------- +-- Cut Grass +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:grass", { + description = "Cut Grass", + inventory_image = "dryplants_grass.png", + wield_image = "dryplants_grass.png", + paramtype = "light", + sunlight_propagates = true, + tiles = {"dryplants_grass.png"}, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = {-0.5 , -0.5 , -0.5 , 0.5 , -0.4375, 0.5 }, + }, + groups = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- Cut Grass becomes Hay over time +----------------------------------------------------------------------------------------------- +minetest.register_abm({ + nodenames = {"dryplants:grass"}, + interval = HAY_DRYING_TIME, --1200, -- 20 minutes: a minetest-day/night-cycle + chance = 1, + action = function(pos) + minetest.set_node(pos, {name="dryplants:hay"}) + end, +}) + +----------------------------------------------------------------------------------------------- +-- Hay +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:hay", { + description = "Hay", + inventory_image = "dryplants_hay.png", + wield_image = "dryplants_hay.png", + paramtype = "light", + sunlight_propagates = true, + tiles = {"dryplants_hay.png"}, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = {-0.5 , -0.5 , -0.5 , 0.5 , -0.4375, 0.5 }, + }, + groups = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- Short Grass +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:grass_short", { + description = "Short Grass", + tiles = {"default_grass.png^dryplants_grass_short.png", "default_dirt.png", "default_dirt.png^default_grass_side.png^dryplants_grass_short_side.png"}, + is_ground_content = true, + groups = {crumbly=3,soil=1,not_in_creative_inventory=1}, + --drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.4}, + }), +}) + +----------------------------------------------------------------------------------------------- +-- Short Grass becomes Dirt with Grass over time +----------------------------------------------------------------------------------------------- +minetest.register_abm({ + nodenames = {"dryplants:grass_short"}, + interval = GRASS_REGROWING_TIME, --1200, -- 20 minutes: a minetest-day/night-cycle + chance = 100/GRASS_REGROWING_CHANCE, + action = function(pos) + minetest.set_node(pos, {name="default:dirt_with_grass"}) + end, +}) + +----------------------------------------------------------------------------------------------- +print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") +----------------------------------------------------------------------------------------------- diff --git a/mods/plantlife_modpack/dryplants/juncus.lua b/mods/plantlife_modpack/dryplants/juncus.lua new file mode 100755 index 00000000..43ae97a6 --- /dev/null +++ b/mods/plantlife_modpack/dryplants/juncus.lua @@ -0,0 +1,127 @@ +----------------------------------------------------------------------------------------------- +-- Grasses - Juncus 0.0.5 +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- textures & ideas partly by Neuromancer + +-- License (everything): WTFPL +-- Contains code from: plants_lib +-- Looked at code from: default +----------------------------------------------------------------------------------------------- + +abstract_dryplants.grow_juncus = function(pos) + local juncus_type = math.random(2,3) + local right_here = {x=pos.x, y=pos.y+1, z=pos.z} + if minetest.get_node(right_here).name == "air" -- instead of check_air = true, + or minetest.get_node(right_here).name == "default:junglegrass" then + if juncus_type == 2 then + minetest.set_node(right_here, {name="dryplants:juncus_02"}) + else + minetest.set_node(right_here, {name="dryplants:juncus"}) + end + end +end + +minetest.register_node("dryplants:juncus", { + description = "Juncus", + drawtype = "plantlike", + visual_scale = 2, + paramtype = "light", + tiles = {"dryplants_juncus_03.png"}, + inventory_image = "dryplants_juncus_inv.png", + walkable = false, + buildable_to = true, + groups = { + snappy=3, + flammable=2, + attached_node=1, + flora=1 + --not_in_creative_inventory=1 + }, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16}, + }, + on_place = function(itemstack, placer, pointed_thing) + local pos = pointed_thing.under + local juncus_type = math.random(2,3) + local right_here = {x=pos.x, y=pos.y+1, z=pos.z} + if juncus_type == 2 then + minetest.set_node(right_here, {name="dryplants:juncus_02"}) + else + minetest.set_node(right_here, {name="dryplants:juncus"}) + end + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack + end, +}) +minetest.register_node("dryplants:juncus_02", { + description = "Juncus", + drawtype = "plantlike", + visual_scale = 2, + paramtype = "light", + tiles = {"dryplants_juncus_02.png"}, + walkable = false, + buildable_to = true, + groups = { + snappy=3, + flammable=2, + attached_node=1, + flora=1, + not_in_creative_inventory=1 + }, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16}, + }, + drop = "dryplants:juncus", +}) +----------------------------------------------------------------------------------------------- +-- GENERATE SMALL JUNCUS +----------------------------------------------------------------------------------------------- +-- near water or swamp +plantslib:register_generate_plant({ + surface = { + "default:dirt_with_grass", + --"default:desert_sand", + --"default:sand", + "stoneage:grass_with_silex", + "sumpf:peat", + "sumpf:sumpf" + }, + max_count = JUNCUS_NEAR_WATER_PER_MAPBLOCK, + rarity = 101 - JUNCUS_NEAR_WATER_RARITY, + min_elevation = 1, -- above sea level + near_nodes = {"default:water_source","sumpf:dirtywater_source","sumpf:sumpf"}, + near_nodes_size = 2, + near_nodes_vertical = 1, + near_nodes_count = 1, + plantlife_limit = -0.9, + }, + abstract_dryplants.grow_juncus +) +-- at dunes/beach +plantslib:register_generate_plant({ + surface = { + --"default:dirt_with_grass", + --"default:desert_sand", + "default:sand", + --"stoneage:grass_with_silex", + --"sumpf:peat", + --"sumpf:sumpf" + }, + max_count = JUNCUS_AT_BEACH_PER_MAPBLOCK, + rarity = 101 - JUNCUS_AT_BEACH_RARITY, + min_elevation = 1, -- above sea level + near_nodes = {"default:dirt_with_grass"}, + near_nodes_size = 2, + near_nodes_vertical = 1, + near_nodes_count = 1, + plantlife_limit = -0.9, + }, + abstract_dryplants.grow_juncus +) diff --git a/mods/plantlife_modpack/dryplants/meadowvariation.lua b/mods/plantlife_modpack/dryplants/meadowvariation.lua new file mode 100755 index 00000000..31484ff0 --- /dev/null +++ b/mods/plantlife_modpack/dryplants/meadowvariation.lua @@ -0,0 +1,26 @@ +----------------------------------------------------------------------------------------------- +-- Grasses - Meadow Variation 0.0.1 +----------------------------------------------------------------------------------------------- +-- by Mossmanikin + +-- License (everything): WTFPL +-- Contains code from: plants_lib +-- Looked at code from: default +----------------------------------------------------------------------------------------------- + +abstract_dryplants.grow_grass_variation = function(pos) + local right_here = {x=pos.x, y=pos.y, z=pos.z} + minetest.set_node(right_here, {name="dryplants:grass_short"}) +end + +plantslib:register_generate_plant({ + surface = { + "default:dirt_with_grass", + }, + max_count = 4800, + rarity = 25, + min_elevation = 1, -- above sea level + plantlife_limit = -0.9, + }, + abstract_dryplants.grow_grass_variation +) diff --git a/mods/plantlife_modpack/dryplants/moregrass.lua b/mods/plantlife_modpack/dryplants/moregrass.lua new file mode 100755 index 00000000..d381e736 --- /dev/null +++ b/mods/plantlife_modpack/dryplants/moregrass.lua @@ -0,0 +1,33 @@ +----------------------------------------------------------------------------------------------- +-- Grasses - More Tall Grass 0.0.2 +----------------------------------------------------------------------------------------------- +-- by Mossmanikin + +-- License (everything): WTFPL +-- Contains code from: plants_lib +-- Looked at code from: default +----------------------------------------------------------------------------------------------- + +abstract_dryplants.grow_grass = function(pos) + local right_here = {x=pos.x, y=pos.y+1, z=pos.z} + local grass_size = math.random(1,5) + if minetest.get_node(right_here).name == "air" -- instead of check_air = true, + or minetest.get_node(right_here).name == "default:junglegrass" then + minetest.set_node(right_here, {name="default:grass_"..grass_size}) + end +end + +plantslib:register_generate_plant({ + surface = { + "default:dirt_with_grass", + "stoneage:grass_with_silex", + "sumpf:peat", + "sumpf:sumpf" + }, + max_count = TALL_GRASS_PER_MAPBLOCK, + rarity = 101 - TALL_GRASS_RARITY, + min_elevation = 1, -- above sea level + plantlife_limit = -0.9, + }, + abstract_dryplants.grow_grass +) diff --git a/mods/plantlife_modpack/dryplants/reed.lua b/mods/plantlife_modpack/dryplants/reed.lua new file mode 100755 index 00000000..51dc8dd1 --- /dev/null +++ b/mods/plantlife_modpack/dryplants/reed.lua @@ -0,0 +1,380 @@ +----------------------------------------------------------------------------------------------- +-- Dry Plants - Reed 0.0.5 +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): WTFPL +-- Looked at code from: darkage, default, stairs +-- Dependencies: default +----------------------------------------------------------------------------------------------- +minetest.register_alias("stairs:stair_wetreed", "dryplants:wetreed_roof") +minetest.register_alias("stairs:slab_wetreed", "dryplants:wetreed_slab") +minetest.register_alias("stairs:stair_reed", "dryplants:reed_roof") +minetest.register_alias("stairs:slab_reed", "dryplants:reed_slab") + + +----------------------------------------------------------------------------------------------- +-- Wet Reed +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:wetreed", { + description = "Wet Reed", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"dryplants_reed_wet.png"}, + groups = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- Wet Reed Slab +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:wetreed_slab", { + description = "Wet Reed Slab", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"dryplants_reed_wet.png"}, + node_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, 0, 1/2}, + }, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, 0, 1/2}, + }, + groups = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- Wet Reed Roof +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:wetreed_roof", { + description = "Wet Reed Roof", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"dryplants_reed_wet.png"}, + node_box = { + type = "fixed", +-- { left , bottom , front , right , top , back } + fixed = { + {-1/2, 0, 0, 1/2, 1/2, 1/2}, + {-1/2, -1/2, -1/2, 1/2, 0, 0}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {-1/2, 0, 0, 1/2, 1/2, 1/2}, + {-1/2, -1/2, -1/2, 1/2, 0, 0}, + } + }, + groups = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +if AUTO_ROOF_CORNER == true then + + local CoRNeR = { +-- MaTeRiaL + {"wetreed"}, + {"reed"} + } + + for i in pairs(CoRNeR) do + + local MaTeRiaL = CoRNeR[i][1] + local roof = "dryplants:"..MaTeRiaL.."_roof" + local corner = "dryplants:"..MaTeRiaL.."_roof_corner" + local corner_2 = "dryplants:"..MaTeRiaL.."_roof_corner_2" + + minetest.register_abm({ + nodenames = {roof}, + interval = 1, + chance = 1, + action = function(pos) + + local node_east = minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z }) + local node_west = minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z }) + local node_north = minetest.get_node({x=pos.x, y=pos.y, z=pos.z+1}) + local node_south = minetest.get_node({x=pos.x, y=pos.y, z=pos.z-1}) + -- corner 1 + if ((node_west.name == roof and node_west.param2 == 0) + or (node_west.name == corner and node_west.param2 == 1)) + and ((node_north.name == roof and node_north.param2 == 3) + or (node_north.name == corner and node_north.param2 == 3)) + then + minetest.set_node(pos, {name=corner, param2=0}) + end + + if ((node_north.name == roof and node_north.param2 == 1) + or (node_north.name == corner and node_north.param2 == 2)) + and ((node_east.name == roof and node_east.param2 == 0) + or (node_east.name == corner and node_east.param2 == 0)) + then + minetest.set_node(pos, {name=corner, param2=1}) + end + + if ((node_east.name == roof and node_east.param2 == 2) + or (node_east.name == corner and node_east.param2 == 3)) + and ((node_south.name == roof and node_south.param2 == 1) + or (node_south.name == corner and node_south.param2 == 1)) + then + minetest.set_node(pos, {name=corner, param2=2}) + end + + if ((node_south.name == roof and node_south.param2 == 3) + or (node_south.name == corner and node_south.param2 == 0)) + and ((node_west.name == roof and node_west.param2 == 2) + or (node_west.name == corner and node_west.param2 == 2)) + then + minetest.set_node(pos, {name=corner, param2=3}) + end + -- corner 2 + if ((node_west.name == roof and node_west.param2 == 2) + or (node_west.name == corner_2 and node_west.param2 == 1)) + and ((node_north.name == roof and node_north.param2 == 1) + or (node_north.name == corner_2 and node_north.param2 == 3)) + then + minetest.set_node(pos, {name=corner_2, param2=0}) + end + + if ((node_north.name == roof and node_north.param2 == 3) + or (node_north.name == corner_2 and node_north.param2 == 2)) + and ((node_east.name == roof and node_east.param2 == 2) + or (node_east.name == corner_2 and node_east.param2 == 0)) + then + minetest.set_node(pos, {name=corner_2, param2=1}) + end + + if ((node_east.name == roof and node_east.param2 == 0) + or (node_east.name == corner_2 and node_east.param2 == 3)) + and ((node_south.name == roof and node_south.param2 == 3) + or (node_south.name == corner_2 and node_south.param2 == 1)) + then + minetest.set_node(pos, {name=corner_2, param2=2}) + end + + if ((node_south.name == roof and node_south.param2 == 1) + or (node_south.name == corner_2 and node_south.param2 == 0)) + and ((node_west.name == roof and node_west.param2 == 0) + or (node_west.name == corner_2 and node_west.param2 == 2)) + then + minetest.set_node(pos, {name=corner_2, param2=3}) + end + + end, + }) + end +end + +----------------------------------------------------------------------------------------------- +-- Wet Reed Roof Corner +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:wetreed_roof_corner", { + description = "Wet Reed Roof Corner", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"dryplants_reed_wet.png"}, + node_box = { + type = "fixed", +-- { left , bottom , front , right , top , back } + fixed = { + {-1/2, 0, 0, 0, 1/2, 1/2}, + {0, -1/2, 0, 1/2, 0, 1/2}, + {-1/2, -1/2, -1/2, 0, 0, 0}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {-1/2, 0, 0, 0, 1/2, 1/2}, + {0, -1/2, 0, 1/2, 0, 1/2}, + {-1/2, -1/2, -1/2, 0, 0, 0}, + } + }, + groups = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- Wet Reed Roof Corner 2 +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:wetreed_roof_corner_2", { + description = "Wet Reed Roof Corner 2", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"dryplants_reed_wet.png"}, + node_box = { + type = "fixed", +-- { left , bottom , front , right , top , back } + fixed = { + {-1/2, -1/2, 0, 0, 0, 1/2}, + {0, 0, 0, 1/2, 1/2, 1/2}, + {-1/2, 0, -1/2, 0, 1/2, 0}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {-1/2, -1/2, 0, 0, 0, 1/2}, + {0, 0, 0, 1/2, 1/2, 1/2}, + {-1/2, 0, -1/2, 0, 1/2, 0}, + } + }, + groups = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- Wet Reed becomes (dry) Reed over time +----------------------------------------------------------------------------------------------- +if REED_WILL_DRY == true then + + local DRyiNG = { +-- WeT DRy + {"dryplants:wetreed", "dryplants:reed"}, + {"dryplants:wetreed_slab", "dryplants:reed_slab"}, + {"dryplants:wetreed_roof", "dryplants:reed_roof"}, + {"dryplants:wetreed_roof_corner", "dryplants:reed_roof_corner"}, + {"dryplants:wetreed_roof_corner_2", "dryplants:reed_roof_corner_2"} + } + for i in pairs(DRyiNG) do + + local WeT = DRyiNG[i][1] + local DRy = DRyiNG[i][2] + + minetest.register_abm({ + nodenames = {WeT}, + interval = REED_DRYING_TIME, --1200, -- 20 minutes: a minetest-day/night-cycle + chance = 1, + action = function(pos) + local direction = minetest.get_node(pos).param2 + minetest.set_node(pos, {name=DRy, param2=direction}) + end, + }) + end +end + +----------------------------------------------------------------------------------------------- +-- Reed +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reed", { + description = "Reed", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"dryplants_reed.png"}, + groups = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- Reed Slab +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reed_slab", { + description = "Reed Slab", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"dryplants_reed.png"}, + node_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, 0, 1/2}, + }, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, 0, 1/2}, + }, + groups = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- Reed Roof +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reed_roof", { + description = "Reed Roof", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"dryplants_reed.png"}, + node_box = { + type = "fixed", +-- { left , bottom , front , right , top , back } + fixed = { + {-1/2, 0, 0, 1/2, 1/2, 1/2}, + {-1/2, -1/2, -1/2, 1/2, 0, 0}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {-1/2, 0, 0, 1/2, 1/2, 1/2}, + {-1/2, -1/2, -1/2, 1/2, 0, 0}, + } + }, + groups = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- Reed Roof Corner +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reed_roof_corner", { + description = "Reed Roof Corner", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"dryplants_reed.png"}, + node_box = { + type = "fixed", +-- { left , bottom , front , right , top , back } + fixed = { + {-1/2, 0, 0, 0, 1/2, 1/2}, + {0, -1/2, 0, 1/2, 0, 1/2}, + {-1/2, -1/2, -1/2, 0, 0, 0}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {-1/2, 0, 0, 0, 1/2, 1/2}, + {0, -1/2, 0, 1/2, 0, 1/2}, + {-1/2, -1/2, -1/2, 0, 0, 0}, + } + }, + groups = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- Reed Roof Corner 2 +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reed_roof_corner_2", { + description = "Reed Roof Corner 2", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"dryplants_reed.png"}, + node_box = { + type = "fixed", +-- { left , bottom , front , right , top , back } + fixed = { + {-1/2, -1/2, 0, 0, 0, 1/2}, + {0, 0, 0, 1/2, 1/2, 1/2}, + {-1/2, 0, -1/2, 0, 1/2, 0}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {-1/2, -1/2, 0, 0, 0, 1/2}, + {0, 0, 0, 1/2, 1/2, 1/2}, + {-1/2, 0, -1/2, 0, 1/2, 0}, + } + }, + groups = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) diff --git a/mods/plantlife_modpack/dryplants/reedmace.lua b/mods/plantlife_modpack/dryplants/reedmace.lua new file mode 100755 index 00000000..81c54d19 --- /dev/null +++ b/mods/plantlife_modpack/dryplants/reedmace.lua @@ -0,0 +1,410 @@ +----------------------------------------------------------------------------------------------- +-- Grasses - Reedmace 0.1.1 +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- textures & ideas partly by Neuromancer + +-- License (everything): WTFPL +-- Contains code from: plants_lib +-- Looked at code from: default, trees +----------------------------------------------------------------------------------------------- + +-- NOTES (from wikipedia, some of this might get implemented) +-- rhizomes are edible +-- outer portion of young plants can be peeled and the heart can be eaten raw or boiled and eaten like asparagus +-- leaf bases can be eaten raw or cooked +-- sheath can be removed from the developing green flower spike, which can then be boiled and eaten like corn on the cob +-- pollen can be collected and used as a flour supplement or thickener +-- Typha stems and leaves can be used to make paper +-- The seed hairs were used by some Native American groups as tinder for starting fires + +----------------------------------------------------------------------------------------------- +-- REEDMACE SHAPES +----------------------------------------------------------------------------------------------- + +abstract_dryplants.grow_reedmace = function(pos) + local size = math.random(1,3) + local spikes = math.random(1,3) + local pos_01 = {x = pos.x, y = pos.y + 1, z = pos.z} + local pos_02 = {x = pos.x, y = pos.y + 2, z = pos.z} + local pos_03 = {x = pos.x, y = pos.y + 3, z = pos.z} + if minetest.get_node(pos_01).name == "air" -- bug fix + or minetest.get_node(pos_01).name == "dryplants:reedmace_sapling" then + if minetest.get_node(pos_02).name ~= "air" then + minetest.set_node(pos_01, {name="dryplants:reedmace_top"}) + elseif minetest.get_node(pos_03).name ~= "air" then + minetest.set_node(pos_01, {name="dryplants:reedmace_height_2"}) + elseif size == 1 then + minetest.set_node(pos_01, {name="dryplants:reedmace_top"}) + elseif size == 2 then + minetest.set_node(pos_01, {name="dryplants:reedmace_height_2"}) + elseif size == 3 then + if spikes == 1 then + minetest.set_node(pos_01, {name="dryplants:reedmace_height_3_spikes"}) + else + minetest.set_node(pos_01, {name="dryplants:reedmace_height_3"}) + end + end + end +end + +abstract_dryplants.grow_reedmace_water = function(pos) + local size = math.random(1,3) + local spikes = math.random(1,3) + local pos_01 = {x = pos.x, y = pos.y + 1, z = pos.z} + local pos_02 = {x = pos.x, y = pos.y + 2, z = pos.z} + local pos_03 = {x = pos.x, y = pos.y + 3, z = pos.z} + local pos_04 = {x = pos.x, y = pos.y + 4, z = pos.z} + minetest.add_entity(pos_01, "dryplants:reedmace_water_entity") + if minetest.get_node(pos_02).name == "air" then -- bug fix + if minetest.get_node(pos_03).name ~= "air" then + minetest.set_node(pos_02, {name="dryplants:reedmace_top"}) + elseif minetest.get_node(pos_04).name ~= "air" then + minetest.set_node(pos_02, {name="dryplants:reedmace_height_2"}) + elseif size == 1 then + minetest.set_node(pos_02, {name="dryplants:reedmace_top"}) + elseif size == 2 then + minetest.set_node(pos_02, {name="dryplants:reedmace_height_2"}) + elseif size == 3 then + if spikes == 1 then + minetest.set_node(pos_02, {name="dryplants:reedmace_height_3_spikes"}) + else + minetest.set_node(pos_02, {name="dryplants:reedmace_height_3"}) + end + end + end +end + +----------------------------------------------------------------------------------------------- +-- REEDMACE SPIKES +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reedmace_spikes", { + description = "Reedmace", + drawtype = "plantlike", + paramtype = "light", + tiles = {"dryplants_reedmace_spikes.png"}, + inventory_image = "dryplants_reedmace_spikes.png", + walkable = false, + groups = { + snappy=3, + flammable=2, + not_in_creative_inventory=1 + }, + drop = 'dryplants:reedmace_sapling', + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, +}) +----------------------------------------------------------------------------------------------- +-- REEDMACE height: 1 +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reedmace_top", { + description = "Reedmace, height: 1", + drawtype = "plantlike", + paramtype = "light", + tiles = {"dryplants_reedmace_top.png"}, + inventory_image = "dryplants_reedmace_top.png", + walkable = false, + groups = { + snappy=3, + flammable=2, + not_in_creative_inventory=1 + }, + drop = 'dryplants:reedmace_sapling', + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, +}) +----------------------------------------------------------------------------------------------- +-- REEDMACE height: 2 +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reedmace_height_2", { + description = "Reedmace, height: 2", + drawtype = "plantlike", + visual_scale = 2, + paramtype = "light", + tiles = {"dryplants_reedmace_height_2.png"}, + inventory_image = "dryplants_reedmace_top.png", + walkable = false, + groups = { + snappy=3, + flammable=2--, + --not_in_creative_inventory=1 + }, + drop = 'dryplants:reedmace_sapling', + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, +}) +----------------------------------------------------------------------------------------------- +-- REEDMACE height: 3 +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reedmace_height_3", { + description = "Reedmace, height: 3", + drawtype = "plantlike", + visual_scale = 2, + paramtype = "light", + tiles = {"dryplants_reedmace_height_3.png"}, + inventory_image = "dryplants_reedmace_top.png", + walkable = false, + groups = { + snappy=3, + flammable=2--, + --not_in_creative_inventory=1 + }, + drop = 'dryplants:reedmace_sapling', + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, +}) +----------------------------------------------------------------------------------------------- +-- REEDMACE height: 3 & Spikes +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reedmace_height_3_spikes", { + description = "Reedmace, height: 3 & Spikes", + drawtype = "plantlike", + visual_scale = 2, + paramtype = "light", + tiles = {"dryplants_reedmace_height_3_spikes.png"}, + inventory_image = "dryplants_reedmace_top.png", + walkable = false, + groups = { + snappy=3, + flammable=2--, + --not_in_creative_inventory=1 + }, + drop = 'dryplants:reedmace_sapling', + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, +}) +----------------------------------------------------------------------------------------------- +-- REEDMACE STEMS +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reedmace", { + description = "Reedmace", + drawtype = "plantlike", + paramtype = "light", + tiles = {"dryplants_reedmace.png"}, + inventory_image = "dryplants_reedmace.png", + walkable = false, + groups = { + snappy=3, + flammable=2, + not_in_creative_inventory=1 + }, + drop = 'dryplants:reedmace_sapling', + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, + after_destruct = function(pos,oldnode) + local node = minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z}) + if node.name == "dryplants:reedmace_top" + or node.name == "dryplants:reedmace_spikes" then + minetest.dig_node({x=pos.x,y=pos.y+1,z=pos.z}) + minetest.add_item(pos,"dryplants:reedmace_sapling") + end + end, +}) +----------------------------------------------------------------------------------------------- +-- REEDMACE BOTTOM +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reedmace_bottom", { + description = "Reedmace", + drawtype = "plantlike", + paramtype = "light", + tiles = {"dryplants_reedmace_bottom.png"}, + inventory_image = "dryplants_reedmace_bottom.png", + walkable = false, + groups = { + snappy=3, + flammable=2, + not_in_creative_inventory=1 + }, + drop = 'dryplants:reedmace_sapling', + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, + after_destruct = function(pos,oldnode) + local node = minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z}) + if node.name == "dryplants:reedmace" + or node.name == "dryplants:reedmace_top" + or node.name == "dryplants:reedmace_spikes" then + minetest.dig_node({x=pos.x,y=pos.y+1,z=pos.z}) + minetest.add_item(pos,"dryplants:reedmace_sapling") + end + end, +}) +----------------------------------------------------------------------------------------------- +-- REEDMACE "SAPLING" (the drop from the above) +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reedmace_sapling", { + description = "Reedmace", + drawtype = "plantlike", + paramtype = "light", + tiles = {"dryplants_reedmace_sapling.png"}, + inventory_image = "dryplants_reedmace_sapling.png", + walkable = false, + groups = { + snappy=3, + flammable=2, + attached_node=1 + }, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, +}) +-- abm +minetest.register_abm({ + nodenames = "dryplants:reedmace_sapling", + interval = REEDMACE_GROWING_TIME, + chance = 100/REEDMACE_GROWING_CHANCE, + action = function(pos, node, _, _) + if string.find(minetest.get_node({x = pos.x + 1, y = pos.y, z = pos.z }).name, "default:water") + or string.find(minetest.get_node({x = pos.x, y = pos.y, z = pos.z + 1}).name, "default:water") + or string.find(minetest.get_node({x = pos.x - 1, y = pos.y, z = pos.z }).name, "default:water") + or string.find(minetest.get_node({x = pos.x, y = pos.y, z = pos.z - 1}).name, "default:water") then + if minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}).name == "air" then + abstract_dryplants.grow_reedmace_water({x = pos.x, y = pos.y - 1, z = pos.z}) + end + minetest.set_node({x=pos.x, y=pos.y, z=pos.z}, {name="default:water_source"}) + else + abstract_dryplants.grow_reedmace({x = pos.x, y = pos.y - 1, z = pos.z}) + end + end +}) +----------------------------------------------------------------------------------------------- +-- REEDMACE WATER (for entity) +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reedmace_water", { + description = "Reedmace", + drawtype = "plantlike", + paramtype = "light", + tiles = {"dryplants_reedmace_water.png"}, + inventory_image = "dryplants_reedmace_water.png", + groups = {not_in_creative_inventory=1}, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, +}) +----------------------------------------------------------------------------------------------- +-- REEDMACE WATER ENTITY +----------------------------------------------------------------------------------------------- +minetest.register_entity("dryplants:reedmace_water_entity",{ + visual = "wielditem", + visual_size = {x=2/3, y=2/3, z=2/3}, + textures = {"dryplants:reedmace_water"}, + collisionbox = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}, + on_punch = function(self, puncher) + if puncher:is_player() and puncher:get_inventory() then + if not minetest.setting_getbool("creative_mode") then + puncher:get_inventory():add_item("main", "dryplants:reedmace_sapling") + end + self.object:remove() + end + end, +}) +----------------------------------------------------------------------------------------------- +-- SPAWN REEDMACE +----------------------------------------------------------------------------------------------- +--[[plantslib:spawn_on_surfaces({ + spawn_delay = 1200, + spawn_plants = {"dryplants:reedmace_sapling"}, + spawn_chance = 400, + spawn_surfaces = { + "default:dirt_with_grass", + "default:desert_sand", + "default:sand", + "dryplants:grass_short", + "stoneage:grass_with_silex" + }, + seed_diff = 329, + near_nodes = {"default:water_source"}, + near_nodes_size = 2, + near_nodes_vertical = 1, + near_nodes_count = 1, +})]] +----------------------------------------------------------------------------------------------- +-- GENERATE REEDMACE +----------------------------------------------------------------------------------------------- +-- near water or swamp +plantslib:register_generate_plant({ + surface = { + "default:dirt_with_grass", + "default:desert_sand", + "stoneage:grass_with_silex", + "sumpf:peat", + "sumpf:sumpf" + }, + max_count = REEDMACE_NEAR_WATER_PER_MAPBLOCK, + rarity = 101 - REEDMACE_NEAR_WATER_RARITY, + --rarity = 60, + min_elevation = 1, -- above sea level + near_nodes = {"default:water_source","sumpf:dirtywater_source","sumpf:sumpf"}, + near_nodes_size = 2, + near_nodes_vertical = 1, + near_nodes_count = 1, + plantlife_limit = -0.9, + }, + abstract_dryplants.grow_reedmace +) +-- in water +plantslib:register_generate_plant({ + surface = { + "default:dirt", + "default:dirt_with_grass", + --"default:desert_sand", + --"stoneage:grass_with_silex", + "stoneage:sand_with_silex", + "sumpf:peat", + "sumpf:sumpf" + }, + max_count = REEDMACE_IN_WATER_PER_MAPBLOCK, + rarity = 101 - REEDMACE_IN_WATER_RARITY, + --rarity = 35, + min_elevation = 0, -- a bit below sea level + max_elevation = 0, -- "" + near_nodes = {"default:water_source","sumpf:dirtywater_source"}, + near_nodes_size = 1, + near_nodes_count = 1, + plantlife_limit = -0.9, + }, + abstract_dryplants.grow_reedmace_water +) +-- for oases & tropical beaches & tropical swamps +plantslib:register_generate_plant({ + surface = { + "default:sand", + "sumpf:sumpf" + }, + max_count = REEDMACE_FOR_OASES_PER_MAPBLOCK, + rarity = 101 - REEDMACE_FOR_OASES_RARITY, + --rarity = 10, + neighbors = {"default:water_source","sumpf:dirtywater_source","sumpf:sumpf"}, + ncount = 1, + min_elevation = 1, -- above sea level + near_nodes = {"default:desert_sand","sumpf:sumpf"}, + near_nodes_size = 2, + near_nodes_vertical = 1, + near_nodes_count = 1, + plantlife_limit = -0.9, + }, + abstract_dryplants.grow_reedmace +) diff --git a/mods/plantlife_modpack/dryplants/settings.txt b/mods/plantlife_modpack/dryplants/settings.txt new file mode 100755 index 00000000..81dc8997 --- /dev/null +++ b/mods/plantlife_modpack/dryplants/settings.txt @@ -0,0 +1,52 @@ +-- Here you can enable/disable the different plants +REEDMACE_GENERATES = true +SMALL_JUNCUS_GENERATES = true +EXTRA_TALL_GRASS_GENERATES = true + + + +-- Amount of Reedmace near water or swamp +REEDMACE_NEAR_WATER_PER_MAPBLOCK = 35 -- plants per 80x80x80 nodes (absolute maximum number) +REEDMACE_NEAR_WATER_RARITY = 40 -- percent + +-- Amount of Reedmace in water +REEDMACE_IN_WATER_PER_MAPBLOCK = 35 -- plants per 80x80x80 nodes (absolute maximum number) +REEDMACE_IN_WATER_RARITY = 65 -- percent + +-- Amount of Reedmace for oases, tropical beaches and tropical swamps +REEDMACE_FOR_OASES_PER_MAPBLOCK = 35 -- plants per 80x80x80 nodes (absolute maximum number) +REEDMACE_FOR_OASES_RARITY = 90 -- percent + +-- growing of reedmace sapling +REEDMACE_GROWING_TIME = 16800 -- seconds +REEDMACE_GROWING_CHANCE = 5 -- percent + + + +-- Amount of small Juncus near water or swamp +JUNCUS_NEAR_WATER_PER_MAPBLOCK = 70 -- plants per 80x80x80 nodes (absolute maximum number) +JUNCUS_NEAR_WATER_RARITY = 75 -- percent + +-- Amount of small Juncus at dunes/beach +JUNCUS_AT_BEACH_PER_MAPBLOCK = 70 -- plants per 80x80x80 nodes (absolute maximum number) +JUNCUS_AT_BEACH_RARITY = 75 -- percent + + + +-- Tall Grass on dirt with grass +TALL_GRASS_PER_MAPBLOCK = 4800 -- plants per 80x80x80 nodes (absolute maximum number) +TALL_GRASS_RARITY = 75 -- percent + + + +-- short grass becomes dirt with grass again +GRASS_REGROWING_TIME = 16800 -- seconds +GRASS_REGROWING_CHANCE = 0.5 -- percent + +HAY_DRYING_TIME = 3600 -- seconds + +REED_WILL_DRY = false -- wet reed nodes will become dry reed nodes +REED_DRYING_TIME = 3600 -- seconds + +AUTO_ROOF_CORNER = true + diff --git a/mods/plantlife_modpack/dryplants/textures/default_grass_1.png b/mods/plantlife_modpack/dryplants/textures/default_grass_1.png new file mode 100755 index 00000000..594a23b4 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/default_grass_1.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/default_grass_2.png b/mods/plantlife_modpack/dryplants/textures/default_grass_2.png new file mode 100755 index 00000000..7f1025ae Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/default_grass_2.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/default_grass_3.png b/mods/plantlife_modpack/dryplants/textures/default_grass_3.png new file mode 100755 index 00000000..aec589f0 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/default_grass_3.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/default_grass_4.png b/mods/plantlife_modpack/dryplants/textures/default_grass_4.png new file mode 100755 index 00000000..e9c8c884 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/default_grass_4.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/default_grass_5.png b/mods/plantlife_modpack/dryplants/textures/default_grass_5.png new file mode 100755 index 00000000..20dcd2b4 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/default_grass_5.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/dryplants_grass.png b/mods/plantlife_modpack/dryplants/textures/dryplants_grass.png new file mode 100755 index 00000000..a01ec989 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/dryplants_grass.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/dryplants_grass_short.png b/mods/plantlife_modpack/dryplants/textures/dryplants_grass_short.png new file mode 100755 index 00000000..ad186e5d Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/dryplants_grass_short.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/dryplants_grass_short_side.png b/mods/plantlife_modpack/dryplants/textures/dryplants_grass_short_side.png new file mode 100755 index 00000000..a6429ac1 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/dryplants_grass_short_side.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/dryplants_hay.png b/mods/plantlife_modpack/dryplants/textures/dryplants_hay.png new file mode 100755 index 00000000..a919166a Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/dryplants_hay.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/dryplants_juncus_02.png b/mods/plantlife_modpack/dryplants/textures/dryplants_juncus_02.png new file mode 100755 index 00000000..aebaacee Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/dryplants_juncus_02.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/dryplants_juncus_03.png b/mods/plantlife_modpack/dryplants/textures/dryplants_juncus_03.png new file mode 100755 index 00000000..4d675930 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/dryplants_juncus_03.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/dryplants_juncus_inv.png b/mods/plantlife_modpack/dryplants/textures/dryplants_juncus_inv.png new file mode 100755 index 00000000..4fad2f2a Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/dryplants_juncus_inv.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/dryplants_reed.png b/mods/plantlife_modpack/dryplants/textures/dryplants_reed.png new file mode 100755 index 00000000..565876b7 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/dryplants_reed.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/dryplants_reed_wet.png b/mods/plantlife_modpack/dryplants/textures/dryplants_reed_wet.png new file mode 100755 index 00000000..106f0694 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/dryplants_reed_wet.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace.png b/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace.png new file mode 100755 index 00000000..ee7840f4 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_bottom.png b/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_bottom.png new file mode 100755 index 00000000..4e441f43 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_bottom.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_height_2.png b/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_height_2.png new file mode 100755 index 00000000..fc097818 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_height_2.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_height_3.png b/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_height_3.png new file mode 100755 index 00000000..89c495c7 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_height_3.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_height_3_spikes.png b/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_height_3_spikes.png new file mode 100755 index 00000000..a9f2152c Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_height_3_spikes.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_sapling.png b/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_sapling.png new file mode 100755 index 00000000..dc036963 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_sapling.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_spikes.png b/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_spikes.png new file mode 100755 index 00000000..efab4689 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_spikes.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_top.png b/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_top.png new file mode 100755 index 00000000..6beb5850 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_top.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_water.png b/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_water.png new file mode 100755 index 00000000..0b2b06d9 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_water.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/dryplants_sickle.png b/mods/plantlife_modpack/dryplants/textures/dryplants_sickle.png new file mode 100755 index 00000000..31d21de1 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/dryplants_sickle.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/big_pic_8.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/big_pic_8.png new file mode 100755 index 00000000..c39a0133 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/big_pic_8.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/big_pic_9.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/big_pic_9.png new file mode 100755 index 00000000..2779783d Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/big_pic_9.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_cattailsG_m2.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_cattailsG_m2.png new file mode 100755 index 00000000..5af46890 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_cattailsG_m2.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_02_left.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_02_left.png new file mode 100755 index 00000000..8b23c7ad Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_02_left.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_02_right.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_02_right.png new file mode 100755 index 00000000..0ffa0021 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_02_right.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_02_whole2.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_02_whole2.png new file mode 100755 index 00000000..7708b49f Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_02_whole2.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_03_left.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_03_left.png new file mode 100755 index 00000000..9df87244 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_03_left.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_03_right.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_03_right.png new file mode 100755 index 00000000..d43af2e0 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_03_right.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_03_whole2.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_03_whole2.png new file mode 100755 index 00000000..e7af0907 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_03_whole2.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_01.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_01.png new file mode 100755 index 00000000..c2b1546a Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_01.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_02.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_02.png new file mode 100755 index 00000000..8380c200 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_02.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_03.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_03.png new file mode 100755 index 00000000..0ee837db Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_03.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_04.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_04.png new file mode 100755 index 00000000..800cb964 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_04.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_bottom_left.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_bottom_left.png new file mode 100755 index 00000000..c28ba71a Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_bottom_left.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_bottom_right.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_bottom_right.png new file mode 100755 index 00000000..65b544aa Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_bottom_right.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_left.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_left.png new file mode 100755 index 00000000..69783a83 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_left.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_right.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_right.png new file mode 100755 index 00000000..30b77ac3 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_right.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_top_left.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_top_left.png new file mode 100755 index 00000000..78395b87 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_top_left.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_top_right.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_top_right.png new file mode 100755 index 00000000..d64b5373 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_top_right.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/reedmace2.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/reedmace2.png new file mode 100755 index 00000000..2450ceae Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/reedmace2.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/reedmace3.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/reedmace3.png new file mode 100755 index 00000000..395a1102 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/reedmace3.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/reedmace4.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/reedmace4.png new file mode 100755 index 00000000..02624ff4 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/reedmace4.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/reedtest.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/reedtest.png new file mode 100755 index 00000000..34a7a052 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/reedtest.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/not_in_use/texturing.png b/mods/plantlife_modpack/dryplants/textures/not_in_use/texturing.png new file mode 100755 index 00000000..85264343 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/not_in_use/texturing.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/old/dryplants_grass_short_old3.png b/mods/plantlife_modpack/dryplants/textures/old/dryplants_grass_short_old3.png new file mode 100755 index 00000000..f6f6c5b1 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/old/dryplants_grass_short_old3.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/old/dryplants_grass_short_old4.png b/mods/plantlife_modpack/dryplants/textures/old/dryplants_grass_short_old4.png new file mode 100755 index 00000000..571019a5 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/old/dryplants_grass_short_old4.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/old/dryplants_juncus_02_left_old.png b/mods/plantlife_modpack/dryplants/textures/old/dryplants_juncus_02_left_old.png new file mode 100755 index 00000000..4fb9f25d Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/old/dryplants_juncus_02_left_old.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/old/dryplants_juncus_02_right_old.png b/mods/plantlife_modpack/dryplants/textures/old/dryplants_juncus_02_right_old.png new file mode 100755 index 00000000..2e9af80b Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/old/dryplants_juncus_02_right_old.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/old/dryplants_juncus_03_left_old.png b/mods/plantlife_modpack/dryplants/textures/old/dryplants_juncus_03_left_old.png new file mode 100755 index 00000000..055a9c09 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/old/dryplants_juncus_03_left_old.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/old/dryplants_juncus_03_right_old.png b/mods/plantlife_modpack/dryplants/textures/old/dryplants_juncus_03_right_old.png new file mode 100755 index 00000000..702abce5 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/old/dryplants_juncus_03_right_old.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_bottom_left_old2.png b/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_bottom_left_old2.png new file mode 100755 index 00000000..5ccbb7d4 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_bottom_left_old2.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_bottom_old4.png b/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_bottom_old4.png new file mode 100755 index 00000000..8a39dcea Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_bottom_old4.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_bottom_right_old2.png b/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_bottom_right_old2.png new file mode 100755 index 00000000..d82ce5a2 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_bottom_right_old2.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_left_old2.png b/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_left_old2.png new file mode 100755 index 00000000..a66f882a Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_left_old2.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_old8.png b/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_old8.png new file mode 100755 index 00000000..404cac0b Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_old8.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_right_old2.png b/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_right_old2.png new file mode 100755 index 00000000..c916975d Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_right_old2.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_spikes_old3.png b/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_spikes_old3.png new file mode 100755 index 00000000..5cb09e16 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_spikes_old3.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_top_left_old2.png b/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_top_left_old2.png new file mode 100755 index 00000000..138786af Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_top_left_old2.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_top_old3.png b/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_top_old3.png new file mode 100755 index 00000000..07f95394 Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_top_old3.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_top_right_old2.png b/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_top_right_old2.png new file mode 100755 index 00000000..06c8888e Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_top_right_old2.png differ diff --git a/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_water_old2.png b/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_water_old2.png new file mode 100755 index 00000000..cfb4705e Binary files /dev/null and b/mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_water_old2.png differ diff --git a/mods/plantlife_modpack/ferns/crafting.lua b/mods/plantlife_modpack/ferns/crafting.lua new file mode 100755 index 00000000..656a7632 --- /dev/null +++ b/mods/plantlife_modpack/ferns/crafting.lua @@ -0,0 +1,104 @@ +----------------------------------------------------------------------------------------------- +-- Ferns - Crafting 0.0.5 +----------------------------------------------------------------------------------------------- +-- (by Mossmanikin) +-- License (everything): WTFPL +----------------------------------------------------------------------------------------------- +minetest.register_craft({ + type = "shapeless", + output = "ferns:fiddlehead 3", + recipe = {"ferns:fern_01"}, + replacements = { + {"ferns:fern_01", "ferns:ferntuber"} + }, +}) + +minetest.register_craft({ + type = "shapeless", + output = "ferns:fiddlehead 3", + recipe = {"ferns:tree_fern_leaves"}, + replacements = { + {"ferns:tree_fern_leaves", "ferns:sapling_tree_fern"} + }, +}) +----------------------------------------------------------------------------------------------- +-- FIDDLEHEAD +----------------------------------------------------------------------------------------------- +minetest.register_alias("archaeplantae:fiddlehead", "ferns:fiddlehead") + +minetest.register_craftitem("ferns:fiddlehead", { + description = "Fiddlehead", + inventory_image = "ferns_fiddlehead.png", + on_use = minetest.item_eat(-1), -- slightly poisonous when raw +}) +minetest.register_craft({ + type = "cooking", + output = "ferns:fiddlehead_roasted", + recipe = "ferns:fiddlehead", + cooktime = 1, +}) +minetest.register_craftitem("ferns:fiddlehead_roasted", { + description = "Roasted Fiddlehead", + inventory_image = "ferns_fiddlehead_roasted.png", + on_use = minetest.item_eat(1), -- edible when cooked +}) +----------------------------------------------------------------------------------------------- +-- FERN TUBER +----------------------------------------------------------------------------------------------- +minetest.register_alias("archaeplantae:ferntuber", "ferns:ferntuber") + +minetest.register_craftitem("ferns:ferntuber", { + description = "Fern Tuber", + inventory_image = "ferns_ferntuber.png", +}) +minetest.register_craft({ + type = "cooking", + output = "ferns:ferntuber_roasted", + recipe = "ferns:ferntuber", + cooktime = 3, +}) + +minetest.register_alias("archaeplantae:ferntuber_roasted", "ferns:ferntuber_roasted") + +minetest.register_craftitem("ferns:ferntuber_roasted", { + description = "Roasted Fern Tuber", + inventory_image = "ferns_ferntuber_roasted.png", + on_use = minetest.item_eat(3), +}) +----------------------------------------------------------------------------------------------- +-- HORSETAIL (EQUISETUM) --> GREEN DYE https://en.wikipedia.org/wiki/Equisetum +----------------------------------------------------------------------------------------------- +minetest.register_craft({ + type = "shapeless", + output = "dye:green", + recipe = {"group:horsetail"}, +}) +----------------------------------------------------------------------------------------------- +-- GLUE WOODEN TOOLS with RESIN & POLISH them with HORSETAIL (planned) +----------------------------------------------------------------------------------------------- +--[[minetest.register_craft({ + type = "shapeless", + output = "default:pick_wood", + recipe = {"default:pick_wood","group:horsetail","farming:string","default:stick"}, +}) +minetest.register_craft({ + type = "shapeless", + output = "default:shovel_wood", + recipe = {"default:shovel_wood","group:horsetail","farming:string","default:stick"}, +}) +minetest.register_craft({ + type = "shapeless", + output = "default:axe_wood", + recipe = {"default:axe_wood","group:horsetail","farming:string","default:stick"}, +}) +minetest.register_craft({ + type = "shapeless", + output = "default:sword_wood", + recipe = {"default:sword_wood","group:horsetail","farming:string","default:stick"}, +}) +minetest.register_craft({ + type = "shapeless", + output = "farming:hoe_wood", + recipe = {"farming:hoe_wood","group:horsetail","farming:string","default:stick"}, +})]] + diff --git a/mods/plantlife_modpack/ferns/depends.txt b/mods/plantlife_modpack/ferns/depends.txt new file mode 100755 index 00000000..bde0bdf5 --- /dev/null +++ b/mods/plantlife_modpack/ferns/depends.txt @@ -0,0 +1,2 @@ +default +plants_lib \ No newline at end of file diff --git a/mods/plantlife_modpack/ferns/fern.lua b/mods/plantlife_modpack/ferns/fern.lua new file mode 100755 index 00000000..f45860a3 --- /dev/null +++ b/mods/plantlife_modpack/ferns/fern.lua @@ -0,0 +1,196 @@ +----------------------------------------------------------------------------------------------- +-- Ferns - Fern 0.1.0 +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): WTFPL +-- Contains code from: plants_lib +-- Looked at code from: default, flowers, painting, trees +-- Dependencies: plants_lib +-- Supports: dryplants, stoneage, sumpf +----------------------------------------------------------------------------------------------- +-- some inspiration from here +-- https://en.wikipedia.org/wiki/Athyrium_yokoscense +-- http://www.mygarden.net.au/gardening/athyrium-yokoscense/3900/1 +----------------------------------------------------------------------------------------------- + +assert(abstract_ferns.config.enable_lady_fern == true) + +-- Maintain backward compatibilty +minetest.register_alias("archaeplantae:fern", "ferns:fern_03") +minetest.register_alias("archaeplantae:fern_mid", "ferns:fern_02") +minetest.register_alias("archaeplantae:fern_small", "ferns:fern_01") +minetest.register_alias("ferns:fern_04", "ferns:fern_02") -- for placing + +local nodenames = {} + +local function create_nodes() + local images = { "ferns_fern.png", "ferns_fern_mid.png", "ferns_fern_big.png" } + local vscales = { 1, 2, 2.2 } + local descs = { "Lady-fern (Athyrium)", nil, nil } + + for i = 1, 3 do + local node_on_place = nil + if i == 1 then + node_on_place = function(itemstack, placer, pointed_thing) + -- place a random fern + local stack = ItemStack("ferns:fern_0"..math.random(1,4)) + local ret = minetest.item_place(stack, placer, pointed_thing) + return ItemStack("ferns:fern_01 "..itemstack:get_count()-(1-ret:get_count())) -- TODO FIXME? + end + end + nodenames[i] = "ferns:fern_"..string.format("%02d", i) + minetest.register_node(nodenames[i], { + description = descs[i] or ("Lady-fern (Athyrium) " .. string.format("%02d", i)), + inventory_image = "ferns_fern.png", + drawtype = "plantlike", + visual_scale = vscales[i], + paramtype = "light", + tiles = { images[i] }, + walkable = false, + buildable_to = true, + groups = {snappy=3,flammable=2,attached_node=1,not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16}, + }, + drop = "ferns:fern_01", + on_place = node_on_place + }) + end +end + +----------------------------------------------------------------------------------------------- +-- Init +----------------------------------------------------------------------------------------------- + +create_nodes() + +----------------------------------------------------------------------------------------------- +-- Spawning +----------------------------------------------------------------------------------------------- + +if abstract_ferns.config.lady_ferns_near_tree == true then + plantslib:register_generate_plant({ -- near trees (woodlands) + surface = { + "default:dirt_with_grass", + "default:mossycobble", + "default:desert_sand", + "default:sand", + "default:jungletree", + "stoneage:grass_with_silex", + "sumpf:sumpf" + }, + max_count = 30, + rarity = 62,--63, + min_elevation = 1, -- above sea level + near_nodes = {"group:tree"}, + near_nodes_size = 3,--4, + near_nodes_vertical = 2,--3, + near_nodes_count = 1, + plantlife_limit = -0.9, + humidity_max = -1.0, + humidity_min = 0.4, + temp_max = -0.5, -- 55 C (too hot?) + temp_min = 0.75, -- -12 C + random_facedir = { 0, 179 }, + }, + nodenames + ) +end + +if abstract_ferns.config.lady_ferns_near_rock == true then + plantslib:register_generate_plant({ -- near stone (mountains) + surface = { + "default:dirt_with_grass", + "default:mossycobble", + "group:falling_node", + --"default:jungletree", + "stoneage:grass_with_silex", + "sumpf:sumpf" + }, + max_count = 35, + rarity = 40, + min_elevation = 1, -- above sea level + near_nodes = {"group:stone"}, + near_nodes_size = 1, + near_nodes_count = 16, + plantlife_limit = -0.9, + humidity_max = -1.0, + humidity_min = 0.4, + temp_max = -0.5, -- 55 C (too hot?) + temp_min = 0.75, -- -12 C + random_facedir = { 0, 179 }, + }, + nodenames + ) +end + +if abstract_ferns.config.lady_ferns_near_ores == true then -- this one causes a huge fps drop + plantslib:register_generate_plant({ -- near ores (potential mining sites) + surface = { + "default:dirt_with_grass", + "default:mossycobble", + "default:stone_with_coal", + "default:stone_with_iron", + "moreores:mineral_tin", + "moreores:mineral_silver", + "sumpf:sumpf" + }, + max_count = 1200,--1600, -- maybe too much? :D + rarity = 25,--15, + min_elevation = 1, -- above sea level + near_nodes = { + "default:stone_with_iron", + --"default:stone_with_copper", + --"default:stone_with_mese", + --"default:stone_with_gold", + --"default:stone_with_diamond", + "moreores:mineral_tin", + "moreores:mineral_silver" + --"moreores:mineral_mithril" + }, + near_nodes_size = 2, + near_nodes_vertical = 4,--5,--6, + near_nodes_count = 2,--3, + plantlife_limit = -0.9, + humidity_max = -1.0, + humidity_min = 0.4, + temp_max = -0.5, -- 55 C (too hot?) + temp_min = 0.75, -- -12 C + random_facedir = { 0, 179 }, + }, + nodenames + ) +end + +if abstract_ferns.config.lady_ferns_in_groups == true then -- this one is meant as a replacement of Ferns_near_Ores + plantslib:register_generate_plant({ + surface = { + "default:dirt_with_grass", + "default:mossycobble", + "default:stone_with_coal", + "default:stone_with_iron", + "moreores:mineral_tin", + "moreores:mineral_silver", + "sumpf:sumpf" + }, + max_count = 70, + rarity = 25,--15, + min_elevation = 1, -- above sea level + near_nodes = { + "default:stone" + }, + near_nodes_size = 2, + near_nodes_vertical = 2,--6, + near_nodes_count = 3, + plantlife_limit = -0.9, + humidity_max = -1.0, + humidity_min = 0.4, + temp_max = -0.5, -- 55 C (too hot?) + temp_min = 0.75, -- -12 C + random_facedir = { 0, 179 }, + }, + nodenames + ) +end diff --git a/mods/plantlife_modpack/ferns/gianttreefern.lua b/mods/plantlife_modpack/ferns/gianttreefern.lua new file mode 100755 index 00000000..5b6feee9 --- /dev/null +++ b/mods/plantlife_modpack/ferns/gianttreefern.lua @@ -0,0 +1,330 @@ +----------------------------------------------------------------------------------------------- +-- Ferns - Giant Tree Fern 0.1.1 +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): WTFPL +-- Contains code from: plants_lib +-- Looked at code from: 4seasons, default +-- Supports: vines +----------------------------------------------------------------------------------------------- + +assert(abstract_ferns.config.enable_giant_treefern == true) + +-- lot of code, lot to load + +abstract_ferns.grow_giant_tree_fern = function(pos) + local pos_01 = {x = pos.x, y = pos.y + 1, z = pos.z} + if minetest.get_node(pos_01).name ~= "air" + and minetest.get_node(pos_01).name ~= "ferns:sapling_giant_tree_fern" + and minetest.get_node(pos_01).name ~= "default:junglegrass" then + return + end + + local size = math.random(12,16) -- min of range must be >= 4 + + local leafchecks = { + { + direction = 3, + positions = { + {x = pos.x + 1, y = pos.y + size - 1, z = pos.z }, + {x = pos.x + 2, y = pos.y + size , z = pos.z }, + {x = pos.x + 3, y = pos.y + size - 1, z = pos.z }, + {x = pos.x + 4, y = pos.y + size - 2, z = pos.z } + } + }, + { + direction = 1, + positions = { + {x = pos.x - 1, y = pos.y + size - 1, z = pos.z }, + {x = pos.x - 2, y = pos.y + size, z = pos.z }, + {x = pos.x - 3, y = pos.y + size - 1, z = pos.z }, + {x = pos.x - 4, y = pos.y + size - 2, z = pos.z } + } + }, + { + direction = 2, + positions = { + {x = pos.x , y = pos.y + size - 1, z = pos.z + 1}, + {x = pos.x , y = pos.y + size , z = pos.z + 2}, + {x = pos.x , y = pos.y + size - 1, z = pos.z + 3}, + {x = pos.x , y = pos.y + size - 2, z = pos.z + 4} + } + }, + { + direction = 0, + positions = { + {x = pos.x , y = pos.y + size - 1, z = pos.z - 1}, + {x = pos.x , y = pos.y + size , z = pos.z - 2}, + {x = pos.x , y = pos.y + size - 1, z = pos.z - 3}, + {x = pos.x , y = pos.y + size - 2, z = pos.z - 4} + } + } + } + + for i = 1, size-3 do + minetest.set_node({x = pos.x, y = pos.y + i, z = pos.z}, {name="ferns:fern_trunk_big"}) + end + minetest.set_node({x = pos.x, y = pos.y + size-2, z = pos.z}, {name="ferns:fern_trunk_big_top"}) + minetest.set_node({x = pos.x, y = pos.y + size-1, z = pos.z}, {name="ferns:tree_fern_leaves_giant"}) + + -- all the checking for air below is to prevent some ugly bugs (incomplete trunks of neighbouring trees), it's a bit slower, but worth the result + + -- assert(#leafchecks == 4) + for i = 1, 4 do + local positions = leafchecks[i].positions + local rot = leafchecks[i].direction + local endpos = 4 -- If the loop below adds all intermediate leaves then the "terminating" leaf will be at positions[4] + -- assert(#positions == 4) + -- add leaves so long as the destination nodes are air + for j = 1, 3 do + if minetest.get_node(positions[j]).name == "air" then + minetest.set_node(positions[j], {name="ferns:tree_fern_leave_big"}) + else + endpos = j + break + end + end + -- add the terminating leaf if required and possible + if endpos == 4 and minetest.get_node(positions[endpos]).name == "air" then + minetest.set_node(positions[endpos], {name="ferns:tree_fern_leave_big_end", param2=rot}) + end + end +end + +----------------------------------------------------------------------------------------------- +-- GIANT TREE FERN LEAVES +----------------------------------------------------------------------------------------------- +minetest.register_node("ferns:tree_fern_leaves_giant", { + description = "Tree Fern Crown (Dicksonia)", + drawtype = "plantlike", + visual_scale = math.sqrt(8), + wield_scale = {x=0.175, y=0.175, z=0.175}, + paramtype = "light", + tiles = {"ferns_fern_tree_giant.png"}, + inventory_image = "ferns_fern_tree.png", + walkable = false, + groups = { + snappy=3, + flammable=2, + attached_node=1, + not_in_creative_inventory=1 + }, + drop = { + max_items = 1, + items = { + { + items = {"ferns:sapling_giant_tree_fern"}, + rarity = 40, + }, + { + items = {"ferns:tree_fern_leaves_giant"}, + } + } + }, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16}, + }, +}) +----------------------------------------------------------------------------------------------- +-- GIANT TREE FERN LEAVE PART +----------------------------------------------------------------------------------------------- +minetest.register_node("ferns:tree_fern_leave_big", { + description = "Giant Tree Fern Leaves", + drawtype = "raillike", + paramtype = "light", + tiles = { + "ferns_tree_fern_leave_big.png", + }, + walkable = false, + groups = { + snappy=3, + flammable=2, + attached_node=1, + not_in_creative_inventory=1 + }, + drop = "", + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- GIANT TREE FERN LEAVE END +----------------------------------------------------------------------------------------------- +minetest.register_node("ferns:tree_fern_leave_big_end", { + description = "Giant Tree Fern Leave End", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = { "ferns_tree_fern_leave_big_end.png" }, + walkable = false, + node_box = { + type = "fixed", +-- {left, bottom, front, right, top, back } + fixed = {-1/2, -1/2, 1/2, 1/2, 33/64, 1/2}, + }, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, 1/2, 1/2, 33/64, 1/2}, + }, + groups = { + snappy=3, + flammable=2, + attached_node=1, + not_in_creative_inventory=1 + }, + drop = "", + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- GIANT TREE FERN TRUNK TOP +----------------------------------------------------------------------------------------------- +minetest.register_node("ferns:fern_trunk_big_top", { + description = "Giant Fern Trunk", + drawtype = "nodebox", + paramtype = "light", + tiles = { + "ferns_fern_trunk_big_top.png^ferns_tree_fern_leave_big_cross.png", + "ferns_fern_trunk_big_top.png^ferns_tree_fern_leave_big_cross.png", + "ferns_fern_trunk_big.png" + }, + node_box = { + type = "fixed", +-- {left, bottom, front, right, top, back } + fixed = { + {-1/2, 33/64, -1/2, 1/2, 33/64, 1/2}, + {-1/4, -1/2, -1/4, 1/4, 1/2, 1/4}, + } + }, + selection_box = { + type = "fixed", + fixed = {-1/4, -1/2, -1/4, 1/4, 1/2, 1/4}, + }, + groups = { + tree=1, + choppy=2, + oddly_breakable_by_hand=2, + flammable=3, + wood=1, + not_in_creative_inventory=1, + leafdecay=3 -- to support vines + }, + drop = "ferns:fern_trunk_big", + sounds = default.node_sound_wood_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- GIANT TREE FERN TRUNK +----------------------------------------------------------------------------------------------- +minetest.register_node("ferns:fern_trunk_big", { + description = "Giant Fern Trunk", + drawtype = "nodebox", + paramtype = "light", + tiles = { + "ferns_fern_trunk_big_top.png", + "ferns_fern_trunk_big_top.png", + "ferns_fern_trunk_big.png" + }, + node_box = { + type = "fixed", + fixed = {-1/4, -1/2, -1/4, 1/4, 1/2, 1/4}, + }, + selection_box = { + type = "fixed", + fixed = {-1/4, -1/2, -1/4, 1/4, 1/2, 1/4}, + }, + groups = {tree=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + sounds = default.node_sound_wood_defaults(), + after_destruct = function(pos,oldnode) + local node = minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z}) + if node.name == "ferns:fern_trunk_big" or node.name == "ferns:fern_trunk_big_top" then + minetest.dig_node({x=pos.x,y=pos.y+1,z=pos.z}) + minetest.add_item(pos,"ferns:fern_trunk_big") + end + end, +}) + +----------------------------------------------------------------------------------------------- +-- GIANT TREE FERN SAPLING +----------------------------------------------------------------------------------------------- +minetest.register_node("ferns:sapling_giant_tree_fern", { + description = "Giant Tree Fern Sapling", + drawtype = "plantlike", + paramtype = "light", + tiles = {"ferns_sapling_tree_fern_giant.png"}, + inventory_image = "ferns_sapling_tree_fern_giant.png", + walkable = false, + groups = {snappy=3,flammable=2,flora=1,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16}, + }, +}) + +-- abm +minetest.register_abm({ + nodenames = "ferns:sapling_giant_tree_fern", + interval = 1000, + chance = 4, + action = function(pos, node, _, _) + abstract_ferns.grow_giant_tree_fern({x = pos.x, y = pos.y-1, z = pos.z}) + end +}) + +----------------------------------------------------------------------------------------------- +-- GENERATE GIANT TREE FERN +----------------------------------------------------------------------------------------------- + +-- in jungles +if abstract_ferns.config.enable_giant_treeferns_in_jungle == true then + plantslib:register_generate_plant({ + surface = { + "default:dirt_with_grass", + "default:sand", + "default:desert_sand"--, + --"dryplants:grass_short" + }, + max_count = 12,--27, + avoid_nodes = {"group:tree"}, + avoid_radius = 3,--4, + rarity = 85, + seed_diff = 329, + min_elevation = 1, + near_nodes = {"default:jungletree"}, + near_nodes_size = 6, + near_nodes_vertical = 2,--4, + near_nodes_count = 1, + plantlife_limit = -0.9, + }, + abstract_ferns.grow_giant_tree_fern + ) +end + +-- for oases & tropical beaches +if abstract_ferns.config.enable_giant_treeferns_in_oases == true then + plantslib:register_generate_plant({ + surface = { + "default:sand"--, + --"default:desert_sand" + }, + max_count = 10,--27, + rarity = 90, + seed_diff = 329, + neighbors = {"default:desert_sand"}, + ncount = 1, + min_elevation = 1, + near_nodes = {"default:water_source"}, + near_nodes_size = 2, + near_nodes_vertical = 1, + near_nodes_count = 1, + plantlife_limit = -0.9, + humidity_max = -1.0, + humidity_min = 1.0, + temp_max = -1.0, + temp_min = 1.0, + }, + abstract_ferns.grow_giant_tree_fern + ) +end diff --git a/mods/plantlife_modpack/ferns/horsetail.lua b/mods/plantlife_modpack/ferns/horsetail.lua new file mode 100755 index 00000000..7668981a --- /dev/null +++ b/mods/plantlife_modpack/ferns/horsetail.lua @@ -0,0 +1,156 @@ +----------------------------------------------------------------------------------------------- +-- Archae Plantae - Horsetail 0.0.5 +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): WTFPL +-- Contains code from: plants_lib +-- Looked at code from: default, flowers, trees +-- Dependencies: plants_lib +-- Supports: dryplants, stoneage, sumpf +----------------------------------------------------------------------------------------------- + +assert(abstract_ferns.config.enable_horsetails == true) + +----------------------------------------------------------------------------------------------- +-- HORSETAIL (EQUISETUM) +----------------------------------------------------------------------------------------------- + +local node_names = {} + +local function create_nodes() + local selection_boxes = { + { -0.15, -1/2, -0.15, 0.15, -1/16, 0.15 }, + { -0.15, -1/2, -0.15, 0.15, 1/16, 0.15 }, + { -0.15, -1/2, -0.15, 0.15, 4/16, 0.15 }, + { -0.15, -1/2, -0.15, 0.15, 7/16, 0.15 }, + } + + for i = 1, 4 do + local node_name = "ferns:horsetail_" .. string.format("%02d", i) + local node_img = "ferns_horsetail_" .. string.format("%02d", i) .. ".png" + local node_desc + local node_on_use = nil + local node_drop = "ferns:horsetail_04" + + if i == 1 then + node_desc = "Young Horsetail (Equisetum)" + node_on_use = minetest.item_eat(1) -- young ones edible https://en.wikipedia.org/wiki/Equisetum + node_drop = node_name + elseif i == 4 then + node_desc = "Horsetail (Equisetum)" + else + node_desc = "Horsetail (Equisetum) ".. string.format("%02d", i) + end + + node_names[i] = node_name + + minetest.register_node(node_name, { + description = node_desc, + drawtype = "plantlike", + paramtype = "light", + tiles = { node_img }, + inventory_image = node_img, + walkable = false, + buildable_to = true, + groups = {snappy=3,flammable=2,attached_node=1,horsetail=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = selection_boxes[i], + }, + on_use = node_on_use, + drop = node_drop, + }) + end +end + +----------------------------------------------------------------------------------------------- +-- Init +----------------------------------------------------------------------------------------------- + +create_nodes() + +----------------------------------------------------------------------------------------------- +-- Spawning +----------------------------------------------------------------------------------------------- +if abstract_ferns.config.enable_horsetails_spawning == true then + plantslib:spawn_on_surfaces({ + spawn_delay = 1200, + spawn_plants = node_names, + spawn_chance = 400, + spawn_surfaces = { + "default:dirt_with_grass", + "default:desert_sand", + "default:sand", + "dryplants:grass_short", + "stoneage:grass_with_silex", + "default:mossycobble", + "default:gravel" + }, + seed_diff = 329, + min_elevation = 1, -- above sea level + near_nodes = {"default:water_source","default:gravel"}, + near_nodes_size = 2, + near_nodes_vertical = 1, + near_nodes_count = 1, + --random_facedir = { 0, 179 }, + }) +end + +----------------------------------------------------------------------------------------------- +-- Generating +----------------------------------------------------------------------------------------------- + +if abstract_ferns.config.enable_horsetails_on_grass == true then + plantslib:register_generate_plant({ + surface = { + "default:dirt_with_grass", + "sumpf:sumpf" + }, + max_count = 35, + rarity = 40, + min_elevation = 1, -- above sea level + near_nodes = { + "group:water", -- likes water (of course) + "default:gravel", -- near those on gravel + "default:sand", -- some like sand + "default:clay", -- some like clay + "stoneage:grass_with_silex", + "default:mossycobble", + "default:cobble", + "sumpf:sumpf" + }, + near_nodes_size = 3, + near_nodes_vertical = 2,--3, + near_nodes_count = 1, + plantlife_limit = -0.9, + humidity_min = 0.4, + temp_max = -0.5, -- 55 C + temp_min = 0.53, -- 0 C, dies back in winter + --random_facedir = { 0, 179 }, + }, + node_names + ) +end + +if abstract_ferns.config.enable_horsetails_on_stones == true then + plantslib:register_generate_plant({ + surface = { + "default:gravel", -- roots go deep + "default:mossycobble", + "stoneage:dirt_with_silex", + "stoneage:grass_with_silex", + "stoneage:sand_with_silex", -- roots go deep + }, + max_count = 35, + rarity = 20, + min_elevation = 1, -- above sea level + plantlife_limit = -0.9, + humidity_min = 0.4, + temp_max = -0.5, -- 55 C + temp_min = 0.53, -- 0 C, dies back in winter + --random_facedir = { 0, 179 }, + }, + node_names + ) +end diff --git a/mods/plantlife_modpack/ferns/init.lua b/mods/plantlife_modpack/ferns/init.lua new file mode 100755 index 00000000..b629d5d4 --- /dev/null +++ b/mods/plantlife_modpack/ferns/init.lua @@ -0,0 +1,69 @@ +----------------------------------------------------------------------------------------------- +local title = "Ferns" -- former "Archae Plantae" +local version = "0.2.0" +local mname = "ferns" -- former "archaeplantae" +----------------------------------------------------------------------------------------------- +-- (by Mossmanikin) +-- License (everything): WTFPL +----------------------------------------------------------------------------------------------- + +abstract_ferns = {} + +dofile(minetest.get_modpath("ferns").."/settings.lua") + +if abstract_ferns.config.enable_lady_fern == true then + dofile(minetest.get_modpath("ferns").."/fern.lua") +end + +if abstract_ferns.config.enable_horsetails == true then + dofile(minetest.get_modpath("ferns").."/horsetail.lua") +end + +if abstract_ferns.config.enable_treefern == true then + dofile(minetest.get_modpath("ferns").."/treefern.lua") +end + +if abstract_ferns.config.enable_giant_treefern == true then + dofile(minetest.get_modpath("ferns").."/gianttreefern.lua") +end + +dofile(minetest.get_modpath("ferns").."/crafting.lua") + + +----------------------------------------------------------------------------- +-- TESTS +----------------------------------------------------------------------------- +local run_tests = true -- set to false to skip + +if run_tests then + + -- These are, essentially, unit tests to make sure that all required item + -- strings are registered. The init sequence is not time critical so leaving + -- them here won't affect performance. + + -- Check node names + if abstract_ferns.config.enable_horsetails then + print("[Mod] " ..title.. " Checking horsetail item strings") + assert(minetest.registered_items["ferns:horsetail_01"] ~= nil) + assert(minetest.registered_items["ferns:horsetail_02"] ~= nil) + assert(minetest.registered_items["ferns:horsetail_03"] ~= nil) + assert(minetest.registered_items["ferns:horsetail_04"] ~= nil) + end + if abstract_ferns.config.enable_lady_fern then + print("[Mod] ".. title .." Checking lady fern item strings") + assert(minetest.registered_items["ferns:fern_01"] ~= nil) + assert(minetest.registered_items["ferns:fern_02"] ~= nil) + assert(minetest.registered_items["ferns:fern_03"] ~= nil) + end + if abstract_ferns.config.enable_treefern then + print("[Mod] ".. title .." Checking tree fern item strings") + assert(minetest.registered_items["ferns:tree_fern_leaves"] ~= nil) + assert(minetest.registered_items["ferns:tree_fern_leaves_02"] ~= nil) + assert(minetest.registered_items["ferns:fern_trunk"] ~= nil) + assert(minetest.registered_items["ferns:sapling_tree_fern"] ~= nil) + end +end + +----------------------------------------------------------------------------------------------- +print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") +----------------------------------------------------------------------------------------------- diff --git a/mods/plantlife_modpack/ferns/settings.lua b/mods/plantlife_modpack/ferns/settings.lua new file mode 100755 index 00000000..8254fcf0 --- /dev/null +++ b/mods/plantlife_modpack/ferns/settings.lua @@ -0,0 +1,43 @@ +-- In case you don't wanna have errors: + +-- Only change what's behind a "=" (or "--"). +-- Don't use caps (behind a "="). + +-- If there's a "false" (behind a "=") you can change it to "true" (and the other way around). +-- Spelling is important. +-- If "true" or "false" is necessary as setting, everything(!) which is not spelled "true" will be read as if it were "false" (even "1", "True"...) + +-- If you wanna comment something (for example to remember the default value), you can do this by putting "--" in front of the comment. +-- You can put "--" at the end of a line with "=" in it, or at the beginning of an empty/new line (minetest will ignore what's behind it then). +-- But don't put "--" in front of a line with "=" in it (or else minetest will ignore the setting and you might get an error). + +-- If something is still unclear, don't hesitate to post your question @ https://forum.minetest.net/viewtopic.php?id=6921 + +abstract_ferns.config = {} + +-- Which plants should generate/spawn? +abstract_ferns.config.enable_lady_fern = true +abstract_ferns.config.enable_horsetails = true +abstract_ferns.config.enable_treefern = true +abstract_ferns.config.enable_giant_treefern = true + +-- Where should they generate/spawn? (if they generate/spawn) +-- +-- Lady-Fern +abstract_ferns.config.lady_ferns_near_tree = true +abstract_ferns.config.lady_ferns_near_rock = true +abstract_ferns.config.lady_ferns_near_ores = true -- if there's a bunch of ferns there's ores nearby, this one causes a huge fps drop +abstract_ferns.config.lady_ferns_in_groups = false -- this one is meant as a replacement of Ferns_near_Ores: ferns tend to generate in groups, less fps drop, no hint for nearby ores +-- +-- Horsetails +abstract_ferns.config.enable_horsetails_spawning = false -- horsetails will grow in already explored areas, over time, near water or gravel +abstract_ferns.config.enable_horsetails_on_grass = true -- on dirt with grass and swamp (sumpf mod) +abstract_ferns.config.enable_horsetails_on_stones = true -- on gravel, mossy cobble and silex (stoneage mod) +-- +-- Tree_Fern +abstract_ferns.config.enable_treeferns_in_jungle = true +abstract_ferns.config.enable_treeferns_in_oases = true -- for oases and tropical beaches +-- +-- Giant_Tree_Fern +abstract_ferns.config.enable_giant_treeferns_in_jungle = true +abstract_ferns.config.enable_giant_treeferns_in_oases = true -- for oases and tropical beaches diff --git a/mods/plantlife_modpack/ferns/textures/ferns_5.png b/mods/plantlife_modpack/ferns/textures/ferns_5.png new file mode 100755 index 00000000..de87d3a0 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_5.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_6.png b/mods/plantlife_modpack/ferns/textures/ferns_6.png new file mode 100755 index 00000000..7ca1c3f4 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_6.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_7.png b/mods/plantlife_modpack/ferns/textures/ferns_7.png new file mode 100755 index 00000000..71658812 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_7.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_8.png b/mods/plantlife_modpack/ferns/textures/ferns_8.png new file mode 100755 index 00000000..4a558950 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_8.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_fern.png b/mods/plantlife_modpack/ferns/textures/ferns_fern.png new file mode 100755 index 00000000..36f50f92 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_fern.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_fern_big.png b/mods/plantlife_modpack/ferns/textures/ferns_fern_big.png new file mode 100755 index 00000000..d8ec7383 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_fern_big.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_fern_mid.png b/mods/plantlife_modpack/ferns/textures/ferns_fern_mid.png new file mode 100755 index 00000000..4270e967 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_fern_mid.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_fern_tree.png b/mods/plantlife_modpack/ferns/textures/ferns_fern_tree.png new file mode 100755 index 00000000..10c9f668 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_fern_tree.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_fern_tree_giant.png b/mods/plantlife_modpack/ferns/textures/ferns_fern_tree_giant.png new file mode 100755 index 00000000..f8f1189b Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_fern_tree_giant.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_fern_tree_inv.png b/mods/plantlife_modpack/ferns/textures/ferns_fern_tree_inv.png new file mode 100755 index 00000000..1ea2e43c Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_fern_tree_inv.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_fern_tree_tl.png b/mods/plantlife_modpack/ferns/textures/ferns_fern_tree_tl.png new file mode 100755 index 00000000..6b2f2864 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_fern_tree_tl.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_fern_tree_tr.png b/mods/plantlife_modpack/ferns/textures/ferns_fern_tree_tr.png new file mode 100755 index 00000000..c00aeecf Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_fern_tree_tr.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_fern_trunk.png b/mods/plantlife_modpack/ferns/textures/ferns_fern_trunk.png new file mode 100755 index 00000000..a8e1bf6f Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_fern_trunk.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_fern_trunk_big.png b/mods/plantlife_modpack/ferns/textures/ferns_fern_trunk_big.png new file mode 100755 index 00000000..057e5ece Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_fern_trunk_big.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_fern_trunk_big_top.png b/mods/plantlife_modpack/ferns/textures/ferns_fern_trunk_big_top.png new file mode 100755 index 00000000..22d55230 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_fern_trunk_big_top.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_fern_trunk_top.png b/mods/plantlife_modpack/ferns/textures/ferns_fern_trunk_top.png new file mode 100755 index 00000000..03d789b8 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_fern_trunk_top.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_ferntuber.png b/mods/plantlife_modpack/ferns/textures/ferns_ferntuber.png new file mode 100755 index 00000000..c7451944 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_ferntuber.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_ferntuber_roasted.png b/mods/plantlife_modpack/ferns/textures/ferns_ferntuber_roasted.png new file mode 100755 index 00000000..de610aed Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_ferntuber_roasted.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_fiddlehead.png b/mods/plantlife_modpack/ferns/textures/ferns_fiddlehead.png new file mode 100755 index 00000000..b1796b87 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_fiddlehead.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_fiddlehead_roasted.png b/mods/plantlife_modpack/ferns/textures/ferns_fiddlehead_roasted.png new file mode 100755 index 00000000..3a3d72c3 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_fiddlehead_roasted.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_horsetail_01.png b/mods/plantlife_modpack/ferns/textures/ferns_horsetail_01.png new file mode 100755 index 00000000..90aeadab Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_horsetail_01.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_horsetail_02.png b/mods/plantlife_modpack/ferns/textures/ferns_horsetail_02.png new file mode 100755 index 00000000..7ceae5c7 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_horsetail_02.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_horsetail_03.png b/mods/plantlife_modpack/ferns/textures/ferns_horsetail_03.png new file mode 100755 index 00000000..3ec3a1d1 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_horsetail_03.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_horsetail_04.png b/mods/plantlife_modpack/ferns/textures/ferns_horsetail_04.png new file mode 100755 index 00000000..9cab02df Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_horsetail_04.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_sapling_tree_fern.png b/mods/plantlife_modpack/ferns/textures/ferns_sapling_tree_fern.png new file mode 100755 index 00000000..63d5d59e Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_sapling_tree_fern.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_sapling_tree_fern_giant.png b/mods/plantlife_modpack/ferns/textures/ferns_sapling_tree_fern_giant.png new file mode 100755 index 00000000..6bccc996 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_sapling_tree_fern_giant.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_tree_fern_leave_big.png b/mods/plantlife_modpack/ferns/textures/ferns_tree_fern_leave_big.png new file mode 100755 index 00000000..93cbebc2 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_tree_fern_leave_big.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_tree_fern_leave_big_cross.png b/mods/plantlife_modpack/ferns/textures/ferns_tree_fern_leave_big_cross.png new file mode 100755 index 00000000..b1c9600e Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_tree_fern_leave_big_cross.png differ diff --git a/mods/plantlife_modpack/ferns/textures/ferns_tree_fern_leave_big_end.png b/mods/plantlife_modpack/ferns/textures/ferns_tree_fern_leave_big_end.png new file mode 100755 index 00000000..d850d3a8 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/ferns_tree_fern_leave_big_end.png differ diff --git a/mods/plantlife_modpack/ferns/textures/not_in_use/archaeplantae_horsetails.png b/mods/plantlife_modpack/ferns/textures/not_in_use/archaeplantae_horsetails.png new file mode 100755 index 00000000..f3558f7e Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/not_in_use/archaeplantae_horsetails.png differ diff --git a/mods/plantlife_modpack/ferns/textures/not_in_use/big picture 3.png b/mods/plantlife_modpack/ferns/textures/not_in_use/big picture 3.png new file mode 100755 index 00000000..d5d1c547 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/not_in_use/big picture 3.png differ diff --git a/mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_big_left.png b/mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_big_left.png new file mode 100755 index 00000000..e7e747a9 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_big_left.png differ diff --git a/mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_big_right.png b/mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_big_right.png new file mode 100755 index 00000000..99b29abc Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_big_right.png differ diff --git a/mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_mid_left.png b/mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_mid_left.png new file mode 100755 index 00000000..64cc6a7b Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_mid_left.png differ diff --git a/mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_mid_right.png b/mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_mid_right.png new file mode 100755 index 00000000..3c6c4e85 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_mid_right.png differ diff --git a/mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_tree_bl.png b/mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_tree_bl.png new file mode 100755 index 00000000..b96e4fab Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_tree_bl.png differ diff --git a/mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_tree_br.png b/mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_tree_br.png new file mode 100755 index 00000000..efaf5dbc Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_tree_br.png differ diff --git a/mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_trunk_big_crown.png b/mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_trunk_big_crown.png new file mode 100755 index 00000000..b4d18b3b Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_trunk_big_crown.png differ diff --git a/mods/plantlife_modpack/ferns/textures/old/archaeplantae_fern_old4.png b/mods/plantlife_modpack/ferns/textures/old/archaeplantae_fern_old4.png new file mode 100755 index 00000000..4bd33e96 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/old/archaeplantae_fern_old4.png differ diff --git a/mods/plantlife_modpack/ferns/textures/old/comb.png b/mods/plantlife_modpack/ferns/textures/old/comb.png new file mode 100755 index 00000000..dca2800c Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/old/comb.png differ diff --git a/mods/plantlife_modpack/ferns/textures/old/ferns_5_old.png b/mods/plantlife_modpack/ferns/textures/old/ferns_5_old.png new file mode 100755 index 00000000..d5ee89a0 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/old/ferns_5_old.png differ diff --git a/mods/plantlife_modpack/ferns/textures/old/ferns_6_old.png b/mods/plantlife_modpack/ferns/textures/old/ferns_6_old.png new file mode 100755 index 00000000..3d65b2a9 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/old/ferns_6_old.png differ diff --git a/mods/plantlife_modpack/ferns/textures/old/ferns_7_old.png b/mods/plantlife_modpack/ferns/textures/old/ferns_7_old.png new file mode 100755 index 00000000..b0ee0c6b Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/old/ferns_7_old.png differ diff --git a/mods/plantlife_modpack/ferns/textures/old/ferns_fern_big_old.png b/mods/plantlife_modpack/ferns/textures/old/ferns_fern_big_old.png new file mode 100755 index 00000000..46445f0e Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/old/ferns_fern_big_old.png differ diff --git a/mods/plantlife_modpack/ferns/textures/old/ferns_fern_mid_old.png b/mods/plantlife_modpack/ferns/textures/old/ferns_fern_mid_old.png new file mode 100755 index 00000000..e21cc552 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/old/ferns_fern_mid_old.png differ diff --git a/mods/plantlife_modpack/ferns/textures/old/ferns_fern_tree_old.png b/mods/plantlife_modpack/ferns/textures/old/ferns_fern_tree_old.png new file mode 100755 index 00000000..fb58d34a Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/old/ferns_fern_tree_old.png differ diff --git a/mods/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_big_old2.png b/mods/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_big_old2.png new file mode 100755 index 00000000..a048ee0c Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_big_old2.png differ diff --git a/mods/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_big_top_old.png b/mods/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_big_top_old.png new file mode 100755 index 00000000..1efdbd82 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_big_top_old.png differ diff --git a/mods/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_big_top_old2.png b/mods/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_big_top_old2.png new file mode 100755 index 00000000..4a4ee872 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_big_top_old2.png differ diff --git a/mods/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_top_old.png b/mods/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_top_old.png new file mode 100755 index 00000000..f8fcc964 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_top_old.png differ diff --git a/mods/plantlife_modpack/ferns/textures/old/ferns_horsetail_01_old2.png b/mods/plantlife_modpack/ferns/textures/old/ferns_horsetail_01_old2.png new file mode 100755 index 00000000..96054129 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/old/ferns_horsetail_01_old2.png differ diff --git a/mods/plantlife_modpack/ferns/textures/old/ferns_horsetail_02_old2.png b/mods/plantlife_modpack/ferns/textures/old/ferns_horsetail_02_old2.png new file mode 100755 index 00000000..46614ff3 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/old/ferns_horsetail_02_old2.png differ diff --git a/mods/plantlife_modpack/ferns/textures/old/ferns_horsetail_03_old2.png b/mods/plantlife_modpack/ferns/textures/old/ferns_horsetail_03_old2.png new file mode 100755 index 00000000..153f354a Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/old/ferns_horsetail_03_old2.png differ diff --git a/mods/plantlife_modpack/ferns/textures/old/ferns_horsetail_04_old2.png b/mods/plantlife_modpack/ferns/textures/old/ferns_horsetail_04_old2.png new file mode 100755 index 00000000..bb12dc21 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/old/ferns_horsetail_04_old2.png differ diff --git a/mods/plantlife_modpack/ferns/textures/old/ferns_tree_fern_leave_big_cross_old.png b/mods/plantlife_modpack/ferns/textures/old/ferns_tree_fern_leave_big_cross_old.png new file mode 100755 index 00000000..1e192926 Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/old/ferns_tree_fern_leave_big_cross_old.png differ diff --git a/mods/plantlife_modpack/ferns/textures/old/ferns_tree_fern_leave_big_end_old.png b/mods/plantlife_modpack/ferns/textures/old/ferns_tree_fern_leave_big_end_old.png new file mode 100755 index 00000000..6af642fa Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/old/ferns_tree_fern_leave_big_end_old.png differ diff --git a/mods/plantlife_modpack/ferns/textures/old/ferns_tree_fern_leave_big_old.png b/mods/plantlife_modpack/ferns/textures/old/ferns_tree_fern_leave_big_old.png new file mode 100755 index 00000000..3c34ad9f Binary files /dev/null and b/mods/plantlife_modpack/ferns/textures/old/ferns_tree_fern_leave_big_old.png differ diff --git a/mods/plantlife_modpack/ferns/treefern.lua b/mods/plantlife_modpack/ferns/treefern.lua new file mode 100755 index 00000000..2878f57f --- /dev/null +++ b/mods/plantlife_modpack/ferns/treefern.lua @@ -0,0 +1,212 @@ +----------------------------------------------------------------------------------------------- +-- Ferns - Tree Fern 0.1.1 +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): WTFPL +-- Contains code from: plants_lib +-- Looked at code from: default , trees +----------------------------------------------------------------------------------------------- + +assert(abstract_ferns.config.enable_treefern == true) + +abstract_ferns.grow_tree_fern = function(pos) + + local pos_01 = {x = pos.x, y = pos.y + 1, z = pos.z} + if minetest.get_node(pos_01).name ~= "air" + and minetest.get_node(pos_01).name ~= "ferns:sapling_tree_fern" + and minetest.get_node(pos_01).name ~= "default:junglegrass" then + return + end + + local size = math.random(1, 5) + local crown = ({ "ferns:tree_fern_leaves", "ferns:tree_fern_leaves_02" })[math.random(1, 2)] + + local i = 1 + while (i < size-1) do + if minetest.get_node({x = pos.x, y = pos.y + i + 1, z = pos.z}).name ~= "air" then + break + end + minetest.set_node({x = pos.x, y = pos.y + i, z = pos.z}, { name = "ferns:fern_trunk" }) + i = i + 1 + end + + minetest.set_node({x = pos.x, y = pos.y + i, z = pos.z}, { name = crown }) +end + +----------------------------------------------------------------------------------------------- +-- TREE FERN LEAVES +----------------------------------------------------------------------------------------------- + +-- TODO: Both of these nodes look the same? + +minetest.register_node("ferns:tree_fern_leaves", { + description = "Tree Fern Crown (Dicksonia)", + drawtype = "plantlike", + visual_scale = 2, + paramtype = "light", + paramtype2 = "facedir", + --tiles = {"[combine:32x32:0,0=top_left.png:0,16=bottom_left.png:16,0=top_right.png:16,16=bottom_right.png"}, + tiles = {"ferns_fern_tree.png"}, + inventory_image = "ferns_fern_tree_inv.png", + walkable = false, + groups = {snappy=3,flammable=2,attached_node=1}, + drop = { + max_items = 1, + items = { + { + items = {"ferns:sapling_tree_fern"}, + rarity = 20, + }, + { + items = {"ferns:tree_fern_leaves"}, + } + } + }, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16}, + }, +}) +minetest.register_node("ferns:tree_fern_leaves_02", { + drawtype = "plantlike", + visual_scale = 2, + paramtype = "light", + tiles = {"ferns_fern_big.png"}, + walkable = false, + groups = {snappy=3,flammable=2,attached_node=1,not_in_creative_inventory=1}, + drop = { + max_items = 1, + items = { + { + items = {"ferns:sapling_tree_fern"}, + rarity = 20, + }, + { + items = {"ferns:tree_fern_leaves"}, + } + } + }, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16}, + }, +}) +----------------------------------------------------------------------------------------------- +-- FERN TRUNK +----------------------------------------------------------------------------------------------- +minetest.register_node("ferns:fern_trunk", { + description = "Fern Trunk (Dicksonia)", + drawtype = "nodebox", + paramtype = "light", + tiles = { + "ferns_fern_trunk_top.png", + "ferns_fern_trunk_top.png", + "ferns_fern_trunk.png" + }, + node_box = { + type = "fixed", + fixed = {-1/8, -1/2, -1/8, 1/8, 1/2, 1/8}, + }, + selection_box = { + type = "fixed", + fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, + }, + groups = {tree=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + sounds = default.node_sound_wood_defaults(), + after_destruct = function(pos,oldnode) + local node = minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z}) + if node.name == "ferns:fern_trunk" then + minetest.dig_node({x=pos.x,y=pos.y+1,z=pos.z}) + minetest.add_item(pos,"ferns:fern_trunk") + end + end, +}) + +----------------------------------------------------------------------------------------------- +-- TREE FERN SAPLING +----------------------------------------------------------------------------------------------- +minetest.register_node("ferns:sapling_tree_fern", { + description = "Tree Fern Sapling (Dicksonia)", + drawtype = "plantlike", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"ferns_sapling_tree_fern.png"}, + inventory_image = "ferns_sapling_tree_fern.png", + walkable = false, + groups = {snappy=3,flammable=2,flora=1,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16}, + }, +}) +-- abm +minetest.register_abm({ + nodenames = "ferns:sapling_tree_fern", + interval = 1000, + chance = 4, + action = function(pos, node, _, _) + abstract_ferns.grow_tree_fern({x = pos.x, y = pos.y-1, z = pos.z}) + end +}) + +----------------------------------------------------------------------------------------------- +-- GENERATE TREE FERN +----------------------------------------------------------------------------------------------- + +-- in jungles +if abstract_ferns.config.enable_treeferns_in_jungle == true then + plantslib:register_generate_plant({ + surface = { + "default:dirt_with_grass", + "default:sand", + "default:desert_sand", + }, + max_count = 35,--27, + avoid_nodes = {"default:tree"}, + avoid_radius = 4, + rarity = 50, + seed_diff = 329, + min_elevation = -10, + near_nodes = {"default:jungletree"}, + near_nodes_size = 6, + near_nodes_vertical = 2,--4, + near_nodes_count = 1, + plantlife_limit = -0.9, + humidity_max = -1.0, + humidity_min = 0.4, + temp_max = -0.5, + temp_min = 0.13, + }, + abstract_ferns.grow_tree_fern + ) +end + +-- for oases & tropical beaches +if abstract_ferns.config.enable_treeferns_in_oases == true then + plantslib:register_generate_plant({ + surface = { + "default:sand"--, + --"default:desert_sand" + }, + max_count = 35, + rarity = 50, + seed_diff = 329, + neighbors = {"default:desert_sand"}, + ncount = 1, + min_elevation = 1, + near_nodes = {"default:water_source"}, + near_nodes_size = 2, + near_nodes_vertical = 1, + near_nodes_count = 1, + plantlife_limit = -0.9, + humidity_max = -1.0, + humidity_min = 1.0, + temp_max = -1.0, + temp_min = 1.0, + }, + abstract_ferns.grow_tree_fern +) +end diff --git a/mods/plantlife_modpack/flowers_plus/depends.txt b/mods/plantlife_modpack/flowers_plus/depends.txt new file mode 100755 index 00000000..c8f72513 --- /dev/null +++ b/mods/plantlife_modpack/flowers_plus/depends.txt @@ -0,0 +1 @@ +plants_lib diff --git a/mods/plantlife_modpack/flowers_plus/flowers-changelog.txt b/mods/plantlife_modpack/flowers_plus/flowers-changelog.txt new file mode 100755 index 00000000..fbe75185 --- /dev/null +++ b/mods/plantlife_modpack/flowers_plus/flowers-changelog.txt @@ -0,0 +1,24 @@ +Changelog +--------- + +2012-08-06: Tweaked selection boxes on all nodes. Tweaked seaweed to use +signlike instead of raillike drawtype, (still forced to only spawn flat as +usual). Adjusted light level limits to give it more time to grow. Created +this changelog file using github commit messages as the basis. Shrunk the +geranium flower down a bit to better match the others. + +2012-08-03: Tuned out the random-numbers-inside-ABM stuff. Uses the ABM's +chance setting instead. Should be approximately the same as before, but +hopefully using a tad less CPU. Minor tweak to ABM interval/growing delay. + +2012-08-01: Added blue geranium to the collection of flowers. + +2012-07-31: Disable debug by default. + +2012-07-30: many updates over the course of the day - first commit, removed +some redundant files, added wield/inventory image entries for each item, to +force the game to draw them properly (these shouldn't be needed, must be a +bug). Tweaked spawn code so that the radius check also includes the name of +the item being spawned as well as items in group:flower, that way all items can +have a radius test, and not just those in group:flower. Fiddled with the spawn +rates a bit. diff --git a/mods/plantlife_modpack/flowers_plus/init.lua b/mods/plantlife_modpack/flowers_plus/init.lua new file mode 100755 index 00000000..96647ac2 --- /dev/null +++ b/mods/plantlife_modpack/flowers_plus/init.lua @@ -0,0 +1,482 @@ +-- Boilerplate to support localized strings if intllib mod is installed. +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) +else + S = function ( s ) return s end +end + +-- This file supplies a few additional plants and some related crafts +-- for the plantlife modpack. Last revision: 2013-04-24 + +flowers_plus = {} + +local SPAWN_DELAY = 1000 +local SPAWN_CHANCE = 200 +local flowers_seed_diff = 329 +local lilies_max_count = 320 +local lilies_rarity = 33 +local seaweed_max_count = 320 +local seaweed_rarity = 33 + +-- register the various rotations of waterlilies + +local lilies_list = { + { nil , nil , 1 }, + { "225", "22.5" , 2 }, + { "45" , "45" , 3 }, + { "675", "67.5" , 4 }, + { "s1" , "small_1" , 5 }, + { "s2" , "small_2" , 6 }, + { "s3" , "small_3" , 7 }, + { "s4" , "small_4" , 8 }, +} + +for i in ipairs(lilies_list) do + local deg1 = "" + local deg2 = "" + local lily_groups = {snappy = 3,flammable=2,flower=1} + + if lilies_list[i][1] ~= nil then + deg1 = "_"..lilies_list[i][1] + deg2 = "_"..lilies_list[i][2] + lily_groups = { snappy = 3,flammable=2,flower=1, not_in_creative_inventory=1 } + end + + minetest.register_node(":flowers:waterlily"..deg1, { + description = S("Waterlily"), + drawtype = "nodebox", + tiles = { + "flowers_waterlily"..deg2..".png", + "flowers_waterlily"..deg2..".png^[transformFY" + }, + inventory_image = "flowers_waterlily.png", + wield_image = "flowers_waterlily.png", + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + walkable = false, + groups = lily_groups, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.4, -0.5, -0.4, 0.4, -0.45, 0.4 }, + }, + node_box = { + type = "fixed", + fixed = { -0.5, -0.49, -0.5, 0.5, -0.49, 0.5 }, + }, + buildable_to = true, + + liquids_pointable = true, + drop = "flowers:waterlily", + on_place = function(itemstack, placer, pointed_thing) + local keys=placer:get_player_control() + local pt = pointed_thing + + local place_pos = nil + local top_pos = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z} + local under_node = minetest.get_node(pt.under) + local above_node = minetest.get_node(pt.above) + local top_node = minetest.get_node(top_pos) + + if plantslib:get_nodedef_field(under_node.name, "buildable_to") then + if under_node.name ~= "default:water_source" then + place_pos = pt.under + elseif top_node.name ~= "default:water_source" + and plantslib:get_nodedef_field(top_node.name, "buildable_to") then + place_pos = top_pos + else + return + end + elseif plantslib:get_nodedef_field(above_node.name, "buildable_to") then + place_pos = pt.above + end + + if not minetest.is_protected(place_pos, placer:get_player_name()) then + + local nodename = "default:cobble" -- if this block appears, something went....wrong :-) + + if not keys["sneak"] then + local node = minetest.get_node(pt.under) + local waterlily = math.random(1,8) + if waterlily == 1 then + nodename = "flowers:waterlily" + elseif waterlily == 2 then + nodename = "flowers:waterlily_225" + elseif waterlily == 3 then + nodename = "flowers:waterlily_45" + elseif waterlily == 4 then + nodename = "flowers:waterlily_675" + elseif waterlily == 5 then + nodename = "flowers:waterlily_s1" + elseif waterlily == 6 then + nodename = "flowers:waterlily_s2" + elseif waterlily == 7 then + nodename = "flowers:waterlily_s3" + elseif waterlily == 8 then + nodename = "flowers:waterlily_s4" + end + minetest.set_node(place_pos, {name = nodename, param2 = math.random(0,3) }) + else + local fdir = minetest.dir_to_facedir(placer:get_look_dir()) + minetest.set_node(place_pos, {name = "flowers:waterlily", param2 = fdir}) + end + + if not plantslib.expect_infinite_stacks then + itemstack:take_item() + end + return itemstack + end + end, + }) +end + +local algae_list = { {nil}, {2}, {3}, {4} } + +for i in ipairs(algae_list) do + local num = "" + local algae_groups = {snappy = 3,flammable=2,flower=1} + + if algae_list[i][1] ~= nil then + num = "_"..algae_list[i][1] + algae_groups = { snappy = 3,flammable=2,flower=1, not_in_creative_inventory=1 } + end + + minetest.register_node(":flowers:seaweed"..num, { + description = S("Seaweed"), + drawtype = "nodebox", + tiles = { + "flowers_seaweed"..num..".png", + "flowers_seaweed"..num..".png^[transformFY" + }, + inventory_image = "flowers_seaweed_2.png", + wield_image = "flowers_seaweed_2.png", + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + walkable = false, + groups = algae_groups, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.4, -0.5, -0.4, 0.4, -0.45, 0.4 }, + }, + node_box = { + type = "fixed", + fixed = { -0.5, -0.49, -0.5, 0.5, -0.49, 0.5 }, + }, + buildable_to = true, + + liquids_pointable = true, + drop = "flowers:seaweed", + on_place = function(itemstack, placer, pointed_thing) + local keys=placer:get_player_control() + local pt = pointed_thing + + local place_pos = nil + local top_pos = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z} + local under_node = minetest.get_node(pt.under) + local above_node = minetest.get_node(pt.above) + local top_node = minetest.get_node(top_pos) + + if plantslib:get_nodedef_field(under_node.name, "buildable_to") then + if under_node.name ~= "default:water_source" then + place_pos = pt.under + elseif top_node.name ~= "default:water_source" + and plantslib:get_nodedef_field(top_node.name, "buildable_to") then + place_pos = top_pos + else + return + end + elseif plantslib:get_nodedef_field(above_node.name, "buildable_to") then + place_pos = pt.above + end + + if not minetest.is_protected(place_pos, placer:get_player_name()) then + + local nodename = "default:cobble" -- :D + + if not keys["sneak"] then + --local node = minetest.get_node(pt.under) + local seaweed = math.random(1,4) + if seaweed == 1 then + nodename = "flowers:seaweed" + elseif seaweed == 2 then + nodename = "flowers:seaweed_2" + elseif seaweed == 3 then + nodename = "flowers:seaweed_3" + elseif seaweed == 4 then + nodename = "flowers:seaweed_4" + end + minetest.set_node(place_pos, {name = nodename, param2 = math.random(0,3) }) + else + local fdir = minetest.dir_to_facedir(placer:get_look_dir()) + minetest.set_node(place_pos, {name = "flowers:seaweed", param2 = fdir}) + end + + if not plantslib.expect_infinite_stacks then + itemstack:take_item() + end + return itemstack + end + end, + }) +end + +-- register all potted plant nodes, crafts, and most backward-compat aliases +-- Description, base node name, item to craft flowerpot with + +local flowers_list = { + { "Rose", "rose", "flowers:rose" }, + { "Tulip", "tulip", "flowers:tulip" }, + { "Yellow Dandelion", "dandelion_yellow", "flowers:dandelion_yellow" }, + { "White Dandelion", "dandelion_white", "flowers:dandelion_white" }, + { "Blue Geranium", "geranium", "flowers:geranium" }, + { "Viola", "viola", "flowers:viola" }, + { "Cactus", "cactus", "default:cactus" }, + { "Bonsai", "bonsai", "default:sapling" } +} + +for i in ipairs(flowers_list) do + local flowerdesc = flowers_list[i][1] + local flower = flowers_list[i][2] + local craftwith = flowers_list[i][3] + + minetest.register_node(":flowers:potted_"..flower, { + description = S("Potted "..flowerdesc), + drawtype = "plantlike", + tiles = { "flowers_potted_"..flower..".png" }, + inventory_image = "flowers_potted_"..flower..".png", + wield_image = "flowers_potted_"..flower..".png", + sunlight_propagates = true, + paramtype = "light", + walkable = false, + groups = { snappy = 3,flammable=2 }, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.25, -0.5, -0.25, 0.25, 0.5, 0.25 }, + }, + }) + + minetest.register_craft( { + type = "shapeless", + output = "flowers:potted_"..flower, + recipe = { + craftwith, + "flowers:flower_pot" + } + }) + + minetest.register_alias("flowers:flower_"..flower.."_pot", "flowers:potted_"..flower) +end + +local extra_aliases = { + "waterlily", + "waterlily_225", + "waterlily_45", + "waterlily_675", + "seaweed" +} + +for i in ipairs(extra_aliases) do + local flower = extra_aliases[i] + minetest.register_alias("flowers:flower_"..flower, "flowers:"..flower) +end + +minetest.register_alias( "trunks:lilypad" , "flowers:waterlily_s1" ) +minetest.register_alias( "along_shore:lilypads_1" , "flowers:waterlily_s1" ) +minetest.register_alias( "along_shore:lilypads_2" , "flowers:waterlily_s2" ) +minetest.register_alias( "along_shore:lilypads_3" , "flowers:waterlily_s3" ) +minetest.register_alias( "along_shore:lilypads_4" , "flowers:waterlily_s4" ) +minetest.register_alias( "along_shore:pondscum_1" , "flowers:seaweed" ) +minetest.register_alias( "along_shore:seaweed_1" , "flowers:seaweed" ) +minetest.register_alias( "along_shore:seaweed_2" , "flowers:seaweed_2" ) +minetest.register_alias( "along_shore:seaweed_3" , "flowers:seaweed_3" ) +minetest.register_alias( "along_shore:seaweed_4" , "flowers:seaweed_4" ) + +-- ongen registrations + +flowers_plus.grow_waterlily = function(pos) + local right_here = {x=pos.x, y=pos.y+1, z=pos.z} + for i in ipairs(lilies_list) do + local chance = math.random(1,8) + local ext = "" + local num = lilies_list[i][3] + + if lilies_list[i][1] ~= nil then + ext = "_"..lilies_list[i][1] + end + + if chance == num then + minetest.set_node(right_here, {name="flowers:waterlily"..ext, param2=math.random(0,3)}) + end + end +end + +plantslib:register_generate_plant({ + surface = {"default:water_source"}, + max_count = lilies_max_count, + rarity = lilies_rarity, + min_elevation = 1, + max_elevation = 40, + near_nodes = {"default:dirt_with_grass"}, + near_nodes_size = 4, + near_nodes_vertical = 1, + near_nodes_count = 1, + plantlife_limit = -0.9, + temp_max = -0.22, + temp_min = 0.22, + }, + flowers_plus.grow_waterlily +) + +flowers_plus.grow_seaweed = function(pos) + local right_here = {x=pos.x, y=pos.y+1, z=pos.z} + minetest.set_node(right_here, {name="along_shore:seaweed_"..math.random(1,4), param2=math.random(1,3)}) +end + +plantslib:register_generate_plant({ + surface = {"default:water_source"}, + max_count = seaweed_max_count, + rarity = seaweed_rarity, + min_elevation = 1, + max_elevation = 40, + near_nodes = {"default:dirt_with_grass"}, + near_nodes_size = 4, + near_nodes_vertical = 1, + near_nodes_count = 1, + plantlife_limit = -0.9, + }, + flowers_plus.grow_seaweed +) + +-- seaweed at beaches +-- MM: not satisfied with it, but IMHO some beaches should have some algae +plantslib:register_generate_plant({ + surface = {"default:water_source"}, + max_count = seaweed_max_count, + rarity = seaweed_rarity, + min_elevation = 1, + max_elevation = 40, + near_nodes = {"default:sand"}, + near_nodes_size = 1, + near_nodes_vertical = 0, + near_nodes_count = 3, + plantlife_limit = -0.9, + temp_max = -0.64, -- MM: more or less random values, just to make sure it's not everywhere + temp_min = -0.22, -- MM: more or less random values, just to make sure it's not everywhere + }, + flowers_plus.grow_seaweed +) +plantslib:register_generate_plant({ + surface = {"default:sand"}, + max_count = seaweed_max_count*2, + rarity = seaweed_rarity/2, + min_elevation = 1, + max_elevation = 40, + near_nodes = {"default:water_source"}, + near_nodes_size = 1, + near_nodes_vertical = 0, + near_nodes_count = 3, + plantlife_limit = -0.9, + temp_max = -0.64, -- MM: more or less random values, just to make sure it's not everywhere + temp_min = -0.22, -- MM: more or less random values, just to make sure it's not everywhere + }, + flowers_plus.grow_seaweed +) +-- spawn ABM registrations + +plantslib:spawn_on_surfaces({ + spawn_delay = SPAWN_DELAY/2, + spawn_plants = { + "flowers:waterlily", + "flowers:waterlily_225", + "flowers:waterlily_45", + "flowers:waterlily_675", + "flowers:waterlily_s1", + "flowers:waterlily_s2", + "flowers:waterlily_s3", + "flowers:waterlily_s4" + }, + avoid_radius = 2.5, + spawn_chance = SPAWN_CHANCE*4, + spawn_surfaces = {"default:water_source"}, + avoid_nodes = {"group:flower", "group:flora" }, + seed_diff = flowers_seed_diff, + light_min = 9, + depth_max = 2, + random_facedir = {0,3} +}) + +plantslib:spawn_on_surfaces({ + spawn_delay = SPAWN_DELAY*2, + spawn_plants = {"flowers:seaweed"}, + spawn_chance = SPAWN_CHANCE*2, + spawn_surfaces = {"default:water_source"}, + avoid_nodes = {"group:flower", "group:flora"}, + seed_diff = flowers_seed_diff, + light_min = 4, + light_max = 10, + neighbors = {"default:dirt_with_grass"}, + facedir = 1 +}) + +plantslib:spawn_on_surfaces({ + spawn_delay = SPAWN_DELAY*2, + spawn_plants = {"flowers:seaweed"}, + spawn_chance = SPAWN_CHANCE*2, + spawn_surfaces = {"default:dirt_with_grass"}, + avoid_nodes = {"group:flower", "group:flora" }, + seed_diff = flowers_seed_diff, + light_min = 4, + light_max = 10, + neighbors = {"default:water_source"}, + ncount = 1, + facedir = 1 +}) + +plantslib:spawn_on_surfaces({ + spawn_delay = SPAWN_DELAY*2, + spawn_plants = {"flowers:seaweed"}, + spawn_chance = SPAWN_CHANCE*2, + spawn_surfaces = {"default:stone"}, + avoid_nodes = {"group:flower", "group:flora" }, + seed_diff = flowers_seed_diff, + light_min = 4, + light_max = 10, + neighbors = {"default:water_source"}, + ncount = 6, + facedir = 1 +}) + +-- crafting recipes! + +minetest.register_craftitem(":flowers:flower_pot", { + description = S("Flower Pot"), + inventory_image = "flowers_flowerpot.png", +}) + +minetest.register_craft( { + output = "flowers:flower_pot", + recipe = { + { "default:clay_brick", "", "default:clay_brick" }, + { "", "default:clay_brick", "" } + }, +}) + +-- Cotton plants are now provided by the default "farming" mod. +-- old cotton plants -> farming cotton stage 8 +-- cotton wads -> string (can be crafted into wool blocks) +-- potted cotton plants -> potted white dandelions + +minetest.register_alias("flowers:cotton_plant", "farming:cotton_8") +minetest.register_alias("flowers:flower_cotton", "farming:cotton_8") +minetest.register_alias("flowers:flower_cotton_pot", "flowers:potted_dandelion_white") +minetest.register_alias("flowers:potted_cotton_plant", "flowers:potted_dandelion_white") +minetest.register_alias("flowers:cotton", "farming:string") +minetest.register_alias("flowers:cotton_wad", "farming:string") + +print(S("[Flowers] Loaded.")) diff --git a/mods/plantlife_modpack/flowers_plus/locale/de.txt b/mods/plantlife_modpack/flowers_plus/locale/de.txt new file mode 100755 index 00000000..5195be73 --- /dev/null +++ b/mods/plantlife_modpack/flowers_plus/locale/de.txt @@ -0,0 +1,13 @@ +# Translation by Xanthin + +Waterlily = Seerose +Seaweed = Seetang +Potted Rose = Eingetopfte Rose +Potted Tulip = Eingetopfte Tulpe +Potted Yellow Dandelion = Eingetopfter Loewenzahn +Potted White Dandelion = Eingetopfte Pusteblume +Potted Blue Geranium = Eingetopfte blaue Geranie +Potted Viola = Eingetopftes Veilchen +Flower Pot = Blumentopf + +[Flowers] Loaded. = [Flowers] Geladen. diff --git a/mods/plantlife_modpack/flowers_plus/locale/template.txt b/mods/plantlife_modpack/flowers_plus/locale/template.txt new file mode 100755 index 00000000..42ac8305 --- /dev/null +++ b/mods/plantlife_modpack/flowers_plus/locale/template.txt @@ -0,0 +1,13 @@ +# Template + +Waterlily = +Seaweed = +Potted Rose = +Potted Tulip = +Potted Yellow Dandelion = +Potted White Dandelion = +Potted Blue Geranium = +Potted Viola = +Flower Pot = + +[Flowers] Loaded. = diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_flowerpot.png b/mods/plantlife_modpack/flowers_plus/textures/flowers_flowerpot.png new file mode 100755 index 00000000..f1a16675 Binary files /dev/null and b/mods/plantlife_modpack/flowers_plus/textures/flowers_flowerpot.png differ diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_bonsai.png b/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_bonsai.png new file mode 100755 index 00000000..7a04dac6 Binary files /dev/null and b/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_bonsai.png differ diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_cactus.png b/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_cactus.png new file mode 100755 index 00000000..42dd70d5 Binary files /dev/null and b/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_cactus.png differ diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_dandelion_white.png b/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_dandelion_white.png new file mode 100755 index 00000000..78f2c891 Binary files /dev/null and b/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_dandelion_white.png differ diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_dandelion_yellow.png b/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_dandelion_yellow.png new file mode 100755 index 00000000..f04c0193 Binary files /dev/null and b/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_dandelion_yellow.png differ diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_geranium.png b/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_geranium.png new file mode 100755 index 00000000..915f76be Binary files /dev/null and b/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_geranium.png differ diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_rose.png b/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_rose.png new file mode 100755 index 00000000..c55ec686 Binary files /dev/null and b/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_rose.png differ diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_tulip.png b/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_tulip.png new file mode 100755 index 00000000..d8dbfbb3 Binary files /dev/null and b/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_tulip.png differ diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_viola.png b/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_viola.png new file mode 100755 index 00000000..adeb3df1 Binary files /dev/null and b/mods/plantlife_modpack/flowers_plus/textures/flowers_potted_viola.png differ diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed.png b/mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed.png new file mode 100755 index 00000000..7c559267 Binary files /dev/null and b/mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed.png differ diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_seaweedLight.png b/mods/plantlife_modpack/flowers_plus/textures/flowers_seaweedLight.png new file mode 100755 index 00000000..51f791db Binary files /dev/null and b/mods/plantlife_modpack/flowers_plus/textures/flowers_seaweedLight.png differ diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed_2.png b/mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed_2.png new file mode 100755 index 00000000..a3195f52 Binary files /dev/null and b/mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed_2.png differ diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed_3.png b/mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed_3.png new file mode 100755 index 00000000..b791ee9d Binary files /dev/null and b/mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed_3.png differ diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed_4.png b/mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed_4.png new file mode 100755 index 00000000..2fccd04e Binary files /dev/null and b/mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed_4.png differ diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily.png b/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily.png new file mode 100755 index 00000000..a2dee8ad Binary files /dev/null and b/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily.png differ diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_22.5.png b/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_22.5.png new file mode 100755 index 00000000..3edbc1a0 Binary files /dev/null and b/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_22.5.png differ diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_45.png b/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_45.png new file mode 100755 index 00000000..5ef89f35 Binary files /dev/null and b/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_45.png differ diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_67.5.png b/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_67.5.png new file mode 100755 index 00000000..2e6ca575 Binary files /dev/null and b/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_67.5.png differ diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_1.png b/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_1.png new file mode 100755 index 00000000..1f065967 Binary files /dev/null and b/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_1.png differ diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_2.png b/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_2.png new file mode 100755 index 00000000..81796c5b Binary files /dev/null and b/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_2.png differ diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_3.png b/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_3.png new file mode 100755 index 00000000..c7bf2260 Binary files /dev/null and b/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_3.png differ diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_4.png b/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_4.png new file mode 100755 index 00000000..42155bf4 Binary files /dev/null and b/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_4.png differ diff --git a/mods/plantlife_modpack/junglegrass/init.lua b/mods/plantlife_modpack/junglegrass/init.lua new file mode 100755 index 00000000..a394d93d --- /dev/null +++ b/mods/plantlife_modpack/junglegrass/init.lua @@ -0,0 +1,3 @@ +minetest.register_alias("junglegrass:shortest", "air") +minetest.register_alias("junglegrass:short", "air") +minetest.register_alias("junglegrass:medium", "air") diff --git a/mods/plantlife_modpack/modpack.txt b/mods/plantlife_modpack/modpack.txt new file mode 100755 index 00000000..e69de29b diff --git a/mods/plantlife_modpack/molehills/depends.txt b/mods/plantlife_modpack/molehills/depends.txt new file mode 100755 index 00000000..bde0bdf5 --- /dev/null +++ b/mods/plantlife_modpack/molehills/depends.txt @@ -0,0 +1,2 @@ +default +plants_lib \ No newline at end of file diff --git a/mods/plantlife_modpack/molehills/init.lua b/mods/plantlife_modpack/molehills/init.lua new file mode 100755 index 00000000..28e157af --- /dev/null +++ b/mods/plantlife_modpack/molehills/init.lua @@ -0,0 +1,110 @@ +----------------------------------------------------------------------------------------------- +local title = "Mole Hills" +local version = "0.0.3" +local mname = "molehills" +----------------------------------------------------------------------------------------------- +-- Idea by Sokomine +-- Code & textures by Mossmanikin + +abstract_molehills = {} + +dofile(minetest.get_modpath("molehills").."/molehills_settings.txt") + +----------------------------------------------------------------------------------------------- +-- NoDe +----------------------------------------------------------------------------------------------- +minetest.register_node("molehills:molehill",{ + drawtype = "nodebox", + description = "Mole Hill", + inventory_image = "molehills_side.png", + tiles = { + "molehills_dirt.png",--"molehill_top.png", + "molehills_dirt.png",--"molehill_top.png", + "molehills_dirt.png"--"molehill_side.png" + }, + paramtype = "light", + node_box = { + type = "fixed", + fixed = { +-- { left, bottom, front, right, top, back} + {-2/16, -3/16, -1/16, 2/16, -2/16, 1/16}, + {-1/16, -3/16, -2/16, 1/16, -2/16, 2/16}, +-- { left, bottom, front, right, top, back} + {-4/16, -4/16, -2/16, 4/16, -3/16, 2/16}, + {-2/16, -4/16, -4/16, 2/16, -3/16, 4/16}, + {-3/16, -4/16, -3/16, 3/16, -3/16, 3/16}, +-- { left, bottom, front, right, top, back} + {-5/16, -5/16, -2/16, 5/16, -4/16, 2/16}, + {-2/16, -5/16, -5/16, 2/16, -4/16, 5/16}, + {-4/16, -5/16, -4/16, 4/16, -4/16, 4/16}, +-- { left, bottom, front, right, top, back} + {-6/16, -6/16, -2/16, 6/16, -5/16, 2/16}, + {-2/16, -6/16, -6/16, 2/16, -5/16, 6/16}, + {-5/16, -6/16, -4/16, 5/16, -5/16, 4/16}, + {-4/16, -6/16, -5/16, 4/16, -5/16, 5/16}, +-- { left, bottom, front, right, top, back} + {-7/16, -7/16, -3/16, 7/16, -6/16, 3/16}, + {-3/16, -7/16, -7/16, 3/16, -6/16, 7/16}, + {-6/16, -7/16, -4/16, 6/16, -6/16, 4/16}, + {-4/16, -7/16, -6/16, 4/16, -6/16, 6/16}, + {-5/16, -7/16, -5/16, 5/16, -6/16, 5/16}, +-- { left, bottom, front, right, top, back} +--[[b]] {-1/2 , -1/2 , -3/16, 1/2 , -7/16, 3/16}, -- left to right +--[[o]] {-3/16, -1/2 , -1/2 , 3/16, -7/16, 1/2 }, -- front to back +--[[t]] {-7/16, -1/2 , -5/16, 7/16, -7/16, 5/16}, +--[[t]] {-5/16, -1/2 , -7/16, 5/16, -7/16, 7/16}, +--[[m]] {-6/16, -1/2 , -6/16, 6/16, -7/16, 6/16}, -- mid + }, + }, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, 2/16, 1/2}, + }, + groups = {crumbly=3}, + sounds = default.node_sound_dirt_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- CRaFTiNG +----------------------------------------------------------------------------------------------- +minetest.register_craft({ -- molehills --> dirt + output = "default:dirt", + recipe = { + {"molehills:molehill","molehills:molehill"}, + {"molehills:molehill","molehills:molehill"}, + } +}) + +----------------------------------------------------------------------------------------------- +-- GeNeRaTiNG +----------------------------------------------------------------------------------------------- +abstract_molehills.place_molehill = function(pos) + local right_here = {x=pos.x , y=pos.y+1, z=pos.z } + if minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z }).name ~= "air" + and minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z }).name ~= "air" + and minetest.get_node({x=pos.x , y=pos.y, z=pos.z+1}).name ~= "air" + and minetest.get_node({x=pos.x , y=pos.y, z=pos.z-1}).name ~= "air" + and minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z+1}).name ~= "air" + and minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z-1}).name ~= "air" + and minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z+1}).name ~= "air" + and minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z-1}).name ~= "air" then + minetest.set_node(right_here, {name="molehills:molehill"}) + end +end + +plantslib:register_generate_plant({ + surface = {"default:dirt_with_grass"}, + max_count = Molehills_Max_Count, + rarity = Molehills_Rarity, + min_elevation = 1, + max_elevation = 40, + avoid_nodes = {"group:tree","group:liquid","group:stone","group:falling_node"--[[,"air"]]}, + avoid_radius = 4, + plantlife_limit = -0.3, + }, + abstract_molehills.place_molehill +) + +----------------------------------------------------------------------------------------------- +print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") +----------------------------------------------------------------------------------------------- diff --git a/mods/plantlife_modpack/molehills/molehills_settings.txt b/mods/plantlife_modpack/molehills/molehills_settings.txt new file mode 100755 index 00000000..20795740 --- /dev/null +++ b/mods/plantlife_modpack/molehills/molehills_settings.txt @@ -0,0 +1,6 @@ +-- Settings for generation of stuff (at map-generation time) + +Molehills_Max_Count = 320 -- absolute maximum number in an area of 80x80x80 nodes + +Molehills_Rarity = 87 -- larger values make molehills more rare (100 means chance of 0 %) + diff --git a/mods/plantlife_modpack/molehills/textures/molehills_dirt.png b/mods/plantlife_modpack/molehills/textures/molehills_dirt.png new file mode 100755 index 00000000..79ffa855 Binary files /dev/null and b/mods/plantlife_modpack/molehills/textures/molehills_dirt.png differ diff --git a/mods/plantlife_modpack/molehills/textures/molehills_side.png b/mods/plantlife_modpack/molehills/textures/molehills_side.png new file mode 100755 index 00000000..c82e72a9 Binary files /dev/null and b/mods/plantlife_modpack/molehills/textures/molehills_side.png differ diff --git a/mods/plantlife_modpack/molehills/textures/old & unused/molehill_side.png b/mods/plantlife_modpack/molehills/textures/old & unused/molehill_side.png new file mode 100755 index 00000000..dd7fed9f Binary files /dev/null and b/mods/plantlife_modpack/molehills/textures/old & unused/molehill_side.png differ diff --git a/mods/plantlife_modpack/molehills/textures/old & unused/molehill_top.png b/mods/plantlife_modpack/molehills/textures/old & unused/molehill_top.png new file mode 100755 index 00000000..fa6a5dd0 Binary files /dev/null and b/mods/plantlife_modpack/molehills/textures/old & unused/molehill_top.png differ diff --git a/mods/plantlife_modpack/mushroom/compat.lua b/mods/plantlife_modpack/mushroom/compat.lua new file mode 100755 index 00000000..c7a10092 --- /dev/null +++ b/mods/plantlife_modpack/mushroom/compat.lua @@ -0,0 +1,41 @@ + +-- Redefine grass and dirt nodes + +minetest.override_item("default:dirt", { + drop = { + max_items = 2, + items = { + { + items = {"mushroom:spore1"}, + rarity = 40, + }, + { + items = {"mushroom:spore2"}, + rarity = 40, + }, + { + items = {"default:dirt"}, + } + } + } +}) + +minetest.override_item("default:dirt_with_grass", { + drop = { + max_items = 2, + items = { + { + items = {"mushroom:spore1"}, + rarity = 40, + }, + { + items = {"mushroom:spore2"}, + rarity = 40, + }, + { + items = {"default:dirt"}, + } + } + } +}) + diff --git a/mods/plantlife_modpack/mushroom/crafting.lua b/mods/plantlife_modpack/mushroom/crafting.lua new file mode 100755 index 00000000..b05762b4 --- /dev/null +++ b/mods/plantlife_modpack/mushroom/crafting.lua @@ -0,0 +1,91 @@ +-- craft items + +minetest.register_craftitem("mushroom:spore1",{ + description = "Unidentified Mushroom Spore", + inventory_image = "mushroom_spore.png", + wield_image = "mushroom_spore.png", +}) + +minetest.register_craftitem("mushroom:spore2",{ + description = "Unidentified Mushroom Spore", + inventory_image = "mushroom_spore.png", + wield_image = "mushroom_spore.png", +}) + +minetest.register_craftitem("mushroom:identifier",{ + description = "Mushroom Spore Identifier/Spore Extractor", + inventory_image = "mushroom_identifier.png", + wield_image = "mushroom_identifier.png", +}) + +minetest.register_craftitem("mushroom:brown_essence",{ + description = "Healthy Brown Mushroom Essence", + inventory_image = "mushroom_essence.png", + wield_image = "mushroom_essence.png", + on_use = minetest.item_eat(10), +}) + +minetest.register_craftitem("mushroom:poison",{ + description = "Red Mushroom Poison", + inventory_image = "mushroom_poison.png", + wield_image = "mushroom_poison.png", + on_use = minetest.item_eat(-10), +}) + +-- recipes + +minetest.register_craft( { + output = "mushroom:identifier", + recipe = { + { "", "default:torch", "" }, + { "default:steel_ingot", "default:mese_crystal_fragment", "default:steel_ingot" }, + } +}) + +minetest.register_craft( { + type = "shapeless", + output = "mushroom:brown_essence", + recipe = { "mushroom:brown" , "vessels:glass_bottle" }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "mushroom:poison", + recipe = { "mushroom:red" , "vessels:glass_bottle" }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "mushroom:spore_brown", + recipe = { "mushroom:identifier" , "mushroom:spore1" }, + replacements = { + { 'mushroom:identifier', 'mushroom:identifier' } + } +}) + +minetest.register_craft( { + type = "shapeless", + output = "mushroom:spore_red", + recipe = { "mushroom:identifier" , "mushroom:spore2" }, + replacements = { + { 'mushroom:identifier', 'mushroom:identifier' } + } +}) + +minetest.register_craft( { + type = "shapeless", + output = "mushroom:spore_red 2", + recipe = { "mushroom:identifier" , "mushroom:red" }, + replacements = { + { 'mushroom:identifier', 'mushroom:identifier' } + } +}) + +minetest.register_craft( { + type = "shapeless", + output = "mushroom:spore_brown 2", + recipe = { "mushroom:identifier" , "mushroom:brown" }, + replacements = { + { 'mushroom:identifier', 'mushroom:identifier' } + } +}) diff --git a/mods/plantlife_modpack/mushroom/depends.txt b/mods/plantlife_modpack/mushroom/depends.txt new file mode 100755 index 00000000..0a3c3f80 --- /dev/null +++ b/mods/plantlife_modpack/mushroom/depends.txt @@ -0,0 +1,3 @@ +default +vessels? +woodsoils? diff --git a/mods/plantlife_modpack/mushroom/init.lua b/mods/plantlife_modpack/mushroom/init.lua new file mode 100755 index 00000000..c8952914 --- /dev/null +++ b/mods/plantlife_modpack/mushroom/init.lua @@ -0,0 +1,262 @@ + +-- Mushroom mod by DanDuncombe and VanessaE +-- +-- License: CC-By-SA for texures derived from Minetest defaults, +-- WTFPL for all code and everything else. + +mushroom = {} + +minetest.register_node("mushroom:brown",{ + description = "Brown Mushroom", + drawtype = "plantlike", + sunlight_propagates = true, + tiles = {"mushroom_brown.png"}, + inventory_image = "mushroom_brown.png", + wield_image = "mushroom_brown.png", + groups = {oddly_breakable_by_hand=3,attached_node=1}, + paramtype = "light", + walkable = false, + on_use = minetest.item_eat(5), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3} + }, + drop = "mushroom:brown", +}) + +minetest.register_node("mushroom:red",{ + description = "Red Mushroom", + drawtype = "plantlike", + sunlight_propagates = true, + tiles = {"mushroom_red.png"}, + inventory_image = "mushroom_red.png", + wield_image = "mushroom_red.png", + groups = {oddly_breakable_by_hand=3,attached_node=1}, + paramtype = "light", + walkable = false, + on_use = minetest.item_eat(-5), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3} + }, + drop = "mushroom:red", +}) + +minetest.register_node("mushroom:spore_brown",{ + description = "Brown Mushroom Spore", + drawtype = "raillike", + paramtype = "light", + tiles = {"mushroom_spore_brown.png"}, + sunlight_propagates = true, + walkable = false, + groups = {oddly_breakable_by_hand=3,attached_node=1}, + inventory_image = "mushroom_spore_brown.png", + wield_image = "mushroom_spore_brown.png", + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5} + }, +}) + +minetest.register_node("mushroom:spore_red",{ + description = "Red Mushroom Spore", + drawtype = "raillike", + paramtype = "light", + tiles = {"mushroom_spore_red.png"}, + sunlight_propagates = true, + walkable = false, + groups = {oddly_breakable_by_hand=3,attached_node=1}, + inventory_image = "mushroom_spore_red.png", + wield_image = "mushroom_spore_red.png", + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5} + }, +}) + +--Natural Mushrooms + +minetest.register_node("mushroom:brown_natural",{ + description = "Brown Mushroom (Naturally Spawned)", + drawtype = "plantlike", + sunlight_propagates = true, + tiles = {"mushroom_brown.png"}, + inventory_image = "mushroom_brown.png", + wield_image = "mushroom_brown.png", + groups = {oddly_breakable_by_hand=3}, + paramtype = "light", + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3} + }, + drop = "mushroom:brown", +}) + +minetest.register_node("mushroom:red_natural",{ + description = "Red Mushroom (Naturally Spawned)", + drawtype = "plantlike", + sunlight_propagates = true, + tiles = {"mushroom_red.png"}, + inventory_image = "mushroom_red.png", + wield_image = "mushroom_red.png", + groups = {oddly_breakable_by_hand=3}, + paramtype = "light", + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3} + }, + drop = "mushroom:red", +}) + +-- Spore Growing ABMs + +minetest.register_abm({ + nodenames = {"mushroom:spore_brown"}, + neighbors = {"air"}, + interval = 120, + chance = 4, + action = function(pos, node) + local soil = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z}) + if (soil.name == "farming:soil_wet" or string.find(soil.name, "homedecor:flower_pot_")) + and minetest.get_node_light(pos, nil) < 8 then + minetest.add_node({x=pos.x,y=pos.y,z=pos.z}, {name="mushroom:brown"}) + end + end +}) + +minetest.register_abm({ + nodenames = {"mushroom:spore_red"}, + neighbors = {"air"}, + interval = 120, + chance = 4, + action = function(pos, node) + local soil = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z}) + if (soil.name == "farming:soil_wet" or string.find(soil.name, "homedecor:flower_pot_")) + and minetest.get_node_light(pos, nil) < 8 then + minetest.add_node({x=pos.x,y=pos.y,z=pos.z}, {name="mushroom:red"}) + end + end +}) + +-- list of trees that mushrooms can grow next to + +local trees_list = { + "default:tree", + "default:jungletree", + "moretrees:apple_tree_trunk", + "moretrees:beech_trunk", + "moretrees:birch_trunk", + "moretrees:fir_trunk", + "moretrees:oak_trunk", + "moretrees:pine_trunk", + "moretrees:rubber_tree_trunk", + "moretrees:rubber_tree_trunk_empty", + "moretrees:sequoia_trunk", + "moretrees:spruce_trunk", + "moretrees:willow_trunk", +} + +-- Natural Spawning ABM + +minetest.register_abm({ + nodenames = { + "default:dirt_with_grass", + "default:dirt", + "woodsoils:dirt_with_leaves_1", + "woodsoils:dirt_with_leaves_2", + "woodsoils:grass_with_leaves_1", + "woodsoils:grass_with_leaves_2", + "farming:soil_wet" + }, + neighbors = {"air"}, + interval = 300, + chance = 100, + action = function(pos, node) + local top_pos = {x=pos.x, y=pos.y+1, z=pos.z} + if minetest.get_node(top_pos).name == "air" and minetest.get_node_light(top_pos, nil) < 8 + and minetest.find_node_near(pos, 1, trees_list) + and minetest.find_node_near(pos, 3, "default:water_source") then + if math.random(0, 1) == 0 then + minetest.add_node(top_pos, {name="mushroom:brown_natural"}) + else + minetest.add_node(top_pos, {name="mushroom:red_natural"}) + end + end + end +}) + +minetest.register_abm({ + nodenames = {"default:stone"}, + neighbors = {"air"}, + interval = 300, + chance = 100, + action = function(pos, node) + local top_pos = {x=pos.x, y=pos.y+1, z=pos.z} + if minetest.get_node(top_pos).name == "air" and minetest.get_node_light(top_pos, nil) < 8 + and minetest.find_node_near(pos, 1, {"default:water_source"}) then + if math.random(0,1) == 0 then + minetest.add_node(top_pos, {name="mushroom:brown_natural"}) + else + minetest.add_node(top_pos, {name="mushroom:red_natural"}) + end + end + end +}) + +-- Spreading ABM + +minetest.register_abm({ + nodenames = { + "mushroom:brown_natural", + "mushroom:red_natural" + }, + neighbors = {"air"}, + interval = 120, + chance = 100, + action = function(pos, node) + local soil_pos = {x=pos.x, y=pos.y-1, z=pos.z} + local soil = minetest.get_node(soil_pos) + local woodsoil_str = "woodsoils:.+_with_leaves_?" + if minetest.get_node_light(pos, nil) < 8 + and minetest.find_node_near(pos, 1, trees_list) then + local spread_x = math.random(-1, 1) + local spread_z = math.random(-1, 1) + local newpos = {x=pos.x+spread_x, y=pos.y, z=pos.z+spread_z} + local newsoil = minetest.get_node({x=newpos.x, y=newpos.y-1, z=newpos.z}) + if minetest.get_node(newpos).name == "air" + and (newsoil.name == "default:dirt_with_grass" + or newsoil.name == "default:dirt" + or string.match(newsoil.name, woodsoil_str)) + and minetest.find_node_near(newpos, 3, "default:water_source") then + minetest.add_node(newpos, {name=node.name}) + end + end + end +}) + +-- Dying ABM + +minetest.register_abm({ + nodenames = { + "mushroom:brown", + "mushroom:red", + }, + neighbors = {"air"}, + interval = 120, + chance = 50, + action = function(pos, node) + local soil = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}) + if soil.name ~= "farming:soil_wet" + and not string.find(soil.name, "homedecor:flower_pot_") then + minetest.remove_node(pos) + end + end +}) + +dofile(minetest.get_modpath("mushroom").."/crafting.lua") +dofile(minetest.get_modpath("mushroom").."/compat.lua") + +print("[Mushrooms] loaded.") + diff --git a/mods/plantlife_modpack/mushroom/textures/mushroom_brown.png b/mods/plantlife_modpack/mushroom/textures/mushroom_brown.png new file mode 100755 index 00000000..c8b5bc99 Binary files /dev/null and b/mods/plantlife_modpack/mushroom/textures/mushroom_brown.png differ diff --git a/mods/plantlife_modpack/mushroom/textures/mushroom_essence.png b/mods/plantlife_modpack/mushroom/textures/mushroom_essence.png new file mode 100755 index 00000000..15f5b2dd Binary files /dev/null and b/mods/plantlife_modpack/mushroom/textures/mushroom_essence.png differ diff --git a/mods/plantlife_modpack/mushroom/textures/mushroom_identifier.png b/mods/plantlife_modpack/mushroom/textures/mushroom_identifier.png new file mode 100755 index 00000000..5d9d5c9a Binary files /dev/null and b/mods/plantlife_modpack/mushroom/textures/mushroom_identifier.png differ diff --git a/mods/plantlife_modpack/mushroom/textures/mushroom_poison.png b/mods/plantlife_modpack/mushroom/textures/mushroom_poison.png new file mode 100755 index 00000000..74891db7 Binary files /dev/null and b/mods/plantlife_modpack/mushroom/textures/mushroom_poison.png differ diff --git a/mods/plantlife_modpack/mushroom/textures/mushroom_red.png b/mods/plantlife_modpack/mushroom/textures/mushroom_red.png new file mode 100755 index 00000000..cea95f56 Binary files /dev/null and b/mods/plantlife_modpack/mushroom/textures/mushroom_red.png differ diff --git a/mods/plantlife_modpack/mushroom/textures/mushroom_spore.png b/mods/plantlife_modpack/mushroom/textures/mushroom_spore.png new file mode 100755 index 00000000..584c3f73 Binary files /dev/null and b/mods/plantlife_modpack/mushroom/textures/mushroom_spore.png differ diff --git a/mods/plantlife_modpack/mushroom/textures/mushroom_spore_brown.png b/mods/plantlife_modpack/mushroom/textures/mushroom_spore_brown.png new file mode 100755 index 00000000..22bc9d9a Binary files /dev/null and b/mods/plantlife_modpack/mushroom/textures/mushroom_spore_brown.png differ diff --git a/mods/plantlife_modpack/mushroom/textures/mushroom_spore_red.png b/mods/plantlife_modpack/mushroom/textures/mushroom_spore_red.png new file mode 100755 index 00000000..b1537ccf Binary files /dev/null and b/mods/plantlife_modpack/mushroom/textures/mushroom_spore_red.png differ diff --git a/mods/plantlife_modpack/nature_classic/blossom.lua b/mods/plantlife_modpack/nature_classic/blossom.lua new file mode 100755 index 00000000..fb1f3dd9 --- /dev/null +++ b/mods/plantlife_modpack/nature_classic/blossom.lua @@ -0,0 +1,82 @@ +-- Blossom + +local BLOSSOM_NODE = "nature:blossom" +local BLOSSOM_LEAVES = "default:leaves" +local BLOSSOM_TEXTURES = { "default_leaves.png^nature_blossom.png" } + +if minetest.get_modpath("moretrees") then + BLOSSOM_NODE = "moretrees:apple_blossoms" + BLOSSOM_LEAVES = "moretrees:apple_tree_leaves" + BLOSSOM_TEXTURES = { "moretrees_apple_tree_leaves.png^nature_blossom.png" } + minetest.register_alias("nature:blossom", "default:leaves") +end + +local BLOSSOM_CHANCE = 15 +local BLOSSOM_DELAY = 3600 + +local APPLE_CHANCE = 10 +local APPLE_SPREAD = 2 + +local function spawn_apple_under(pos) + local below = { + x = pos.x, + y = pos.y - 1, + z = pos.z, + } + if minetest.get_node(below).name == "air" then + minetest.set_node(below, { name = "default:apple" }) + end +end + +minetest.register_node(":"..BLOSSOM_NODE, { + description = "Apple blossoms", + drawtype = "allfaces_optional", + tiles = BLOSSOM_TEXTURES, + paramtype = "light", + groups = { snappy = 3, leafdecay = 3, flammable = 2 }, + sounds = default.node_sound_leaves_defaults(), + waving = 1 +}) + +minetest.register_craft({ + type = "fuel", + recipe = BLOSSOM_NODE, + burntime = 2, +}) + +-- Blossoming +minetest.register_abm({ + nodenames = { BLOSSOM_LEAVES }, + interval = BLOSSOM_DELAY, + chance = BLOSSOM_CHANCE, + + action = function(pos, node, active_object_count, active_object_count_wider) + if nature:is_near_water(pos) then + nature:grow_node(pos, BLOSSOM_NODE) + end + end +}) + +-- Removing blossom +minetest.register_abm({ + nodenames = { BLOSSOM_NODE }, + interval = BLOSSOM_DELAY, + chance = BLOSSOM_CHANCE, + + action = function(pos, node, active_object_count, active_object_count_wider) + nature:grow_node(pos, BLOSSOM_LEAVES) + end +}) + +-- Spawning apples +minetest.register_abm({ + nodenames = { BLOSSOM_NODE }, + interval = BLOSSOM_DELAY, + chance = APPLE_CHANCE, + + action = function(pos, node, active_object_count, active_object_count_wider) + if not minetest.find_node_near(pos, APPLE_SPREAD, { "default:apple" }) then + spawn_apple_under(pos) + end + end +}) diff --git a/mods/plantlife_modpack/nature_classic/config.lua b/mods/plantlife_modpack/nature_classic/config.lua new file mode 100755 index 00000000..2862bc72 --- /dev/null +++ b/mods/plantlife_modpack/nature_classic/config.lua @@ -0,0 +1,6 @@ +-- Set on which distance from water can the tree still grow. +-- Grows anywhere if set to -1. +DISTANCE_FROM_WATER = 20 + +-- Minimum light level needed to grow. Default is 8, which means daylight. +MINIMUM_GROWTH_LIGHT = 8 diff --git a/mods/plantlife_modpack/nature_classic/depends.txt b/mods/plantlife_modpack/nature_classic/depends.txt new file mode 100755 index 00000000..12466849 --- /dev/null +++ b/mods/plantlife_modpack/nature_classic/depends.txt @@ -0,0 +1,2 @@ +default +moretrees? diff --git a/mods/plantlife_modpack/nature_classic/global_function.lua b/mods/plantlife_modpack/nature_classic/global_function.lua new file mode 100755 index 00000000..659e29d5 --- /dev/null +++ b/mods/plantlife_modpack/nature_classic/global_function.lua @@ -0,0 +1,43 @@ +local NODE_YOUNG = "young" + +nature = {} + +local function set_young_node(pos) + local meta = minetest.get_meta(pos) + + meta:set_string(NODE_YOUNG, "true") + minetest.after(5, + function(pos) + local meta = minetest.get_meta(pos) + meta:set_string(NODE_YOUNG, "false") + end, + pos) +end + +local function is_not_young(pos) + local meta = minetest.get_meta(pos) + + local young = meta:get_string(NODE_YOUNG) + return young ~= "true" +end + +function nature:grow_node(pos, nodename) + if pos ~= nil then + local light_enough = minetest.get_node_light(pos, nil) + >= MINIMUM_GROWTH_LIGHT + + if is_not_young(pos) and light_enough then + minetest.remove_node(pos) + minetest.set_node(pos, { name = nodename }) + set_young_node(pos) + + minetest.log("info", nodename .. " has grown at " .. pos.x .. "," + .. pos.y .. "," .. pos.z) + end + end +end + +function nature:is_near_water(pos) + return minetest.find_node_near(pos, DISTANCE_FROM_WATER, + { "default:water_source" }) ~= nil or DISTANCE_FROM_WATER == -1 +end diff --git a/mods/plantlife_modpack/nature_classic/init.lua b/mods/plantlife_modpack/nature_classic/init.lua new file mode 100755 index 00000000..6bb4eb05 --- /dev/null +++ b/mods/plantlife_modpack/nature_classic/init.lua @@ -0,0 +1,12 @@ +-- Nature Classic mod +-- Originally by neko259 + +-- Nature is slowly capturing the world! + +local current_mod_name = minetest.get_current_modname() + +dofile(minetest.get_modpath(current_mod_name) .. "/config.lua") +dofile(minetest.get_modpath(current_mod_name) .. "/global_function.lua") +dofile(minetest.get_modpath(current_mod_name) .. "/blossom.lua") + +minetest.log("info", "[Nature Classic] loaded!") diff --git a/mods/plantlife_modpack/nature_classic/textures/nature_blossom.png b/mods/plantlife_modpack/nature_classic/textures/nature_blossom.png new file mode 100755 index 00000000..a5bb2d3b Binary files /dev/null and b/mods/plantlife_modpack/nature_classic/textures/nature_blossom.png differ diff --git a/mods/plantlife_modpack/plants_lib/depends.txt b/mods/plantlife_modpack/plants_lib/depends.txt new file mode 100755 index 00000000..4ad96d51 --- /dev/null +++ b/mods/plantlife_modpack/plants_lib/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/plantlife_modpack/plants_lib/init.lua b/mods/plantlife_modpack/plants_lib/init.lua new file mode 100755 index 00000000..f38f1852 --- /dev/null +++ b/mods/plantlife_modpack/plants_lib/init.lua @@ -0,0 +1,720 @@ +-- Plantlife library mod by Vanessa Ezekowitz +-- +-- License: WTFPL +-- +-- I got the temperature map idea from "hmmmm", values used for it came from +-- Splizard's snow mod. +-- + +-- Various settings - most of these probably won't need to be changed + +plantslib = {} + +plantslib.modpath = minetest.get_modpath("plants_lib") +plantslib.intllib_modpath = minetest.get_modpath("intllib") + +plantslib.total_no_air_check_calls = 0 + +local S +if plantslib.intllib_modpath then + dofile(plantslib.intllib_modpath.."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) +else + S = function ( s ) return s end +end + +local DEBUG = false --... except if you want to spam the console with debugging info :-) + +function plantslib:dbg(msg) + if DEBUG then + print("[Plantlife] "..msg) + minetest.log("verbose", "[Plantlife] "..msg) + end +end + +plantslib.plantlife_seed_diff = 329 -- needs to be global so other mods can see it + +local perlin_octaves = 3 +local perlin_persistence = 0.6 +local perlin_scale = 100 + +local temperature_seeddiff = 112 +local temperature_octaves = 3 +local temperature_persistence = 0.5 +local temperature_scale = 150 + +local humidity_seeddiff = 9130 +local humidity_octaves = 3 +local humidity_persistence = 0.5 +local humidity_scale = 250 + +local time_scale = 1 +local time_speed = tonumber(minetest.setting_get("time_speed")) + +if time_speed and time_speed > 0 then + time_scale = 72 / time_speed +end + +--PerlinNoise(seed, octaves, persistence, scale) + +plantslib.perlin_temperature = PerlinNoise(temperature_seeddiff, temperature_octaves, temperature_persistence, temperature_scale) +plantslib.perlin_humidity = PerlinNoise(humidity_seeddiff, humidity_octaves, humidity_persistence, humidity_scale) + +-- Local functions + +function plantslib:is_node_loaded(node_pos) + local n = minetest.get_node_or_nil(node_pos) + if (not n) or (n.name == "ignore") then + return false + end + return true +end + +function plantslib:set_defaults(biome) + biome.seed_diff = biome.seed_diff or 0 + biome.min_elevation = biome.min_elevation or -31000 + biome.max_elevation = biome.max_elevation or 31000 + biome.temp_min = biome.temp_min or 1 + biome.temp_max = biome.temp_max or -1 + biome.humidity_min = biome.humidity_min or 1 + biome.humidity_max = biome.humidity_max or -1 + biome.plantlife_limit = biome.plantlife_limit or 0.1 + biome.near_nodes_vertical = biome.near_nodes_vertical or 1 + +-- specific to on-generate + + biome.neighbors = biome.neighbors or biome.surface + biome.near_nodes_size = biome.near_nodes_size or 0 + biome.near_nodes_count = biome.near_nodes_count or 1 + biome.rarity = biome.rarity or 50 + biome.max_count = biome.max_count or 5 + if biome.check_air ~= false then biome.check_air = true end + +-- specific to abm spawner + biome.seed_diff = biome.seed_diff or 0 + biome.light_min = biome.light_min or 0 + biome.light_max = biome.light_max or 15 + biome.depth_max = biome.depth_max or 1 + biome.facedir = biome.facedir or 0 +end + +plantslib.surfaces_list = {} +plantslib.actions_list = {} + +plantslib.surfaces_list_noaircheck = {} +plantslib.actions_list_noaircheck = {} + +local function search_table(t, s) + for i = 1, #t do + if t[i] == s then return true end + end + return false +end + +-- register the list of surfaces to spawn stuff on, filtering out all duplicates. +-- separate the items by air-checking or non-air-checking map eval methods + +function plantslib:register_generate_plant(biomedef, nodes_or_function_or_model) + + -- if calling code passes an undefined node for a surface or + -- as a node to be spawned, don't register an action for it. + + if type(nodes_or_function_or_model) == "string" + and string.find(nodes_or_function_or_model, ":") + and not minetest.registered_nodes[nodes_or_function_or_model] then + plantslib:dbg("Warning: Ignored registration for undefined spawn node: "..dump(nodes_or_function_or_model)) + return + end + + if type(nodes_or_function_or_model) == "string" + and not string.find(nodes_or_function_or_model, ":") then + plantslib:dbg("Warning: Registered function call using deprecated string method: "..dump(nodes_or_function_or_model)) + end + + if biomedef.check_air == false then + plantslib:dbg("Register no-air-check mapgen hook: "..dump(nodes_or_function_or_model)) + plantslib.actions_list_noaircheck[#plantslib.actions_list_noaircheck + 1] = { biomedef, nodes_or_function_or_model } + local s = biomedef.surface + if type(s) == "string" then + if s and minetest.registered_nodes[s] then + if not search_table(plantslib.surfaces_list_noaircheck, s) then + plantslib.surfaces_list_noaircheck[#plantslib.surfaces_list_noaircheck + 1] = s + end + else + plantslib:dbg("Warning: Ignored no-air-check registration for undefined surface node: "..dump(s)) + end + else + for i = 1, #biomedef.surface do + local s = biomedef.surface[i] + if s and minetest.registered_nodes[s] then + if not search_table(plantslib.surfaces_list_noaircheck, s) then + plantslib.surfaces_list_noaircheck[#plantslib.surfaces_list_noaircheck + 1] = s + end + else + plantslib:dbg("Warning: Ignored no-air-check registration for undefined surface node: "..dump(s)) + end + end + end + else + plantslib:dbg("Register with-air-checking mapgen hook: "..dump(nodes_or_function_or_model)) + plantslib.actions_list[#plantslib.actions_list + 1] = { biomedef, nodes_or_function_or_model } + local s = biomedef.surface + if type(s) == "string" then + if s and minetest.registered_nodes[s] then + if not search_table(plantslib.surfaces_list, s) then + plantslib.surfaces_list[#plantslib.surfaces_list + 1] = s + end + else + plantslib:dbg("Warning: Ignored with-air-checking registration for undefined surface node: "..dump(s)) + end + else + for i = 1, #biomedef.surface do + local s = biomedef.surface[i] + if s and minetest.registered_nodes[s] then + if not search_table(plantslib.surfaces_list, s) then + plantslib.surfaces_list[#plantslib.surfaces_list + 1] = s + end + else + plantslib:dbg("Warning: Ignored with-air-checking registration for undefined surface node: "..dump(s)) + end + end + end + end +end + +-- Primary mapgen spawner, for mods that can work with air checking enabled on +-- a surface during the initial map read stage. + +function plantslib:generate_block_with_air_checking(minp, maxp, blockseed) + return function(minp, maxp, blockseed) + + -- use the block hash as a unique key into the surface_nodes + -- table, so that we can write the table thread-safely. + + local blockhash = minetest.hash_node_position(minp) + local search_area = minetest.find_nodes_in_area(minp, maxp, plantslib.surfaces_list) + + -- search the generated block for surfaces + + local surface_nodes = {} + surface_nodes.blockhash = {} + + for i = 1, #search_area do + local pos = search_area[i] + local p_top = { x=pos.x, y=pos.y+1, z=pos.z } + if minetest.get_node(p_top).name == "air" then + surface_nodes.blockhash[#surface_nodes.blockhash + 1] = pos + end + end + + for action = 1, #plantslib.actions_list do + local biome = plantslib.actions_list[action][1] + local nodes_or_function_or_model = plantslib.actions_list[action][2] + + plantslib:set_defaults(biome) + + -- filter stage 1 - find nodes from the supplied surfaces that are within the current biome. + + local in_biome_nodes = {} + local perlin_fertile_area = minetest.get_perlin(biome.seed_diff, perlin_octaves, perlin_persistence, perlin_scale) + + for i = 1, #surface_nodes.blockhash do + local pos = surface_nodes.blockhash[i] + local p_top = { x = pos.x, y = pos.y + 1, z = pos.z } + local noise1 = perlin_fertile_area:get2d({x=pos.x, y=pos.z}) + local noise2 = plantslib.perlin_temperature:get2d({x=pos.x, y=pos.z}) + local noise3 = plantslib.perlin_humidity:get2d({x=pos.x+150, y=pos.z+50}) + local biome_surfaces_string = dump(biome.surface) + if ((not biome.depth and string.find(biome_surfaces_string, minetest.get_node(pos).name)) or (biome.depth and not string.find(biome_surfaces_string, minetest.get_node({ x = pos.x, y = pos.y-biome.depth-1, z = pos.z }).name))) + and minetest.get_node(p_top).name == "air" + and pos.y >= biome.min_elevation + and pos.y <= biome.max_elevation + and noise1 > biome.plantlife_limit + and noise2 <= biome.temp_min + and noise2 >= biome.temp_max + and noise3 <= biome.humidity_min + and noise3 >= biome.humidity_max + and (not biome.ncount or #(minetest.find_nodes_in_area({x=pos.x-1, y=pos.y, z=pos.z-1}, {x=pos.x+1, y=pos.y, z=pos.z+1}, biome.neighbors)) > biome.ncount) + and (not biome.near_nodes or #(minetest.find_nodes_in_area({x=pos.x-biome.near_nodes_size, y=pos.y-biome.near_nodes_vertical, z=pos.z-biome.near_nodes_size}, {x=pos.x+biome.near_nodes_size, y=pos.y+biome.near_nodes_vertical, z=pos.z+biome.near_nodes_size}, biome.near_nodes)) >= biome.near_nodes_count) + and math.random(1,100) > biome.rarity + and (not biome.below_nodes or string.find(dump(biome.below_nodes), minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name) ) + then + in_biome_nodes[#in_biome_nodes + 1] = pos + end + end + + -- filter stage 2 - find places within that biome area to place the plants. + + local num_in_biome_nodes = #in_biome_nodes + + if num_in_biome_nodes > 0 then + for i = 1, math.min(biome.max_count, num_in_biome_nodes) do + local tries = 0 + local spawned = false + while tries < 2 and not spawned do + local pos = in_biome_nodes[math.random(1, num_in_biome_nodes)] + if biome.spawn_replace_node then + pos.y = pos.y-1 + end + local p_top = { x = pos.x, y = pos.y + 1, z = pos.z } + + if not (biome.avoid_nodes and biome.avoid_radius and minetest.find_node_near(p_top, biome.avoid_radius + math.random(-1.5,2), biome.avoid_nodes)) then + if biome.delete_above then + minetest.remove_node(p_top) + minetest.remove_node({x=p_top.x, y=p_top.y+1, z=p_top.z}) + end + + if biome.delete_above_surround then + minetest.remove_node({x=p_top.x-1, y=p_top.y, z=p_top.z}) + minetest.remove_node({x=p_top.x+1, y=p_top.y, z=p_top.z}) + minetest.remove_node({x=p_top.x, y=p_top.y, z=p_top.z-1}) + minetest.remove_node({x=p_top.x, y=p_top.y, z=p_top.z+1}) + + minetest.remove_node({x=p_top.x-1, y=p_top.y+1, z=p_top.z}) + minetest.remove_node({x=p_top.x+1, y=p_top.y+1, z=p_top.z}) + minetest.remove_node({x=p_top.x, y=p_top.y+1, z=p_top.z-1}) + minetest.remove_node({x=p_top.x, y=p_top.y+1, z=p_top.z+1}) + end + + if biome.spawn_replace_node then + minetest.remove_node(pos) + end + + local objtype = type(nodes_or_function_or_model) + + if objtype == "table" then + if nodes_or_function_or_model.axiom then + plantslib:generate_tree(pos, nodes_or_function_or_model) + spawned = true + else + local fdir = nil + if biome.random_facedir then + fdir = math.random(biome.random_facedir[1], biome.random_facedir[2]) + end + minetest.set_node(p_top, { name = nodes_or_function_or_model[math.random(#nodes_or_function_or_model)], param2 = fdir }) + spawned = true + end + elseif objtype == "string" and + minetest.registered_nodes[nodes_or_function_or_model] then + local fdir = nil + if biome.random_facedir then + fdir = math.random(biome.random_facedir[1], biome.random_facedir[2]) + end + minetest.set_node(p_top, { name = nodes_or_function_or_model, param2 = fdir }) + spawned = true + elseif objtype == "function" then + nodes_or_function_or_model(pos) + spawned = true + elseif objtype == "string" and pcall(loadstring(("return %s(...)"): + format(nodes_or_function_or_model)),pos) then + spawned = true + else + plantslib:dbg("Warning: Ignored invalid definition for object "..dump(nodes_or_function_or_model).." that was pointed at {"..dump(pos).."}") + end + else + tries = tries + 1 + end + end + end + end + end + end +end + +-- Separate copy of the mapgen spawner, for mods that require disabling of +-- checking for air during the initial map read stage. + +function plantslib:generate_block_no_air_check(minp, maxp, blockseed) + return function(minp, maxp, blockseed) + + -- use the block hash as a unique key into the surface_nodes + -- table, so that we can write the table thread-safely. + + local blockhash = minetest.hash_node_position(minp) + + -- read the generated block into the block cache, filtered for "surfaces" + + local surface_nodes = {} + surface_nodes.blockhash = minetest.find_nodes_in_area(minp, maxp, plantslib.surfaces_list_noaircheck) + + for action = 1, #plantslib.actions_list_noaircheck do + local biome = plantslib.actions_list_noaircheck[action][1] + local nodes_or_function_or_model = plantslib.actions_list_noaircheck[action][2] + + plantslib:set_defaults(biome) + + -- filter stage 1 - find nodes from the supplied surfaces that are within the current biome. + + local in_biome_nodes = {} + local perlin_fertile_area = minetest.get_perlin(biome.seed_diff, perlin_octaves, perlin_persistence, perlin_scale) + + for i = 1, #surface_nodes.blockhash do + local pos = surface_nodes.blockhash[i] + local p_top = { x = pos.x, y = pos.y + 1, z = pos.z } + local noise1 = perlin_fertile_area:get2d({x=pos.x, y=pos.z}) + local noise2 = plantslib.perlin_temperature:get2d({x=pos.x, y=pos.z}) + local noise3 = plantslib.perlin_humidity:get2d({x=pos.x+150, y=pos.z+50}) + local biome_surfaces_string = dump(biome.surface) + if ((not biome.depth and string.find(biome_surfaces_string, minetest.get_node(pos).name)) or (biome.depth and not string.find(biome_surfaces_string, minetest.get_node({ x = pos.x, y = pos.y-biome.depth-1, z = pos.z }).name))) + and pos.y >= biome.min_elevation + and pos.y <= biome.max_elevation + and noise1 > biome.plantlife_limit + and noise2 <= biome.temp_min + and noise2 >= biome.temp_max + and noise3 <= biome.humidity_min + and noise3 >= biome.humidity_max + and (not biome.ncount or #(minetest.find_nodes_in_area({x=pos.x-1, y=pos.y, z=pos.z-1}, {x=pos.x+1, y=pos.y, z=pos.z+1}, biome.neighbors)) > biome.ncount) + and (not biome.near_nodes or #(minetest.find_nodes_in_area({x=pos.x-biome.near_nodes_size, y=pos.y-biome.near_nodes_vertical, z=pos.z-biome.near_nodes_size}, {x=pos.x+biome.near_nodes_size, y=pos.y+biome.near_nodes_vertical, z=pos.z+biome.near_nodes_size}, biome.near_nodes)) >= biome.near_nodes_count) + and math.random(1,100) > biome.rarity + and (not biome.below_nodes or string.find(dump(biome.below_nodes), minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name) ) + then + in_biome_nodes[#in_biome_nodes + 1] = pos + end + end + + -- filter stage 2 - find places within that biome area to place the plants. + + local num_in_biome_nodes = #in_biome_nodes + + if num_in_biome_nodes > 0 then + for i = 1, math.min(biome.max_count, num_in_biome_nodes) do + local tries = 0 + local spawned = false + while tries < 2 and not spawned do + local pos = in_biome_nodes[math.random(1, num_in_biome_nodes)] + if biome.spawn_replace_node then + pos.y = pos.y-1 + end + local p_top = { x = pos.x, y = pos.y + 1, z = pos.z } + + if not (biome.avoid_nodes and biome.avoid_radius and minetest.find_node_near(p_top, biome.avoid_radius + math.random(-1.5,2), biome.avoid_nodes)) then + if biome.delete_above then + minetest.remove_node(p_top) + minetest.remove_node({x=p_top.x, y=p_top.y+1, z=p_top.z}) + end + + if biome.delete_above_surround then + minetest.remove_node({x=p_top.x-1, y=p_top.y, z=p_top.z}) + minetest.remove_node({x=p_top.x+1, y=p_top.y, z=p_top.z}) + minetest.remove_node({x=p_top.x, y=p_top.y, z=p_top.z-1}) + minetest.remove_node({x=p_top.x, y=p_top.y, z=p_top.z+1}) + + minetest.remove_node({x=p_top.x-1, y=p_top.y+1, z=p_top.z}) + minetest.remove_node({x=p_top.x+1, y=p_top.y+1, z=p_top.z}) + minetest.remove_node({x=p_top.x, y=p_top.y+1, z=p_top.z-1}) + minetest.remove_node({x=p_top.x, y=p_top.y+1, z=p_top.z+1}) + end + + if biome.spawn_replace_node then + minetest.remove_node(pos) + end + + local objtype = type(nodes_or_function_or_model) + + if objtype == "table" then + if nodes_or_function_or_model.axiom then + plantslib:generate_tree(pos, nodes_or_function_or_model) + spawned = true + else + local fdir = nil + if biome.random_facedir then + fdir = math.random(biome.random_facedir[1], biome.random_facedir[2]) + end + minetest.set_node(p_top, { name = nodes_or_function_or_model[math.random(#nodes_or_function_or_model)], param2 = fdir }) + spawned = true + end + elseif objtype == "string" and + minetest.registered_nodes[nodes_or_function_or_model] then + local fdir = nil + if biome.random_facedir then + fdir = math.random(biome.random_facedir[1], biome.random_facedir[2]) + end + minetest.set_node(p_top, { name = nodes_or_function_or_model, param2 = fdir }) + spawned = true + elseif objtype == "function" then + nodes_or_function_or_model(pos) + spawned = true + elseif objtype == "string" and pcall(loadstring(("return %s(...)"): + format(nodes_or_function_or_model)),pos) then + spawned = true + else + plantslib:dbg("Warning: Ignored invalid definition for object "..dump(nodes_or_function_or_model).." that was pointed at {"..dump(pos).."}") + end + else + tries = tries + 1 + end + end + end + end + end + end +end + +-- And here we actually register the mapgen hooks with the engine + +minetest.register_on_generated( + plantslib:generate_block_with_air_checking(minp, maxp, blockseed) +) + +minetest.register_on_generated( + plantslib:generate_block_no_air_check(minp, maxp, blockseed) +) + +-- The spawning ABM + +function plantslib:spawn_on_surfaces(sd,sp,sr,sc,ss,sa) + + local biome = {} + + if type(sd) ~= "table" then + biome.spawn_delay = sd -- old api expects ABM interval param here. + biome.spawn_plants = {sp} + biome.avoid_radius = sr + biome.spawn_chance = sc + biome.spawn_surfaces = {ss} + biome.avoid_nodes = sa + else + biome = sd + end + + if biome.spawn_delay*time_scale >= 1 then + biome.interval = biome.spawn_delay*time_scale + else + biome.interval = 1 + end + + plantslib:set_defaults(biome) + biome.spawn_plants_count = #(biome.spawn_plants) + + minetest.register_abm({ + nodenames = biome.spawn_surfaces, + interval = biome.interval, + chance = biome.spawn_chance, + neighbors = biome.neighbors, + action = function(pos, node, active_object_count, active_object_count_wider) + local p_top = { x = pos.x, y = pos.y + 1, z = pos.z } + local n_top = minetest.get_node(p_top) + local perlin_fertile_area = minetest.get_perlin(biome.seed_diff, perlin_octaves, perlin_persistence, perlin_scale) + local noise1 = perlin_fertile_area:get2d({x=p_top.x, y=p_top.z}) + local noise2 = plantslib.perlin_temperature:get2d({x=p_top.x, y=p_top.z}) + local noise3 = plantslib.perlin_humidity:get2d({x=p_top.x+150, y=p_top.z+50}) + if noise1 > biome.plantlife_limit + and noise2 <= biome.temp_min + and noise2 >= biome.temp_max + and noise3 <= biome.humidity_min + and noise3 >= biome.humidity_max + and plantslib:is_node_loaded(p_top) then + local n_light = minetest.get_node_light(p_top, nil) + if not (biome.avoid_nodes and biome.avoid_radius and minetest.find_node_near(p_top, biome.avoid_radius + math.random(-1.5,2), biome.avoid_nodes)) + and n_light >= biome.light_min + and n_light <= biome.light_max + and (not(biome.neighbors and biome.ncount) or #(minetest.find_nodes_in_area({x=pos.x-1, y=pos.y, z=pos.z-1}, {x=pos.x+1, y=pos.y, z=pos.z+1}, biome.neighbors)) > biome.ncount ) + and (not(biome.near_nodes and biome.near_nodes_count and biome.near_nodes_size) or #(minetest.find_nodes_in_area({x=pos.x-biome.near_nodes_size, y=pos.y-biome.near_nodes_vertical, z=pos.z-biome.near_nodes_size}, {x=pos.x+biome.near_nodes_size, y=pos.y+biome.near_nodes_vertical, z=pos.z+biome.near_nodes_size}, biome.near_nodes)) >= biome.near_nodes_count) + and (not(biome.air_count and biome.air_size) or #(minetest.find_nodes_in_area({x=p_top.x-biome.air_size, y=p_top.y, z=p_top.z-biome.air_size}, {x=p_top.x+biome.air_size, y=p_top.y, z=p_top.z+biome.air_size}, "air")) >= biome.air_count) + and pos.y >= biome.min_elevation + and pos.y <= biome.max_elevation + then + local walldir = plantslib:find_adjacent_wall(p_top, biome.verticals_list) + if biome.alt_wallnode and walldir then + if n_top.name == "air" then + minetest.set_node(p_top, { name = biome.alt_wallnode, param2 = walldir }) + end + else + local currentsurface = minetest.get_node(pos).name + if currentsurface ~= "default:water_source" + or (currentsurface == "default:water_source" and #(minetest.find_nodes_in_area({x=pos.x, y=pos.y-biome.depth_max-1, z=pos.z}, {x=pos.x, y=pos.y, z=pos.z}, {"default:dirt", "default:dirt_with_grass", "default:sand"})) > 0 ) + then + local rnd = math.random(1, biome.spawn_plants_count) + local plant_to_spawn = biome.spawn_plants[rnd] + local fdir = biome.facedir + if biome.random_facedir then + fdir = math.random(biome.random_facedir[1],biome.random_facedir[2]) + end + if type(spawn_plants) == "string" then + assert(loadstring(spawn_plants.."(...)"))(pos) + elseif not biome.spawn_on_side and not biome.spawn_on_bottom and not biome.spawn_replace_node then + if n_top.name == "air" then + minetest.set_node(p_top, { name = plant_to_spawn, param2 = fdir }) + end + elseif biome.spawn_replace_node then + minetest.set_node(pos, { name = plant_to_spawn, param2 = fdir }) + + elseif biome.spawn_on_side then + local onside = plantslib:find_open_side(pos) + if onside then + minetest.set_node(onside.newpos, { name = plant_to_spawn, param2 = onside.facedir }) + end + elseif biome.spawn_on_bottom then + if minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "air" then + minetest.set_node({x=pos.x, y=pos.y-1, z=pos.z}, { name = plant_to_spawn, param2 = fdir} ) + end + end + end + end + end + end + end + }) +end + +-- The growing ABM + +function plantslib:grow_plants(opts) + + local options = opts + + options.height_limit = options.height_limit or 5 + options.ground_nodes = options.ground_nodes or { "default:dirt_with_grass" } + options.grow_nodes = options.grow_nodes or { "default:dirt_with_grass" } + options.seed_diff = options.seed_diff or 0 + + if options.grow_delay*time_scale >= 1 then + options.interval = options.grow_delay*time_scale + else + options.interval = 1 + end + + minetest.register_abm({ + nodenames = { options.grow_plant }, + interval = options.interval, + chance = options.grow_chance, + action = function(pos, node, active_object_count, active_object_count_wider) + local p_top = {x=pos.x, y=pos.y+1, z=pos.z} + local p_bot = {x=pos.x, y=pos.y-1, z=pos.z} + local n_top = minetest.get_node(p_top) + local n_bot = minetest.get_node(p_bot) + local root_node = minetest.get_node({x=pos.x, y=pos.y-options.height_limit, z=pos.z}) + local walldir = nil + if options.need_wall and options.verticals_list then + walldir = plantslib:find_adjacent_wall(p_top, options.verticals_list) + end + if n_top.name == "air" and (not options.need_wall or (options.need_wall and walldir)) + then + -- corner case for changing short junglegrass + -- to dry shrub in desert + if n_bot.name == options.dry_early_node and options.grow_plant == "junglegrass:short" then + minetest.set_node(pos, { name = "default:dry_shrub" }) + + elseif options.grow_vertically and walldir then + if plantslib:search_downward(pos, options.height_limit, options.ground_nodes) then + minetest.set_node(p_top, { name = options.grow_plant, param2 = walldir}) + end + + elseif not options.grow_result and not options.grow_function then + minetest.remove_node(pos) + + else + plantslib:replace_object(pos, options.grow_result, options.grow_function, options.facedir, options.seed_diff) + end + end + end + }) +end + +-- Function to decide how to replace a plant - either grow it, replace it with +-- a tree, run a function, or die with an error. + +function plantslib:replace_object(pos, replacement, grow_function, walldir, seeddiff) + local growtype = type(grow_function) + if growtype == "table" then + minetest.remove_node(pos) + plantslib:grow_tree(pos, grow_function) + return + elseif growtype == "function" then + local perlin_fertile_area = minetest.get_perlin(seeddiff, perlin_octaves, perlin_persistence, perlin_scale) + local noise1 = perlin_fertile_area:get2d({x=pos.x, y=pos.z}) + local noise2 = plantslib.perlin_temperature:get2d({x=pos.x, y=pos.z}) + grow_function(pos,noise1,noise2,walldir) + return + elseif growtype == "string" then + local perlin_fertile_area = minetest.get_perlin(seeddiff, perlin_octaves, perlin_persistence, perlin_scale) + local noise1 = perlin_fertile_area:get2d({x=pos.x, y=pos.z}) + local noise2 = plantslib.perlin_temperature:get2d({x=pos.x, y=pos.z}) + assert(loadstring(grow_function.."(...)"))(pos,noise1,noise2,walldir) + return + elseif growtype == "nil" then + minetest.set_node(pos, { name = replacement, param2 = walldir}) + return + elseif growtype ~= "nil" and growtype ~= "string" and growtype ~= "table" then + error("Invalid grow function "..dump(grow_function).." used on object at ("..dump(pos)..")") + end +end + +-- function to decide if a node has a wall that's in verticals_list{} +-- returns wall direction of valid node, or nil if invalid. + +function plantslib:find_adjacent_wall(pos, verticals) + local verts = dump(verticals) + if string.find(verts, minetest.get_node({ x=pos.x-1, y=pos.y, z=pos.z }).name) then return 3 end + if string.find(verts, minetest.get_node({ x=pos.x+1, y=pos.y, z=pos.z }).name) then return 2 end + if string.find(verts, minetest.get_node({ x=pos.x , y=pos.y, z=pos.z-1 }).name) then return 5 end + if string.find(verts, minetest.get_node({ x=pos.x , y=pos.y, z=pos.z+1 }).name) then return 4 end + return nil +end + +-- Function to search downward from the given position, looking for the first +-- node that matches the ground table. Returns the new position, or nil if +-- height limit is exceeded before finding it. + +function plantslib:search_downward(pos, heightlimit, ground) + for i = 0, heightlimit do + if string.find(dump(ground), minetest.get_node({x=pos.x, y=pos.y-i, z = pos.z}).name) then + return {x=pos.x, y=pos.y-i, z = pos.z} + end + end + return false +end + +function plantslib:find_open_side(pos) + if minetest.get_node({ x=pos.x-1, y=pos.y, z=pos.z }).name == "air" then + return {newpos = { x=pos.x-1, y=pos.y, z=pos.z }, facedir = 2} + end + if minetest.get_node({ x=pos.x+1, y=pos.y, z=pos.z }).name == "air" then + return {newpos = { x=pos.x+1, y=pos.y, z=pos.z }, facedir = 3} + end + if minetest.get_node({ x=pos.x, y=pos.y, z=pos.z-1 }).name == "air" then + return {newpos = { x=pos.x, y=pos.y, z=pos.z-1 }, facedir = 4} + end + if minetest.get_node({ x=pos.x, y=pos.y, z=pos.z+1 }).name == "air" then + return {newpos = { x=pos.x, y=pos.y, z=pos.z+1 }, facedir = 5} + end + return nil +end + +-- spawn_tree() on generate is routed through here so that other mods can hook +-- into it. + +function plantslib:generate_tree(pos, nodes_or_function_or_model) + minetest.spawn_tree(pos, nodes_or_function_or_model) +end + +-- and this one's for the call used in the growing code + +function plantslib:grow_tree(pos, nodes_or_function_or_model) + minetest.spawn_tree(pos, nodes_or_function_or_model) +end + +-- Check for infinite stacks + +if minetest.get_modpath("unified_inventory") or not minetest.setting_getbool("creative_mode") then + plantslib.expect_infinite_stacks = false +else + plantslib.expect_infinite_stacks = true +end + +-- read a field from a node's definition + +function plantslib:get_nodedef_field(nodename, fieldname) + if not minetest.registered_nodes[nodename] then + return nil + end + return minetest.registered_nodes[nodename][fieldname] +end + +print("[Plants Lib] Loaded") + +minetest.after(0, function() + print("[Plants Lib] Registered a total of "..(#plantslib.surfaces_list)+(#plantslib.surfaces_list_noaircheck).." surface types to be evaluated, spread") + print("[Plants Lib] across "..#plantslib.actions_list.." actions with air-checking and "..#plantslib.actions_list_noaircheck.." actions without.") +end) + diff --git a/mods/plantlife_modpack/plants_lib/locale/de.txt b/mods/plantlife_modpack/plants_lib/locale/de.txt new file mode 100755 index 00000000..28867868 --- /dev/null +++ b/mods/plantlife_modpack/plants_lib/locale/de.txt @@ -0,0 +1,5 @@ +# Translation by Xanthin + +someone = jemand +Sorry, %s owns that spot. = Entschuldige, %s gehoert diese Stelle. +[Plantlife Library] Loaded = [Plantlife Library] Geladen diff --git a/mods/plantlife_modpack/plants_lib/locale/template.txt b/mods/plantlife_modpack/plants_lib/locale/template.txt new file mode 100755 index 00000000..0f5fbbd4 --- /dev/null +++ b/mods/plantlife_modpack/plants_lib/locale/template.txt @@ -0,0 +1,5 @@ +# Template + +someone = +Sorry, %s owns that spot. = +[Plantlife Library] Loaded = diff --git a/mods/plantlife_modpack/poisonivy/depends.txt b/mods/plantlife_modpack/poisonivy/depends.txt new file mode 100755 index 00000000..c8f72513 --- /dev/null +++ b/mods/plantlife_modpack/poisonivy/depends.txt @@ -0,0 +1 @@ +plants_lib diff --git a/mods/plantlife_modpack/poisonivy/init.lua b/mods/plantlife_modpack/poisonivy/init.lua new file mode 100755 index 00000000..3674d3e3 --- /dev/null +++ b/mods/plantlife_modpack/poisonivy/init.lua @@ -0,0 +1,110 @@ +-- This file supplies poison ivy for the plantlife modpack +-- Last revision: 2013-01-24 + +-- Boilerplate to support localized strings if intllib mod is installed. +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) +else + S = function ( s ) return s end +end + +local SPAWN_DELAY = 1000 +local SPAWN_CHANCE = 200 +local GROW_DELAY = 500 +local GROW_CHANCE = 30 +local poisonivy_seed_diff = 339 +local walls_list = { + "default:dirt", + "default:dirt_with_grass", + "default:stone", + "default:cobble", + "default:mossycobble", + "default:brick", + "default:tree", + "default:jungletree", + "default:stone_with_coal", + "default:stone_with_iron" +}, +minetest.register_node('poisonivy:seedling', { + description = S("Poison ivy (seedling)"), + drawtype = 'plantlike', + waving = 1, + tile_images = { 'poisonivy_seedling.png' }, + inventory_image = 'poisonivy_seedling.png', + wield_image = 'poisonivy_seedling.png', + sunlight_propagates = true, + paramtype = 'light', + walkable = false, + groups = { snappy = 3, poisonivy=1, flora_block=1 }, + sounds = default.node_sound_leaves_defaults(), + buildable_to = true, +}) + +minetest.register_node('poisonivy:sproutling', { + description = S("Poison ivy (sproutling)"), + drawtype = 'plantlike', + waving = 1, + tile_images = { 'poisonivy_sproutling.png' }, + inventory_image = 'poisonivy_sproutling.png', + wield_image = 'poisonivy_sproutling.png', + sunlight_propagates = true, + paramtype = 'light', + walkable = false, + groups = { snappy = 3, poisonivy=1, flora_block=1 }, + sounds = default.node_sound_leaves_defaults(), + buildable_to = true, +}) + +minetest.register_node('poisonivy:climbing', { + description = S("Poison ivy (climbing plant)"), + drawtype = 'signlike', + tile_images = { 'poisonivy_climbing.png' }, + inventory_image = 'poisonivy_climbing.png', + wield_image = 'poisonivy_climbing.png', + sunlight_propagates = true, + paramtype = 'light', + paramtype2 = 'wallmounted', + walkable = false, + groups = { snappy = 3, poisonivy=1, flora_block=1 }, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "wallmounted", + --wall_side = = + }, + buildable_to = true, +}) + +plantslib:spawn_on_surfaces({ + spawn_delay = SPAWN_DELAY, + spawn_plants = {"poisonivy:seedling"}, + avoid_radius = 10, + spawn_chance = SPAWN_CHANCE/10, + spawn_surfaces = {"default:dirt_with_grass"}, + avoid_nodes = {"group:poisonivy", "group:flower", "group:flora"}, + seed_diff = poisonivy_seed_diff, + light_min = 7, + alt_wallnode = "poisonivy:climbing", + verticals_list = walls_list +}) + +plantslib:grow_plants({ + grow_delay = SPAWN_DELAY, + grow_chance = GROW_CHANCE, + grow_plant = "poisonivy:seedling", + grow_result = "poisonivy:sproutling", + grow_nodes = {"default:dirt_with_grass"} +}) + +plantslib:grow_plants({ + grow_delay = GROW_DELAY, + grow_chance = GROW_CHANCE*2, + grow_plant = "poisonivy:climbing", + need_wall = true, + grow_vertically = true, + verticals_list = walls_list, + ground_nodes = {"default:dirt_with_grass"} +}) + +print(S("[Poison Ivy] Loaded.")) diff --git a/mods/plantlife_modpack/poisonivy/locale/de.txt b/mods/plantlife_modpack/poisonivy/locale/de.txt new file mode 100755 index 00000000..5c099ce1 --- /dev/null +++ b/mods/plantlife_modpack/poisonivy/locale/de.txt @@ -0,0 +1,7 @@ +# Translation by Xanthin + +Poison ivy (seedling) = Giftefeu (Saemling) +Poison ivy (sproutling) = Giftefeu (Sproessling) +Poison ivy (climbing plant) = Giftefeu (Kletterpflanze) + +[Poison Ivy] Loaded. = [Poison Ivy] Geladen. diff --git a/mods/plantlife_modpack/poisonivy/locale/template.txt b/mods/plantlife_modpack/poisonivy/locale/template.txt new file mode 100755 index 00000000..35fb12d6 --- /dev/null +++ b/mods/plantlife_modpack/poisonivy/locale/template.txt @@ -0,0 +1,7 @@ +# Template + +Poison ivy (seedling) = +Poison ivy (sproutling) = +Poison ivy (climbing plant) = + +[Poison Ivy] Loaded. = diff --git a/mods/plantlife_modpack/poisonivy/textures/poisonivy_climbing.png b/mods/plantlife_modpack/poisonivy/textures/poisonivy_climbing.png new file mode 100755 index 00000000..f9175595 Binary files /dev/null and b/mods/plantlife_modpack/poisonivy/textures/poisonivy_climbing.png differ diff --git a/mods/plantlife_modpack/poisonivy/textures/poisonivy_seedling.png b/mods/plantlife_modpack/poisonivy/textures/poisonivy_seedling.png new file mode 100755 index 00000000..9a7af2b6 Binary files /dev/null and b/mods/plantlife_modpack/poisonivy/textures/poisonivy_seedling.png differ diff --git a/mods/plantlife_modpack/poisonivy/textures/poisonivy_sproutling.png b/mods/plantlife_modpack/poisonivy/textures/poisonivy_sproutling.png new file mode 100755 index 00000000..cda0554b Binary files /dev/null and b/mods/plantlife_modpack/poisonivy/textures/poisonivy_sproutling.png differ diff --git a/mods/plantlife_modpack/trunks/crafting.lua b/mods/plantlife_modpack/trunks/crafting.lua new file mode 100755 index 00000000..02f39913 --- /dev/null +++ b/mods/plantlife_modpack/trunks/crafting.lua @@ -0,0 +1,133 @@ +-- Code by Mossmanikin +----------------------------------------------------------------------------------------------- +-- TWiGS +----------------------------------------------------------------------------------------------- +minetest.register_craft({ -- *leaves --> twigs + output = "trunks:twig_1 2", + recipe = {{"group:leafdecay"}} +}) +if minetest.get_modpath("moretrees") ~= nil then +minetest.register_craft({ -- moretrees_leaves --> twigs + output = "trunks:twig_1 2", + recipe = {{"group:moretrees_leaves"}} +}) +minetest.register_craft({ -- except moretrees:palm_leaves + output = "moretrees:palm_leaves", + recipe = {{"moretrees:palm_leaves"}} +}) +end +if minetest.get_modpath("bushes") ~= nil then +minetest.register_craft({ -- BushLeaves --> twigs + output = "trunks:twig_1 2", + recipe = {{"bushes:BushLeaves1"}} +}) +minetest.register_craft({ + output = "trunks:twig_1 2", + recipe = {{"bushes:BushLeaves2"}} +}) +minetest.register_craft({ -- bushbranches --> twigs + output = "trunks:twig_1 4", + recipe = {{"bushes:bushbranches1"}} +}) +minetest.register_craft({ + output = "trunks:twig_1 4", + recipe = {{"bushes:bushbranches2"}} +}) +minetest.register_craft({ + output = "trunks:twig_1 4", + recipe = {{"bushes:bushbranches2a"}} +}) +minetest.register_craft({ + output = "trunks:twig_1 4", + recipe = {{"bushes:bushbranches3"}} +}) +end +minetest.register_craft({ -- twigs block --> twigs + output = "trunks:twig_1 8", + recipe = {{"trunks:twigs"}} +}) +minetest.register_craft({ -- twigs_slab --> twigs + output = "trunks:twig_1 4", + recipe = {{"trunks:twigs_slab"}} +}) +minetest.register_craft({ -- twigs_roof --> twigs + output = "trunks:twig_1 4", + recipe = {{"trunks:twigs_roof"}} +}) +minetest.register_craft({ -- twigs_roof_corner --> twigs + output = "trunks:twig_1 3", + recipe = {{"trunks:twigs_roof_corner"}} +}) +minetest.register_craft({ -- twigs_roof_corner_2 --> twigs + output = "trunks:twig_1 3", + recipe = {{"trunks:twigs_roof_corner_2"}} +}) +----------------------------------------------------------------------------------------------- +-- STiCK +----------------------------------------------------------------------------------------------- +minetest.register_craft({ -- twig --> stick + output = "default:stick", + recipe = {{"trunks:twig_1"}} +}) + +----------------------------------------------------------------------------------------------- +-- TWiGS BLoCK +----------------------------------------------------------------------------------------------- +minetest.register_craft({ -- twigs --> twigs block + output = "trunks:twigs", + recipe = { + {"trunks:twig_1","trunks:twig_1","trunks:twig_1"}, + {"trunks:twig_1", "" ,"trunks:twig_1"}, + {"trunks:twig_1","trunks:twig_1","trunks:twig_1"}, + } +}) + +----------------------------------------------------------------------------------------------- +-- TWiGS SLaBS +----------------------------------------------------------------------------------------------- +minetest.register_craft({ -- twigs blocks --> twigs_slabs + output = "trunks:twigs_slab 6", + recipe = { + {"trunks:twigs","trunks:twigs","trunks:twigs"}, + } +}) + +----------------------------------------------------------------------------------------------- +-- TWiGS RooFS +----------------------------------------------------------------------------------------------- +minetest.register_craft({ -- twigs blocks --> twigs_roofs + output = "trunks:twigs_roof 4", + recipe = { + {"trunks:twigs",""}, + {"","trunks:twigs"}, + } +}) +minetest.register_craft({ + output = "trunks:twigs_roof 4", + recipe = { + {"","trunks:twigs"}, + {"trunks:twigs",""}, + } +}) + +----------------------------------------------------------------------------------------------- +-- TWiGS RooF CoRNeRS +----------------------------------------------------------------------------------------------- +minetest.register_craft({ -- twigs blocks --> twigs_roof_corners + output = "trunks:twigs_roof_corner 8", + recipe = { + { "" ,"trunks:twigs", "" }, + {"trunks:twigs", "" ,"trunks:twigs"}, + } +}) + +----------------------------------------------------------------------------------------------- +-- TWiGS RooF CoRNeRS 2 +----------------------------------------------------------------------------------------------- +minetest.register_craft({ -- twigs blocks --> twigs_roof_corner_2's + output = "trunks:twigs_roof_corner_2 8", + recipe = { + {"trunks:twigs", "" ,"trunks:twigs"}, + { "" ,"trunks:twigs", "" }, + } +}) \ No newline at end of file diff --git a/mods/plantlife_modpack/trunks/depends.txt b/mods/plantlife_modpack/trunks/depends.txt new file mode 100755 index 00000000..9c27f3b4 --- /dev/null +++ b/mods/plantlife_modpack/trunks/depends.txt @@ -0,0 +1,6 @@ +default +plants_lib +bushes? +ferns? +moretrees? +trees? \ No newline at end of file diff --git a/mods/plantlife_modpack/trunks/generating.lua b/mods/plantlife_modpack/trunks/generating.lua new file mode 100755 index 00000000..6b5b897c --- /dev/null +++ b/mods/plantlife_modpack/trunks/generating.lua @@ -0,0 +1,554 @@ +-- Code by Mossmanikin, Neuromancer, and others + +local function clone_node(name) + node2={} + node=minetest.registered_nodes[name] + for k,v in pairs(node) do + node2[k]=v + end + return node2 +end + +----------------------------------------------------------------------------------------------- +-- TWiGS +----------------------------------------------------------------------------------------------- + +abstract_trunks.place_twig = function(pos) + local twig_size = math.random(1,27) + + local right_here = {x=pos.x , y=pos.y+1, z=pos.z } + local north = {x=pos.x , y=pos.y+1, z=pos.z+1} + local north_east = {x=pos.x+1, y=pos.y+1, z=pos.z+1} + local east = {x=pos.x+1, y=pos.y+1, z=pos.z } + local south_east = {x=pos.x+1, y=pos.y+1, z=pos.z-1} + local south = {x=pos.x , y=pos.y+1, z=pos.z-1} + local south_west = {x=pos.x-1, y=pos.y+1, z=pos.z-1} + local west = {x=pos.x-1, y=pos.y+1, z=pos.z } + local north_west = {x=pos.x-1, y=pos.y+1, z=pos.z+1} + + local node_here = minetest.get_node(right_here) + local node_north = minetest.get_node(north) + local node_n_e = minetest.get_node(north_east) + local node_east = minetest.get_node(east) + local node_s_e = minetest.get_node(south_east) + local node_south = minetest.get_node(south) + local node_s_w = minetest.get_node(south_west) + local node_west = minetest.get_node(west) + local node_n_w = minetest.get_node(north_west) +-- small twigs + if twig_size <= 16 then + minetest.set_node(right_here, {name="trunks:twig_"..math.random(1,4), param2=math.random(0,3)}) + end +-- big twigs + if Big_Twigs == true then +-- big twig 1 + if twig_size == 17 then + if not (minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z+1}).name].buildable_to + or minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z}).name].buildable_to) then + + if minetest.registered_nodes[node_here.name].buildable_to then + minetest.set_node(right_here, {name="trunks:twig_5"}) + end + if minetest.registered_nodes[node_n_e.name].buildable_to then + minetest.set_node(north_east, {name="trunks:twig_7"}) + end + if minetest.registered_nodes[node_east.name].buildable_to then + minetest.set_node(east, {name="trunks:twig_8"}) + end + end + elseif twig_size == 18 then + if not (minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z-1}).name].buildable_to + or minetest.registered_nodes[minetest.get_node({x=pos.x,y=pos.y,z=pos.z-1}).name].buildable_to) then + + if minetest.registered_nodes[node_here.name].buildable_to then + minetest.set_node(right_here, {name="trunks:twig_5", param2=1}) + end + if minetest.registered_nodes[node_s_e.name].buildable_to then + minetest.set_node(south_east, {name="trunks:twig_7", param2=1}) + end + if minetest.registered_nodes[node_south.name].buildable_to then + minetest.set_node(south, {name="trunks:twig_8", param2=1}) + end + end + elseif twig_size == 19 then + if not (minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z-1}).name].buildable_to + or minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z}).name].buildable_to) then + + if minetest.registered_nodes[node_here.name].buildable_to then + minetest.set_node(right_here, {name="trunks:twig_5", param2=2}) + end + if minetest.registered_nodes[node_s_w.name].buildable_to then + minetest.set_node(south_west, {name="trunks:twig_7", param2=2}) + end + if minetest.registered_nodes[node_west.name].buildable_to then + minetest.set_node(west, {name="trunks:twig_8", param2=2}) + end + end + elseif twig_size == 20 then + if not (minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z+1}).name].buildable_to + or minetest.registered_nodes[minetest.get_node({x=pos.x,y=pos.y,z=pos.z+1}).name].buildable_to) then + + if minetest.registered_nodes[node_here.name].buildable_to then + minetest.set_node(right_here, {name="trunks:twig_5", param2=3}) + end + if minetest.registered_nodes[node_n_w.name].buildable_to then + minetest.set_node(north_west, {name="trunks:twig_7", param2=3}) + end + if minetest.registered_nodes[node_north.name].buildable_to then + minetest.set_node(north, {name="trunks:twig_8", param2=3}) + end + end +-- big twig 2 + elseif twig_size == 21 then + if not (minetest.registered_nodes[minetest.get_node({x=pos.x,y=pos.y,z=pos.z+1}).name].buildable_to + or minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z+1}).name].buildable_to) then + + if minetest.registered_nodes[node_here.name].buildable_to then + minetest.set_node(right_here, {name="trunks:twig_9"}) + end + if minetest.registered_nodes[node_north.name].buildable_to then + minetest.set_node(north, {name="trunks:twig_10"}) + end + if minetest.registered_nodes[node_n_e.name].buildable_to then + minetest.set_node(north_east, {name="trunks:twig_11"}) + end + end + elseif twig_size == 22 then + if not (minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z}).name].buildable_to + or minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z-1}).name].buildable_to) then + + if minetest.registered_nodes[node_here.name].buildable_to then + minetest.set_node(right_here, {name="trunks:twig_9", param2=1}) + end + if minetest.registered_nodes[node_east.name].buildable_to then + minetest.set_node(east, {name="trunks:twig_10", param2=1}) + end + if minetest.registered_nodes[node_s_e.name].buildable_to then + minetest.set_node(south_east, {name="trunks:twig_11", param2=1}) + end + end + elseif twig_size == 23 then + if not (minetest.registered_nodes[minetest.get_node({x=pos.x,y=pos.y,z=pos.z-1}).name].buildable_to + or minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z-1}).name].buildable_to) then + + if minetest.registered_nodes[node_here.name].buildable_to then + minetest.set_node(right_here, {name="trunks:twig_9", param2=2}) + end + if minetest.registered_nodes[node_south.name].buildable_to then + minetest.set_node(south, {name="trunks:twig_10", param2=2}) + end + if minetest.registered_nodes[node_s_w.name].buildable_to then + minetest.set_node(south_west, {name="trunks:twig_11", param2=2}) + end + end + elseif twig_size == 24 then + if not (minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z}).name].buildable_to + or minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z+1}).name].buildable_to) then + + if minetest.registered_nodes[node_here.name].buildable_to then + minetest.set_node(right_here, {name="trunks:twig_9", param2=3}) + end + if minetest.registered_nodes[node_west.name].buildable_to then + minetest.set_node(west, {name="trunks:twig_10", param2=3}) + end + if minetest.registered_nodes[node_n_w.name].buildable_to then + minetest.set_node(north_west, {name="trunks:twig_11", param2=3}) + end + end + elseif twig_size <= 25 then + minetest.set_node(right_here, {name="trunks:twig_"..math.random(12,13), param2=math.random(0,3)}) + end + end +end + +if Twigs_on_ground == true then +plantslib:register_generate_plant({ + surface = {"default:dirt_with_grass"}, + max_count = Twigs_on_ground_Max_Count, + rarity = Twigs_on_ground_Rarity, + min_elevation = 1, + max_elevation = 40, + near_nodes = {"group:tree","ferns:fern_03","ferns:fern_02","ferns:fern_01"}, + near_nodes_size = 3, + near_nodes_vertical = 1, + near_nodes_count = 1, + plantlife_limit = -0.9, + }, + abstract_trunks.place_twig +) +end + +if Twigs_on_water == true then +plantslib:register_generate_plant({ + surface = {"default:water_source"}, + max_count = Twigs_on_water_Max_Count, + rarity = Twigs_on_water_Rarity, + min_elevation = 1, + max_elevation = 40, + near_nodes = {"group:tree"}, + near_nodes_size = 3, + near_nodes_vertical = 1, + near_nodes_count = 1, + plantlife_limit = -0.9, + }, + abstract_trunks.place_twig +) +end + +----------------------------------------------------------------------------------------------- +-- TRuNKS +----------------------------------------------------------------------------------------------- +local TRuNKS = { +-- MoD TRuNK NR + {"default", "tree", 1}, + {"default", "jungletree", 2}, + + {"trees", "tree_conifer", 3}, + {"trees", "tree_mangrove", 4}, + {"trees", "tree_palm", 5}, + + {"moretrees", "apple_tree_trunk", 6}, + {"moretrees", "beech_trunk", 7}, + {"moretrees", "birch_trunk", 8}, + {"moretrees", "fir_trunk", 9}, + {"moretrees", "oak_trunk", 10}, + {"moretrees", "palm_trunk", 11}, + {"moretrees", "pine_trunk", 12}, + {"moretrees", "rubber_tree_trunk", 13}, + {"moretrees", "rubber_tree_trunk_empty", 14}, + {"moretrees", "sequoia_trunk", 15}, + {"moretrees", "spruce_trunk", 16}, + {"moretrees", "willow_trunk", 17}, +} + +if Horizontal_Trunks == true then -- see settings.txt +for i in pairs(TRuNKS) do + local MoD = TRuNKS[i][1] + local TRuNK = TRuNKS[i][2] + local NR = TRuNKS[i][3] + local trunkname = MoD..":"..TRuNK + if minetest.get_modpath(MoD) ~= nil + and NR < 6 -- moretrees trunks allready have facedir + and minetest.registered_nodes[trunkname] then -- the node being called exists. + temptrunk = clone_node(trunkname) + temptrunk.paramtype2 = "facedir" + minetest.register_node(":"..trunkname, temptrunk) + end +end +end + +abstract_trunks.place_trunk = function(pos) + + local right_here = {x=pos.x, y=pos.y+1, z=pos.z} + local north = {x=pos.x, y=pos.y+1, z=pos.z+1} + local north2 = {x=pos.x, y=pos.y+1, z=pos.z+2} + local south = {x=pos.x, y=pos.y+1, z=pos.z-1} + local south2 = {x=pos.x, y=pos.y+1, z=pos.z-2} + local west = {x=pos.x-1, y=pos.y+1, z=pos.z} + local west2 = {x=pos.x-2, y=pos.y+1, z=pos.z} + local east = {x=pos.x+1, y=pos.y+1, z=pos.z} + local east2 = {x=pos.x+2, y=pos.y+1, z=pos.z} + + local node_here = minetest.get_node(right_here) + local node_north = minetest.get_node(north) + local node_north2 = minetest.get_node(north2) + local node_south = minetest.get_node(south) + local node_south2 = minetest.get_node(south2) + local node_west = minetest.get_node(west) + local node_west2 = minetest.get_node(west2) + local node_east = minetest.get_node(east) + local node_east2 = minetest.get_node(east2) + if minetest.registered_nodes[node_here.name].buildable_to then -- instead of check_air = true, + for i in pairs(TRuNKS) do + local MoD = TRuNKS[i][1] + local TRuNK = TRuNKS[i][2] + local NR = TRuNKS[i][3] + local chance = math.random(1, 17) + local length = math.random(3,5) + if chance == NR then + local trunk_type = math.random(1,3) + if trunk_type == 1 then + if minetest.get_modpath(MoD) ~= nil then + minetest.set_node(right_here, {name=MoD..":"..TRuNK}) + else + minetest.set_node(right_here, {name="default:tree"}) + end + elseif trunk_type == 2 and Horizontal_Trunks == true then + if minetest.get_modpath(MoD) ~= nil then + if minetest.registered_nodes[node_north.name].buildable_to then + minetest.set_node(north, {name=MoD..":"..TRuNK, param2=4}) + end + + if length >= 4 and minetest.registered_nodes[node_north2.name].buildable_to then + minetest.set_node(north2, {name=MoD..":"..TRuNK, param2=4}) + end + + minetest.set_node(right_here, {name=MoD..":"..TRuNK, param2=4}) + if minetest.registered_nodes[node_south.name].buildable_to then + minetest.set_node(south, {name=MoD..":"..TRuNK, param2=4}) + end + if length == 5 and minetest.registered_nodes[node_south2.name].buildable_to then + minetest.set_node(south2, {name=MoD..":"..TRuNK, param2=4}) + end + else + if minetest.registered_nodes[node_north.name].buildable_to then + minetest.set_node(north, {name="default:tree", param2=4}) + end + if length >= 4 and minetest.registered_nodes[node_north2.name].buildable_to then + minetest.set_node(north2, {name="default:tree", param2=4}) + end + minetest.set_node(right_here, {name="default:tree", param2=4}) + if minetest.registered_nodes[node_south.name].buildable_to then + minetest.set_node(south, {name="default:tree", param2=4}) + end + if length == 5 and minetest.registered_nodes[node_south2.name].buildable_to then + minetest.set_node(south2, {name="default:tree", param2=4}) + end + end + elseif trunk_type == 3 and Horizontal_Trunks == true then + if minetest.get_modpath(MoD) ~= nil then + if minetest.registered_nodes[node_west.name].buildable_to then + minetest.set_node(west, {name=MoD..":"..TRuNK, param2=12}) + end + if length >= 4 and minetest.registered_nodes[node_west2.name].buildable_to then + minetest.set_node(west2, {name=MoD..":"..TRuNK, param2=12}) + end + minetest.set_node(right_here, {name=MoD..":"..TRuNK, param2=12}) + if minetest.registered_nodes[node_east.name].buildable_to then + minetest.set_node(east, {name=MoD..":"..TRuNK, param2=12}) + end + if length == 5 and minetest.registered_nodes[node_east2.name].buildable_to then + minetest.set_node(east2, {name=MoD..":"..TRuNK, param2=12}) + end + else + if minetest.registered_nodes[node_west.name].buildable_to then + minetest.set_node(west, {name="default:tree", param2=12}) + end + if length >= 4 and minetest.registered_nodes[node_west2.name].buildable_to then + minetest.set_node(west2, {name="default:tree", param2=12}) + end + minetest.set_node(right_here, {name="default:tree", param2=12}) + if minetest.registered_nodes[node_east.name].buildable_to then + minetest.set_node(east, {name="default:tree", param2=12}) + end + if length == 5 and minetest.registered_nodes[node_east2.name].buildable_to then + minetest.set_node(east2, {name="default:tree", param2=12}) + end + end + end + end + end + end +end + +plantslib:register_generate_plant({ + surface = {"default:dirt_with_grass"}, + max_count = Trunks_Max_Count, -- 320, + rarity = Trunks_Rarity, -- 99, + min_elevation = 1, + max_elevation = 40, + avoid_nodes = {"group:tree"}, + avoid_radius = 1, + near_nodes = {"group:tree","ferns:fern_03","ferns:fern_02","ferns:fern_01"}, + near_nodes_size = 3, + near_nodes_vertical = 1, + near_nodes_count = 1, + plantlife_limit = -0.9, + }, + abstract_trunks.place_trunk +) + +----------------------------------------------------------------------------------------------- +-- MoSS & FuNGuS -- on ground +----------------------------------------------------------------------------------------------- +if Moss_on_ground == true then +abstract_trunks.grow_moss_on_ground = function(pos) + local on_ground = {x=pos.x, y=pos.y+1, z=pos.z} + local moss_type = math.random(1,21) + + if moss_type == 1 then + minetest.set_node(on_ground, {name="trunks:moss_fungus", param2=math.random(0,3)}) + else + minetest.set_node(on_ground, {name="trunks:moss", param2=math.random(0,3)}) + end + +end + +plantslib:register_generate_plant({ + surface = {"default:dirt_with_grass"}, + max_count = Moss_on_ground_Max_Count, + rarity = Moss_on_ground_Rarity, + min_elevation = 1, + max_elevation = 40, + near_nodes = { + "group:tree", + "ferns:fern_03", + "ferns:fern_02", + "ferns:fern_01" + }, + near_nodes_size = 2, + near_nodes_vertical = 1, + near_nodes_count = 1, + plantlife_limit = -0.9, + }, + abstract_trunks.grow_moss_on_ground +) +end + +----------------------------------------------------------------------------------------------- +-- MoSS & FuNGuS -- on trunks +----------------------------------------------------------------------------------------------- +if Moss_on_trunk == true then +abstract_trunks.grow_moss_on_trunk = function(pos) + local on_ground = {x=pos.x, y=pos.y+1, z=pos.z} + local at_side_n = {x=pos.x, y=pos.y, z=pos.z+1} + local at_side_e = {x=pos.x+1, y=pos.y, z=pos.z} + local at_side_s = {x=pos.x, y=pos.y, z=pos.z-1} + local at_side_w = {x=pos.x-1, y=pos.y, z=pos.z} + local undrneath = {x=pos.x, y=pos.y-1, z=pos.z} + + local node_here = minetest.get_node(on_ground) + local node_north = minetest.get_node(at_side_n) + local node_east = minetest.get_node(at_side_e) + local node_south = minetest.get_node(at_side_s) + local node_west = minetest.get_node(at_side_w) + local node_under = minetest.get_node(undrneath) + + --if minetest.get_item_group(node_under.name, "tree") < 1 then + local moss_type = math.random(1,41) + if minetest.registered_nodes[node_here.name].buildable_to then -- instead of check_air = true, + if moss_type == 1 then + minetest.set_node(on_ground, {name="trunks:moss_fungus", param2=math.random(0,3) --[[1]]}) + elseif moss_type < 22 then + minetest.set_node(on_ground, {name="trunks:moss", param2=math.random(0,3) --[[1]]}) + end + end + local moss_type = math.random(1,31) -- cliche of more moss at north + if minetest.registered_nodes[node_north.name].buildable_to then -- instead of check_air = true, + if moss_type == 1 then + minetest.set_node(at_side_n, {name="trunks:moss_fungus", param2=math.random(4,7)}) -- 5,4,6,7 + elseif moss_type < 22 then + minetest.set_node(at_side_n, {name="trunks:moss", param2=math.random(4,7)}) + end + end + local moss_type = math.random(1,41) + if minetest.registered_nodes[node_east.name].buildable_to then -- instead of check_air = true, + if moss_type == 1 then + minetest.set_node(at_side_e, {name="trunks:moss_fungus", param2=math.random(12,15)}) + elseif moss_type < 22 then + minetest.set_node(at_side_e, {name="trunks:moss", param2=math.random(12,15)}) + end + end + local moss_type = math.random(1,41) + if minetest.registered_nodes[node_south.name].buildable_to then -- instead of check_air = true, + if moss_type == 1 then + minetest.set_node(at_side_s, {name="trunks:moss_fungus", param2=math.random(8,11)}) + elseif moss_type < 22 then + minetest.set_node(at_side_s, {name="trunks:moss", param2=math.random(8,11)}) + end + end + local moss_type = math.random(1,41) + if minetest.registered_nodes[node_west.name].buildable_to then -- instead of check_air = true, + if moss_type == 1 then + minetest.set_node(at_side_w, {name="trunks:moss_fungus", param2=math.random(16,19)}) + elseif moss_type < 22 then + minetest.set_node(at_side_w, {name="trunks:moss", param2=math.random(16,19)}) + end + end + --end +end + +plantslib:register_generate_plant({ + surface = { + "default:tree", + "default:jungletree", + "trees:tree_conifer", + "trees:tree_mangrove", + --"trees:tree_palm", + "moretrees:apple_tree_trunk", + "moretrees:beech_trunk", + "moretrees:birch_trunk", + "moretrees:fir_trunk", + "moretrees:oak_trunk", + --"moretrees:palm_trunk", + "moretrees:pine_trunk", + "moretrees:rubber_tree_trunk", + "moretrees:rubber_tree_trunk_empty", + "moretrees:sequoia_trunk", + "moretrees:spruce_trunk", + "moretrees:willow_trunk", + "default:mossycobble" + }, + max_count = Moss_on_trunk_Max_Count, + rarity = Moss_on_trunk_Rarity, + min_elevation = 1, + max_elevation = 40, + plantlife_limit = -0.9, + check_air = false, + }, + "abstract_trunks.grow_moss_on_trunk" +) +end + +----------------------------------------------------------------------------------------------- +-- RooTS +----------------------------------------------------------------------------------------------- +if Roots == true then -- see settings.txt + +abstract_trunks.grow_roots = function(pos) + local twig_size = math.random(1,27) + + local right_here = {x=pos.x , y=pos.y , z=pos.z } + local below = {x=pos.x , y=pos.y-1, z=pos.z } + local north = {x=pos.x , y=pos.y , z=pos.z+1} + local east = {x=pos.x+1, y=pos.y , z=pos.z } + local south = {x=pos.x , y=pos.y , z=pos.z-1} + local west = {x=pos.x-1, y=pos.y , z=pos.z } + + local node_here = minetest.get_node(right_here) + local node_below = minetest.get_node(below) + local node_north = minetest.get_node(north) + local node_east = minetest.get_node(east) + local node_south = minetest.get_node(south) + local node_west = minetest.get_node(west) + + for i in pairs(TRuNKS) do + local MoD = TRuNKS[i][1] + local TRuNK = TRuNKS[i][2] + if minetest.get_modpath(MoD) ~= nil + and node_here.name == MoD..":"..TRuNK + and string.find(node_below.name, "dirt") + and node_here.param2 == 0 then + if minetest.registered_nodes[node_north.name].buildable_to then + minetest.set_node(north, {name="trunks:"..TRuNK.."root", param2=2}) + end + if minetest.registered_nodes[node_east.name].buildable_to then + minetest.set_node(east, {name="trunks:"..TRuNK.."root", param2=3}) + end + if minetest.registered_nodes[node_south.name].buildable_to then + minetest.set_node(south, {name="trunks:"..TRuNK.."root", param2=0}) + end + if minetest.registered_nodes[node_west.name].buildable_to then + minetest.set_node(west, {name="trunks:"..TRuNK.."root", param2=1}) + end + end + end +end + +plantslib:register_generate_plant({ + surface = {"group:tree"}, + max_count = 1000, + rarity = 1, + min_elevation = 1, + max_elevation = 40, + near_nodes = {"default:dirt_with_grass"}, + near_nodes_size = 1, + near_nodes_vertical = 1, + near_nodes_count = 1, + plantlife_limit = -1, + check_air = false, + }, + "abstract_trunks.grow_roots" +) + +end diff --git a/mods/plantlife_modpack/trunks/init.lua b/mods/plantlife_modpack/trunks/init.lua new file mode 100755 index 00000000..ee9427d0 --- /dev/null +++ b/mods/plantlife_modpack/trunks/init.lua @@ -0,0 +1,17 @@ +----------------------------------------------------------------------------------------------- +local title = "Trunks" +local version = "0.1.4" +local mname = "trunks" +----------------------------------------------------------------------------------------------- +-- Code by Mossmanikin & Neuromancer + +abstract_trunks = {} + +dofile(minetest.get_modpath("trunks").."/trunks_settings.txt") +dofile(minetest.get_modpath("trunks").."/generating.lua") +dofile(minetest.get_modpath("trunks").."/nodes.lua") +dofile(minetest.get_modpath("trunks").."/crafting.lua") + +----------------------------------------------------------------------------------------------- +print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") +----------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/mods/plantlife_modpack/trunks/nodes.lua b/mods/plantlife_modpack/trunks/nodes.lua new file mode 100755 index 00000000..4f76695b --- /dev/null +++ b/mods/plantlife_modpack/trunks/nodes.lua @@ -0,0 +1,359 @@ +-- Code by Mossmanikin & Neuromancer +----------------------------------------------------------------------------------------------- +-- TWiGS +----------------------------------------------------------------------------------------------- +-- For compatibility with older stuff +minetest.register_alias("trunks:twig", "trunks:twig_1") + +local flat_stick = {-1/2, -1/2, -1/2, 1/2, -7/16, 1/2} +local NoDe = { {1}, {2}, {3}, {4}, {5}, --[[{6},]] {7}, {8}, {9}, {10}, {11}, {12}, {13} } + + +for i in pairs(NoDe) do + local NR = NoDe[i][1] + local iNV = NR - 1 + minetest.register_node("trunks:twig_"..NR, { + description = "Twig", + inventory_image = "trunks_twig_"..NR..".png", + wield_image = "trunks_twig_"..NR..".png", + drawtype = "nodebox", + tiles = { + "trunks_twig_"..NR..".png", + "trunks_twig_"..NR..".png^[transformFY", -- mirror + "trunks_twig_6.png" -- empty + }, + paramtype = "light", + paramtype2 = "facedir", + walkable = false, + sunlight_propagates = true, + buildable_to = true, + node_box = {type = "fixed", fixed = flat_stick}, + groups = { + dig_immediate=3, -- almost literally immediate, like just picking up + attached_node=1, + not_in_creative_inventory=iNV + }, + drop = "trunks:twig_1", + sounds = default.node_sound_leaves_defaults(), + liquids_pointable = true, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + if minetest.get_node(pt.above).name=="air" then + minetest.set_node(pt.above, {name="trunks:twig_"..math.random(1,4), param2=direction}) + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack + end + end, + }) +end + +----------------------------------------------------------------------------------------------- +-- MoSS +----------------------------------------------------------------------------------------------- +local flat_moss = {-1/2, -1/2, -1/2, 1/2, -15/32--[[<-flickers if smaller]], 1/2} + +minetest.register_node("trunks:moss", { + description = "Moss", + drawtype = "nodebox",--"signlike", + tiles = {"trunks_moss.png"}, + inventory_image = "trunks_moss.png", + wield_image = "trunks_moss.png", + paramtype = "light", + paramtype2 = "facedir",--"wallmounted", + sunlight_propagates = true, + walkable = false, + node_box = {type = "fixed", fixed = flat_moss}, + selection_box = {type = "fixed", fixed = flat_stick},--{type = "wallmounted"}, + groups = {dig_immediate=2--[[,attached_node=1]]}, -- falling moss is too annoying + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- MoSS & FuNGuS +----------------------------------------------------------------------------------------------- +minetest.register_node("trunks:moss_fungus", { + description = "Moss with Fungus", + drawtype = "nodebox",--"signlike", + tiles = {"trunks_moss_fungus.png"}, + inventory_image = "trunks_moss_fungus.png", + wield_image = "trunks_moss_fungus.png", + paramtype = "light", + paramtype2 = "facedir",--"wallmounted", + sunlight_propagates = true, + walkable = false, + node_box = {type = "fixed", fixed = flat_moss}, + selection_box = {type = "fixed", fixed = flat_stick},--{type = "wallmounted"}, + groups = {dig_immediate=2--[[,attached_node=1]]}, -- falling moss is too annoying + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- TWiGS BLoCK +----------------------------------------------------------------------------------------------- +minetest.register_alias("woodstuff:twigs", "trunks:twigs") + +minetest.register_node("trunks:twigs", { + description = "Twigs Block", + paramtype2 = "facedir", + tiles = {"trunks_twigs.png"}, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + sounds = default.node_sound_wood_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- TWiGS SLaB +----------------------------------------------------------------------------------------------- +minetest.register_alias("woodstuff:twigs_slab", "trunks:twigs_slab") + +minetest.register_node("trunks:twigs_slab", { + description = "Twigs Slab", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"trunks_twigs.png"}, + node_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, 0, 1/2}, + }, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + sounds = default.node_sound_wood_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- TWiGS RooF +----------------------------------------------------------------------------------------------- +minetest.register_alias("woodstuff:twigs_roof", "trunks:twigs_roof") + +minetest.register_node("trunks:twigs_roof", { + description = "Twigs Roof", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"trunks_twigs.png"}, + node_box = { + type = "fixed", +-- { left, bottom, front, right, top, back } + fixed = { + {-1/2, 0, 0, 1/2, 1/2, 1/2}, + {-1/2, -1/2, -1/2, 1/2, 0, 0}, + } + }, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + sounds = default.node_sound_wood_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- TWiGS RooF CoRNeR +----------------------------------------------------------------------------------------------- +minetest.register_alias("woodstuff:twigs_roof_corner", "trunks:twigs_roof_corner") + +minetest.register_node("trunks:twigs_roof_corner", { + description = "Twigs Roof Corner 1", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = { + "trunks_twigs_corner.png", + "trunks_twigs_corner.png", + "trunks_twigs.png" + }, + node_box = { + type = "fixed", +-- { left, bottom, front, right, top, back } + fixed = { + {-1/2, 0, 0, 0, 1/2, 1/2}, + {0, -1/2, 0, 1/2, 0, 1/2}, + {-1/2, -1/2, -1/2, 0, 0, 0}, + } + }, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + sounds = default.node_sound_wood_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- TWiGS RooF CoRNeR 2 +----------------------------------------------------------------------------------------------- +minetest.register_alias("woodstuff:twigs_roof_corner_2", "trunks:twigs_roof_corner_2") + +minetest.register_node("trunks:twigs_roof_corner_2", { + description = "Twigs Roof Corner 2", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = { + "trunks_twigs_corner.png", + "trunks_twigs_corner.png", + "trunks_twigs.png" + }, + node_box = { + type = "fixed", +-- { left, bottom, front, right, top, back } + fixed = { + {-1/2, -1/2, 0, 0, 0, 1/2}, + {0, 0, 0, 1/2, 1/2, 1/2}, + {-1/2, 0, -1/2, 0, 1/2, 0}, + } + }, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + sounds = default.node_sound_wood_defaults(), +}) + +if Auto_Roof_Corner == true then + + local roof = "trunks:twigs_roof" + local corner = "trunks:twigs_roof_corner" + local corner_2 = "trunks:twigs_roof_corner_2" + + minetest.register_abm({ + nodenames = {roof}, + interval = 1, + chance = 1, + action = function(pos) + + local node_east = minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z }) + local node_west = minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z }) + local node_north = minetest.get_node({x=pos.x, y=pos.y, z=pos.z+1}) + local node_south = minetest.get_node({x=pos.x, y=pos.y, z=pos.z-1}) + -- corner 1 + if ((node_west.name == roof and node_west.param2 == 0) + or (node_west.name == corner and node_west.param2 == 1)) + and ((node_north.name == roof and node_north.param2 == 3) + or (node_north.name == corner and node_north.param2 == 3)) + then + minetest.set_node(pos, {name=corner, param2=0}) + end + + if ((node_north.name == roof and node_north.param2 == 1) + or (node_north.name == corner and node_north.param2 == 2)) + and ((node_east.name == roof and node_east.param2 == 0) + or (node_east.name == corner and node_east.param2 == 0)) + then + minetest.set_node(pos, {name=corner, param2=1}) + end + + if ((node_east.name == roof and node_east.param2 == 2) + or (node_east.name == corner and node_east.param2 == 3)) + and ((node_south.name == roof and node_south.param2 == 1) + or (node_south.name == corner and node_south.param2 == 1)) + then + minetest.set_node(pos, {name=corner, param2=2}) + end + + if ((node_south.name == roof and node_south.param2 == 3) + or (node_south.name == corner and node_south.param2 == 0)) + and ((node_west.name == roof and node_west.param2 == 2) + or (node_west.name == corner and node_west.param2 == 2)) + then + minetest.set_node(pos, {name=corner, param2=3}) + end + -- corner 2 + if ((node_west.name == roof and node_west.param2 == 2) + or (node_west.name == corner_2 and node_west.param2 == 1)) + and ((node_north.name == roof and node_north.param2 == 1) + or (node_north.name == corner_2 and node_north.param2 == 3)) + then + minetest.set_node(pos, {name=corner_2, param2=0}) + end + + if ((node_north.name == roof and node_north.param2 == 3) + or (node_north.name == corner_2 and node_north.param2 == 2)) + and ((node_east.name == roof and node_east.param2 == 2) + or (node_east.name == corner_2 and node_east.param2 == 0)) + then + minetest.set_node(pos, {name=corner_2, param2=1}) + end + + if ((node_east.name == roof and node_east.param2 == 0) + or (node_east.name == corner_2 and node_east.param2 == 3)) + and ((node_south.name == roof and node_south.param2 == 3) + or (node_south.name == corner_2 and node_south.param2 == 1)) + then + minetest.set_node(pos, {name=corner_2, param2=2}) + end + + if ((node_south.name == roof and node_south.param2 == 1) + or (node_south.name == corner_2 and node_south.param2 == 0)) + and ((node_west.name == roof and node_west.param2 == 0) + or (node_west.name == corner_2 and node_west.param2 == 2)) + then + minetest.set_node(pos, {name=corner_2, param2=3}) + end + + end, + }) +end + +-- MM: The following stuff is just for testing purposes for now; no generating of roots. +-- I'm not satisfied with this; they should be either bigger or a different drawtype. +----------------------------------------------------------------------------------------------- +-- RooTS +----------------------------------------------------------------------------------------------- +if Roots == true then -- see settings.txt + +local roots_cube = {-2/16, -1/2, -3/16, 2/16, 1/16, 1/2} + +local roots_sheet = {0, -1/2, -1/2, 0, 1/16, 1/2} + +local TRuNKS = { +-- MoD TRuNK + {"default", "tree" }, + {"default", "jungletree" }, + + {"trees", "tree_conifer" }, + {"trees", "tree_mangrove" }, + {"trees", "tree_palm" }, + + {"moretrees", "apple_tree_trunk" }, + {"moretrees", "beech_trunk" }, + {"moretrees", "birch_trunk" }, + {"moretrees", "fir_trunk" }, + {"moretrees", "oak_trunk" }, + {"moretrees", "palm_trunk" }, + {"moretrees", "pine_trunk" }, + {"moretrees", "rubber_tree_trunk" }, + {"moretrees", "rubber_tree_trunk_empty" }, + {"moretrees", "sequoia_trunk" }, + {"moretrees", "spruce_trunk" }, + {"moretrees", "willow_trunk" }, +} + +for i in pairs(TRuNKS) do + local MoD = TRuNKS[i][1] + local TRuNK = TRuNKS[i][2] + if minetest.get_modpath(MoD) ~= nil then + + local des = minetest.registered_nodes[MoD..":"..TRuNK].description + + minetest.register_node("trunks:"..TRuNK.."root", { + description = des.." Root", + paramtype = "light", + paramtype2 = "facedir", + tiles = { +--[[top]] MoD.."_"..TRuNK..".png", +--[[bottom]] MoD.."_"..TRuNK..".png", +--[[right]] MoD.."_"..TRuNK..".png^trunks_root_mask.png^[makealpha:0,0,0", +--[[left]] MoD.."_"..TRuNK..".png^trunks_root_mask.png^[transformFX^[makealpha:0,0,0", +--[[back]] MoD.."_"..TRuNK..".png", +--[[front]] MoD.."_"..TRuNK..".png" + }, + drawtype = "nodebox", + selection_box = {type = "fixed", fixed = roots_cube}, + node_box = {type = "fixed", fixed = roots_sheet}, + groups = { + tree=1, + snappy=1, + choppy=2, + oddly_breakable_by_hand=1, + flammable=2--, + --not_in_creative_inventory=1 -- atm in inv for testing + }, + --drop = "trunks:twig_1", -- not sure about this yet + sounds = default.node_sound_wood_defaults(), + }) + + end +end +end diff --git a/mods/plantlife_modpack/trunks/textures/credit_textures.txt b/mods/plantlife_modpack/trunks/textures/credit_textures.txt new file mode 100755 index 00000000..b3893d5d --- /dev/null +++ b/mods/plantlife_modpack/trunks/textures/credit_textures.txt @@ -0,0 +1,34 @@ +------------------------------------------------------------- +Credit for textures of "trunks" +------------------------------------------------------------- +(If more than one author is listed the names are in alphabetical order) +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +FOLDER TEXTURE AUTHORS +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +../trunks/textures trunks_moss.png Neuromancer + trunks_moss_fungus.png Neuromancer + trunks_twig_1.png Mossmanikin + trunks_twig_2.png Mossmanikin, Neuromancer + trunks_twig_3.png Mossmanikin, Neuromancer + trunks_twig_4.png Mossmanikin, Neuromancer + trunks_twig_5.png Mossmanikin, Neuromancer + (trunks_twig_6.png) (Mossmanikin) + trunks_twig_7.png Mossmanikin, Neuromancer + trunks_twig_8.png Mossmanikin, Neuromancer + trunks_twig_9.png Mossmanikin, Neuromancer + trunks_twig_10.png Mossmanikin, Neuromancer + trunks_twig_11.png Mossmanikin, Neuromancer + trunks_twigs.png Mossmanikin + trunks_twigs_corner.png Mossmanikin + trunks_twigs_top.png Mossmanikin +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +../trunks/textures/old & unused comboSticks.png Mossmanikin, Neuromancer + comboSticks_2.png Mossmanikin, Neuromancer + trunks_twig_1e.png Mossmanikin, Neuromancer + trunks_twig_1n.png Mossmanikin, Neuromancer + trunks_twig_2n.png Mossmanikin, Neuromancer + trunks_twig_3n.png Mossmanikin, Neuromancer + trunks_twig_4n.png Mossmanikin, Neuromancer + trunks_twig_5-8.png Mossmanikin, Neuromancer + trunks_twig_9-12.png Mossmanikin, Neuromancer +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- diff --git a/mods/plantlife_modpack/trunks/textures/old & unused/comboSticks.png b/mods/plantlife_modpack/trunks/textures/old & unused/comboSticks.png new file mode 100755 index 00000000..ca5eb14b Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/old & unused/comboSticks.png differ diff --git a/mods/plantlife_modpack/trunks/textures/old & unused/comboSticks_2.png b/mods/plantlife_modpack/trunks/textures/old & unused/comboSticks_2.png new file mode 100755 index 00000000..8dd954f6 Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/old & unused/comboSticks_2.png differ diff --git a/mods/plantlife_modpack/trunks/textures/old & unused/trunks_root_mask_old.png b/mods/plantlife_modpack/trunks/textures/old & unused/trunks_root_mask_old.png new file mode 100755 index 00000000..05544f40 Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/old & unused/trunks_root_mask_old.png differ diff --git a/mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_1e.png b/mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_1e.png new file mode 100755 index 00000000..e4bc9f50 Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_1e.png differ diff --git a/mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_1n.png b/mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_1n.png new file mode 100755 index 00000000..3389cd07 Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_1n.png differ diff --git a/mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_2n.png b/mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_2n.png new file mode 100755 index 00000000..11687ddd Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_2n.png differ diff --git a/mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_3n.png b/mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_3n.png new file mode 100755 index 00000000..54c9dcef Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_3n.png differ diff --git a/mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_4n.png b/mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_4n.png new file mode 100755 index 00000000..cc67ee60 Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_4n.png differ diff --git a/mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_5-8.png b/mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_5-8.png new file mode 100755 index 00000000..1bceec19 Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_5-8.png differ diff --git a/mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_9-12.png b/mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_9-12.png new file mode 100755 index 00000000..a86597b6 Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_9-12.png differ diff --git a/mods/plantlife_modpack/trunks/textures/trunks_moss.png b/mods/plantlife_modpack/trunks/textures/trunks_moss.png new file mode 100755 index 00000000..6ce1b620 Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/trunks_moss.png differ diff --git a/mods/plantlife_modpack/trunks/textures/trunks_moss_fungus.png b/mods/plantlife_modpack/trunks/textures/trunks_moss_fungus.png new file mode 100755 index 00000000..3b8788ed Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/trunks_moss_fungus.png differ diff --git a/mods/plantlife_modpack/trunks/textures/trunks_root_mask.png b/mods/plantlife_modpack/trunks/textures/trunks_root_mask.png new file mode 100755 index 00000000..242bb8d0 Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/trunks_root_mask.png differ diff --git a/mods/plantlife_modpack/trunks/textures/trunks_twig_1.png b/mods/plantlife_modpack/trunks/textures/trunks_twig_1.png new file mode 100755 index 00000000..bebb38b3 Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/trunks_twig_1.png differ diff --git a/mods/plantlife_modpack/trunks/textures/trunks_twig_10.png b/mods/plantlife_modpack/trunks/textures/trunks_twig_10.png new file mode 100755 index 00000000..a345b29a Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/trunks_twig_10.png differ diff --git a/mods/plantlife_modpack/trunks/textures/trunks_twig_11.png b/mods/plantlife_modpack/trunks/textures/trunks_twig_11.png new file mode 100755 index 00000000..69bbfb06 Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/trunks_twig_11.png differ diff --git a/mods/plantlife_modpack/trunks/textures/trunks_twig_12.png b/mods/plantlife_modpack/trunks/textures/trunks_twig_12.png new file mode 100755 index 00000000..b7678d8c Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/trunks_twig_12.png differ diff --git a/mods/plantlife_modpack/trunks/textures/trunks_twig_13.png b/mods/plantlife_modpack/trunks/textures/trunks_twig_13.png new file mode 100755 index 00000000..bf13bf90 Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/trunks_twig_13.png differ diff --git a/mods/plantlife_modpack/trunks/textures/trunks_twig_2.png b/mods/plantlife_modpack/trunks/textures/trunks_twig_2.png new file mode 100755 index 00000000..f5c3a321 Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/trunks_twig_2.png differ diff --git a/mods/plantlife_modpack/trunks/textures/trunks_twig_3.png b/mods/plantlife_modpack/trunks/textures/trunks_twig_3.png new file mode 100755 index 00000000..752003e4 Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/trunks_twig_3.png differ diff --git a/mods/plantlife_modpack/trunks/textures/trunks_twig_4.png b/mods/plantlife_modpack/trunks/textures/trunks_twig_4.png new file mode 100755 index 00000000..5bd135a7 Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/trunks_twig_4.png differ diff --git a/mods/plantlife_modpack/trunks/textures/trunks_twig_5.png b/mods/plantlife_modpack/trunks/textures/trunks_twig_5.png new file mode 100755 index 00000000..79a57f92 Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/trunks_twig_5.png differ diff --git a/mods/plantlife_modpack/trunks/textures/trunks_twig_6.png b/mods/plantlife_modpack/trunks/textures/trunks_twig_6.png new file mode 100755 index 00000000..c6824538 Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/trunks_twig_6.png differ diff --git a/mods/plantlife_modpack/trunks/textures/trunks_twig_7.png b/mods/plantlife_modpack/trunks/textures/trunks_twig_7.png new file mode 100755 index 00000000..a37b9b37 Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/trunks_twig_7.png differ diff --git a/mods/plantlife_modpack/trunks/textures/trunks_twig_8.png b/mods/plantlife_modpack/trunks/textures/trunks_twig_8.png new file mode 100755 index 00000000..b4111876 Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/trunks_twig_8.png differ diff --git a/mods/plantlife_modpack/trunks/textures/trunks_twig_9.png b/mods/plantlife_modpack/trunks/textures/trunks_twig_9.png new file mode 100755 index 00000000..176812a5 Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/trunks_twig_9.png differ diff --git a/mods/plantlife_modpack/trunks/textures/trunks_twigs.png b/mods/plantlife_modpack/trunks/textures/trunks_twigs.png new file mode 100755 index 00000000..20ae6cac Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/trunks_twigs.png differ diff --git a/mods/plantlife_modpack/trunks/textures/trunks_twigs_corner.png b/mods/plantlife_modpack/trunks/textures/trunks_twigs_corner.png new file mode 100755 index 00000000..a1ebde75 Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/trunks_twigs_corner.png differ diff --git a/mods/plantlife_modpack/trunks/textures/trunks_twigs_top.png b/mods/plantlife_modpack/trunks/textures/trunks_twigs_top.png new file mode 100755 index 00000000..828768a7 Binary files /dev/null and b/mods/plantlife_modpack/trunks/textures/trunks_twigs_top.png differ diff --git a/mods/plantlife_modpack/trunks/trunks_settings.txt b/mods/plantlife_modpack/trunks/trunks_settings.txt new file mode 100755 index 00000000..7fe8822e --- /dev/null +++ b/mods/plantlife_modpack/trunks/trunks_settings.txt @@ -0,0 +1,70 @@ +-- Settings for generation of stuff (at map-generation time) + + + + + +Horizontal_Trunks = true + + + +Trunks_Max_Count = 320 -- absolute maximum number in an area of 80x80x80 nodes + + +Trunks_Rarity = 99 -- larger values make trunks more rare (100 means chance of 0 %) + + + + + +Big_Twigs = true -- twigs larger than one node +Twigs_on_ground = true + + + +Twigs_on_ground_Max_Count = 640 -- absolute maximum number in an area of 80x80x80 nodes + +Twigs_on_ground_Rarity = 66 -- larger values make twigs more rare (100 means chance of 0 %) + + + + + +Twigs_on_water = true + + + +Twigs_on_water_Max_Count = 320 -- absolute maximum number in an area of 80x80x80 nodes + + +Twigs_on_water_Rarity = 33 -- larger values make twigs more rare (100 means chance of 0 %) + + + + + +Moss_on_ground = true + + + +Moss_on_ground_Max_Count = 400 -- absolute maximum number in an area of 80x80x80 nodes + +Moss_on_ground_Rarity = 79 -- larger values makes moss more rare (100 means chance of 0 %) + + + + + +Moss_on_trunk = true + + + +Moss_on_trunk_Max_Count = 640 -- absolute maximum number in an area of 80x80x80 nodes + +Moss_on_trunk_Rarity = 24 -- larger values makes moss more rare (100 means chance of 0 %) + + +Auto_Roof_Corner = true -- behavior is similar (not the same!) to the one of minecraft stairs + + +Roots = true \ No newline at end of file diff --git a/mods/plantlife_modpack/vines/depends.txt b/mods/plantlife_modpack/vines/depends.txt new file mode 100755 index 00000000..d1473e18 --- /dev/null +++ b/mods/plantlife_modpack/vines/depends.txt @@ -0,0 +1,2 @@ +default +plants_lib diff --git a/mods/plantlife_modpack/vines/init.lua b/mods/plantlife_modpack/vines/init.lua new file mode 100755 index 00000000..b4638c26 --- /dev/null +++ b/mods/plantlife_modpack/vines/init.lua @@ -0,0 +1,361 @@ +--[[TODO + ropebox rope break results in bottom rope dissapearing and bottom drop rope node to appear at the new bottom + and rope does not drop anything!!!! +]] + +local mod_name = "vines" +local average_height = 12 +local spawn_interval = 90 +local vines_group = {attached_node=1,vines=1,snappy=3,flammable=2,hanging_node=1} +-- Nodes +minetest.register_node("vines:rope_block", { + description = "Rope", + sunlight_propagates = true, + paramtype = "light", + tile_images = { + "default_wood.png^vines_rope.png", + "default_wood.png^vines_rope.png", + "default_wood.png", + "default_wood.png", + "default_wood.png^vines_rope.png", + "default_wood.png^vines_rope.png", + }, + drawtype = "cube", + groups = {choppy=2,oddly_breakable_by_hand=1}, + after_place_node = function(pos) + local p = {x=pos.x, y=pos.y-1, z=pos.z} + local n = minetest.get_node(p) + if n.name == "air" then + minetest.add_node(p, {name="vines:rope_end"}) + end + end, + after_dig_node = function(pos, node, digger) + local p = {x=pos.x, y=pos.y-1, z=pos.z} + local n = minetest.get_node(p) + while n.name == 'vines:rope' do + minetest.remove_node(p) + p = {x=p.x, y=p.y-1, z=p.z} + n = minetest.get_node(p) + end + if n.name == 'vines:rope_end' then + minetest.remove_node(p) + end + end +}) + +minetest.register_node("vines:rope", { + description = "Rope", + walkable = false, + climbable = true, + sunlight_propagates = true, + paramtype = "light", + drop = "", + tile_images = { "vines_rope.png" }, + drawtype = "plantlike", + groups = {flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, + }, + on_destruct = function() + + end, +}) + +minetest.register_node("vines:rope_end", { + description = "Rope", + walkable = false, + climbable = true, + sunlight_propagates = true, + paramtype = "light", + drop = "", + tile_images = { "vines_rope_end.png" }, + drawtype = "plantlike", + groups = {flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), + after_place_node = function(pos) + yesh = {x = pos.x, y= pos.y-1, z=pos.z} + minetest.add_node(yesh, {name="vines:rope"}) + end, + selection_box = { + type = "fixed", + fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, + }, +}) + +minetest.register_node("vines:side", { + description = "Vine", + walkable = false, + climbable = true, + drop = "", + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "wallmounted", + tile_images = { "vines_side.png" }, + drawtype = "signlike", + inventory_image = "vines_side.png", + groups = vines_group, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "wallmounted", + }, + after_dig_node = function(pos, oldnode, oldmetadata, user) + local wielded if user:get_wielded_item() ~= nil then wielded = user:get_wielded_item() else return end + if 'vines:shears' == wielded:get_name() then + local inv = user:get_inventory() + if inv then + inv:add_item("main", ItemStack(oldnode.name)) + end + end + end +}) + +minetest.register_node("vines:side_rotten", { + description = "Vine", + walkable = false, + climbable = false, + drop = "", + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "wallmounted", + tile_images = { "vines_side_rotten.png" }, + drawtype = "signlike", + inventory_image = "vines_side.png", + groups = {snappy = 3,flammable=2, hanging_node=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "wallmounted", + }, +}) + +minetest.register_node("vines:willow", { + description = "Vine", + walkable = false, + climbable = true, + drop = "", + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "wallmounted", + tile_images = { "vines_willow.png" }, + drawtype = "signlike", + inventory_image = "vines_willow.png", + groups = vines_group, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "wallmounted", + }, + after_dig_node = function(pos, oldnode, oldmetadata, user) + local wielded if user:get_wielded_item() ~= nil then wielded = user:get_wielded_item() else return end + if 'vines:shears' == wielded:get_name() then + local inv = user:get_inventory() + if inv then + inv:add_item("main", ItemStack(oldnode.name)) + end + end + end +}) + +minetest.register_node("vines:willow_rotten", { + description = "Vine", + walkable = false, + climbable = false, + sunlight_propagates = true, + paramtype = "light", + drop = "", + paramtype2 = "wallmounted", + tile_images = { "vines_willow_rotten.png" }, + drawtype = "signlike", + inventory_image = "vines_willow.png", + groups = {snappy = 3,flammable=2, hanging_node=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "wallmounted", + }, +}) + +minetest.register_node("vines:root", { + description = "Vine", + walkable = false, + climbable = true, + sunlight_propagates = true, + paramtype = "light", + tile_images = { "vines_root.png" }, + drawtype = "plantlike", + inventory_image = "vines_root.png", + groups = {vines=1,snappy = 3,flammable=2, hanging_node=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, + }, +}) + +minetest.register_node("vines:vine", { + description = "Vine", + walkable = false, + climbable = true, + sunlight_propagates = true, + drop = "", + paramtype = "light", + tile_images = { "vines_vine.png" }, + drawtype = "plantlike", + inventory_image = "vines_vine.png", + groups = vines_group, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.3, -1/2, -0.3, 0.3, 1/2, 0.3}, + }, + after_dig_node = function(pos, oldnode, oldmetadata, user) + local wielded if user:get_wielded_item() ~= nil then wielded = user:get_wielded_item() else return end + if 'vines:shears' == wielded:get_name() then + local inv = user:get_inventory() + if inv then + inv:add_item("main", ItemStack(oldnode.name)) + end + end + end +}) + +minetest.register_node("vines:vine_rotten", { + description = "Rotten vine", + walkable = false, + climbable = true, + drop = "", + sunlight_propagates = true, + paramtype = "light", + tile_images = { "vines_vine_rotten.png" }, + drawtype = "plantlike", + inventory_image = "vines_vine_rotten.png", + groups = {snappy = 3,flammable=2, hanging_node=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.3, -1/2, -0.3, 0.3, 1/2, 0.3}, + }, +}) + +--ABM +minetest.register_abm({ + nodenames = {"vines:vine", "vines:side", "vines:willow"}, + interval = 300, + chance = 8, + action = function(pos, node, active_object_count, active_object_count_wider) + if minetest.find_node_near(pos, 5, "group:tree") == nil then + walldir = node.param2 + minetest.add_node(pos, {name=node.name.."_rotten", param2 = walldir}) + end + end +}) + +minetest.register_abm({ + nodenames = {"vines:vine", "vines:side", "vines:willow"}, + interval = 300, + chance = 2, + action = function(pos, node, active_object_count, active_object_count_wider) + local p = {x=pos.x, y=pos.y-1, z=pos.z} + local n = minetest.get_node(p) + if n.name == "air" then + walldir = node.param2 + minetest.add_node(p, {name=node.name, param2 = walldir}) + end + end +}) + +minetest.register_abm({ + nodenames = {"vines:rope_end"}, + interval = 1, + chance = 1, + drop = "", + action = function(pos, node, active_object_count, active_object_count_wider) + local p = {x=pos.x, y=pos.y-1, z=pos.z} + local n = minetest.get_node(p) + --remove if top node is removed + if n.name == "air" then + minetest.set_node(pos, {name="vines:rope"}) + minetest.add_node(p, {name="vines:rope_end"}) + end + end +}) +--Craft +minetest.register_craft({ + output = 'vines:rope_block', + recipe = { + {'', 'default:wood', ''}, + {'', 'vines:side', ''}, + {'', 'vines:side', ''}, + } +}) + +minetest.register_craftitem("vines:vines", { + description = "Vines", + inventory_image = "vines_item.png", +}) +--spawning +plantslib:spawn_on_surfaces({ + avoid_nodes = {"vines:vine"}, + avoid_radius = 5, + spawn_delay = spawn_interval, + spawn_plants = {"vines:vine"}, + spawn_chance = 10, + spawn_surfaces = {"default:dirt_with_grass","default:dirt"}, + spawn_on_bottom = true, + plantlife_limit = -0.9, +}) + +plantslib:spawn_on_surfaces({ + avoid_nodes = {"vines:vine", "vines:side"}, + avoid_radius = 3, + spawn_delay = spawn_interval, + spawn_plants = {"vines:side"}, + spawn_chance = 10, + spawn_surfaces = {"group:leafdecay"}, + spawn_on_side = true, + near_nodes = {"default:water_source", "default:jungletree"}, + near_nodes_size = 10, + near_nodes_vertical = 5, + near_nodes_count = 1, + plantlife_limit = -0.9, +}) + +plantslib:spawn_on_surfaces({ + spawn_plants = {"vines:willow"}, + spawn_delay = spawn_interval, + spawn_chance = 3, + spawn_surfaces = {"moretrees:willow_leaves"}, + spawn_on_side = true, + near_nodes = {"default:water_source"}, + near_nodes_size = 2, + near_nodes_vertical = 5, + near_nodes_count = 1, + plantlife_limit = -0.9, +}) + +--Shears jojoa1997's shears +minetest.register_tool("vines:shears", { + description = "Shears", + inventory_image = "shears.png", + wield_image = "shears.png", + stack_max = 1, + max_drop_level=3, + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=0, + groupcaps={ + snappy={times={[3]=0.2}, maxwear=0.05, maxlevel=3}, + wool={times={[3]=0.2}, maxwear=0.05, maxlevel=3} + } + }, +}) + +minetest.register_craft({ + output = 'vines:shears', + recipe = { + {'', 'default:steel_ingot', ''}, + {'default:stick', 'default:wood', 'default:steel_ingot'}, + {'', '', 'default:stick'}, + } +}) + +print("[Vines] Loaded!") diff --git a/mods/plantlife_modpack/vines/readme.txt b/mods/plantlife_modpack/vines/readme.txt new file mode 100755 index 00000000..0228a77f --- /dev/null +++ b/mods/plantlife_modpack/vines/readme.txt @@ -0,0 +1,43 @@ + __ __ ___ __ _ _______ _______ +| | | || | | | | || || | +| |_| || | | |_| || ___|| _____| +| || | | || |___ | |_____ +| || | | _ || ___||_____ | + | | | | | | | || |___ _____| | + |___| |___| |_| |__||_______||_______| + +BY: bas080 +DESCRIPTION: Vines and ropebox +VERSION: 2.2.1 +LICENCE: WTFPL +FORUM: http://forum.minetest.net/viewtopic.php?id=2344 + +Changelog +--------- +2.2.1 +* Also spawn on leaves that are near jungletree +* Uses default wood texture +* Drops actual vines +* Changed craft + +2.2 +* Spawns on all leaves that are near water + +2.1 +* Removed rope(end) from creative inventory + +2.0 +* Root vines texture and node (no spawn) +* Side vines spawn on leaves +* Willow vines spawns on moretrees willow leaves +* Ropebox after_dig_node re-defined + +1.5 +* Added side vines +* Uses plant_lib api +* Original vines do not spawn anymore but are still there. + +1.0 +* Vines spawn beneath leave nodes +* Has rotten and non rotten vines +* Ropebox with craft diff --git a/mods/plantlife_modpack/vines/textures/new/bottomvine.png b/mods/plantlife_modpack/vines/textures/new/bottomvine.png new file mode 100755 index 00000000..c92bb859 Binary files /dev/null and b/mods/plantlife_modpack/vines/textures/new/bottomvine.png differ diff --git a/mods/plantlife_modpack/vines/textures/new/sidevine.png b/mods/plantlife_modpack/vines/textures/new/sidevine.png new file mode 100755 index 00000000..42457113 Binary files /dev/null and b/mods/plantlife_modpack/vines/textures/new/sidevine.png differ diff --git a/mods/plantlife_modpack/vines/textures/new/vinesdead.png b/mods/plantlife_modpack/vines/textures/new/vinesdead.png new file mode 100755 index 00000000..d001ec9a Binary files /dev/null and b/mods/plantlife_modpack/vines/textures/new/vinesdead.png differ diff --git a/mods/plantlife_modpack/vines/textures/new/vineslive.png b/mods/plantlife_modpack/vines/textures/new/vineslive.png new file mode 100755 index 00000000..6ba42b5a Binary files /dev/null and b/mods/plantlife_modpack/vines/textures/new/vineslive.png differ diff --git a/mods/plantlife_modpack/vines/textures/old/vines_vine2.png b/mods/plantlife_modpack/vines/textures/old/vines_vine2.png new file mode 100755 index 00000000..b938f4bc Binary files /dev/null and b/mods/plantlife_modpack/vines/textures/old/vines_vine2.png differ diff --git a/mods/plantlife_modpack/vines/textures/old/vines_vine_rotten2.png b/mods/plantlife_modpack/vines/textures/old/vines_vine_rotten2.png new file mode 100755 index 00000000..11b5474c Binary files /dev/null and b/mods/plantlife_modpack/vines/textures/old/vines_vine_rotten2.png differ diff --git a/mods/plantlife_modpack/vines/textures/shears.png b/mods/plantlife_modpack/vines/textures/shears.png new file mode 100755 index 00000000..f15024c8 Binary files /dev/null and b/mods/plantlife_modpack/vines/textures/shears.png differ diff --git a/mods/plantlife_modpack/vines/textures/vines_item.png b/mods/plantlife_modpack/vines/textures/vines_item.png new file mode 100755 index 00000000..f02bc653 Binary files /dev/null and b/mods/plantlife_modpack/vines/textures/vines_item.png differ diff --git a/mods/plantlife_modpack/vines/textures/vines_root.png b/mods/plantlife_modpack/vines/textures/vines_root.png new file mode 100755 index 00000000..c92bb859 Binary files /dev/null and b/mods/plantlife_modpack/vines/textures/vines_root.png differ diff --git a/mods/plantlife_modpack/vines/textures/vines_rope.png b/mods/plantlife_modpack/vines/textures/vines_rope.png new file mode 100755 index 00000000..525bc666 Binary files /dev/null and b/mods/plantlife_modpack/vines/textures/vines_rope.png differ diff --git a/mods/plantlife_modpack/vines/textures/vines_rope_end.png b/mods/plantlife_modpack/vines/textures/vines_rope_end.png new file mode 100755 index 00000000..a95048a3 Binary files /dev/null and b/mods/plantlife_modpack/vines/textures/vines_rope_end.png differ diff --git a/mods/plantlife_modpack/vines/textures/vines_side.png b/mods/plantlife_modpack/vines/textures/vines_side.png new file mode 100755 index 00000000..42457113 Binary files /dev/null and b/mods/plantlife_modpack/vines/textures/vines_side.png differ diff --git a/mods/plantlife_modpack/vines/textures/vines_side_rotten.png b/mods/plantlife_modpack/vines/textures/vines_side_rotten.png new file mode 100755 index 00000000..87e4360f Binary files /dev/null and b/mods/plantlife_modpack/vines/textures/vines_side_rotten.png differ diff --git a/mods/plantlife_modpack/vines/textures/vines_vine.png b/mods/plantlife_modpack/vines/textures/vines_vine.png new file mode 100755 index 00000000..6ba42b5a Binary files /dev/null and b/mods/plantlife_modpack/vines/textures/vines_vine.png differ diff --git a/mods/plantlife_modpack/vines/textures/vines_vine_rotten.png b/mods/plantlife_modpack/vines/textures/vines_vine_rotten.png new file mode 100755 index 00000000..d001ec9a Binary files /dev/null and b/mods/plantlife_modpack/vines/textures/vines_vine_rotten.png differ diff --git a/mods/plantlife_modpack/vines/textures/vines_willow.png b/mods/plantlife_modpack/vines/textures/vines_willow.png new file mode 100755 index 00000000..91f8feff Binary files /dev/null and b/mods/plantlife_modpack/vines/textures/vines_willow.png differ diff --git a/mods/plantlife_modpack/vines/textures/vines_willow_rotten.png b/mods/plantlife_modpack/vines/textures/vines_willow_rotten.png new file mode 100755 index 00000000..a8f43420 Binary files /dev/null and b/mods/plantlife_modpack/vines/textures/vines_willow_rotten.png differ diff --git a/mods/plantlife_modpack/woodsoils/depends.txt b/mods/plantlife_modpack/woodsoils/depends.txt new file mode 100755 index 00000000..462d1833 --- /dev/null +++ b/mods/plantlife_modpack/woodsoils/depends.txt @@ -0,0 +1,7 @@ +default +plants_lib +bushes? +ferns? +moretrees? +trees? +trunks? \ No newline at end of file diff --git a/mods/plantlife_modpack/woodsoils/generating.lua b/mods/plantlife_modpack/woodsoils/generating.lua new file mode 100755 index 00000000..ff844773 --- /dev/null +++ b/mods/plantlife_modpack/woodsoils/generating.lua @@ -0,0 +1,152 @@ +-- generating of forest soils + +local RaDiuS = { +-- WE1 NS1 WE2 NS2 WE3 NS3 + {-1,-2, -2,-2, -2,-3}, + { 0,-2, -3,-1, -3,-2}, + { 1,-2, -3, 0, -4,-1}, + {-2,-1, -3, 1, -4, 0}, + {-1,-1, -2, 2, -4, 1}, + { 0,-1, -1, 3, -3, 2}, + { 1,-1, 0, 3, -2, 3}, + { 2,-1, 1, 3, -1, 4}, + {-2, 0, 2, 2, 0, 4}, + {-1, 0, 3, 1, 1, 4}, + { 0, 0, 3, 0, 2, 3}, + { 1, 0, 3,-1, 3, 2}, + { 2, 0, 2,-2, 4, 1}, + {-2, 1, 1,-3, 4, 0}, + {-1, 1, 0,-3, 4,-1}, + { 0, 1, -1,-3, 3,-2}, + { 1, 1, 0, 0, 2,-3}, + { 2, 1, 0, 0, 1,-4}, + {-1, 2, 0, 0, 0,-4}, + { 0, 2, 0, 0, -1,-4}, + { 1, 2, 0, 0, 0, 0}, +} +-- e = + , n = + +abstract_woodsoils.place_soil = function(pos) + + if minetest.get_item_group(minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z}).name, "soil") > 0 + or minetest.get_item_group(minetest.get_node({x=pos.x,y=pos.y-2,z=pos.z}).name, "soil") > 0 then + for i in pairs(RaDiuS) do + local WE1 = RaDiuS[i][1] + local NS1 = RaDiuS[i][2] + local WE2 = RaDiuS[i][3] + local NS2 = RaDiuS[i][4] + local WE3 = RaDiuS[i][5] + local NS3 = RaDiuS[i][6] + local radius_1a = {x=pos.x+WE1,y=pos.y-1,z=pos.z+NS1} + local radius_1b = {x=pos.x+WE1,y=pos.y-2,z=pos.z+NS1} + local radius_2a = {x=pos.x+WE2,y=pos.y-1,z=pos.z+NS2} + local radius_2b = {x=pos.x+WE2,y=pos.y-2,z=pos.z+NS2} + local radius_3a = {x=pos.x+WE3,y=pos.y-1,z=pos.z+NS3} + local radius_3b = {x=pos.x+WE3,y=pos.y-2,z=pos.z+NS3} + --local node_1a = minetest.get_node(radius_1a) + --local node_1b = minetest.get_node(radius_1b) + local node_2a = minetest.get_node(radius_2a) + local node_2b = minetest.get_node(radius_2b) + local node_3a = minetest.get_node(radius_3a) + local node_3b = minetest.get_node(radius_3b) + -- Dirt with Leaves 1 + if minetest.get_item_group(minetest.get_node(radius_1a).name, "soil") > 0 then + minetest.set_node(radius_1a, {name="woodsoils:dirt_with_leaves_1"}) + end + if minetest.get_item_group(minetest.get_node(radius_1b).name, "soil") > 0 then + minetest.set_node(radius_1b, {name="woodsoils:dirt_with_leaves_1"}) + end + -- Grass with Leaves 2 + if string.find(node_2a.name, "dirt_with_grass") then + minetest.set_node(radius_2a, {name="woodsoils:grass_with_leaves_2"}) + end + if string.find(node_2b.name, "dirt_with_grass") then + minetest.set_node(radius_2b, {name="woodsoils:grass_with_leaves_2"}) + end + -- Grass with Leaves 1 + if string.find(node_3a.name, "dirt_with_grass") then + minetest.set_node(radius_3a, {name="woodsoils:grass_with_leaves_1"}) + end + if string.find(node_3b.name, "dirt_with_grass") then + minetest.set_node(radius_3b, {name="woodsoils:grass_with_leaves_1"}) + end + end + end +end + +plantslib:register_generate_plant({ + surface = { + "group:tree", + "ferns:fern_03", + "ferns:fern_02", + "ferns:fern_01" + }, + max_count = 1000, + rarity = 1, + min_elevation = 1, + max_elevation = 40, + near_nodes = {"group:tree","ferns:fern_03","ferns:fern_02","ferns:fern_01"}, + near_nodes_size = 5, + near_nodes_vertical = 1, + near_nodes_count = 4, + plantlife_limit = -1, + check_air = false, + }, + "abstract_woodsoils.place_soil" +) + +plantslib:register_generate_plant({ + surface = { + "moretrees:apple_tree_sapling_ongen", + "moretrees:beech_sapling_ongen", + "moretrees:birch_sapling_ongen", + "moretrees:fir_sapling_ongen", + "moretrees:jungletree_sapling_ongen", + "moretrees:oak_sapling_ongen", + "moretrees:palm_sapling_ongen", + "moretrees:pine_sapling_ongen", + "moretrees:rubber_tree_sapling_ongen", + "moretrees:sequoia_sapling_ongen", + "moretrees:spruce_sapling_ongen", + "moretrees:willow_sapling_ongen" + }, + max_count = 1000, + rarity = 2, + min_elevation = 1, + max_elevation = 40, + plantlife_limit = -0.9, + check_air = false, + }, + "abstract_woodsoils.place_soil" +) + +minetest.register_abm({ + nodenames = {"default:papyrus"}, + neighbors = { + "woodsoils:dirt_with_leaves_1", + "woodsoils:dirt_with_leaves_2", + "woodsoils:grass_with_leaves_1", + "woodsoils:grass_with_leaves_2" + }, + interval = 50, + chance = 20, + action = function(pos, node) + pos.y = pos.y-1 + local name = minetest.get_node(pos).name + if string.find(name, "_with_leaves_") 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, +}) diff --git a/mods/plantlife_modpack/woodsoils/init.lua b/mods/plantlife_modpack/woodsoils/init.lua new file mode 100755 index 00000000..9037d459 --- /dev/null +++ b/mods/plantlife_modpack/woodsoils/init.lua @@ -0,0 +1,29 @@ +----------------------------------------------------------------------------------------------- +local title = "Wood Soils" -- former "Forest Soils" +local version = "0.0.9" +local mname = "woodsoils" -- former "forestsoils" +----------------------------------------------------------------------------------------------- + +abstract_woodsoils = {} + +dofile(minetest.get_modpath("woodsoils").."/nodes.lua") +dofile(minetest.get_modpath("woodsoils").."/generating.lua") + +-- felt like playing a bit :D +--[[print(" _____ __") +print("_/ ____\\___________ ____ _______/ |_") +print("\\ __\\/ _ \\_ __ \\_/ __ \\ / ___/\\ __\\") +print(" | | ( <_> ) | \\/\\ ___/ \\___ \\ | |") +print(" |__| \\____/|__| \\___ >____ > |__|") +print(" \\/ \\/") + +print(" .__.__") +print(" __________ |__| | ______") +print(" / ___/ _ \\| | | / ___/") +print(" \\___ ( <_> ) | |__\\___ \\") +print("/____ >____/|__|____/____ >") +print(" \\/ \\/")]] + +----------------------------------------------------------------------------------------------- +print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") +----------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/mods/plantlife_modpack/woodsoils/nodes.lua b/mods/plantlife_modpack/woodsoils/nodes.lua new file mode 100755 index 00000000..e80c5220 --- /dev/null +++ b/mods/plantlife_modpack/woodsoils/nodes.lua @@ -0,0 +1,79 @@ +-- nodes + +minetest.register_node("woodsoils:dirt_with_leaves_1", { + description = "Forest Soil 1", + tiles = { + "default_dirt.png^woodsoils_ground_cover.png", + "default_dirt.png", + "default_dirt.png^woodsoils_ground_cover_side.png"}, + is_ground_content = true, + groups = { + crumbly=3, + soil=1--, + --not_in_creative_inventory=1 + }, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.4}, + }), +}) + +minetest.register_node("woodsoils:dirt_with_leaves_2", { + description = "Forest Soil 2", + tiles = { + "woodsoils_ground.png", + "default_dirt.png", + "default_dirt.png^woodsoils_ground_side.png"}, + is_ground_content = true, + groups = { + crumbly=3, + soil=1--, + --not_in_creative_inventory=1 + }, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.4}, + }), +}) + +minetest.register_node("woodsoils:grass_with_leaves_1", { + description = "Forest Soil 3", + tiles = { + "default_grass.png^woodsoils_ground_cover2.png", + "default_dirt.png", + "default_dirt.png^default_grass_side.png^woodsoils_ground_cover_side2.png"}, + is_ground_content = true, + groups = { + crumbly=3, + soil=1--, + --not_in_creative_inventory=1 + }, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.4}, + }), +}) + +minetest.register_node("woodsoils:grass_with_leaves_2", { + description = "Forest Soil 4", + tiles = { + "default_grass.png^woodsoils_ground_cover.png", + "default_dirt.png", + "default_dirt.png^default_grass_side.png^woodsoils_ground_cover_side.png"}, + is_ground_content = true, + groups = { + crumbly=3, + soil=1--, + --not_in_creative_inventory=1 + }, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.4}, + }), +}) + +-- For compatibility with older stuff +minetest.register_alias("forestsoils:dirt_with_leaves_1", "woodsoils:dirt_with_leaves_1") +minetest.register_alias("forestsoils:dirt_with_leaves_2", "woodsoils:dirt_with_leaves_2") +minetest.register_alias("forestsoils:grass_with_leaves_1", "woodsoils:grass_with_leaves_1") +minetest.register_alias("forestsoils:grass_with_leaves_2", "woodsoils:grass_with_leaves_2") diff --git a/mods/plantlife_modpack/woodsoils/textures/credit_textures.txt b/mods/plantlife_modpack/woodsoils/textures/credit_textures.txt new file mode 100755 index 00000000..45d582db --- /dev/null +++ b/mods/plantlife_modpack/woodsoils/textures/credit_textures.txt @@ -0,0 +1,16 @@ +------------------------------------------------------------- +Credit for textures of "woodsoils" +------------------------------------------------------------- +(If more than one author is listed the names are in alphabetical order) +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +FOLDER TEXTURE AUTHORS +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +../woodsoils/textures woodsoils_ground.png Mossmanikin + woodsoils_ground_cover.png Mossmanikin + woodsoils_ground_cover_side.png Mossmanikin + woodsoils_ground_cover_side2.png Mossmanikin + woodsoils_ground_cover2.png Mossmanikin + woodsoils_ground_side.png Mossmanikin +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +../woodsoils/textures/not in use woodsoils.png Mossmanikin +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- diff --git a/mods/plantlife_modpack/woodsoils/textures/not in use/woodsoils.png b/mods/plantlife_modpack/woodsoils/textures/not in use/woodsoils.png new file mode 100755 index 00000000..fd196b88 Binary files /dev/null and b/mods/plantlife_modpack/woodsoils/textures/not in use/woodsoils.png differ diff --git a/mods/plantlife_modpack/woodsoils/textures/woodsoils_ground.png b/mods/plantlife_modpack/woodsoils/textures/woodsoils_ground.png new file mode 100755 index 00000000..9001b2e5 Binary files /dev/null and b/mods/plantlife_modpack/woodsoils/textures/woodsoils_ground.png differ diff --git a/mods/plantlife_modpack/woodsoils/textures/woodsoils_ground_cover.png b/mods/plantlife_modpack/woodsoils/textures/woodsoils_ground_cover.png new file mode 100755 index 00000000..1168adc4 Binary files /dev/null and b/mods/plantlife_modpack/woodsoils/textures/woodsoils_ground_cover.png differ diff --git a/mods/plantlife_modpack/woodsoils/textures/woodsoils_ground_cover2.png b/mods/plantlife_modpack/woodsoils/textures/woodsoils_ground_cover2.png new file mode 100755 index 00000000..bb3dda20 Binary files /dev/null and b/mods/plantlife_modpack/woodsoils/textures/woodsoils_ground_cover2.png differ diff --git a/mods/plantlife_modpack/woodsoils/textures/woodsoils_ground_cover_side.png b/mods/plantlife_modpack/woodsoils/textures/woodsoils_ground_cover_side.png new file mode 100755 index 00000000..ac1393b9 Binary files /dev/null and b/mods/plantlife_modpack/woodsoils/textures/woodsoils_ground_cover_side.png differ diff --git a/mods/plantlife_modpack/woodsoils/textures/woodsoils_ground_cover_side2.png b/mods/plantlife_modpack/woodsoils/textures/woodsoils_ground_cover_side2.png new file mode 100755 index 00000000..acea8305 Binary files /dev/null and b/mods/plantlife_modpack/woodsoils/textures/woodsoils_ground_cover_side2.png differ diff --git a/mods/plantlife_modpack/woodsoils/textures/woodsoils_ground_side.png b/mods/plantlife_modpack/woodsoils/textures/woodsoils_ground_side.png new file mode 100755 index 00000000..fbca9d61 Binary files /dev/null and b/mods/plantlife_modpack/woodsoils/textures/woodsoils_ground_side.png differ diff --git a/mods/plantlife_modpack/youngtrees/depends.txt b/mods/plantlife_modpack/youngtrees/depends.txt new file mode 100755 index 00000000..bde0bdf5 --- /dev/null +++ b/mods/plantlife_modpack/youngtrees/depends.txt @@ -0,0 +1,2 @@ +default +plants_lib \ No newline at end of file diff --git a/mods/plantlife_modpack/youngtrees/init.lua b/mods/plantlife_modpack/youngtrees/init.lua new file mode 100755 index 00000000..347af302 --- /dev/null +++ b/mods/plantlife_modpack/youngtrees/init.lua @@ -0,0 +1,146 @@ +abstract_youngtrees = {} + +minetest.register_node("youngtrees:bamboo", { + description = "Young Bamboo Tree", + drawtype="nodebox", + tiles = {"bamboo.png"}, + paramtype = "light", + walkable = false, + is_ground_content = true, + node_box = { + type = "fixed", + fixed = { + {-0.058251,-0.500000,-0.413681,0.066749,0.500000,-0.282500}, --NodeBox 1 + {-0.058251,-0.500000,-0.103123,0.066749,0.500000,0.038672}, --NodeBox 2 + {-0.058251,-0.500000,0.181227,0.066749,0.500000,0.342500}, --NodeBox 3 + } + }, + groups = {snappy=3,flammable=2}, + sounds = default.node_sound_leaves_defaults(), + drop = 'trunks:twig_1' +}) + +minetest.register_node("youngtrees:youngtree2_middle",{ + description = "Young Tree 2 (middle)", + drawtype="nodebox", + tiles = {"youngtree2branch.png"}, + inventory_image = "youngtree2branch.png", + wield_image = "youngtree2branch.png", + paramtype = "light", + walkable = false, + is_ground_content = true, + node_box = { + type = "fixed", + fixed = { + {0.125000,-0.500000,-0.500000,0.500000,-0.187500,-0.125000}, --NodeBox 1 + {-0.187500,-0.187500,-0.500000,0.500000,0.125000,0.250000}, --NodeBox 2 + {-0.500000,0.125000,-0.500000,0.500000,0.500000,0.500000}, --NodeBox 3 + } + }, + groups = {snappy=3,flammable=2}, + sounds = default.node_sound_leaves_defaults(), + drop = 'trunks:twig_1' +}) + +minetest.register_node("youngtrees:youngtree_top", { + description = "Young Tree (top)", + drawtype = "plantlike", + tiles = {"youngtree16xa.png"}, + inventory_image = "youngtree16xa.png", + wield_image = "youngtree16xa.png", + paramtype = "light", + walkable = false, + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, + groups = {snappy=3,flammable=2}, + sounds = default.node_sound_leaves_defaults(), + drop = 'trunks:twig_1' +}) + + +minetest.register_node("youngtrees:youngtree_middle", { + description = "Young Tree (middle)", + drawtype = "plantlike", + tiles = {"youngtree16xb.png"}, + inventory_image = "youngtree16xb.png", + wield_image = "youngtree16xb.png", + paramtype = "light", + walkable = false, + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, + groups = {snappy=3,flammable=2}, + sounds = default.node_sound_leaves_defaults(), + drop = 'trunks:twig_1' +}) + + + +minetest.register_node("youngtrees:youngtree_bottom", { + description = "Young Tree (bottom)", + drawtype = "plantlike", + tiles = {"youngtree16xc.png"}, + inventory_image = "youngtree16xc.png", + wield_image = "youngtree16xc.png", + paramtype = "light", + walkable = false, + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, + groups = {snappy=3,flammable=2}, + sounds = default.node_sound_leaves_defaults(), + drop = 'trunks:twig_1' +}) + + + abstract_youngtrees.grow_youngtree = function(pos) + local height = math.random(1,3) + abstract_youngtrees.grow_youngtree_node(pos,height) +end + +abstract_youngtrees.grow_youngtree_node = function(pos, height) + + + local right_here = {x=pos.x, y=pos.y+1, z=pos.z} + local above_right_here = {x=pos.x, y=pos.y+2, z=pos.z} + + if minetest.get_node(right_here).name == "air" -- instead of check_air = true, + or minetest.get_node(right_here).name == "default:junglegrass" then + if height == 1 then + minetest.set_node(right_here, {name="youngtrees:youngtree_top"}) + end + if height == 2 then + minetest.set_node(right_here, {name="youngtrees:youngtree_bottom"}) + minetest.set_node(above_right_here, {name="youngtrees:youngtree_top"}) + end + if height == 3 then + local two_above_right_here = {x=pos.x, y=pos.y+3, z=pos.z} + minetest.set_node(right_here, {name="youngtrees:youngtree_bottom"}) + minetest.set_node(above_right_here, {name="youngtrees:youngtree_middle"}) + minetest.set_node(two_above_right_here, {name="youngtrees:youngtree_top"}) + end + end +end + + +plantslib:register_generate_plant({ + surface = { + "default:dirt_with_grass", + "stoneage:grass_with_silex", + "sumpf:peat", + "sumpf:sumpf" + }, + max_count = 55, --10,15 + rarity = 101 - 4, --3,4 + min_elevation = 1, -- above sea level + plantlife_limit = -0.9, + }, + abstract_youngtrees.grow_youngtree +) diff --git a/mods/plantlife_modpack/youngtrees/textures/bamboo.png b/mods/plantlife_modpack/youngtrees/textures/bamboo.png new file mode 100755 index 00000000..c5c42a95 Binary files /dev/null and b/mods/plantlife_modpack/youngtrees/textures/bamboo.png differ diff --git a/mods/plantlife_modpack/youngtrees/textures/unused/sapling.png b/mods/plantlife_modpack/youngtrees/textures/unused/sapling.png new file mode 100755 index 00000000..fd2e331d Binary files /dev/null and b/mods/plantlife_modpack/youngtrees/textures/unused/sapling.png differ diff --git a/mods/plantlife_modpack/youngtrees/textures/unused/sapling16x.png b/mods/plantlife_modpack/youngtrees/textures/unused/sapling16x.png new file mode 100755 index 00000000..a8c2a777 Binary files /dev/null and b/mods/plantlife_modpack/youngtrees/textures/unused/sapling16x.png differ diff --git a/mods/plantlife_modpack/youngtrees/textures/youngtree16xa.png b/mods/plantlife_modpack/youngtrees/textures/youngtree16xa.png new file mode 100755 index 00000000..cea22f16 Binary files /dev/null and b/mods/plantlife_modpack/youngtrees/textures/youngtree16xa.png differ diff --git a/mods/plantlife_modpack/youngtrees/textures/youngtree16xb.png b/mods/plantlife_modpack/youngtrees/textures/youngtree16xb.png new file mode 100755 index 00000000..36c3bd7f Binary files /dev/null and b/mods/plantlife_modpack/youngtrees/textures/youngtree16xb.png differ diff --git a/mods/plantlife_modpack/youngtrees/textures/youngtree16xc.png b/mods/plantlife_modpack/youngtrees/textures/youngtree16xc.png new file mode 100755 index 00000000..a0e2cd97 Binary files /dev/null and b/mods/plantlife_modpack/youngtrees/textures/youngtree16xc.png differ diff --git a/mods/plantlife_modpack/youngtrees/textures/youngtree2branch.png b/mods/plantlife_modpack/youngtrees/textures/youngtree2branch.png new file mode 100755 index 00000000..ce7e3106 Binary files /dev/null and b/mods/plantlife_modpack/youngtrees/textures/youngtree2branch.png differ diff --git a/mods/player_inactive/init.lua b/mods/player_inactive/init.lua new file mode 100644 index 00000000..a2cb6004 --- /dev/null +++ b/mods/player_inactive/init.lua @@ -0,0 +1,44 @@ +-- Interval between movement checks (in seconds). +local INTERVAL = 5 + +-- Minimum distance to move to register as not AFK (in blocks). +local MINDIST = 0.2 + +-- If player does not move within this time, kick player (in seconds). +local TIMEOUT = 3600 -- 5 minutes + +local time_afk = { } +local last_pos = { } + +local function check_moved() + for _, p in ipairs(minetest.get_connected_players()) do + local plname = p:get_player_name() + local pos = p:getpos() + local kicked + if last_pos[plname] then + local d = vector.distance(last_pos[plname], pos) + --print("Player: "..plname..", Dist: "..d) + if d < MINDIST then + time_afk[plname] = (time_afk[plname] or 0) + INTERVAL + if time_afk[plname] >= TIMEOUT then + minetest.kick_player(plname, + "Inactive for "..TIMEOUT.." seconds.") + kicked = true + end + else + time_afk[plname] = 0 + end + end + if not kicked then + last_pos[plname] = pos + end + end + minetest.after(INTERVAL, check_moved) +end +minetest.after(INTERVAL, check_moved) + +minetest.register_on_leaveplayer(function(player) + local plname = player:get_player_name() + time_afk[plname] = nil + last_pos[plname] = nil +end) diff --git a/mods/player_notes/API.txt b/mods/player_notes/API.txt new file mode 100755 index 00000000..c7f929a3 --- /dev/null +++ b/mods/player_notes/API.txt @@ -0,0 +1,23 @@ +Minetest player_notes mod - API +=============================== + +player_notes.add_note(name, target, note) + Adds a note to a player + Returns nil on success, otherwise error string + ^ name -> player or object which added the note + ^ target -> to which player the note should get added + ^ note -> the note text to add to + +player_notes.rm_note(target, key) + Removes a note from a player + Returns nil on success, otherwise error string + ^ target -> from which player the note should get removed + ^ key -> key of the note to remove from + +player_notes.save_data() + Saves changed data (use this after add_note or rm_note) + Returns nothing + +player_notes.player[] + player_notes.player["dummy"] = { key1 = note1, key2 = note2, ... } + \ No newline at end of file diff --git a/mods/player_notes/README.md b/mods/player_notes/README.md new file mode 100755 index 00000000..b850f44d --- /dev/null +++ b/mods/player_notes/README.md @@ -0,0 +1,6 @@ +player_notes +============ + +Player notes mod for Minetest + +License for everything: WTFPL \ No newline at end of file diff --git a/mods/player_notes/data_mgr.lua b/mods/player_notes/data_mgr.lua new file mode 100755 index 00000000..f93d3eb4 --- /dev/null +++ b/mods/player_notes/data_mgr.lua @@ -0,0 +1,98 @@ +-- Created by Krock +-- License: WTFPL + +player_notes.load_data = function() + local file = io.open(player_notes.data_file, "r") + if not file then + return + end + for line in file:lines() do + if line ~= "" then + local data = string.split(line, "|") + --[1] player_name, [2] key 1, [3] notice 1, [?] key X, [?+1] notice X + if #data > 1 then + player_notes.player[data[1]] = {} + local index = 2 + while index <= #data do + if data[index] ~= "" then + -- if not empty + player_notes.player[data[1]][data[index]] = data[index + 1] + end + index = index + 2 + end + end + end + end + io.close(file) +end + +-- Load late, because not much used +minetest.after(3, player_notes.load_data) + +player_notes.save_data = function() + local file = io.open(player_notes.data_file, "w") + for player, notes in pairs(player_notes.player) do + local str = "" + for key, _note in pairs(notes) do + local note = string.gsub(_note, "|", "/") + str = str..key.."|"..note.."|" + end + if string.len(str) > 2 then + file:write(player.."|"..str.."\n") + end + end + io.close(file) +end + +player_notes.add_note = function(name, target, note) + if not name or not target or not note then + return "ERROR: Name, target or note == NIL" + end + if not minetest.auth_table[target] then + return "Unknown player: "..target + end + if string.len(note) < 2 or string.len(note) > 60 then + return "Note is too short or too long to add. Sorry." + end + if not player_notes.player[target] then + player_notes.player[target] = {} + end + -- generate random key + local key = tostring(math.random(player_notes.key_min, player_notes.key_max)) + if player_notes.enable_timestamp ~= "" then + player_notes.player[target][key] = "<"..name.." ("..os.date(player_notes.enable_timestamp)..")> "..note + else + player_notes.player[target][key] = "<"..name.."> "..note + end + return nil +end + +player_notes.rm_note = function(target, key) + if not target or not key then + return "ERROR: Target or key == NIL" + end + if not player_notes.player[target] then + return "Player has no notes so far." + end + -- must be unique key + key = tonumber(key) + if not key then + return "Key must be a number!" + end + if not player_notes.player[target][tostring(key)] then + return "Key does not exist. Can not remove unknown note." + end + player_notes.player[target][tostring(key)] = nil + local delete = true + for key, note in pairs(player_notes.player[target]) do + if string.len(note) > 2 then + delete = false + break + end + end + -- remove empty players + if delete then + player_notes.player[target] = nil + end + return nil +end \ No newline at end of file diff --git a/mods/player_notes/depends.txt b/mods/player_notes/depends.txt new file mode 100755 index 00000000..e69de29b diff --git a/mods/player_notes/init.lua b/mods/player_notes/init.lua new file mode 100755 index 00000000..e02a81fb --- /dev/null +++ b/mods/player_notes/init.lua @@ -0,0 +1,183 @@ +-- Created by Krock +-- License: WTFPL + +player_notes = {} +player_notes.player = {} +player_notes.mod_path = minetest.get_modpath("player_notes") +player_notes.data_file = minetest.get_worldpath().."/player_notes.data" +player_notes.mgr = {} + +-- to generate unique 4-digit long numbers as key +player_notes.enable_timestamp = "%x %X" -- %x = date | %X = time -> "%x %X" +player_notes.key_min = 100 +player_notes.key_max = 999 + +dofile(player_notes.mod_path.."/data_mgr.lua") +minetest.register_privilege("player_notes", "Can view and modify player's notes.") + +minetest.register_chatcommand("notes", { + description = "Lists all notes / Lists notes of ", + privs = {player_notes=true}, + func = function(name, param) + player_notes.mgr[name] = { indx={}, data="", note={}, key="" } + minetest.show_formspec(name, "player_notes:conf", player_notes.get_formspec(0, name)) + end +}) + +minetest.register_on_player_receive_fields(function(player,formname,fields) + if formname ~= "player_notes:conf" then + return + end + local player_name = player:get_player_name() + if fields.quit then -- exit + if player_notes.mgr[player_name] then + player_notes.mgr[player_name] = nil + end + return + end + if not player_notes.mgr[player_name] then + return + end + if not minetest.check_player_privs(player_name, {player_notes=true}) then + return + end + if fields.close then -- exit to main + minetest.show_formspec(player_name, "player_notes:conf", player_notes.get_formspec(0, player_name)) + return + end + if fields.m_all then -- list-click-event + local selected_player = "" + local event = minetest.explode_textlist_event(fields.m_all) + if event.type == "CHG" then + selected_player = player_notes.mgr[player_name].indx[event.index] + end + player_notes.mgr[player_name].data = selected_player + minetest.show_formspec(player_name, "player_notes:conf", player_notes.get_formspec(0, player_name)) + return + end + if fields.p_all then -- list-click-event + local selected_note = "" + local event = minetest.explode_textlist_event(fields.p_all) + if event.type == "CHG" then + selected_note = tostring(player_notes.mgr[player_name].note[event.index]) + end + player_notes.mgr[player_name].key = selected_note + minetest.show_formspec(player_name, "player_notes:conf", player_notes.get_formspec(2, player_name)) + return + end + if fields.m_add and fields.p_name then -- show adding formspec + if not minetest.auth_table[fields.p_name] then + minetest.chat_send_player(player_name, "Unknown player: "..fields.p_name) + return + end + player_notes.mgr[player_name].data = fields.p_name + minetest.show_formspec(player_name, "player_notes:conf", player_notes.get_formspec(1, player_name)) + return + end + if fields.m_rm then -- show removing formspec + if not player_notes.player[player_notes.mgr[player_name].data] then + minetest.chat_send_player(player_name, "Please select a player name.") + return + end + minetest.show_formspec(player_name, "player_notes:conf", player_notes.get_formspec(2, player_name)) + return + end + if fields.m_so then -- show player notes only + if not player_notes.player[player_notes.mgr[player_name].data] then + minetest.chat_send_player(player_name, "Please select a player name.") + return + end + minetest.show_formspec(player_name, "player_notes:conf", player_notes.get_formspec(3, player_name)) + return + end + + if fields.p_add and fields.p_name and fields.p_note then -- add note + local back_err = player_notes.add_note(player_name, fields.p_name, fields.p_note) + if not back_err then + minetest.chat_send_player(player_name, "Added note!") + player_notes.save_data() + else + minetest.chat_send_player(player_name, back_err) + end + return + end + if fields.p_rm and fields.p_key then -- ReMove note + local back_err = player_notes.rm_note(player_notes.mgr[player_name].data, fields.p_key) + if not back_err then + minetest.chat_send_player(player_name, "Removed note!") + player_notes.save_data() + else + minetest.chat_send_player(player_name, back_err) + end + minetest.show_formspec(player_name, "player_notes:conf", player_notes.get_formspec(2, player_name)) + end +end) + +function player_notes.get_formspec(mode, player_name) + local formspec = "" + if mode == 0 then + --main formspec + formspec = ("size[5,8]".. + "label[1,0;Player note manager]".. + "field[0.3,7.2;5,0.5;p_name;;"..player_notes.mgr[player_name].data.."]".. + "button_exit[1,7.5;3,1;exit;Close]".. + "textlist[0,0.5;4,6;m_all;") + player_notes.mgr[player_name].indx = {} + local i = 1 + for player, notes in pairs(player_notes.player) do + local num = 0 + for key, note in pairs(notes) do + num = num + 1 + end + formspec = formspec..player.." ("..tostring(num)..")".."," + player_notes.mgr[player_name].indx[i] = player + i = i + 1 + end + player_notes.mgr[player_name].indx[i] = "" + formspec = (formspec..";;false]".. + "button[4.2,2;1,1;m_add;+]".. + "button[4.2,3;1,1;m_so;?]".. + "button[4.2,4;1,1;m_rm;-]") + elseif mode == 1 then + --player add note + formspec = ("size[7,4]".. + "label[1,0;Add a player note]".. + "field[0.5,1.5;4,0.5;p_name;Player name:;"..player_notes.mgr[player_name].data.."]".. + "field[0.5,3;6,0.5;p_note;Note text:;]".. + "button[1,3.5;2,1;p_add;Add]".. + "button[3,3.5;2,1;close;Close]") + elseif mode == 2 then + --player remove note + formspec = ("size[10,6]".. + "label[1,0;Remove a player note]".. + "label[0,0.6;Key:]".. + "field[1,1;3,0.5;p_key;;"..player_notes.mgr[player_name].key.."]".. + "button[3.6,0.5;2,1;p_rm;Remove]".. + "button[5.6,0.5;2,1;close;Close]".. + "textlist[0,1.5;9.8,4.8;p_all;") + player_notes.mgr[player_name].note = {} + local i = 1 + if player_notes.player[player_notes.mgr[player_name].data] then + for key, note in pairs(player_notes.player[player_notes.mgr[player_name].data]) do + formspec = formspec..key.." - "..minetest.formspec_escape(note).."," + player_notes.mgr[player_name].note[i] = key + i = i + 1 + end + end + player_notes.mgr[player_name].note[i] = "" + formspec = formspec..";;false]" + elseif mode == 3 then + formspec = ("size[10,5]".. + "label[1,0;Notes of: "..player_notes.mgr[player_name].data.."]".. + "button[3.5,4.5;3,1;close;Close]".. + "textlist[0,0;9.8,4.5;p_see;") + player_notes.mgr[player_name].note = {} + if player_notes.player[player_notes.mgr[player_name].data] then + for key, note in pairs(player_notes.player[player_notes.mgr[player_name].data]) do + formspec = formspec..minetest.formspec_escape(note).."," + end + end + formspec = formspec..";;false]" + end + return formspec +end diff --git a/mods/playerplus/README b/mods/playerplus/README new file mode 100755 index 00000000..4142ddb2 --- /dev/null +++ b/mods/playerplus/README @@ -0,0 +1,8 @@ +PlayerPlus mod for minetest +--------------------------- + +This mod lets the player walk faster when walking on ice, also walking on snow slows them down and touching a cactus will hurt... enjoy + +0.1 - Initial release + +Released under WTFPL \ No newline at end of file diff --git a/mods/playerplus/depends.txt b/mods/playerplus/depends.txt new file mode 100755 index 00000000..331d858c --- /dev/null +++ b/mods/playerplus/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/mods/playerplus/init.lua b/mods/playerplus/init.lua new file mode 100755 index 00000000..c051768b --- /dev/null +++ b/mods/playerplus/init.lua @@ -0,0 +1,60 @@ + +-- walking on ice makes player walk faster, also cactus hurts player when touched +-- by TenPlus1 + +local time = 0 +minetest.register_globalstep(function(dtime) + + time = time + dtime + + -- every 1 second + if time > 1 then + + -- check players + for _,player in ipairs(minetest.get_connected_players()) do + + -- is it me? + if player:is_player() then + + -- where am I? + local pos = player:getpos() + + -- what am I standing on? + pos.y = pos.y - 0.1 -- just under player to detect snow also + local nod = minetest.get_node(pos).name + + -- standing on ice? if so walk faster + if nod == "default:ice" then + player:set_physics_override(1.3, 1, 1) + -- standing on snow? if so walk slower + elseif nod == "default:snow" or nod == "default:snowblock" then + player:set_physics_override(0.7, 1, 1) + else + player:set_physics_override(1, 1, 1) -- (default speed, jump, gravity) + end + + -- am I near a cactus? + pos.y = pos.y + 0.1 + local near = minetest.find_node_near(pos, 1, "default:cactus") + if near then + pos = near + + -- am I touching the cactus? if so it hurts + for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 1.0)) do + if object:get_hp() > 0 then + object:set_hp(object:get_hp()-1) + end + end + + end + + -- reset time and break entity check + time = 0 + break + end + end + + -- incase none of the above happened, reset time for next check + time = 0 + end +end) diff --git a/mods/quartz/README.txt b/mods/quartz/README.txt new file mode 100755 index 00000000..8e6fd5d5 --- /dev/null +++ b/mods/quartz/README.txt @@ -0,0 +1,82 @@ + ___ _ __ __ _ + / _ \ _ _ __ _ _ __| |_ ____ | \/ | ___ __| | + | | | | | | |/ _` | '__| __|_ / | |\/| |/ _ \ / _` | + | |_| | |_| | (_| | | | |_ / / | | | | (_) | (_| | + \__\_\\__,_|\__,_|_| \__/___| |_| |_|\___/ \__,_| + + +This mod adds quartz ore and some decorative blocks to minetest. + + +Crafting: + +Quartz Block: +c = quartz crystal x = nothing + +x|x|x +----- +c|c|x +----- +c|c|x + +Quartz Pillar: +q = quartz block x = nothing + +x|x|x +----- +x|q|x +----- +x|x|x + + +Quartz Slab: +q = quartz block x = nothing + +x|x|x +----- +x|x|x +----- +q|q|q + +Quartz Stairs: +q = quartz block x = nothing + +q|x|x +q|q|x +q|q|q + +Quartz Pillar Slab: +q = quartz pillar x = nothing + +x|x|x +----- +x|x|x +----- +q|q|q + +Chiseled Quartz: +q = quartz slab x = nothing + +x|x|x +----- +x|q|x +----- +x|q|x + +Quartz Crystal Piece (usless as of now): +c = quartz crystal x = nothing + +x|x|x +----- +x|c|x +----- +x|x|x + + +License: + +CC BY-SA 3.0 + +More info at http://creativecommons.org/licenses/by-sa/3.0/ + + diff --git a/mods/quartz/depends.txt b/mods/quartz/depends.txt new file mode 100755 index 00000000..40c22edc --- /dev/null +++ b/mods/quartz/depends.txt @@ -0,0 +1,3 @@ +default, +stairs, +moreblocks? diff --git a/mods/quartz/init.lua b/mods/quartz/init.lua new file mode 100755 index 00000000..99fe84f0 --- /dev/null +++ b/mods/quartz/init.lua @@ -0,0 +1,190 @@ +dofile(minetest.get_modpath("quartz").."/settings.txt") + +--Node Registration + +--Quartz Crystal +minetest.register_craftitem("quartz:quartz_crystal", { + description = "Quartz Crystal", + inventory_image = "quartz_crystal_full.png", +}) +minetest.register_craftitem("quartz:quartz_crystal_piece", { + description = "Quartz Crystal Piece", + inventory_image = "quartz_crystal_piece.png", +}) + +--Ore +minetest.register_node("quartz:quartz_ore", { + description = "Quartz Ore", + tiles = {"default_stone.png^quartz_ore.png"}, + groups = {cracky=3, stone=1}, + drop = 'quartz:quartz_crystal', + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "quartz:quartz_ore", + wherein = "default:stone", + clust_scarcity = 10*10*10, + clust_num_ores = 6, + clust_size = 5, + height_min = -31000, + height_max = -5, +}) + +--Quartz Block +minetest.register_node("quartz:block", { + description = "Quartz Block", + tiles = {"quartz_block.png"}, + groups = {cracky=3, oddly_breakable_by_hand=1}, + sounds = default.node_sound_glass_defaults(), +}) + +--Chiseled Quartz +minetest.register_node("quartz:chiseled", { + description = "Chiseled Quartz", + tiles = {"quartz_chiseled.png"}, + groups = {cracky=3, oddly_breakable_by_hand=1}, + sounds = default.node_sound_glass_defaults(), +}) + +--Quartz Pillar +minetest.register_node("quartz:pillar", { + description = "Quartz Pillar", + paramtype2 = "facedir", + tiles = {"quartz_pillar_top.png", "quartz_pillar_top.png", "quartz_pillar_side.png"}, + groups = {cracky=3, oddly_breakable_by_hand=1}, + sounds = default.node_sound_glass_defaults(), + on_place = minetest.rotate_node +}) + + +--Stairs & Slabs +stairs.register_stair_and_slab("quartzblock", "quartz:block", + {cracky=3, oddly_breakable_by_hand=1}, + {"quartz_block.png"}, + "Quartz stair", + "Quartz slab", + default.node_sound_glass_defaults()) + +stairs.register_slab("quartzstair", "quartz:pillar", + {cracky=3, oddly_breakable_by_hand=1}, + {"quartz_pillar_top.png", "quartz_pillar_top.png", "quartz_pillar_side.png"}, + "Quartz Pillar stair", + "Quartz Pillar slab", + default.node_sound_glass_defaults()) + + + + + + + +--Crafting + +--Quartz Crystal Piece +minetest.register_craft({ + output = '"quartz:quartz_crystal_piece" 3', + recipe = { + {'quartz:quartz_crystal'} + } +}) + +--Quartz Block +minetest.register_craft({ + output = '"quartz:block" 4', + recipe = { + {'quartz:quartz_crystal', 'quartz:quartz_crystal', ''}, + {'quartz:quartz_crystal', 'quartz:quartz_crystal', ''}, + {'', '', ''} + } +}) + +--Chiseled Quartz +minetest.register_craft({ + output = 'quartz:chiseled 2', + recipe = { + {'stairs:slab_quartzblock', '', ''}, + {'stairs:slab_quartzblock', '', ''}, + {'', '', ''}, + } +}) + +--Chiseled Quartz(for stairsplus) +minetest.register_craft({ + output = 'quartz:chiseled 2', + recipe = { + {'quartz:slab_block', '', ''}, + {'quartz:slab_block', '', ''}, + {'', '', ''}, + } +}) + +--Quartz Pillar +minetest.register_craft({ + output = 'quartz:pillar 2', + recipe = { + {'quartz:block', '', ''}, + {'quartz:block', '', ''}, + {'', '', ''}, + } +}) + +--abms +local dirs2 = { 12, 9, 18, 7, 12 } + +minetest.register_abm({ + nodenames = { "quartz:pillar_horizontal" }, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local fdir = node.param2 or 0 + nfdir = dirs2[fdir+1] + minetest.add_node(pos, {name = "quartz:pillar", param2 = nfdir}) + end, +}) + +--These are deprecated, don't use them + +if enable_horizontal_pillar then + --Quartz Pillar (horizontal) + minetest.register_node("quartz:pillar_horizontal", { + description = "Quartz Pillar Horizontal", + tiles = {"quartz_pillar_side.png", "quartz_pillar_side.png", "quartz_pillar_side.png^[transformR90", + "quartz_pillar_side.png^[transformR90", "quartz_pillar_top.png", "quartz_pillar_top.png"}, + paramtype2 = "facedir", + drop = 'quartz:pillar', + groups = {cracky=3, oddly_breakable_by_hand=1, not_in_creative_inventory=1}, + sounds = default.node_sound_glass_defaults(), + }) +end + + +--Compatibility with stairsplus + +if minetest.get_modpath("moreblocks") and enable_stairsplus then + register_stair_slab_panel_micro("quartz", "block", "quartz:block", + {cracky=3}, + {"quartz_block.png"}, + "Quartz Block", + "block", + 0) + + register_stair_slab_panel_micro("quartz", "chiseled", "quartz:chiseled", + {cracky=3}, + {"quartz_chiseled.png"}, + "Chiseled Quartz", + "chiseled", + 0) + + register_stair_slab_panel_micro("quartz", "pillar", "quartz:pillar", + {cracky=3}, + {"quartz_pillar_top.png", "quartz_pillar_top.png", "quartz_pillar_side.png"}, + "Quartz Pillar", + "pillar", + 0) + + table.insert(circular_saw.known_stairs, "quartz:block") + table.insert(circular_saw.known_stairs, "quartz:chiseled") + table.insert(circular_saw.known_stairs, "quartz:pillar") +end diff --git a/mods/quartz/settings.txt b/mods/quartz/settings.txt new file mode 100755 index 00000000..246021e6 --- /dev/null +++ b/mods/quartz/settings.txt @@ -0,0 +1,7 @@ +-- Set this to true to allow usage of the stairsplus mod in moreblocks + +enable_stairsplus = false + +-- This enables the old horizontal pillar block(deprecated, be sure to convert them back to normal pillars) + +enable_horizontal_pillar = true diff --git a/mods/quartz/textures/quartz_block.png b/mods/quartz/textures/quartz_block.png new file mode 100755 index 00000000..802b3d58 Binary files /dev/null and b/mods/quartz/textures/quartz_block.png differ diff --git a/mods/quartz/textures/quartz_chiseled.png b/mods/quartz/textures/quartz_chiseled.png new file mode 100755 index 00000000..aef1c2f2 Binary files /dev/null and b/mods/quartz/textures/quartz_chiseled.png differ diff --git a/mods/quartz/textures/quartz_crystal_full.png b/mods/quartz/textures/quartz_crystal_full.png new file mode 100755 index 00000000..c647df03 Binary files /dev/null and b/mods/quartz/textures/quartz_crystal_full.png differ diff --git a/mods/quartz/textures/quartz_crystal_piece.png b/mods/quartz/textures/quartz_crystal_piece.png new file mode 100755 index 00000000..45e448f1 Binary files /dev/null and b/mods/quartz/textures/quartz_crystal_piece.png differ diff --git a/mods/quartz/textures/quartz_ore.png b/mods/quartz/textures/quartz_ore.png new file mode 100755 index 00000000..805666af Binary files /dev/null and b/mods/quartz/textures/quartz_ore.png differ diff --git a/mods/quartz/textures/quartz_pillar_side.png b/mods/quartz/textures/quartz_pillar_side.png new file mode 100755 index 00000000..71a5c309 Binary files /dev/null and b/mods/quartz/textures/quartz_pillar_side.png differ diff --git a/mods/quartz/textures/quartz_pillar_side_horizontal.png b/mods/quartz/textures/quartz_pillar_side_horizontal.png new file mode 100755 index 00000000..4d58985c Binary files /dev/null and b/mods/quartz/textures/quartz_pillar_side_horizontal.png differ diff --git a/mods/quartz/textures/quartz_pillar_top.png b/mods/quartz/textures/quartz_pillar_top.png new file mode 100755 index 00000000..9ad9a034 Binary files /dev/null and b/mods/quartz/textures/quartz_pillar_top.png differ diff --git a/mods/riesenpilz/.gitignore b/mods/riesenpilz/.gitignore new file mode 100644 index 00000000..d9c069a6 --- /dev/null +++ b/mods/riesenpilz/.gitignore @@ -0,0 +1,4 @@ +## Generic ignorable patterns and files +*~ +.*.swp +debug.txt diff --git a/mods/riesenpilz/README.txt b/mods/riesenpilz/README.txt new file mode 100644 index 00000000..d9e7a6aa --- /dev/null +++ b/mods/riesenpilz/README.txt @@ -0,0 +1,10 @@ +------Mushrooms------ +— riesenpilz_stem.png (edited with gimp) from gamiano.de +— glowshroom and lavashroom from bas080's plants mod (WTFPL) +— parasol mushroom from a mod called mushrooms (WTFPL) +— "45" mushrooms from r01922090's mush45 mod (WTFPL) + +TODO: +— add giant nethershroom +— finish supporting the mushrooms mod +— generate mushrooms not only in mushroom biomes diff --git a/mods/riesenpilz/depends.txt b/mods/riesenpilz/depends.txt new file mode 100644 index 00000000..3a7daa1d --- /dev/null +++ b/mods/riesenpilz/depends.txt @@ -0,0 +1,2 @@ +default + diff --git a/mods/riesenpilz/functions.lua b/mods/riesenpilz/functions.lua new file mode 100644 index 00000000..8b428692 --- /dev/null +++ b/mods/riesenpilz/functions.lua @@ -0,0 +1,19 @@ +if riesenpilz.info then + function riesenpilz.inform(msg, spam, t) + if spam <= riesenpilz.max_spam then + local info + if t then + info = string.format("[riesenpilz] "..msg.." after ca. %.2fs", os.clock() - t) + else + info = "[riesenpilz] "..msg + end + print(info) + if riesenpilz.inform_all then + minetest.chat_send_all(info) + end + end + end +else + function riesenpilz.inform() + end +end diff --git a/mods/riesenpilz/init.lua b/mods/riesenpilz/init.lua new file mode 100644 index 00000000..67dba58d --- /dev/null +++ b/mods/riesenpilz/init.lua @@ -0,0 +1,614 @@ +local load_time_start = os.clock() +local MAX_SIZE = 3 + +riesenpilz = {} +dofile(minetest.get_modpath("riesenpilz").."/settings.lua") +dofile(minetest.get_modpath("riesenpilz").."/functions.lua") + +local function r_area(manip, width, height, pos) + local emerged_pos1, emerged_pos2 = manip:read_from_map( + {x=pos.x-width, y=pos.y, z=pos.z-width}, + {x=pos.x+width, y=pos.y+height, z=pos.z+width} + ) + return VoxelArea:new({MinEdge=emerged_pos1, MaxEdge=emerged_pos2}) +end + +local function set_vm_data(manip, nodes, pos, t1, name) + manip:set_data(nodes) + manip:write_to_map() + riesenpilz.inform("a "..name.." mushroom grew at ("..pos.x.."|"..pos.y.."|"..pos.z..")", 3, t1) + local t1 = os.clock() + manip:update_map() + riesenpilz.inform("map updated", 3, t1) +end + +--Growing Functions + +local c + +function riesenpilz_hybridpilz(pos) + + local t1 = os.clock() + local manip = minetest.get_voxel_manip() + local area = r_area(manip, MAX_SIZE+1, MAX_SIZE+3, pos) + local nodes = manip:get_data() + + local breite = math.random(MAX_SIZE) + local br = breite+1 + local height = breite+2 + + for i = 0, height, 1 do + nodes[area:index(pos.x, pos.y+i, pos.z)] = c.stem + end + + for l = -br+1, br, 1 do + for k = -1, 1, 2 do + nodes[area:index(pos.x+br*k, pos.y+height, pos.z-l*k)] = c.head_red + nodes[area:index(pos.x+l*k, pos.y+height, pos.z+br*k)] = c.head_red + end + end + + for k = -breite, breite, 1 do + for l = -breite, breite, 1 do + nodes[area:index(pos.x+l, pos.y+height+1, pos.z+k)] = c.head_red + nodes[area:index(pos.x+l, pos.y+height, pos.z+k)] = c.lamellas + end + end + + set_vm_data(manip, nodes, pos, t1, "red") +end + + +function riesenpilz_brauner_minecraftpilz(pos) + + local t1 = os.clock() + local manip = minetest.get_voxel_manip() + local area = r_area(manip, MAX_SIZE+1, MAX_SIZE+2, pos) + local nodes = manip:get_data() + + local random = math.random(MAX_SIZE-1) + local br = random+1 + local breite = br+1 + local height = br+2 + + for i in area:iterp(pos, {x=pos.x, y=pos.y+height, z=pos.z}) do + nodes[i] = c.stem + end + + for l = -br, br, 1 do + for k = -breite, breite, breite*2 do + nodes[area:index(pos.x+k, pos.y+height+1, pos.z+l)] = c.head_brown + nodes[area:index(pos.x+l, pos.y+height+1, pos.z+k)] = c.head_brown + end + for k = -br, br, 1 do + nodes[area:index(pos.x+l, pos.y+height+1, pos.z+k)] = c.head_brown + end + end + + set_vm_data(manip, nodes, pos, t1, "brown") +end + + +function riesenpilz_minecraft_fliegenpilz(pos) + + local t1 = os.clock() + local manip = minetest.get_voxel_manip() + local area = r_area(manip, 2, 4, pos) + local nodes = manip:get_data() + local param2s = manip:get_param2_data() + + local height = 3 + + for i = 0, height, 1 do + nodes[area:index(pos.x, pos.y+i, pos.z)] = c.stem + end + + for j = -1, 1, 1 do + for k = -1, 1, 1 do + nodes[area:index(pos.x+j, pos.y+height+1, pos.z+k)] = c.head_red + end + for l = 1, height, 1 do + local y = pos.y+l + for _,p in ipairs({ + {area:index(pos.x+j, y, pos.z+2), 0}, + {area:index(pos.x+j, y, pos.z-2), 2}, + {area:index(pos.x+2, y, pos.z+j), 1}, + {area:index(pos.x-2, y, pos.z+j), 3}, + }) do + local tmp = p[1] + nodes[tmp] = c.head_red_side + param2s[tmp] = p[2] + end + end + end + + manip:set_data(nodes) + manip:set_param2_data(param2s) + manip:write_to_map() + manip:update_map() + riesenpilz.inform("a fly agaric grew at ("..pos.x.."|"..pos.y.."|"..pos.z..")", 3, t1) +end + + +local function ran_node(a, b, ran) + if math.random(ran) == 1 then + return a + end + return b +end + +function riesenpilz_lavashroom(pos) + + local t1 = os.clock() + local manip = minetest.get_voxel_manip() + local area = r_area(manip, 4, MAX_SIZE+7, pos) + local nodes = manip:get_data() + + local height = 3+math.random(MAX_SIZE-2) + nodes[area:index(pos.x, pos.y, pos.z)] = c.air + + for i = -1, 1, 2 do + local o = 2*i + + for n = 0, height, 1 do + nodes[area:index(pos.x+i, pos.y+n, pos.z)] = c.stem_brown + nodes[area:index(pos.x, pos.y+n, pos.z+i)] = c.stem_brown + end + + for l = -1, 1, 1 do + for k = 2, 3, 1 do + nodes[area:index(pos.x+k*i, pos.y+height+2, pos.z+l)] = c.head_brown_full + nodes[area:index(pos.x+l, pos.y+height+2, pos.z+k*i)] = c.head_brown_full + end + nodes[area:index(pos.x+l, pos.y+height+1, pos.z+o)] = c.head_brown_full + nodes[area:index(pos.x+o, pos.y+height+1, pos.z+l)] = c.head_brown_full + end + + for m = -1, 1, 2 do + for k = 2, 3, 1 do + for j = 2, 3, 1 do + nodes[area:index(pos.x+j*i, pos.y+height+2, pos.z+k*m)] = ran_node(c.head_yellow, c.head_orange, 7) + end + end + nodes[area:index(pos.x+i, pos.y+height+1, pos.z+m)] = c.head_brown_full + nodes[area:index(pos.x+m*2, pos.y+height+1, pos.z+o)] = c.head_brown_full + end + + for l = -3+1, 3, 1 do + nodes[area:index(pos.x+3*i, pos.y+height+5, pos.z-l*i)] = ran_node(c.head_yellow, c.head_orange, 5) + nodes[area:index(pos.x+l*i, pos.y+height+5, pos.z+3*i)] = ran_node(c.head_yellow, c.head_orange, 5) + end + + for j = 0, 1, 1 do + for l = -3, 3, 1 do + nodes[area:index(pos.x+i*4, pos.y+height+3+j, pos.z+l)] = ran_node(c.head_yellow, c.head_orange, 6) + nodes[area:index(pos.x+l, pos.y+height+3+j, pos.z+i*4)] = ran_node(c.head_yellow, c.head_orange, 6) + end + end + + end + + for k = -2, 2, 1 do + for l = -2, 2, 1 do + nodes[area:index(pos.x+k, pos.y+height+6, pos.z+l)] = ran_node(c.head_yellow, c.head_orange, 4) + end + end + + set_vm_data(manip, nodes, pos, t1, "lavashroom") +end + + +function riesenpilz_glowshroom(pos) + + local t1 = os.clock() + local manip = minetest.get_voxel_manip() + local area = r_area(manip, 2, MAX_SIZE+5, pos) + local nodes = manip:get_data() + + local height = 2+math.random(MAX_SIZE) + local br = 2 + + for i = 0, height, 1 do + nodes[area:index(pos.x, pos.y+i, pos.z)] = c.stem_blue + end + + for i = -1, 1, 2 do + + for k = -br, br, 2*br do + for l = 2, height, 1 do + nodes[area:index(pos.x+i*br, pos.y+l, pos.z+k)] = c.head_blue + end + nodes[area:index(pos.x+i*br, pos.y+1, pos.z+k)] = c.head_blue_bright + end + + for l = -br+1, br, 1 do + nodes[area:index(pos.x+i*br, pos.y+height, pos.z-l*i)] = c.head_blue + nodes[area:index(pos.x+l*i, pos.y+height, pos.z+br*i)] = c.head_blue + end + + end + + for l = 0, br, 1 do + for i = -br+l, br-l, 1 do + for k = -br+l, br-l, 1 do + nodes[area:index(pos.x+i, pos.y+height+1+l, pos.z+k)] = c.head_blue + end + end + end + + set_vm_data(manip, nodes, pos, t1, "glowshroom") +end + + +function riesenpilz_parasol(pos) + local t1 = os.clock() + + local height = 6+math.random(MAX_SIZE) + local br = math.random(MAX_SIZE+1,MAX_SIZE+2) + + local manip = minetest.get_voxel_manip() + local area = r_area(manip, br, height, pos) + local nodes = manip:get_data() + + local rh = math.random(2,3) + local bhead1 = br-1 + local bhead2 = math.random(1,br-2) + + --stem + for i in area:iterp(pos, {x=pos.x, y=pos.y+height-2, z=pos.z}) do + nodes[i] = c.stem + end + + for _,j in ipairs({ + {bhead2, 0, c.head_brown_bright}, + {bhead1, -1, c.head_binge} + }) do + for i in area:iter(pos.x-j[1], pos.y+height+j[2], pos.z-j[1], pos.x+j[1], pos.y+height+j[2], pos.z+j[1]) do + nodes[i] = j[3] + end + end + + for k = -1, 1, 2 do + for l = 0, 1 do + nodes[area:index(pos.x+k, pos.y+rh, pos.z-l*k)] = c.head_white + nodes[area:index(pos.x+l*k, pos.y+rh, pos.z+k)] = c.head_white + end + for l = -br+1, br do + nodes[area:index(pos.x+br*k, pos.y+height-2, pos.z-l*k)] = c.head_binge + nodes[area:index(pos.x+l*k, pos.y+height-2, pos.z+br*k)] = c.head_binge + end + for l = -bhead1+1, bhead1 do + nodes[area:index(pos.x+bhead1*k, pos.y+height-2, pos.z-l*k)] = c.head_white + nodes[area:index(pos.x+l*k, pos.y+height-2, pos.z+bhead1*k)] = c.head_white + end + end + + set_vm_data(manip, nodes, pos, t1, "parasol") +end + + +function riesenpilz_apple(pos) + + local t1 = os.clock() + local manip = minetest.get_voxel_manip() + local area = r_area(manip, 5, 14, pos) + local nodes = manip:get_data() + + local size = 5 + local a = size*2 + local b = size-1 + + for l = -b, b, 1 do + for j = 1, a-1, 1 do + for k = -size, size, a do + nodes[area:index(pos.x+k, pos.y+j, pos.z+l)] = c.red + nodes[area:index(pos.x+l, pos.y+j, pos.z+k)] = c.red + end + end + for i = -b, b, 1 do + nodes[area:index(pos.x+i, pos.y, pos.z+l)] = c.red + nodes[area:index(pos.x+i, pos.y+a, pos.z+l)] = c.red + end + end + + for i = a+1, a+b, 1 do + nodes[area:index(pos.x, pos.y+i, pos.z)] = c.tree + end + + local c = pos.y+1 + for i = -3,1,1 do + nodes[area:index(pos.x+i, c, pos.z+1)] = c.brown + end + for i = 0,1,1 do + nodes[area:index(pos.x+i+1, c, pos.z-1-i)] = c.brown + nodes[area:index(pos.x+i+2, c, pos.z-1-i)] = c.brown + end + nodes[area:index(pos.x+1, c, pos.z)] = c.brown + nodes[area:index(pos.x-3, c+1, pos.z+1)] = c.brown + + manip:set_data(nodes) + manip:write_to_map() + riesenpilz.inform("an apple grew at ("..pos.x.."|"..pos.y.."|"..pos.z..")", 3, t1) + manip:update_map() +end + + + +--3D apple [3apple] + + +local tmp = minetest.registered_nodes["default:apple"] +minetest.register_node(":default:apple", { + description = tmp.description, + drawtype = "nodebox", + visual_scale = tmp.visual_scale, + tiles = {"3apple_apple_top.png","3apple_apple_bottom.png","3apple_apple.png"}, + inventory_image = tmp.inventory_image, + sunlight_propagates = tmp.sunlight_propagates, + walkable = tmp.walkable, + paramtype = tmp.paramtype, + node_box = { + type = "fixed", + fixed = { + {-3/16, -7/16, -3/16, 3/16, 1/16, 3/16}, + {-4/16, -6/16, -3/16, 4/16, 0, 3/16}, + {-3/16, -6/16, -4/16, 3/16, 0, 4/16}, + {-1/32, 1/16, -1/32, 1/32, 4/16, 1/32}, + {-1/16, 1.6/16, 0, 1/16, 1.8/16, 1/16}, + {-2/16, 1.4/16, 1/16, 1/16, 1.6/16, 2/16}, + {-2/16, 1.2/16, 2/16, 0, 1.4/16, 3/16}, + {-1.5/16, 1/16, .5/16, 0.5/16, 1.2/16, 2.5/16}, + } + }, + groups = tmp.groups, + on_use = tmp.on_use, + sounds = tmp.sounds, + after_place_node = tmp.after_place_node, +}) + + + +--Mushroom Nodes + + +local function pilz(name, desc, b, burntime) + burntime = burntime or 1 + local box = { + type = "fixed", + fixed = b + } + minetest.register_node("riesenpilz:"..name, { + description = desc, + tiles = {"riesenpilz_"..name.."_top.png", "riesenpilz_"..name.."_bottom.png", "riesenpilz_"..name.."_side.png"}, + inventory_image = "riesenpilz_"..name.."_side.png", + walkable = false, + buildable_to = true, + drawtype = "nodebox", + paramtype = "light", + groups = {snappy=3,flammable=2,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), + node_box = box, + selection_box = box, + furnace_burntime = burntime + }) +end + +local BOX = { + RED = { + {-1/16, -8/16, -1/16, 1/16, -6/16, 1/16}, + {-3/16, -6/16, -3/16, 3/16, -5/16, 3/16}, + {-4/16, -5/16, -4/16, 4/16, -4/16, 4/16}, + {-3/16, -4/16, -3/16, 3/16, -3/16, 3/16}, + {-2/16, -3/16, -2/16, 2/16, -2/16, 2/16} + }, + BROWN = { + {-0.15, -0.2, -0.15, 0.15, -0.1, 0.15}, + {-0.2, -0.3, -0.2, 0.2, -0.2, 0.2}, + {-0.05, -0.5, -0.05, 0.05, -0.3, 0.05} + }, + FLY_AGARIC = { + {-0.05, -0.5, -0.05, 0.05, 1/20, 0.05}, + {-3/20, -6/20, -3/20, 3/20, 0, 3/20}, + {-4/20, -2/20, -4/20, 4/20, -4/20, 4/20} + }, + LAVASHROOM = { + {-1/16, -8/16, -1/16, 1/16, -6/16, 1/16}, + {-2/16, -6/16, -2/16, 2/16, 0, 2/16}, + {-3/16, -5/16, -3/16, 3/16, -1/16, 3/16}, + {-4/16, -4/16, -4/16, 4/16, -2/16, 4/16} + }, + GLOWSHROOM = { + {-1/16, -8/16, -1/16, 1/16, -1/16, 1/16}, + {-2/16, -3/16, -2/16, 2/16, -2/16, 2/16}, + {-3/16, -5/16, -3/16, 3/16, -3/16, 3/16}, + {-3/16, -7/16, -3/16, -2/16, -5/16, -2/16}, + {3/16, -7/16, -3/16, 2/16, -5/16, -2/16}, + {-3/16, -7/16, 3/16, -2/16, -5/16, 2/16}, + {3/16, -7/16, 3/16, 2/16, -5/16, 2/16} + }, + NETHER_SHROOM = { + {-1/16, -8/16, -1/16, 1/16, -2/16, 1/16}, + {-2/16, -6/16, -2/16, 2/16, -5/16, 2/16}, + {-3/16, -2/16, -3/16, 3/16, 0, 3/16}, + {-4/16, -1/16, -4/16, 4/16, 1/16,-2/16}, + {-4/16, -1/16, 2/16, 4/16, 1/16, 4/16}, + {-4/16, -1/16, -2/16,-2/16, 1/16, 2/16}, + { 2/16, -1/16, -2/16, 4/16, 1/16, 2/16} + }, + PARASOL = { + {-1/16, -8/16, -1/16, 1/16, 0, 1/16}, + {-2/16, -6/16, -2/16, 2/16, -5/16, 2/16}, + {-5/16, -4/16, -5/16, 5/16, -3/16, 5/16}, + {-4/16, -3/16, -4/16, 4/16, -2/16, 4/16}, + {-3/16, -2/16, -3/16, 3/16, -1/16, 3/16} + }, + RED45 = { + {-1/16, -0.5, -1/16, 1/16, 1/8, 1/16}, + {-3/16, 1/8, -3/16, 3/16, 1/4, 3/16}, + {-5/16, -1/4, -5/16, -1/16, 1/8, -1/16}, + {1/16, -1/4, -5/16, 5/16, 1/8, -1/16}, + {-5/16, -1/4, 1/16, -1/16, 1/8, 5/16}, + {1/16, -1/4, 1/16, 5/16, 1/8, 5/16} + }, + BROWN45 = { + {-1/16, -0.5, -1/16, 1/16, 1/16, 1/16}, + {-3/8, 1/8, -7/16, 3/8, 1/4, 7/16}, + {-7/16, 1/8, -3/8, 7/16, 1/4, 3/8}, + {-3/8, 1/4, -3/8, 3/8, 5/16, 3/8}, + {-3/8, 1/16, -3/8, 3/8, 1/8, 3/8} + }, +} + + +local mushrooms_list = { + {"brown", "Brown Mushroom", BOX.BROWN}, + {"red", "Red Mushroom", BOX.RED}, + {"fly_agaric", "Fly Agaric", BOX.FLY_AGARIC}, + {"lavashroom", "Lavashroom", BOX.LAVASHROOM}, + {"glowshroom", "Glowshroom", BOX.GLOWSHROOM}, + {"nether_shroom", "Nether Mushroom", BOX.NETHER_SHROOM, 6}, + {"parasol", "Parasol Mushroom", BOX.PARASOL}, + {"red45", "45 Brown Mushroom", BOX.RED45}, + {"brown45", "45 Red Mushroom", BOX.BROWN45}, +} + +for _,i in ipairs(mushrooms_list) do + pilz(i[1], i[2], i[3], i[4]) +end + + + +--Mushroom Blocks + + +local function pilznode(name, desc, textures, sapling) +minetest.register_node("riesenpilz:"..name, { + description = desc, + tiles = textures, + groups = {oddly_breakable_by_hand=3}, + drop = {max_items = 1, + items = {{items = {"riesenpilz:"..sapling},rarity = 20,}, + {items = {"riesenpilz:"..name},rarity = 1,}}}, +}) +end + + +local r = "riesenpilz_" +local h = "head_" +local s = "stem_" +local rh = r..h +local rs = r..s + +local GS = "Giant Mushroom " +local GSH = GS.."Head " +local GSS = GS.."Stem " + +local pilznode_list = { + {"stem", GSS.."Beige", {rs.."top.png", rs.."top.png", "riesenpilz_stem.png"}, "stem"}, + {s.."brown", GSS.."Brown", {rs.."top.png", rs.."top.png", rs.."brown.png"}, s.."brown"}, + {s.."blue", GSS.."Blue", {rs.."top.png",rs.."top.png",rs.."blue.png"}, s.."blue"}, + {"lamellas", "Giant Mushroom Lamella", {"riesenpilz_lamellas.png"}, "lamellas"}, + {h.."red", GSH.."Red", {"riesenpilz_head.png", "riesenpilz_lamellas.png", "riesenpilz_head.png"}, "red"}, + {h.."orange", GSH.."Orange", {rh.."orange.png"}, "lavashroom"}, + {h.."yellow", GSH.."Yellow", {rh.."yellow.png"}, "lavashroom"}, + {h.."brown", GSH.."Brown", {r.."brown_top.png", r.."lamellas.png", r.."brown_top.png"}, "brown"}, + {h.."brown_full", GSH.."Full Brown", {r.."brown_top.png"},"brown"}, + {h.."blue_bright", GSH.."Blue Bright", {rh.."blue_bright.png"},"glowshroom"}, + {h.."blue", GSH.."Blue", {rh.."blue.png"},"glowshroom"}, + {h.."white", GSH.."White", {rh.."white.png"},"parasol"}, + {h.."binge", GSH.."Binge", {rh.."binge.png", rh.."white.png", rh.."binge.png"},"parasol"}, + {h.."brown_bright", GSH.."Brown Bright", {rh.."brown_bright.png", rh.."white.png", rh.."brown_bright.png"},"parasol"}, +} + +for _,i in ipairs(pilznode_list) do + pilznode(i[1], i[2], i[3], i[4]) +end + + +minetest.register_node("riesenpilz:head_red_side", { + description = "Giant Mushroom Head Side", + tiles = {"riesenpilz_head.png", "riesenpilz_lamellas.png", "riesenpilz_head.png", + "riesenpilz_head.png", "riesenpilz_head.png", "riesenpilz_lamellas.png"}, + paramtype2 = "facedir", + groups = {oddly_breakable_by_hand=3}, + drop = {max_items = 1, + items = {{items = {"riesenpilz:fly_agaric"},rarity = 20,}, + {items = {"riesenpilz:head_red"},rarity = 1,}}}, +}) + +minetest.register_node("riesenpilz:ground", { + description = "Grass?", + tiles = {"riesenpilz_ground_top.png","default_dirt.png","default_dirt.png^riesenpilz_ground_side.png"}, + groups = {crumbly=3}, + sounds = default.node_sound_dirt_defaults(), + drop = 'default:dirt' +}) + + +c = { + air = minetest.get_content_id("air"), + + stem = minetest.get_content_id("riesenpilz:stem"), + head_red = minetest.get_content_id("riesenpilz:head_red"), + lamellas = minetest.get_content_id("riesenpilz:lamellas"), + + head_brown = minetest.get_content_id("riesenpilz:head_brown"), + + head_red_side = minetest.get_content_id("riesenpilz:head_red_side"), + + stem_brown = minetest.get_content_id("riesenpilz:stem_brown"), + head_brown_full = minetest.get_content_id("riesenpilz:head_brown_full"), + head_orange = minetest.get_content_id("riesenpilz:head_orange"), + head_yellow = minetest.get_content_id("riesenpilz:head_yellow"), + + stem_blue = minetest.get_content_id("riesenpilz:stem_blue"), + head_blue = minetest.get_content_id("riesenpilz:head_blue"), + head_blue_bright = minetest.get_content_id("riesenpilz:head_blue_bright"), + + head_white = minetest.get_content_id("riesenpilz:head_white"), + head_binge = minetest.get_content_id("riesenpilz:head_binge"), + head_brown_bright = minetest.get_content_id("riesenpilz:head_brown_bright"), + + red = minetest.get_content_id("default:copperblock"), + brown = minetest.get_content_id("default:desert_stone"), + tree = minetest.get_content_id("default:tree"), +} + + + +--Growing + + +minetest.register_tool("riesenpilz:growingtool", { + description = "Growingtool", + inventory_image = "riesenpilz_growingtool.png", +}) + +minetest.register_on_punchnode(function(pos, node, puncher) + if puncher:get_wielded_item():get_name() == "riesenpilz:growingtool" then + local name = node.name + if name == "riesenpilz:red" then + riesenpilz_hybridpilz(pos) + elseif name == "riesenpilz:fly_agaric" then + riesenpilz_minecraft_fliegenpilz(pos) + elseif name == "riesenpilz:brown" then + riesenpilz_brauner_minecraftpilz(pos) + elseif name == "riesenpilz:lavashroom" then + riesenpilz_lavashroom(pos) + elseif name == "riesenpilz:glowshroom" then + riesenpilz_glowshroom(pos) + elseif name == "riesenpilz:parasol" then + riesenpilz_parasol(pos) + elseif name == "default:apple" then + riesenpilz_apple(pos) + end + end +end) + + + +if riesenpilz.enable_mapgen then + dofile(minetest.get_modpath("riesenpilz") .. "/mapgen.lua") +end + +riesenpilz.inform("loaded", 1, load_time_start) diff --git a/mods/riesenpilz/mapgen.lua b/mods/riesenpilz/mapgen.lua new file mode 100644 index 00000000..b82bf5f6 --- /dev/null +++ b/mods/riesenpilz/mapgen.lua @@ -0,0 +1,317 @@ +local c +local function define_contents() + c = { + air = minetest.get_content_id("air"), + stone = minetest.get_content_id("default:stone"), + dirt = minetest.get_content_id("default:dirt"), + desert_sand = minetest.get_content_id("default:desert_sand"), + + dry_shrub = minetest.get_content_id("default:dry_shrub"), + + ground = minetest.get_content_id("riesenpilz:ground"), + riesenpilz_brown = minetest.get_content_id("riesenpilz:brown"), + riesenpilz_red = minetest.get_content_id("riesenpilz:red"), + riesenpilz_fly_agaric = minetest.get_content_id("riesenpilz:fly_agaric"), + riesenpilz_lavashroom = minetest.get_content_id("riesenpilz:lavashroom"), + riesenpilz_glowshroom = minetest.get_content_id("riesenpilz:glowshroom"), + riesenpilz_parasol = minetest.get_content_id("riesenpilz:parasol"), + + GROUND = {}, + TREE_STUFF = { + minetest.get_content_id("default:tree"), + minetest.get_content_id("default:leaves"), + minetest.get_content_id("default:apple"), + minetest.get_content_id("default:jungletree"), + minetest.get_content_id("default:jungleleaves"), + minetest.get_content_id("default:junglegrass"), + }, + USUAL_STUFF = { + minetest.get_content_id("default:cactus"), + minetest.get_content_id("default:papyrus"), + }, + } + for name,data in pairs(minetest.registered_nodes) do + local groups = data.groups + if groups then + if groups.crumbly == 3 + or groups.soil == 1 then + table.insert(c.GROUND, minetest.get_content_id(name)) + end + end + end +end + + +local function find_grond(a,list) + for _,nam in ipairs(list) do + if a == nam then + return true + end + end + return false +end + + +function riesenpilz_circle(nam, pos, radius, chance) + for i = -radius, radius, 1 do + for j = -radius, radius, 1 do + if math.floor( math.sqrt(i^2+j^2) +0.5) == radius + and data[area:index(pos.x+i, pos.y, pos.z+j)] == c.air + and pr:next(1,chance) == 1 + and data[area:index(pos.x+i, pos.y-1, pos.z+j)] == c.ground then + data[area:index(pos.x+i, pos.y, pos.z+j)] = nam + end + end + end +end + +local function say_info(info) + local info = "[riesenpilz] "..info + print(info) + minetest.chat_send_all(info) +end + +local riesenpilz_rarity = riesenpilz.mapgen_rarity +local riesenpilz_size = riesenpilz.mapgen_size +local smooth_trans_size = riesenpilz.smooth_trans_size + +local nosmooth_rarity = 1-riesenpilz_rarity/50 +local perlin_scale = riesenpilz_size*100/riesenpilz_rarity +local smooth_rarity_max = nosmooth_rarity+smooth_trans_size*2/perlin_scale +local smooth_rarity_min = nosmooth_rarity-smooth_trans_size/perlin_scale +local smooth_rarity_dif = smooth_rarity_max-smooth_rarity_min + +--local USUAL_STUFF = {"default:leaves","default:apple","default:tree","default:cactus","default:papyrus"} + +local contents_defined +minetest.register_on_generated(function(minp, maxp, seed) + if maxp.y <= 0 + or minp.y >= 150 then --avoid generation in the sky + return + end + + local x0,z0,x1,z1 = minp.x,minp.z,maxp.x,maxp.z -- Assume X and Z lengths are equal + local env = minetest.env --Should make things a bit faster. + local perlin1 = env:get_perlin(51,3, 0.5, perlin_scale) --Get map specific perlin + + --[[if not (perlin1:get2d({x=x0, y=z0}) > 0.53) and not (perlin1:get2d({x=x1, y=z1}) > 0.53) + and not (perlin1:get2d({x=x0, y=z1}) > 0.53) and not (perlin1:get2d({x=x1, y=z0}) > 0.53) + and not (perlin1:get2d({x=(x1-x0)/2, y=(z1-z0)/2}) > 0.53) then]] + if not riesenpilz.always_generate + and not ( perlin1:get2d( {x=x0, y=z0} ) > nosmooth_rarity ) --top left + and not ( perlin1:get2d( { x = x0 + ( (x1-x0)/2), y=z0 } ) > nosmooth_rarity )--top middle + and not (perlin1:get2d({x=x1, y=z1}) > nosmooth_rarity) --bottom right + and not (perlin1:get2d({x=x1, y=z0+((z1-z0)/2)}) > nosmooth_rarity) --right middle + and not (perlin1:get2d({x=x0, y=z1}) > nosmooth_rarity) --bottom left + and not (perlin1:get2d({x=x1, y=z0}) > nosmooth_rarity) --top right + and not (perlin1:get2d({x=x0+((x1-x0)/2), y=z1}) > nosmooth_rarity) --left middle + and not (perlin1:get2d({x=(x1-x0)/2, y=(z1-z0)/2}) > nosmooth_rarity) --middle + and not (perlin1:get2d({x=x0, y=z1+((z1-z0)/2)}) > nosmooth_rarity) then --bottom middle + return + end + + local t1 = os.clock() + riesenpilz.inform("tries to generate a giant mushroom biome at: x=["..minp.x.."; "..maxp.x.."]; y=["..minp.y.."; "..maxp.y.."]; z=["..minp.z.."; "..maxp.z.."]", 2) + + if not contents_defined then + define_contents() + contents_defined = true + end + + local divs = (maxp.x-minp.x); + local num = 1 + local tab = {} + pr = PseudoRandom(seed+68) + + local vm, emin, emax = minetest.get_mapgen_object("voxelmanip") + data = vm:get_data() + area = VoxelArea:new{MinEdge=emin, MaxEdge=emax} + + for p_pos in area:iterp(minp, maxp) do --remove tree stuff + local d_p_pos = data[p_pos] + for _,nam in ipairs(c.TREE_STUFF) do + if d_p_pos == nam then + data[p_pos] = c.air + break + end + end + end + --[[remove usual stuff + local trees = env:find_nodes_in_area(minp, maxp, USUAL_STUFF) + for i,v in pairs(trees) do + env:remove_node(v) + end]] + + + local smooth = riesenpilz.smooth + + for j=0,divs do + for i=0,divs do + local x,z = x0+i,z0+j + + --Check if we are in a "riesenpilz biome" + local in_biome = false + local test = perlin1:get2d({x=x, y=z}) + --smooth mapgen + if riesenpilz.always_generate then + in_biome = true + elseif smooth then + if test >= smooth_rarity_max + or ( + test > smooth_rarity_min + and pr:next(1, 1000) <= ((test-smooth_rarity_min)/smooth_rarity_dif)*1000 + ) then + in_biome = true + end + elseif (not smooth) + and test > nosmooth_rarity then + in_biome = true + end + + if in_biome then + + for b = minp.y,maxp.y,1 do --remove usual stuff + local p_pos = area:index(x, b, z) + local d_p_pos = data[p_pos] + for _,nam in ipairs(c.USUAL_STUFF) do + if d_p_pos == nam then + data[p_pos] = c.air + break + end + end + end + + local ground_y = nil --Definition des Bodens: +-- for y=maxp.y,0,-1 do + for y=maxp.y,1,-1 do + if find_grond(data[area:index(x, y, z)], c.GROUND) then + ground_y = y + break + end + end + if ground_y then + local p_ground = area:index(x, ground_y, z) + local p_boden = area:index(x, ground_y+1, z) + local d_p_ground = data[p_ground] + local d_p_boden = data[p_boden] + + data[p_ground] = c.ground + for i = -1,-5,-1 do + local p_pos = area:index(x, ground_y+i, z) + local d_p_pos = data[p_pos] + if d_p_pos == c.desert_sand then + data[p_pos] = c.dirt + else + break + end + end + local boden = {x=x,y=ground_y+1,z=z} + if pr:next(1,15) == 1 then + data[p_boden] = c.dry_shrub + elseif pr:next(1,80) == 1 then + riesenpilz_circle(c.riesenpilz_brown, boden, pr:next(3,4), 3) + elseif pr:next(1,85) == 1 then + riesenpilz_circle(c.riesenpilz_parasol, boden, pr:next(3,5), 3) + elseif pr:next(1,90) == 1 then + riesenpilz_circle(c.riesenpilz_red, boden, pr:next(4,5), 3) + elseif pr:next(1,100) == 1 then + riesenpilz_circle(c.riesenpilz_fly_agaric, boden, 4, 3) + elseif pr:next(1,4000) == 1 then + riesenpilz_circle(c.riesenpilz_lavashroom, boden, pr:next(5,6), 3) + elseif pr:next(1,5000) == 1 then + riesenpilz_circle(c.riesenpilz_glowshroom, boden, 3, 3) + --[[elseif pr:next(1,80) == 1 then + env:add_node(boden, {name="riesenpilz:brown"}) + elseif pr:next(1,90) == 1 then + env:add_node(boden, {name="riesenpilz:red"}) + elseif pr:next(1,100) == 1 then + env:add_node(boden, {name="riesenpilz:fly_agaric"}) + elseif pr:next(1,4000) == 1 then + env:add_node(boden, {name="riesenpilz:lavashroom"}) + elseif pr:next(1,5000) == 1 then + env:add_node(boden, {name="riesenpilz:glowshroom"})]] + elseif pr:next(1,380) == 1 then + tab[num] = {1, boden} + num = num+1 + elseif pr:next(1,340) == 10 then + tab[num] = {2, boden} + num = num+1 + elseif pr:next(1,390) == 20 then + tab[num] = {3, boden} + num = num+1 + elseif pr:next(1,6000) == 2 and pr:next(1,200) == 15 then + tab[num] = {4, boden} + num = num+1 + elseif pr:next(1,800) == 7 then + tab[num] = {5, boden} + num = num+1 + end + end + end + end + end + vm:set_data(data) + vm:update_liquids() + vm:write_to_map() + riesenpilz.inform("ground finished", 2, t1) + local t2 = os.clock() + for _,v in pairs(tab) do + local p = v[2] + local m = v[1] + if m == 1 then + riesenpilz_hybridpilz(p) + elseif m == 2 then + riesenpilz_brauner_minecraftpilz(p) + elseif m == 3 then + riesenpilz_minecraft_fliegenpilz(p) + elseif m == 4 then + riesenpilz_lavashroom(p) + elseif m == 5 then + riesenpilz_parasol(p) + end + end + riesenpilz.inform("giant shrooms generated", 2, t2) + riesenpilz.inform("done", 1, t1) +end) +--[[ if maxp.y < -10 then + local x0,z0,x1,z1 = minp.x,minp.z,maxp.x,maxp.z -- Assume X and Z lengths are equal + local env = minetest.env --Should make things a bit faster. + local perlin1 = env:get_perlin(11,3, 0.5, 200) --Get map specific perlin + + --[if not (perlin1:get2d({x=x0, y=z0}) > 0.53) and not (perlin1:get2d({x=x1, y=z1}) > 0.53) + and not (perlin1:get2d({x=x0, y=z1}) > 0.53) and not (perlin1:get2d({x=x1, y=z0}) > 0.53) + and not (perlin1:get2d({x=(x1-x0)/2, y=(z1-z0)/2}) > 0.53) then] + if not ( perlin1:get2d( {x=x0, y=z0} ) > 0.53 ) --top left + and not ( perlin1:get2d( { x = x0 + ( (x1-x0)/2), y=z0 } ) > 0.53 )--top middle + and not (perlin1:get2d({x=x1, y=z1}) > 0.53) --bottom right + and not (perlin1:get2d({x=x1, y=z0+((z1-z0)/2)}) > 0.53) --right middle + and not (perlin1:get2d({x=x0, y=z1}) > 0.53) --bottom left + and not (perlin1:get2d({x=x1, y=z0}) > 0.53) --top right + and not (perlin1:get2d({x=x0+((x1-x0)/2), y=z1}) > 0.53) --left middle + and not (perlin1:get2d({x=(x1-x0)/2, y=(z1-z0)/2}) > 0.53) --middle + and not (perlin1:get2d({x=x0, y=z1+((z1-z0)/2)}) > 0.53) then --bottom middle + print("abortriesenpilz") + return + end + local divs = (maxp.x-minp.x); + local pr = PseudoRandom(seed+68) + + for j=0,divs do + for i=0,divs do + local x,z = x0+i,z0+j + + for y=minp.y,maxp.y,1 do + local pos = {x=x, y=y, z=z} + + if env:get_node(pos).name == "air" + and env:get_node({x=x, y=y-1, z=z}).name == "default:stone" + and pr:next(1,40) == 33 + and env:find_node_near(pos, 4, "group:igniter") + and not env:find_node_near(pos, 3, "group:igniter") then + env:add_node(pos, {name="riesenpilz:lavashroom"}) + end + end + end + end + end +end)]] diff --git a/mods/riesenpilz/rest/caverealms_fungi.png b/mods/riesenpilz/rest/caverealms_fungi.png new file mode 100644 index 00000000..27853088 Binary files /dev/null and b/mods/riesenpilz/rest/caverealms_fungi.png differ diff --git a/mods/riesenpilz/rest/caverealms_mycena.png b/mods/riesenpilz/rest/caverealms_mycena.png new file mode 100644 index 00000000..7ab3ad88 Binary files /dev/null and b/mods/riesenpilz/rest/caverealms_mycena.png differ diff --git a/mods/riesenpilz/rest/mush45_b.png b/mods/riesenpilz/rest/mush45_b.png new file mode 100644 index 00000000..cd5bca36 Binary files /dev/null and b/mods/riesenpilz/rest/mush45_b.png differ diff --git a/mods/riesenpilz/rest/mush45_b0.png b/mods/riesenpilz/rest/mush45_b0.png new file mode 100644 index 00000000..91b7ec99 Binary files /dev/null and b/mods/riesenpilz/rest/mush45_b0.png differ diff --git a/mods/riesenpilz/rest/mush45_b1.png b/mods/riesenpilz/rest/mush45_b1.png new file mode 100644 index 00000000..2c5c1355 Binary files /dev/null and b/mods/riesenpilz/rest/mush45_b1.png differ diff --git a/mods/riesenpilz/rest/mush45_b2.png b/mods/riesenpilz/rest/mush45_b2.png new file mode 100644 index 00000000..0c266bf1 Binary files /dev/null and b/mods/riesenpilz/rest/mush45_b2.png differ diff --git a/mods/riesenpilz/rest/mush45_bm.png b/mods/riesenpilz/rest/mush45_bm.png new file mode 100644 index 00000000..d4e8d2ed Binary files /dev/null and b/mods/riesenpilz/rest/mush45_bm.png differ diff --git a/mods/riesenpilz/rest/mush45_bm2.png b/mods/riesenpilz/rest/mush45_bm2.png new file mode 100644 index 00000000..b1bbbda6 Binary files /dev/null and b/mods/riesenpilz/rest/mush45_bm2.png differ diff --git a/mods/riesenpilz/rest/mush45_bm3.png b/mods/riesenpilz/rest/mush45_bm3.png new file mode 100644 index 00000000..0a8596d6 Binary files /dev/null and b/mods/riesenpilz/rest/mush45_bm3.png differ diff --git a/mods/riesenpilz/rest/mush45_bm4.png b/mods/riesenpilz/rest/mush45_bm4.png new file mode 100644 index 00000000..830285bb Binary files /dev/null and b/mods/riesenpilz/rest/mush45_bm4.png differ diff --git a/mods/riesenpilz/rest/mush45_meal.png b/mods/riesenpilz/rest/mush45_meal.png new file mode 100644 index 00000000..ba9799d2 Binary files /dev/null and b/mods/riesenpilz/rest/mush45_meal.png differ diff --git a/mods/riesenpilz/rest/mush45_r.png b/mods/riesenpilz/rest/mush45_r.png new file mode 100644 index 00000000..96345d9f Binary files /dev/null and b/mods/riesenpilz/rest/mush45_r.png differ diff --git a/mods/riesenpilz/rest/mush45_r0.png b/mods/riesenpilz/rest/mush45_r0.png new file mode 100644 index 00000000..03b39b74 Binary files /dev/null and b/mods/riesenpilz/rest/mush45_r0.png differ diff --git a/mods/riesenpilz/rest/mush45_r1.png b/mods/riesenpilz/rest/mush45_r1.png new file mode 100644 index 00000000..4a568013 Binary files /dev/null and b/mods/riesenpilz/rest/mush45_r1.png differ diff --git a/mods/riesenpilz/rest/mush45_r2.png b/mods/riesenpilz/rest/mush45_r2.png new file mode 100644 index 00000000..9dcdeef5 Binary files /dev/null and b/mods/riesenpilz/rest/mush45_r2.png differ diff --git a/mods/riesenpilz/rest/mush45_rm.png b/mods/riesenpilz/rest/mush45_rm.png new file mode 100644 index 00000000..bc02d656 Binary files /dev/null and b/mods/riesenpilz/rest/mush45_rm.png differ diff --git a/mods/riesenpilz/rest/mush45_rm2.png b/mods/riesenpilz/rest/mush45_rm2.png new file mode 100644 index 00000000..648195ea Binary files /dev/null and b/mods/riesenpilz/rest/mush45_rm2.png differ diff --git a/mods/riesenpilz/rest/mush45_rm3.png b/mods/riesenpilz/rest/mush45_rm3.png new file mode 100644 index 00000000..60f2d279 Binary files /dev/null and b/mods/riesenpilz/rest/mush45_rm3.png differ diff --git a/mods/riesenpilz/rest/mush45_rm4.png b/mods/riesenpilz/rest/mush45_rm4.png new file mode 100644 index 00000000..b222b06b Binary files /dev/null and b/mods/riesenpilz/rest/mush45_rm4.png differ diff --git a/mods/riesenpilz/rest/mushrooms_mushroom_brown.png b/mods/riesenpilz/rest/mushrooms_mushroom_brown.png new file mode 100644 index 00000000..ca5ac55b Binary files /dev/null and b/mods/riesenpilz/rest/mushrooms_mushroom_brown.png differ diff --git a/mods/riesenpilz/rest/mushrooms_mushroom_red.png b/mods/riesenpilz/rest/mushrooms_mushroom_red.png new file mode 100644 index 00000000..c814cde1 Binary files /dev/null and b/mods/riesenpilz/rest/mushrooms_mushroom_red.png differ diff --git a/mods/riesenpilz/rest/old_mapgen.lua b/mods/riesenpilz/rest/old_mapgen.lua new file mode 100644 index 00000000..67661469 --- /dev/null +++ b/mods/riesenpilz/rest/old_mapgen.lua @@ -0,0 +1,203 @@ +--[[ +function riesenpilz_circle(nam, pos, radius, rand, seed) + local ra = seed + for i = -radius, radius, 1 do + for j = -radius, radius, 1 do + if math.floor( math.sqrt(i^2+j^2) +0.5) == radius then + random = PseudoRandom(ra) + p={x=pos.x+i, y=pos.y, z=pos.z+j} + if minetest.env:get_node(p).name == "air" + and random:next(1,rand) == 1 + and minetest.env:get_node({x=pos.x+i, y=pos.y-1, z=pos.z+j}).name ~= "air" then + minetest.env:add_node(p, {name=nam}) + end + ra = ra+1 + end + end + end +end + + elseif pr:next(1,80) == 1 then + riesenpilz_circle("riesenpilz:brown", boden, pr:next(2,3), 3, seed) + elseif pr:next(1,90) == 1 then + riesenpilz_circle("riesenpilz:red", boden, pr:next(3,4), 3, seed) + elseif pr:next(1,100) == 1 then + riesenpilz_circle("riesenpilz:fly_agaric", boden, 3, 3, seed) + elseif pr:next(1,4000) == 1 then + riesenpilz_circle("riesenpilz:lavashroom", boden, pr:next(4,5), 3, seed) + elseif pr:next(1,5000) == 1 then + riesenpilz_circle("riesenpilz:glowshroom", boden, 2, 3, seed) +]] +function riesenpilz_circle(nam, pos, radius, chance) + for i = -radius, radius, 1 do + for j = -radius, radius, 1 do + if math.floor( math.sqrt(i^2+j^2) +0.5) == radius + and minetest.env:get_node({x=pos.x+i, y=pos.y, z=pos.z+j}).name == "air" + and math.random(1,chance) == 1 + and minetest.env:get_node({x=pos.x+i, y=pos.y-1, z=pos.z+j}).name == "riesenpilz:ground" then + minetest.env:add_node({x=pos.x+i, y=pos.y, z=pos.z+j}, {name=nam}) + end + end + end +end + +local function find_ground(pos, nodes) + for _, evground in ipairs(nodes) do + if minetest.env:get_node(pos).name == evground then + return true + end + end + return false +end + +local GROUND = {"default:dirt_with_grass","default:dirt","default:sand","default:desert_sand"} +USUAL_STUFF = {"default:leaves","default:apple","default:tree","default:cactus","default:papyrus"} +minetest.register_on_generated(function(minp, maxp, seed) + if maxp.y >= -10 then + local x0,z0,x1,z1 = minp.x,minp.z,maxp.x,maxp.z -- Assume X and Z lengths are equal + local env = minetest.env --Should make things a bit faster. + local perlin1 = env:get_perlin(11,3, 0.5, 200) --Get map specific perlin + + --[[if not (perlin1:get2d({x=x0, y=z0}) > 0.53) and not (perlin1:get2d({x=x1, y=z1}) > 0.53) + and not (perlin1:get2d({x=x0, y=z1}) > 0.53) and not (perlin1:get2d({x=x1, y=z0}) > 0.53) + and not (perlin1:get2d({x=(x1-x0)/2, y=(z1-z0)/2}) > 0.53) then]] + if not ( perlin1:get2d( {x=x0, y=z0} ) > 0.53 ) --top left + and not ( perlin1:get2d( { x = x0 + ( (x1-x0)/2), y=z0 } ) > 0.53 )--top middle + and not (perlin1:get2d({x=x1, y=z1}) > 0.53) --bottom right + and not (perlin1:get2d({x=x1, y=z0+((z1-z0)/2)}) > 0.53) --right middle + and not (perlin1:get2d({x=x0, y=z1}) > 0.53) --bottom left + and not (perlin1:get2d({x=x1, y=z0}) > 0.53) --top right + and not (perlin1:get2d({x=x0+((x1-x0)/2), y=z1}) > 0.53) --left middle + and not (perlin1:get2d({x=(x1-x0)/2, y=(z1-z0)/2}) > 0.53) --middle + and not (perlin1:get2d({x=x0, y=z1+((z1-z0)/2)}) > 0.53) then --bottom middle + print("abortsumpf") + return + end + local divs = (maxp.x-minp.x); + local pr = PseudoRandom(seed+68) + + --remove usual stuff + local trees = env:find_nodes_in_area(minp, maxp, USUAL_STUFF) + for i,v in pairs(trees) do + env:remove_node(v) + end + + --Information: + local geninfo = "-#- giant mushrooms generate: x=["..minp.x.."; "..maxp.x.."] z=["..minp.z.."; "..maxp.z.."]" + print(geninfo) + minetest.chat_send_all(geninfo) + + local smooth = riesenpilz.smooth + + for j=0,divs do + for i=0,divs do + local x,z = x0+i,z0+j + + --Check if we are in a "riesenpilz biome" + local in_biome = false + local test = perlin1:get2d({x=x, y=z}) + --smooth mapgen + if smooth and (test > 0.73 or (test > 0.43 and pr:next(0,29) > (0.73 - test) * 100 )) then + in_biome = true + elseif (not smooth) and test > 0.53 then + in_biome = true + end + + if in_biome then + + local ground_y = nil --Definition des Bodens: + for y=maxp.y,0,-1 do + if find_ground({x=x,y=y,z=z}, GROUND) then + ground_y = y + break + end + end + if ground_y then + env:add_node({x=x,y=ground_y,z=z}, {name="riesenpilz:ground"}) + for i = -1,-5,-1 do + local pos = {x=x,y=ground_y+i,z=z} + if env:get_node(pos).name == "default:desert_sand" then + env:add_node(pos, {name="default:dirt"}) + else + break + end + end + local boden = {x=x,y=ground_y+1,z=z} + if pr:next(1,15) == 1 then + env:add_node(boden, {name="default:dry_shrub"}) + elseif pr:next(1,80) == 1 then + riesenpilz_circle("riesenpilz:brown", boden, pr:next(3,4), 3) + elseif pr:next(1,90) == 1 then + riesenpilz_circle("riesenpilz:red", boden, pr:next(4,5), 3) + elseif pr:next(1,100) == 1 then + riesenpilz_circle("riesenpilz:fly_agaric", boden, 4, 3) + elseif pr:next(1,4000) == 1 then + riesenpilz_circle("riesenpilz:lavashroom", boden, pr:next(5,6), 3) + elseif pr:next(1,5000) == 1 then + riesenpilz_circle("riesenpilz:glowshroom", boden, 3, 3) + --[[elseif pr:next(1,80) == 1 then + env:add_node(boden, {name="riesenpilz:brown"}) + elseif pr:next(1,90) == 1 then + env:add_node(boden, {name="riesenpilz:red"}) + elseif pr:next(1,100) == 1 then + env:add_node(boden, {name="riesenpilz:fly_agaric"}) + elseif pr:next(1,4000) == 1 then + env:add_node(boden, {name="riesenpilz:lavashroom"}) + elseif pr:next(1,5000) == 1 then + env:add_node(boden, {name="riesenpilz:glowshroom"})]] + elseif pr:next(1,380) == 1 then + riesenpilz_hybridpilz(boden) + elseif pr:next(1,340) == 10 then + riesenpilz_brauner_minecraftpilz(boden) + elseif pr:next(1,390) == 20 then + riesenpilz_minecraft_fliegenpilz(boden) + elseif pr:next(1,6000) == 2 and pr:next(1,200) == 15 then + riesenpilz_lavashroom(boden) + end + end + end + end + end + end + if maxp.y < -10 then + local x0,z0,x1,z1 = minp.x,minp.z,maxp.x,maxp.z -- Assume X and Z lengths are equal + local env = minetest.env --Should make things a bit faster. + local perlin1 = env:get_perlin(11,3, 0.5, 200) --Get map specific perlin + + --[[if not (perlin1:get2d({x=x0, y=z0}) > 0.53) and not (perlin1:get2d({x=x1, y=z1}) > 0.53) + and not (perlin1:get2d({x=x0, y=z1}) > 0.53) and not (perlin1:get2d({x=x1, y=z0}) > 0.53) + and not (perlin1:get2d({x=(x1-x0)/2, y=(z1-z0)/2}) > 0.53) then]] + if not ( perlin1:get2d( {x=x0, y=z0} ) > 0.53 ) --top left + and not ( perlin1:get2d( { x = x0 + ( (x1-x0)/2), y=z0 } ) > 0.53 )--top middle + and not (perlin1:get2d({x=x1, y=z1}) > 0.53) --bottom right + and not (perlin1:get2d({x=x1, y=z0+((z1-z0)/2)}) > 0.53) --right middle + and not (perlin1:get2d({x=x0, y=z1}) > 0.53) --bottom left + and not (perlin1:get2d({x=x1, y=z0}) > 0.53) --top right + and not (perlin1:get2d({x=x0+((x1-x0)/2), y=z1}) > 0.53) --left middle + and not (perlin1:get2d({x=(x1-x0)/2, y=(z1-z0)/2}) > 0.53) --middle + and not (perlin1:get2d({x=x0, y=z1+((z1-z0)/2)}) > 0.53) then --bottom middle + print("abortsumpf") + return + end + local divs = (maxp.x-minp.x); + local pr = PseudoRandom(seed+68) + + for j=0,divs do + for i=0,divs do + local x,z = x0+i,z0+j + + for y=minp.y,maxp.y,1 do + local pos = {x=x, y=y, z=z} + + if env:get_node(pos).name == "air" + and env:get_node({x=x, y=y-1, z=z}).name == "default:stone" + and pr:next(1,40) == 33 + and env:find_node_near(pos, 4, "group:igniter") + and not env:find_node_near(pos, 3, "group:igniter") then + env:add_node(pos, {name="riesenpilz:lavashroom"}) + end + end + end + end + end +end) diff --git a/mods/riesenpilz/rest/riesenpilz_head.png b/mods/riesenpilz/rest/riesenpilz_head.png new file mode 100644 index 00000000..a5f7b0d6 Binary files /dev/null and b/mods/riesenpilz/rest/riesenpilz_head.png differ diff --git a/mods/riesenpilz/settings.lua b/mods/riesenpilz/settings.lua new file mode 100644 index 00000000..6c7a866e --- /dev/null +++ b/mods/riesenpilz/settings.lua @@ -0,0 +1,27 @@ +--This file contains configuration options for riesenpilz mod. + +riesenpilz.enable_mapgen = true + +--Generate giant mushroom biomes everywhere +riesenpilz.always_generate = false + +--Enables smooth transition of biomes. +riesenpilz.smooth = true + +--rarity in % +riesenpilz.mapgen_rarity = 0.1 + +--size of the generated... (has an effect to the rarity, too) +riesenpilz.mapgen_size = 50 + +--approximate size of smooth transitions +riesenpilz.smooth_trans_size = 2 + +--says some information. +riesenpilz.info = true + +--informs the players too +riesenpilz.inform_all = minetest.is_singleplayer() + +--1: 2: 3: +riesenpilz.max_spam = 2 diff --git a/mods/riesenpilz/textures/3apple_apple.png b/mods/riesenpilz/textures/3apple_apple.png new file mode 100644 index 00000000..10d20073 Binary files /dev/null and b/mods/riesenpilz/textures/3apple_apple.png differ diff --git a/mods/riesenpilz/textures/3apple_apple_bottom.png b/mods/riesenpilz/textures/3apple_apple_bottom.png new file mode 100644 index 00000000..ce47ea4f Binary files /dev/null and b/mods/riesenpilz/textures/3apple_apple_bottom.png differ diff --git a/mods/riesenpilz/textures/3apple_apple_top.png b/mods/riesenpilz/textures/3apple_apple_top.png new file mode 100644 index 00000000..4d5ba399 Binary files /dev/null and b/mods/riesenpilz/textures/3apple_apple_top.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_brown45_bottom.png b/mods/riesenpilz/textures/riesenpilz_brown45_bottom.png new file mode 100644 index 00000000..573d5c29 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_brown45_bottom.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_brown45_side.png b/mods/riesenpilz/textures/riesenpilz_brown45_side.png new file mode 100644 index 00000000..573d5c29 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_brown45_side.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_brown45_top.png b/mods/riesenpilz/textures/riesenpilz_brown45_top.png new file mode 100644 index 00000000..573d5c29 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_brown45_top.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_brown_bottom.png b/mods/riesenpilz/textures/riesenpilz_brown_bottom.png new file mode 100644 index 00000000..721b8a03 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_brown_bottom.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_brown_side.png b/mods/riesenpilz/textures/riesenpilz_brown_side.png new file mode 100644 index 00000000..46ed181b Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_brown_side.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_brown_top.png b/mods/riesenpilz/textures/riesenpilz_brown_top.png new file mode 100644 index 00000000..1b4ae44b Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_brown_top.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_fly_agaric_bottom.png b/mods/riesenpilz/textures/riesenpilz_fly_agaric_bottom.png new file mode 100644 index 00000000..4500961e Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_fly_agaric_bottom.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_fly_agaric_side.png b/mods/riesenpilz/textures/riesenpilz_fly_agaric_side.png new file mode 100644 index 00000000..74910e35 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_fly_agaric_side.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_fly_agaric_top.png b/mods/riesenpilz/textures/riesenpilz_fly_agaric_top.png new file mode 100644 index 00000000..3c1d9c85 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_fly_agaric_top.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_glowshroom_bottom.png b/mods/riesenpilz/textures/riesenpilz_glowshroom_bottom.png new file mode 100644 index 00000000..c52ded8c Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_glowshroom_bottom.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_glowshroom_side.png b/mods/riesenpilz/textures/riesenpilz_glowshroom_side.png new file mode 100644 index 00000000..af191cc8 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_glowshroom_side.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_glowshroom_top.png b/mods/riesenpilz/textures/riesenpilz_glowshroom_top.png new file mode 100644 index 00000000..24ec9a9d Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_glowshroom_top.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_ground_side.png b/mods/riesenpilz/textures/riesenpilz_ground_side.png new file mode 100644 index 00000000..08be65e7 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_ground_side.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_ground_side_normal.png b/mods/riesenpilz/textures/riesenpilz_ground_side_normal.png new file mode 100644 index 00000000..88e570ec Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_ground_side_normal.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_ground_top.png b/mods/riesenpilz/textures/riesenpilz_ground_top.png new file mode 100644 index 00000000..85efb556 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_ground_top.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_ground_top_normal.png b/mods/riesenpilz/textures/riesenpilz_ground_top_normal.png new file mode 100644 index 00000000..ec5c4246 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_ground_top_normal.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_growingtool.png b/mods/riesenpilz/textures/riesenpilz_growingtool.png new file mode 100644 index 00000000..79416c73 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_growingtool.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_head.png b/mods/riesenpilz/textures/riesenpilz_head.png new file mode 100644 index 00000000..32cdacc6 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_head.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_head_binge.png b/mods/riesenpilz/textures/riesenpilz_head_binge.png new file mode 100644 index 00000000..59b5263a Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_head_binge.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_head_blue.png b/mods/riesenpilz/textures/riesenpilz_head_blue.png new file mode 100644 index 00000000..befd1cf8 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_head_blue.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_head_blue_bright.png b/mods/riesenpilz/textures/riesenpilz_head_blue_bright.png new file mode 100644 index 00000000..b0f4c696 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_head_blue_bright.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_head_brown_bright.png b/mods/riesenpilz/textures/riesenpilz_head_brown_bright.png new file mode 100644 index 00000000..271dfc11 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_head_brown_bright.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_head_normal.png b/mods/riesenpilz/textures/riesenpilz_head_normal.png new file mode 100644 index 00000000..7b536853 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_head_normal.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_head_orange.png b/mods/riesenpilz/textures/riesenpilz_head_orange.png new file mode 100644 index 00000000..46c5fd70 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_head_orange.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_head_white.png b/mods/riesenpilz/textures/riesenpilz_head_white.png new file mode 100644 index 00000000..debb51b2 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_head_white.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_head_yellow.png b/mods/riesenpilz/textures/riesenpilz_head_yellow.png new file mode 100644 index 00000000..0de5a2bb Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_head_yellow.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_lamellas.png b/mods/riesenpilz/textures/riesenpilz_lamellas.png new file mode 100644 index 00000000..42e1d8c5 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_lamellas.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_lamellas_normal.png b/mods/riesenpilz/textures/riesenpilz_lamellas_normal.png new file mode 100644 index 00000000..8d084fa2 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_lamellas_normal.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_lavashroom_bottom.png b/mods/riesenpilz/textures/riesenpilz_lavashroom_bottom.png new file mode 100644 index 00000000..7fb9b970 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_lavashroom_bottom.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_lavashroom_side.png b/mods/riesenpilz/textures/riesenpilz_lavashroom_side.png new file mode 100644 index 00000000..1acf0788 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_lavashroom_side.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_lavashroom_top.png b/mods/riesenpilz/textures/riesenpilz_lavashroom_top.png new file mode 100644 index 00000000..3218b480 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_lavashroom_top.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_nether_shroom_bottom.png b/mods/riesenpilz/textures/riesenpilz_nether_shroom_bottom.png new file mode 100644 index 00000000..8288b38f Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_nether_shroom_bottom.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_nether_shroom_side.png b/mods/riesenpilz/textures/riesenpilz_nether_shroom_side.png new file mode 100644 index 00000000..dbae69c0 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_nether_shroom_side.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_nether_shroom_top.png b/mods/riesenpilz/textures/riesenpilz_nether_shroom_top.png new file mode 100644 index 00000000..dbccebd5 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_nether_shroom_top.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_parasol_bottom.png b/mods/riesenpilz/textures/riesenpilz_parasol_bottom.png new file mode 100644 index 00000000..83c0bb00 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_parasol_bottom.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_parasol_side.png b/mods/riesenpilz/textures/riesenpilz_parasol_side.png new file mode 100644 index 00000000..e0e6d816 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_parasol_side.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_parasol_top.png b/mods/riesenpilz/textures/riesenpilz_parasol_top.png new file mode 100644 index 00000000..e4638f23 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_parasol_top.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_red45_bottom.png b/mods/riesenpilz/textures/riesenpilz_red45_bottom.png new file mode 100644 index 00000000..04e9589a Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_red45_bottom.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_red45_side.png b/mods/riesenpilz/textures/riesenpilz_red45_side.png new file mode 100644 index 00000000..f01a7210 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_red45_side.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_red45_top.png b/mods/riesenpilz/textures/riesenpilz_red45_top.png new file mode 100644 index 00000000..4bc9d1f4 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_red45_top.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_red_bottom.png b/mods/riesenpilz/textures/riesenpilz_red_bottom.png new file mode 100644 index 00000000..767f7dff Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_red_bottom.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_red_side.png b/mods/riesenpilz/textures/riesenpilz_red_side.png new file mode 100644 index 00000000..951cb250 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_red_side.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_red_top.png b/mods/riesenpilz/textures/riesenpilz_red_top.png new file mode 100644 index 00000000..c0eb0638 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_red_top.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_stem.png b/mods/riesenpilz/textures/riesenpilz_stem.png new file mode 100644 index 00000000..a04187e4 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_stem.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_stem_blue.png b/mods/riesenpilz/textures/riesenpilz_stem_blue.png new file mode 100644 index 00000000..95e080d5 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_stem_blue.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_stem_brown.png b/mods/riesenpilz/textures/riesenpilz_stem_brown.png new file mode 100644 index 00000000..a19ab917 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_stem_brown.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_stem_normal.png b/mods/riesenpilz/textures/riesenpilz_stem_normal.png new file mode 100644 index 00000000..b1ee24d3 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_stem_normal.png differ diff --git a/mods/riesenpilz/textures/riesenpilz_stem_top.png b/mods/riesenpilz/textures/riesenpilz_stem_top.png new file mode 100644 index 00000000..6ff09e20 Binary files /dev/null and b/mods/riesenpilz/textures/riesenpilz_stem_top.png differ diff --git a/mods/sea/LICENSE AND README.txt b/mods/sea/LICENSE AND README.txt new file mode 100755 index 00000000..92f9b7db --- /dev/null +++ b/mods/sea/LICENSE AND README.txt @@ -0,0 +1,834 @@ +------------------------------------------------------------------------------------------------- +sea-modpack +------------------------------------------------------------------------------------------------- + +Version 0.4.0 + +- clams --> collect algae for seaglass and crushed white shells for blocks +- noairblocks --> removes the airblocks around seacorals, seaplants and sealamps +- seacobble --> cobble in the colors white/neutral, aqua, cyan, lime, magenta, redviolet and skyblue +- seacoral --> give some health directly and can be used as dyes with the unified dyes mod + and optionally the color machine mod + Colors: aqua, cyan, lime, magenta, redviolet and skyblue +- seaglass --> seaglass that can be on or off in the colors, neutral, white, yellow, red, blue and black +- seagravel --> gravel in the colors white/neutral, aqua, cyan, lime, magenta, redviolet and skyblue +- sealamps --> a torch that burns under water and a diving lantern +- seaplants --> provide some health when eating them, combine them to make a seasalad mix +- seastone --> stone in the colors white/neutral, aqua, cyan, lime, magenta, redviolet and skyblue +- seastonebrick --> stonebrick in the colors white/neutral, aqua, cyan, lime, magenta, redviolet and skyblue +- seawrecks --> This version two types, consisting of 'default' materials +- stairsshine --> Just like minetest_game's stairs supports stair- and slabmaking for the blocks, + this one supports blocks that have a lightsource_14 +- whiteshell --> provides some more crushed white shells for blocks + +----------------------------------------------- +Dependencies ? = optional +----------------------------------------------- + +- clams --> default +- noairblocks --> default +- seacobble --> default, dye, stairs, clams, whiteshell? , colormachine? +- seacoral --> default, noairblocks, unifieddyes, colormachine? +- seaglass --> default, dye, stairs, clams, stairsshine? , colormachine? +- seagravel --> default, dye, stairs, clams, whiteshell? , colormachine? +- sealamps --> default, bucket, noairblocks +- seaplants --> default, noairblocks +- seastone --> default, dye, stairs, clams, whiteshell? , colormachine? +- seastonebrick --> default, stairs, seastone, colormachine? +- seawrecks --> default +- stairsshine --> default +- whiteshell --> default, clams + + +---------------------------------- +Credits +---------------------------------- + +- Celeron55 for making minetest and this mod possible (the mapgen.lua code (and part of his mob mod code) and for the minetest_game stairs mod) +- Kahrl for the minetest_game stairs mod +- VanessaE for making unifieddyes (among of a lot of other good mods) +- Cornernote (for the dye_code in an older sea version). Thanks for all your work for minetest cornernote! +- Chinchow, for asking me what I was doing (nothing constructive till then) +- Sapier, because of his fish in his animals-mod I understood you could build something under water without an waterblock around it. +- Inocudom, for the support of this modpack (and telling me about Jeija's hydro-turbine). +- Jeija (because of the hydro-turbine (mesecons)). +- Neuromancer for the constructive feed-back concerning the performance. +- Sokomine for constructive feedback of the total modpack +- Mossmanikin for his support +- Jouster27 for the helpful feedback about version 0.3.0 +- Chlue simple abm profiling ( https://forum.minetest.net/viewtopic.php?pid=113112#p113112 ) + +Licenses +-------------- + +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 sounds dirt, sand, gravel, sand, stone and leaves +------------------------------------------------------------------------------------------------ + +Mito551 (sounds) (CC BY-SA) + +--------------------------------------------------------------- +License dirt, tree and chests textures +--------------------------------------------------------------- + +Cisoun's WTFPL texture pack + +--------------------------------------------------------------------------------------------------------- +License sand, desert_sand, sandstonebrick and torch textures +--------------------------------------------------------------------------------------------------------- + +VanessaE (WTFPL) + +-------------------------------------------------------- +License animated water textures +-------------------------------------------------------- + +RealBadAngel's animated water (WTFPL) + +---------------------------------------------------------- +License cobble and wood textures +---------------------------------------------------------- + +Originating from G4JC's Almost MC Texture Pack + +------------------------------------------------------------------------------------------------------------------ +License of the sea-modpack +------------------------------------------------------------------------------------------------------------------ + +Copyright (C) Topywo + +License of media (textures and sounds) sea-modpack +----------------------------------------------------------------------------------------- +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + +Specific code of the sea-modpack +--------------------------------------------------------- +Follows GNU LGPL 2.1 or later as described under "License of source code" and further + +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Licence of celeron55's mob and default/mapgen.lua code and other code/textures/sound used not listed here, unless someone states and proves otherwise, is considered to be +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Copyright (C) 2010-2012 celeron55, Perttu Ahola + + +--------------------------------------- +License of source code: +--------------------------------------- +Copyright (C) 2011-2012 celeron55, Perttu Ahola +See README.txt in each mod directory for information about other authors. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +http://www.gnu.org/licenses/lgpl-2.1.html + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +License of media (textures and sounds) +-------------------------------------- +Copyright (C) 2010-2012 celeron55, Perttu Ahola +See README.txt in each mod directory for information about other authors. + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + +License of menu/header.png +Copyright (C) 2013 BlockMen CC BY-3.0 + + +----------------------------------------------------------------------------------------- +*License GNU General Public License version 3 or later. +----------------------------------------------------------------------------------------- + + 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. + + + Copyright (C) + + 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: + + Copyright (C) + 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/sea/clams/depends.txt b/mods/sea/clams/depends.txt new file mode 100755 index 00000000..331d858c --- /dev/null +++ b/mods/sea/clams/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/mods/sea/clams/init.lua b/mods/sea/clams/init.lua new file mode 100755 index 00000000..9c6cb3f2 --- /dev/null +++ b/mods/sea/clams/init.lua @@ -0,0 +1,392 @@ +-- NODES + +minetest.register_node("clams:sandalgae", { + description = "Sandalgae", + tiles = {"default_sand.png^clams_algae.png"}, + paramtype = "light", + is_ground_content = true, + groups = {crumbly=3, falling_node=1, sand=1}, + drop = { + items = { + { + items = {'"clams:collectedalgae" 4'}, + }, + { + items = {'clams:sandalgaeused'}, + } + } + }, + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("clams:dirtalgae", { + description = "Dirtalgae", + tiles = {"default_dirt.png^clams_algae.png"}, + paramtype = "light", + is_ground_content = true, + groups = {crumbly=3}, + drop = { + items = { + { + items = {'"clams:collectedalgae" 4'}, + }, + { + items = {'clams:dirtalgaeused'}, + } + } + }, + sounds = default.node_sound_dirt_defaults, +}) + +minetest.register_node("clams:sandalgaeused", { + description = "Used sandalgae", + tiles = {"default_sand.png^clams_algaeused.png"}, + inventory_image = {"default_sand.png^clams_algaeused.png"}, + is_ground_content = true, + groups = {crumbly=3, falling_node=1, sand=1}, + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("clams:dirtalgaeused", { + description = "Used dirtalgae", + tiles = {"default_dirt.png^clams_algaeused.png"}, + inventory_image = {"default_dirt.png^clams_algaeused.png"}, + is_ground_content = true, + groups = {crumbly=3}, + sounds = default.node_sound_dirt_defaults(), +}) + + +-- ENTITIES + + +-- The registration of the entities' code is copied from celeron55's mob (the DM's fireball) + + +minetest.register_entity("clams:whiteshell", { + description="White shell", + hp_max = 15, + physical = true, + collisionbox = {-0.2,-0.2,-0.2, 0.2,0.2,0.2}, + visual = "sprite", + visual_size = {x=0.5, y=0.5}, + textures = {"clams_whiteshell.png^[makealpha:128,128,0"}, + spritediv = {x=1, y=3}, + initial_sprite_basepos = {x=0, y=0}, + drops = { + {name = "clams:crushedwhite", chance = 1, min = 1, max = 4}, + }, + + phase = 0, + phasetimer = 0, + + on_activate = function(self, staticdata) + minetest.log("whiteshell activated!") + end, + + on_step = function(self, dtime) + self.phasetimer = self.phasetimer + dtime + if self.phasetimer > 2.0 then + self.phasetimer = self.phasetimer - 2.0 + self.phase = self.phase + 1 + if self.phase >= 3 then + self.phase = 0 + end + self.object:setsprite({x=0, y=self.phase}) + phasearmor = { + [0]={fleshy=0}, + [1]={fleshy=30}, + [2]={fleshy=70} + } + self.object:set_armor_groups(phasearmor[self.phase]) + end + end, + + on_punch = function(self, hitter) + if self.object:get_hp() <= 0 then + if hitter and hitter:is_player() and hitter:get_inventory() then + for _,drop in ipairs(self.drops) do + if math.random(1, drop.chance) == 1 then + hitter:get_inventory():add_item("main", ItemStack(drop.name.." "..math.random(drop.min, drop.max))) + end + end + else + for _,drop in ipairs(self.drops) do + if math.random(1, drop.chance) == 1 then + for i=1,math.random(drop.min, drop.max) do + local obj = minetest.add_item(self.object:getpos(), drop.name) + if obj then + obj:get_luaentity().collect = true + local x = math.random(1, 5) + if math.random(1,2) == 1 then + x = -x + end + local z = math.random(1, 5) + if math.random(1,2) == 1 then + z = -z + end + obj:setvelocity({x=1/x, y=obj:getvelocity().y, z=1/z}) + end + end + end + end + end + end + end, +}) + + +-- CRAFT ITEMS + + +minetest.register_craftitem("clams:collectedalgae", { + description = "Collected algae", + inventory_image = "clams_collectedalgae.png", +}) + +minetest.register_craftitem("clams:crushedwhite", { + description = "Crushed white shell", + inventory_image = "clams_crushedwhite.png", +}) + + +-- ALGAE GENERATION + + +minetest.register_ore({ + ore_type = "scatter", + ore = "clams:sandalgae", + wherein = "default:sand", + clust_scarcity = 9*9*9, + clust_num_ores = 16, + clust_size = 4, + height_max = -4, + height_min = -60, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "clams:dirtalgae", + wherein = "default:dirt", + clust_scarcity = 9*9*9, + clust_num_ores = 16, + clust_size = 4, + height_max = -4, + height_min = -60, +}) + + +local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, chunk_size, ore_per_chunk, height_min, height_max) + 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) + 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 +end + + +--ABM's + + +minetest.register_abm({ + nodenames = {"clams:sandalgaeused"}, + interval = 30, + chance = 20, + action = function(pos, node, active_object_count, active_object_count_wider) + local y = {x = pos.x, y = pos.y + 1, z = pos.z } + local yy = {x = pos.x, y = pos.y + 2, z = pos.z } + if minetest.get_node(y).name == "default:water_source" or + minetest.get_node(y).name == "noairblocks:water_sourcex" then + if minetest.get_node(yy).name == "default:water_source" or + minetest.get_node(yy).name == "noairblocks:water_sourcex" then + minetest.add_node(pos, {name = "clams:sandalgae"}) else + return + end + end + end, +}) + +minetest.register_abm({ + nodenames = {"clams:dirtalgaeused"}, + interval = 30, + chance = 20, + action = function(pos, node, active_object_count, active_object_count_wider) + local y = {x = pos.x, y = pos.y + 1, z = pos.z } + local yy = {x = pos.x, y = pos.y + 2, z = pos.z } + if minetest.get_node(y).name == "default:water_source" or + minetest.get_node(y).name == "noairblocks:water_sourcex" then + if minetest.get_node(yy).name == "default:water_source" or + minetest.get_node(yy).name == "noairblocks:water_sourcex" then + minetest.add_node(pos, {name = "clams:dirtalgae"}) else + return + end + end + end, +}) + +minetest.register_abm({ + nodenames = {"clams:sandalgae"}, + interval = 40, + chance = 40, + action = function(pos, node, active_object_count, active_object_count_wider) + local y = {x = pos.x, y = pos.y + 1, z = pos.z } + local yy = {x = pos.x, y = pos.y + 2, z = pos.z } + if (active_object_count_wider + active_object_count_wider) > 40 then + return + elseif (minetest.get_node(y).name == "default:water_source" or + minetest.get_node(y).name == "noairblocks:water_sourcex") then + if (minetest.get_node(yy).name == "default:water_source" or + minetest.get_node(yy).name == "noairblocks:water_sourcex") then + pos.y=pos.y + 1 + minetest.add_entity(pos, "clams:whiteshell") + end + end + end, +}) + +minetest.register_abm({ + nodenames = {"clams:dirtalgae"}, + interval = 40, + chance = 40, + action = function(pos, node, active_object_count, active_object_count_wider) + local y = {x = pos.x, y = pos.y + 1, z = pos.z } + local yy = {x = pos.x, y = pos.y + 2, z = pos.z } + if (active_object_count_wider + active_object_count_wider) > 40 then + return + elseif (minetest.get_node(y).name == "default:water_source" or + minetest.get_node(y).name == "noairblocks:water_sourcex") then + if (minetest.get_node(yy).name == "default:water_source" or + minetest.get_node(yy).name == "noairblocks:water_sourcex") then + pos.y=pos.y + 1 + minetest.add_entity(pos, "clams:whiteshell") + end + end + end, +}) + + +-- ALIASES + + +minetest.register_alias("clams:yellowalgae","clams:collectedalgae") +minetest.register_alias("clams:redalgae","clams:collectedalgae") +minetest.register_alias("clams:bluealgae","clams:collectedalgae") + +minetest.register_alias("clams:yellowshell","clams:whiteshell") +minetest.register_alias("clams:redshell","clams:whiteshell") +minetest.register_alias("clams:blueshell","clams:whiteshell") + +minetest.register_alias("clams:yellowseedsanddirt","clams:sandalgae") +minetest.register_alias("clams:redseedsanddirt","clams:dirtalgae") +minetest.register_alias("clams:blueseedsanddirt","clams:sandalgae") + +minetest.register_alias("clams:yellowseed","clams:collectedalgae") +minetest.register_alias("clams:redseed","clams:collectedalgae") +minetest.register_alias("clams:blueseed","clams:collectedalgae") + +minetest.register_alias("clams:sanddirt","clams:sandalgaeused") +minetest.register_alias("clams:sanddirtalgae","clams:dirtalgae") +minetest.register_alias("clams:sanddirtused","clams:dirtalgaeused") + +minetest.register_alias("clams:sandbalgae","clams:sandalgae") +minetest.register_alias("clams:dirtbalgae","clams:dirtalgae") + +minetest.register_alias("clams:crushedyellow","clams:crushedwhite") +minetest.register_alias("clams:crushedred","clams:crushedwhite") +minetest.register_alias("clams:crushedblue","clams:crushedwhite") +minetest.register_alias("clams:crushedblack","clams:crushedwhite") + +minetest.register_alias("clams:emptybleacher","colormachine:colormachine") +minetest.register_alias("clams:filledbleacher","colormachine:colormachine") +minetest.register_alias("clams:readybleacher","colormachine:colormachine") + +if( minetest.get_modpath( "colormachine") ~= nil ) then + minetest.register_alias("clams:emptybleacher","colormachine:colormachine") + minetest.register_alias("clams:filledbleacher","colormachine:colormachine") + minetest.register_alias("clams:readybleacher","colormachine:colormachine") else + minetest.register_alias("clams:emptybleacher","default:mese") + minetest.register_alias("clams:filledbleacher","default:mese") + minetest.register_alias("clams:readybleacher","default:mese") + return +end + + +-- ALIASES OLDEST VERSION + + +minetest.register_alias("algae:yellowalgae","clams:collectedalgae") +minetest.register_alias("algae:redalgae","clams:collectedalgae") +minetest.register_alias("algae:bluealgae","clams:collectedalgae") + +minetest.register_alias("algae:sandalgae","clams:sandalgae") +minetest.register_alias("algae:dirtalgae","clams:dirtalgae") +minetest.register_alias("algae:sandbalgae","clams:sandalgae") +minetest.register_alias("algae:dirtbalgae","clams:dirtalgae") + +minetest.register_alias("sea_cult:emptybleacher","colormachine:colormachine") +minetest.register_alias("sea_cult:filledbleacher","colormachine:colormachine") +minetest.register_alias("sea_cult:readybleacher","colormachine:colormachine") + +if( minetest.get_modpath( "colormachine") ~= nil ) then + minetest.register_alias("sea_cult:emptybleacher","colormachine:colormachine") + minetest.register_alias("sea_cult:filledbleacher","colormachine:colormachine") + minetest.register_alias("sea_cult:readybleacher","colormachine:colormachine") else + minetest.register_alias("sea_cult:emptybleacher","default:mese") + minetest.register_alias("sea_cult:filledbleacher","default:mese") + minetest.register_alias("sea_cult:readybleacher","default:mese") + return +end + +minetest.register_alias("sea_cult:sanddirt","clams:sandalgaeused") +minetest.register_alias("sea_cult:sanddirtalgae","clams:dirtalgae") +minetest.register_alias("sea_cult:sanddirtused","clams:dirtalgaeused") + +minetest.register_alias("shells:yellowshell","clams:whiteshell") +minetest.register_alias("shells:redshell","clams:whiteshell") +minetest.register_alias("shells:blueshell","clams:whiteshell") + +minetest.register_alias("shells:yellowseed","clams:collectedalgae") +minetest.register_alias("shells:redseed","clams:collectedalgae") +minetest.register_alias("shells:blueseed","clams:collectedalgae") + +minetest.register_alias("shells:crushedyellow","clams:crushedwhite") +minetest.register_alias("shells:crushedred","clams:crushedwhite") +minetest.register_alias("shells:crushedblue","clams:crushedwhite") +minetest.register_alias("shells:crushedblack","clams:crushedwhite") +minetest.register_alias("shells:crushedwhite","clams:crushedwhite") + +minetest.register_alias("shells_dye:yellowlightglass","clams:yellowlightglass") +minetest.register_alias("shells_dye:redlightglass","clams:redlightglass") +minetest.register_alias("shells_dye:bluelightglass","clams:bluelightglass") +minetest.register_alias("shells_dye:whitelightglass","clams:whitelightglass") +minetest.register_alias("shells_dye:blacklightglass","clams:blacklightglass") \ No newline at end of file diff --git a/mods/sea/clams/readme.txt b/mods/sea/clams/readme.txt new file mode 100755 index 00000000..048a724d --- /dev/null +++ b/mods/sea/clams/readme.txt @@ -0,0 +1,29 @@ +Sounds: +sounds = default.node_sound_sand_defaults(), default.node_sound_dirt_defaults(), + +Copyright (C) 2010-2012 celeron55, Perttu Ahola + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + + +.png's: +default_sand.png +VanessaE (WTFPL) + +default_water_source_animated.png +default_water_flowing_animated.png +RealBadAngel's animated water (WTFPL) + +default_dirt.png +Cisoun's WTFPL texture pack + + +Code: +minetest/games/minetest_game/mods/default/mapgen.lua --> ore generation +minetest/games/minetest_game/mods/default/nodes.lua --> water + +Copyright (C) 2011-2012 celeron55, Perttu Ahola +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. \ No newline at end of file diff --git a/mods/sea/clams/textures/clams_algae.png b/mods/sea/clams/textures/clams_algae.png new file mode 100755 index 00000000..95de9c5d Binary files /dev/null and b/mods/sea/clams/textures/clams_algae.png differ diff --git a/mods/sea/clams/textures/clams_algaeused.png b/mods/sea/clams/textures/clams_algaeused.png new file mode 100755 index 00000000..52c438da Binary files /dev/null and b/mods/sea/clams/textures/clams_algaeused.png differ diff --git a/mods/sea/clams/textures/clams_collectedalgae.png b/mods/sea/clams/textures/clams_collectedalgae.png new file mode 100755 index 00000000..f8f602fb Binary files /dev/null and b/mods/sea/clams/textures/clams_collectedalgae.png differ diff --git a/mods/sea/clams/textures/clams_crushedwhite.png b/mods/sea/clams/textures/clams_crushedwhite.png new file mode 100755 index 00000000..d4322e82 Binary files /dev/null and b/mods/sea/clams/textures/clams_crushedwhite.png differ diff --git a/mods/sea/clams/textures/clams_whiteshell.png b/mods/sea/clams/textures/clams_whiteshell.png new file mode 100755 index 00000000..e0c8afc6 Binary files /dev/null and b/mods/sea/clams/textures/clams_whiteshell.png differ diff --git a/mods/sea/modpack.txt b/mods/sea/modpack.txt new file mode 100755 index 00000000..e69de29b diff --git a/mods/sea/noairblocks/depends.txt b/mods/sea/noairblocks/depends.txt new file mode 100755 index 00000000..331d858c --- /dev/null +++ b/mods/sea/noairblocks/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/mods/sea/noairblocks/init.lua b/mods/sea/noairblocks/init.lua new file mode 100755 index 00000000..0cf74c1f --- /dev/null +++ b/mods/sea/noairblocks/init.lua @@ -0,0 +1,230 @@ +-- NODES + +minetest.register_node("noairblocks:water_flowingx", { + description = "Flowing Waterx", + 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 = 0, + paramtype = "light", + paramtype2 = "flowingliquid", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + drop = "", + drowning = 1, + liquidtype = "flowing", + liquid_alternative_flowing = "noairblocks:water_flowingx", + liquid_alternative_source = "noairblocks:water_sourcex", + liquid_viscosity = WATER_VISC, + freezemelt = "default:snow", + post_effect_color = {a=64, r=100, g=100, b=200}, + groups = {water=3, liquid=3, puts_out_fire=1, not_in_creative_inventory=1, freezes=1, melt_around=1}, +}) + +minetest.register_node("noairblocks:water_sourcex", { + description = "Water Sourcex", + inventory_image = minetest.inventorycube("default_water.png"), + drawtype = "liquid", + tiles = { + {name="default_water_source_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0}} + }, + special_tiles = { + -- New-style water source material (mostly unused) + { + name="default_water_source_animated.png", + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0}, + backface_culling = false, + } + }, + alpha = 0, + paramtype = "light", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + drop = "", + drowning = 1, + liquidtype = "source", + liquid_alternative_flowing = "noairblocks:water_flowingx", + liquid_alternative_source = "noairblocks:water_sourcex", + 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}, +}) + + +-- ABM'S + + +-- 6 x default to noairblocks + + +minetest.register_abm({ +nodenames = {"group:sea"}, +interval = 1, +chance = 1, +action = function(pos, node, active_object_count, active_object_count_wider) + local xn = {x = pos.x - 1, y = pos.y, z = pos.z} + local yp= {x = pos.x, y = pos.y + 1, z = pos.z} + local xnyp= {x = pos.x - 1, y = pos.y + 1, z = pos.z} + if minetest.get_node(xn).name == "default:water_source" and + minetest.get_node(yp).name ~= "air" and + minetest.get_node(xnyp).name ~= "air" then + minetest.add_node(xn, {name = "noairblocks:water_sourcex"}) else + if minetest.get_node(xn).name == "default:water_flowing" and + minetest.get_node(yp).name ~= "air" and + minetest.get_node(xnyp).name ~= "air" then + minetest.add_node(xn, {name = "noairblocks:water_flowingx"}) else + return + end + end +end, +}) + +minetest.register_abm({ +nodenames = {"group:sea"}, +interval = 1, +chance = 1, +action = function(pos, node, active_object_count, active_object_count_wider) + local xp = {x = pos.x + 1, y = pos.y, z = pos.z} + local yp= {x = pos.x, y = pos.y + 1, z = pos.z} + local xpyp= {x = pos.x + 1, y = pos.y + 1, z = pos.z} + if minetest.get_node(xp).name == "default:water_source" and + minetest.get_node(yp).name ~= "air" and + minetest.get_node(xpyp).name ~= "air" then + minetest.add_node(xp, {name = "noairblocks:water_sourcex"}) else + if minetest.get_node(xp).name == "default:water_flowing" and + minetest.get_node(yp).name ~= "air" and + minetest.get_node(xpyp).name ~= "air" then + minetest.add_node(xp, {name = "noairblocks:water_flowingx"}) else + return + end + end +end, +}) + +minetest.register_abm({ +nodenames = {"group:sea"}, +interval = 1, +chance = 1, +action = function(pos, node, active_object_count, active_object_count_wider) + local zn = {x = pos.x, y = pos.y, z = pos.z - 1} + local yp= {x = pos.x, y = pos.y + 1, z = pos.z} + local znyp= {x = pos.x, y = pos.y + 1, z = pos.z - 1} + if minetest.get_node(zn).name == "default:water_source" and + minetest.get_node(yp).name ~= "air" and + minetest.get_node(znyp).name ~= "air" then + minetest.add_node(zn, {name = "noairblocks:water_sourcex"}) else + if minetest.get_node(zn).name == "default:water_flowing" and + minetest.get_node(yp).name ~= "air" and + minetest.get_node(znyp).name ~= "air" then + minetest.add_node(zn, {name = "noairblocks:water_flowingx"}) else + return + end + end +end, +}) + +minetest.register_abm({ +nodenames = {"group:sea"}, +interval = 1, +chance = 1, +action = function(pos, node, active_object_count, active_object_count_wider) + local zp = {x = pos.x, y = pos.y, z = pos.z + 1} + local yp= {x = pos.x, y = pos.y + 1, z = pos.z} + local zpyp= {x = pos.x, y = pos.y + 1, z = pos.z + 1} + if minetest.get_node(zp).name == "default:water_source" and + minetest.get_node(yp).name ~= "air" and + minetest.get_node(zpyp).name ~= "air" then + minetest.add_node(zp, {name = "noairblocks:water_sourcex"}) else + if minetest.get_node(zp).name == "default:water_flowing" and + minetest.get_node(yp).name ~= "air" and + minetest.get_node(zpyp).name ~= "air" then + minetest.add_node(zp, {name = "noairblocks:water_flowingx"}) else + return + end + end +end, +}) + +minetest.register_abm({ +nodenames = {"group:sea"}, +interval = 1, +chance = 1, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp= {x = pos.x, y = pos.y + 1, z = pos.z} + if minetest.get_node(yp).name == "default:water_source" then + minetest.add_node(yp, {name = "noairblocks:water_sourcex"}) else + if minetest.get_node(yp).name == "default:water_flowing" then + minetest.add_node(yp, {name = "noairblocks:water_flowingx"}) else + return + end + end +end, +}) + +minetest.register_abm({ +nodenames = {"group:sea"}, +interval = 1, +chance = 1, +action = function(pos, node, active_object_count, active_object_count_wider) + local yn = {x = pos.x, y = pos.y - 1, z = pos.z} + local yp= {x = pos.x, y = pos.y + 1, z = pos.z} + if minetest.get_node(yn).name == "default:water_source" and + minetest.get_node(yp).name ~= "air" then + minetest.add_node(yn, {name = "noairblocks:water_sourcex"}) else + if minetest.get_node(yn).name == "default:water_flowing" and + minetest.get_node(yp).name ~= "air" then + minetest.add_node(yn, {name = "noairblocks:water_flowingx"}) else + return + end + end +end, +}) + + +-- Undoing x + + +minetest.register_abm({ +nodenames = {"noairblocks:water_sourcex"}, +interval = 1, +chance = 1, +action = function(pos, node, active_object_count, active_object_count_wider) +local pos0 = {x=pos.x-1,y=pos.y-1,z=pos.z-1} +local pos1 = {x=pos.x+1,y=pos.y+1,z=pos.z+1} + if #minetest.find_nodes_in_area(pos0, pos1, "group:sea") < 1 then + minetest.add_node(pos, {name = "default:water_source"}) else + return + end +end, +}) + +minetest.register_abm({ +nodenames = {"noairblocks:water_flowingx"}, +interval = 1, +chance = 1, +action = function(pos, node, active_object_count, active_object_count_wider) +local pos0 = {x=pos.x-1,y=pos.y-1,z=pos.z-1} +local pos1 = {x=pos.x+1,y=pos.y+1,z=pos.z+1} + if #minetest.find_nodes_in_area(pos0, pos1, "group:sea") < 1 then + minetest.add_node(pos, {name = "default:water_flowing"}) else + return + end +end, +}) \ No newline at end of file diff --git a/mods/sea/noairblocks/readme.txt b/mods/sea/noairblocks/readme.txt new file mode 100755 index 00000000..9674ffa3 --- /dev/null +++ b/mods/sea/noairblocks/readme.txt @@ -0,0 +1,12 @@ +.png's: +default_water_source_animated.png +default_water_flowing_animated.png +RealBadAngel's animated water (WTFPL) + +Code: +minetest/games/minetest_game/mods/default/nodes.lua --> water + +Copyright (C) 2011-2012 celeron55, Perttu Ahola +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. diff --git a/mods/sea/seacobble/depends.txt b/mods/sea/seacobble/depends.txt new file mode 100755 index 00000000..257d73b9 --- /dev/null +++ b/mods/sea/seacobble/depends.txt @@ -0,0 +1,6 @@ +default +dye +stairs +clams +whiteshell? +colormachine? \ No newline at end of file diff --git a/mods/sea/seacobble/init.lua b/mods/sea/seacobble/init.lua new file mode 100755 index 00000000..dee00817 --- /dev/null +++ b/mods/sea/seacobble/init.lua @@ -0,0 +1,139 @@ +-- NODES + + +minetest.register_node("seacobble:seacobble", { + description = "Sea cobblestone", + tiles = {"seacobble_seacobble.png"}, + is_ground_content = true, + groups = {cracky=3, stone=2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("seacobble:seacobble_cyan", { + description = "Sea cobblestone cyan", + tiles = {"seacobble_seacobble_cyan.png"}, + is_ground_content = true, + groups = {cracky=3, stone=2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("seacobble:seacobble_magenta", { + description = "Sea cobblestone magenta", + tiles = {"seacobble_seacobble_magenta.png"}, + is_ground_content = true, + groups = {cracky=3, stone=2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("seacobble:seacobble_lime", { + description = "Sea cobblestone lime", + tiles = {"seacobble_seacobble_lime.png"}, + is_ground_content = true, + groups = {cracky=3, stone=2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("seacobble:seacobble_aqua", { + description = "Sea cobblestone aqua", + tiles = {"seacobble_seacobble_aqua.png"}, + is_ground_content = true, + groups = {cracky=3, stone=2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("seacobble:seacobble_skyblue", { + description = "Sea cobblestone skyblue", + tiles = {"seacobble_seacobble_skyblue.png"}, + is_ground_content = true, + groups = {cracky=3, stone=2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("seacobble:seacobble_redviolet", { + description = "Sea cobblestone redviolet", + tiles = {"seacobble_seacobble_redviolet.png"}, + is_ground_content = true, + groups = {cracky=3, stone=2}, + sounds = default.node_sound_stone_defaults(), +}) + + +-- STAIRS + + +stairs.register_stair_and_slab("seacobble", "seacobble:seacobble", + {cracky=3, stone=2}, + {"seacobble_seacobble.png"}, + "Seacobble stair", + "Seacobble slab", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("seacobble_cyan", "seacobble:seacobble_cyan", + {cracky=3, stone=2}, + {"seacobble_seacobble_cyan.png"}, + "Seacobble stair cyan", + "Seacobble slab cyan", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("seacobble_magenta", "seacobble:seacobble_magenta", + {cracky=3, stone=2}, + {"seacobble_seacobble_magenta.png"}, + "Seacobble stair magenta", + "Seacobble slab magenta", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("seacobble_lime", "seacobble:seacobble_lime", + {cracky=3, stone=2}, + {"seacobble_seacobble_lime.png"}, + "Seacobble stair lime", + "Seacobble slab lime", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("seacobble_aqua", "seacobble:seacobble_aqua", + {cracky=3, stone=2}, + {"seacobble_seacobble_aqua.png"}, + "Seacobble stair aqua", + "Seacobble slab aqua", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("seacobble_skyblue", "seacobble:seacobble_skyblue", + {cracky=3, stone=2}, + {"seacobble_seacobble_skyblue.png"}, + "Seacobble stair skyblue ", + "Seacobble slab skyblue", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("seacobble_redviolet", "seacobble:seacobble_redviolet", + {cracky=3, stone=2}, + {"seacobble_seacobble_redviolet.png"}, + "Seacobble stair redviolet", + "Seacobble slab redviolet", + default.node_sound_stone_defaults()) + + +-- CRAFTING + + +local register_seacobble_craft = function(output,recipe) + minetest.register_craft({ + type = 'shapeless', + output = output, + recipe = recipe, + }) +end + +register_seacobble_craft("seacobble:seacobble", {'clams:crushedwhite', 'default:cobble'}) + +register_seacobble_craft("seacobble:seacobble_cyan", {'seacobble:seacobble', 'dye:cyan'}) +register_seacobble_craft("seacobble:seacobble_magenta", {'seacobble:seacobble', 'dye:magenta'}) +register_seacobble_craft("seacobble:seacobble_lime", {'seacobble:seacobble', 'dye:lime'}) +register_seacobble_craft("seacobble:seacobble_aqua", {'seacobble:seacobble', 'dye:aqua'}) +register_seacobble_craft("seacobble:seacobble_skyblue", {'seacobble:seacobble', 'dye:skyblue'}) +register_seacobble_craft("seacobble:seacobble_redviolet", {'seacobble:seacobble', 'dye:redviolet'}) + +register_seacobble_craft("seacobble:seacobble_cyan", {'clams:crushedwhite', 'default:cobble','dye:cyan'}) +register_seacobble_craft("seacobble:seacobble_magenta", {'clams:crushedwhite', 'default:cobble','dye:magenta'}) +register_seacobble_craft("seacobble:seacobble_lime", {'clams:crushedwhite', 'default:cobble','dye:lime'}) +register_seacobble_craft("seacobble:seacobble_aqua", {'clams:crushedwhite', 'default:cobble','dye:aqua'}) +register_seacobble_craft("seacobble:seacobble_skyblue", {'clams:crushedwhite', 'default:cobble','dye:skyblue'}) +register_seacobble_craft("seacobble:seacobble_redviolet", {'clams:crushedwhite', 'default:cobble','dye:redviolet'}) \ No newline at end of file diff --git a/mods/sea/seacobble/readme.txt b/mods/sea/seacobble/readme.txt new file mode 100755 index 00000000..68ae307e --- /dev/null +++ b/mods/sea/seacobble/readme.txt @@ -0,0 +1,22 @@ +Sounds: +sounds = default.node_sound_stone_defaults() + +Copyright (C) 2010-2012 celeron55, Perttu Ahola + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + + +Cobble texture is based on: +.png's: +default_cobble.png +Originating from G4JC's Almost MC Texture Pack + + +Code: +minetest/games/minetest_game/mods/default/nodes.lua --> cobble + +Copyright (C) 2011-2012 celeron55, Perttu Ahola +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. \ No newline at end of file diff --git a/mods/sea/seacobble/textures/seacobble_seacobble.png b/mods/sea/seacobble/textures/seacobble_seacobble.png new file mode 100755 index 00000000..a9af184f Binary files /dev/null and b/mods/sea/seacobble/textures/seacobble_seacobble.png differ diff --git a/mods/sea/seacobble/textures/seacobble_seacobble_aqua.png b/mods/sea/seacobble/textures/seacobble_seacobble_aqua.png new file mode 100755 index 00000000..add73916 Binary files /dev/null and b/mods/sea/seacobble/textures/seacobble_seacobble_aqua.png differ diff --git a/mods/sea/seacobble/textures/seacobble_seacobble_cyan.png b/mods/sea/seacobble/textures/seacobble_seacobble_cyan.png new file mode 100755 index 00000000..9efadc5a Binary files /dev/null and b/mods/sea/seacobble/textures/seacobble_seacobble_cyan.png differ diff --git a/mods/sea/seacobble/textures/seacobble_seacobble_lime.png b/mods/sea/seacobble/textures/seacobble_seacobble_lime.png new file mode 100755 index 00000000..09792a38 Binary files /dev/null and b/mods/sea/seacobble/textures/seacobble_seacobble_lime.png differ diff --git a/mods/sea/seacobble/textures/seacobble_seacobble_magenta.png b/mods/sea/seacobble/textures/seacobble_seacobble_magenta.png new file mode 100755 index 00000000..c8309075 Binary files /dev/null and b/mods/sea/seacobble/textures/seacobble_seacobble_magenta.png differ diff --git a/mods/sea/seacobble/textures/seacobble_seacobble_redviolet.png b/mods/sea/seacobble/textures/seacobble_seacobble_redviolet.png new file mode 100755 index 00000000..dbf84c4a Binary files /dev/null and b/mods/sea/seacobble/textures/seacobble_seacobble_redviolet.png differ diff --git a/mods/sea/seacobble/textures/seacobble_seacobble_skyblue.png b/mods/sea/seacobble/textures/seacobble_seacobble_skyblue.png new file mode 100755 index 00000000..bcd4e700 Binary files /dev/null and b/mods/sea/seacobble/textures/seacobble_seacobble_skyblue.png differ diff --git a/mods/sea/seacoral/depends.txt b/mods/sea/seacoral/depends.txt new file mode 100755 index 00000000..e1b2c4e6 --- /dev/null +++ b/mods/sea/seacoral/depends.txt @@ -0,0 +1,4 @@ +default +noairblocks +unifieddyes +colormachine? \ No newline at end of file diff --git a/mods/sea/seacoral/init.lua b/mods/sea/seacoral/init.lua new file mode 100755 index 00000000..2aa6d7dc --- /dev/null +++ b/mods/sea/seacoral/init.lua @@ -0,0 +1,650 @@ +-- NODES + + +minetest.register_node("seacoral:coralcyan", { + description = "Cyan Coral", + drawtype = "plantlike", + tiles = {"seacoral_coralcyan.png"}, + inventory_image = "seacoral_coralcyan.png", + wield_image = "seacoral_coralcyan.png", + paramtype = "light", + walkable = false, + climbable = true, + drowning = 1, + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.3, -0.3, 0.3, 0.3, 0.3} + }, + post_effect_color = {a=64, r=100, g=100, b=200}, + groups = {snappy=3, seacoral=1, sea=1,basecolor_cyan=1}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("seacoral:coralmagenta", { + description = "Magenta Coral", + drawtype = "plantlike", + tiles = {"seacoral_coralmagenta.png"}, + inventory_image = "seacoral_coralmagenta.png", + wield_image = "seacoral_coralmagenta.png", + paramtype = "light", + walkable = false, + climbable = true, + drowning = 1, + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, + post_effect_color = {a=64, r=100, g=100, b=200}, + groups = {snappy=3, seacoral=1, sea=1,basecolor_magenta=1}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("seacoral:coralaqua", { + description = "Aqua Coral", + drawtype = "plantlike", + tiles = {"seacoral_coralaqua.png"}, + inventory_image = "seacoral_coralaqua.png", + wield_image = "seacoral_coralaqua.png", + paramtype = "light", + walkable = false, + climbable = true, + drowning = 1, + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.3, -0.3, 0.3, 0.3, 0.3} + }, + post_effect_color = {a=64, r=100, g=100, b=200}, + groups = {snappy=3, seacoral=1, sea=1,excolor_aqua=1}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("seacoral:corallime", { + description = "Lime Coral", + drawtype = "plantlike", + tiles = {"seacoral_corallime.png"}, + inventory_image = "seacoral_corallime.png", + wield_image = "seacoral_corallime.png", + paramtype = "light", + walkable = false, + climbable = true, + drowning = 1, + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, + post_effect_color = {a=64, r=100, g=100, b=200}, + groups = {snappy=3, seacoral=1, sea=1,excolor_lime=1}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("seacoral:coralskyblue", { + description = "Skyblue Coral", + drawtype = "plantlike", + tiles = {"seacoral_coralskyblue.png"}, + inventory_image = "seacoral_coralskyblue.png", + wield_image = "seacoral_coralskyblue.png", + paramtype = "light", + walkable = false, + climbable = true, + drowning = 1, + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, + post_effect_color = {a=64, r=100, g=100, b=200}, + groups = {snappy=3, seacoral=1, sea=1,excolor_skyblue=1}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("seacoral:coralredviolet", { + description = "Redviolet Coral", + drawtype = "plantlike", + tiles = {"seacoral_coralredviolet.png"}, + inventory_image = "seacoral_coralredviolet.png", + wield_image = "seacoral_coralredviolet.png", + paramtype = "light", + walkable = false, + climbable = true, + drowning = 1, + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, + post_effect_color = {a=64, r=100, g=100, b=200}, + groups = {snappy=3, seacoral=1, sea=1,excolor_redviolet=1}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("seacoral:seacoralsandcyan", { + description = "Sea coral sand cyan", + tiles = {"default_sand.png"}, + is_ground_content = true, + groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, + drop = 'default:sand', + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("seacoral:seacoraldirtcyan", { + description = "Sea coral dirt cyan", + tiles = {"default_dirt.png"}, + is_ground_content = true, + groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("seacoral:seacoralsandmagenta", { + description = "Sea coral sand magenta", + tiles = {"default_sand.png"}, + is_ground_content = true, + groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, + drop = 'default:sand', + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("seacoral:seacoraldirtmagenta", { + description = "Sea coral dirt magenta", + tiles = {"default_dirt.png"}, + is_ground_content = true, + groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("seacoral:seacoralsandaqua", { + description = "Sea coral sand aqua", + tiles = {"default_sand.png"}, + is_ground_content = true, + groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, + drop = 'default:sand', + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("seacoral:seacoraldirtaqua", { + description = "Sea coral dirt aqua", + tiles = {"default_dirt.png"}, + is_ground_content = true, + groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("seacoral:seacoralsandlime", { + description = "Sea coral sand lime", + tiles = {"default_sand.png"}, + is_ground_content = true, + groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, + drop = 'default:sand', + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("seacoral:seacoraldirtlime", { + description = "Sea coral dirt lime", + tiles = {"default_dirt.png"}, + is_ground_content = true, + groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("seacoral:seacoralsandskyblue", { + description = "Sea coral sand skyblue", + tiles = {"default_sand.png"}, + is_ground_content = true, + groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, + drop = 'default:sand', + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("seacoral:seacoraldirtskyblue", { + description = "Sea coral dirt skyblue", + tiles = {"default_dirt.png"}, + is_ground_content = true, + groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("seacoral:seacoralsandredviolet", { + description = "Sea coral sand redviolet", + tiles = {"default_sand.png"}, + is_ground_content = true, + groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, + drop = 'default:sand', + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("seacoral:seacoraldirtredviolet", { + description = "Sea coral dirt redviolet", + tiles = {"default_dirt.png"}, + is_ground_content = true, + groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults(), +}) + + +-- CRAFTING + + +if( minetest.get_modpath( "colormachine") == nil ) then + register_seacoral_craft = function(output,recipe) + minetest.register_craft({ + type = 'shapeless', + output = output, + recipe = recipe, + }) + end + +register_seacoral_craft('dye:cyan 4', {'seacoral:coralcyan'}) +register_seacoral_craft('dye:magenta 4', {'seacoral:coralmagenta'}) +register_seacoral_craft('dye:lime 4', {'seacoral:corallime'}) +register_seacoral_craft('dye:aqua 4', {'seacoral:coralaqua'}) +register_seacoral_craft('dye:skyblue 4', {'seacoral:coralskyblue'}) +register_seacoral_craft('dye:redviolet 4', {'seacoral:coralredviolet'}) +end + +-- SEACORAL SAND AND DIRT GENERATION + + +minetest.register_ore({ + ore_type = "scatter", + ore = "seacoral:seacoralsandcyan", + wherein = "default:sand", + clust_scarcity = 10*10*10, + clust_num_ores = 24, + clust_size = 4, + height_max = -4, + height_min = -8, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "seacoral:seacoraldirtcyan", + wherein = "default:dirt", + clust_scarcity = 10*10*10, + clust_num_ores = 24, + clust_size = 4, + height_max = -4, + height_min = -8, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "seacoral:seacoralsandmagenta", + wherein = "default:sand", + clust_scarcity = 10*10*10, + clust_num_ores = 24, + clust_size = 4, + height_max = -4, + height_min = -8, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "seacoral:seacoraldirtmagenta", + wherein = "default:dirt", + clust_scarcity = 10*10*10, + clust_num_ores = 24, + clust_size = 4, + height_max = -4, + height_min = -8, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "seacoral:seacoralsandaqua", + wherein = "default:sand", + clust_scarcity = 10*10*10, + clust_num_ores = 24, + clust_size = 4, + height_max = -4, + height_min = -8, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "seacoral:seacoraldirtaqua", + wherein = "default:dirt", + clust_scarcity = 10*10*10, + clust_num_ores = 24, + clust_size = 4, + height_max = -4, + height_min = -8, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "seacoral:seacoralsandlime", + wherein = "default:sand", + clust_scarcity = 10*10*10, + clust_num_ores = 24, + clust_size = 4, + height_max = -4, + height_min = -8, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "seacoral:seacoraldirtlime", + wherein = "default:dirt", + clust_scarcity = 10*10*10, + clust_num_ores = 24, + clust_size = 4, + height_max = -4, + height_min = -8, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "seacoral:seacoralsandskyblue", + wherein = "default:sand", + clust_scarcity = 10*10*10, + clust_num_ores = 24, + clust_size = 4, + height_max = -4, + height_min = -8, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "seacoral:seacoraldirtskyblue", + wherein = "default:dirt", + clust_scarcity = 10*10*10, + clust_num_ores = 24, + clust_size = 4, + height_max = -4, + height_min = -8, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "seacoral:seacoralsandredviolet", + wherein = "default:sand", + clust_scarcity = 10*10*10, + clust_num_ores = 24, + clust_size = 4, + height_max = -4, + height_min = -8, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "seacoral:seacoraldirtredviolet", + wherein = "default:dirt", + clust_scarcity = 10*10*10, + clust_num_ores = 24, + clust_size = 4, + height_max = -4, + height_min = -8, +}) + +local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, chunk_size, ore_per_chunk, height_min, height_max) + 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) + 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 +end + + +-- ABM'S + + +minetest.register_abm({ +nodenames = {"seacoral:seacoraldirtcyan"}, +interval = 12, +chance = 12, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "seacoral:coralcyan"}) else + return + end +end +}) + +minetest.register_abm({ +nodenames = {"seacoral:seacoralsandcyan"}, +interval = 12, +chance = 12, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "seacoral:coralcyan"}) else + return + end +end +}) + +minetest.register_abm({ +nodenames = {"seacoral:seacoraldirtmagenta"}, +interval = 12, +chance = 12, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "seacoral:coralmagenta"}) else + return + end +end +}) + +minetest.register_abm({ +nodenames = {"seacoral:seacoralsandmagenta"}, +interval = 12, +chance = 12, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "seacoral:coralmagenta"}) else + return + end +end +}) + +minetest.register_abm({ +nodenames = {"seacoral:seacoraldirtaqua"}, +interval = 12, +chance = 12, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "seacoral:coralaqua"}) else + return + end +end +}) + +minetest.register_abm({ +nodenames = {"seacoral:seacoralsandaqua"}, +interval = 12, +chance = 12, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "seacoral:coralaqua"}) else + return + end +end +}) + +minetest.register_abm({ +nodenames = {"seacoral:seacoraldirtlime"}, +interval = 12, +chance = 12, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "seacoral:corallime"}) else + return + end +end +}) + +minetest.register_abm({ +nodenames = {"seacoral:seacoralsandlime"}, +interval = 12, +chance = 12, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "seacoral:corallime"}) else + return + end +end +}) + +minetest.register_abm({ +nodenames = {"seacoral:seacoraldirtskyblue"}, +interval = 12, +chance = 12, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "seacoral:coralskyblue"}) else + return + end +end +}) + +minetest.register_abm({ +nodenames = {"seacoral:seacoralsandskyblue"}, +interval = 12, +chance = 12, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "seacoral:coralskyblue"}) else + return + end +end +}) + +minetest.register_abm({ +nodenames = {"seacoral:seacoraldirtredviolet"}, +interval = 12, +chance = 12, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "seacoral:coralredviolet"}) else + return + end +end +}) + +minetest.register_abm({ +nodenames = {"seacoral:seacoralsandredviolet"}, +interval = 12, +chance = 12, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "seacoral:coralredviolet"}) else + return + end +end +}) + +minetest.register_abm({ +nodenames = {"group:seacoral"}, +interval = 3, +chance = 1, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + local yyp = {x = pos.x, y = pos.y + 2, z = pos.z} + if ((minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") and + (minetest.get_node(yyp).name == "default:water_source" or + minetest.get_node(yyp).name == "noairblocks:water_sourcex")) then + local objs = minetest.env:get_objects_inside_radius(pos, 2) + for k, obj in pairs(objs) do + obj:set_hp(obj:get_hp()+ 1) + end + else + return + end +end +}) + + +-- OPTIONAL DEPENDENCY + + +if( minetest.get_modpath( "colormachine") ~= nil ) then + colormachine.basic_dye_sources = { "flowers:rose", "flowers:tulip", "flowers:dandelion_yellow", "seacoral:corallime", "default:cactus", "seacoral:coralaqua", "seacoral:coralcyan", "seacoral:coralskyblue", "flowers:geranium", "flowers:viola", "seacoral:coralmagenta", "seacoral:coralredviolet", "default:stone", "", "", "", "default:coal_lump" }; + else + return +end + + +-- ALIASES + + +minetest.register_alias("seadye:cyan","dye:cyan") +minetest.register_alias("seadye:magenta","dye:magenta") +minetest.register_alias("seadye:lime","dye:lime") +minetest.register_alias("seadye:aqua","dye:aqua") +minetest.register_alias("seadye:skyblue","dye:skyblue") +minetest.register_alias("seadye:redviolet","dye:redviolet") \ No newline at end of file diff --git a/mods/sea/seacoral/readme.txt b/mods/sea/seacoral/readme.txt new file mode 100755 index 00000000..aa9f9611 --- /dev/null +++ b/mods/sea/seacoral/readme.txt @@ -0,0 +1,21 @@ +Sounds: +sounds = default.node_sound_dirt_defaults(), + +Mito551 (sounds) (CC BY-SA): + + +.png's: +default_sand.png +VanessaE (WTFPL) + +default_dirt.png +Cisoun's WTFPL texture pack + + +Code: +minetest/games/minetest_game/mods/default/mapgen.lua --> ore generation + +Copyright (C) 2011-2012 celeron55, Perttu Ahola +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. \ No newline at end of file diff --git a/mods/sea/seacoral/textures/seacoral_coralaqua.png b/mods/sea/seacoral/textures/seacoral_coralaqua.png new file mode 100755 index 00000000..92dae19a Binary files /dev/null and b/mods/sea/seacoral/textures/seacoral_coralaqua.png differ diff --git a/mods/sea/seacoral/textures/seacoral_coralcyan.png b/mods/sea/seacoral/textures/seacoral_coralcyan.png new file mode 100755 index 00000000..e06c03b5 Binary files /dev/null and b/mods/sea/seacoral/textures/seacoral_coralcyan.png differ diff --git a/mods/sea/seacoral/textures/seacoral_corallime.png b/mods/sea/seacoral/textures/seacoral_corallime.png new file mode 100755 index 00000000..4c691949 Binary files /dev/null and b/mods/sea/seacoral/textures/seacoral_corallime.png differ diff --git a/mods/sea/seacoral/textures/seacoral_coralmagenta.png b/mods/sea/seacoral/textures/seacoral_coralmagenta.png new file mode 100755 index 00000000..ff3ce01e Binary files /dev/null and b/mods/sea/seacoral/textures/seacoral_coralmagenta.png differ diff --git a/mods/sea/seacoral/textures/seacoral_coralredviolet.png b/mods/sea/seacoral/textures/seacoral_coralredviolet.png new file mode 100755 index 00000000..a0783aef Binary files /dev/null and b/mods/sea/seacoral/textures/seacoral_coralredviolet.png differ diff --git a/mods/sea/seacoral/textures/seacoral_coralskyblue.png b/mods/sea/seacoral/textures/seacoral_coralskyblue.png new file mode 100755 index 00000000..043013a8 Binary files /dev/null and b/mods/sea/seacoral/textures/seacoral_coralskyblue.png differ diff --git a/mods/sea/seaglass/depends.txt b/mods/sea/seaglass/depends.txt new file mode 100755 index 00000000..5ceae13c --- /dev/null +++ b/mods/sea/seaglass/depends.txt @@ -0,0 +1,6 @@ +default +dye +stairs +clams +stairsshine +colormachine? \ No newline at end of file diff --git a/mods/sea/seaglass/init.lua b/mods/sea/seaglass/init.lua new file mode 100755 index 00000000..6e8deba6 --- /dev/null +++ b/mods/sea/seaglass/init.lua @@ -0,0 +1,741 @@ +-- NODES + + +minetest.register_node("seaglass:seaglass", { + description = "Standard seaglass on", + drawtype = "glasslike", + tiles = {"seaglass_seaglass.png"}, + inventory_image = minetest.inventorycube("seaglass_seaglass.png"), + paramtype = "light", + sunlight_propagates = true, + light_source = 14, + is_ground_content = true, + drop = 'seaglass:seaglassoff', + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, nocolor=1, shine=1, not_in_creative_inventory=1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("seaglass:seaglass_yellow", { + description = "Seaglass yellow on", + drawtype = "glasslike", + tiles = {"seaglass_seaglass_yellow.png"}, + inventory_image = minetest.inventorycube("seaglass_seaglass_yellow.png"), + paramtype = "light", + sunlight_propagates = true, + light_source = 14, + is_ground_content = true, + drop = 'seaglass:seaglassoff_yellow', + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_yellow=1, shine=1, yellowshine=1, not_in_creative_inventory=1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("seaglass:seaglass_red", { + description = "Seaglass red on", + drawtype = "glasslike", + tiles = {"seaglass_seaglass_red.png"}, + inventory_image = minetest.inventorycube("seaglass_seaglass_red.png"), + paramtype = "light", + sunlight_propagates = true, + light_source = 14, + is_ground_content = true, + drop = 'seaglass:seaglassoff_red', + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_red=1, shine=1, redshine=1, not_in_creative_inventory=1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("seaglass:seaglass_blue", { + description = "Seaglass blue on", + drawtype = "glasslike", + tiles = {"seaglass_seaglass_blue.png"}, + inventory_image = minetest.inventorycube("seaglass_seaglass_blue.png"), + paramtype = "light", + sunlight_propagates = true, + light_source = 14, + is_ground_content = true, + drop = 'seaglass:seaglassoff_blue', + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_blue=1, shine=1, blueshine=1, not_in_creative_inventory=1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("seaglass:seaglass_white", { + description = "Seaglass white on", + drawtype = "glasslike", + tiles = {"seaglass_seaglass_white.png"}, + inventory_image = minetest.inventorycube("seaglass_seaglass_white.png"), + paramtype = "light", + sunlight_propagates = true, + light_source = 14, + is_ground_content = true, + drop = 'seaglass:seaglassoff_white', + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_white=1, shine=1, whiteshine=1, not_in_creative_inventory=1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("seaglass:seaglass_black", { + description = "Seaglass black on", + drawtype = "glasslike", + tiles = {"seaglass_seaglass_black.png"}, + inventory_image = minetest.inventorycube("seaglass_seaglass_black.png"), + paramtype = "light", + sunlight_propagates = true, + light_source = 14, + is_ground_content = true, + drop = 'seaglass:seaglassoff_black', + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_black=1, shine=1, blackshine=1, not_in_creative_inventory=1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("seaglass:seaglassoff", { + description = "Standard seaglass off", + drawtype = "glasslike", + tiles = {"seaglass_seaglass.png"}, + inventory_image = minetest.inventorycube("seaglass_seaglass.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, nocolor=1, noshine=1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("seaglass:seaglassoff_yellow", { + description = "Seaglass yellow off", + drawtype = "glasslike", + tiles = {"seaglass_seaglass_yellow.png"}, + inventory_image = minetest.inventorycube("seaglass_seaglass_yellow.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_yellow=1, noshine=1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("seaglass:seaglassoff_red", { + description = "Seaglass red off", + drawtype = "glasslike", + tiles = {"seaglass_seaglass_red.png"}, + inventory_image = minetest.inventorycube("seaglass_seaglass_red.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_red=1, noshine=1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("seaglass:seaglassoff_blue", { + description = "Seaglass blue off", + drawtype = "glasslike", + tiles = {"seaglass_seaglass_blue.png"}, + inventory_image = minetest.inventorycube("seaglass_seaglass_blue.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_blue=1, noshine=1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("seaglass:seaglassoff_white", { + description = "Seaglass white off", + drawtype = "glasslike", + tiles = {"seaglass_seaglass_white.png"}, + inventory_image = minetest.inventorycube("seaglass_seaglass_white.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_white=1, noshine=1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("seaglass:seaglassoff_black", { + description = "Seaglass black off", + drawtype = "glasslike", + tiles = {"seaglass_seaglass_black.png"}, + inventory_image = minetest.inventorycube("seaglass_seaglass_black.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_black=1, noshine=1}, + sounds = default.node_sound_glass_defaults(), +}) + + +-- STAIRS + + +stairsshine.register_stair_and_slab("seaglass", "seaglass:seaglass", + {snappy=2,cracky=3,oddly_breakable_by_hand=3, nocolor=1, shine=1, not_in_creative_inventory=1}, + {"seaglass_seaglass.png"}, + "Seaglass stair on", + "Seaglass slab on", + default.node_sound_glass_defaults()) + +stairsshine.register_stair_and_slab("seaglass_yellow", "seaglass:seaglass_yellow", + {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_yellow=1, shine=1, yellowshine=1, not_in_creative_inventory=1}, + {"seaglass_seaglass_yellow.png"}, + "seaglass stair on yellow", + "seaglass slab on yellow", + default.node_sound_glass_defaults()) + +stairsshine.register_stair_and_slab("seaglass_red", "seaglass:seaglass_red", + {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_red=1, shine=1, redshine=1, not_in_creative_inventory=1}, + {"seaglass_seaglass_red.png"}, + "Seaglass stair on red", + "Seaglass slab on red", + default.node_sound_glass_defaults()) + +stairsshine.register_stair_and_slab("seaglass_blue", "seaglass:seaglass_blue", + {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_blue=1, shine=1, blueshine=1, not_in_creative_inventory=1}, + {"seaglass_seaglass_blue.png"}, + "Seaglass stair on blue", + "Seaglass slab on blue", + default.node_sound_glass_defaults()) + +stairsshine.register_stair_and_slab("seaglass_white", "seaglass:seaglass_white", + {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_white=1, shine=1, whiteshine=1, not_in_creative_inventory=1}, + {"seaglass_seaglass_white.png"}, + "Seaglass stair on white", + "Seaglass slab on white", + default.node_sound_glass_defaults()) + +stairsshine.register_stair_and_slab("seaglass_black", "seaglass:seaglass_black", + {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_black=1, shine=1, blackshine=1, not_in_creative_inventory=1}, + {"seaglass_seaglass_black.png"}, + "Seaglass stair on black ", + "Seaglass slab on black", + default.node_sound_glass_defaults()) + +stairs.register_stair_and_slab("seaglassoff", "seaglass:seaglassoff", + {snappy=2,cracky=3,oddly_breakable_by_hand=3, nocolor=1, noshine=1}, + {"seaglass_seaglass.png"}, + "Seaglass stair off", + "Seaglass slab off", + default.node_sound_glass_defaults()) + +stairs.register_stair_and_slab("seaglassoff_yellow", "seaglass:seaglassoff_yellow", + {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_yellow=1, noshine=1}, + {"seaglass_seaglass_yellow.png"}, + "seaglass stair off yellow", + "seaglass slab off yellow", + default.node_sound_glass_defaults()) + +stairs.register_stair_and_slab("seaglassoff_red", "seaglass:seaglassoff_red", + {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_red=1, noshine=1}, + {"seaglass_seaglass_red.png"}, + "Seaglass stair off red", + "Seaglass slab off red", + default.node_sound_glass_defaults()) + +stairs.register_stair_and_slab("seaglassoff_blue", "seaglass:seaglassoff_blue", + {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_blue=1, noshine=1}, + {"seaglass_seaglass_blue.png"}, + "Seaglass stair off blue", + "Seaglass slab off blue", + default.node_sound_glass_defaults()) + +stairs.register_stair_and_slab("seaglassoff_white", "seaglass:seaglassoff_white", + {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_white=1, noshine=1}, + {"seaglass_seaglass_white.png"}, + "Seaglass stair off white", + "Seaglass slab off white", + default.node_sound_glass_defaults()) + +stairs.register_stair_and_slab("seaglassoff_black", "seaglass:seaglassoff_black", + {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_black=1, noshine=1}, + {"seaglass_seaglass_black.png"}, + "Seaglass stair off black ", + "Seaglass slab off black", + default.node_sound_glass_defaults()) + + +-- CRAFTING + + +local register_seaglass_craft = function(output,recipe) + minetest.register_craft({ + type = 'shapeless', + output = output, + recipe = recipe, + }) +end + +register_seaglass_craft("seaglass:seaglassoff", {'clams:collectedalgae', 'default:glass'}) + +register_seaglass_craft("seaglass:seaglassoff_yellow", {'clams:collectedalgae', 'default:glass', 'dye:yellow'}) +register_seaglass_craft("seaglass:seaglassoff_red", {'clams:collectedalgae', 'default:glass', 'dye:red'}) +register_seaglass_craft("seaglass:seaglassoff_blue", {'clams:collectedalgae', 'default:glass', 'dye:blue'}) +register_seaglass_craft("seaglass:seaglassoff_white", {'clams:collectedalgae', 'default:glass', 'dye:white'}) +register_seaglass_craft("seaglass:seaglassoff_black", {'clams:collectedalgae', 'default:glass', 'dye:black'}) + +register_seaglass_craft("seaglass:seaglassoff_yellow", {'seaglass:seaglass', 'dye:yellow'}) +register_seaglass_craft("seaglass:seaglassoff_red", {'seaglass:seaglass', 'dye:red'}) +register_seaglass_craft("seaglass:seaglassoff_blue", {'seaglass:seaglass', 'dye:blue'}) +register_seaglass_craft("seaglass:seaglassoff_white", {'seaglass:seaglass', 'dye:white'}) +register_seaglass_craft("seaglass:seaglassoff_black", {'seaglass:seaglass', 'dye:black'}) + +register_seaglass_craft("seaglass:seaglassoff_yellow", {'seaglass:seaglassoff', 'dye:yellow'}) +register_seaglass_craft("seaglass:seaglassoff_red", {'seaglass:seaglassoff', 'dye:red'}) +register_seaglass_craft("seaglass:seaglassoff_blue", {'seaglass:seaglassoff', 'dye:blue'}) +register_seaglass_craft("seaglass:seaglassoff_white", {'seaglass:seaglassoff', 'dye:white'}) +register_seaglass_craft("seaglass:seaglassoff_black", {'seaglass:seaglassoff', 'dye:black'}) + +register_seaglass_craft("seaglass:seaglassoff", {'seaglass:seaglass'}) +register_seaglass_craft("seaglass:seaglassoff_yellow", {'seaglass:seaglass_yellow'}) +register_seaglass_craft("seaglass:seaglassoff_red", {'seaglass:seaglass_red'}) +register_seaglass_craft("seaglass:seaglassoff_blue", {'seaglass:seaglass_blue'}) +register_seaglass_craft("seaglass:seaglassoff_white", {'seaglass:seaglass_white'}) +register_seaglass_craft("seaglass:seaglassoff_black", {'seaglass:seaglass_black'}) + +register_seaglass_craft("seaglass:seaglass", {'seaglass:seaglassoff'}) +register_seaglass_craft("seaglass:seaglass_yellow", {'seaglass:seaglassoff_yellow'}) +register_seaglass_craft("seaglass:seaglass_red", {'seaglass:seaglassoff_red'}) +register_seaglass_craft("seaglass:seaglass_blue", {'seaglass:seaglassoff_blue'}) +register_seaglass_craft("seaglass:seaglass_white", {'seaglass:seaglassoff_white'}) +register_seaglass_craft("seaglass:seaglass_black", {'seaglass:seaglassoff_black'}) + +register_seaglass_craft("stairsshine:stair_seaglass", {'stairs:stair_seaglassoff'}) +register_seaglass_craft("stairsshine:stair_seaglass_yellow", {'stairs:stair_seaglassoff_yellow'}) +register_seaglass_craft("stairsshine:stair_seaglass_red", {'stairs:stair_seaglassoff_red'}) +register_seaglass_craft("stairsshine:stair_seaglass_blue", {'stairs:stair_seaglassoff_blue'}) +register_seaglass_craft("stairsshine:stair_seaglass_white", {'stairs:stair_seaglassoff_white'}) +register_seaglass_craft("stairsshine:stair_seaglass_black", {'stairs:stair_seaglassoff_black'}) + +register_seaglass_craft("stairs:stair_seaglassoff", {'stairsshine:stair_seaglass'}) +register_seaglass_craft("stairs:stair_seaglassoff_yellow", {'stairsshine:stair_seaglass_yellow'}) +register_seaglass_craft("stairs:stair_seaglassoff_red", {'stairsshine:stair_seaglass_red'}) +register_seaglass_craft("stairs:stair_seaglassoff_blue", {'stairsshine:stair_seaglass_blue'}) +register_seaglass_craft("stairs:stair_seaglassoff_white", {'stairsshine:stair_seaglass_white'}) +register_seaglass_craft("stairs:stair_seaglassoff_black", {'stairsshine:stair_seaglass_black'}) + +register_seaglass_craft("stairsshine:slab_seaglass", {'stairs:slab_seaglassoff'}) +register_seaglass_craft("stairsshine:slab_seaglass_yellow", {'stairs:slab_seaglassoff_yellow'}) +register_seaglass_craft("stairsshine:slab_seaglass_red", {'stairs:slab_seaglassoff_red'}) +register_seaglass_craft("stairsshine:slab_seaglass_blue", {'stairs:slab_seaglassoff_blue'}) +register_seaglass_craft("stairsshine:slab_seaglass_white", {'stairs:slab_seaglassoff_white'}) +register_seaglass_craft("stairsshine:slab_seaglass_black", {'stairs:slab_seaglassoff_black'}) + +register_seaglass_craft("stairs:slab_seaglassoff", {'stairsshine:slab_seaglass'}) +register_seaglass_craft("stairs:slab_seaglassoff_yellow", {'stairsshine:slab_seaglass_yellow'}) +register_seaglass_craft("stairs:slab_seaglassoff_red", {'stairsshine:slab_seaglass_red'}) +register_seaglass_craft("stairs:slab_seaglassoff_blue", {'stairsshine:slab_seaglass_blue'}) +register_seaglass_craft("stairs:slab_seaglassoff_white", {'stairsshine:slab_seaglass_white'}) +register_seaglass_craft("stairs:slab_seaglassoff_black", {'stairsshine:slab_seaglass_black'}) + + +-- FUNCTIONS + + +local on_lamp_puncher = function (pos, node, puncher) + if node.name == "seaglass:seaglass" then + minetest.add_node(pos, {name="seaglass:seaglassoff"}) + nodeupdate(pos) + elseif node.name == "seaglass:seaglassoff" then + minetest.add_node(pos, {name="seaglass:seaglass"}) + nodeupdate(pos) + elseif node.name == "seaglass:seaglass_yellow" then + minetest.add_node(pos, {name="seaglass:seaglassoff_yellow"}) + nodeupdate(pos) + elseif node.name == "seaglass:seaglassoff_yellow" then + minetest.add_node(pos, {name="seaglass:seaglass_yellow"}) + nodeupdate(pos) + elseif node.name == "seaglass:seaglass_red" then + minetest.add_node(pos, {name="seaglass:seaglassoff_red"}) + nodeupdate(pos) + elseif node.name == "seaglass:seaglassoff_red" then + minetest.add_node(pos, {name="seaglass:seaglass_red"}) + nodeupdate(pos) + elseif node.name == "seaglass:seaglass_blue" then + minetest.add_node(pos, {name="seaglass:seaglassoff_blue"}) + nodeupdate(pos) + elseif node.name == "seaglass:seaglassoff_blue" then + minetest.add_node(pos, {name="seaglass:seaglass_blue"}) + nodeupdate(pos) + elseif node.name == "seaglass:seaglass_white" then + minetest.add_node(pos, {name="seaglass:seaglassoff_white"}) + nodeupdate(pos) + elseif node.name == "seaglass:seaglassoff_white" then + minetest.add_node(pos, {name="seaglass:seaglass_white"}) + nodeupdate(pos) + elseif node.name == "seaglass:seaglass_black" then + minetest.add_node(pos, {name="seaglass:seaglassoff_black"}) + nodeupdate(pos) + elseif node.name == "seaglass:seaglassoff_black" then + minetest.add_node(pos, {name="seaglass:seaglass_black"}) + nodeupdate(pos) + + elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 0 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 0}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 0 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 0}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 1 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 1}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 1 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 1}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 2 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 2}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 2 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 2}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 3 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 3}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 3 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 3}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 20 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 20 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 21 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 21}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 21 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 21}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 22 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 22}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 22 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 22}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 23 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 23}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 23 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 23}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 0 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 0}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 0 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 0}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 1 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 1}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 1 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 1}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 2 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 2}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 2 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 2}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 3 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 3}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 3 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 3}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 20 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 20 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 21 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 21}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 21 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 21}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 22 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 22}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 22 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 22}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 23 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 23}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 23 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 23}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 0 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 0}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 0 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 0}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 1 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 1}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 1 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 1}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 2 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 2}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 2 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 2}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 3 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 3}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 3 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 3}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 20 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 20 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 21 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 21}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 21 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 21}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 22 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 22}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 22 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 22}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 23 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 23}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 23 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 23}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 0 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 0}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 0 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 0}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 1 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 1}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 1 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 1}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 2 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 2}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 2 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 2}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 3 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 3}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 3 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 3}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 20 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 20 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 21 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 21}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 21 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 21}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 22 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 22}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 22 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 22}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 23 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 23}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 23 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 23}) + nodeupdate(pos) + + elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 0 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 0}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 0 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 0}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 1 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 1}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 1 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 1}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 2 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 2}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 2 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 2}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 3 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 3}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 3 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 3}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 20 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 20 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 21 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 21}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 21 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 21}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 22 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 22}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 22 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 22}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 23 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 23}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 23 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 23}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 0 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 0}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 0 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 0}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 1 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 1}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 1 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 1}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 2 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 2}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 2 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 2}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 3 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 3}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 3 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 3}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 20 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 20 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 21 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 21}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 21 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 21}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 22 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 22}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 22 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 22}) + nodeupdate(pos) + elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 23 then + minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 23}) + nodeupdate(pos) + elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 23 then + minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 23}) + nodeupdate(pos) + + elseif node.name == "stairsshine:slab_seaglass" and node.param2 == 20 then + minetest.add_node(pos, {name="stairs:slab_seaglassoff", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairs:slab_seaglassoff" and node.param2 == 20 then + minetest.add_node(pos, {name="stairsshine:slab_seaglass", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairsshine:slab_seaglass" then + minetest.add_node(pos, {name="stairs:slab_seaglassoff"}) + nodeupdate(pos) + elseif node.name == "stairs:slab_seaglassoff" then + minetest.add_node(pos, {name="stairsshine:slab_seaglass"}) + nodeupdate(pos) + elseif node.name == "stairsshine:slab_seaglass_yellow" and node.param2 == 20 then + minetest.add_node(pos, {name="stairs:slab_seaglassoff_yellow", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairs:slab_seaglassoff_yellow" and node.param2 == 20 then + minetest.add_node(pos, {name="stairsshine:slab_seaglass_yellow", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairsshine:slab_seaglass_yellow" then + minetest.add_node(pos, {name="stairs:slab_seaglassoff_yellow"}) + nodeupdate(pos) + elseif node.name == "stairs:slab_seaglassoff_yellow" then + minetest.add_node(pos, {name="stairsshine:slab_seaglass_yellow"}) + nodeupdate(pos) + elseif node.name == "stairsshine:slab_seaglass_red" and node.param2 == 20 then + minetest.add_node(pos, {name="stairs:slab_seaglassoff_red", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairs:slab_seaglassoff_red" and node.param2 == 20 then + minetest.add_node(pos, {name="stairsshine:slab_seaglass_red", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairsshine:slab_seaglass_red" then + minetest.add_node(pos, {name="stairs:slab_seaglassoff_red"}) + nodeupdate(pos) + elseif node.name == "stairs:slab_seaglassoff_red" then + minetest.add_node(pos, {name="stairsshine:slab_seaglass_red"}) + nodeupdate(pos) + elseif node.name == "stairsshine:slab_seaglass_blue" and node.param2 == 20 then + minetest.add_node(pos, {name="stairs:slab_seaglassoff_blue", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairs:slab_seaglassoff_blue" and node.param2 == 20 then + minetest.add_node(pos, {name="stairsshine:slab_seaglass_blue", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairsshine:slab_seaglass_blue" then + minetest.add_node(pos, {name="stairs:slab_seaglassoff_blue"}) + nodeupdate(pos) + elseif node.name == "stairs:slab_seaglassoff_blue" then + minetest.add_node(pos, {name="stairsshine:slab_seaglass_blue"}) + nodeupdate(pos) + elseif node.name == "stairsshine:slab_seaglass_white" and node.param2 == 20 then + minetest.add_node(pos, {name="stairs:slab_seaglassoff_white", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairs:slab_seaglassoff_white" and node.param2 == 20 then + minetest.add_node(pos, {name="stairsshine:slab_seaglass_white", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairsshine:slab_seaglass_white" then + minetest.add_node(pos, {name="stairs:slab_seaglassoff_white"}) + nodeupdate(pos) + elseif node.name == "stairs:slab_seaglassoff_white" then + minetest.add_node(pos, {name="stairsshine:slab_seaglass_white"}) + nodeupdate(pos) + elseif node.name == "stairsshine:slab_seaglass_black" and node.param2 == 20 then + minetest.add_node(pos, {name="stairs:slab_seaglassoff_black", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairs:slab_seaglassoff_black" and node.param2 == 20 then + minetest.add_node(pos, {name="stairsshine:slab_seaglass_black", param2 = 20}) + nodeupdate(pos) + elseif node.name == "stairsshine:slab_seaglass_black" then + minetest.add_node(pos, {name="stairs:slab_seaglassoff_black"}) + nodeupdate(pos) + elseif node.name == "stairs:slab_seaglassoff_black" then + minetest.add_node(pos, {name="stairsshine:slab_seaglass_black"}) + nodeupdate(pos) else + return + end +end + +minetest.register_on_punchnode(on_lamp_puncher) + + + +-- ALIASES + + +minetest.register_alias("clams:yellowlightglass","seaglass:seaglassoff_yellow") +minetest.register_alias("clams:redlightglass","seaglass:seaglassoff_red") +minetest.register_alias("clams:bluelightglass","seaglass:seaglassoff_blue") +minetest.register_alias("clams:whitelightglass","seaglass:seaglassoff_white") +minetest.register_alias("clams:blacklightglass","seaglass:seaglassoff_black") \ No newline at end of file diff --git a/mods/sea/seaglass/readme.txt b/mods/sea/seaglass/readme.txt new file mode 100755 index 00000000..101a0ad6 --- /dev/null +++ b/mods/sea/seaglass/readme.txt @@ -0,0 +1,13 @@ +Sounds: +sounds = default.node_sound_glass_defaults() + +Mito551 (sounds) (CC BY-SA): + + +Code: +minetest/games/minetest_game/mods/default/nodes.lua --> glass + +Copyright (C) 2011-2012 celeron55, Perttu Ahola +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. \ No newline at end of file diff --git a/mods/sea/seaglass/textures/seaglass_seaglass.png b/mods/sea/seaglass/textures/seaglass_seaglass.png new file mode 100755 index 00000000..a2689259 Binary files /dev/null and b/mods/sea/seaglass/textures/seaglass_seaglass.png differ diff --git a/mods/sea/seaglass/textures/seaglass_seaglass_black.png b/mods/sea/seaglass/textures/seaglass_seaglass_black.png new file mode 100755 index 00000000..473fc588 Binary files /dev/null and b/mods/sea/seaglass/textures/seaglass_seaglass_black.png differ diff --git a/mods/sea/seaglass/textures/seaglass_seaglass_blue.png b/mods/sea/seaglass/textures/seaglass_seaglass_blue.png new file mode 100755 index 00000000..4d1aa099 Binary files /dev/null and b/mods/sea/seaglass/textures/seaglass_seaglass_blue.png differ diff --git a/mods/sea/seaglass/textures/seaglass_seaglass_red.png b/mods/sea/seaglass/textures/seaglass_seaglass_red.png new file mode 100755 index 00000000..42df7d78 Binary files /dev/null and b/mods/sea/seaglass/textures/seaglass_seaglass_red.png differ diff --git a/mods/sea/seaglass/textures/seaglass_seaglass_white.png b/mods/sea/seaglass/textures/seaglass_seaglass_white.png new file mode 100755 index 00000000..de1c8369 Binary files /dev/null and b/mods/sea/seaglass/textures/seaglass_seaglass_white.png differ diff --git a/mods/sea/seaglass/textures/seaglass_seaglass_yellow.png b/mods/sea/seaglass/textures/seaglass_seaglass_yellow.png new file mode 100755 index 00000000..8c103099 Binary files /dev/null and b/mods/sea/seaglass/textures/seaglass_seaglass_yellow.png differ diff --git a/mods/sea/seagravel/depends.txt b/mods/sea/seagravel/depends.txt new file mode 100755 index 00000000..257d73b9 --- /dev/null +++ b/mods/sea/seagravel/depends.txt @@ -0,0 +1,6 @@ +default +dye +stairs +clams +whiteshell? +colormachine? \ No newline at end of file diff --git a/mods/sea/seagravel/init.lua b/mods/sea/seagravel/init.lua new file mode 100755 index 00000000..53472c0b --- /dev/null +++ b/mods/sea/seagravel/init.lua @@ -0,0 +1,181 @@ +-- NODES + + +minetest.register_node("seagravel:seagravel", { + description = "Sea gravel", + tiles = {"seagravel_seagravel.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("seagravel:seagravel_cyan", { + description = "Sea gravel cyan", + tiles = {"seagravel_seagravel_cyan.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("seagravel:seagravel_magenta", { + description = "Sea gravel magenta", + tiles = {"seagravel_seagravel_magenta.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("seagravel:seagravel_lime", { + description = "Sea gravel lime", + tiles = {"seagravel_seagravel_lime.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("seagravel:seagravel_aqua", { + description = "Sea gravel aqua", + tiles = {"seagravel_seagravel_aqua.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("seagravel:seagravel_skyblue", { + description = "Sea gravel skyblue", + tiles = {"seagravel_seagravel_skyblue.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("seagravel:seagravel_redviolet", { + description = "Sea gravel redviolet", + tiles = {"seagravel_seagravel_redviolet.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}, + }), +}) + + +-- STAIRS + + +stairs.register_stair_and_slab("seagravel", "seagravel:seagravel", + {crumbly=2, falling_node=1}, + {"seagravel_seagravel.png"}, + "Seagravel stair", + "Seagravel slab", + default.node_sound_dirt_defaults({ + footstep = {name="default_gravel_footstep", gain=0.5}, + dug = {name="default_gravel_footstep", gain=1.0}, + })) + +stairs.register_stair_and_slab("seagravel_cyan", "seagravel:seagravel_cyan", + {crumbly=2, falling_node=1}, + {"seagravel_seagravel_cyan.png"}, + "Seagravel stair cyan", + "Seagravel slab cyan", + default.node_sound_dirt_defaults({ + footstep = {name="default_gravel_footstep", gain=0.5}, + dug = {name="default_gravel_footstep", gain=1.0}, + })) + +stairs.register_stair_and_slab("seagravel_magenta", "seagravel:seagravel_magenta", + {crumbly=2, falling_node=1}, + {"seagravel_seagravel_magenta.png"}, + "Seagravel stair magenta", + "Seagravel slab magenta", + default.node_sound_dirt_defaults({ + footstep = {name="default_gravel_footstep", gain=0.5}, + dug = {name="default_gravel_footstep", gain=1.0}, + })) + +stairs.register_stair_and_slab("seagravel_lime", "seagravel:seagravel_lime", + {cracky=3, stone=2}, + {"seagravel_seagravel_lime.png"}, + "Seagravel stair lime", + "Seagravel slab lime", + default.node_sound_dirt_defaults({ + footstep = {name="default_gravel_footstep", gain=0.5}, + dug = {name="default_gravel_footstep", gain=1.0}, + })) + +stairs.register_stair_and_slab("seagravel_aqua", "seagravel:seagravel_aqua", + {crumbly=2, falling_node=1}, + {"seagravel_seagravel_aqua.png"}, + "Seagravel stair aqua", + "Seagravel slab aqua", + default.node_sound_dirt_defaults({ + footstep = {name="default_gravel_footstep", gain=0.5}, + dug = {name="default_gravel_footstep", gain=1.0}, + })) + +stairs.register_stair_and_slab("seagravel_skyblue", "seagravel:seagravel_skyblue", + {crumbly=2, falling_node=1}, + {"seagravel_seagravel_skyblue.png"}, + "Seagravel stair skyblue ", + "Seagravel slab skyblue", + default.node_sound_dirt_defaults({ + footstep = {name="default_gravel_footstep", gain=0.5}, + dug = {name="default_gravel_footstep", gain=1.0}, + })) + +stairs.register_stair_and_slab("seagravel_redviolet", "seagravel:seagravel_redviolet", + {crumbly=2, falling_node=1}, + {"seagravel_seagravel_redviolet.png"}, + "Seagravel stair redviolet", + "Seagravel slab redviolet", + default.node_sound_dirt_defaults({ + footstep = {name="default_gravel_footstep", gain=0.5}, + dug = {name="default_gravel_footstep", gain=1.0}, + })) + + +-- CRAFTING + + +local register_seagravel_craft = function(output,recipe) + minetest.register_craft({ + type = 'shapeless', + output = output, + recipe = recipe, + }) +end + +register_seagravel_craft("seagravel:seagravel", {'clams:crushedwhite', 'default:gravel'}) + +register_seagravel_craft("seagravel:seagravel_cyan", {'seagravel:seagravel', 'dye:cyan'}) +register_seagravel_craft("seagravel:seagravel_magenta", {'seagravel:seagravel', 'dye:magenta'}) +register_seagravel_craft("seagravel:seagravel_lime", {'seagravel:seagravel', 'dye:lime'}) +register_seagravel_craft("seagravel:seagravel_aqua", {'seagravel:seagravel', 'dye:aqua'}) +register_seagravel_craft("seagravel:seagravel_skyblue", {'seagravel:seagravel', 'dye:skyblue'}) +register_seagravel_craft("seagravel:seagravel_redviolet", {'seagravel:seagravel', 'dye:redviolet'}) + +register_seagravel_craft("seagravel:seagravel_cyan", {'clams:crushedwhite', 'default:gravel','dye:cyan'}) +register_seagravel_craft("seagravel:seagravel_magenta", {'clams:crushedwhite', 'default:gravel','dye:magenta'}) +register_seagravel_craft("seagravel:seagravel_lime", {'clams:crushedwhite', 'default:gravel','dye:lime'}) +register_seagravel_craft("seagravel:seagravel_aqua", {'clams:crushedwhite', 'default:gravel','dye:aqua'}) +register_seagravel_craft("seagravel:seagravel_skyblue", {'clams:crushedwhite', 'default:gravel','dye:skyblue'}) +register_seagravel_craft("seagravel:seagravel_redviolet", {'clams:crushedwhite', 'default:gravel','dye:redviolet'}) \ No newline at end of file diff --git a/mods/sea/seagravel/readme.txt b/mods/sea/seagravel/readme.txt new file mode 100755 index 00000000..e1fa67bb --- /dev/null +++ b/mods/sea/seagravel/readme.txt @@ -0,0 +1,16 @@ +Sounds: +sounds = default.node_sound_dirt_defaults() + +Copyright (C) 2010-2012 celeron55, Perttu Ahola + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + + +Code: +minetest/games/minetest_game/mods/default/nodes.lua --> gravel + +Copyright (C) 2011-2012 celeron55, Perttu Ahola +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. \ No newline at end of file diff --git a/mods/sea/seagravel/textures/seagravel_seagravel.png b/mods/sea/seagravel/textures/seagravel_seagravel.png new file mode 100755 index 00000000..20c9e2a9 Binary files /dev/null and b/mods/sea/seagravel/textures/seagravel_seagravel.png differ diff --git a/mods/sea/seagravel/textures/seagravel_seagravel_aqua.png b/mods/sea/seagravel/textures/seagravel_seagravel_aqua.png new file mode 100755 index 00000000..e5c69e2b Binary files /dev/null and b/mods/sea/seagravel/textures/seagravel_seagravel_aqua.png differ diff --git a/mods/sea/seagravel/textures/seagravel_seagravel_cyan.png b/mods/sea/seagravel/textures/seagravel_seagravel_cyan.png new file mode 100755 index 00000000..18f2a1ba Binary files /dev/null and b/mods/sea/seagravel/textures/seagravel_seagravel_cyan.png differ diff --git a/mods/sea/seagravel/textures/seagravel_seagravel_lime.png b/mods/sea/seagravel/textures/seagravel_seagravel_lime.png new file mode 100755 index 00000000..3fa0132f Binary files /dev/null and b/mods/sea/seagravel/textures/seagravel_seagravel_lime.png differ diff --git a/mods/sea/seagravel/textures/seagravel_seagravel_magenta.png b/mods/sea/seagravel/textures/seagravel_seagravel_magenta.png new file mode 100755 index 00000000..f1dedc1c Binary files /dev/null and b/mods/sea/seagravel/textures/seagravel_seagravel_magenta.png differ diff --git a/mods/sea/seagravel/textures/seagravel_seagravel_redviolet.png b/mods/sea/seagravel/textures/seagravel_seagravel_redviolet.png new file mode 100755 index 00000000..f61c294b Binary files /dev/null and b/mods/sea/seagravel/textures/seagravel_seagravel_redviolet.png differ diff --git a/mods/sea/seagravel/textures/seagravel_seagravel_skyblue.png b/mods/sea/seagravel/textures/seagravel_seagravel_skyblue.png new file mode 100755 index 00000000..f989547a Binary files /dev/null and b/mods/sea/seagravel/textures/seagravel_seagravel_skyblue.png differ diff --git a/mods/sea/sealamps/depends.txt b/mods/sea/sealamps/depends.txt new file mode 100755 index 00000000..96362815 --- /dev/null +++ b/mods/sea/sealamps/depends.txt @@ -0,0 +1,3 @@ +default +bucket +noairblocks \ No newline at end of file diff --git a/mods/sea/sealamps/init.lua b/mods/sea/sealamps/init.lua new file mode 100755 index 00000000..684738d4 --- /dev/null +++ b/mods/sea/sealamps/init.lua @@ -0,0 +1,74 @@ +-- NODES + +minetest.register_node("sealamps:torch", { + description = "Sea torch", + drawtype = "torchlike", + tiles = { + {name="sealamps_torch_on_floor_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}}, + {name="sealamps_torch_on_ceiling_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}}, + {name="sealamps_torch_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}} + }, + inventory_image = "sealamps_torch_on_floor.png", + wield_image = "sealamps_torch_on_floor.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + light_source = LIGHT_MAX-1, + selection_box = { + type = "wallmounted", + wall_top = {-0.1, 0.5-0.6, -0.1, 0.1, 0.5, 0.1}, + wall_bottom = {-0.1, -0.5, -0.1, 0.1, -0.5+0.6, 0.1}, + wall_side = {-0.5, -0.3, -0.1, -0.5+0.3, 0.3, 0.1}, + }, + groups = {choppy=2,dig_immediate=3,flammable=1,attached_node=1,hot=2,sea=1}, + legacy_wallmounted = true, + sounds = default.node_sound_defaults(), +}) + +minetest.register_node("sealamps:lantern", { + description = "Sea lantern", + drawtype = "torchlike", + tiles = { + {name="sealamps_lantern_on_floor.png"}, + {name="sealamps_lantern_on_ceiling.png"}, + {name="sealamps_lantern.png"} + }, + inventory_image = "sealamps_lantern_on_floor.png", + wield_image = "sealamps_lantern_on_floor.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + light_source = LIGHT_MAX-1, + selection_box = { + type = "wallmounted", + wall_top = {-0.1, 0.5-0.6, -0.1, 0.1, 0.5, 0.1}, + wall_bottom = {-0.1, -0.5, -0.1, 0.1, -0.5+0.6, 0.1}, + wall_side = {-0.5, -0.3, -0.1, -0.5+0.3, 0.3, 0.1}, + }, + groups = {choppy=2,dig_immediate=3,attached_node=1,hot=2,sea=1}, + legacy_wallmounted = true, + sounds = default.node_sound_defaults(), +}) + + +-- CRAFTING + + +minetest.register_craft({ + output = 'sealamps:torch 8', + recipe = { + {'bucket:bucket_lava'}, + {'default:coal_lump'}, + {'default:stick'} + }, + replacements = { {'bucket:bucket_lava', 'bucket:bucket_empty'}, }, +}) + +minetest.register_craft({ + output = 'sealamps:lantern 4', + recipe = { + {'default:steel_ingot', 'default:bronze_ingot', 'default:glass'}, + }, +}) \ No newline at end of file diff --git a/mods/sea/sealamps/readme.txt b/mods/sea/sealamps/readme.txt new file mode 100755 index 00000000..df1a6343 --- /dev/null +++ b/mods/sea/sealamps/readme.txt @@ -0,0 +1,27 @@ +Copyright (C) 2010-2012 celeron55, Perttu Ahola + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + + +Sealamps: almost completely based on the torch code from minetest/games/minetest_game/mods/default/nodes.lua + + +Sounds: +sounds = default.node_sound_defaults() + + +.png's: +Sealamps torch .png's are (based (only the colors are slightly adjusted) on) VanessaE's animated torches (WTFPL): +- default_torch_animated.png +- default_torch_on_ceiling_animated.png +- default_torch_on_floor_animated.png +- default_torch_on_floor.png + +Code: +minetest/games/minetest_game/mods/default/nodes.lua --> torch + +Copyright (C) 2011-2012 celeron55, Perttu Ahola +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. \ No newline at end of file diff --git a/mods/sea/sealamps/textures/sealamps_lantern.png b/mods/sea/sealamps/textures/sealamps_lantern.png new file mode 100755 index 00000000..da71ac40 Binary files /dev/null and b/mods/sea/sealamps/textures/sealamps_lantern.png differ diff --git a/mods/sea/sealamps/textures/sealamps_lantern_on_ceiling.png b/mods/sea/sealamps/textures/sealamps_lantern_on_ceiling.png new file mode 100755 index 00000000..5e9c8047 Binary files /dev/null and b/mods/sea/sealamps/textures/sealamps_lantern_on_ceiling.png differ diff --git a/mods/sea/sealamps/textures/sealamps_lantern_on_floor.png b/mods/sea/sealamps/textures/sealamps_lantern_on_floor.png new file mode 100755 index 00000000..66e59e4b Binary files /dev/null and b/mods/sea/sealamps/textures/sealamps_lantern_on_floor.png differ diff --git a/mods/sea/sealamps/textures/sealamps_torch_animated.png b/mods/sea/sealamps/textures/sealamps_torch_animated.png new file mode 100755 index 00000000..e8432f2a Binary files /dev/null and b/mods/sea/sealamps/textures/sealamps_torch_animated.png differ diff --git a/mods/sea/sealamps/textures/sealamps_torch_on_ceiling_animated.png b/mods/sea/sealamps/textures/sealamps_torch_on_ceiling_animated.png new file mode 100755 index 00000000..8f0e2301 Binary files /dev/null and b/mods/sea/sealamps/textures/sealamps_torch_on_ceiling_animated.png differ diff --git a/mods/sea/sealamps/textures/sealamps_torch_on_floor.png b/mods/sea/sealamps/textures/sealamps_torch_on_floor.png new file mode 100755 index 00000000..2ee91fa0 Binary files /dev/null and b/mods/sea/sealamps/textures/sealamps_torch_on_floor.png differ diff --git a/mods/sea/sealamps/textures/sealamps_torch_on_floor_animated.png b/mods/sea/sealamps/textures/sealamps_torch_on_floor_animated.png new file mode 100755 index 00000000..10854444 Binary files /dev/null and b/mods/sea/sealamps/textures/sealamps_torch_on_floor_animated.png differ diff --git a/mods/sea/seaplants/depends.txt b/mods/sea/seaplants/depends.txt new file mode 100755 index 00000000..c8aa9b2c --- /dev/null +++ b/mods/sea/seaplants/depends.txt @@ -0,0 +1,2 @@ +default +noairblocks \ No newline at end of file diff --git a/mods/sea/seaplants/init.lua b/mods/sea/seaplants/init.lua new file mode 100755 index 00000000..b9bc8372 --- /dev/null +++ b/mods/sea/seaplants/init.lua @@ -0,0 +1,539 @@ +-- NODES + +minetest.register_node("seaplants:kelpgreen", { + description = "Green Kelp", + drawtype = "plantlike", + tiles = {"seaplants_kelpgreen.png"}, + inventory_image = "seaplants_kelpgreen.png", + wield_image = "seaplants_kelpgreen.png", + paramtype = "light", + walkable = false, + climbable = true, + drowning = 1, + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.3, 0.3} + }, + post_effect_color = {a=64, r=100, g=100, b=200}, + groups = {snappy=3, seaplants=1, sea=1}, + sounds = default.node_sound_leaves_defaults(), + on_use = minetest.item_eat(1) +}) + +minetest.register_node("seaplants:kelpgreenmiddle", { + description = "Green Kelp middle", + drawtype = "plantlike", + tiles = {"seaplants_kelpgreenmiddle.png"}, + inventory_image = "seaplants_kelpgreenmiddle.png", + wield_image = "seaplants_kelpgreenmiddle.png", + paramtype = "light", + walkable = false, + climbable = true, + drowning = 1, + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, + post_effect_color = {a=64, r=100, g=100, b=200}, + groups = {snappy=3, seaplants=1, sea=1}, + drop = "seaplants:kelpgreen", + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("seaplants:kelpbrown", { + description = "Brown Kelp ", + drawtype = "plantlike", + tiles = {"seaplants_kelpbrown.png"}, + inventory_image = "seaplants_kelpbrown.png", + wield_image = "seaplants_kelpbrown.png", + paramtype = "light", + walkable = false, + climbable = true, + drowning = 1, + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.3, 0.3} + }, + post_effect_color = {a=64, r=100, g=100, b=200}, + groups = {snappy=3, seaplants=1, sea=1}, + sounds = default.node_sound_leaves_defaults(), + on_use = minetest.item_eat(1) +}) + +minetest.register_node("seaplants:kelpbrownmiddle", { + description = "Brown Kelp middle", + drawtype = "plantlike", + tiles = {"seaplants_kelpbrownmiddle.png"}, + inventory_image = "seaplants_kelpbrownmiddle.png", + wield_image = "seaplants_kelpbrownmiddle.png", + paramtype = "light", + walkable = false, + climbable = true, + drowning = 1, + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, + post_effect_color = {a=64, r=100, g=100, b=200}, + groups = {snappy=3, seaplants=1, sea=1}, + drop = "seaplants:kelpbrown", + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("seaplants:seagrassgreen", { + description = "Green Seagrass", + drawtype = "plantlike", + tiles = {"seaplants_seagrassgreen.png"}, + inventory_image = "seaplants_seagrassgreen.png", + wield_image = "seaplants_seagrassgreen.png", + paramtype = "light", + walkable = false, + climbable = true, + drowning = 1, + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.3, 0.3} + }, + post_effect_color = {a=64, r=100, g=100, b=200}, + groups = {snappy=3, seaplants=1, sea=1}, + sounds = default.node_sound_leaves_defaults(), + on_use = minetest.item_eat(1) +}) + +minetest.register_node("seaplants:seagrassred", { + description = "Red Seagrass", + drawtype = "plantlike", + tiles = {"seaplants_seagrassred.png"}, + inventory_image = "seaplants_seagrassred.png", + wield_image = "seaplants_seagrassred.png", + paramtype = "light", + walkable = false, + climbable = true, + drowning = 1, + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.3, 0.3} + }, + post_effect_color = {a=64, r=100, g=100, b=200}, + groups = {snappy=3, seaplants=1, sea=1}, + sounds = default.node_sound_leaves_defaults(), + on_use = minetest.item_eat(1) +}) + +minetest.register_node("seaplants:seaplantssandkelpgreen", { + description = "Sea plants sand kelp green", + tiles = {"default_sand.png"}, + is_ground_content = true, + groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, + drop = 'default:sand', + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("seaplants:seaplantsdirtkelpgreen", { + description = "Sea plants dirt kelp green", + tiles = {"default_dirt.png"}, + is_ground_content = true, + groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("seaplants:seaplantssandkelpbrown", { + description = "Sea plants sand kelp brown", + tiles = {"default_sand.png"}, + is_ground_content = true, + groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, + drop = 'default:sand', + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("seaplants:seaplantsdirtkelpbrown", { + description = "Sea plants dirt kelp brown", + tiles = {"default_dirt.png"}, + is_ground_content = true, + groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("seaplants:seaplantssandseagrassgreen", { + description = "Sea plants sand seagrass green", + tiles = {"default_sand.png"}, + is_ground_content = true, + groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, + drop = 'default:sand', + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("seaplants:seaplantsdirtseagrassgreen", { + description = "Sea plants dirt seagrass green", + tiles = {"default_dirt.png"}, + is_ground_content = true, + groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("seaplants:seaplantssandseagrassred", { + description = "Sea plants sand seagrass red", + tiles = {"default_sand.png"}, + is_ground_content = true, + groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, + drop = 'default:sand', + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("seaplants:seaplantsdirtseagrassred", { + description = "Sea plants dirt seagrass red", + tiles = {"default_dirt.png"}, + is_ground_content = true, + groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults(), +}) + + +-- CRAFT ITEMS + + +minetest.register_craftitem("seaplants:seasaladmix", { + description = "Sea salad mix", + inventory_image = "seaplants_seasaladmix.png", + on_use = minetest.item_eat(6) +}) + + +-- CRAFTING + +minetest.register_craft({ + type = "shapeless", + output = "seaplants:seasaladmix", + recipe = {"seaplants:kelpgreen", "seaplants:kelpbrown", "seaplants:seagrassgreen", "seaplants:seagrassred"} +}) + + +-- SEAPLANTS SAND AND DIRT GENERATION + + +minetest.register_ore({ + ore_type = "scatter", + ore = "seaplants:seaplantssandkelpgreen", + wherein = "default:sand", + clust_scarcity = 10*10*10, + clust_num_ores = 24, + clust_size = 4, + height_max = -14, + height_min = -31000, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "seaplants:seaplantsdirtkelpgreen", + wherein = "default:dirt", + clust_scarcity = 10*10*10, + clust_num_ores = 24, + clust_size = 4, + height_max = -14, + height_min = -31000, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "seaplants:seaplantssandkelpbrown", + wherein = "default:sand", + clust_scarcity = 10*10*10, + clust_num_ores = 24, + clust_size = 4, + height_max = -14, + height_min = -31000, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "seaplants:seaplantsdirtkelpbrown", + wherein = "default:dirt", + clust_scarcity = 10*10*10, + clust_num_ores = 24, + clust_size = 4, + height_max = -14, + height_min = -31000, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "seaplants:seaplantssandseagrassgreen", + wherein = "default:sand", + clust_scarcity = 10*10*10, + clust_num_ores = 24, + clust_size = 4, + height_max = -14, + height_min = -31000, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "seaplants:seaplantsdirtseagrassgreen", + wherein = "default:dirt", + clust_scarcity = 10*10*10, + clust_num_ores = 24, + clust_size = 4, + height_max = -14, + height_min = -31000, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "seaplants:seaplantssandseagrassred", + wherein = "default:sand", + clust_scarcity = 10*10*10, + clust_num_ores = 24, + clust_size = 4, + height_max = -14, + height_min = -31000, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "seaplants:seaplantsdirtseagrassred", + wherein = "default:dirt", + clust_scarcity = 10*10*10, + clust_num_ores = 24, + clust_size = 4, + height_max = -14, + height_min = -31000, +}) + +local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, chunk_size, ore_per_chunk, height_min, height_max) + 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) + 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 +end + + +-- ABM'S + + +minetest.register_abm({ +nodenames = {"seaplants:seaplantsdirtkelpgreen"}, +interval = 12, +chance = 12, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "seaplants:kelpgreen"}) else + return + end +end +}) + +minetest.register_abm({ +nodenames = {"seaplants:seaplantssandkelpgreen"}, +interval = 12, +chance = 12, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "seaplants:kelpgreen"}) else + return + end +end +}) + +minetest.register_abm({ +nodenames = {"seaplants:kelpgreen"}, +interval = 6, +chance = 3, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + local yyp = {x = pos.x, y = pos.y + 2, z = pos.z} + local yyyp = {x = pos.x, y = pos.y + 3, z = pos.z} + if minetest.get_node(pos).name == "seaplants:kelpgreen" and + (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + if (minetest.get_node(yyp).name == "default:water_source" or + minetest.get_node(yyp).name == "noairblocks:water_sourcex") then + if (minetest.get_node(yyyp).name == "default:water_source" or + minetest.get_node(yyyp).name == "noairblocks:water_sourcex") then + minetest.add_node(pos, {name = "seaplants:kelpgreenmiddle"}) + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "seaplants:kelpgreen"}) + else + return + end + end + end +end +}) + +minetest.register_abm({ +nodenames = {"seaplants:seaplantsdirtkelpbrown"}, +interval = 12, +chance = 12, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "seaplants:kelpbrown"}) else + return + end +end +}) + +minetest.register_abm({ +nodenames = {"seaplants:seaplantssandkelpbrown"}, +interval = 12, +chance = 12, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "seaplants:kelpbrown"}) else + return + end +end +}) + +minetest.register_abm({ +nodenames = {"seaplants:kelpbrown"}, +interval = 6, +chance = 3, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + local yyp = {x = pos.x, y = pos.y + 2, z = pos.z} + local yyyp = {x = pos.x, y = pos.y + 3, z = pos.z} + if minetest.get_node(pos).name == "seaplants:kelpbrown" and + (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + if (minetest.get_node(yyp).name == "default:water_source" or + minetest.get_node(yyp).name == "noairblocks:water_sourcex") then + if (minetest.get_node(yyyp).name == "default:water_source" or + minetest.get_node(yyyp).name == "noairblocks:water_sourcex") then + minetest.add_node(pos, {name = "seaplants:kelpbrownmiddle"}) + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "seaplants:kelpbrown"}) + else + return + end + end + end +end +}) + +minetest.register_abm({ +nodenames = {"seaplants:seaplantsdirtseagrassgreen"}, +interval = 12, +chance = 12, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "seaplants:seagrassgreen"}) else + return + end +end +}) + +minetest.register_abm({ +nodenames = {"seaplants:seaplantssandseagrassgreen"}, +interval = 12, +chance = 12, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "seaplants:seagrassgreen"}) else + return + end +end +}) + +minetest.register_abm({ +nodenames = {"seaplants:seaplantsdirtseagrassred"}, +interval = 12, +chance = 12, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "seaplants:seagrassred"}) else + return + end +end +}) + +minetest.register_abm({ +nodenames = {"seaplants:seaplantssandseagrassred"}, +interval = 12, +chance = 12, +action = function(pos, node, active_object_count, active_object_count_wider) + local yp = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "seaplants:seagrassred"}) else + return + end +end +}) + + +-- ALIASES + + +minetest.register_alias("seaplants:stemsgreen","default:sand") +minetest.register_alias("seaplants:stemsbrown","default:dirt") +minetest.register_alias("seaplants:leafyblue","default:sand") +minetest.register_alias("seaplants:leafygreen","default:dirt") + +minetest.register_alias("seaplants:chewstickgreen","seaplants:kelpgreen") +minetest.register_alias("seaplants:chewstickbrown","seaplants:kelpbrown") +minetest.register_alias("seaplants:leavysnackgreen","seaplants:seagrassgreen") +minetest.register_alias("seaplants:leavysnackblue","seaplants:seagrassred") +minetest.register_alias("seaplants:seasalad","seaplants:seasaladmix") \ No newline at end of file diff --git a/mods/sea/seaplants/readme.txt b/mods/sea/seaplants/readme.txt new file mode 100755 index 00000000..26b74e59 --- /dev/null +++ b/mods/sea/seaplants/readme.txt @@ -0,0 +1,24 @@ +Sounds: +sounds = default.node_sound_leaves_defaults(), + +Copyright (C) 2010-2012 celeron55, Perttu Ahola + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + + +.png's: +default_sand.png +VanessaE (WTFPL) + +default_dirt.png +Cisoun's WTFPL texture pack + + +Code: +minetest/games/minetest_game/mods/default/mapgen.lua --> ore generation + +Copyright (C) 2011-2012 celeron55, Perttu Ahola +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. \ No newline at end of file diff --git a/mods/sea/seaplants/textures/seaplants_kelpbrown.png b/mods/sea/seaplants/textures/seaplants_kelpbrown.png new file mode 100755 index 00000000..6425f0f3 Binary files /dev/null and b/mods/sea/seaplants/textures/seaplants_kelpbrown.png differ diff --git a/mods/sea/seaplants/textures/seaplants_kelpbrownmiddle.png b/mods/sea/seaplants/textures/seaplants_kelpbrownmiddle.png new file mode 100755 index 00000000..c8cbe0a9 Binary files /dev/null and b/mods/sea/seaplants/textures/seaplants_kelpbrownmiddle.png differ diff --git a/mods/sea/seaplants/textures/seaplants_kelpgreen.png b/mods/sea/seaplants/textures/seaplants_kelpgreen.png new file mode 100755 index 00000000..58b66874 Binary files /dev/null and b/mods/sea/seaplants/textures/seaplants_kelpgreen.png differ diff --git a/mods/sea/seaplants/textures/seaplants_kelpgreenmiddle.png b/mods/sea/seaplants/textures/seaplants_kelpgreenmiddle.png new file mode 100755 index 00000000..795c8f30 Binary files /dev/null and b/mods/sea/seaplants/textures/seaplants_kelpgreenmiddle.png differ diff --git a/mods/sea/seaplants/textures/seaplants_seagrassgreen.png b/mods/sea/seaplants/textures/seaplants_seagrassgreen.png new file mode 100755 index 00000000..87c8f0d6 Binary files /dev/null and b/mods/sea/seaplants/textures/seaplants_seagrassgreen.png differ diff --git a/mods/sea/seaplants/textures/seaplants_seagrassred.png b/mods/sea/seaplants/textures/seaplants_seagrassred.png new file mode 100755 index 00000000..1facb278 Binary files /dev/null and b/mods/sea/seaplants/textures/seaplants_seagrassred.png differ diff --git a/mods/sea/seaplants/textures/seaplants_seasaladmix.png b/mods/sea/seaplants/textures/seaplants_seasaladmix.png new file mode 100755 index 00000000..354da06d Binary files /dev/null and b/mods/sea/seaplants/textures/seaplants_seasaladmix.png differ diff --git a/mods/sea/seastone/depends.txt b/mods/sea/seastone/depends.txt new file mode 100755 index 00000000..257d73b9 --- /dev/null +++ b/mods/sea/seastone/depends.txt @@ -0,0 +1,6 @@ +default +dye +stairs +clams +whiteshell? +colormachine? \ No newline at end of file diff --git a/mods/sea/seastone/init.lua b/mods/sea/seastone/init.lua new file mode 100755 index 00000000..bfbf9c09 --- /dev/null +++ b/mods/sea/seastone/init.lua @@ -0,0 +1,165 @@ +-- NODES + + +minetest.register_node("seastone:seastone", { + description = "Seastone", + tiles = {"seastone_seastone.png"}, + is_ground_content = true, + groups = {cracky=3, stone=1}, + drop = 'seacobble:seacobble', + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("seastone:seastone_cyan", { + description = "Seastone cyan", + tiles = {"seastone_seastone_cyan.png"}, + is_ground_content = true, + groups = {cracky=3, stone=1;}, + drop = 'seacobble:seacobble_cyan', + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("seastone:seastone_magenta", { + description = "Seastone magenta", + tiles = {"seastone_seastone_magenta.png"}, + is_ground_content = true, + groups = {cracky=3, stone=1}, + drop = 'seacobble:seacobble_magenta', + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("seastone:seastone_lime", { + description = "Seastone lime", + tiles = {"seastone_seastone_lime.png"}, + is_ground_content = true, + groups = {cracky=3, stone=1}, + drop = 'seacobble:seacobble_lime', + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("seastone:seastone_aqua", { + description = "Seastone aqua", + tiles = {"seastone_seastone_aqua.png"}, + is_ground_content = true, + groups = {cracky=3, stone=1}, + drop = 'seacobble:seacobble_aqua', + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("seastone:seastone_skyblue", { + description = "Seastone skyblue", + tiles = {"seastone_seastone_skyblue.png"}, + is_ground_content = true, + groups = {cracky=3, stone=1}, + drop = 'seacobble:seacobble_skyblue', + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("seastone:seastone_redviolet", { + description = "Seastone redviolet", + tiles = {"seastone_seastone_redviolet.png"}, + is_ground_content = true, + groups = {cracky=3, stone=1}, + drop = 'seacobble:seacobble_redviolet', + sounds = default.node_sound_stone_defaults(), +}) + + +-- STAIRS + + +stairs.register_stair_and_slab("seastone", "seastone:seastone", + {cracky=3, stone=1}, + {"seastone_seastone.png"}, + "Seastone stair", + "Seastone slab", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("seastone_cyan", "seastone:seastone_cyan", + {cracky=3, stone=1}, + {"seastone_seastone_cyan.png"}, + "Seastone stair cyan", + "Seastone slab cyan", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("seastone_magenta", "seastone:seastone_magenta", + {cracky=3, stone=1}, + {"seastone_seastone_magenta.png"}, + "Seastone stair magenta", + "Seastone slab magenta", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("seastone_lime", "seastone:seastone_lime", + {cracky=3, stone=1}, + {"seastone_seastone_lime.png"}, + "Seastone stair lime", + "Seastone slab lime", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("seastone_aqua", "seastone:seastone_aqua", + {cracky=3, stone=1}, + {"seastone_seastone_aqua.png"}, + "Seastone stair aqua", + "Seastone slab aqua", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("seastone_skyblue", "seastone:seastone_skyblue", + {cracky=3, stone=1}, + {"seastone_seastone_skyblue.png"}, + "Seastone stair skyblue ", + "Seastone slab skyblue", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("seastone_redviolet", "seastone:seastone_redviolet", + {cracky=3, stone=1}, + {"seastone_seastone_redviolet.png"}, + "Seastone stair redviolet", + "Seastone slab redviolet", + default.node_sound_stone_defaults()) + + +-- CRAFTING + + +local register_seastone_craft = function(output,recipe) + minetest.register_craft({ + type = 'shapeless', + output = output, + recipe = recipe, + }) +end + +register_seastone_craft("seastone:seastone", {'clams:crushedwhite', 'default:stone'}) + +register_seastone_craft("seastone:seastone_cyan", {'seastone:seastone', 'dye:cyan'}) +register_seastone_craft("seastone:seastone_magenta", {'seastone:seastone', 'dye:magenta'}) +register_seastone_craft("seastone:seastone_lime", {'seastone:seastone', 'dye:lime'}) +register_seastone_craft("seastone:seastone_aqua", {'seastone:seastone', 'dye:aqua'}) +register_seastone_craft("seastone:seastone_skyblue", {'seastone:seastone', 'dye:skyblue'}) +register_seastone_craft("seastone:seastone_redviolet", {'seastone:seastone', 'dye:redviolet'}) + +register_seastone_craft("seastone:seastone_cyan", {'clams:crushedwhite', 'default:stone','dye:cyan'}) +register_seastone_craft("seastone:seastone_magenta", {'clams:crushedwhite', 'default:stone','dye:magenta'}) +register_seastone_craft("seastone:seastone_lime", {'clams:crushedwhite', 'default:stone','dye:lime'}) +register_seastone_craft("seastone:seastone_aqua", {'clams:crushedwhite', 'default:stone','dye:aqua'}) +register_seastone_craft("seastone:seastone_skyblue", {'clams:crushedwhite', 'default:stone','dye:skyblue'}) +register_seastone_craft("seastone:seastone_redviolet", {'clams:crushedwhite', 'default:stone','dye:redviolet'}) + +-- COOKING + + +local register_smoothblock_cooking = function(output,recipe) + minetest.register_craft({ + type = "cooking", + output = output, + recipe = recipe, + }) +end + +register_smoothblock_cooking("seastone:seastone", "seacobble:seacobble") +register_smoothblock_cooking("seastone:seastone_cyan", "seacobble:seacobble_cyan") +register_smoothblock_cooking("seastone:seastone_magenta", "seacobble:seacobble_magenta") +register_smoothblock_cooking("seastone:seastone_lime", "seacobble:seacobble_lime") +register_smoothblock_cooking("seastone:seastone_aqua", "seacobble:seacobble_aqua") +register_smoothblock_cooking("seastone:seastone_skyblue", "seacobble:seacobble_skyblue") +register_smoothblock_cooking("seastone:seastone_redviolet", "seacobble:seacobble_redviolet") \ No newline at end of file diff --git a/mods/sea/seastone/readme.txt b/mods/sea/seastone/readme.txt new file mode 100755 index 00000000..8398ec8e --- /dev/null +++ b/mods/sea/seastone/readme.txt @@ -0,0 +1,16 @@ +Sounds: +sounds = default.node_sound_stone_defaults() + +Copyright (C) 2010-2012 celeron55, Perttu Ahola + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + + +Code: +minetest/games/minetest_game/mods/default/nodes.lua --> stone + +Copyright (C) 2011-2012 celeron55, Perttu Ahola +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. \ No newline at end of file diff --git a/mods/sea/seastone/textures/seastone_seastone.png b/mods/sea/seastone/textures/seastone_seastone.png new file mode 100755 index 00000000..de58a5c4 Binary files /dev/null and b/mods/sea/seastone/textures/seastone_seastone.png differ diff --git a/mods/sea/seastone/textures/seastone_seastone_aqua.png b/mods/sea/seastone/textures/seastone_seastone_aqua.png new file mode 100755 index 00000000..6bf59926 Binary files /dev/null and b/mods/sea/seastone/textures/seastone_seastone_aqua.png differ diff --git a/mods/sea/seastone/textures/seastone_seastone_cyan.png b/mods/sea/seastone/textures/seastone_seastone_cyan.png new file mode 100755 index 00000000..b5e25842 Binary files /dev/null and b/mods/sea/seastone/textures/seastone_seastone_cyan.png differ diff --git a/mods/sea/seastone/textures/seastone_seastone_lime.png b/mods/sea/seastone/textures/seastone_seastone_lime.png new file mode 100755 index 00000000..ea39c29b Binary files /dev/null and b/mods/sea/seastone/textures/seastone_seastone_lime.png differ diff --git a/mods/sea/seastone/textures/seastone_seastone_magenta.png b/mods/sea/seastone/textures/seastone_seastone_magenta.png new file mode 100755 index 00000000..ecdde021 Binary files /dev/null and b/mods/sea/seastone/textures/seastone_seastone_magenta.png differ diff --git a/mods/sea/seastone/textures/seastone_seastone_redviolet.png b/mods/sea/seastone/textures/seastone_seastone_redviolet.png new file mode 100755 index 00000000..5cdc8389 Binary files /dev/null and b/mods/sea/seastone/textures/seastone_seastone_redviolet.png differ diff --git a/mods/sea/seastone/textures/seastone_seastone_skyblue.png b/mods/sea/seastone/textures/seastone_seastone_skyblue.png new file mode 100755 index 00000000..e19ea2a5 Binary files /dev/null and b/mods/sea/seastone/textures/seastone_seastone_skyblue.png differ diff --git a/mods/sea/seastonebrick/depends.txt b/mods/sea/seastonebrick/depends.txt new file mode 100755 index 00000000..8a60af65 --- /dev/null +++ b/mods/sea/seastonebrick/depends.txt @@ -0,0 +1,4 @@ +default +stairs +seastone +colormachine? \ No newline at end of file diff --git a/mods/sea/seastonebrick/init.lua b/mods/sea/seastonebrick/init.lua new file mode 100755 index 00000000..e0264137 --- /dev/null +++ b/mods/sea/seastonebrick/init.lua @@ -0,0 +1,131 @@ +-- NODES + + +minetest.register_node("seastonebrick:seastonebrick", { + description = "Seastone brick", + tiles = {"seastonebrick_seastonebrick.png"}, + is_ground_content = true, + groups = {cracky=2, stone=1}, + sounds = default.node_sound_stone_defaults(), +}) + + +minetest.register_node("seastonebrick:seastonebrick_cyan", { + description = "Seastone brick cyan", + tiles = {"seastonebrick_seastonebrick_cyan.png"}, + is_ground_content = true, + groups = {cracky=2, stone=1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("seastonebrick:seastonebrick_magenta", { + description = "Seastone brick magenta", + tiles = {"seastonebrick_seastonebrick_magenta.png"}, + is_ground_content = true, + groups = {cracky=2, stone=1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("seastonebrick:seastonebrick_lime", { + description = "Seastone brick lime", + tiles = {"seastonebrick_seastonebrick_lime.png"}, + is_ground_content = true, + groups = {cracky=2, stone=1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("seastonebrick:seastonebrick_aqua", { + description = "Seastone brick aqua", + tiles = {"seastonebrick_seastonebrick_aqua.png"}, + is_ground_content = true, + groups = {cracky=2, stone=1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("seastonebrick:seastonebrick_skyblue", { + description = "Seastone brick skyblue", + tiles = {"seastonebrick_seastonebrick_skyblue.png"}, + is_ground_content = true, + groups = {cracky=2, stone=1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("seastonebrick:seastonebrick_redviolet", { + description = "Seastone brick redviolet", + tiles = {"seastonebrick_seastonebrick_redviolet.png"}, + is_ground_content = true, + groups = {cracky=2, stone=1}, + sounds = default.node_sound_stone_defaults(), +}) + + +-- STAIRS + + +stairs.register_stair_and_slab("seastonebrick", "seastonebrick:seastonebrick", + {cracky=3, stone=1}, + {"seastonebrick_seastonebrick.png"}, + "Seastonebrick stair", + "Seastonebrick slab", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("seastonebrick_cyan", "seastonebrick:seastonebrick_cyan", + {cracky=3, stone=1}, + {"seastonebrick_seastonebrick_cyan.png"}, + "Seastonebrick stair cyan", + "Seastonebrick slab cyan", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("seastonebrick_magenta", "seastonebrick:seastonebrick_magenta", + {cracky=3, stone=1}, + {"seastonebrick_seastonebrick_magenta.png"}, + "Seastonebrick stair magenta", + "Seastonebrick slab magenta", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("seastonebrick_lime", "seastonebrick:seastonebrick_lime", + {cracky=3, stone=1}, + {"seastonebrick_seastonebrick_lime.png"}, + "Seastonebrick stair lime", + "Seastonebrick slab lime", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("seastonebrick_aqua", "seastonebrick:seastonebrick_aqua", + {cracky=3, stone=1}, + {"seastonebrick_seastonebrick_aqua.png"}, + "Seastonebrick stair aqua", + "Seastonebrick slab aqua", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("seastonebrick_skyblue", "seastonebrick:seastonebrick_skyblue", + {cracky=3, stone=1}, + {"seastonebrick_seastonebrick_skyblue.png"}, + "Seastonebrick stair skyblue ", + "Seastonebrick slab skyblue", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("seastonebrick_redviolet", "seastonebrick:seastonebrick_redviolet", + {cracky=3, stone=1}, + {"seastonebrick_seastonebrick_redviolet.png"}, + "Seastonebrick stair redviolet", + "Seastonebrick slab redviolet", + default.node_sound_stone_defaults()) + + +-- CRAFTING + + +local register_blockbrick_craft = function(output,recipe) + minetest.register_craft({ + output = output, + recipe = recipe, + }) +end + +register_blockbrick_craft("seastonebrick:seastonebrick", {{'seastone:seastone', 'seastone:seastone'}, {'seastone:seastone', 'seastone:seastone'}}) +register_blockbrick_craft("seastonebrick:seastonebrick_cyan", {{'seastone:seastone_cyan', 'seastone:seastone_cyan'}, {'seastone:seastone_cyan', 'seastone:seastone_cyan'}}) +register_blockbrick_craft("seastonebrick:seastonebrick_magenta", {{'seastone:seastone_magenta', 'seastone:seastone_magenta'}, {'seastone:seastone_magenta', 'seastone:seastone_magenta'}}) +register_blockbrick_craft("seastonebrick:seastonebrick_lime", {{'seastone:seastone_lime', 'seastone:seastone_lime'}, {'seastone:seastone_lime', 'seastone:seastone_lime'}}) +register_blockbrick_craft("seastonebrick:seastonebrick_aqua", {{'seastone:seastone_aqua', 'seastone:seastone_aqua'}, {'seastone:seastone_aqua', 'seastone:seastone_aqua'}}) +register_blockbrick_craft("seastonebrick:seastonebrick_skyblue", {{'seastone:seastone_skyblue', 'seastone:seastone_skyblue'}, {'seastone:seastone_skyblue', 'seastone:seastone_skyblue'}}) +register_blockbrick_craft("seastonebrick:seastonebrick_redviolet", {{'seastone:seastone_redviolet', 'seastone:seastone_redviolet'}, {'seastone:seastone_redviolet', 'seastone:seastone_redviolet'}}) \ No newline at end of file diff --git a/mods/sea/seastonebrick/readme.txt b/mods/sea/seastonebrick/readme.txt new file mode 100755 index 00000000..7d4ba776 --- /dev/null +++ b/mods/sea/seastonebrick/readme.txt @@ -0,0 +1,22 @@ +Sounds: +sounds = default.node_sound_stone_defaults() + +Copyright (C) 2010-2012 celeron55, Perttu Ahola + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + + +Seastonebrick texture is partly based on: +.png's: +default_sandstonebrick.png +VanessaE (WTFPL) + + +Code: +minetest/games/minetest_game/mods/default/nodes.lua --> stonebrick + +Copyright (C) 2011-2012 celeron55, Perttu Ahola +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. \ No newline at end of file diff --git a/mods/sea/seastonebrick/textures/seastonebrick_seastonebrick.png b/mods/sea/seastonebrick/textures/seastonebrick_seastonebrick.png new file mode 100755 index 00000000..6481ef5a Binary files /dev/null and b/mods/sea/seastonebrick/textures/seastonebrick_seastonebrick.png differ diff --git a/mods/sea/seastonebrick/textures/seastonebrick_seastonebrick_aqua.png b/mods/sea/seastonebrick/textures/seastonebrick_seastonebrick_aqua.png new file mode 100755 index 00000000..ef4d011b Binary files /dev/null and b/mods/sea/seastonebrick/textures/seastonebrick_seastonebrick_aqua.png differ diff --git a/mods/sea/seastonebrick/textures/seastonebrick_seastonebrick_cyan.png b/mods/sea/seastonebrick/textures/seastonebrick_seastonebrick_cyan.png new file mode 100755 index 00000000..eb96eb38 Binary files /dev/null and b/mods/sea/seastonebrick/textures/seastonebrick_seastonebrick_cyan.png differ diff --git a/mods/sea/seastonebrick/textures/seastonebrick_seastonebrick_lime.png b/mods/sea/seastonebrick/textures/seastonebrick_seastonebrick_lime.png new file mode 100755 index 00000000..f4bcbe7d Binary files /dev/null and b/mods/sea/seastonebrick/textures/seastonebrick_seastonebrick_lime.png differ diff --git a/mods/sea/seastonebrick/textures/seastonebrick_seastonebrick_magenta.png b/mods/sea/seastonebrick/textures/seastonebrick_seastonebrick_magenta.png new file mode 100755 index 00000000..85661012 Binary files /dev/null and b/mods/sea/seastonebrick/textures/seastonebrick_seastonebrick_magenta.png differ diff --git a/mods/sea/seastonebrick/textures/seastonebrick_seastonebrick_redviolet.png b/mods/sea/seastonebrick/textures/seastonebrick_seastonebrick_redviolet.png new file mode 100755 index 00000000..80d45a09 Binary files /dev/null and b/mods/sea/seastonebrick/textures/seastonebrick_seastonebrick_redviolet.png differ diff --git a/mods/sea/seastonebrick/textures/seastonebrick_seastonebrick_skyblue.png b/mods/sea/seastonebrick/textures/seastonebrick_seastonebrick_skyblue.png new file mode 100755 index 00000000..653592ba Binary files /dev/null and b/mods/sea/seastonebrick/textures/seastonebrick_seastonebrick_skyblue.png differ diff --git a/mods/sea/seawrecks/depends.txt b/mods/sea/seawrecks/depends.txt new file mode 100755 index 00000000..331d858c --- /dev/null +++ b/mods/sea/seawrecks/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/mods/sea/seawrecks/init.lua b/mods/sea/seawrecks/init.lua new file mode 100755 index 00000000..65c888e2 --- /dev/null +++ b/mods/sea/seawrecks/init.lua @@ -0,0 +1,926 @@ +-- NODES + + +minetest.register_node("seawrecks:woodship", { + description = "Sand for the wooden ship", + tiles = {"default_sand.png"}, + is_ground_content = true, + groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("seawrecks:uboot", { + description = "Dirt for the U-boot", + tiles = {"default_dirt.png"}, + is_ground_content = true, + groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("seawrecks:woodshipchest", { + description = "Wooden ship 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, not_in_creative_inventory=1}, + drop = 'default:chest', + legacy_facedir_simple = true, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[8,9]".. + "list[current_name;main;0,0;8,4;]".. + "list[current_player;main;0,5;8,4;]") + meta:set_string("infotext", "Woodship chest") + local inv = meta:get_inventory() + inv:set_size("main", 8*4) +meta:from_table({ + inventory = { + main = {[1] = "default:tree 99", [2] = "default:jungletree 99", [3] = "default:wood 99", [4] = "default:junglewood 99", [5] = "default:sapling 99", [6] = "default:junglesapling 99", [7] = "default:grass_1 99", [8] = "default:junglegrass 99", [32] = ""} + }, + fields = { + formspec = "size[8,9;]list[context;main;0,0;8,4;]list[current_player;main;0,5;8,4;]", + infotext = "Normal chest" + } +}) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name().. + " moves stuff in chest at "..minetest.pos_to_string(pos)) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " moves stuff to chest at "..minetest.pos_to_string(pos)) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " takes stuff from chest at "..minetest.pos_to_string(pos)) + end, +}) + +minetest.register_node("seawrecks:ubootchest", { + description = "U-boot 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, not_in_creative_inventory=1}, + drop = 'default:chest', + legacy_facedir_simple = true, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[8,9]".. + "list[current_name;main;0,0;8,4;]".. + "list[current_player;main;0,5;8,4;]") + meta:set_string("infotext", "U-boot chest") + local inv = meta:get_inventory() + inv:set_size("main", 8*4) +meta:from_table({ + inventory = { + main = {[1] = "default:gold_ingot 99", [2] = "default:mese_crystal 99", [3] = "default:diamond 99", [32] = ""} + }, + fields = { + formspec = "size[8,9;]list[context;main;0,0;8,4;]list[current_player;main;0,5;8,4;]", + infotext = "Normal chest" + } +}) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name().. + " moves stuff in chest at "..minetest.pos_to_string(pos)) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " moves stuff to chest at "..minetest.pos_to_string(pos)) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " takes stuff from chest at "..minetest.pos_to_string(pos)) + end, +}) + + +-- WRECK GENERATION + + +minetest.register_ore({ + ore_type = "scatter", + ore = "seawrecks:woodship", + wherein = "default:sand", + clust_scarcity = 30*30*30, + clust_num_ores = 1, + clust_size = 12, + height_max = -4, + height_min = -31000, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "seawrecks:uboot", + wherein = "default:dirt", + clust_scarcity = 30*30*30, + clust_num_ores = 1, + clust_size = 12, + height_max = -8, + height_min = -31000, +}) + +local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, chunk_size, ore_per_chunk, height_min, height_max) + 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) + 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 +end + + +-- ABM'S + + +minetest.register_abm({ +nodenames = {"seawrecks:woodship"}, +interval = 1, +chance = 1, +action = function(pos, node, active_object_count, active_object_count_wider) +local yp = {x = pos.x, y = pos.y + 3, z = pos.z} + if minetest.get_node(pos).name == "seawrecks:woodship" and + (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + minetest.add_node(pos, {name = "default:sand"}) + + pos.y = pos.y + 1 + pos.x = pos.x - 6 + + for a = 1, 11 do + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:tree"}) + end + + pos.z = pos.z + 1 + pos.x = pos.x - 10 + + for a = 1, 9 do + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:tree"}) + end + + pos.z = pos.z - 2 + pos.x = pos.x - 9 + + for a = 1, 9 do + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:tree"}) + end + + + pos.y = pos.y + 1 + pos.x = pos.x - 8 + pos.z = pos.z - 1 + + for a = 1, 7 do + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:tree"}) + end + + pos.z = pos.z + 4 + pos.x = pos.x - 7 + + for a = 1, 7 do + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:tree"}) + end + + pos.z = pos.z - 1 + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:wood"}) + + pos.z = pos.z - 1 + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:wood"}) + + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:tree"}) + + pos.z = pos.z - 1 + pos.x = pos.x - 2 + minetest.add_node(pos, {name = "default:tree"}) + + pos.z = pos.z + 2 + pos.x = pos.x - 8 + minetest.add_node(pos, {name = "default:tree"}) + + pos.z = pos.z - 1 + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:tree"}) + + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:tree"}) + + pos.z = pos.z - 1 + pos.x = pos.x + 2 + minetest.add_node(pos, {name = "default:tree"}) + + + pos.y = pos.y + 1 + pos.z = pos.z - 1 + + for a = 1, 7 do + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:wood"}) + end + + pos.z = pos.z + 4 + pos.x = pos.x - 7 + + for a = 1, 7 do + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:wood"}) + end + + pos.z = pos.z - 1 + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:wood"}) + + pos.z = pos.z - 1 + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:wood"}) + + pos.z = pos.z - 1 + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:wood"}) + + pos.z = pos.z + 2 + pos.x = pos.x - 8 + minetest.add_node(pos, {name = "default:wood"}) + + pos.z = pos.z - 1 + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:wood"}) + + for a = 1, 3 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:wood"}) + end + + pos.z = pos.z - 1 + pos.x = pos.x + 4 + minetest.add_node(pos, {name = "default:wood"}) + + pos.z = pos.z + 1 + pos.x = pos.x + 3 + minetest.add_node(pos, {name = "default:wood"}) + + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "default:wood"}) + + pos.y = pos.y - 2 + minetest.add_node(pos, {name = "default:wood"}) + + pos.y = pos.y + 3 + pos.z = pos.z - 4 + + for a = 1, 7 do + pos.z = pos.z + 1 + minetest.add_node(pos, {name = "default:wood"}) + end + + pos.z = pos.z - 3 + + for a = 1, 2 do + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "default:wood"}) + end + + pos.y = pos.y + 1 + pos.z = pos.z - 3 + + for a = 1, 5 do + pos.z = pos.z + 1 + minetest.add_node(pos, {name = "default:wood"}) + end + + pos.y = pos.y + 1 + pos.z = pos.z - 2 + minetest.add_node(pos, {name = "default:wood"}) + + pos.y = pos.y - 7 + pos.z = pos.z + 1 + pos.x = pos.x - 2 + minetest.add_node(pos, {name = "seawrecks:woodshipchest"}) + + else + return + end +end +}) + +minetest.register_abm({ +nodenames = {"seawrecks:uboot"}, +interval = 1, +chance = 1, +action = function(pos, node, active_object_count, active_object_count_wider) +local yp = {x = pos.x, y = pos.y + 8, z = pos.z} + if minetest.get_node(pos).name == "seawrecks:uboot" and + (minetest.get_node(yp).name == "default:water_source" or + minetest.get_node(yp).name == "noairblocks:water_sourcex") then + minetest.add_node(pos, {name = "default:dirt"}) + + pos.y = pos.y + 1 + pos.x = pos.x - 15 + + for a = 1, 31 do + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + end + + pos.z = pos.z + 1 + pos.x = pos.x + 1 + + for a = 1, 31 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + end + + pos.z = pos.z + 1 + pos.x = pos.x +1 + + for a = 1, 27 do + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + end + + pos.z = pos.z - 3 + pos.x = pos.x + 1 + + for a = 1, 27 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + end + + pos.z = pos.z - 1 + pos.x = pos.x + 2 + + for a = 1, 21 do + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + end + + pos.z = pos.z + 5 + pos.x = pos.x + 1 + + for a = 1, 21 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + end + + pos.y = pos.y + 1 + pos.z = pos.z + 1 + pos.x = pos.x - 1 + + for a = 1, 21 do + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + end + + pos.z = pos.z - 7 + pos.x = pos.x + 1 + + for a = 1, 21 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + end + + pos.z = pos.z + 1 + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.x = pos.x + 24 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.z = pos.z + 5 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.x = pos.x - 22 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.z = pos.z - 1 + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.x = pos.x + 29 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.z = pos.z - 3 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.x = pos.x - 28 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.z = pos.z + 1 + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.x = pos.x + 32 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.z = pos.z + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.x = pos.x - 32 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.y = pos.y + 1 + minetest.add_node(pos, {name = "default:steelblock"}) + + pos.x = pos.x + 32 + minetest.add_node(pos, {name = "default:steelblock"}) + + pos.z = pos.z - 1 + minetest.add_node(pos, {name = "default:steelblock"}) + + pos.x = pos.x - 32 + minetest.add_node(pos, {name = "default:steelblock"}) + + pos.z = pos.z - 1 + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:steelblock"}) + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:steelblock"}) + + pos.x = pos.x + 28 + minetest.add_node(pos, {name = "default:steelblock"}) + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:steelblock"}) + + pos.z = pos.z + 3 + minetest.add_node(pos, {name = "default:steelblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:steelblock"}) + + pos.x = pos.x - 28 + minetest.add_node(pos, {name = "default:steelblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:steelblock"}) + + pos.z = pos.z + 1 + pos.x = pos.x + 2 + minetest.add_node(pos, {name = "default:steelblock"}) + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:obsidian_glass"}) + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:steelblock"}) + + pos.x = pos.x + 22 + minetest.add_node(pos, {name = "default:steelblock"}) + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:obsidian_glass"}) + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:steelblock"}) + + pos.z = pos.z + 1 + pos.x = pos.x - 2 + for a = 1, 3 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:steelblock"}) + end + + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:obsidian_glass"}) + + for a = 1, 3 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:steelblock"}) + end + + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:obsidian_glass"}) + + for a = 1, 3 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:steelblock"}) + end + + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:obsidian_glass"}) + + for a = 1, 9 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:steelblock"}) + end + + pos.z = pos.z - 6 + pos.x = pos.x - 3 + minetest.add_node(pos, {name = "default:steelblock"}) + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:obsidian_glass"}) + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:steelblock"}) + + pos.x = pos.x + 22 + minetest.add_node(pos, {name = "default:steelblock"}) + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:obsidian_glass"}) + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:steelblock"}) + + pos.z = pos.z - 1 + pos.x = pos.x - 2 + + for a = 1, 3 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:steelblock"}) + end + + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:obsidian_glass"}) + + for a = 1, 3 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:steelblock"}) + end + + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:obsidian_glass"}) + + for a = 1, 3 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:steelblock"}) + end + + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:obsidian_glass"}) + + for a = 1, 9 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:steelblock"}) + end + + pos.y = pos.y + 1 + pos.z = pos.z + 7 + pos.x = pos.x - 1 + for a = 1, 21 do + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + end + + pos.z = pos.z - 7 + pos.x = pos.x + 1 + + for a = 1, 21 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + end + + pos.z = pos.z + 1 + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.x = pos.x + 24 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.z = pos.z + 5 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.x = pos.x - 22 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.z = pos.z - 1 + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.x = pos.x + 29 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.z = pos.z - 3 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.x = pos.x - 28 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.z = pos.z + 1 + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.x = pos.x + 32 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.z = pos.z + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.x = pos.x - 32 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.y = pos.y + 1 + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.x = pos.x + 28 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.z = pos.z - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.x = pos.x - 28 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.z = pos.z - 1 + pos.x = pos.x + 2 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.x = pos.x + 22 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.z = pos.z + 3 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.x = pos.x - 22 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + + pos.z = pos.z + 1 + pos.x = pos.x + 2 + for a = 1, 21 do + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + end + + pos.z = pos.z - 5 + pos.x = pos.x + 1 + for a = 1, 21 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + end + + pos.y = pos.y + 1 + pos.z = pos.z + 2 + pos.x = pos.x - 4 + for a = 1, 3 do + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + end + + pos.x = pos.x + 21 + for a = 1, 3 do + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + end + + pos.z = pos.z + 1 + pos.x = pos.x + 1 + for a = 1, 3 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + end + + pos.x = pos.x - 21 + for a = 1, 3 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + end + + pos.z = pos.z + 2 + pos.x = pos.x + 3 + for a = 1, 4 do + pos.z = pos.z - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + end + + pos.z = pos.z - 1 + pos.x = pos.x + 1 + for a = 1, 4 do + pos.z = pos.z + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + end + + pos.x = pos.x + 6 + for a = 1, 13 do + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:copperblock"}) + end + + pos.z = pos.z - 3 + pos.x = pos.x + 1 + for a = 1, 13 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:copperblock"}) + end + + pos.z = pos.z + 1 + pos.x = pos.x - 1 + for a = 1, 13 do + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:bronzeblock"}) + end + + pos.z = pos.z + 1 + pos.x = pos.x + 1 + for a = 1, 13 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:bronzeblock"}) + end + + pos.z = pos.z - 3 + for a = 1, 6 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:steelblock"}) + end + + pos.z = pos.z + 5 + pos.x = pos.x - 1 + for a = 1, 6 do + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:steelblock"}) + end + + pos.y = pos.y + 1 + for a = 1, 4 do + pos.z = pos.z - 1 + minetest.add_node(pos, {name = "default:steelblock"}) + end + + pos.x = pos.x - 5 + pos.z = pos.z - 1 + for a = 1, 4 do + pos.z = pos.z + 1 + minetest.add_node(pos, {name = "default:steelblock"}) + end + + for a = 1, 4 do + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:steelblock"}) + end + + pos.x = pos.x + 1 + pos.z = pos.z - 3 + for a = 1, 4 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:steelblock"}) + end + + pos.y = pos.y + 1 + pos.x = pos.x - 1 + pos.z = pos.z - 1 + for a = 1, 4 do + pos.z = pos.z + 1 + minetest.add_node(pos, {name = "default:steelblock"}) + end + + pos.x = pos.x + 5 + pos.z = pos.z + 1 + for a = 1, 4 do + pos.z = pos.z - 1 + minetest.add_node(pos, {name = "default:steelblock"}) + end + + for a = 1, 4 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:steelblock"}) + end + + pos.x = pos.x - 1 + pos.z = pos.z + 3 + for a = 1, 4 do + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:steelblock"}) + end + + pos.y = pos.y + 1 + pos.x = pos.x - 1 + pos.z = pos.z - 1 + for a = 1, 2 do + pos.x = pos.x - 1 + minetest.add_node(pos, {name = "default:steelblock"}) + end + + pos.x = pos.x - 1 + pos.z = pos.z - 1 + for a = 1, 2 do + pos.x = pos.x + 1 + minetest.add_node(pos, {name = "default:steelblock"}) + end + + pos.y = pos.y - 7 + pos.x = pos.x +16 + pos.z = pos.z +3 + minetest.add_node(pos, {name = "seawrecks:ubootchest"}) + + else + return + end +end +}) \ No newline at end of file diff --git a/mods/sea/seawrecks/readme.txt b/mods/sea/seawrecks/readme.txt new file mode 100755 index 00000000..30fb390c --- /dev/null +++ b/mods/sea/seawrecks/readme.txt @@ -0,0 +1,42 @@ +Sounds: +sounds = default.node_sound_sand_defaults(), +sounds = default.node_sound_stone_defaults(), +sounds = default.node_sound_wood_defaults(), +sounds = default.node_sound_glass_defaults(), + +Copyright (C) 2010-2012 celeron55, Perttu Ahola + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + + +.png's: +default_sand.png +VanessaE (WTFPL) + +default_dirt.png +default_tree.png +default_chest_front.png +default_chest_side.png +default_chest_top.png +Cisoun's WTFPL texture pack + +default_wood.png +Originating from G4JC's Almost MC Texture Pack + +default_steel_block.png +default_copper_block.png +default_bronze_block.png +Zeg9 (CC BY-SA 3.0) + +default_obsidian_glass.png +PilzAdam (WTFPL) + + +Code: +minetest/games/minetest_game/mods/default/mapgen.lua --> ore generation + +Copyright (C) 2011-2012 celeron55, Perttu Ahola +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. \ No newline at end of file diff --git a/mods/sea/stairsshine/README.txt b/mods/sea/stairsshine/README.txt new file mode 100755 index 00000000..19d4c452 --- /dev/null +++ b/mods/sea/stairsshine/README.txt @@ -0,0 +1,33 @@ +This mod (stairsshine) is the stairs mod with 'light_source = 14' for stairs and slabs +and without the 'stairs.register_stair_and_slab' code for some default nodes. + +So credits to Kahrl and celeron55. + +README.txt of the stairs-mod: + +Minetest 0.4 mod: stairs +========================= + +License of source code: +----------------------- +Copyright (C) 2011-2012 Kahrl +Copyright (C) 2011-2012 celeron55, Perttu Ahola + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +http://www.gnu.org/licenses/lgpl-2.1.html + +License of media (textures and sounds) +-------------------------------------- +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + +Authors of media files +----------------------- +Everything not listed in here: +Copyright (C) 2010-2012 celeron55, Perttu Ahola + + diff --git a/mods/sea/stairsshine/depends.txt b/mods/sea/stairsshine/depends.txt new file mode 100755 index 00000000..331d858c --- /dev/null +++ b/mods/sea/stairsshine/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/mods/sea/stairsshine/init.lua b/mods/sea/stairsshine/init.lua new file mode 100755 index 00000000..2be8bbfe --- /dev/null +++ b/mods/sea/stairsshine/init.lua @@ -0,0 +1,219 @@ +-- A slightly modified stairs mod to make stairs able to shine a light +-- Includes also original text and README.txt +-- Credits to Kahrl and celeron55 + +-- Minetest 0.4 mod: stairs +-- See README.txt for licensing and other information. + +stairsshine = {} + +-- Node will be called stairsshine:stair_ +function stairsshine.register_stair(subname, recipeitem, groups, images, description, sounds) + minetest.register_node(":stairsshine:stair_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + light_source = 14, -- (modification) + groups = groups, + sounds = sounds, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + {-0.5, 0, 0, 0.5, 0.5, 0.5}, + }, + }, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + local p0 = pointed_thing.under + local p1 = pointed_thing.above + local param2 = 0 + + local placer_pos = placer:getpos() + if placer_pos then + local dir = { + x = p1.x - placer_pos.x, + y = p1.y - placer_pos.y, + z = p1.z - placer_pos.z + } + param2 = minetest.dir_to_facedir(dir) + end + + if p0.y-1 == p1.y then + param2 = param2 + 20 + if param2 == 21 then + param2 = 23 + elseif param2 == 23 then + param2 = 21 + end + end + + return minetest.item_place(itemstack, placer, pointed_thing, param2) + end, + }) + + -- for replace ABM + minetest.register_node(":stairsshine:stair_" .. subname.."upside_down", { + replace_name = "stairsshine:stair_" .. subname, + groups = {slabs_replace=1}, + }) + + minetest.register_craft({ + output = 'stairsshine:stair_' .. subname .. ' 4', + recipe = { + {recipeitem, "", ""}, + {recipeitem, recipeitem, ""}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + + -- Flipped recipe for the silly minecrafters + minetest.register_craft({ + output = 'stairsshine:stair_' .. subname .. ' 4', + recipe = { + {"", "", recipeitem}, + {"", recipeitem, recipeitem}, + {recipeitem, recipeitem, recipeitem}, + }, + }) +end + +-- Node will be called stairsshine:slab_ +function stairsshine.register_slab(subname, recipeitem, groups, images, description, sounds) + minetest.register_node(":stairsshine:slab_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + light_source = 14, -- (modification) + groups = groups, + sounds = sounds, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + }, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + -- If it's being placed on an another similar one, replace it with + -- a full block + local slabpos = nil + local slabnode = nil + local p0 = pointed_thing.under + local p1 = pointed_thing.above + local n0 = minetest.get_node(p0) + local n1 = minetest.get_node(p1) + local param2 = 0 + + local n0_is_upside_down = (n0.name == "stairsshine:slab_" .. subname and + n0.param2 >= 20) + + if n0.name == "stairsshine:slab_" .. subname and not n0_is_upside_down and p0.y+1 == p1.y then + slabpos = p0 + slabnode = n0 + elseif n1.name == "stairsshine:slab_" .. subname then + slabpos = p1 + slabnode = n1 + end + if slabpos then + -- Remove the slab at slabpos + minetest.remove_node(slabpos) + -- Make a fake stack of a single item and try to place it + local fakestack = ItemStack(recipeitem) + fakestack:set_count(itemstack:get_count()) + + pointed_thing.above = slabpos + local success + fakestack, success = minetest.item_place(fakestack, placer, pointed_thing) + -- If the item was taken from the fake stack, decrement original + if success then + itemstack:set_count(fakestack:get_count()) + -- Else put old node back + else + minetest.set_node(slabpos, slabnode) + end + return itemstack + end + + -- Upside down slabs + if p0.y-1 == p1.y then + -- Turn into full block if pointing at a existing slab + if n0_is_upside_down then + -- Remove the slab at the position of the slab + minetest.remove_node(p0) + -- Make a fake stack of a single item and try to place it + local fakestack = ItemStack(recipeitem) + fakestack:set_count(itemstack:get_count()) + + pointed_thing.above = p0 + local success + fakestack, success = minetest.item_place(fakestack, placer, pointed_thing) + -- If the item was taken from the fake stack, decrement original + if success then + itemstack:set_count(fakestack:get_count()) + -- Else put old node back + else + minetest.set_node(p0, n0) + end + return itemstack + end + + -- Place upside down slab + param2 = 20 + end + + -- If pointing at the side of a upside down slab + if n0_is_upside_down and p0.y+1 ~= p1.y then + param2 = 20 + end + + return minetest.item_place(itemstack, placer, pointed_thing, param2) + end, + }) + + -- for replace ABM + minetest.register_node(":stairsshine:slab_" .. subname.."upside_down", { + replace_name = "stairsshine:slab_"..subname, + groups = {slabs_replace=1}, + }) + + minetest.register_craft({ + output = 'stairsshine:slab_' .. subname .. ' 6', + recipe = { + {recipeitem, recipeitem, recipeitem}, + }, + }) +end + +-- Replace old "upside_down" nodes with new param2 versions +minetest.register_abm({ + nodenames = {"group:slabs_replace"}, + interval = 1, + chance = 1, + action = function(pos, node) + node.name = minetest.registered_nodes[node.name].replace_name + node.param2 = node.param2 + 20 + if node.param2 == 21 then + node.param2 = 23 + elseif node.param2 == 23 then + node.param2 = 21 + end + minetest.set_node(pos, node) + end, +}) + +-- Nodes will be called stairsshine:{stair,slab}_ +function stairsshine.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab, sounds) + stairsshine.register_stair(subname, recipeitem, groups, images, desc_stair, sounds) + stairsshine.register_slab(subname, recipeitem, groups, images, desc_slab, sounds) +end \ No newline at end of file diff --git a/mods/sea/whiteshell/depends.txt b/mods/sea/whiteshell/depends.txt new file mode 100755 index 00000000..ff483cad --- /dev/null +++ b/mods/sea/whiteshell/depends.txt @@ -0,0 +1,2 @@ +default +clams \ No newline at end of file diff --git a/mods/sea/whiteshell/init.lua b/mods/sea/whiteshell/init.lua new file mode 100755 index 00000000..ffc10ac6 --- /dev/null +++ b/mods/sea/whiteshell/init.lua @@ -0,0 +1,82 @@ +-- NODES + + +minetest.register_node("whiteshell:whiteshell", { + description = "White shell", + drawtype = "normal", +-- tiles = {"default_desert_sand.png^clams_crushedwhite.png"}, + tiles = {"default_desert_sand.png"}, + is_ground_content = true, + groups = {sand=1, crumbly=3, falling_node=1, sand=1, not_in_creative_inventory=1}, + drop = { + max_items = 2, + items = { + { + items = {'clams:crushedwhite'}, + }, + { + items = {'default:desert_sand'}, + } + } + }, + sounds = default.node_sound_sand_defaults(), +}) + +-- WHITESHELL GENERATION + + +minetest.register_ore({ + ore_type = "scatter", + ore = "whiteshell:whiteshell", + wherein = "default:desert_sand", + clust_scarcity = 10*10*10, + clust_num_ores = 18, + clust_size = 6, + height_max = 31000, + height_min = -31000, +}) + + +local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, chunk_size, ore_per_chunk, height_min, height_max) + 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) + 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 +end + + +-- ALIASES + + +minetest.register_alias("clams:whiteshell","whiteshell:whiteshell") diff --git a/mods/sea/whiteshell/readme.txt b/mods/sea/whiteshell/readme.txt new file mode 100755 index 00000000..ec916717 --- /dev/null +++ b/mods/sea/whiteshell/readme.txt @@ -0,0 +1,16 @@ +Sounds: +sounds = default.node_sound_sand_defaults() + +Mito551 (sounds) (CC BY-SA): + +.png's: +default_desert_sand.png +VanessaE (WTFPL) + +Code: +minetest/games/minetest_game/mods/default/mapgen.lua --> ore generation + +Copyright (C) 2011-2012 celeron55, Perttu Ahola +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. \ No newline at end of file diff --git a/mods/snow/LazyJ-changelog.txt b/mods/snow/LazyJ-changelog.txt new file mode 100644 index 00000000..89c30c89 --- /dev/null +++ b/mods/snow/LazyJ-changelog.txt @@ -0,0 +1,162 @@ +~ LazyJ, 2014_06_01 + +~~~~~~~~~~~~~~~~~~~~ +List of Changes +~~~~~~~~~~~~~~~~~~~~ + + + +##### MapGen + +I did *not* fix Snow's mapgen issue with "PlantLife" (another great, Minetest +standard) based mods. Mapgen stuff is far beyond my current skill level. +What little changes I did make were to switch-out Snow nodes that Minetest +now has as defaults (dirt_with_snow, snow, ice). My thoughts being that +texture packs and other mods that may use these nodes as recipe items are more +likely to support default nodes. I also added a line above and below in the +"mapgen.lua" file indicating where to put the comment symbols to +comment-out/disable Snow's mapgen. Mods based on VanessaE's excellent +"PlantLife" mod will not produce if Snow's mapgen is active. +*Snow's mapgen is active by default.* +I did not disable it, merely indicated were the comment symbols are +to be placed. To compensate for the loss of snow resources when Snow's mapgen +is disabled, I created crafting recipes that allows players to craft more +snow, ice, and moss. This not only encourages snow builds, but also allows +the players to create snow biomes where they want and whatever size they are +willing to make them. + + +##### Fixed + * Pine saplings are now replaced with tree trunks when the tree grows. + * Snowballs no longer pass through solid objects. Griefers can no + longer flood the interiors of builds by throwing snowballs through the + walls hoping to either leave a snowy mess inside or that a heat source + would melt the snow and flood the interior. + * Snowballs no longer destroy nodes when thrown at the sides. + * Falling snow no longer destroys nodes (same problem snowballs had). + * Snow bricks now, instead of disappearing like before, melt + into water sources. + * Christmas tree saplings once again will drop when pine needles + are harvested. + * Dirt_with_snow changes to dirt when a solid, non-light permeating + (sunlight_propagates) block is set on top of it. + + + +##### Changed + * All snow and ice stuff (including the stairs, slabs, panels, and + microblocks) will freeze dirt and dirt_with_grass into dirt_with_snow. + * All snow and most ice stuff will freeze water into ice, including + the stairs, slabs, panels, and microblocks. The exception is the + full-sized ice blocks will *not* freeze water into ice. + * Snow brick texture reworked and based off of the default stone brick + texture (and less purple in the grout). + * Ice stuff is now semi-transparent. + * Christmas trees now have blinking lights that give off a + low level of light. + * Christmas tree stars now give off a high level of light and the + light can be punched on or off. + * Combined default snow and snowballs. Now snow can be + thrown (left-click) or placed (right-click). + * Snow stuff now has "snow" sounds instead of "grass" sounds. + * Melting - Full-sized snow blocks, snow brick, snow cobble, and ice + will melt into water sources. The down-side is this makes a big, + permanent mess. The up-side, this is a convenient way to carry water, + if buckets are disabled on your server, by keeping full-sized snow + stuff and ice blocks in your inventory to, later, melt where you + need water. + * Melting - Partial and small-sized blocks like snow (snowballs), + basic stairs and slabs for snow stuff and ice, and circular saw-made + snow stuff and ice things will melt into a water source for 2 seconds, + then switch from a water source to flowing water, and after a moment + the flowing water dries-up (small, temporary mess). + + + +##### Added + * New block-type: "Snow Cobble". Just like regular cobble from regular + stone, snow cobble comes from digging snow blocks. + * All snow and ice blocks can be crafted into basic slabs and stairs. + The default slabs stack and change back into full-sized blocks + ("More Blocks" slabs won't do this). + * Soft dependency on a recent release Calinou's MoreBlocks so all + snow and ice blocks are compatible with the circular saw. If you don't + have MoreBlocks installed, Snow will ignore the code for those fancy + blocks and use basic stairs and slabs instead. + * All snow and ice stuff works with the screwdriver. + * Crafting, recycling, and cooking recipes for snow blocks, + ice, and moss. + * Snow bricks craft-recycle back into 4 snow blocks. + * 2 snow blocks craft into 3 snow blocks. This is to make up + for when the mapgen for snow biomes is disabled. + * 2 snow cobble craft-recycle into 3 snow blocks. + * 4 pine needles craft into 1 moss + * Snow blocks, snow cobble, and snow bricks can be cooked in a + furnace to make ice. + * Snowballs can be thrown (left-click) to build up layers. After the + 11th layer, the bottom 9 layers change into a snow block. At a very + close distance, throwing snowballs can be used as a technique to + build-up gradual slopes. If you have lots and lots of snow balls, + with rapid-fire throwing, you can, very briefly, "white-out" another + player's view if your aim is good enough to hit them in the face. + * Snowballs can be placed (right-click) but will not stack into + multiple layers. Just one layer only. Placing snow is more reliable + and accurate than throwing snow from a distance. By placing snow, + players are able to create their own, personal, snow biomes. + * Vertical clearance check for tree growth. The nine blocks above the + spot where the sapling is placed must be free and clear of all + obstructions or else the sapling will not be allowed to grow. + Griefers could place the saplings in builds and when the tree grows + it may not destroy nodes but it fills the available air space leaving + a mess for the build's owner to clean-up. Now the trees will only grow + inside if there is 9, free-and-clear spaces from floor to ceiling. + Because pine trees (and Christmas trees) will grow on any solid surface, + their saplings are handy to take with you when deep mining. Just before + you run out of tool wood, dig out a space large enough for a tree to + grow, plant a pine or Christmas tree sapling then place 2 torches on + either side, right next to the sapling. After the tree grows harvest + the trunk for tool wood, the leaves for short-run fuel in the furnace + and for saplings to renew your tool wood supply again. + * Aliases to help make WorldEdit and "give" commands easier: + + + "default_snow" = "default:snow" + "snowball" = "default:snow" + "snowballs" = "default:snow" + "snow_ball" = "default:snow" + "ice" = "default:ice" + "default_ice" = "default:ice" + "dirtwithsnow" = "default:dirt_with_snow" + "snowdirt" = "default:dirt_with_snow" + "snowydirt" = "default:dirt_with_snow" + "snowblocks" = "default:snowblock" + "snowbrick" = "snow:snow_brick" + "bricksnow" = "snow:snow_brick" + "snowbricks" = "snow:snow_brick" + "snowybricks" = "snow:snow_brick" + "snowcobble" = "snow:snow_cobble" + "snowycobble" = "snow:snow_cobble" + "cobblesnow" = "snow:snow_cobble" + + + +~~~~~~ +TODO +~~~~~~ + +Falling Snow: + * Add code to prevent snowfall from depositing snow on or near torches, +active furnaces, and lava. + + * Add code to prevent snowfall from depositing snow on +'walkable = false' defined nodes. + + + +Sled: + * Figure out why the player avatars remain in a seated position, +even after getting off the sled, if they flew while on the sled. +'default.player_set_animation', where is a better explanation for this and what +are it's available options? + + diff --git a/mods/snow/changelog.txt b/mods/snow/changelog.txt new file mode 100644 index 00000000..34aff145 --- /dev/null +++ b/mods/snow/changelog.txt @@ -0,0 +1,62 @@ +CHANGELOG: +------------ +Version 0.3.1 + + Paramat's rewrite of mapgenv6.lua: bugfixes, use noisemaps for big speed increase + +Version 3.0 + LazyJ's big changes (see LazyJ-changelog.txt) + + Ice freezes-over. + + Better leveled snow. + + PLUS MORE! (see commit log) + +Version 2.0 + + Uses default namespace. + + Sleds. + + Bugfixes. + +Version 1.8 + + Mapgen_v7 support. + + Better config system. + + Falling snow. + +Version 1.4 + + New biomes, snowy and plain + + Christmas Trees + + Snowfall + +Version 1.3 + + Smooth transitions + + Snow Bricks + +Version 1.2 + + Pine trees + + Moss + + Alpine biomes + + Dry shrubs + +Version 1.1 + + Better mapgen + +Version 1.0 + + Initial release diff --git a/mods/snow/config.txt b/mods/snow/config.txt new file mode 100644 index 00000000..b726e570 --- /dev/null +++ b/mods/snow/config.txt @@ -0,0 +1,18 @@ +# Reduces the amount of resources and fps used by snowfall. +lighter_snowfall = false +# Enables smooth transition of biomes +smooth_biomes = true +# The minumum height a snow biome will generate. +min_height = 3 +# Disable this to prevent sleds from being riden. +sleds = true +# Disable this to stop snow from being smoothed. +smooth_snow = true +# Disable this to remove christmas saplings from being found. +christmas_content = true +# Whether you are running a legacy minetest version (auto-detected). +legacy = false +# Enables debug output. +debug = false +# Enables falling snow. +enable_snowfall = true diff --git a/mods/snow/config.txt~ b/mods/snow/config.txt~ new file mode 100644 index 00000000..47935839 --- /dev/null +++ b/mods/snow/config.txt~ @@ -0,0 +1,18 @@ +# Whether you are running a legacy minetest version (auto-detected). +legacy = false +# Enables falling snow. +enable_snowfall = true +# Disable this to stop snow from being smoothed. +smooth_snow = true +# Disable this to remove christmas saplings from being found. +christmas_content = true +# The minumum height a snow biome will generate. +min_height = 3 +# Disable this to prevent sleds from being riden. +sleds = true +# Enables debug output. +debug = false +# Reduces the amount of resources and fps used by snowfall. +lighter_snowfall = false +# Enables smooth transition of biomes +smooth_biomes = true diff --git a/mods/snow/depends.txt b/mods/snow/depends.txt new file mode 100644 index 00000000..9771003c --- /dev/null +++ b/mods/snow/depends.txt @@ -0,0 +1,2 @@ +default +moreblocks? \ No newline at end of file diff --git a/mods/snow/init.lua b/mods/snow/init.lua new file mode 100644 index 00000000..ccfa3cf1 --- /dev/null +++ b/mods/snow/init.lua @@ -0,0 +1,166 @@ +--[[ +--============================== +--========================================================== +LazyJ's Fork of Splizard's "Snow Biomes" Mod +by LazyJ +version: Umpteen-hundred and 7/5ths something or another. +2014_04_12 + +~~~ + +"Snow Biomes" Mod +By Splizard + +Download: +http//forum.minetest.net/viewtopic.php?id=2290 +http://github.com/Splizard/minetest-mod-snow/ + +--========================================================== +--============================== + + Snow Biomes + + 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 2 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, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + MA 02110-1301, USA. +]]-- + + + +-- Original Lua Files +--dofile(minetest.get_modpath("snow").."/util.lua") +--dofile(minetest.get_modpath("snow").."/mapgen.lua") +--dofile(minetest.get_modpath("snow").."/sled.lua") +-- "falling_snow.lua" disabled since weather functions minetest.get_heat(pos) and minetest.get_humidity(pos) +-- have been removed from Minetest. +-- Until something else can be figured out, use paramat's "Snowdrift" mod instead. +-- dofile(minetest.get_modpath("snow").."/falling_snow.lua") + +-- Original init.lua File Broken into Smaller Files +dofile(minetest.get_modpath("snow").."/src/abms.lua") +dofile(minetest.get_modpath("snow").."/src/aliases.lua") +dofile(minetest.get_modpath("snow").."/src/basic_stairs_slabs.lua") +dofile(minetest.get_modpath("snow").."/src/crafting.lua") +dofile(minetest.get_modpath("snow").."/src/snowball.lua") + + +-- The formspec menu didn't work when util.lua was the very first "dofile" so I moved +-- it and all the other original "dofiles", in order, to the bottom of the list. ~ LazyJ +-- Minetest would crash if the mapgen was called upon before the rest of other snow lua files so +-- I put it lower on the list and that seems to do the trick. ~ LazyJ +dofile(minetest.get_modpath("snow").."/src/util.lua") +-- To get Xmas tree saplings, the "christmas_content", true or false, in "util.lua" has to be determined first. +-- That means "nodes.lua", where the saplings are controlled, has to come after "util.lua". ~ LazyJ +dofile(minetest.get_modpath("snow").."/src/nodes.lua") +dofile(minetest.get_modpath("snow").."/src/mapgen.lua") +dofile(minetest.get_modpath("snow").."/src/sled.lua") +dofile(minetest.get_modpath("snow").."/src/falling_snow.lua") + + + +-- Check for "MoreBlocks". If not found, skip this next "dofile". + +if (minetest.get_modpath("moreblocks")) then + + dofile(minetest.get_modpath("snow").."/src/stairsplus.lua") + +else +end + +--This function places snow checking at the same time for snow level and increasing as needed. +--This also takes into account sourrounding snow and makes snow even. +function snow.place(pos) + local node = minetest.get_node_or_nil(pos) + local drawtype = "" + if node and minetest.registered_nodes[node.name] then + drawtype = minetest.registered_nodes[node.name].drawtype + end + + --Oops, maybe there is no node? + if node == nil then + return + end + + local bnode = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z}) + if node.name == "default:snow" and minetest.get_node_level(pos) < 63 then + if minetest.get_item_group(bnode.name, "leafdecay") == 0 and snow.is_uneven(pos) ~= true then + minetest.add_node_level(pos, 7) + end + elseif node.name == "default:snow" and minetest.get_node_level(pos) == 63 then + local p = minetest.find_node_near(pos, 10, "default:dirt_with_grass") + if p and minetest.get_node_light(p, 0.5) == 15 then + minetest.place_node({x=pos.x,y=pos.y+1,z=pos.z},{name="default:snow"}) + else + minetest.add_node(pos,{name="default:snowblock"}) + end + elseif node.name ~= "default:ice" and bnode.name ~= "air" then + if drawtype == "normal" or drawtype == "allfaces_optional" then + minetest.place_node({x=pos.x,y=pos.y+1,z=pos.z}, {name="default:snow"}) + elseif drawtype == "plantlike" then + pos.y = pos.y - 1 + if minetest.get_node(pos).name == "default:dirt_with_grass" then + minetest.add_node(pos, {name="default:dirt_with_snow"}) + end + end + end +end + +-- Checks if the snow level is even at any given pos. +-- Smooth Snow +local smooth_snow = snow.smooth_snow +snow.is_uneven = function(pos) + if smooth_snow then + local num = minetest.get_node_level(pos) + local get_node = minetest.get_node + local add_node = minetest.add_node + local found + local foundx + local foundy + for x=-1,1 do + for z=-1,1 do + local node = get_node({x=pos.x+x,y=pos.y,z=pos.z+z}) + local bnode = get_node({x=pos.x+x,y=pos.y-1,z=pos.z+z}) + local drawtype + if node and minetest.registered_nodes[node.name] then + drawtype = minetest.registered_nodes[node.name].drawtype + end + + if drawtype == "plantlike" then + if bnode.name == "default:dirt_with_grass" then + add_node({x=pos.x+x,y=pos.y-1,z=pos.z+z}, {name="default:dirt_with_snow"}) + return true + end + end + + if (not(x == 0 and y == 0)) and node.name == "default:snow" and minetest.get_node_level({x=pos.x+x,y=pos.y,z=pos.z+z}) < num then + found = true + foundx = x + foundz=z + elseif node.name == "air" and bnode.name ~= "air" then + if not (bnode.name == "default:snow") then + snow.place({x=pos.x+x,y=pos.y-1,z=pos.z+z}) + return true + end + end + end + end + if found then + local node = get_node({x=pos.x+foundx,y=pos.y,z=pos.z+foundz}) + if snow.is_uneven({x=pos.x+foundx,y=pos.y,z=pos.z+foundz}) ~= true then + minetest.add_node_level({x=pos.x+foundx,y=pos.y,z=pos.z+foundz}, 7) + end + return true + end + end +end diff --git a/mods/snow/license.txt b/mods/snow/license.txt new file mode 100644 index 00000000..94a9ed02 --- /dev/null +++ b/mods/snow/license.txt @@ -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. + + + Copyright (C) + + 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: + + Copyright (C) + 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/snow/models/sled.blend b/mods/snow/models/sled.blend new file mode 100644 index 00000000..57f4257c Binary files /dev/null and b/mods/snow/models/sled.blend differ diff --git a/mods/snow/models/sled.png b/mods/snow/models/sled.png new file mode 100644 index 00000000..d270b6a6 Binary files /dev/null and b/mods/snow/models/sled.png differ diff --git a/mods/snow/models/sled.x b/mods/snow/models/sled.x new file mode 100644 index 00000000..2870db3d --- /dev/null +++ b/mods/snow/models/sled.x @@ -0,0 +1,369 @@ +xof 0303txt 0032 + +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 Cube_001 { + FrameTransformMatrix { + 0.000000, 0.149813, 0.000000, 0.000000, + -0.149813, 0.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 0.149813, 0.000000, + 0.025244, 3.853863,-2.133818, 1.000000;; + } + Mesh { //Cube_003 Mesh + 88; + -1.000000;53.554752;-1.000000;, + -1.000000;-53.189678;-1.000000;, + 1.000000;-53.189678;-1.000000;, + 1.000000;53.554752;-1.000000;, + 0.999999;-53.189678;14.242604;, + -1.000000;-53.189678;14.242604;, + -1.000000;-53.189678;16.253036;, + 0.999999;-53.189678;16.253036;, + 1.000000;-53.189678;-1.000000;, + 0.999999;-53.189678;14.242604;, + 1.000000;53.554752;14.242604;, + 1.000000;53.554752;-1.000000;, + -1.000000;-53.189678;-1.000000;, + -1.000000;-53.189678;14.242604;, + 0.999999;-53.189678;14.242604;, + 1.000000;-53.189678;-1.000000;, + -1.000000;53.554752;-1.000000;, + -1.000000;53.554752;14.242604;, + -1.000000;-53.189678;14.242604;, + -1.000000;-53.189678;-1.000000;, + -1.000000;53.554752;14.242604;, + -1.000000;53.554752;-1.000000;, + 1.000000;53.554752;-1.000000;, + 1.000000;53.554752;14.242604;, + 0.999999;-53.189678;16.253036;, + -1.000000;-53.189678;16.253036;, + -1.000000;53.554752;16.253036;, + 1.000000;53.554752;16.253036;, + -50.412270;53.554752;16.253036;, + -50.412270;53.554752;14.242604;, + -1.000000;53.554752;14.242604;, + -1.000000;53.554752;16.253036;, + 1.000000;53.554752;14.242604;, + 0.999999;-53.189678;14.242604;, + 0.999999;-53.189678;16.253036;, + 1.000000;53.554752;16.253036;, + 1.000000;53.554752;16.253036;, + -1.000000;53.554752;16.253036;, + -1.000000;53.554752;14.242604;, + 1.000000;53.554752;14.242604;, + -52.403629;-53.189678;16.253036;, + -52.403629;53.554752;16.253036;, + -50.412270;53.554752;16.253036;, + -50.412270;-53.189678;16.253036;, + -1.000000;-53.189678;14.242604;, + -1.000000;53.554752;14.242604;, + -50.412270;53.554752;14.242604;, + -50.412270;-53.189678;14.242604;, + -50.412270;-53.189678;16.253036;, + -50.412270;53.554752;16.253036;, + -1.000000;53.554752;16.253036;, + -1.000000;-53.189678;16.253036;, + -1.000000;-53.189678;16.253036;, + -1.000000;-53.189678;14.242604;, + -50.412270;-53.189678;14.242604;, + -50.412270;-53.189678;16.253036;, + -52.403629;-53.189678;14.242604;, + -52.403629;53.554752;14.242604;, + -52.403629;53.554752;16.253036;, + -52.403629;-53.189678;16.253036;, + -50.412270;-53.189678;16.253036;, + -50.412270;-53.189678;14.242604;, + -52.403629;-53.189678;14.242604;, + -52.403629;-53.189678;16.253036;, + -52.403629;53.554752;16.253036;, + -52.403629;53.554752;14.242604;, + -50.412270;53.554752;14.242604;, + -50.412270;53.554752;16.253036;, + -50.412270;53.554752;14.242604;, + -52.403629;53.554752;14.242604;, + -52.403629;53.554752;-0.989515;, + -50.412270;53.554752;-0.989515;, + -50.412270;-53.189678;-0.989515;, + -50.412270;53.554752;-0.989515;, + -52.403629;53.554752;-0.989515;, + -52.403629;-53.189678;-0.989515;, + -52.403629;-53.189678;-0.989515;, + -52.403629;53.554752;-0.989515;, + -52.403629;53.554752;14.242604;, + -52.403629;-53.189678;14.242604;, + -52.403629;-53.189678;14.242604;, + -50.412270;-53.189678;14.242604;, + -50.412270;-53.189678;-0.989515;, + -52.403629;-53.189678;-0.989515;, + -50.412270;-53.189678;14.242604;, + -50.412270;53.554752;14.242604;, + -50.412270;53.554752;-0.989515;, + -50.412270;-53.189678;-0.989515;; + 22; + 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;; + MeshNormals { //Cube_003 Normals + 88; + 0.000000; 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;, + -0.000000; 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; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 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;, + -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;; + 22; + 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;; + } //End of Cube_003 Normals + MeshMaterialList { //Cube_003 Material List + 1; + 22; + 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;; + } + } //End of Cube_003 Material List + MeshTextureCoords { //Cube_003 UV Coordinates + 88; + 0.973358; 0.999965;, + 0.975236; 0.387889;, + 0.986704; 0.387924;, + 0.984826; 1.000000;, + 0.706578; 0.081368;, + 0.706614; 0.092836;, + 0.695086; 0.092871;, + 0.695051; 0.081403;, + 0.593305; 0.387924;, + 0.680706; 0.387656;, + 0.682584; 0.999732;, + 0.595183; 1.000000;, + 0.794015; 0.092568;, + 0.706614; 0.092836;, + 0.706578; 0.081368;, + 0.793980; 0.081100;, + 0.882261; 1.000000;, + 0.794859; 0.999732;, + 0.796737; 0.387656;, + 0.884139; 0.387924;, + 0.806422; 0.375920;, + 0.893824; 0.376188;, + 0.893789; 0.387656;, + 0.806387; 0.387388;, + 0.000000; 0.387924;, + 0.011468; 0.387889;, + 0.013346; 0.999965;, + 0.001878; 1.000000;, + 0.795764; 0.092553;, + 0.807291; 0.092589;, + 0.806422; 0.375920;, + 0.794894; 0.375885;, + 0.682584; 0.999732;, + 0.680706; 0.387656;, + 0.692234; 0.387621;, + 0.694112; 0.999696;, + 0.794859; 0.387353;, + 0.794894; 0.375885;, + 0.806422; 0.375920;, + 0.806387; 0.387388;, + 0.306218; 0.386985;, + 0.308096; 0.999061;, + 0.296677; 0.999096;, + 0.294799; 0.387020;, + 0.593305; 0.387924;, + 0.591427; 1.000000;, + 0.308096; 0.999131;, + 0.309974; 0.387055;, + 0.294799; 0.387020;, + 0.296677; 0.999096;, + 0.013346; 0.999965;, + 0.011468; 0.387889;, + 0.695086; 0.092871;, + 0.706614; 0.092836;, + 0.707483; 0.376167;, + 0.695955; 0.376202;, + 0.707518; 0.387656;, + 0.705640; 0.999732;, + 0.694112; 0.999697;, + 0.695990; 0.387621;, + 0.695955; 0.376202;, + 0.707483; 0.376167;, + 0.707518; 0.387586;, + 0.695990; 0.387621;, + 0.795799; 0.081135;, + 0.807326; 0.081170;, + 0.807291; 0.092589;, + 0.795764; 0.092553;, + 0.807291; 0.092589;, + 0.807326; 0.081170;, + 0.894668; 0.081438;, + 0.894633; 0.092856;, + 0.988581; 1.000000;, + 0.986704; 0.387924;, + 0.998122; 0.387889;, + 1.000000; 0.999965;, + 0.794859; 0.387924;, + 0.792981; 1.000000;, + 0.705640; 0.999732;, + 0.707518; 0.387656;, + 0.707518; 0.387586;, + 0.707483; 0.376167;, + 0.794824; 0.375899;, + 0.794859; 0.387318;, + 0.884138; 0.999732;, + 0.886016; 0.387656;, + 0.973358; 0.387924;, + 0.971480; 1.000000;; + } //End of Cube_003 UV Coordinates + } //End of Cube_003 Mesh + } //End of Cube_001 +} //End of Root Frame diff --git a/mods/snow/readme.txt b/mods/snow/readme.txt new file mode 100644 index 00000000..0ee89cd7 --- /dev/null +++ b/mods/snow/readme.txt @@ -0,0 +1,103 @@ + _____ __ __ _ + / ____| | \/ | | | + | (___ _ __ _____ __ | \ / | ___ __| | + \___ \| '_ \ / _ \ \ /\ / / | |\/| |/ _ \ / _` | + ____) | | | | (_) \ V V / | | | | (_) | (_| | + |_____/|_| |_|\___/ \_/\_/ |_| |_|\___/ \__,_| + + Version 3.1 + +By Splizard and LazyJ. + +Minetest version: 0.4.9 +Depends: default +License: GPL v2 + +Complimentary Mods: +--------------------- +* "Snowdrift" by paramat +* "More Blocks" by Calinou (2014_05_11 or newer) +* "Skins" by Zeg9 + + +Install: + +Forum post: http://minetest.net/forum/viewtopic.php?id=2290 +Github: https://github.com/Splizard/minetest-mod-snow +Website: http://splizard.com/minetest/mods/snow/ + +INSTALL: +---------- +Place this folder in your minetest mods folder. +(http://dev.minetest.net/Installing_Mods) + + * After downloading, unzip the file. + * Rename the directory "minetest-mod-snow-master" to "snow" + * Copy the "snow" directory into either + ../minetest/worlds/yourworld'sname/worldmods/ + or + ../minetest/mods/ + * If you put "snow" in the ../minetest/mods/ directory, either + enable the mod from within Minetest's "Configure" button + (main menu, bottom right) or by adding this line to the + world's "world.mt" file: + load_mod_snow = true + + + +NOTICE +While this mod is installed you may experience slower map loading while a snow biome is generated. + +USAGE: +------- +If you walk around a bit you will find snow biomes scattered around the world. + +There are nine biome types: +* Normal +* Icebergs +* Icesheet +* Broken icesheet +* Icecave +* Coast +* Alpine +* Snowy +* Plain + +Snow can be picked up and thrown as snowballs or stacked into snow blocks. +Snow and ice melts when near warm blocks such as torches or igniters such as lava. +Snow blocks freeze water source blocks around them. +Moss can be found in the snow, when moss is placed near cobble it spreads. +Christmas trees can be found when digging pine needles. +Sleds allow for faster travel on snow. + +CRAFTING: +----------- +Snow Brick: + +Snow Block Snow Block +Snow Block Snow Block + +Sled: + Stick +Wood Wood Wood + +Icy Snow: + +Snow Ice +Ice Snow + +MAPGEN_V7: +------------ +If you are using minetest 0.4.8 or the latest dev version of minetest you can choose to generate a v7 map. +This option can be found when creating a new map from the menu. +Snow Biomes has support for this though you might need a couple other biomes too otherwise you will only spawn snow. +There are a couple of bugs and limitations with this such as no ice being generated at the moment. + +Config file: +------------ +After starting a game in minetest with snow mod, a config file will be placed in this folder that contains the various options for snow mod. +As admin you can use the /snow command in-game to make various changes. + +UNINSTALL: +------------ +Simply delete the folder snow from the mods folder. diff --git a/mods/snow/schematics/pine.mts b/mods/snow/schematics/pine.mts new file mode 100644 index 00000000..27dc5732 Binary files /dev/null and b/mods/snow/schematics/pine.mts differ diff --git a/mods/snow/src/abms.lua b/mods/snow/src/abms.lua new file mode 100644 index 00000000..8a595a10 --- /dev/null +++ b/mods/snow/src/abms.lua @@ -0,0 +1,216 @@ +--Backwards Compatability. +minetest.register_abm({ + nodenames = {"snow:snow1","snow:snow2","snow:snow3","gsnow4","snow:snow5","snow:snow6","snow:snow7","snow:snow8"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local level = 7*(tonumber(node.name:sub(-1))) + minetest.add_node(pos,{name="default:snow"}) + minetest.set_node_level(pos, level) + end, +}) + + + +-- Added to change dirt_with_snow to dirt if covered with blocks that don't let light through (sunlight_propagates) or have a light paramtype and liquidtype combination. ~ LazyJ, 2014_03_08 + +minetest.register_abm({ + nodenames = {"default:dirt_with_snow"}, + 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 +}) + + + +--Melting +--Any node part of the group melting will melt when near warm nodes such as lava, fire, torches, etc. +--The amount of water that replaces the node is defined by the number on the group: +--1: one water_source +--2: four water_flowings +--3: one water_flowing + +minetest.register_abm({ + nodenames = {"group:melts"}, + neighbors = {"group:igniter","default:torch","default:furnace_active","group:hot"}, + interval = 2, + chance = 2, + action = function(pos, node, active_object_count, active_object_count_wider) + local intensity = minetest.get_item_group(node.name,"melts") + if intensity == 1 then + minetest.add_node(pos,{name="default:water_source"}) + elseif intensity == 2 then + --[[ This was causing "melts=2" nodes to just disappear so I changed it to replace the + node with a water_source for a couple seconds and then replace the water_source with + air. This way it made a watery mess that quickly evaporated. ~ LazyJ 2014_04_24 + local check_place = function(pos,node) + if minetest.get_node(pos).name == "air" then + minetest.place_node(pos,node) + end + end + minetest.add_node(pos,{name="default:water_flowing"}) + check_place({x=pos.x+1,y=pos.y,z=pos.z},{name="default:water_flowing"}) + check_place({x=pos.x-1,y=pos.y,z=pos.z},{name="default:water_flowing"}) + check_place({x=pos.x,y=pos.y+1,z=pos.z},{name="default:water_flowing"}) + check_place({x=pos.x,y=pos.y-1,z=pos.z},{name="default:water_flowing"}) + elseif intensity == 3 then + --]] + minetest.add_node(pos,{name="default:water_source"}) + minetest.after(2, function() -- 2 seconds gives just enough time for + -- the water to flow and spread before the + -- water_source is changed to air. ~ LazyJ + if minetest.get_node(pos).name == "default:water_source" then + minetest.add_node(pos,{name="air"}) + end + end) + end + nodeupdate(pos) + end, +}) + + + + +--Freezing +--Water freezes when in contact with snow. +minetest.register_abm({ + nodenames = {"default:water_source"}, + -- Added "group:icemaker" and snowbrick. ~ LazyJ + neighbors = {"default:snow", "default:snowblock", "snow:snow_brick", "group:icemaker"}, + interval = 20, + chance = 4, + action = function(pos, node, active_object_count, active_object_count_wider) + minetest.add_node(pos,{name="default:ice"}) + end, +}) + +--Freeze Ice according to it's param2 value. +minetest.register_abm({ + nodenames = {"default:ice"}, + neighbors = {"default:water_source"}, + interval = 20, + chance = 4, + action = function(pos, node, active_object_count, active_object_count_wider) + if node.param2 > 0 then + if math.random(2) == 2 and minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z}).name == "default:water_source" then + minetest.add_node({x=pos.x+1, y=pos.y, z=pos.z},{name="default:ice", param2 = math.random(0,node.param2-1)}) + end + if math.random(2) == 2 and minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z}).name == "default:water_source" then + minetest.add_node({x=pos.x-1, y=pos.y, z=pos.z},{name="default:ice", param2 = math.random(0,node.param2-1)}) + end + if math.random(2) == 2 and minetest.get_node({x=pos.x, y=pos.y, z=pos.z-1}).name == "default:water_source" then + minetest.add_node({x=pos.x, y=pos.y, z=pos.z-1},{name="default:ice", param2 = math.random(0,node.param2-1)}) + end + if math.random(2) == 2 and minetest.get_node({x=pos.x, y=pos.y, z=pos.z+1}).name == "default:water_source" then + minetest.add_node({x=pos.x, y=pos.y, z=pos.z+1},{name="default:ice", param2 = math.random(0,node.param2-1)}) + end + if math.random(2) == 2 and minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z-1}).name == "default:water_source" then + minetest.add_node({x=pos.x+1, y=pos.y, z=pos.z-1},{name="default:ice", param2 = math.random(0,node.param2-1)}) + end + if math.random(2) == 2 and minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z+1}).name == "default:water_source" then + minetest.add_node({x=pos.x-1, y=pos.y, z=pos.z+1},{name="default:ice", param2 = math.random(0,node.param2-1)}) + end + if math.random(2) == 2 and minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z+1}).name == "default:water_source" then + minetest.add_node({x=pos.x+1, y=pos.y, z=pos.z+1},{name="default:ice", param2 = math.random(0,node.param2-1)}) + end + if math.random(2) == 2 and minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z-1}).name == "default:water_source" then + minetest.add_node({x=pos.x-1, y=pos.y, z=pos.z-1},{name="default:ice", param2 = math.random(0,node.param2-1)}) + end + if math.random(8) == 8 then + minetest.add_node({x=pos.x, y=pos.y, z=pos.z}, {name="default:water_source"}) + else + minetest.add_node({x=pos.x, y=pos.y, z=pos.z}, {name="default:ice", param2 = 0}) + end + end + end, +}) + + + +--Spread moss to cobble. +minetest.register_abm({ + nodenames = {"default:cobble"}, + neighbors = {"snow:moss"}, + interval = 20, + chance = 6, + action = function(pos, node, active_object_count, active_object_count_wider) + minetest.add_node(pos,{name="default:mossycobble"}) + end, +}) + + + + +--Grow Pine Saplings +minetest.register_abm({ + nodenames = {"snow:sapling_pine"}, + interval = 10, + chance = 50, + action = function(pos, node, active_object_count, active_object_count_wider) + +-- Check if there is enough vertical-space for the sapling to grow without +-- hitting anything else. ~ LazyJ, 2014_04_10 + + if -- 'If' there is air in each of the 8 nodes dirctly above the sapling,... ~LazyJ + minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "air" and + minetest.get_node({x=pos.x, y=pos.y+2, z=pos.z}).name == "air" and + minetest.get_node({x=pos.x, y=pos.y+3, z=pos.z}).name == "air" and + minetest.get_node({x=pos.x, y=pos.y+4, z=pos.z}).name == "air" and + minetest.get_node({x=pos.x, y=pos.y+5, z=pos.z}).name == "air" and + minetest.get_node({x=pos.x, y=pos.y+6, z=pos.z}).name == "air" and + minetest.get_node({x=pos.x, y=pos.y+7, z=pos.z}).name == "air" and + minetest.get_node({x=pos.x, y=pos.y+8, z=pos.z}).name == "air" + then -- 'then' let the sapling grow into a tree. ~ LazyJ + + snow.make_pine(pos,false) + -- This finds the sapling under the grown tree. ~ LazyJ + if minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "snow:sapling_pine" then + -- This switches the sapling to a tree trunk. ~ LazyJ + minetest.set_node(pos, {name="default:tree"}) + -- This is more for testing but it may be useful info to some admins when + -- grepping the server logs too. ~ LazyJ + minetest.log("action", "A pine sapling grows into a tree at "..minetest.pos_to_string(pos)) + end + else + end + end +}) + + + + +--Grow Christmas Tree Saplings +minetest.register_abm({ + nodenames = {"snow:xmas_tree"}, + interval = 10, + chance = 50, + action = function(pos, node, active_object_count, active_object_count_wider) + + if -- 'If' there is air in each of the 8 nodes dirctly above the sapling,... ~LazyJ + minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "air" and + minetest.get_node({x=pos.x, y=pos.y+2, z=pos.z}).name == "air" and + minetest.get_node({x=pos.x, y=pos.y+3, z=pos.z}).name == "air" and + minetest.get_node({x=pos.x, y=pos.y+4, z=pos.z}).name == "air" and + minetest.get_node({x=pos.x, y=pos.y+5, z=pos.z}).name == "air" and + minetest.get_node({x=pos.x, y=pos.y+6, z=pos.z}).name == "air" and + minetest.get_node({x=pos.x, y=pos.y+7, z=pos.z}).name == "air" and + minetest.get_node({x=pos.x, y=pos.y+8, z=pos.z}).name == "air" + then -- 'then' let the sapling grow into a tree. ~ LazyJ + + snow.make_pine(pos,false,true) + minetest.log("action", "A pine sapling grows into a Christmas tree at "..minetest.pos_to_string(pos)) -- ~ LazyJ + else -- 'Else', if there isn't air in each of the 8 nodes above the sapling, + -- then don't anything; including not allowing the sapling to grow. + -- ~ LazyJ, 2014_04_10 + end + end +}) diff --git a/mods/snow/src/aliases.lua b/mods/snow/src/aliases.lua new file mode 100644 index 00000000..3cee7b12 --- /dev/null +++ b/mods/snow/src/aliases.lua @@ -0,0 +1,104 @@ +-- Some aliases for compatibility switches and some to make "/give" commands +-- a little easier + +minetest.register_alias("snow:snow", "default:snow") +minetest.register_alias("default_snow", "default:snow") +minetest.register_alias("snow:snowball", "default:snow") +minetest.register_alias("snowball", "default:snow") +minetest.register_alias("snowballs", "default:snow") +minetest.register_alias("snow_ball", "default:snow") +minetest.register_alias("snow:ice", "default:ice") +minetest.register_alias("ice", "default:ice") +minetest.register_alias("default_ice", "default:ice") +minetest.register_alias("snow:dirt_with_snow", "default:dirt_with_snow") +minetest.register_alias("dirtwithsnow", "default:dirt_with_snow") +minetest.register_alias("snowdirt", "default:dirt_with_snow") +minetest.register_alias("snowydirt", "default:dirt_with_snow") +minetest.register_alias("snow:snow_block", "default:snowblock") +minetest.register_alias("default:snow_block", "default:snowblock") +minetest.register_alias("snowblocks", "default:snowblock") +minetest.register_alias("snowbrick", "snow:snow_brick") +minetest.register_alias("bricksnow", "snow:snow_brick") +minetest.register_alias("snowbricks", "snow:snow_brick") +minetest.register_alias("snowybricks", "snow:snow_brick") +minetest.register_alias("icysnow", "snow:snow_cobble") +minetest.register_alias("snowcobble", "snow:snow_cobble") +minetest.register_alias("snowycobble", "snow:snow_cobble") +minetest.register_alias("cobblesnow", "snow:snow_cobble") + + +-- To clean up my first stairsplus attempt. +-- Stair +minetest.register_alias(":default:stair_snowblock", "moreblocks:stair_snowblock") +minetest.register_alias(":default:stair_snowblock_half", "moreblocks:stair_snowblock_half") +minetest.register_alias(":default:stair_snowblock_right_half", "moreblocks:stair_snowblock_right_half") +minetest.register_alias(":default:stair_snowblock_inner", "moreblocks:stair_snowblock_inner") +minetest.register_alias(":default:stair_snowblock_outer", "moreblocks:stair_snowblock_outer") +minetest.register_alias(":default:stair_snowblock_alt", "moreblocks:stair_snowblock_alt") +minetest.register_alias(":default:stair_snowblock_alt_1", "moreblocks:stair_snowblock_alt_1") +minetest.register_alias(":default:stair_snowblock_alt_2", "moreblocks:stair_snowblock_2") +minetest.register_alias(":default:stair_snowblock_alt_4", "moreblocks:stair_snowblock_alt_4") + +minetest.register_alias(":default:stair_ice", "moreblocks:stair_ice") +minetest.register_alias(":default:stair_ice_half", "moreblocks:stair_ice_half") +minetest.register_alias(":default:stair_ice_right_half", "moreblocks:stair_ice_right_half") +minetest.register_alias(":default:stair_ice_inner", "moreblocks:stair_ice_inner") +minetest.register_alias(":default:stair_ice_outer", "moreblocks:stair_ice_outer") +minetest.register_alias(":default:stair_ice_alt", "moreblocks:stair_ice_alt") +minetest.register_alias(":default:stair_ice_alt_1", "moreblocks:stair_ice_alt_1") +minetest.register_alias(":default:stair_ice_alt_2", "moreblocks:stair_ice_2") +minetest.register_alias(":default:stair_ice_alt_4", "moreblocks:stair_ice_alt_4") + + +-- Slab +minetest.register_alias(":default:slab_snowblock", "moreblocks:slab_snowblock") +minetest.register_alias(":default:slab_snowblock_quarter", "moreblocks:slab_snowblock_quarter") +minetest.register_alias(":default:slab_snowblock_three_quarter", "moreblocks:slab_snowblock_three_quarter") +minetest.register_alias(":default:slab_snowblock_1", "moreblocks:slab_snowblock_1") +minetest.register_alias(":default:slab_snowblock_2", "moreblocks:slab_snowblock_2") +minetest.register_alias(":default:slab_snowblock_14", "moreblocks:slab_snowblock_14") +minetest.register_alias(":default:slab_snowblock_15", "moreblocks:slab_snowblock_15") + +minetest.register_alias(":default:slab_ice", "moreblocks:slab_ice") +minetest.register_alias(":default:slab_ice_quarter", "moreblocks:slab_ice_quarter") +minetest.register_alias(":default:slab_ice_three_quarter", "moreblocks:slab_ice_three_quarter") +minetest.register_alias(":default:slab_ice_1", "moreblocks:slab_ice_1") +minetest.register_alias(":default:slab_ice_2", "moreblocks:slab_ice_2") +minetest.register_alias(":default:slab_ice_14", "moreblocks:slab_ice_14") +minetest.register_alias(":default:slab_ice_15", "moreblocks:slab_ice_15") + + +-- Panel +minetest.register_alias(":default:panel_snowblock", "moreblocks:panel_snowblock") +minetest.register_alias(":default:panel_snowblock_1", "moreblocks:panel_snowblock_1") +minetest.register_alias(":default:panel_snowblock_2", "moreblocks:panel_snowblock_2") +minetest.register_alias(":default:panel_snowblock_4", "moreblocks:panel_snowblock_4") +minetest.register_alias(":default:panel_snowblock_12", "moreblocks:panel_snowblock_12") +minetest.register_alias(":default:panel_snowblock_14", "moreblocks:panel_snowblock_14") +minetest.register_alias(":default:panel_snowblock_15", "moreblocks:panel_snowblock_15") + +minetest.register_alias(":default:panel_ice", "moreblocks:panel_ice") +minetest.register_alias(":default:panel_ice_1", "moreblocks:panel_ice_1") +minetest.register_alias(":default:panel_ice_2", "moreblocks:panel_ice_2") +minetest.register_alias(":default:panel_ice_4", "moreblocks:panel_ice_4") +minetest.register_alias(":default:panel_ice_12", "moreblocks:panel_ice_12") +minetest.register_alias(":default:panel_ice_14", "moreblocks:panel_ice_14") +minetest.register_alias(":default:panel_ice_15", "moreblocks:panel_ice_15") + + +-- Micro +minetest.register_alias(":default:micro_snowblock", "moreblocks:micro_snowblock") +minetest.register_alias(":default:micro_snowblock_1", "moreblocks:micro_snowblock_1") +minetest.register_alias(":default:micro_snowblock_2", "moreblocks:micro_snowblock_2") +minetest.register_alias(":default:micro_snowblock_4", "moreblocks:micro_snowblock_4") +minetest.register_alias(":default:micro_snowblock_12", "moreblocks:micro_snowblock_12") +minetest.register_alias(":default:micro_snowblock_14", "moreblocks:micro_snowblock_14") +minetest.register_alias(":default:micro_snowblock_15", "moreblocks:micro_snowblock_15") + +minetest.register_alias(":default:micro_ice", "moreblocks:micro_ice") +minetest.register_alias(":default:micro_ice_1", "moreblocks:micro_ice_1") +minetest.register_alias(":default:micro_ice_2", "moreblocks:micro_ice_2") +minetest.register_alias(":default:micro_ice_4", "moreblocks:micro_ice_4") +minetest.register_alias(":default:micro_ice_12", "moreblocks:micro_ice_12") +minetest.register_alias(":default:micro_ice_14", "moreblocks:micro_ice_14") +minetest.register_alias(":default:micro_ice_15", "moreblocks:micro_ice_15") diff --git a/mods/snow/src/basic_stairs_slabs.lua b/mods/snow/src/basic_stairs_slabs.lua new file mode 100644 index 00000000..d62f4488 --- /dev/null +++ b/mods/snow/src/basic_stairs_slabs.lua @@ -0,0 +1,326 @@ +-- Based on +-- Minetest 0.4 mod: stairs +-- See README.txt for licensing and other information. + + +-- ADD CHECK FOR MOREBLOCKS/SKIP IF NOT FOUND CODE STUFF HERE + + + + + +snow_stairs = {} -- This is a little trick. Without it Minetest will complain + -- "attempt to index global 'snow' (a nil value)" and + -- refuse to load. So a value without definition "={}"is assigned to snow. + +-- Node will be called snow:stair_ +function snow_stairs.register_stair(subname, recipeitem, groups, images, description, sounds) + minetest.register_node("snow:stair_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = groups, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_snow_footstep", gain=0.25}, + dig = {name="default_dig_crumbly", gain=0.4}, + dug = {name="default_snow_footstep", gain=0.75}, + place = {name="default_place_node", gain=1.0} + }), + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + {-0.5, 0, 0, 0.5, 0.5, 0.5}, + }, + }, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + local p0 = pointed_thing.under + local p1 = pointed_thing.above + local param2 = 0 + + local placer_pos = placer:getpos() + if placer_pos then + local dir = { + x = p1.x - placer_pos.x, + y = p1.y - placer_pos.y, + z = p1.z - placer_pos.z + } + param2 = minetest.dir_to_facedir(dir) + end + + if p0.y-1 == p1.y then + param2 = param2 + 20 + if param2 == 21 then + param2 = 23 + elseif param2 == 23 then + param2 = 21 + end + end + + return minetest.item_place(itemstack, placer, pointed_thing, param2) + end, + + on_construct = function(pos) + pos.y = pos.y - 1 + if minetest.get_node(pos).name == "default:dirt_with_grass" + -- Thinking in terms of layers, dirt_with_snow could also double as + -- dirt_with_frost which adds subtlety to the winterscape. ~ LazyJ, 2014_04_04 + or minetest.get_node(pos).name == "default:dirt" then + minetest.set_node(pos, {name="default:dirt_with_snow"}) + end + end + }) +--[[ + -- for replace ABM + minetest.register_node("snow:stair_" .. subname.."upside_down", { + replace_name = "snow:stair_" .. subname, + groups = {slabs_replace=1}, + }) +--]] + minetest.register_craft({ + output = 'snow:stair_' .. subname .. ' 6', + recipe = { + {recipeitem, "", ""}, + {recipeitem, recipeitem, ""}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + + -- Flipped recipe + minetest.register_craft({ + output = 'snow:stair_' .. subname .. ' 6', + recipe = { + {"", "", recipeitem}, + {"", recipeitem, recipeitem}, + {recipeitem, recipeitem, recipeitem}, + }, + }) +end + +-- Node will be called snow:slab_ +function snow_stairs.register_slab(subname, recipeitem, groups, images, description, sounds) + minetest.register_node("snow:slab_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = groups, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_snow_footstep", gain=0.25}, + dig = {name="default_dig_crumbly", gain=0.4}, + dug = {name="default_snow_footstep", gain=0.75}, + place = {name="default_place_node", gain=1.0} + }), + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + }, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + -- If it's being placed on an another similar one, replace it with + -- a full block + local slabpos = nil + local slabnode = nil + local p0 = pointed_thing.under + local p1 = pointed_thing.above + local n0 = minetest.get_node(p0) + local n1 = minetest.get_node(p1) + local param2 = 0 + + local n0_is_upside_down = (n0.name == "snow:slab_" .. subname and + n0.param2 >= 20) + + if n0.name == "snow:slab_" .. subname and not n0_is_upside_down and p0.y+1 == p1.y then + slabpos = p0 + slabnode = n0 + elseif n1.name == "snow:slab_" .. subname then + slabpos = p1 + slabnode = n1 + end + if slabpos then + -- Remove the slab at slabpos + minetest.remove_node(slabpos) + -- Make a fake stack of a single item and try to place it + local fakestack = ItemStack(recipeitem) + fakestack:set_count(itemstack:get_count()) + + pointed_thing.above = slabpos + local success + fakestack, success = minetest.item_place(fakestack, placer, pointed_thing) + -- If the item was taken from the fake stack, decrement original + if success then + itemstack:set_count(fakestack:get_count()) + -- Else put old node back + else + minetest.set_node(slabpos, slabnode) + end + return itemstack + end + + -- Upside down slabs + if p0.y-1 == p1.y then + -- Turn into full block if pointing at a existing slab + if n0_is_upside_down then + -- Remove the slab at the position of the slab + minetest.remove_node(p0) + -- Make a fake stack of a single item and try to place it + local fakestack = ItemStack(recipeitem) + fakestack:set_count(itemstack:get_count()) + + pointed_thing.above = p0 + local success + fakestack, success = minetest.item_place(fakestack, placer, pointed_thing) + -- If the item was taken from the fake stack, decrement original + if success then + itemstack:set_count(fakestack:get_count()) + -- Else put old node back + else + minetest.set_node(p0, n0) + end + return itemstack + end + + -- Place upside down slab + param2 = 20 + end + + -- If pointing at the side of a upside down slab + if n0_is_upside_down and p0.y+1 ~= p1.y then + param2 = 20 + end + + return minetest.item_place(itemstack, placer, pointed_thing, param2) + end, + + on_construct = function(pos) + pos.y = pos.y - 1 + if minetest.get_node(pos).name == "default:dirt_with_grass" + -- Thinking in terms of layers, dirt_with_snow could also double as + -- dirt_with_frost which adds subtlety to the winterscape. ~ LazyJ, 2014_04_04 + or minetest.get_node(pos).name == "default:dirt" then + minetest.set_node(pos, {name="default:dirt_with_snow"}) + end + end + + }) +--[[ + -- for replace ABM + minetest.register_node("snow:slab_" .. subname.."upside_down", { + replace_name = "snow:slab_"..subname, + groups = {slabs_replace=1}, + }) +--]] + + minetest.register_craft({ + output = 'snow:slab_' .. subname .. ' 6', + recipe = { + {recipeitem, recipeitem, recipeitem}, + }, + }) + + + + +end +--[[ +-- Replace old "upside_down" nodes with new param2 versions +minetest.register_abm({ + nodenames = {"group:slabs_replace"}, + interval = 1, + chance = 1, + action = function(pos, node) + node.name = minetest.registered_nodes[node.name].replace_name + node.param2 = node.param2 + 20 + if node.param2 == 21 then + node.param2 = 23 + elseif node.param2 == 23 then + node.param2 = 21 + end + minetest.set_node(pos, node) + end, +}) +--]] + + + +-- Snow stairs and slabs require extra definitions because of their extra +-- features (freezing, melting, and how they change dirt and dirt_with_grass). ~ LazyJ + +-- Nodes will be called snow:{stair,slab}_ +function snow_stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab, freezemelt, liquidtype, paramtype, sunlight_propagates) + snow_stairs.register_stair(subname, recipeitem, groups, images, desc_stair, freezemelt, liquidtype, paramtype, sunlight_propagates) + snow_stairs.register_slab(subname, recipeitem, groups, images, desc_slab, freezemelt, liquidtype, paramtype, sunlight_propagates) +end + + +list_of_snow_stuff = { + --{"row[1] = first item in row", + -- "row[2] = second item in row", + -- "row[3] = third item in row", and so on, and so on...}, ~ LazyJ + {"ice", "default:ice", "default_ice.png", "Ice Stairs", "Ice Slabs"}, + {"snowblock", "default:snowblock", "default_snow.png", "Snowblock Stairs", "Snowblock Slabs"}, + {"snow_cobble", "snow:snow_cobble", "snow_snow_cobble.png", "Snow Cobble Stairs", "Snow Cobble Slabs"}, + {"snow_brick", "snow:snow_brick", "snow_snow_brick.png", "Snow Brick Stair", "Snow Brick Slab"}, +} + +for _, row in ipairs(list_of_snow_stuff) do + local snow_subname = row[1] + local snow_recipeitem = row[2] + local snow_images = row[3] + local snow_desc_stair = row[4] + local snow_desc_slab = row[5] + + + + + snow_stairs.register_stair_and_slab(snow_subname, snow_recipeitem, + {cracky=2, crumbly=2, choppy=2, oddly_breakable_by_hand=2, melts=1, icemaker=1}, + {snow_images}, + snow_desc_stair, + snow_desc_slab, + "default:water_source", + "none", + "light", + true + ) + +end -- End the "list of snow stuff" part of the above section. ~ LazyJ + + +-- Snow stairs and slabs should be easier to break than the more dense and +-- manufactured, other snow-type nodes in the list above. ~ lazyJ +minetest.override_item("snow:stair_snowblock", { + groups = {cracky=3, crumbly=3, choppy=3, oddly_breakable_by_hand=3, melts=2, icemaker=1}, +}) + +minetest.override_item("snow:slab_snowblock", { + groups = {cracky=3, crumbly=3, choppy=3, oddly_breakable_by_hand=3, melts=2, icemaker=1}, +}) + + + +-- Everything above is made of snow and uses snow sounds, ice, however, should sound more like glass +-- and be harder to dig. ~ LazyJ +minetest.override_item("snow:stair_ice", { + groups = {cracky=1, crumbly=1, choppy=1, oddly_breakable_by_hand=1, melts=2, icemaker=1}, + use_texture_alpha = true, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.override_item("snow:slab_ice", { + groups = {cracky=1, crumbly=1, choppy=1, oddly_breakable_by_hand=1, melts=2, icemaker=1}, + use_texture_alpha = true, + sounds = default.node_sound_glass_defaults(), +}) diff --git a/mods/snow/src/crafting.lua b/mods/snow/src/crafting.lua new file mode 100644 index 00000000..657ce669 --- /dev/null +++ b/mods/snow/src/crafting.lua @@ -0,0 +1,234 @@ +--[[ + +Crafting Sections (in order, top to bottom): + 1. Fuel + 2. Cooking + 3. Crafting and Recycling + +The crafting recipe for the sled is in the sled.lua file. + +~ LazyJ + +--]] + +-- 1. Fuel + +minetest.register_craft({ + type = "fuel", + recipe = "snow:needles", + burntime = 1, +}) + + + +minetest.register_craft({ + type = "fuel", + recipe = "snow:sapling_pine", + burntime = 10, +}) + + + +minetest.register_craft({ + type = "fuel", + recipe = "snow:needles_decorated", + burntime = 1, +}) + + + +minetest.register_craft({ + type = "fuel", + recipe = "snow:xmas_tree", + burntime = 10, +}) + + + +-- 2. Cooking + +--[[ +"Cooks_into_ice" is a custom group I assigned to full-sized, snow-stuff nodes +(snow bricks, snow cobble, snow blocks, etc.) so I wouldn't have to write an individual cooking +recipe for each one. + +~ LazyJ +--]] + +minetest.register_craft({ + type = "cooking", + cooktime = 12, + output = "default:ice", + recipe = "group:cooks_into_ice", +}) + + + + + + +-- 3. Crafting and Recycling + +-- Let's make moss craftable so players can more easily create mossycobble and +-- gives another useful purpose to pine needles. ~ LazyJ + +minetest.register_craft({ + output = 'snow:moss', + recipe = { + {'snow:needles', 'snow:needles'}, + {'snow:needles', 'snow:needles'}, + }, +}) + + +--[[ +Most snow biomes are too small to provide enough snow as a building material and +still have enough landscape snow to create the wintry surroundings of a +snow village or castle. So I added this snowblock crafting recipe as a way for +players to increase their snow supply in small increments. I considered making +the output 9 but that would make it all too quick and easy (especially for griefers) to create lots +of snowblocks (and then use them to water-grief by melting the snow blocks). + +~ LazyJ + +--]] + +minetest.register_craft({ + type = "shapeless", + output = 'default:snowblock 2', + recipe = { + 'snow:snow_cobble', + 'snow:snow_cobble' + } +}) + + + +--[[minetest.register_craft({ + type = "shapeless", + output = 'default:snowblock 3', + recipe = { + 'default:snowblock', + 'default:snowblock' + } +})]] + + + +minetest.register_craft({ + output = 'snow:snow_brick', + recipe = { + {'default:snowblock', 'default:snowblock'}, + {'default:snowblock', 'default:snowblock'} + } +}) + +--Craft icy snow. +minetest.register_craft({ + type = "shapeless", + output = 'snow:snow_cobble 6', + recipe = { + 'default:snow', + 'default:snow', + 'default:snow', + 'default:snow', + 'default:snow', + 'default:snow', + 'default:ice', + 'default:ice', + 'default:ice' + } +}) + + +minetest.register_craft({ + type = "shapeless", + output = 'snow:snow_cobble 4', + recipe = { + 'default:snow', + 'default:snow', + 'default:snow', + 'default:snow', + 'default:ice', + 'default:ice' + } +}) + +minetest.register_craft({ + type = "shapeless", + output = 'snow:snow_cobble 2', + recipe = { + 'default:snow', + 'default:snow', + 'default:ice' + } +}) + +minetest.register_craft({ + type = "shapeless", + output = 'snow:snow_cobble', + recipe = { + 'default:snow', + 'default:ice' + } +}) + + +-- Why not recycle snow_bricks back into snowblocks? ~ LazyJ +minetest.register_craft({ + output = 'default:snowblock 4', + recipe = { + {'snow:snow_brick'} + } +}) + + + +-- Recycle basic, half-block, slabs back into full blocks + +-- A little "list" magic here. Instead of writing four crafts I only have to write two. ~ LazyJ +local recycle_default_slabs = { + "ice", + "snowblock", +} + +for _, name in pairs(recycle_default_slabs) do + local subname_default = name + + -- This craft is for default snowblocks and default ice. + -- 1 crafting recipe handles 2, default blocks. ~ LazyJ + minetest.register_craft({ + type = "shapeless", + output = "default:"..subname_default, + recipe = { + "snow:slab_"..subname_default, + "snow:slab_"..subname_default, + } + }) +end + + + +-- Similar list magic here too. I couldn't successfully combine these in the first list +-- because we are dealing with slabs/blocks from two different mods, the "Snow" mod and +-- minetest_game's "Default" mod. ~ LazyJ + +local recycle_snowmod_slabs = { + "snow_brick", + "snow_cobble", +} + +for _, name in pairs(recycle_snowmod_slabs) do + local subname_snowmod = name + + -- This craft is for the Snow mod's full-sized blocks. + -- 1 crafting recipe handles 2, or more, Snow mod blocks. ~ LazyJ + minetest.register_craft({ + type = "shapeless", + output = "snow:"..subname_snowmod, + recipe = { + "snow:slab_"..subname_snowmod, + "snow:slab_"..subname_snowmod, + } + }) +end diff --git a/mods/snow/src/falling_snow.lua b/mods/snow/src/falling_snow.lua new file mode 100644 index 00000000..5192b3b9 --- /dev/null +++ b/mods/snow/src/falling_snow.lua @@ -0,0 +1,201 @@ +--[[ +--================= +--====================================== +LazyJ's Fork of Splizard's "Snow" Mod +by LazyJ +version: Umpteen and 7/5ths something or another. +2014_04_12 +--====================================== +--================= + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +THE LIST OF CHANGES I'VE MADE +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +* Falling snow would destroy nodes it deposited snow on. I figured out that if +I switched the 'snow.place' with 'minetest.place_node' and increased the +y position by 2, then the nodes were nolonger destroyed and the snow +would start to pile up. + + + +~~~~~~ +TODO +~~~~~~ + +* Add code to prevent snowfall from depositing snow on or +near torches and lava. + +* Add code to prevent snowfall from depositing snow on +'walkable = false' defined nodes. + +--]] + + + +--============================================================= +-- CODE STUFF +--============================================================= + + +if snow.enable_snowfall then + + local weather_legacy + + local read_weather_legacy = function () + local file = io.open(minetest.get_worldpath().."/weather_v6", "r") + if not file then return end + local readweather = file:read() + file:close() + return readweather + end + + --Weather for legacy versions of minetest. + local save_weather_legacy = function () + local file = io.open(minetest.get_worldpath().."/weather_v6", "w+") + file:write(weather_legacy) + file:close() + end + + weather_legacy = read_weather_legacy() or "" + + minetest.register_globalstep(function(dtime) + if weather_legacy == "snow" then + if math.random(1, 10000) == 1 then + weather_legacy = "none" + save_weather_legacy() + end + else + if math.random(1, 50000) == 2 then + weather_legacy = "snow" + save_weather_legacy() + end + end + end) + + --Get snow at position. + local get_snow = function(pos) + --Legacy support. + if weather_legacy == "snow" then + local perlin1 = minetest.env:get_perlin(112,3, 0.5, 150) + if perlin1:get2d( {x=pos.x, y=pos.z} ) > 0.53 then + return true + else + return false + end + else + return false + end + end + + local addvectors = vector and vector.add + + --Returns a random position between minp and maxp. + local randpos = function (minp, maxp) + local x,y,z + if minp.x > maxp.x then + x = math.random(maxp.x,minp.x) else x = math.random(minp.x,maxp.x) end + y = minp.y + if minp.z > maxp.z then + z = math.random(maxp.z,minp.z) else z = math.random(minp.z,maxp.z) end + return {x=x,y=y,z=z} + end + + local snow_fall=function (pos, player, animate) + local ground_y = nil + for y=pos.y+10,pos.y+20,1 do + local n = minetest.env:get_node({x=pos.x,y=y,z=pos.z}).name + if n ~= "air" and n ~= "ignore" then + return + end + end + for y=pos.y+10,pos.y-15,-1 do + local n = minetest.env:get_node({x=pos.x,y=y,z=pos.z}).name + if n ~= "air" and n ~= "ignore" then + ground_y = y + break + end + end + if not ground_y then return end + pos = {x=pos.x, y=ground_y, z=pos.z} + local spos = {x=pos.x, y=ground_y+10, z=pos.z} + + + if get_snow(pos) then + if animate then + local minp = addvectors(spos, {x=-9, y=3, z=-9}) + local maxp = addvectors(spos, {x= 9, y=5, z= 9}) + local vel = {x=0, y= -1, z=-1} + local acc = {x=0, y= 0, z=0} + minetest.add_particlespawner(3, 0.5, + minp, maxp, + vel, vel, + acc, acc, + 5, 5, + 50, 50, + false, "weather_snow.png", player:get_player_name()) + end + snow.place(pos, true) + --minetest.place_node({x=pos.x, y=pos.y+2, z=pos.z}, {name="default:snow"}) -- LazyJ + end + end + + -- Snow + minetest.register_globalstep(function(dtime) + for _, player in ipairs(minetest.get_connected_players()) do + local ppos = player:getpos() + + local sminp = addvectors(ppos, {x=-20, y=0, z=-20}) + local smaxp = addvectors(ppos, {x= 20, y=0, z= 20}) + + -- Make sure player is not in a cave/house... + if get_snow(ppos) and minetest.env:get_node_light(ppos, 0.5) == 15 then + + local minp = addvectors(ppos, {x=-9, y=3, z=-9}) + local maxp = addvectors(ppos, {x= 9, y=5, z= 9}) + + local minp_deep = addvectors(ppos, {x=-5, y=3.2, z=-5}) + local maxp_deep = addvectors(ppos, {x= 5, y=1.6, z= 5}) + + local vel = {x=0, y= -1, z=-1} + local acc = {x=0, y= 0, z=0} + + if not snow.lighter_snowfall then + minetest.add_particlespawner(5, 0.5, + minp, maxp, + vel, vel, + acc, acc, + 5, 5, + 25, 25, + false, "weather_snow.png", player:get_player_name()) + + minetest.add_particlespawner(4, 0.5, + minp_deep, maxp_deep, + vel, vel, + acc, acc, + 4, 4, + 25, 25, + false, "weather_snow.png", player:get_player_name()) + + if math.random(1,5) == 4 then + snow_fall(randpos(sminp, smaxp), player) + end + else + if math.random(1,5) == 4 then + snow_fall(randpos(sminp, smaxp), player, true) + end + end + + + else + + if math.random(1,5) == 4 then + snow_fall(randpos(sminp, smaxp), player, true) + end + end + end + end) + +end diff --git a/mods/snow/src/mapgen.lua b/mods/snow/src/mapgen.lua new file mode 100644 index 00000000..1b42c8f1 --- /dev/null +++ b/mods/snow/src/mapgen.lua @@ -0,0 +1,180 @@ +--[[ +If you want to run PlantLife and mods that depend on it, i.e. MoreTrees, Disable the mapgen by +commenting-out the lines starting with "local mgname = " through "end" (I left a note were to start +and stop) Disabling "Snow's" mapgen allows MoreTrees and PlantLife to do their thing until the +issue is figured out. However, the pine and xmas tree code is still needed for when those +saplings grow into trees. --]] +--The *starting* comment looks like this: --[[ +--The *closing* comment looks like this: --]] + +-- ~ LazyJ, 2014_05_13 + + +-- Part 1: To disable the mapgen, add the *starting* comment under this line. + + +local mgname = "" + +--Identify the mapgen. +minetest.register_on_mapgen_init(function(MapgenParams) + if MapgenParams.mgname then + mgname = MapgenParams.mgname + else + io.write("[MOD] Snow Biomes: WARNING! mapgen could not be identifyed!\n") + end + if mgname == "v7" then + --Load mapgen_v7 compatibility. + dofile(minetest.get_modpath("snow").."/src/mapgen_v7.lua") + else + --Load mapgen_v6 compatibility. + dofile(minetest.get_modpath("snow").."/src/mapgen_v6.lua") + end +end) + +-- To complete the commenting-out add the *closing* comment under this line. + + + + +local pine_tree = { + axiom="TABff", + rules_a="[&T+f+ff+ff+ff+f]GA", + rules_b="[&T+f+Gf+Gf+Gf]GB", + trunk="default:tree", + leaves="snow:needles", + angle=90, + iterations=1, + random_level=0, + trunk_type="single", + thin_branches=true, +} + + + +local xmas_tree = { + axiom="TABff", + rules_a="[&T+f+ff+ff+ff+f]GA", + rules_b="[&T+f+Gf+Gf+Gf]GB", + trunk="default:tree", + leaves="snow:needles_decorated", + angle=90, + iterations=1, + random_level=0, + trunk_type="single", + thin_branches=true, +} + + + +--Makes pine tree +function snow.make_pine(pos,snow,xmas) + local env = minetest.env + local perlin1 = env:get_perlin(112,3, 0.5, 150) + local try_node = function(pos, node) + local n = env:get_node(pos).name + if n == "air" or n == "ignore" then + env:add_node(pos,node) + end + end + --Clear ground. + for x=-1,1 do + for z=-1,1 do + if env:get_node({x=pos.x+x,y=pos.y,z=pos.z+z}).name == "default:snow" then + env:remove_node({x=pos.x+x,y=pos.y,z=pos.z+z}) + end + if env:get_node({x=pos.x+x,y=pos.y,z=pos.z+z}).name == "default:snowblock" then + env:remove_node({x=pos.x+x,y=pos.y,z=pos.z+z}) + end + end + end + if xmas then + env:remove_node(pos) + minetest.env:spawn_tree(pos, xmas_tree) + else + minetest.env:spawn_tree(pos, pine_tree) + end + if snow then + local x,z = pos.x,pos.z + try_node({x=x+1,y=pos.y+3,z=z+1},{name="default:snow"}) + try_node({x=x-1,y=pos.y+3,z=z-1},{name="default:snow"}) + try_node({x=x-1,y=pos.y+3,z=z+1},{name="default:snow"}) + try_node({x=x+1,y=pos.y+3,z=z-1},{name="default:snow"}) + + try_node({x=x+1,y=pos.y+5,z=z},{name="default:snow"}) + try_node({x=x-1,y=pos.y+5,z=z},{name="default:snow"}) + try_node({x=x,y=pos.y+5,z=z+1},{name="default:snow"}) + try_node({x=x,y=pos.y+5,z=z-1},{name="default:snow"}) + end + if xmas then + try_node({x=pos.x,y=pos.y+7,z=pos.z},{name="snow:star_lit"}) -- Added lit star. ~ LazyJ + elseif snow and perlin1:get2d({x=pos.x,y=pos.z}) > 0.53 then + try_node({x=pos.x,y=pos.y+7,z=pos.z},{name="default:snow"}) + end +end + + + +--Makes pine tree +function snow.voxelmanip_pine(pos,a,data) + local c_snow = minetest.get_content_id("default:snow") + local c_pine_needles = minetest.get_content_id("snow:needles") + local c_tree = minetest.get_content_id("default:tree") + local c_air = minetest.get_content_id("air") + + local perlin1 = minetest.get_perlin(112,3, 0.5, 150) + --Clear ground. + for x=-1,1 do + for z=-1,1 do + local node = a:index(pos.x+x,pos.y,pos.z+z) + if data[node] == c_snow then + data[node] = c_air + end + end + end + --Make tree. + for i=0, 4 do + if i==1 or i==2 then + for x=-1,1 do + for z=-1,1 do + local x = pos.x + x + local z = pos.z + z + local node = a:index(x,pos.y+i,z) + data[node] = c_pine_needles + if snow and x ~= 0 and z ~= 0 and perlin1:get2d({x=x,y=z}) > 0.53 then + local abovenode = a:index(x,pos.y+i+1,z) + data[abovenode] = c_snow + end + end + end + end + if i==3 or i==4 then + local x = pos.x + local y = pos.y+i + local z = pos.z + data[a:index(x+1,y,z)] = c_pine_needles + data[a:index(x-1,y,z)] = c_pine_needles + data[a:index(x,y,z+1)] = c_pine_needles + data[a:index(x,y,z-1)] = c_pine_needles + if snow then + if perlin1:get2d({x=x+1,y=z}) > 0.53 then + data[a:index(x+1,y+1,z)] = c_snow + end + if perlin1:get2d({x=x+1,y=z}) > 0.53 then + data[a:index(x-1,y+1,z)] = c_snow + end + if perlin1:get2d({x=x,y=z+1}) > 0.53 then + data[a:index(x,y+1,z+1)] = c_snow + end + if perlin1:get2d({x=x,y=z-1}) > 0.53 then + data[a:index(x,y+1,z-1)] = c_snow + end + end + end + data[a:index(pos.x,pos.y+i,pos.z)] = c_tree + end + data[a:index(pos.x,pos.y+5,pos.z)] = c_pine_needles + data[a:index(pos.x,pos.y+6,pos.z)] = c_pine_needles + if snow and perlin1:get2d({x=pos.x,y=pos.z}) > 0.53 then + data[a:index(pos.x,pos.y+7,pos.z)] = c_snow + end +end diff --git a/mods/snow/src/mapgen_v6.lua b/mods/snow/src/mapgen_v6.lua new file mode 100644 index 00000000..414fddc2 --- /dev/null +++ b/mods/snow/src/mapgen_v6.lua @@ -0,0 +1,310 @@ +-- 2D noise for coldness + +local np_cold = { + offset = 0, + scale = 1, + spread = {x=150, y=150, z=150}, + seed = 112, + octaves = 3, + persist = 0.5 +} + +-- 2D noise for icetype + +local np_ice = { + offset = 0, + scale = 1, + spread = {x=80, y=80, z=80}, + seed = 322345, + octaves = 3, + persist = 0.5 +} + +-- Debugging function + +local biome_to_string = function(num,num2) + local biome, biome2 + if num == 1 then + biome = "snowy" + elseif num == 2 then + biome = "plain" + elseif num == 3 then + biome = "alpine" + elseif num == 4 or num == 5 then + biome = "normal" + else + biome = "unknown "..num + end + if num2 == 1 then + biome2 = "cool" + elseif num2 == 2 then + biome2 = "icebergs" + elseif num2 == 3 then + biome2 = "icesheet" + elseif num2 == 4 then + biome2 = "icecave" + elseif num2 == 5 then + biome2 = "icehole" + else + biome2 = "unknown "..num + end + return biome, biome2 +end + +-- On generated function + +minetest.register_on_generated(function(minp, maxp, seed) + local t1 = os.clock() + + local x0 = minp.x + local z0 = minp.z + local x1 = maxp.x + local z1 = maxp.z + + local debug = snow.debug + local min_height = snow.min_height + local spawn_pine = snow.voxelmanip_pine + local smooth = snow.smooth_biomes + local legacy = snow.legacy + + local c_dirt_with_grass = minetest.get_content_id("default:dirt_with_grass") + local c_dirt = minetest.get_content_id("default:dirt") + local c_tree = minetest.get_content_id("default:tree") + local c_apple = minetest.get_content_id("default:apple") + local c_snow = minetest.get_content_id("default:snow") + local c_snow_block = minetest.get_content_id("default:snowblock") + local c_dirt_with_snow = minetest.get_content_id("default:dirt_with_snow") + local c_air = minetest.get_content_id("air") + local c_ignore = minetest.get_content_id("ignore") + local c_stone = minetest.get_content_id("default:stone") + local c_dry_shrub = minetest.get_content_id("default:dry_shrub") + local c_leaves = minetest.get_content_id("default:leaves") + local c_jungleleaves = minetest.get_content_id("default:jungleleaves") + local c_junglegrass = minetest.get_content_id("default:junglegrass") + local c_ice = minetest.get_content_id("default:ice") + local c_water = minetest.get_content_id("default:water_source") + local c_papyrus = minetest.get_content_id("default:papyrus") + local c_sand = minetest.get_content_id("default:sand") + + local vm = minetest.get_voxel_manip() + local emin, emax = vm:read_from_map(minp, maxp) + local area = VoxelArea:new({MinEdge=emin, MaxEdge=emax}) + local data = vm:get_data() + + local sidelen = x1 - x0 + 1 + local chulens = {x=sidelen, y=sidelen, z=sidelen} + local minpos = {x=x0, y=z0} + local nvals_cold = minetest.get_perlin_map(np_cold, chulens):get2dMap_flat({x=x0, y=z0}) + local nvals_ice = minetest.get_perlin_map(np_ice, chulens):get2dMap_flat({x=x0, y=z0}) + + -- Choose biomes + local pr = PseudoRandom(seed+57) + local biome + -- Land biomes + biome = pr:next(1, 5) + local snowy = biome == 1 -- spawns alot of snow + local plain = biome == 2 -- spawns not much + local alpine = biome == 3 -- rocky terrain + -- Water biomes + biome2 = pr:next(1, 5) + local cool = biome == 1 -- only spawns ice on edge of water + local icebergs = biome == 2 + local icesheet = biome == 3 + local icecave = biome == 4 + local icehole = biome == 5 -- icesheet with holes + -- Misc biome settings + local icy = pr:next(1, 2) == 2 -- if enabled spawns ice in sand instead of snow blocks + local mossy = pr:next(1,2) == 1 -- spawns moss in snow + local shrubs = pr:next(1,2) == 1 -- spawns dry shrubs in snow + local pines = pr:next(1,2) == 1 -- spawns pines + -- Reseed random + pr = PseudoRandom(seed+68) + + -- Loop through columns in chunk + local write_to_map = false + local ni = 1 + for z = z0, z1 do + for x = x0, x1 do + local in_biome = false + local test = nvals_cold[ni] + if smooth and (not snowy) + and (test > 0.73 or (test > 0.43 and pr:next(0,29) > (0.73 - test) * 100 )) then + in_biome = true + elseif (not smooth or snowy) and test > 0.53 then + in_biome = true + end + + if not in_biome then + if alpine == true and test > 0.43 then + local ground_y = nil + for y = maxp.y, minp.y, -1 do + local nodid = data[area:index(x, y, z)] + if nodid ~= c_air and nodid ~= c_ignore then + ground_y = y + break + end + end + + if ground_y then + local vi = area:index(x, ground_y, z) + if data[vi] == c_leaves or data[vi] == c_jungleleaves then + for y = ground_y, -16, -1 do + local vi = area:index(x, y, z) + if data[vi] ~= c_leaves + and data[vi] ~= c_jungleleaves + and data[vi] ~= c_tree + and data[vi] ~= c_air + and data[vi] ~= c_apple then + break + else + data[vi] = c_air + end + end + end + end + end + elseif in_biome then + write_to_map = true + local icetype = nvals_ice[ni] + local cool = icetype > 0 + local icebergs = icetype > -0.2 and icetype <= 0 + local icehole = icetype > -0.4 and icetype <= -0.2 + local icesheet = icetype > -0.6 and icetype <= -0.4 + local icecave = icetype <= -0.6 + + local ground_y = nil + for y = maxp.y, minp.y, -1 do + local nodid = data[area:index(x, y, z)] + if nodid ~= c_air and nodid ~= c_ignore then + ground_y = y + break + end + end + + if ground_y then + local node = area:index(x, ground_y, z) + local abovenode = area:index(x, ground_y+1, z) + local belownode = area:index(x, ground_y-1, z) + + if ground_y and data[node] == c_dirt_with_grass then + if alpine and test > 0.53 then + data[abovenode] = c_snow + for y = ground_y, -6, -1 do + local vi = area:index(x, y, z) + if data[vi] == c_stone then + break + else + data[vi] = c_stone + end + end + elseif (shrubs and pr:next(1,28) == 1) then + data[node] = c_dirt_with_snow + data[abovenode] = c_dry_shrub + elseif pines and pr:next(1,36) == 1 then + data[node] = c_dirt_with_snow + spawn_pine({x=x, y=ground_y+1, z=z}, area, data) + elseif snowy and test > 0.63 then + data[abovenode] = c_snow_block + else + data[node] = c_dirt_with_snow + data[abovenode] = c_snow + end + elseif ground_y and data[node] == c_sand then + if not icy then + data[abovenode] = c_snow + else + data[node] = c_ice + end + elseif ground_y and data[node] == c_leaves + or data[node] == c_jungleleaves or data[node] == c_apple then + if alpine then + data[abovenode] = c_snow + for y = ground_y, -6, -1 do + local stone = area:index(x, y, z) + if data[stone] == c_stone then + break + else + data[stone] = c_stone + end + end + else + data[abovenode] = c_snow + end + elseif ground_y and data[node] == c_junglegrass then + data[node] = c_dry_shrub + elseif ground_y and data[node] == c_papyrus then + for y = ground_y, ground_y-4, -1 do + local vi = area:index(x, y, z) + if data[vi] == c_papyrus then + local via = area:index(x, ground_y, z) + data[via] = c_snow + data[vi] = c_snow_block + end + end + elseif ground_y and data[node] == c_water then + if not icesheet and not icecave and not icehole then + local x1 = data[area:index(x+1, ground_y, z)] + local z1 = data[area:index(x, ground_y, z+1)] + local xz1 = data[area:index(x+1, ground_y, z+1)] + local xz2 = data[area:index(x-1, ground_y, z-1)] + local x2 = data[area:index(x-1, ground_y, z)] + local z2 = data[area:index(x, ground_y, z-1)] + local y = data[area:index(x, ground_y-1, z)] + local rand = pr:next(1,4) == 1 + if ((x1 and x1 ~= c_water and x1 ~= c_ice + and x1 ~= c_air and x1 ~= c_ignore) + or ((cool or icebergs) and x1 == c_ice and rand)) + or ((z1 and z1 ~= c_water and z1 ~= c_ice + and z1 ~= c_air and z1 ~= c_ignore) + or ((cool or icebergs) and z1 == c_ice and rand)) + or ((xz1 and xz1 ~= c_water and xz1 ~= c_ice + and xz1 ~= c_air and xz1 ~= c_ignore) + or ((cool or icebergs) and xz1 == c_ice and rand)) + or ((xz2 and xz2 ~= c_water and xz2 ~= c_ice + and xz2 ~= c_air and xz2 ~= c_ignore) + or ((cool or icebergs) and xz2 == c_ice and rand)) + or ((x2 and x2 ~= c_water and x2 ~= c_ice + and x2 ~= c_air and x2 ~= c_ignore) + or ((cool or icebergs) and x2 == c_ice and rand)) + or ((z2 and z2 ~= c_water and z2 ~= c_ice + and z2 ~= c_air and z2 ~= c_ignore) + or ((cool or icebergs) and z2 == c_ice and rand)) + or (y ~= c_water and y ~= c_ice and y ~= "air") + or (pr:next(1,6) == 1 and icebergs) then + data[node] = c_ice + end + else + if (icehole and pr:next(1,10) > 1) + or icecave or icesheet then + data[node] = c_ice + end + if icecave then + for y = ground_y-1, -33, -1 do + local vi = area:index(x, y, z) + if data[vi] ~= c_water then + break + else + data[vi] = c_air + end + end + end + end + end + end + end + ni = ni + 1 + end + end + + vm:set_data(data) + vm:set_lighting({day=0, night=0}) + vm:calc_lighting() + vm:write_to_map() + + if write_to_map and debug then -- print if any column of mapchunk was snow biome + local biome_string,biome2_string = biome_to_string(biome,biome2) + local chugent = math.ceil((os.clock() - t1) * 1000) + print("[snow] "..biome_string.." and "..biome2_string.." x "..minp.x.." z "..minp.z.." time "..chugent.." ms") + end +end) + diff --git a/mods/snow/src/mapgen_v7.lua b/mods/snow/src/mapgen_v7.lua new file mode 100644 index 00000000..2fd83e2a --- /dev/null +++ b/mods/snow/src/mapgen_v7.lua @@ -0,0 +1,138 @@ +minetest.register_biome({ + name = "snow_biome_default", + + node_top = "default:dirt_with_snow", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 2, + + height_min = snow.min_height, + height_max = snow.min_height+60, + heat_point = 10.0, + humidity_point = 40.0, +}) + +minetest.register_biome({ + name = "snow_biome_forest", + + node_top = "default:dirt_with_snow", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 2, + + height_min = snow.min_height, + height_max = snow.min_height+60, + heat_point = 10.0, + humidity_point = 55.0, +}) + +minetest.register_biome({ + name = "snow_biome_lush", + + node_top = "default:dirt_with_snow", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 2, + + height_min = snow.min_height, + height_max = snow.min_height+60, + heat_point = 10.0, + humidity_point = 70.0, +}) + +minetest.register_biome({ + name = "snow_biome_alpine", + + node_top = "default:stone", + depth_top = 1, + node_filler = "default:stone", + + height_min = snow.min_height+60, + height_max = 31000, + heat_point = 10.0, + humidity_point = 40.0, +}) + +minetest.register_biome({ + name = "snow_biome_sand", + + node_top = "default:sand", + depth_top = 3, + node_filler = "default:stone", + depth_filler = 0, + + height_min = -31000, + height_max = 2, + heat_point = 10.0, + humidity_point = 40.0, +}) + + +--Pine tree. +minetest.register_decoration({ + deco_type = "schematic", + place_on = "default:dirt_with_snow", + sidelen = 16, + fill_ratio = 0.005, + biomes = {"snow_biome_default"}, + schematic = minetest.get_modpath("snow").."/schematics/pine.mts", + flags = "place_center_x, place_center_z", +}) + +minetest.register_decoration({ + deco_type = "schematic", + place_on = "default:dirt_with_snow", + sidelen = 16, + fill_ratio = 0.05, + biomes = {"snow_biome_forest"}, + schematic = minetest.get_modpath("snow").."/schematics/pine.mts", + flags = "place_center_x, place_center_z", +}) + +minetest.register_decoration({ + deco_type = "schematic", + place_on = "default:dirt_with_snow", + sidelen = 16, + fill_ratio = 0.1, + biomes = {"snow_biome_lush"}, + schematic = minetest.get_modpath("snow").."/schematics/pine.mts", + flags = "place_center_x, place_center_z", +}) + +--Dry shrubs. +minetest.register_decoration({ + deco_type = "simple", + place_on = "default:dirt_with_snow", + sidelen = 16, + fill_ratio = 0.005, + biomes = {"snow_biome_default"}, + decoration = "default:dry_shrub", +}) + +minetest.register_decoration({ + deco_type = "simple", + place_on = "default:dirt_with_snow", + sidelen = 16, + fill_ratio = 0.05, + biomes = {"snow_biome_forest", "snow_biome_lush"}, + decoration = "default:dry_shrub", +}) + +--Snow. +minetest.register_decoration({ + deco_type = "simple", + place_on = "default:dirt_with_snow", + sidelen = 16, + fill_ratio = 10, + biomes = {"snow_biome_default", "snow_biome_forest", "snow_biome_lush"}, + decoration = "default:snow", +}) + +minetest.register_decoration({ + deco_type = "simple", + place_on = "default:stone", + sidelen = 16, + fill_ratio = 10, + biomes = {"snow_biome_alpine"}, + decoration = "default:snow", +}) diff --git a/mods/snow/src/nodes.lua b/mods/snow/src/nodes.lua new file mode 100644 index 00000000..cd6d02f8 --- /dev/null +++ b/mods/snow/src/nodes.lua @@ -0,0 +1,362 @@ +-- NODES + +-- Pine Needles +minetest.register_node("snow:needles",{ + description = "Pine Needles", + drawtype = "allfaces_optional", + visual_scale = 1.3, + tiles = {"snow_needles.png"}, + waving = 1, + paramtype = "light", + groups = {snappy=3, leafdecay=5}, + drop = { + max_items = 1, + items = { + { + -- player will get sapling with 1/20 chance + items = {'snow:sapling_pine'}, + rarity = 20, + }, + { + -- player will get leaves only if he get no saplings, + -- this is because max_items is 1 + items = {'snow:needles'}, + } + } + }, + sounds = default.node_sound_leaves_defaults(), +}) + +--[[ +If christmas_content is enabled, then this next part will override the pine needles' drop code +(in the code section above) and adds Xmas tree saplings to the items that are dropped. +The Xmas tree needles are registred and defined a farther down in this nodes.lua file. + +~ LazyJ + +--]] + +if snow.christmas_content then + --Christmas trees + + minetest.override_item("snow:needles", { + drop = { + max_items = 1, + items = { + { + -- player will get xmas tree with 1/120 chance + items = {'snow:xmas_tree'}, + rarity = 120, + }, + { + -- player will get sapling with 1/20 chance + items = {'snow:sapling_pine'}, + rarity = 20, + }, + { + -- player will get leaves only if he get no saplings, + -- this is because max_items is 1 + items = {'snow:needles'}, + } + } + } + }) +end + + + --Christmas easter egg + minetest.register_on_mapgen_init( function() + if skins then + skins.add("character_snow_man") + end + end + ) + + + +--[[ +Original, static Xmas lights. Keep so people can "turn off" the +animation if it is too much for them. ~ LazyJ + +--Decorated Pine leaves +minetest.register_node("snow:needles_decorated", { + description = "Decorated Pine Needles", + drawtype = "allfaces_optional", + tiles = {"snow_needles_decorated.png"}, + paramtype = "light", + groups = {snappy=3, leafdecay=3}, + drop = { + max_items = 1, + items = { + { + -- player will get xmas tree with 1/20 chance + items = {'snow:xmas_tree'}, + rarity = 50, + }, + { + -- player will get sapling with 1/20 chance + items = {'snow:sapling_pine'}, + rarity = 20, + }, + { + -- player will get leaves only if he get no saplings, + -- this is because max_items is 1 + items = {'snow:needles_decorated'}, + } + } + }, + sounds = default.node_sound_leaves_defaults(), +}) +--]] + + + +-- Animated, "blinking lights" version. ~ LazyJ + +-- Decorated Pine Leaves +minetest.register_node("snow:needles_decorated", { + description = "Decorated Pine Needles", + drawtype = "allfaces_optional", + light_source = 5, + inventory_image = minetest.inventorycube("snow_needles_decorated.png"), + --tiles = {"snow_needles_decorated.png"}, + tiles = { + {name="snow_needles_decorated_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=20.0}} + }, + paramtype = "light", + groups = {snappy=3, leafdecay=5}, + drop = { + max_items = 1, + items = { + { + -- player will get xmas tree with 1/120 chance + items = {'snow:xmas_tree'}, + rarity = 120, + }, + { + -- player will get sapling with 1/20 chance + items = {'snow:sapling_pine'}, + rarity = 20, + }, + { + -- player will get leaves only if he get no saplings, + -- this is because max_items is 1 + items = {'snow:needles_decorated'}, + } + } + }, + sounds = default.node_sound_leaves_defaults(), +}) + + + + +-- Xmas Tree Sapling +minetest.register_node("snow:xmas_tree", { + description = "Christmas Tree", + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"snow_xmas_tree.png"}, + inventory_image = "snow_xmas_tree.png", + wield_image = "snow_xmas_tree.png", + paramtype = "light", + walkable = false, + groups = {snappy=2,dig_immediate=3}, + sounds = default.node_sound_defaults(), +}) + + + +-- Pine Sapling +minetest.register_node("snow:sapling_pine", { + description = "Pine Sapling", + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"snow_sapling_pine.png"}, + inventory_image = "snow_sapling_pine.png", + wield_image = "snow_sapling_pine.png", + paramtype = "light", + walkable = false, + groups = {snappy=2,dig_immediate=3}, + sounds = default.node_sound_defaults(), + +}) + + + +-- Star on Xmas Trees +minetest.register_node("snow:star", { + description = "Star", + --drawtype = "torchlike", + drawtype = "plantlike", -- Stars disappeared when viewed at the right angle. "Plantlike" solved the visual problem. ~ LazyJ + tiles = {"snow_star.png"}, + inventory_image = "snow_star.png", + wield_image = "snow_star.png", + paramtype = "light", + walkable = false, + --groups = {snappy=2,dig_immediate=3}, + groups = {cracky=1, crumbly=1, choppy=1, oddly_breakable_by_hand=1}, -- Don't want the ornament breaking too easily because you have to punch it to turn it on and off. ~ LazyJ + sounds = default.node_sound_glass_defaults({dig = {name="default_glass_footstep", gain=0.2}}), -- Breaking "glass" sound makes it sound like a real, broken, Xmas tree ornament (Sorry, Mom!). ;)- ~ LazyJ + on_punch = function(pos, node, puncher) -- Added a "lit" star that can be punched on or off depending on your preference. ~ LazyJ + minetest.set_node(pos, {name = "snow:star_lit"}) + nodeupdate(pos) + end, +}) + + + +-- Star (Lit Version) on Xmas Trees +minetest.register_node("snow:star_lit", { + description = "Star Lighted", + drawtype = "plantlike", + light_source = LIGHT_MAX, + tiles = {"snow_star_lit.png"}, + wield_image = "snow_star.png", + paramtype = "light", + walkable = false, + drop = "snow:star", + groups = {cracky=1, crumbly=1, choppy=1, oddly_breakable_by_hand=1, not_in_creative_inventory=1}, + sounds = default.node_sound_glass_defaults({dig = {name="default_glass_footstep", gain=0.2}}), + on_punch = function(pos, node, puncher) + minetest.set_node(pos, {name = "snow:star"}) + nodeupdate(pos) + end, +}) + + + +-- Moss +minetest.register_node("snow:moss", { + description = "Moss", + tiles = {"snow_moss.png"}, + drawtype = "signlike", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + selection_box = { + type = "wallmounted", + }, + is_ground_content = true, + groups = {crumbly=3, attached_node=1}, +}) + + + +-- Snow Brick +minetest.register_node("snow:snow_brick", { + description = "Snow Brick", + tiles = {"snow_snow_brick.png"}, + is_ground_content = true, + freezemelt = "default:water_source", + liquidtype = "none", + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", -- Allow blocks to be rotated with the screwdriver or + -- by player position. ~ LazyJ + -- I made this a little harder to dig than snow blocks because + -- I imagine snow brick as being much more dense and solid than fluffy snow. ~ LazyJ + groups = {cracky=2, crumbly=2, choppy=2, oddly_breakable_by_hand=2, melts=1, icemaker=1, cooks_into_ice=1}, + --Let's use the new snow sounds instead of the old grass sounds. ~ LazyJ + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_snow_footstep", gain=0.25}, + dig = {name="default_dig_crumbly", gain=0.4}, + dug = {name="default_snow_footstep", gain=0.75}, + place = {name="default_place_node", gain=1.0} + }), + -- The "on_construct" part below, thinking in terms of layers, dirt_with_snow could also + -- double as dirt_with_frost which adds subtlety to the winterscape. ~ LazyJ + on_construct = function(pos) + pos.y = pos.y - 1 + if minetest.get_node(pos).name == "default:dirt_with_grass" + -- Thinking in terms of layers, dirt_with_snow could also double as + -- dirt_with_frost which adds subtlety to the winterscape. ~ LazyJ, 2014_04_04 + or minetest.get_node(pos).name == "default:dirt" then + minetest.set_node(pos, {name="default:dirt_with_snow"}) + end + end +}) + + + +-- Snow Cobble ~ LazyJ +-- Described as Icy Snow +minetest.register_node("snow:snow_cobble", { + description = "Icy Snow", + tiles = {"snow_snow_cobble.png"}, + is_ground_content = true, + liquidtype = "none", + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + -- I made this a little harder to dig than snow blocks because + -- I imagine snow brick as being much more dense and solid than fluffy snow. ~ LazyJ + groups = {cracky=2, crumbly=2, choppy=2, oddly_breakable_by_hand=2, melts=1, icemaker=1, cooks_into_ice=1}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_snow_footstep", gain=0.25}, + dig = {name="default_dig_crumbly", gain=0.4}, + dug = {name="default_snow_footstep", gain=0.75}, + place = {name="default_place_node", gain=1.0} + }), + -- The "on_construct" part below, thinking in terms of layers, dirt_with_snow could also + -- double as dirt_with_frost which adds subtlety to the winterscape. ~ LazyJ + on_construct = function(pos) + pos.y = pos.y - 1 + if minetest.get_node(pos).name == "default:dirt_with_grass" + or minetest.get_node(pos).name == "default:dirt" then + minetest.set_node(pos, {name="default:dirt_with_snow"}) + end + end +}) + + + +-- Override Default Nodes to Add Extra Functions + +-- This adds code to the existing default ice. ~ LazyJ +minetest.override_item("default:ice", { + -- The Lines: 1. Alpah to make semi-transparent ice, 2 to work with + -- the dirt_with_grass/snow/just dirt ABMs. ~ LazyJ, 2014_03_09 + use_texture_alpha = true, -- 1 + param2 = 0, + --param2 is reserved for how much ice will freezeover. + sunlight_propagates = true, -- 2 + drawtype = "glasslike", + inventory_image = minetest.inventorycube("default_ice.png"), + liquidtype = "none", + -- I made this a lot harder to dig than snow blocks because ice is much more dense + -- and solid than fluffy snow. ~ LazyJ + groups = {cracky=2, crumbly=1, choppy=1, --[[oddly_breakable_by_hand=1,]] melts=1}, + on_construct = function(pos) + pos.y = pos.y - 1 + if minetest.get_node(pos).name == "default:dirt_with_grass" + or minetest.get_node(pos).name == "default:dirt" then + minetest.set_node(pos, {name="default:dirt_with_snow"}) + end + end, + liquids_pointable = true, + --Make ice freeze over when placed by a maximum of 10 blocks. + after_place_node = function(pos, placer, itemstack, pointed_thing) + minetest.set_node(pos, {name="default:ice", param2=math.random(0,10)}) + end +}) + + + +-- This adds code to the existing, default snowblock. ~ LazyJ +minetest.override_item("default:snowblock", { + liquidtype = "none", -- LazyJ to make dirt below change to dirt_with_snow (see default, nodes.lua, dirt ABM) + paramtype = "light", -- LazyJ to make dirt below change to dirt_with_snow (see default, nodes.lua, dirt ABM) + sunlight_propagates = true, -- LazyJ to make dirt below change to dirt_with_snow (see default, nodes.lua, dirt ABM) + -- Snow blocks should be easy to dig because they are just fluffy snow. ~ LazyJ + groups = {cracky=3, crumbly=3, choppy=3, oddly_breakable_by_hand=3, melts=1, icemaker=1, cooks_into_ice=1, falling_node=1}, + --drop = "snow:snow_cobble", + on_construct = function(pos) + pos.y = pos.y - 1 + if minetest.get_node(pos).name == "default:dirt_with_grass" + -- Thinking in terms of layers, dirt_with_snow could also double as + -- dirt_with_frost which adds subtlety to the winterscape. ~ LazyJ, 2014_04_04 + or minetest.get_node(pos).name == "default:dirt" then + minetest.set_node(pos, {name="default:dirt_with_snow"}) + end + end +}) diff --git a/mods/snow/src/sled.lua b/mods/snow/src/sled.lua new file mode 100644 index 00000000..de20bace --- /dev/null +++ b/mods/snow/src/sled.lua @@ -0,0 +1,207 @@ +--[[ +--================= +--====================================== +LazyJ's Fork of Splizard's "Snow" Mod +by LazyJ +version: Umpteen and 7/5ths something or another. +2014_04_12 +--====================================== +--================= + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +THE LIST OF CHANGES I'VE MADE +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + + +* The HUD message that displayed when a player sat on the sled would not go away after the player +got off the sled. I spent hours on trial-and-error while reading the lua_api.txt and scrounging +the Internet for a needle-in-the-haystack solution as to why the hud_remove wasn't working. +Turns out Splizard's code was mostly correct, just not assembled in the right order. + +The key to the solution was found in the code of leetelate's scuba mod: +http://forum.minetest.net/viewtopic.php?id=7175 + +* Changed the wording of the HUD message for clarity. + + +~~~~~~ +TODO +~~~~~~ + +* Figure out why the player avatars remain in a seated position, even after getting off the sled, +if they flew while on the sled. 'default.player_set_animation', where is a better explanation +for this and what are it's available options? + +* Go through, clean-up my notes and get them better sorted. Some are in the code, some are +scattered in my note-taking program. This "Oh, I'll just make a little tweak here and a +little tweak there" project has evolved into something much bigger and more complex +than I originally planned. :p ~ LazyJ + + +--]] + + + +--============================================================= +-- CODE STUFF +--============================================================= + +-- +-- Helper functions +-- + +local function is_water(pos) + local nn = minetest.env:get_node(pos).name + return minetest.get_item_group(nn, "water") ~= 0 +end + + +-- +-- Sled entity +-- + +local sled = { + physical = false, + collisionbox = {-0.6,-0.25,-0.6, 0.6,0.3,0.6}, + visual = "mesh", + mesh = "sled.x", + textures = {"sled.png"}, + HUD, + + driver = nil, + sliding = false, +} + +local players_sled = {} + +function sled:on_rightclick(clicker) + if (not self.driver) and snow.sleds then + players_sled[clicker:get_player_name()] = true + self.driver = clicker + self.object:set_attach(clicker, "", {x=0,y=-9,z=0}, {x=0,y=90,z=0}) + clicker:set_physics_override({ + speed = 2, -- multiplier to default value + jump = 0, -- multiplier to default value + gravity = 1 + }) +--[[ + local HUD = + { + hud_elem_type = "text", -- see HUD element types + position = {x=0.5, y=0.89}, + name = "sled", + scale = {x=2, y=2}, + text = "You are sledding, hold sneak to stop.", + direction = 0, + } + + clicker:hud_add(HUD) +--]] + +-- Here is part 1 of the fix. ~ LazyJ + self.HUD = clicker:hud_add({ + hud_elem_type = "text", + position = {x=0.5, y=0.89}, + name = "sled", + scale = {x=2, y=2}, + text = "You are on the sled! Press the sneak key to get off the sled.", -- LazyJ + direction = 0, + }) +-- End part 1 + end +end + +function sled:on_activate(staticdata, dtime_s) + self.object:set_armor_groups({immortal=1}) + if staticdata then + self.v = tonumber(staticdata) + end +end + +function sled:get_staticdata() + return tostring(v) +end + +function sled:on_punch(puncher, time_from_last_punch, tool_capabilities, direction) + self.object:remove() + if puncher and puncher:is_player() then + puncher:get_inventory():add_item("main", "snow:sled") + end +end + + +minetest.register_globalstep(function(dtime) + for _, player in pairs(minetest.get_connected_players()) do + if players_sled[player:get_player_name()] then + default.player_set_animation(player, "sit", 0) + end + end +end) + +function sled:on_step(dtime) + if self.driver then + local p = self.object:getpos() + p.y = p.y+0.4 + local s = self.object:getpos() + s.y = s.y -0.5 + local keys = self.driver:get_player_control() + if keys["sneak"] or is_water(p) or (not minetest.find_node_near(s, 1, {"default:snow","default:snowblock","default:ice","default:dirt_with_snow", "group:icemaker"})) then -- LazyJ + self.driver:set_physics_override({ + speed = 1, -- multiplier to default value + jump = 1, -- multiplier to default value + gravity = 1 + }) + + players_sled[self.driver:get_player_name()] = false + self.object:set_detach() + --self.driver:hud_remove("sled") + self.driver:hud_remove(self.HUD) -- And here is part 2. ~ LazyJ + self.driver = nil + self.object:remove() + + end + end +end + +minetest.register_entity("snow:sled", sled) + + +minetest.register_craftitem("snow:sled", { + description = "Sled", + inventory_image = "snow_sled.png", + wield_image = "snow_sled.png", + wield_scale = {x=2, y=2, z=1}, + liquids_pointable = true, + stack_max = 1, + + on_use = function(itemstack, placer) + local pos = {x=0,y=-1000, z=0} + local name = placer:get_player_name() + local player_pos = placer:getpos() + if not players_sled[name] then + if minetest.get_node({x=player_pos.x,y=player_pos.y, z=player_pos.z}).name == "default:snow" then + local sled = minetest.env:add_entity(pos, "snow:sled") + sled:get_luaentity():on_rightclick(placer) + end + end + end, +}) + +minetest.register_craft({ + output = "snow:sled", + recipe = { + {"", "", ""}, + {"group:stick", "", ""}, + {"group:wood", "group:wood", "group:wood"}, + }, +}) +minetest.register_craft({ + output = "snow:sled", + recipe = { + {"", "", ""}, + {"", "", "group:stick"}, + {"group:wood", "group:wood", "group:wood"}, + }, +}) diff --git a/mods/snow/src/snowball.lua b/mods/snow/src/snowball.lua new file mode 100644 index 00000000..cb7468c0 --- /dev/null +++ b/mods/snow/src/snowball.lua @@ -0,0 +1,268 @@ +--============ +--Snowballs +--============ + +-- Snowballs were destroying nodes if the snowballs landed just right. +-- Quite a bit of trial-and-error learning here and it boiled down to a +-- small handful of code lines making the difference. ~ LazyJ + +local snowball_GRAVITY=9 +local snowball_VELOCITY=19 + +--Shoot snowball +local snow_shoot_snowball=function (item, player, pointed_thing) + local playerpos=player:getpos() + local obj=minetest.add_entity({x=playerpos.x,y=playerpos.y+1.5,z=playerpos.z}, "snow:snowball_entity") + local dir=player:get_look_dir() + obj:setvelocity({x=dir.x*snowball_VELOCITY, y=dir.y*snowball_VELOCITY, z=dir.z*snowball_VELOCITY}) + obj:setacceleration({x=dir.x*-3, y=-snowball_GRAVITY, z=dir.z*-3}) + item:take_item() + return item +end + +--The snowball Entity +snow_snowball_ENTITY={ + physical = false, + timer=0, + textures = {"default_snowball.png"}, + lastpos={}, + collisionbox = {0,0,0,0,0,0}, +} + +--Snowball_entity.on_step()--> called when snowball is moving. +snow_snowball_ENTITY.on_step = function(self, dtime) + self.timer=self.timer+dtime + local pos = self.object:getpos() + local node = minetest.get_node(pos) + + --Become item when hitting a node. + if self.lastpos.x~=nil then --If there is no lastpos for some reason. ~ Splizard + -- Check to see what is one node above where the snow is + -- going to be placed. ~ LazyJ, 2014_04_08 + local abovesnowballtarget = {x=pos.x, y=pos.y+1, z=pos.z} + -- Identify the name of the node that was found above. ~ LazyJ, 2014_04_08 + local findwhatisabove = minetest.get_node(abovesnowballtarget).name + -- If the node above is air, then it's OK to go on to the next step. ~ LazyJ, 2014_04_08 + if findwhatisabove == "air" then + -- If the node where the snow is going is anything except air, then it's OK to put + -- the snow on it. ~ Original line of code by Splizard, comment by LazyJ so I can + -- keep track of what this code does. ~ LazyJ, 2014_04_07 + if node.name ~= "air" then + snow.place(pos) -- this is the original code, I replaced it with + -- minetest.place_node and bumped the y position up by 2 (make the snow drop + -- from a node above and pile up). ~ LazyJ, 2014_04_07 + --minetest.place_node({x=pos.x, y=pos.y+2, z=pos.z}, {name="default:snow"}) + self.object:remove() + end + else -- If findwhatisabove is not equal to "air" then cancel the snowball + -- with self.object:remove() ~ LazyJ, 2014_04_08 + self.object:remove() + end + end + self.lastpos={x=pos.x, y=pos.y, z=pos.z} +end + + + +minetest.register_entity("snow:snowball_entity", snow_snowball_ENTITY) + + + +-- Snowball and Default Snowball Merged + +-- They both look the same, they do basically the same thing (except one is a leftclick throw +-- and the other is a rightclick drop),... Why not combine snow:snowball with default:snow and +-- benefit from both? ~ LazyJ, 2014_04_08 + +--[[ Save this for reference and occasionally compare to the default code for any updates. + +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) + if minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "default:dirt_with_grass" or minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "default:dirt" then + minetest.set_node({x=pos.x, y=pos.y-1, z=pos.z}, {name="default:dirt_with_snow"}) + end + -- Now, let's turn the snow pile into a snowblock. ~ LazyJ + if minetest.get_node({x=pos.x, y=pos.y-2, z=pos.z}).name == "default:snow" and -- Minus 2 because at the end of this, the layer that triggers the change to a snowblock is the second layer more than a full block, starting into a second block (-2) ~ LazyJ, 2014_04_11 + minetest.get_node({x=pos.x, y=pos.y, z=pos.z}).name == "default:snow" then + minetest.set_node({x=pos.x, y=pos.y-2, z=pos.z}, {name="default:snowblock"}) + end + end, + on_use = snow_shoot_snowball -- This line is from the 'Snow' mod, the reset is default Minetest. +}) +--]] + + + +minetest.override_item("default:snow", { + drop = { + max_items = 2, + items = { + { + -- player will get sapling with 1/20 chance + items = {'snow:moss'}, + rarity = 20, + }, + { + -- player will get leaves only if he get no saplings, + -- this is because max_items is 1 + items = {'default:snow'}, + } + } + }, + groups = {cracky=3, crumbly=3, choppy=3, oddly_breakable_by_hand=3,falling_node=1, melts=2, float=1}, + sunlight_propagates = true, + --Disable placement prediction for snow. + node_placement_prediction = "", + on_construct = function(pos) + if minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "default:dirt_with_grass" + or minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "default:dirt" then + minetest.set_node({x=pos.x, y=pos.y-1, z=pos.z}, {name="default:dirt_with_snow"}) + end + end, + --Remove dirt_with_snow and replace with dirt_with_grass. + --[[after_destruct = function(pos) + if minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "default:dirt_with_snow" then + minetest.set_node({x=pos.x, y=pos.y-1, z=pos.z}, {name="default:dirt_with_grass"}) + end + end,]] + --Handle node drops due to node level. + on_dig = function(pos, node, digger) + local level = minetest.get_node_level(pos) + minetest.node_dig(pos, node, digger) + if minetest.get_node(pos).name ~= node.name then + if digger:get_inventory() then + local _, dropped_item + local left = digger:get_inventory():add_item("main", "default:snow "..tostring(level/7-1)) + if not left:is_empty() then + local p = { + x = pos.x + math.random()/2-0.25, + y = pos.y + math.random()/2-0.25, + z = pos.z + math.random()/2-0.25, + } + minetest.add_item(p, left) + end + end + end + end, + --Manage snow levels. + on_place = function(itemstack, placer, pointed_thing) + local node + local above + local level + + local under = pointed_thing.under + local oldnode_under = minetest.get_node_or_nil(under) + local above = pointed_thing.above + local oldnode_above = minetest.get_node_or_nil(above) + + if not oldnode_under or not oldnode_above then + return + end + + local olddef_under = ItemStack({name=oldnode_under.name}):get_definition() + olddef_under = olddef_under or minetest.nodedef_default + local olddef_above = ItemStack({name=oldnode_above.name}):get_definition() + olddef_above = olddef_above or minetest.nodedef_default + + -- Place above pointed node + local place_to = {x = above.x, y = above.y, z = above.z} + + -- If node under is buildable_to, place into it instead (eg. snow) + if olddef_under.buildable_to then + place_to = {x = under.x, y = under.y, z = under.z} + end + + node = minetest.get_node(place_to) + level = minetest.get_node_level(place_to) + if level == 63 then + minetest.set_node(place_to, {name="default:snowblock"}) + else + minetest.set_node_level(place_to, level+7) + end + + if node.name ~= "default:snow" then + local itemstack, placed = minetest.item_place_node(itemstack, placer, pointed_thing) + return itemstack, placed + end + + itemstack:take_item() + + return itemstack + end, + on_use = snow_shoot_snowball -- This line is from the 'Snow' mod, + -- the reset is default Minetest. ~ LazyJ +}) + + + +--[[ +A note about default torches, melting, and "buildable_to = true" in default snow. + +On servers where buckets are disabled, snow and ice stuff is used to set water for crops and +water stuff like fountains, pools, ponds, ect.. It is a common practice to set a default torch on +the snow placed where the players want water to be. + +If you place a default torch *on* default snow to melt it, instead of melting the snow is +*replaced* by the torch. Using "buildable_to = false" would fix this but then the snow would no +longer pile-up in layers; the snow would stack like thin shelves in a vertical column. + +I tinkered with the default torch's code (see below) to check for snow at the position and one +node above (layered snow logs as the next y position above) but default snow's +"buildable_to = true" always happened first. An interesting exercise to better learn how Minetest +works, but otherwise not worth it. If you set a regular torch near snow, the snow will melt +and disappear leaving you with nearly the same end result anyway. I say "nearly the same" +because if you set a default torch on layered snow, the torch will replace the snow and be +lit on the ground. If you were able to set a default torch *on* layered snow, the snow would +melt and the torch would become a dropped item. + +~ LazyJ + +--]] + + +-- Some of the ideas I tried. ~ LazyJ +--[[ +local can_place_torch_on_top = function(pos) + if minetest.get_node({x=pos.x, y=pos.y, z=pos.z}).name == "default:snow" + or minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "default:snow" then + minetest.override_item("default:snow", {buildable_to = false,}) + end + end +--]] + + +--[[ +minetest.override_item("default:torch", { + --on_construct = function(pos) + on_place = function(itemstack, placer, pointed_thing) + --if minetest.get_node({x=pos.x, y=pos.y, z=pos.z}).name == "default:snow" + -- Even though layered snow doesn't look like it's in the next position above (y+1) + -- it registers in that position. Check the terminal's output to see the coord change. + --or minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "default:snow" + if pointed_thing.name == "default:snow" + then minetest.set_node({x=pos.x, y=pos.y+1, z=pos.z}, {name="default:torch"}) + end + end +}) +--]] diff --git a/mods/snow/src/stairsplus.lua b/mods/snow/src/stairsplus.lua new file mode 100644 index 00000000..011fd851 --- /dev/null +++ b/mods/snow/src/stairsplus.lua @@ -0,0 +1,341 @@ +-- =============================================================================== +-- StairsPlus Bonus! +-- =============================================================================== +--[[ +This section of code that makes blocks compatible with MoreBlocks' circular saw. +I've added circular saw compatible code for default snowblocks and ice. :D +A big thanks to Calinou and ShadowNinja for making this possible. + +Because StairsPlus creates partial blocks, it didn't seem quite right that the +smallest microblocks would produce a full-sized water_source node when melted. +So I toned them down a bit by changing their melt to a temporary, +2-second water_source. See "melts" in abms.lua file for the various intensities. + +___...::: ATTENTION MINETEST SERVER OPERATORS :::...___ +You may or may not have noticed in your server logs that MoreBlocks stairs/slabs/ +panels/microblocks are not recorded as to when, who, what, and where. This is +important information when trying to determine if a player who dug these blocks +is the owner (the player who placed the block) or is a griefer stealing the block. + +There is an option that will log when these blocks are placed but it comes at the +cost of losing the auto-rotation of those blocks when placed. They can still be +rotated with a screwdriver but if screwdrivers are disabled on your server your +players won't be able to position MoreBlocks, saw-made blocks. + +To enable logging the placement of these blocks, un-comment these lines: + +--on_place = minetest.item_place + +There is one in each of the "stairsplus.register_all" sections. + +~ LazyJ +-- =============================================================================== +--]] + +--snow_stairsplus = {} + +-- Check for infinite stacks + +--if minetest.get_modpath("unified_inventory") or not minetest.setting_getbool("creative_mode") then +-- snow_stairsplus.expect_infinite_stacks = false +--else +-- snow_stairsplus.expect_infinite_stacks = true +--end + + + + + + +-- First, let's run a check to see if MoreBlocks is installed; we're going to need it for the +-- next section of stairsplus stuff. ~LazyJ + +if (minetest.get_modpath("moreblocks")) + +-- 'If' MoreBlocks was found, well, 'then' go ahead with this next part: + +then + +--[[ Leave commented out - For reference only. ~ LazyJ +function stairsplus.register_all(modname, subname, recipeitem, fields) + --stairsplus.register_stair_slab_panel_micro(modname, subname, recipeitem, fields) + stairsplus:register_stair(modname, subname, recipeitem, fields) + stairsplus:register_slab(modname, subname, recipeitem, fields) + stairsplus:register_panel(modname, subname, recipeitem, fields) + stairsplus:register_micro(modname, subname, recipeitem, fields) +end + Leave commented out +--]] + + + +-- Leave commented out. Another, possible piece of the puzzle, as to why the placement of +-- stairsplus nodes aren't recorded in the logs. Shelved till I can concentrate on it again. +-- ~ LazyJ + +--ItemStack({name=nodename}):get_definition() +--itemstack ={} +--[[ + local def = itemstack:get_definition() + function minetest.item_place_node(itemstack, placer, pointed_thing, param2) + minetest.log("action", placer:get_player_name() .. " places node " + .. def.name .. " at " .. minetest.pos_to_string(place_to)) + end + Leave commented out +--]] + + +-- Leave commented out +--[[ FIGURE OUT HOW TO GET THE SLABS TO SHOW UP IN THE LOG ON PLACEMENT + + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + -- If it's being placed on an another similar one, replace it with + -- a full block + local slabpos = nil + local slabnode = nil + local p0 = pointed_thing.under + local p1 = pointed_thing.above + local n0 = minetest.get_node(p0) + local n1 = minetest.get_node(p1) + local param2 = 0 + + local n0_is_upside_down = (n0.name == "snow:slab_" .. subname and + n0.param2 >= 20) + + if n0.name == "snow:slab_" .. subname and not n0_is_upside_down and p0.y+1 == p1.y then + slabpos = p0 + slabnode = n0 + elseif n1.name == "snow:slab_" .. subname then + slabpos = p1 + slabnode = n1 + end + if slabpos then + -- Remove the slab at slabpos + minetest.remove_node(slabpos) + -- Make a fake stack of a single item and try to place it + local fakestack = ItemStack(recipeitem) + fakestack:set_count(itemstack:get_count()) + + pointed_thing.above = slabpos + local success + fakestack, success = minetest.item_place(fakestack, placer, pointed_thing) + -- If the item was taken from the fake stack, decrement original + if success then + itemstack:set_count(fakestack:get_count()) + -- Else put old node back + else + minetest.set_node(slabpos, slabnode) + end + return itemstack + end + + -- Upside down slabs + if p0.y-1 == p1.y then + -- Turn into full block if pointing at a existing slab + if n0_is_upside_down then + -- Remove the slab at the position of the slab + minetest.remove_node(p0) + -- Make a fake stack of a single item and try to place it + local fakestack = ItemStack(recipeitem) + fakestack:set_count(itemstack:get_count()) + + pointed_thing.above = p0 + local success + fakestack, success = minetest.item_place(fakestack, placer, pointed_thing) + -- If the item was taken from the fake stack, decrement original + if success then + itemstack:set_count(fakestack:get_count()) + -- Else put old node back + else + minetest.set_node(p0, n0) + end + return itemstack + end + + -- Place upside down slab + param2 = 20 + end + + -- If pointing at the side of a upside down slab + if n0_is_upside_down and p0.y+1 ~= p1.y then + param2 = 20 + end + + return minetest.item_place(itemstack, placer, pointed_thing, param2) + end + Leave commented out +--]] + + + +--[[ +Below, in the "groups" line there is a "melts" category. Back in the ABMs lua file, melting +code, melts=1 will produce a water_source when the full-sized snow/ice block is melted making +a big, watery mess. melts=2 will produce a water_source only for a moment, then it changes back +to water_flowing and then dries-up and disappears. I gave these stairs/slabs/panels/microblocks +a melts value of 2 instead of 1 because they are not full blocks. + +~ LazyJ +--]] + +-- Default snowblock and ice stairs/slabs/panels/microblocks. + + local ndef = minetest.registered_nodes["default:ice"] + local groups = {} + for k, v in pairs(ndef.groups) do groups[k] = v end + + stairsplus:register_all("moreblocks", "ice", "default:ice", { + description = ndef.description, + paramtype2 = "facedir", + -- Added "icemaker=1" in groups. This ties into the freezing + -- function in the ABMs.lua file. ~ LazyJ + groups = {cracky=1, crumbly=1, choppy=1, oddly_breakable_by_hand=1, melts=2, icemaker=1}, + sounds = default.node_sound_glass_defaults(), + tiles = ndef.tiles, + -- Because of the "use_texture_alpha" line, that gives ice transparency, I couldn't combine + -- default ice and default snowblocks in a list like MoreBlocks does. ~ LazyJ + use_texture_alpha = true, + sunlight_propagates = true, + -- This "on_place" line makes placing these nodes recorded in the logs. + -- Useful for investigating griefings and determining ownership + -- BUT these nodes will nolonger auto-rotate into position. ~ LazyJ + + --on_place = minetest.item_place, + + -- The "on_construct" part below, thinking in terms of layers, dirt_with_snow could + -- also double as dirt_with_frost which adds subtlety to the winterscape. ~ LazyJ + on_construct = function(pos) + pos.y = pos.y - 1 + if minetest.get_node(pos).name == "default:dirt_with_grass" + or minetest.get_node(pos).name == "default:dirt" then + minetest.set_node(pos, {name="default:dirt_with_snow"}) + end + end + }) +--end + + + local ndef = minetest.registered_nodes["default:snowblock"] + local groups = {} + for k, v in pairs(ndef.groups) do groups[k] = v end + + stairsplus:register_all("moreblocks", "snowblock", "default:snowblock", { + description = ndef.description, + paramtype2 = "facedir", + -- Added "icemaker=1" in groups. This ties into the freezing function + -- in the ABMs.lua file. ~ LazyJ + groups = {cracky=3, crumbly=3, choppy=3, oddly_breakable_by_hand=3, melts=2, icemaker=1}, + tiles = ndef.tiles, + sunlight_propagates = true, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_snow_footstep", gain=0.25}, + dig = {name="default_dig_crumbly", gain=0.4}, + dug = {name="default_snow_footstep", gain=0.75}, + place = {name="default_place_node", gain=1.0} + }), + -- This "on_place" line makes placing these nodes recorded in the logs. + -- Useful for investigating griefings and determining ownership + -- BUT these nodes will nolonger auto-rotate into position. ~ LazyJ + + --on_place = minetest.item_place, + + -- The "on_construct" part below, thinking in terms of layers, + -- dirt_with_snow could also double as dirt_with_frost + -- which adds subtlety to the winterscape. ~ LazyJ + on_construct = function(pos) + pos.y = pos.y - 1 + if minetest.get_node(pos).name == "default:dirt_with_grass" + or minetest.get_node(pos).name == "default:dirt" then + minetest.set_node(pos, {name="default:dirt_with_snow"}) + end + end + }) + + + +-- Snow stairs/slabs/panels/microblocks. + +local snow_nodes = { + "snow_brick", + "snow_cobble", +} + +for _, name in pairs(snow_nodes) do + local nodename = "snow:"..name + local ndef = minetest.registered_nodes[nodename] + local groups = {} + for k, v in pairs(ndef.groups) do groups[k] = v end + + stairsplus:register_all("moreblocks", name, nodename, { + description = ndef.description, + drop = drop, + groups = {cracky=2, crumbly=2, choppy=2, oddly_breakable_by_hand=2, melts=2, icemaker=1}, + tiles = ndef.tiles, + --paramtype2 = "facedir", + sunlight_propagates = true, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_snow_footstep", gain=0.25}, + dig = {name="default_dig_crumbly", gain=0.4}, + dug = {name="default_snow_footstep", gain=0.75}, + place = {name="default_place_node", gain=1.0} + }), + -- This "on_place" line makes placing these nodes recorded in the logs. + -- Useful for investigating griefings and determining ownership + -- BUT these nodes will nolonger auto-rotate into position. ~ LazyJ + + --on_place = minetest.item_place, + + +-- Some attempts to have both, the recording in the logs of the placing of +-- the stairplus stuff *and* have the auto-rotation work. No luck yet. +-- ~ LazyJ + + --[[ + on_place = function (i, p, t) + minetest.item_place(i, p, t, 0) + minetest.rotate_node(i, p, t) + end, + --]] + --[[ + on_place = function (i, p, t) + minetest.rotate_node(i, p, t, 0) + minetest.item_place(i, p, t) + end, + --]] + + + +-- Picking up were we left off... ~ LazyJ + + -- The "on_construct" part below, thinking in terms of layers, dirt_with_snow could + -- also double as dirt_with_frost which adds subtlety to the winterscape. ~ LazyJ + on_construct = function(pos) + pos.y = pos.y - 1 + if minetest.get_node(pos).name == "default:dirt_with_grass" + or minetest.get_node(pos).name == "default:dirt" + then minetest.set_node(pos, {name="default:dirt_with_snow"}) + end + -- Some ideas I've tried. Leaving for future reference till I can figure out a workable solution. ~ LazyJ + --minetest.log("action", sender:get_player_name().." places" ..minetest.get_node(pos).name.. "at" ..minetest.pos_to_string(pos)) + --minetest.log("action", minetest.get_player_name().." places" ..minetest.get_node(pos).name.. "at" ..minetest.pos_to_string(pos)) + --minetest.log("action", "BINGO places "..minetest.get_name().." at "..minetest.pos_to_string(pos)) + --minetest.log("action", minetest.get_player_name().." places "..minetest.get_name().." at "..minetest.pos_to_string(pos)) + --minetest.log("action", placer:get_player_name().." places moreblocks-something at "..minetest.pos_to_string(pos)) + --minetest.log("action", " BINGO places "..minetest.get_pointed_thing().." at "..minetest.pos_to_string(pos)) + --minetest.log("action", "BINGO places moreblocks"..ndef.." at "..minetest.pos_to_string(pos)) + --minetest.log("action", "A pine sapling grows into a Christmas tree at "..minetest.pos_to_string(pos)) + --return minetest.item_place(itemstack, placer, pointed_thing, param2) + --return minetest.item_place(itemstack, pointed_thing, param2) + end, + }) +end + +else -- from clear up at the top, the MoreBlocks check. "Else", if MoreBlocks wasn't found, skip + -- down to here, "return" nothing and "end" this script. ~ LazyJ +return +end diff --git a/mods/snow/src/util.lua b/mods/snow/src/util.lua new file mode 100644 index 00000000..20fdd2dd --- /dev/null +++ b/mods/snow/src/util.lua @@ -0,0 +1,155 @@ +--Global config and function table. +snow = { + legacy = true, + sleds = true, + enable_snowfall = true, + lighter_snowfall = false, + debug = false, + smooth_biomes = true, + christmas_content = true, + smooth_snow = true, + min_height = 3, +} + +--Config documentation. +local doc = { + legacy = "Whether you are running a legacy minetest version (auto-detected).", + sleds = "Disable this to prevent sleds from being riden.", + enable_snowfall = "Enables falling snow.", + lighter_snowfall = "Reduces the amount of resources and fps used by snowfall.", + debug = "Enables debug output.", + smooth_biomes = "Enables smooth transition of biomes", + christmas_content = "Disable this to remove christmas saplings from being found.", + smooth_snow = "Disable this to stop snow from being smoothed.", + min_height = "The minumum height a snow biome will generate.", +} + +--Manage config. +--Saves contents of config to file. +local function saveConfig(path, config, doc) + local file = io.open(path,"w") + if file then + for i,v in pairs(config) do + local t = type(v) + if t == "string" or t == "number" or t == "boolean" then + if doc and doc[i] then + file:write("# "..doc[i].."\n") + end + file:write(i.." = "..tostring(v).."\n") + end + end + end +end +--Loads config and returns config values inside table. +local function loadConfig(path) + local config = {} + local file = io.open(path,"r") + if file then + io.close(file) + for line in io.lines(path) do + if line:sub(1,1) ~= "#" then + i, v = line:match("^(%S*) = (%S*)") + if i and v then + if v == "true" then v = true end + if v == "false" then v = false end + if tonumber(v) then v = tonumber(v) end + config[i] = v + end + end + end + return config + else + --Create config file. + return nil + end +end + +minetest.register_on_shutdown(function() saveConfig(minetest.get_modpath("snow").."/config.txt", snow, doc) end) + +local config = loadConfig(minetest.get_modpath("snow").."/config.txt") +if config then + for i,v in pairs(config) do + if type(snow[i]) == type(v) then + snow[i] = v + end + end +else + saveConfig(minetest.get_modpath("snow").."/config.txt", snow, doc) +end + +for i,v in pairs(snow) do + local t = type(v) + if t == "string" or t == "number" or t == "boolean" then + local v = minetest.setting_get("snow_"..i) + if v ~= nil then + if v == "true" then v = true end + if v == "false" then v = false end + if tonumber(v) then v = tonumber(v) end + snow[i] = v + end + end +end + +--AUTO DETECT and/or OVERIDEN values-- + +--legacy-- +--Detect if we are running the latest minetest. +if minetest.register_on_mapgen_init then + snow.legacy = false +else + snow.legacy = true +end +if config and snow.legacy ~= config.legacy then + saveConfig(minetest.get_modpath("snow").."/config.txt", snow, doc) +end + +--MENU + +local get_formspec = function() + local p = -0.5 + local formspec = "label[0,-0.3;Settings:]" + for i,v in pairs(snow) do + local t = type(v) + if t == "string" or t == "number" then + p = p + 1.5 + formspec = formspec.."field[0.3,"..p..";2,1;snow:"..i..";"..i..";"..v.."]" + elseif t == "boolean" then + p = p + 0.5 + formspec = formspec.."checkbox[0,"..p..";snow:"..i..";"..i..";"..tostring(v).."]" + end + end + p = p + 1 + formspec = "size[4,"..p..";]\n"..formspec + return formspec +end + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname == "snow:menu" then + for i,v in pairs(snow) do + local t = type(v) + if t == "string" or t == "number" or t == "boolean" then + if fields["snow:"..i] then + if t == "string" then + snow[i] = fields["snow:"..i] + end + if t == "number" then + snow[i] = tonumber(fields["snow:"..i]) + end + if t == "boolean" then + if fields["snow:"..i] == "true" then snow[i] = true end + if fields["snow:"..i] == "false" then snow[i] = false end + end + end + end + end + end +end) + + +minetest.register_chatcommand("snow", { + description = "Show a menu for various actions", + privs = {server=true}, + func = function(name, param) + minetest.show_formspec(name, "snow:menu", get_formspec()) + end, +}) diff --git a/mods/snow/textures/character_snow_man.png b/mods/snow/textures/character_snow_man.png new file mode 100644 index 00000000..de0f3c1f Binary files /dev/null and b/mods/snow/textures/character_snow_man.png differ diff --git a/mods/snow/textures/character_snow_man_preview.png b/mods/snow/textures/character_snow_man_preview.png new file mode 100644 index 00000000..3d6abe23 Binary files /dev/null and b/mods/snow/textures/character_snow_man_preview.png differ diff --git a/mods/snow/textures/character_snow_man_preview_back.png b/mods/snow/textures/character_snow_man_preview_back.png new file mode 100644 index 00000000..f3bd7f81 Binary files /dev/null and b/mods/snow/textures/character_snow_man_preview_back.png differ diff --git a/mods/snow/textures/default_ice.png b/mods/snow/textures/default_ice.png new file mode 100644 index 00000000..14e4f563 Binary files /dev/null and b/mods/snow/textures/default_ice.png differ diff --git a/mods/snow/textures/default_ice.xcf b/mods/snow/textures/default_ice.xcf new file mode 100644 index 00000000..cadccac3 Binary files /dev/null and b/mods/snow/textures/default_ice.xcf differ diff --git a/mods/snow/textures/inkscape_default_ice.svg b/mods/snow/textures/inkscape_default_ice.svg new file mode 100644 index 00000000..106ce660 --- /dev/null +++ b/mods/snow/textures/inkscape_default_ice.svg @@ -0,0 +1,67 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/mods/snow/textures/mocha.png b/mods/snow/textures/mocha.png new file mode 100644 index 00000000..39394a27 Binary files /dev/null and b/mods/snow/textures/mocha.png differ diff --git a/mods/snow/textures/mocha.xcf b/mods/snow/textures/mocha.xcf new file mode 100644 index 00000000..931d90f2 Binary files /dev/null and b/mods/snow/textures/mocha.xcf differ diff --git a/mods/snow/textures/original_snow_snow_brick.png b/mods/snow/textures/original_snow_snow_brick.png new file mode 100644 index 00000000..47c85ee4 Binary files /dev/null and b/mods/snow/textures/original_snow_snow_brick.png differ diff --git a/mods/snow/textures/rect2985.png b/mods/snow/textures/rect2985.png new file mode 100644 index 00000000..a2dcfbfd Binary files /dev/null and b/mods/snow/textures/rect2985.png differ diff --git a/mods/snow/textures/snow_ice.png b/mods/snow/textures/snow_ice.png new file mode 100644 index 00000000..0c795ffa Binary files /dev/null and b/mods/snow/textures/snow_ice.png differ diff --git a/mods/snow/textures/snow_moss.png b/mods/snow/textures/snow_moss.png new file mode 100644 index 00000000..ddaeea3d Binary files /dev/null and b/mods/snow/textures/snow_moss.png differ diff --git a/mods/snow/textures/snow_needles.png b/mods/snow/textures/snow_needles.png new file mode 100644 index 00000000..b8140575 Binary files /dev/null and b/mods/snow/textures/snow_needles.png differ diff --git a/mods/snow/textures/snow_needles_decorated.png b/mods/snow/textures/snow_needles_decorated.png new file mode 100644 index 00000000..f3d6800f Binary files /dev/null and b/mods/snow/textures/snow_needles_decorated.png differ diff --git a/mods/snow/textures/snow_needles_decorated_animated.png b/mods/snow/textures/snow_needles_decorated_animated.png new file mode 100644 index 00000000..f7d67e13 Binary files /dev/null and b/mods/snow/textures/snow_needles_decorated_animated.png differ diff --git a/mods/snow/textures/snow_needles_decorated_animated.xcf b/mods/snow/textures/snow_needles_decorated_animated.xcf new file mode 100644 index 00000000..00b075e8 Binary files /dev/null and b/mods/snow/textures/snow_needles_decorated_animated.xcf differ diff --git a/mods/snow/textures/snow_sapling_pine.png b/mods/snow/textures/snow_sapling_pine.png new file mode 100644 index 00000000..cd8167a2 Binary files /dev/null and b/mods/snow/textures/snow_sapling_pine.png differ diff --git a/mods/snow/textures/snow_sled.png b/mods/snow/textures/snow_sled.png new file mode 100644 index 00000000..f18bc82d Binary files /dev/null and b/mods/snow/textures/snow_sled.png differ diff --git a/mods/snow/textures/snow_snow.png b/mods/snow/textures/snow_snow.png new file mode 100644 index 00000000..4290ca42 Binary files /dev/null and b/mods/snow/textures/snow_snow.png differ diff --git a/mods/snow/textures/snow_snow_brick.png b/mods/snow/textures/snow_snow_brick.png new file mode 100644 index 00000000..cd431839 Binary files /dev/null and b/mods/snow/textures/snow_snow_brick.png differ diff --git a/mods/snow/textures/snow_snow_brick.xcf b/mods/snow/textures/snow_snow_brick.xcf new file mode 100644 index 00000000..2fda149f Binary files /dev/null and b/mods/snow/textures/snow_snow_brick.xcf differ diff --git a/mods/snow/textures/snow_snow_brick_lazyJ.png b/mods/snow/textures/snow_snow_brick_lazyJ.png new file mode 100644 index 00000000..10b42d68 Binary files /dev/null and b/mods/snow/textures/snow_snow_brick_lazyJ.png differ diff --git a/mods/snow/textures/snow_snow_cobble.png b/mods/snow/textures/snow_snow_cobble.png new file mode 100644 index 00000000..83f96d1c Binary files /dev/null and b/mods/snow/textures/snow_snow_cobble.png differ diff --git a/mods/snow/textures/snow_snow_cobble.png_01 b/mods/snow/textures/snow_snow_cobble.png_01 new file mode 100644 index 00000000..e726395c Binary files /dev/null and b/mods/snow/textures/snow_snow_cobble.png_01 differ diff --git a/mods/snow/textures/snow_snow_cobble.xcf b/mods/snow/textures/snow_snow_cobble.xcf new file mode 100644 index 00000000..ff2be1f1 Binary files /dev/null and b/mods/snow/textures/snow_snow_cobble.xcf differ diff --git a/mods/snow/textures/snow_snow_side.png b/mods/snow/textures/snow_snow_side.png new file mode 100644 index 00000000..661c0864 Binary files /dev/null and b/mods/snow/textures/snow_snow_side.png differ diff --git a/mods/snow/textures/snow_snowball.png b/mods/snow/textures/snow_snowball.png new file mode 100644 index 00000000..8a4a14a2 Binary files /dev/null and b/mods/snow/textures/snow_snowball.png differ diff --git a/mods/snow/textures/snow_snowfall.png b/mods/snow/textures/snow_snowfall.png new file mode 100644 index 00000000..08922ad4 Binary files /dev/null and b/mods/snow/textures/snow_snowfall.png differ diff --git a/mods/snow/textures/snow_star.png b/mods/snow/textures/snow_star.png new file mode 100644 index 00000000..b168c247 Binary files /dev/null and b/mods/snow/textures/snow_star.png differ diff --git a/mods/snow/textures/snow_star_lit.png b/mods/snow/textures/snow_star_lit.png new file mode 100644 index 00000000..11579e34 Binary files /dev/null and b/mods/snow/textures/snow_star_lit.png differ diff --git a/mods/snow/textures/snow_star_lit.xcf b/mods/snow/textures/snow_star_lit.xcf new file mode 100644 index 00000000..ecaa73c6 Binary files /dev/null and b/mods/snow/textures/snow_star_lit.xcf differ diff --git a/mods/snow/textures/snow_xmas_tree.png b/mods/snow/textures/snow_xmas_tree.png new file mode 100644 index 00000000..357406c1 Binary files /dev/null and b/mods/snow/textures/snow_xmas_tree.png differ diff --git a/mods/snow/textures/weather_snow.png b/mods/snow/textures/weather_snow.png new file mode 100644 index 00000000..8c44f7af Binary files /dev/null and b/mods/snow/textures/weather_snow.png differ diff --git a/mods/snow/textures/xdefault_cobble.png b/mods/snow/textures/xdefault_cobble.png new file mode 100644 index 00000000..cf8896dc Binary files /dev/null and b/mods/snow/textures/xdefault_cobble.png differ diff --git a/mods/snow/textures/xdefault_furnace_bottom.png b/mods/snow/textures/xdefault_furnace_bottom.png new file mode 100644 index 00000000..2d19b6b1 Binary files /dev/null and b/mods/snow/textures/xdefault_furnace_bottom.png differ diff --git a/mods/snow/textures/xdefault_furnace_fire_bg.png b/mods/snow/textures/xdefault_furnace_fire_bg.png new file mode 100644 index 00000000..e98a4f61 Binary files /dev/null and b/mods/snow/textures/xdefault_furnace_fire_bg.png differ diff --git a/mods/snow/textures/xdefault_furnace_fire_fg.png b/mods/snow/textures/xdefault_furnace_fire_fg.png new file mode 100644 index 00000000..66aab652 Binary files /dev/null and b/mods/snow/textures/xdefault_furnace_fire_fg.png differ diff --git a/mods/snow/textures/xdefault_furnace_front.png b/mods/snow/textures/xdefault_furnace_front.png new file mode 100644 index 00000000..88069c7e Binary files /dev/null and b/mods/snow/textures/xdefault_furnace_front.png differ diff --git a/mods/snow/textures/xdefault_furnace_front_active.png b/mods/snow/textures/xdefault_furnace_front_active.png new file mode 100644 index 00000000..1c460be0 Binary files /dev/null and b/mods/snow/textures/xdefault_furnace_front_active.png differ diff --git a/mods/snow/textures/xdefault_furnace_side.png b/mods/snow/textures/xdefault_furnace_side.png new file mode 100644 index 00000000..2d19b6b1 Binary files /dev/null and b/mods/snow/textures/xdefault_furnace_side.png differ diff --git a/mods/snow/textures/xdefault_furnace_top.png b/mods/snow/textures/xdefault_furnace_top.png new file mode 100644 index 00000000..2d19b6b1 Binary files /dev/null and b/mods/snow/textures/xdefault_furnace_top.png differ diff --git a/mods/snow/textures/xdefault_glass.png b/mods/snow/textures/xdefault_glass.png new file mode 100644 index 00000000..ade0196f Binary files /dev/null and b/mods/snow/textures/xdefault_glass.png differ diff --git a/mods/snow/textures/xdefault_ice.png b/mods/snow/textures/xdefault_ice.png new file mode 100644 index 00000000..4aa583a3 Binary files /dev/null and b/mods/snow/textures/xdefault_ice.png differ diff --git a/mods/snow/textures/xdefault_ice.xcf b/mods/snow/textures/xdefault_ice.xcf new file mode 100644 index 00000000..425d2369 Binary files /dev/null and b/mods/snow/textures/xdefault_ice.xcf differ diff --git a/mods/snow/textures/xdefault_snow.png b/mods/snow/textures/xdefault_snow.png new file mode 100644 index 00000000..b4d0cc8d Binary files /dev/null and b/mods/snow/textures/xdefault_snow.png differ diff --git a/mods/snow/textures/xdefault_stone_brick.png b/mods/snow/textures/xdefault_stone_brick.png new file mode 100644 index 00000000..8032f7d9 Binary files /dev/null and b/mods/snow/textures/xdefault_stone_brick.png differ diff --git a/mods/snowdrift/README.txt b/mods/snowdrift/README.txt new file mode 100755 index 00000000..e7750310 --- /dev/null +++ b/mods/snowdrift/README.txt @@ -0,0 +1,4 @@ +snowdrift 0.3.0 by paramat +For latest stable Minetest and back to 0.4.9 dev after 13/01/14 +Depends default +Licenses: code WTFPL, textures CC BY-SA diff --git a/mods/snowdrift/depends.txt b/mods/snowdrift/depends.txt new file mode 100755 index 00000000..4ad96d51 --- /dev/null +++ b/mods/snowdrift/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/snowdrift/init.lua b/mods/snowdrift/init.lua new file mode 100644 index 00000000..f606c1b8 --- /dev/null +++ b/mods/snowdrift/init.lua @@ -0,0 +1,193 @@ +-- snowdrift 0.3.0 by paramat +-- For latest stable Minetest and back to 0.4.9 dev after 13/01/14 +-- Depends default +-- Licenses: code WTFPL, textures CC BY-SA + +-- snowfall heaviness parameter +-- rain off by default +-- snow and rain heavier by default +-- update particle spawn format + +-- Parameters + +local SCALP = 30 -- Time scale for precipitation in minutes +local PRET = 0.3 -- -1 to 1. Precipitation threshold: 1 none, -1 continuous, -0.3 two thirds the time, 0 half the time, 0.3 one third the time +local PPPCHA = 0.1 -- 0 to 1. Per player processing chance. Controls and randomizes processing load +local SETCHA = 0.2 -- 0 to 1. Snow settling chance +local FLAKES = 1 -- Snowfall heaviness. Try 1 on slower computers +local DROPS = 16 -- Rainfall heaviness. Reduce on slower computers +local SNOW = true -- Snowfall below temperature threshold +local SETTLE = true -- Snow collects on ground within 32 nodes of player +local RAIN = false -- Rain above humidity threshold +local THOVER = false -- Instead use a temperature and humidity system with + -- snow in overlap of cold and humid areas, else rain in humid areas + +-- Temperature noise parameters +local SEEDT = 112 -- 112 These are default noise parameters from snow mod by Splizard +local OCTAT = 3 -- 3 use these for snowfall in those snow biomes +local PERST = 0.5 -- 0.5 +local SCALT = 150 -- 150 +local TET = -0.53 -- -0.53 Temperature threshold for snow. Negative because here this noise is temperature, in snow mod it's coldness + +-- Humidity noise parameters +local SEEDH = 72384 -- 72384 These are default noise parameters for mapgen V6 humidity +local OCTAH = 4 -- 4 note these cause rain in deserts +local PERSH = 0.66 -- 0.66 +local SCALH = 500 -- 500 +local HUT = 0 -- Humidity threshold for rain + +-- Stuff + +snowdrift = {} + +-- Globalstep function + +minetest.register_globalstep(function(dtime) + local perlinp = minetest.get_perlin(813, 1, 0.5, SCALP) + if perlinp:get2d({x = os.clock()/60, y = 0}) < PRET then + return + end + for _, player in ipairs(minetest.get_connected_players()) do + if math.random() > PPPCHA then + return + end + local ppos = player:getpos() + if minetest.get_node_light(ppos, 0.5) ~= 15 then + return + end + local pposx = math.floor(ppos.x) + local pposy = math.floor(ppos.y) + local pposz = math.floor(ppos.z) + local snow = false + local rain = false + local noiset + local noiseh + if SNOW or THOVER then + local perlint = minetest.get_perlin(SEEDT, OCTAT, PERST, SCALT) + noiset = perlint:get2d({x = pposx, y = pposz}) + end + if RAIN or THOVER then + local perlinh = minetest.get_perlin(SEEDH, OCTAH, PERSH, SCALH) + noiseh = perlinh:get2d({x = pposx, y = pposz}) + end + if THOVER then + if noiset < TET and noiseh > HUT then + snow = true + elseif noiseh > HUT then + rain = true + end + elseif SNOW then + if -noiset < TET then -- negative sign because snow mod noise is 'coldness' + snow = true + elseif RAIN then + if noiseh > HUT then + rain = true + end + end + elseif RAIN then + if noiseh > HUT then + rain = true + end + end + if snow then + for flake = 1, FLAKES do + minetest.add_particle({ + pos = {x=pposx-32+math.random(0,63), y=pposy+16, z=pposz-16+math.random(0,63)}, + vel = {x=math.random()/5-0.1, y=math.random()/5-1.1, z=math.random()/5-1.1}, + acc = {x=math.random()/50-0.01, y=math.random()/50-0.01, z=math.random()/50-0.01}, + expirationtime = 32, + size = 2.8, + collisiondetection = false, + vertical = false, + texture = "snowdrift_snowflake1.png", + playername = player:get_player_name(), + }) + minetest.add_particle({ + pos = {x=pposx-32+math.random(0,63), y=pposy+16, z=pposz-16+math.random(0,63)}, + vel = {x=math.random()/5-0.1, y=math.random()/5-1.1, z=math.random()/5-1.1}, + acc = {x=math.random()/50-0.01, y=math.random()/50-0.01, z=math.random()/50-0.01}, + expirationtime = 32, + size = 2.8, + collisiondetection = false, + vertical = false, + texture = "snowdrift_snowflake2.png", + playername = player:get_player_name(), + }) + minetest.add_particle({ + pos = {x=pposx-32+math.random(0,63), y=pposy+16, z=pposz-16+math.random(0,63)}, + vel = {x=math.random()/5-0.1, y=math.random()/5-1.1, z=math.random()/5-1.1}, + acc = {x=math.random()/50-0.01, y=math.random()/50-0.01, z=math.random()/50-0.01}, + expirationtime = 32, + size = 2.8, + collisiondetection = false, + vertical = false, + texture = "snowdrift_snowflake3.png", + playername = player:get_player_name(), + }) + minetest.add_particle({ + pos = {x=pposx-32+math.random(0,63), y=pposy+16, z=pposz-16+math.random(0,63)}, + vel = {x=math.random()/5-0.1, y=math.random()/5-1.1, z=math.random()/5-1.1}, + acc = {x=math.random()/50-0.01, y=math.random()/50-0.01, z=math.random()/50-0.01}, + expirationtime = 32, + size = 2.8, + collisiondetection = false, + vertical = false, + texture = "snowdrift_snowflake4.png", + playername = player:get_player_name(), + }) + end + if SETTLE and math.random() < SETCHA then -- settling snow + local sposx = pposx - 32 + math.random(0, 63) + local sposz = pposz - 32 + math.random(0, 63) + if minetest.get_node_light({x=sposx, y=pposy+32, z=sposz}, 0.5) == 15 then -- check under open sky + for y = pposy + 32, pposy - 64, -1 do -- find surface + local nodename = minetest.get_node({x=sposx, y=y, z=sposz}).name + if nodename ~= "air" and nodename ~= "ignore" then + if nodename == "default:desert_sand" -- no snow on these + or nodename == "default:desert_stone" + or nodename == "default:water_source" then + break + else -- check node drawtype + local drawtype = minetest.registered_nodes[nodename].drawtype + if drawtype == "normal" + or drawtype == "glasslike" + or drawtype == "glasslike_framed" + or drawtype == "allfaces" + or drawtype == "allfaces_optional" then + if nodename == "default:dirt_with_grass" then + minetest.add_node({x=sposx, y=y, z=sposz}, {name="default:dirt_with_snow"}) + end + minetest.add_node({x=sposx, y=y+1, z=sposz}, {name="default:snow"}) + break + elseif drawtype == "plantlike" then -- dirt with snow added under plants + local unodename = minetest.get_node({x=sposx, y=y-1, z=sposz}).name + if unodename == "default:dirt_with_grass" then + minetest.add_node({x=sposx, y=y-1, z=sposz}, {name="default:dirt_with_snow"}) + end + break + else + break + end + end + end + end + end + end + end + if rain then + for drop = 1, DROPS do + minetest.add_particle({ + pos = {x=pposx-24+math.random(0,48), y=pposy+16, z=pposz-24+math.random(0,48)}, + vel = {x=0, y=-8, z=-1}, + acc = {x=0, y=0, z=0}, + expirationtime = 4, + size = 2.8, + collisiondetection = false, + vertical = false, + texture = "snowdrift_raindrop.png", + playername = player:get_player_name(), + }) + end + end + end +end) diff --git a/mods/snowdrift/license.txt b/mods/snowdrift/license.txt new file mode 100755 index 00000000..c73f8ae7 --- /dev/null +++ b/mods/snowdrift/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. + diff --git a/mods/snowdrift/textures/snowdrift_raindrop.png b/mods/snowdrift/textures/snowdrift_raindrop.png new file mode 100755 index 00000000..8716f472 Binary files /dev/null and b/mods/snowdrift/textures/snowdrift_raindrop.png differ diff --git a/mods/snowdrift/textures/snowdrift_snowflake1.png b/mods/snowdrift/textures/snowdrift_snowflake1.png new file mode 100755 index 00000000..b8d915fe Binary files /dev/null and b/mods/snowdrift/textures/snowdrift_snowflake1.png differ diff --git a/mods/snowdrift/textures/snowdrift_snowflake2.png b/mods/snowdrift/textures/snowdrift_snowflake2.png new file mode 100755 index 00000000..ca7cfc24 Binary files /dev/null and b/mods/snowdrift/textures/snowdrift_snowflake2.png differ diff --git a/mods/snowdrift/textures/snowdrift_snowflake3.png b/mods/snowdrift/textures/snowdrift_snowflake3.png new file mode 100755 index 00000000..1e961820 Binary files /dev/null and b/mods/snowdrift/textures/snowdrift_snowflake3.png differ diff --git a/mods/snowdrift/textures/snowdrift_snowflake4.png b/mods/snowdrift/textures/snowdrift_snowflake4.png new file mode 100755 index 00000000..5fe122c3 Binary files /dev/null and b/mods/snowdrift/textures/snowdrift_snowflake4.png differ diff --git a/mods/spawn/init.lua b/mods/spawn/init.lua new file mode 100644 index 00000000..6f2265d0 --- /dev/null +++ b/mods/spawn/init.lua @@ -0,0 +1,15 @@ +minetest.register_on_chat_message(function(name, message, playername, player) + local cmd = "/spawn" + if message:sub(0, #cmd) == cmd then + if message == '/spawn' then + local player = minetest.env:get_player_by_name(name) + if minetest.setting_get_pos("static_spawnpoint") then + minetest.chat_send_player(player:get_player_name(), "Teleporting to spawn...") + player:setpos(minetest.setting_get_pos("static_spawnpoint")) + else + minetest.chat_send_player(player:get_player_name(), "ERROR: No spawn point is set on this server!") + end + return true + end + end +end) diff --git a/mods/spawn/init.lua~ b/mods/spawn/init.lua~ new file mode 100644 index 00000000..e69de29b diff --git a/mods/sprint/LICENSE b/mods/sprint/LICENSE new file mode 100755 index 00000000..5875b207 --- /dev/null +++ b/mods/sprint/LICENSE @@ -0,0 +1,13 @@ + 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/sprint/README.md b/mods/sprint/README.md new file mode 100755 index 00000000..8fd06482 --- /dev/null +++ b/mods/sprint/README.md @@ -0,0 +1,3 @@ +Sprint mod v1 by GunshipPenguin + +Allows the player to sprint by double tapping w. By default, sprinting will make the player travel 50% faster and allow him/her to jump 10% higher. This can be changed however, by adjusting the SPRINT_SPEED and SPRINT_JUMP variables in the init.lua file. diff --git a/mods/sprint/init.lua b/mods/sprint/init.lua new file mode 100755 index 00000000..040dfc6c --- /dev/null +++ b/mods/sprint/init.lua @@ -0,0 +1,51 @@ +--Sprint mod for minetest by GunshipPenguin + +--CHANGE THESE VARIABLES TO ADJUST SPRINT SPEED/JUMP HEIGHT +--1 represents normal speed/jump height so 1.5 would mean 50% more and 2.0 would be 100% more +SPRINT_SPEED = 1.30 --Speed while sprinting +SPRINT_JUMP = 1.10 --Jump height while sprinting +STOP_ON_CLICK = true --If true, sprinting will stop when either the left mouse button or the right mouse button is pressed + +players = {} +minetest.register_on_joinplayer(function(player) + players[player:get_player_name()] = {state = 0, timeOut = 0} +end) +minetest.register_on_leaveplayer(function(player) + playerName = player:get_player_name() + players[playerName] = nil +end) +minetest.register_globalstep(function(dtime) + + --Loop through all connected players + for playerName,playerInfo in pairs(players) do + + player = minetest.get_player_by_name(playerName) + if player ~= nil then + playerMovement = player:get_player_control()["up"] + if player:get_player_control()["RMB"] or player:get_player_control()["LMB"] and STOP_ON_CLICK == true then + players[playerName]["state"] = 0 + player:set_physics_override({speed=1.0, jump=1.0}) + end + + if playerInfo["state"] == 2 then + players[playerName]["timeOut"] = players[playerName]["timeOut"] + 1 + if playerInfo["timeOut"] == 10 then + players[playerName]["timeOut"] = 0 + players[playerName]["state"] = 0 + end + end + + if playerMovement == false and playerInfo["state"] == 3 then --Stopped + players[playerName]["state"] = 0 + player:set_physics_override({speed=1.0,jump=1.0}) + elseif playerMovement == true and playerInfo["state"] == 0 then --Moving + players[playerName]["state"] = 1 + elseif playerMovement == false and playerInfo["state"] == 1 then --Primed + players[playerName]["state"] = 2 + elseif playerMovement == true and playerInfo["state"] == 2 then --Sprinting + players[playerName]["state"] = 3 + player:set_physics_override({speed=SPRINT_SPEED,jump=SPRINT_JUMP}) + end + end + end +end) diff --git a/mods/stained_glass/LICENSE b/mods/stained_glass/LICENSE new file mode 100755 index 00000000..e01d2312 --- /dev/null +++ b/mods/stained_glass/LICENSE @@ -0,0 +1,614 @@ +LICENSING INFORMATION + +For everything but the bucket textures, GPL 2.0 + +----- + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) 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 +this service 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 make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. 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. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +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 +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the 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 a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE 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. + + END OF TERMS AND CONDITIONS + +============================================================================== + +For the bucket textures, CC-BY-SA 3.0 + +----- + +CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL +SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT +RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. +CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND +DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. + +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE +COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY +COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS +AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE +BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE +CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE +IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + + "Adaptation" means a work based upon the Work, or upon the Work and other +pre-existing works, such as a translation, adaptation, derivative work, +arrangement of music or other alterations of a literary or artistic work, or +phonogram or performance and includes cinematographic adaptations or any other +form in which the Work may be recast, transformed, or adapted including in any +form recognizably derived from the original, except that a work that +constitutes a Collection will not be considered an Adaptation for the purpose +of this License. For the avoidance of doubt, where the Work is a musical work, +performance or phonogram, the synchronization of the Work in timed-relation +with a moving image ("synching") will be considered an Adaptation for the +purpose of this License. + "Collection" means a collection of literary or artistic works, such as +encyclopedias and anthologies, or performances, phonograms or broadcasts, or +other works or subject matter other than works listed in Section 1(f) below, +which, by reason of the selection and arrangement of their contents, constitute +intellectual creations, in which the Work is included in its entirety in +unmodified form along with one or more other contributions, each constituting +separate and independent works in themselves, which together are assembled into +a collective whole. A work that constitutes a Collection will not be considered +an Adaptation (as defined below) for the purposes of this License. + "Creative Commons Compatible License" means a license that is listed at +http://creativecommons.org/compatiblelicenses that has been approved by +Creative Commons as being essentially equivalent to this License, including, at +a minimum, because that license: (i) contains terms that have the same purpose, +meaning and effect as the License Elements of this License; and, (ii) +explicitly permits the relicensing of adaptations of works made available under +that license under this License or a Creative Commons jurisdiction license with +the same License Elements as this License. + "Distribute" means to make available to the public the original and copies +of the Work or Adaptation, as appropriate, through sale or other transfer of +ownership. + "License Elements" means the following high-level license attributes as +selected by Licensor and indicated in the title of this License: Attribution, +ShareAlike. + "Licensor" means the individual, individuals, entity or entities that +offer(s) the Work under the terms of this License. + "Original Author" means, in the case of a literary or artistic work, the +individual, individuals, entity or entities who created the Work or if no +individual or entity can be identified, the publisher; and in addition (i) in +the case of a performance the actors, singers, musicians, dancers, and other +persons who act, sing, deliver, declaim, play in, interpret or otherwise +perform literary or artistic works or expressions of folklore; (ii) in the case +of a phonogram the producer being the person or legal entity who first fixes +the sounds of a performance or other sounds; and, (iii) in the case of +broadcasts, the organization that transmits the broadcast. + "Work" means the literary and/or artistic work offered under the terms of +this License including without limitation any production in the literary, +scientific and artistic domain, whatever may be the mode or form of its +expression including digital form, such as a book, pamphlet and other writing; +a lecture, address, sermon or other work of the same nature; a dramatic or +dramatico-musical work; a choreographic work or entertainment in dumb show; a +musical composition with or without words; a cinematographic work to which are +assimilated works expressed by a process analogous to cinematography; a work of +drawing, painting, architecture, sculpture, engraving or lithography; a +photographic work to which are assimilated works expressed by a process +analogous to photography; a work of applied art; an illustration, map, plan, +sketch or three-dimensional work relative to geography, topography, +architecture or science; a performance; a broadcast; a phonogram; a compilation +of data to the extent it is protected as a copyrightable work; or a work +performed by a variety or circus performer to the extent it is not otherwise +considered a literary or artistic work. + "You" means an individual or entity exercising rights under this License +who has not previously violated the terms of this License with respect to the +Work, or who has received express permission from the Licensor to exercise +rights under this License despite a previous violation. + "Publicly Perform" means to perform public recitations of the Work and to +communicate to the public those public recitations, by any means or process, +including by wire or wireless means or public digital performances; to make +available to the public Works in such a way that members of the public may +access these Works from a place and at a place individually chosen by them; to +perform the Work to the public by any means or process and the communication to +the public of the performances of the Work, including by public digital +performance; to broadcast and rebroadcast the Work by any means including +signs, sounds or images. + "Reproduce" means to make copies of the Work by any means including without +limitation by sound or visual recordings and the right of fixation and +reproducing fixations of the Work, including storage of a protected performance +or phonogram in digital form or other electronic medium. + +2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, +or restrict any uses free from copyright or rights arising from limitations or +exceptions that are provided for in connection with the copyright protection +under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor +hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the +duration of the applicable copyright) license to exercise the rights in the +Work as stated below: + + to Reproduce the Work, to incorporate the Work into one or more +Collections, and to Reproduce the Work as incorporated in the Collections; + to create and Reproduce Adaptations provided that any such Adaptation, +including any translation in any medium, takes reasonable steps to clearly +label, demarcate or otherwise identify that changes were made to the original +Work. For example, a translation could be marked "The original work was +translated from English to Spanish," or a modification could indicate "The +original work has been modified."; + to Distribute and Publicly Perform the Work including as incorporated in +Collections; and, + to Distribute and Publicly Perform Adaptations. + + For the avoidance of doubt: + Non-waivable Compulsory License Schemes. In those jurisdictions in +which the right to collect royalties through any statutory or compulsory +licensing scheme cannot be waived, the Licensor reserves the exclusive right to +collect such royalties for any exercise by You of the rights granted under this +License; + Waivable Compulsory License Schemes. In those jurisdictions in which +the right to collect royalties through any statutory or compulsory licensing +scheme can be waived, the Licensor waives the exclusive right to collect such +royalties for any exercise by You of the rights granted under this License; +and, + Voluntary License Schemes. The Licensor waives the right to collect +royalties, whether individually or, in the event that the Licensor is a member +of a collecting society that administers voluntary licensing schemes, via that +society, from any exercise by You of the rights granted under this License. + +The above rights may be exercised in all media and formats whether now known or +hereafter devised. The above rights include the right to make such +modifications as are technically necessary to exercise the rights in other +media and formats. Subject to Section 8(f), all rights not expressly granted by +Licensor are hereby reserved. + +4. Restrictions. The license granted in Section 3 above is expressly made +subject to and limited by the following restrictions: + + You may Distribute or Publicly Perform the Work only under the terms of +this License. You must include a copy of, or the Uniform Resource Identifier +(URI) for, this License with every copy of the Work You Distribute or Publicly +Perform. You may not offer or impose any terms on the Work that restrict the +terms of this License or the ability of the recipient of the Work to exercise +the rights granted to that recipient under the terms of the License. You may +not sublicense the Work. You must keep intact all notices that refer to this +License and to the disclaimer of warranties with every copy of the Work You +Distribute or Publicly Perform. When You Distribute or Publicly Perform the +Work, You may not impose any effective technological measures on the Work that +restrict the ability of a recipient of the Work from You to exercise the rights +granted to that recipient under the terms of the License. This Section 4(a) +applies to the Work as incorporated in a Collection, but this does not require +the Collection apart from the Work itself to be made subject to the terms of +this License. If You create a Collection, upon notice from any Licensor You +must, to the extent practicable, remove from the Collection any credit as +required by Section 4(c), as requested. If You create an Adaptation, upon +notice from any Licensor You must, to the extent practicable, remove from the +Adaptation any credit as required by Section 4(c), as requested. + You may Distribute or Publicly Perform an Adaptation only under the terms +of: (i) this License; (ii) a later version of this License with the same +License Elements as this License; (iii) a Creative Commons jurisdiction license +(either this or a later license version) that contains the same License +Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a +Creative Commons Compatible License. If you license the Adaptation under one of +the licenses mentioned in (iv), you must comply with the terms of that license. +If you license the Adaptation under the terms of any of the licenses mentioned +in (i), (ii) or (iii) (the "Applicable License"), you must comply with the +terms of the Applicable License generally and the following provisions: (I) You +must include a copy of, or the URI for, the Applicable License with every copy +of each Adaptation You Distribute or Publicly Perform; (II) You may not offer +or impose any terms on the Adaptation that restrict the terms of the Applicable +License or the ability of the recipient of the Adaptation to exercise the +rights granted to that recipient under the terms of the Applicable License; +(III) You must keep intact all notices that refer to the Applicable License and +to the disclaimer of warranties with every copy of the Work as included in the +Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or +Publicly Perform the Adaptation, You may not impose any effective technological +measures on the Adaptation that restrict the ability of a recipient of the +Adaptation from You to exercise the rights granted to that recipient under the +terms of the Applicable License. This Section 4(b) applies to the Adaptation as +incorporated in a Collection, but this does not require the Collection apart +from the Adaptation itself to be made subject to the terms of the Applicable +License. + If You Distribute, or Publicly Perform the Work or any Adaptations or +Collections, You must, unless a request has been made pursuant to Section 4(a), +keep intact all copyright notices for the Work and provide, reasonable to the +medium or means You are utilizing: (i) the name of the Original Author (or +pseudonym, if applicable) if supplied, and/or if the Original Author and/or +Licensor designate another party or parties (e.g., a sponsor institute, +publishing entity, journal) for attribution ("Attribution Parties") in +Licensor's copyright notice, terms of service or by other reasonable means, the +name of such party or parties; (ii) the title of the Work if supplied; (iii) to +the extent reasonably practicable, the URI, if any, that Licensor specifies to +be associated with the Work, unless such URI does not refer to the copyright +notice or licensing information for the Work; and (iv) , consistent with +Ssection 3(b), in the case of an Adaptation, a credit identifying the use of +the Work in the Adaptation (e.g., "French translation of the Work by Original +Author," or "Screenplay based on original Work by Original Author"). The credit +required by this Section 4(c) may be implemented in any reasonable manner; +provided, however, that in the case of a Adaptation or Collection, at a minimum +such credit will appear, if a credit for all contributing authors of the +Adaptation or Collection appears, then as part of these credits and in a manner +at least as prominent as the credits for the other contributing authors. For +the avoidance of doubt, You may only use the credit required by this Section +for the purpose of attribution in the manner set out above and, by exercising +Your rights under this License, You may not implicitly or explicitly assert or +imply any connection with, sponsorship or endorsement by the Original Author, +Licensor and/or Attribution Parties, as appropriate, of You or Your use of the +Work, without the separate, express prior written permission of the Original +Author, Licensor and/or Attribution Parties. + Except as otherwise agreed in writing by the Licensor or as may be +otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly +Perform the Work either by itself or as part of any Adaptations or Collections, +You must not distort, mutilate, modify or take other derogatory action in +relation to the Work which would be prejudicial to the Original Author's honor +or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in +which any exercise of the right granted in Section 3(b) of this License (the +right to make Adaptations) would be deemed to be a distortion, mutilation, +modification or other derogatory action prejudicial to the Original Author's +honor and reputation, the Licensor will waive or not assert, as appropriate, +this Section, to the fullest extent permitted by the applicable national law, +to enable You to reasonably exercise Your right under Section 3(b) of this +License (right to make Adaptations) but not otherwise. + +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS +THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND +CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, +WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A +PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, +ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. +SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH +EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN +NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, +INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS +LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +7. Termination + + This License and the rights granted hereunder will terminate automatically +upon any breach by You of the terms of this License. Individuals or entities +who have received Adaptations or Collections from You under this License, +however, will not have their licenses terminated provided such individuals or +entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, +and 8 will survive any termination of this License. + Subject to the above terms and conditions, the license granted here is +perpetual (for the duration of the applicable copyright in the Work). +Notwithstanding the above, Licensor reserves the right to release the Work +under different license terms or to stop distributing the Work at any time; +provided, however that any such election will not serve to withdraw this +License (or any other license that has been, or is required to be, granted +under the terms of this License), and this License will continue in full force +and effect unless terminated as stated above. + +8. Miscellaneous + + Each time You Distribute or Publicly Perform the Work or a Collection, the +Licensor offers to the recipient a license to the Work on the same terms and +conditions as the license granted to You under this License. + Each time You Distribute or Publicly Perform an Adaptation, Licensor offers +to the recipient a license to the original Work on the same terms and +conditions as the license granted to You under this License. + If any provision of this License is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of the +remainder of the terms of this License, and without further action by the +parties to this agreement, such provision shall be reformed to the minimum +extent necessary to make such provision valid and enforceable. + No term or provision of this License shall be deemed waived and no breach +consented to unless such waiver or consent shall be in writing and signed by +the party to be charged with such waiver or consent. + This License constitutes the entire agreement between the parties with +respect to the Work licensed here. There are no understandings, agreements or +representations with respect to the Work not specified here. Licensor shall not +be bound by any additional provisions that may appear in any communication from +You. This License may not be modified without the mutual written agreement of +the Licensor and You. + The rights granted under, and the subject matter referenced, in this +License were drafted utilizing the terminology of the Berne Convention for the +Protection of Literary and Artistic Works (as amended on September 28, 1979), +the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO +Performances and Phonograms Treaty of 1996 and the Universal Copyright +Convention (as revised on July 24, 1971). These rights and subject matter take +effect in the relevant jurisdiction in which the License terms are sought to be +enforced according to the corresponding provisions of the implementation of +those treaty provisions in the applicable national law. If the standard suite +of rights granted under applicable copyright law includes additional rights not +granted under this License, such additional rights are deemed to be included in +the License; this License is not intended to restrict the license of any rights +under applicable law. + + Creative Commons Notice + + Creative Commons is not a party to this License, and makes no warranty +whatsoever in connection with the Work. Creative Commons will not be liable to +You or any party on any legal theory for any damages whatsoever, including +without limitation any general, special, incidental or consequential damages +arising in connection to this license. Notwithstanding the foregoing two (2) +sentences, if Creative Commons has expressly identified itself as the Licensor +hereunder, it shall have all rights and obligations of Licensor. + + Except for the limited purpose of indicating to the public that the Work is +licensed under the CCPL, Creative Commons does not authorize the use by either +party of the trademark "Creative Commons" or any related trademark or logo of +Creative Commons without the prior written consent of Creative Commons. Any +permitted use will be in compliance with Creative Commons' then-current +trademark usage guidelines, as may be published on its website or otherwise +made available upon request from time to time. For the avoidance of doubt, this +trademark restriction does not form part of the License. + + Creative Commons may be contacted at http://creativecommons.org/. diff --git a/mods/stained_glass/LICENSE.txt b/mods/stained_glass/LICENSE.txt new file mode 100755 index 00000000..d2700333 --- /dev/null +++ b/mods/stained_glass/LICENSE.txt @@ -0,0 +1,13 @@ ++---- zlib/libpng license----+ + +Copyright (c) 2012 Calinou + +This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source distribution. \ No newline at end of file diff --git a/mods/stained_glass/README.md b/mods/stained_glass/README.md new file mode 100755 index 00000000..bf60cbe2 --- /dev/null +++ b/mods/stained_glass/README.md @@ -0,0 +1,144 @@ + +Doyousketch2's Stained Glass mod +ver 1.2 + +Image: http://oi47.tinypic.com/hst6s3.jpg + +With alpha enabled: http://oi44.tinypic.com/5vraxf.jpg + +============================================================================== + +Dependencies: VanessaE's Unified Dyes, Calinou's More Blocks + +to Install: + +Unzip the mod file you just downloaded. + +it should be something like: Doyousketch2-stained_glass-1.1.zip +or stained_glass-master.zip, depending on where you downloaded it from + +rename the new folder that looks like: +Doyousketch2-stained_glass-1.1 -or- stained_glass-master +to simply read "stained_glass" + +then move it into your Minetest mods folder. + +============================================================================== + + +Recipe for standard colors: + +image: http://oi50.tinypic.com/1ibs7c.jpg + + dye + super glow glass + super glow glass + super glow glass + + +Recipe for pastel colors: + +image: http://oi45.tinypic.com/2wbvkti.jpg + + light dye + white paint + super glow glass + super glow glass + super glow glass + + +Recipe for faint colors: + +image: http://oi45.tinypic.com/2wbvkti.jpg + + light dye + white paint + white paint + super glow glass + super glow glass + super glow glass + + +All recipes produce three glowing stained glass blocks. +Pastel blocks give back an empty bucket. +Faint blocks give back two empty buckets. + + +============================================================================== + + +The Palette includes: + + red, orange, yellow, lime, green, aqua + cyan, skyblue, blue, violet, magenta, redviolet + +Full & half-saturation, medium and dark shades have been included +as well as light, pastel, and faint tints. + + +============================================================================== + + +Misc. Notes +----------- + +Please don't try to use /give commands, the items are now in numerical format, +and it would be tough to try to explain it. + +If you really want to try, it goes like this: + +yellow = 1 +lime = 2 +green = 3 +aqua = 4 +cyan = 5 +skyblue = 6 +blue = 7 +violet = 8 +magenta = 9 +redviolet = 10 +red = 11 +orange = 12 + + +however, minetest sees it in the order 10, 11, 12, 1, 2, 3... +so redviolet actually comes first. + +and for whatever reason, minetest doesn't take blank spaces _ into consideration. +so the attributes just act like the next column of digits. + +I had to offset them to keep it all in order. + +Brightness: + +dark = 3 +medium = 4 +full = 5 + +Saturation: + +50% = 6 +full = 7 + +so "Red, dark 50%" would be: stained_glass:11_3_6 +"Blue, medium full-saturation" is: stained_glass:7_4_7 + +then we get to the bright colors. + +same hue numbers, 1 - 12 +but the attributes are: + +light = 8 +pastel = 9 +faint = 91 + +so "Violet, light" is: stained_glass:8_8 +and ""Orange, faint" is: stained_glass:12_91 + +I think this is too much to keep track of, but I hope this explains things in case anybody else is developing code. +For everyday purposes, let the computer keep track of the registered nodes, and just pick them out with the menu instead. + + +============================================================================== + + diff --git a/mods/stained_glass/changelog.txt b/mods/stained_glass/changelog.txt new file mode 100755 index 00000000..eacf5d95 --- /dev/null +++ b/mods/stained_glass/changelog.txt @@ -0,0 +1,94 @@ + +Changelog + +--------- + +ver 1.1 + +Sun 24 Feb 2013 05:26:29 AM EST + +Faint was too faint in-game, so I made 'em look more the way I expected. + +Fixed recipes for pastel and faint blocks. + +Also, made certain the faint blocks return two buckets instead of only one. + +--------- + + +ver 1.0 + +Sun 24 Feb 2013 12:13:17 AM EST + + +Think everything's in order. + + +--------- + + +ver 0.9 + +Sat 23 Feb 2013 05:23:17 5M EST + +Added light colors. +Attempted to order colors by hue. +Turned out to be a lot harder than imagined. + +alpha-numeric order is goofy. + +I was thinking it was doing: 1, 10, 11, 12, 2, 3, 4... +but it was doing: 10, 11, 12, 1, 2, 3, 4... + +--------- + + +ver 0.8 + +Sat 23 Feb 2013 01:18:24 AM EST + +Fixed missing comma in script. + + +--------- + + +ver 0.7 + +Sat 23 Feb 2013 01:01:22 AM EST + +Added full saturation Medium and Dark shades. + + +--------- + + +ver 0.6 + +Fri 22 Feb 2013 08:27:53 PM EST + +Fixed a bug where I forgot a comma in the script. +Nothing major, but it wouldn't load unless it was in the right spot. + +The blocks light up nice and bright. Quite saturated. +Perhaps too intense for my purposes. + +Will create more subdued colors, much more like actual stained glass. +Especially pastels, and flesh tones. + +Perhaps turn the light intensity down. +Maybe make some/all of them out of standard glow glass instead. + + +--------- + + +ver 0.5 + +Fri 22 Feb 2013 06:42:24 PM EST + +Essentially the first version, but I'm starting at ver 0.5 because I want to check for bugs before it's released. + +Has the Full saturation colors included. (except for yellow, as super-glow-glass is already) +Haven't decided if/when I'll include the other colors. +Perhaps some/all eventually. diff --git a/mods/stained_glass/colors.txt b/mods/stained_glass/colors.txt new file mode 100755 index 00000000..ebf0a299 --- /dev/null +++ b/mods/stained_glass/colors.txt @@ -0,0 +1,148 @@ + + +Full-saturation colors: +----------------------- + + + red 255, 0, 0 stained_glass_red.png + orange 255,127, 0 stained_glass_orange.png + lime 127,255, 0 stained_glass_lime.png + green 0,255, 0 stained_glass_green.png + aqua 0,255,127 stained_glass_aqua.png + cyan 0,255,255 stained_glass_cyan.png + skyblue 0,127,255 stained_glass_skyblue.png + blue 0, 0,255 stained_glass_blue.png + violet 127, 0,255 stained_glass_violet.png + magenta 255, 0,255 stained_glass_magenta.png + redviolet 255, 0,127 stained_glass_redviolet.png + + + medium red 169, 0, 0 stained_glass_medium_red.png + medium orange 169, 84, 0 stained_glass_medium_orange.png + medium yellow 169,169, 0 stained_glass_medium_yellow.png + medium lime 84,169, 0 stained_glass_medium_lime.png + medium green 0,169, 0 stained_glass_medium_green.png + medium aqua 0,169, 84 stained_glass_medium_aqua.png + medium cyan 0,169,169 stained_glass_medium_cyan.png + medium skyblue 0, 84,169 stained_glass_medium_skyblue.png + medium blue 0, 0,169 stained_glass_medium_blue.png + medium violet 84, 0,169 stained_glass_medium_violet.png + medium magenta 169, 0,169 stained_glass_medium_magenta.png + medium redviolet 169, 0, 84 stained_glass_medium_redviolet.png + + + dark red 84, 0, 0 stained_glass_dark_red.png + dark orange 84, 42, 0 stained_glass_dark_orange.png + dark yellow 84, 84, 0 stained_glass_dark_yellow.png + dark lime 42, 84, 0 stained_glass_dark_lime.png + dark green 0, 84, 0 stained_glass_dark_green.png + dark aqua 0, 84, 42 stained_glass_dark_aqua.png + dark cyan 0, 84, 84 stained_glass_dark_cyan.png + dark skyblue 0, 42, 84 stained_glass_dark_skyblue.png + dark blue 0, 0, 84 stained_glass_dark_blue.png + dark violet 42, 0, 84 stained_glass_dark_violet.png + dark magenta 84, 0, 84 stained_glass_dark_magenta.png + dark redviolet 84, 0, 42 stained_glass_dark_redviolet.png + + + + + +Low-saturation colors: +---------------------- + + + red 50% saturation 191, 65, 65 stained_glass_red_s50.png + orange 50% saturation 191,127, 65 stained_glass_orange_s50.png + yellow 50% saturation 191,191, 65 stained_glass_yellow_s50.png + lime 50% saturation 127,191, 65 stained_glass_lime_s50.png + green 50% saturation 65,191, 65 stained_glass_green_s50.png + aqua 50% saturation 65,191,127 stained_glass_aqua_s50.png + cyan 50% saturation 65,191,191 stained_glass_cyan_s50.png + skyblue 50% saturation 65,127,191 stained_glass_skyblue_s50.png + blue 50% saturation 65, 65,191 stained_glass_blue_s50.png + violet 50% saturation 127, 65,191 stained_glass_violet_s50.png + magenta 50% saturation 191, 65,191 stained_glass_magenta_s50.png + redviolet 50% saturation 191, 65,127 stained_glass_redviolet_s50.png + + + + medium red 50% saturation 126, 42, 42 stained_glass_medium_red_s50.png + medium orange 50% saturation 126, 84, 42 stained_glass_medium_orange_s50.png + medium yellow 50% saturation 126,126, 42 stained_glass_medium_yellow_s50.png + medium lime 50% saturation 86,126, 42 stained_glass_medium_lime_s50.png + medium green 50% saturation 42,126, 42 stained_glass_medium_green_s50.png + medium aqua 50% saturation 42,126, 84 stained_glass_medium_aqua_s50.png + medium cyan 50% saturation 42,126,126 stained_glass_medium_cyan_s50.png + medium skyblue 50% saturation 42, 84,126 stained_glass_medium_skyblue_s50.png + medium blue 50% saturation 42, 42,126 stained_glass_medium_blue_s50.png + medium violet 50% saturation 86, 42,126 stained_glass_medium_violet_s50.png + medium magenta 50% saturation 126, 42,126 stained_glass_medium_magenta_s50.png + medium redviolet 50% saturation 126, 42, 84 stained_glass_medium_redviolet_s50.png + + + + dark red 50% saturation 63, 21, 21 stained_glass_dark_red_s50.png + dark orange 50% saturation 63, 42, 21 stained_glass_dark_orange_s50.png + dark yellow 50% saturation 63, 63, 21 stained_glass_dark_yellow_s50.png + dark lime 50% saturation 42, 63, 21 stained_glass_dark_lime_s50.png + dark green 50% saturation 21, 63, 21 stained_glass_dark_green_s50.png + dark aqua 50% saturation 21, 63, 42 stained_glass_dark_aqua_s50.png + dark cyan 50% saturation 21, 63, 63 stained_glass_dark_cyan_s50.png + dark skyblue 50% saturation 21, 42, 63 stained_glass_dark_skyblue_s50.png + dark blue 50% saturation 21, 21, 63 stained_glass_dark_blue_s50.png + dark violet 50% saturation 42, 21, 63 stained_glass_dark_violet_s50.png + dark magenta 50% saturation 63, 21, 63 stained_glass_dark_magenta_s50.png + dark redviolet 50% saturation 63, 21, 42 stained_glass_dark_redviolet_s50.png + + + + +Light colors: +---------------------- + + + light red 255,121,121 stained_glass_light_red.png + light orange 255,187,121 stained_glass_light_orange.png + light yellow 253,255,121 stained_glass_light_yellow.png + light lime 187,255,121 stained_glass_light_lime.png + light green 121,255,121 stained_glass_light_green.png + light aqua 121,255,187 stained_glass_light_aqua.png + light cyan 121,253,255 stained_glass_light_cyan.png + light skyblue 121,187,255 stained_glass_light_skyblue.png + light blue 121,121,255 stained_glass_light_blue.png + light violet 187,121,255 stained_glass_light_violet.png + light magenta 255,121,253 stained_glass_light_magenta.png + light redviolet 255,121,187 stained_glass_light_redviolet.png + + + + pastel red 255,187,187 stained_glass_pastel_red.png + pastel orange 255,221,187 stained_glass_pastel_orange.png + pastel yellow 254,255,187 stained_glass_pastel_yellow.png + pastel lime 221,255,187 stained_glass_pastel_lime.png + pastel green 187,255,187 stained_glass_pastel_green.png + pastel aqua 187,255,221 stained_glass_pastel_aqua.png + pastel cyan 187,254,255 stained_glass_pastel_cyan.png + pastel skyblue 187,221,255 stained_glass_pastel_skyblue.png + pastel blue 187,187,255 stained_glass_pastel_blue.png + pastel violet 221,187,255 stained_glass_pastel_violet.png + pastel magenta 255,187,254 stained_glass_pastel_magenta.png + pastel redviolet 255,187,221 stained_glass_pastel_redviolet.png + + + + faint red 255,219,219 stained_glass_faint_red.png + faint orange 255,237,219 stained_glass_faint_orange.png + faint yellow 254,255,219 stained_glass_faint_yellow.png + faint lime 237,255,219 stained_glass_faint_lime.png + faint green 219,255,219 stained_glass_faint_green.png + faint aqua 219,255,237 stained_glass_faint_aqua.png + faint cyan 219,254,255 stained_glass_faint_cyan.png + faint skyblue 219,237,255 stained_glass_faint_skyblue.png + faint blue 227,227,255 stained_glass_faint_blue.png + faint violet 237,219,255 stained_glass_faint_violet.png + faint magenta 255,219,254 stained_glass_faint_magenta.png + faint redviolet 255,219,237 stained_glass_faint_redviolet.png + + diff --git a/mods/stained_glass/depends.txt b/mods/stained_glass/depends.txt new file mode 100755 index 00000000..17fcb024 --- /dev/null +++ b/mods/stained_glass/depends.txt @@ -0,0 +1,3 @@ +default +moreblocks +unifieddyes diff --git a/mods/stained_glass/init.lua b/mods/stained_glass/init.lua new file mode 100755 index 00000000..50d88702 --- /dev/null +++ b/mods/stained_glass/init.lua @@ -0,0 +1,295 @@ +--[[ + +Stained Glass 1.2 + +This mod provides luminescent stained glass blocks for Minetest 0.4.x. + +Depends: +[moreblocks] by Calinou +[unifieddyes] by VanessaE + +============================================================================== +Sat 04 May 2013 01:52:35 PM EDT + +Copyright (C) 2013, Eli Innis +Email: doyousketch2 @ yahoo.com + +Unified Dyes was released under GNU-GPL 2.0, see LICENSE for info. +More Blocks was released under zlib/libpng for code and CC BY-SA 3.0 Unported for textures, see LICENSE.txt for info. + +============================================================================== + + +Recipe for standard colors: + +dye +super glow glass +super glow glass +super glow glass + + +Recipe for pastel colors: + +light dye +white paint +super glow glass +super glow glass +super glow glass + + +Recipe for faint colors: + +light dye +white paint +white paint +super glow glass +super glow glass +super glow glass + + +All recipes produce three glowing stained glass blocks. +Pastel blocks give back an empty bucket. +Faint blocks give back two empty buckets. + +============================================================================== +]]-- + + +-- HUES includes all colors for the various shades +-- I'm trying to get it to sort by color in the game, tho it sorts alpha-numerically... +-- so with 12 colors, it's sorting 10, 11, 12, 1, 2, 3, 4... + +HUES = { + "yellow", + "lime", + "green", + "aqua", + "cyan", + "skyblue", + "blue", + "violet", + "magenta", + "redviolet", + "red", + "orange" +} + + +-- Brightness levels in the textures are 33% ("dark"), 66% ("medium"), +-- 100% ("full"), 150% ("light"), 200% ("pastel"). +-- 1x and 2x are simply placeholders to fill in so numbers start at 3. + +BRIGHT = { + "1x", + "2x", + "dark_", + "medium_", + "", --(full) +} + + +-- Saturation - "s50" in a file/item name means "saturation: 50%". +-- 1x - 5x are simply placeholders so numbers start at 6. + + +SAT = { + "1x", + "2x", + "3x", + "4x", + "5x", + "_s50", + "" --(full) +} + + +--main loop for all 12 hues + +for h = 1, 12 do + + hues = HUES[h] + + + --nested loop for brightness + --starts at 3 to hopefully keep colors in order + + for b = 3, 5 do + + bright = BRIGHT[b] + + + --sub loop for saturation + --starts at 6 to keep colors in order + for s = 6, 7 do + + sat = SAT[s] + + + --register recipes + + minetest.register_craft({ + type = "shapeless", + output = "stained_glass:" .. (h) .. "_" .. (b) .. "_" .. (s) .." 3", + recipe = { + "unifieddyes:" .. bright .. hues .. sat, + "moreblocks:superglowglass", + "moreblocks:superglowglass", + "moreblocks:superglowglass", + }, + }) + + --register item attributes + + minetest.register_node("stained_glass:" .. (h) .. "_" .. (b) .. "_" .. (s), { + description = "Stained Glass - " .. bright .. hues .. sat, + drawtype = "glasslike", + tiles = {"stained_glass_" .. bright .. hues .. sat .. ".png"}, + paramtype = "light", + sunlight_propagates = true, + use_texture_alpha = true, + light_source = 14, + is_ground_content = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults() + }) + end --sat + + end --bright + +end --hues + + +--secondary loop for light blocks +--(as they don't have 50% saturation blocks to go along with 'em) + + +for h = 1, 12 do + + + hues = HUES[h] + + --register recipes (set at 8 to keep colors in order) + + minetest.register_craft({ + type = "shapeless", + output = "stained_glass:" .. (h) .. "_8 3", + recipe = { + "unifieddyes:light_" .. hues, + "moreblocks:superglowglass", + "moreblocks:superglowglass", + "moreblocks:superglowglass", + }, + }) + + --register item attributes + + minetest.register_node("stained_glass:" .. (h) .. "_8_", { + description = "Stained Glass - light_" .. hues, + drawtype = "glasslike", + tiles = {"stained_glass_light_" .. hues .. ".png"}, + paramtype = "light", + sunlight_propagates = true, + use_texture_alpha = true, + light_source = 14, + is_ground_content = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults() + }) + + +end --hues + + +--third loop for pastel blocks +--(as they don't have 50% saturation blocks to go along with 'em) +--(plus they have a diff recipe to create.) + + +for h = 1, 12 do + + + hues = HUES[h] + + --register recipes (set at 9 to keep colors in order) + + minetest.register_craft({ + type = "shapeless", + output = "stained_glass:" .. (h) .. "_9 3", + recipe = { + "unifieddyes:white_paint", + "unifieddyes:light_" .. hues, + "moreblocks:superglowglass", + "moreblocks:superglowglass", + "moreblocks:superglowglass", + }, + replacements = { {'unifieddyes:white_paint', 'bucket:bucket_empty'}, }, + }) + + --register item attributes + + minetest.register_node("stained_glass:" .. (h) .. "_9", { + description = "Stained Glass - pastel_" .. hues, + drawtype = "glasslike", + tiles = {"stained_glass_pastel_" .. hues .. ".png"}, + paramtype = "light", + sunlight_propagates = true, + use_texture_alpha = true, + light_source = 14, + is_ground_content = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults() + }) + + +end --hues + + +--last loop for faint blocks +--(as they don't have 50% saturation blocks to go along with 'em) +--(plus they have a diff recipe to create.) + + +for h = 1, 12 do + + + hues = HUES[h] + + --register recipes (set at 91 to keep colors in order) + + minetest.register_craft({ + type = "shapeless", + output = "stained_glass:" .. (h) .. "_91 3", + recipe = { + "unifieddyes:white_paint", + "unifieddyes:white_paint", + "unifieddyes:light_" .. hues, + "moreblocks:superglowglass", + "moreblocks:superglowglass", + "moreblocks:superglowglass", + }, + replacements = { {'unifieddyes:white_paint', 'bucket:bucket_empty 2'}, }, + }) + + --register item attributes + + minetest.register_node("stained_glass:" .. (h) .. "_91", { + description = "Stained Glass - faint_" .. hues, + drawtype = "glasslike", + tiles = {"stained_glass_faint_" .. hues .. ".png"}, + paramtype = "light", + sunlight_propagates = true, + use_texture_alpha = true, + light_source = 14, + is_ground_content = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults() + }) + + +end --hues + + +print("[stained_glass] Loaded!") + + + diff --git a/mods/stained_glass/init.lua~ b/mods/stained_glass/init.lua~ new file mode 100755 index 00000000..b9984483 --- /dev/null +++ b/mods/stained_glass/init.lua~ @@ -0,0 +1,299 @@ +--[[ + +Stained Glass 1.1 + +This mod provides luminescent stained glass blocks for Minetest 0.4.x. + +Depends: +[moreblocks] by Calinou +[unifieddyes] by VanessaE + +============================================================================== +Sun 24 Feb 2013 11:52:27 AM EST + +Copyright (C) 2013, Eli Innis +Email: doyousketch2 @ yahoo.com + +Unified Dyes was released under GNU-GPL 2.0, see LICENSE for info. +More Blocks was released under zlib/libpng for code and CC BY-SA 3.0 Unported for textures, see LICENSE.txt for info. + +============================================================================== + + +Recipe for standard colors: + +dye +super glow glass +super glow glass +super glow glass + + +Recipe for pastel colors: + +light dye +white paint +super glow glass +super glow glass +super glow glass + + +Recipe for faint colors: + +light dye +white paint +white paint +super glow glass +super glow glass +super glow glass + + +All recipes produce three glowing stained glass blocks. +Pastel blocks give back an empty bucket. +Faint blocks give back two empty buckets. + +============================================================================== +]]-- + + +-- HUES includes all colors for the various shades +-- I'm trying to get it to sort by color in the game, tho it sorts alpha-numerically... +-- so with 12 colors, it's sorting 10, 11, 12, 1, 2, 3, 4... + +HUES = { + "yellow", + "lime", + "green", + "aqua", + "cyan", + "skyblue", + "blue", + "violet", + "magenta", + "redviolet", + "red", + "orange" +} + + +-- Brightness levels in the textures are 33% ("dark"), 66% ("medium"), +-- 100% ("full"), 150% ("light"), 200% ("pastel"). +-- 1x and 2x are simply placeholders to fill in so numbers start at 3. + +BRIGHT = { + "1x", + "2x", + "dark_", + "medium_", + "", --(full) +} + + +-- Saturation - "s50" in a file/item name means "saturation: 50%". +-- 1x - 5x are simply placeholders so numbers start at 6. + + +SAT = { + "1x", + "2x", + "3x", + "4x", + "5x", + "_s50", + "" --(full) +} + + +--main loop for all 12 hues + +for h = 1, 12 do + + hues = HUES[h] + + + --nested loop for brightness + --starts at 3 to hopefully keep colors in order + + for b = 3, 5 do + + bright = BRIGHT[b] + + + --sub loop for saturation + --starts at 6 to keep colors in order + for s = 6, 7 do + + sat = SAT[s] + + + --register recipes + + minetest.register_craft({ + type = "shapeless", + output = "stained_glass:" .. (h) .. "_" .. (b) .. "_" .. (s) .." 3", + recipe = { + "unifieddyes:" .. bright .. hues .. sat, + "moreblocks:superglowglass", + "moreblocks:superglowglass", + "moreblocks:superglowglass", + }, + }) + + --register item attributes + + minetest.register_node("stained_glass:" .. (h) .. "_" .. (b) .. "_" .. (s), { + description = "Stained Glass - " .. bright .. hues .. sat, + drawtype = "glasslike", + tiles = {"stained_glass_" .. bright .. hues .. sat .. ".png"}, + inventory_image = minetest.inventorycube("stained_glass_" .. bright .. hues .. sat .. ".png"), + paramtype = "light", + sunlight_propagates = true, + use_texture_alpha = true, + light_source = 14, + is_ground_content = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults() + }) + end --sat + + end --bright + +end --hues + + +--secondary loop for light blocks +--(as they don't have 50% saturation blocks to go along with 'em) + + +for h = 1, 12 do + + + hues = HUES[h] + + --register recipes (set at 8 to keep colors in order) + + minetest.register_craft({ + type = "shapeless", + output = "stained_glass:" .. (h) .. "_8 3", + recipe = { + "unifieddyes:light_" .. hues, + "moreblocks:superglowglass", + "moreblocks:superglowglass", + "moreblocks:superglowglass", + }, + }) + + --register item attributes + + minetest.register_node("stained_glass:" .. (h) .. "_8_", { + description = "Stained Glass - light_" .. hues, + drawtype = "glasslike", + tiles = {"stained_glass_light_" .. hues .. ".png"}, + inventory_image = minetest.inventorycube("stained_glass_light_" .. hues .. ".png"), + paramtype = "light", + sunlight_propagates = true, + use_texture_alpha = true, + light_source = 14, + is_ground_content = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults() + }) + + +end --hues + + +--third loop for pastel blocks +--(as they don't have 50% saturation blocks to go along with 'em) +--(plus they have a diff recipe to create.) + + +for h = 1, 12 do + + + hues = HUES[h] + + --register recipes (set at 9 to keep colors in order) + + minetest.register_craft({ + type = "shapeless", + output = "stained_glass:" .. (h) .. "_9 3", + recipe = { + "unifieddyes:white_paint", + "unifieddyes:light_" .. hues, + "moreblocks:superglowglass", + "moreblocks:superglowglass", + "moreblocks:superglowglass", + }, + replacements = { {'unifieddyes:white_paint', 'bucket:bucket_empty'}, }, + }) + + --register item attributes + + minetest.register_node("stained_glass:" .. (h) .. "_9", { + description = "Stained Glass - pastel_" .. hues, + drawtype = "glasslike", + tiles = {"stained_glass_pastel_" .. hues .. ".png"}, + inventory_image = minetest.inventorycube("stained_glass_pastel_" .. hues .. ".png"), + paramtype = "light", + sunlight_propagates = true, + use_texture_alpha = true, + light_source = 14, + is_ground_content = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults() + }) + + +end --hues + + +--last loop for faint blocks +--(as they don't have 50% saturation blocks to go along with 'em) +--(plus they have a diff recipe to create.) + + +for h = 1, 12 do + + + hues = HUES[h] + + --register recipes (set at 91 to keep colors in order) + + minetest.register_craft({ + type = "shapeless", + output = "stained_glass:" .. (h) .. "_91 3", + recipe = { + "unifieddyes:white_paint", + "unifieddyes:white_paint", + "unifieddyes:light_" .. hues, + "moreblocks:superglowglass", + "moreblocks:superglowglass", + "moreblocks:superglowglass", + }, + replacements = { {'unifieddyes:white_paint', 'bucket:bucket_empty 2'}, }, + }) + + --register item attributes + + minetest.register_node("stained_glass:" .. (h) .. "_91", { + description = "Stained Glass - faint_" .. hues, + drawtype = "glasslike", + tiles = {"stained_glass_faint_" .. hues .. ".png"}, + inventory_image = minetest.inventorycube("stained_glass_faint_" .. hues .. ".png"), + paramtype = "light", + sunlight_propagates = true, + use_texture_alpha = true, + light_source = 14, + is_ground_content = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults() + }) + + +end --hues + + +print("[stained_glass] Loaded!") + + + diff --git a/mods/stained_glass/textures/stained_glass_aqua.png b/mods/stained_glass/textures/stained_glass_aqua.png new file mode 100755 index 00000000..1174f4ec Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_aqua.png differ diff --git a/mods/stained_glass/textures/stained_glass_aqua_s50.png b/mods/stained_glass/textures/stained_glass_aqua_s50.png new file mode 100755 index 00000000..34d77e7e Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_aqua_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_blue.png b/mods/stained_glass/textures/stained_glass_blue.png new file mode 100755 index 00000000..96ae7d2a Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_blue.png differ diff --git a/mods/stained_glass/textures/stained_glass_blue_s50.png b/mods/stained_glass/textures/stained_glass_blue_s50.png new file mode 100755 index 00000000..3472288b Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_blue_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_cyan.png b/mods/stained_glass/textures/stained_glass_cyan.png new file mode 100755 index 00000000..65bd86f6 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_cyan.png differ diff --git a/mods/stained_glass/textures/stained_glass_cyan_s50.png b/mods/stained_glass/textures/stained_glass_cyan_s50.png new file mode 100755 index 00000000..a72b1ee7 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_cyan_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_aqua.png b/mods/stained_glass/textures/stained_glass_dark_aqua.png new file mode 100755 index 00000000..6f01166e Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_aqua.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_aqua_s50.png b/mods/stained_glass/textures/stained_glass_dark_aqua_s50.png new file mode 100755 index 00000000..48f8d4de Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_aqua_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_blue.png b/mods/stained_glass/textures/stained_glass_dark_blue.png new file mode 100755 index 00000000..7bb62d0a Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_blue.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_blue_s50.png b/mods/stained_glass/textures/stained_glass_dark_blue_s50.png new file mode 100755 index 00000000..c320fbd6 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_blue_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_cyan.png b/mods/stained_glass/textures/stained_glass_dark_cyan.png new file mode 100755 index 00000000..35d1ac10 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_cyan.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_cyan_s50.png b/mods/stained_glass/textures/stained_glass_dark_cyan_s50.png new file mode 100755 index 00000000..1e80dc3f Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_cyan_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_green.png b/mods/stained_glass/textures/stained_glass_dark_green.png new file mode 100755 index 00000000..9eaf0275 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_green.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_green_s50.png b/mods/stained_glass/textures/stained_glass_dark_green_s50.png new file mode 100755 index 00000000..0df2e40c Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_green_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_lime.png b/mods/stained_glass/textures/stained_glass_dark_lime.png new file mode 100755 index 00000000..8d4eeda3 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_lime.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_lime_s50.png b/mods/stained_glass/textures/stained_glass_dark_lime_s50.png new file mode 100755 index 00000000..fb5173e3 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_lime_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_magenta.png b/mods/stained_glass/textures/stained_glass_dark_magenta.png new file mode 100755 index 00000000..b07a4da6 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_magenta.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_magenta_s50.png b/mods/stained_glass/textures/stained_glass_dark_magenta_s50.png new file mode 100755 index 00000000..7d94e326 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_magenta_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_orange.png b/mods/stained_glass/textures/stained_glass_dark_orange.png new file mode 100755 index 00000000..494ea50e Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_orange.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_orange_s50.png b/mods/stained_glass/textures/stained_glass_dark_orange_s50.png new file mode 100755 index 00000000..29b2c17d Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_orange_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_red.png b/mods/stained_glass/textures/stained_glass_dark_red.png new file mode 100755 index 00000000..6d1f166e Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_red.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_red_s50.png b/mods/stained_glass/textures/stained_glass_dark_red_s50.png new file mode 100755 index 00000000..19862617 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_red_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_redviolet.png b/mods/stained_glass/textures/stained_glass_dark_redviolet.png new file mode 100755 index 00000000..48f7861a Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_redviolet.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_redviolet_s50.png b/mods/stained_glass/textures/stained_glass_dark_redviolet_s50.png new file mode 100755 index 00000000..45d5efa7 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_redviolet_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_skyblue.png b/mods/stained_glass/textures/stained_glass_dark_skyblue.png new file mode 100755 index 00000000..12e21347 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_skyblue.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_skyblue_s50.png b/mods/stained_glass/textures/stained_glass_dark_skyblue_s50.png new file mode 100755 index 00000000..eb207813 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_skyblue_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_violet.png b/mods/stained_glass/textures/stained_glass_dark_violet.png new file mode 100755 index 00000000..ff6e95c8 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_violet.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_violet_s50.png b/mods/stained_glass/textures/stained_glass_dark_violet_s50.png new file mode 100755 index 00000000..c783fca1 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_violet_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_yellow.png b/mods/stained_glass/textures/stained_glass_dark_yellow.png new file mode 100755 index 00000000..3e091abc Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_yellow.png differ diff --git a/mods/stained_glass/textures/stained_glass_dark_yellow_s50.png b/mods/stained_glass/textures/stained_glass_dark_yellow_s50.png new file mode 100755 index 00000000..b21ca455 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_dark_yellow_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_faint_aqua.png b/mods/stained_glass/textures/stained_glass_faint_aqua.png new file mode 100755 index 00000000..5d4f8b28 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_faint_aqua.png differ diff --git a/mods/stained_glass/textures/stained_glass_faint_blue.png b/mods/stained_glass/textures/stained_glass_faint_blue.png new file mode 100755 index 00000000..328dee0b Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_faint_blue.png differ diff --git a/mods/stained_glass/textures/stained_glass_faint_cyan.png b/mods/stained_glass/textures/stained_glass_faint_cyan.png new file mode 100755 index 00000000..3ad33f9f Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_faint_cyan.png differ diff --git a/mods/stained_glass/textures/stained_glass_faint_green.png b/mods/stained_glass/textures/stained_glass_faint_green.png new file mode 100755 index 00000000..d45937eb Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_faint_green.png differ diff --git a/mods/stained_glass/textures/stained_glass_faint_lime.png b/mods/stained_glass/textures/stained_glass_faint_lime.png new file mode 100755 index 00000000..fbef2e94 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_faint_lime.png differ diff --git a/mods/stained_glass/textures/stained_glass_faint_magenta.png b/mods/stained_glass/textures/stained_glass_faint_magenta.png new file mode 100755 index 00000000..4d1669f2 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_faint_magenta.png differ diff --git a/mods/stained_glass/textures/stained_glass_faint_orange.png b/mods/stained_glass/textures/stained_glass_faint_orange.png new file mode 100755 index 00000000..e8af4882 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_faint_orange.png differ diff --git a/mods/stained_glass/textures/stained_glass_faint_red.png b/mods/stained_glass/textures/stained_glass_faint_red.png new file mode 100755 index 00000000..996129e8 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_faint_red.png differ diff --git a/mods/stained_glass/textures/stained_glass_faint_redviolet.png b/mods/stained_glass/textures/stained_glass_faint_redviolet.png new file mode 100755 index 00000000..01c8f85c Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_faint_redviolet.png differ diff --git a/mods/stained_glass/textures/stained_glass_faint_skyblue.png b/mods/stained_glass/textures/stained_glass_faint_skyblue.png new file mode 100755 index 00000000..ce01c2e6 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_faint_skyblue.png differ diff --git a/mods/stained_glass/textures/stained_glass_faint_violet.png b/mods/stained_glass/textures/stained_glass_faint_violet.png new file mode 100755 index 00000000..4cc866ca Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_faint_violet.png differ diff --git a/mods/stained_glass/textures/stained_glass_faint_yellow.png b/mods/stained_glass/textures/stained_glass_faint_yellow.png new file mode 100755 index 00000000..3340122c Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_faint_yellow.png differ diff --git a/mods/stained_glass/textures/stained_glass_green.png b/mods/stained_glass/textures/stained_glass_green.png new file mode 100755 index 00000000..3d016390 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_green.png differ diff --git a/mods/stained_glass/textures/stained_glass_green_s50.png b/mods/stained_glass/textures/stained_glass_green_s50.png new file mode 100755 index 00000000..5217edf1 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_green_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_light_aqua.png b/mods/stained_glass/textures/stained_glass_light_aqua.png new file mode 100755 index 00000000..f908c5ac Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_light_aqua.png differ diff --git a/mods/stained_glass/textures/stained_glass_light_blue.png b/mods/stained_glass/textures/stained_glass_light_blue.png new file mode 100755 index 00000000..d4b38aae Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_light_blue.png differ diff --git a/mods/stained_glass/textures/stained_glass_light_cyan.png b/mods/stained_glass/textures/stained_glass_light_cyan.png new file mode 100755 index 00000000..2de626b9 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_light_cyan.png differ diff --git a/mods/stained_glass/textures/stained_glass_light_green.png b/mods/stained_glass/textures/stained_glass_light_green.png new file mode 100755 index 00000000..a5ad9130 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_light_green.png differ diff --git a/mods/stained_glass/textures/stained_glass_light_lime.png b/mods/stained_glass/textures/stained_glass_light_lime.png new file mode 100755 index 00000000..fafda549 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_light_lime.png differ diff --git a/mods/stained_glass/textures/stained_glass_light_magenta.png b/mods/stained_glass/textures/stained_glass_light_magenta.png new file mode 100755 index 00000000..2e2f4f57 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_light_magenta.png differ diff --git a/mods/stained_glass/textures/stained_glass_light_orange.png b/mods/stained_glass/textures/stained_glass_light_orange.png new file mode 100755 index 00000000..36a4dcc3 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_light_orange.png differ diff --git a/mods/stained_glass/textures/stained_glass_light_red.png b/mods/stained_glass/textures/stained_glass_light_red.png new file mode 100755 index 00000000..31e81f6a Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_light_red.png differ diff --git a/mods/stained_glass/textures/stained_glass_light_redviolet.png b/mods/stained_glass/textures/stained_glass_light_redviolet.png new file mode 100755 index 00000000..1500ec50 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_light_redviolet.png differ diff --git a/mods/stained_glass/textures/stained_glass_light_skyblue.png b/mods/stained_glass/textures/stained_glass_light_skyblue.png new file mode 100755 index 00000000..9211d63d Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_light_skyblue.png differ diff --git a/mods/stained_glass/textures/stained_glass_light_violet.png b/mods/stained_glass/textures/stained_glass_light_violet.png new file mode 100755 index 00000000..3bc71dc1 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_light_violet.png differ diff --git a/mods/stained_glass/textures/stained_glass_light_yellow.png b/mods/stained_glass/textures/stained_glass_light_yellow.png new file mode 100755 index 00000000..2f592e9a Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_light_yellow.png differ diff --git a/mods/stained_glass/textures/stained_glass_lime.png b/mods/stained_glass/textures/stained_glass_lime.png new file mode 100755 index 00000000..6b30e34a Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_lime.png differ diff --git a/mods/stained_glass/textures/stained_glass_lime_s50.png b/mods/stained_glass/textures/stained_glass_lime_s50.png new file mode 100755 index 00000000..a29e47cc Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_lime_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_magenta.png b/mods/stained_glass/textures/stained_glass_magenta.png new file mode 100755 index 00000000..628791bf Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_magenta.png differ diff --git a/mods/stained_glass/textures/stained_glass_magenta_s50.png b/mods/stained_glass/textures/stained_glass_magenta_s50.png new file mode 100755 index 00000000..57bbd86b Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_magenta_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_aqua.png b/mods/stained_glass/textures/stained_glass_medium_aqua.png new file mode 100755 index 00000000..bd24278a Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_aqua.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_aqua_s50.png b/mods/stained_glass/textures/stained_glass_medium_aqua_s50.png new file mode 100755 index 00000000..83fc532c Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_aqua_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_blue.png b/mods/stained_glass/textures/stained_glass_medium_blue.png new file mode 100755 index 00000000..4f301463 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_blue.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_blue_s50.png b/mods/stained_glass/textures/stained_glass_medium_blue_s50.png new file mode 100755 index 00000000..58c27c4a Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_blue_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_cyan.png b/mods/stained_glass/textures/stained_glass_medium_cyan.png new file mode 100755 index 00000000..c4e7e810 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_cyan.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_cyan_s50.png b/mods/stained_glass/textures/stained_glass_medium_cyan_s50.png new file mode 100755 index 00000000..cc4eb567 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_cyan_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_green.png b/mods/stained_glass/textures/stained_glass_medium_green.png new file mode 100755 index 00000000..23e6f74b Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_green.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_green_s50.png b/mods/stained_glass/textures/stained_glass_medium_green_s50.png new file mode 100755 index 00000000..cba45a90 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_green_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_lime.png b/mods/stained_glass/textures/stained_glass_medium_lime.png new file mode 100755 index 00000000..206af4c3 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_lime.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_lime_s50.png b/mods/stained_glass/textures/stained_glass_medium_lime_s50.png new file mode 100755 index 00000000..aacbdce7 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_lime_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_magenta.png b/mods/stained_glass/textures/stained_glass_medium_magenta.png new file mode 100755 index 00000000..a7399815 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_magenta.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_magenta_s50.png b/mods/stained_glass/textures/stained_glass_medium_magenta_s50.png new file mode 100755 index 00000000..6d26ddbf Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_magenta_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_orange.png b/mods/stained_glass/textures/stained_glass_medium_orange.png new file mode 100755 index 00000000..e35d7ed6 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_orange.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_orange_s50.png b/mods/stained_glass/textures/stained_glass_medium_orange_s50.png new file mode 100755 index 00000000..e4147083 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_orange_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_red.png b/mods/stained_glass/textures/stained_glass_medium_red.png new file mode 100755 index 00000000..9c05709b Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_red.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_red_s50.png b/mods/stained_glass/textures/stained_glass_medium_red_s50.png new file mode 100755 index 00000000..d99419dc Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_red_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_redviolet.png b/mods/stained_glass/textures/stained_glass_medium_redviolet.png new file mode 100755 index 00000000..50c892a6 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_redviolet.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_redviolet_s50.png b/mods/stained_glass/textures/stained_glass_medium_redviolet_s50.png new file mode 100755 index 00000000..76b39e51 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_redviolet_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_skyblue.png b/mods/stained_glass/textures/stained_glass_medium_skyblue.png new file mode 100755 index 00000000..4e97839a Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_skyblue.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_skyblue_s50.png b/mods/stained_glass/textures/stained_glass_medium_skyblue_s50.png new file mode 100755 index 00000000..1e75e787 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_skyblue_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_violet.png b/mods/stained_glass/textures/stained_glass_medium_violet.png new file mode 100755 index 00000000..a0510985 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_violet.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_violet_s50.png b/mods/stained_glass/textures/stained_glass_medium_violet_s50.png new file mode 100755 index 00000000..0f8397fe Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_violet_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_yellow.png b/mods/stained_glass/textures/stained_glass_medium_yellow.png new file mode 100755 index 00000000..b6e28eb6 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_yellow.png differ diff --git a/mods/stained_glass/textures/stained_glass_medium_yellow_s50.png b/mods/stained_glass/textures/stained_glass_medium_yellow_s50.png new file mode 100755 index 00000000..c9e4af52 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_medium_yellow_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_orange.png b/mods/stained_glass/textures/stained_glass_orange.png new file mode 100755 index 00000000..24a6d3d7 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_orange.png differ diff --git a/mods/stained_glass/textures/stained_glass_orange_s50.png b/mods/stained_glass/textures/stained_glass_orange_s50.png new file mode 100755 index 00000000..999c9ce9 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_orange_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_pastel_aqua.png b/mods/stained_glass/textures/stained_glass_pastel_aqua.png new file mode 100755 index 00000000..aa976eef Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_pastel_aqua.png differ diff --git a/mods/stained_glass/textures/stained_glass_pastel_blue.png b/mods/stained_glass/textures/stained_glass_pastel_blue.png new file mode 100755 index 00000000..63a2b3ef Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_pastel_blue.png differ diff --git a/mods/stained_glass/textures/stained_glass_pastel_cyan.png b/mods/stained_glass/textures/stained_glass_pastel_cyan.png new file mode 100755 index 00000000..08424a61 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_pastel_cyan.png differ diff --git a/mods/stained_glass/textures/stained_glass_pastel_green.png b/mods/stained_glass/textures/stained_glass_pastel_green.png new file mode 100755 index 00000000..cf508231 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_pastel_green.png differ diff --git a/mods/stained_glass/textures/stained_glass_pastel_lime.png b/mods/stained_glass/textures/stained_glass_pastel_lime.png new file mode 100755 index 00000000..c02cf25f Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_pastel_lime.png differ diff --git a/mods/stained_glass/textures/stained_glass_pastel_magenta.png b/mods/stained_glass/textures/stained_glass_pastel_magenta.png new file mode 100755 index 00000000..5223e250 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_pastel_magenta.png differ diff --git a/mods/stained_glass/textures/stained_glass_pastel_orange.png b/mods/stained_glass/textures/stained_glass_pastel_orange.png new file mode 100755 index 00000000..87a8e201 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_pastel_orange.png differ diff --git a/mods/stained_glass/textures/stained_glass_pastel_red.png b/mods/stained_glass/textures/stained_glass_pastel_red.png new file mode 100755 index 00000000..a4b897d7 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_pastel_red.png differ diff --git a/mods/stained_glass/textures/stained_glass_pastel_redviolet.png b/mods/stained_glass/textures/stained_glass_pastel_redviolet.png new file mode 100755 index 00000000..b5255cfc Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_pastel_redviolet.png differ diff --git a/mods/stained_glass/textures/stained_glass_pastel_skyblue.png b/mods/stained_glass/textures/stained_glass_pastel_skyblue.png new file mode 100755 index 00000000..58ae1fac Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_pastel_skyblue.png differ diff --git a/mods/stained_glass/textures/stained_glass_pastel_violet.png b/mods/stained_glass/textures/stained_glass_pastel_violet.png new file mode 100755 index 00000000..a3b362e6 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_pastel_violet.png differ diff --git a/mods/stained_glass/textures/stained_glass_pastel_yellow.png b/mods/stained_glass/textures/stained_glass_pastel_yellow.png new file mode 100755 index 00000000..9e336cd7 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_pastel_yellow.png differ diff --git a/mods/stained_glass/textures/stained_glass_red.png b/mods/stained_glass/textures/stained_glass_red.png new file mode 100755 index 00000000..1541cd0a Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_red.png differ diff --git a/mods/stained_glass/textures/stained_glass_red_s50.png b/mods/stained_glass/textures/stained_glass_red_s50.png new file mode 100755 index 00000000..0579c74f Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_red_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_redviolet.png b/mods/stained_glass/textures/stained_glass_redviolet.png new file mode 100755 index 00000000..b03da157 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_redviolet.png differ diff --git a/mods/stained_glass/textures/stained_glass_redviolet_s50.png b/mods/stained_glass/textures/stained_glass_redviolet_s50.png new file mode 100755 index 00000000..7ef47008 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_redviolet_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_skyblue.png b/mods/stained_glass/textures/stained_glass_skyblue.png new file mode 100755 index 00000000..83ecf0cc Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_skyblue.png differ diff --git a/mods/stained_glass/textures/stained_glass_skyblue_s50.png b/mods/stained_glass/textures/stained_glass_skyblue_s50.png new file mode 100755 index 00000000..cf718f95 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_skyblue_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_violet.png b/mods/stained_glass/textures/stained_glass_violet.png new file mode 100755 index 00000000..531a2f01 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_violet.png differ diff --git a/mods/stained_glass/textures/stained_glass_violet_s50.png b/mods/stained_glass/textures/stained_glass_violet_s50.png new file mode 100755 index 00000000..2814673d Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_violet_s50.png differ diff --git a/mods/stained_glass/textures/stained_glass_yellow.png b/mods/stained_glass/textures/stained_glass_yellow.png new file mode 100755 index 00000000..b2c5fb41 Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_yellow.png differ diff --git a/mods/stained_glass/textures/stained_glass_yellow_s50.png b/mods/stained_glass/textures/stained_glass_yellow_s50.png new file mode 100755 index 00000000..6e8cdfef Binary files /dev/null and b/mods/stained_glass/textures/stained_glass_yellow_s50.png differ diff --git a/mods/throwing/README.txt b/mods/throwing/README.txt new file mode 100755 index 00000000..b7fbde48 --- /dev/null +++ b/mods/throwing/README.txt @@ -0,0 +1,47 @@ +=== THROWING-MOD for MINETEST === +by PilzAdam + +Inroduction: +This mod adds bows and arrows to Minetest. + +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 a bow with the strings from the farming mod: +string wood +string wood +string wood +Craft arrows with: +stick stick steel +Select the bow and shoot with left mouse click. Every shoot will take 1 +arrow from your inventory and wears out the bow (you have around 50 +shoots). + +License: +This mod was originally published by Jeija. +Sourcecode: WTFPL (see below) +Grahpics: 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/throwing/arrow.lua b/mods/throwing/arrow.lua new file mode 100755 index 00000000..cdd735b7 --- /dev/null +++ b/mods/throwing/arrow.lua @@ -0,0 +1,98 @@ +minetest.register_craftitem("throwing:arrow", { + description = "Arrow", + inventory_image = "throwing_arrow.png", +}) + +minetest.register_node("throwing:arrow_box", { + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + -- Shaft + {-6.5/17, -1.5/17, -1.5/17, 6.5/17, 1.5/17, 1.5/17}, + -- Spitze + {-4.5/17, 2.5/17, 2.5/17, -3.5/17, -2.5/17, -2.5/17}, + {-8.5/17, 0.5/17, 0.5/17, -6.5/17, -0.5/17, -0.5/17}, + -- Federn + {6.5/17, 1.5/17, 1.5/17, 7.5/17, 2.5/17, 2.5/17}, + {7.5/17, -2.5/17, 2.5/17, 6.5/17, -1.5/17, 1.5/17}, + {7.5/17, 2.5/17, -2.5/17, 6.5/17, 1.5/17, -1.5/17}, + {6.5/17, -1.5/17, -1.5/17, 7.5/17, -2.5/17, -2.5/17}, + + {7.5/17, 2.5/17, 2.5/17, 8.5/17, 3.5/17, 3.5/17}, + {8.5/17, -3.5/17, 3.5/17, 7.5/17, -2.5/17, 2.5/17}, + {8.5/17, 3.5/17, -3.5/17, 7.5/17, 2.5/17, -2.5/17}, + {7.5/17, -2.5/17, -2.5/17, 8.5/17, -3.5/17, -3.5/17}, + } + }, + tiles = {"throwing_arrow.png", "throwing_arrow.png", "throwing_arrow_back.png", "throwing_arrow_front.png", "throwing_arrow_2.png", "throwing_arrow.png"}, + groups = {not_in_creative_inventory = 1}, +}) + +local THROWING_ARROW_ENTITY = { + physical = false, + timer = 0, + visual = "wielditem", + visual_size = {x = 0.125, y = 0.125}, + textures = {"throwing:arrow_box"}, + lastpos= {}, + collisionbox = {0, 0, 0, 0, 0, 0}, +} + +THROWING_ARROW_ENTITY.on_step = function(self, dtime) + self.timer = self.timer + dtime + local pos = self.object:getpos() + local node = minetest.get_node(pos) + + if self.timer > 0.2 then + local objs = minetest.get_objects_inside_radius({x = pos.x, y = pos.y, z = pos.z}, 1) + for k, obj in pairs(objs) do + if obj:get_luaentity() ~= nil then + if obj:get_luaentity().name ~= "throwing:arrow_entity" and obj:get_luaentity().name ~= "__builtin:item" then + local damage = 3 + obj:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups= {fleshy = damage}, + }, nil) + minetest.sound_play("throwing_arrow", {pos = self.lastpos, gain = 0.8}) + self.object:remove() + end + else + local damage = 3 + obj:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups= {fleshy = damage}, + }, nil) + minetest.sound_play("throwing_arrow", {pos = self.lastpos, gain = 0.8}) + self.object:remove() + end + end + end + + if self.lastpos.x ~= nil then + if minetest.registered_nodes[node.name].walkable then + if not minetest.setting_getbool("creative_mode") then + minetest.add_item(self.lastpos, "throwing:arrow") + end + minetest.sound_play("throwing_arrow", {pos = self.lastpos, gain = 0.8}) + self.object:remove() + end + end + self.lastpos= {x = pos.x, y = pos.y, z = pos.z} +end + +minetest.register_entity("throwing:arrow_entity", THROWING_ARROW_ENTITY) + +minetest.register_craft({ + output = "throwing:arrow 16", + recipe = { + {"default:stick", "default:stick", "group:ingot"}, + } +}) + +minetest.register_craft({ + output = "throwing:arrow 16", + recipe = { + {"group:ingot", "default:stick", "default:stick"}, + } +}) diff --git a/mods/throwing/build_arrow.lua b/mods/throwing/build_arrow.lua new file mode 100755 index 00000000..522dd364 --- /dev/null +++ b/mods/throwing/build_arrow.lua @@ -0,0 +1,95 @@ +minetest.register_craftitem("throwing:arrow_build", { + description = "Build Arrow", + inventory_image = "throwing_arrow_build.png", +}) + +minetest.register_node("throwing:arrow_build_box", { + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + -- Shaft + {-6.5/17, -1.5/17, -1.5/17, 6.5/17, 1.5/17, 1.5/17}, + -- Spitze + {-4.5/17, 2.5/17, 2.5/17, -3.5/17, -2.5/17, -2.5/17}, + {-8.5/17, 0.5/17, 0.5/17, -6.5/17, -0.5/17, -0.5/17}, + -- Federn + {6.5/17, 1.5/17, 1.5/17, 7.5/17, 2.5/17, 2.5/17}, + {7.5/17, -2.5/17, 2.5/17, 6.5/17, -1.5/17, 1.5/17}, + {7.5/17, 2.5/17, -2.5/17, 6.5/17, 1.5/17, -1.5/17}, + {6.5/17, -1.5/17, -1.5/17, 7.5/17, -2.5/17, -2.5/17}, + + {7.5/17, 2.5/17, 2.5/17, 8.5/17, 3.5/17, 3.5/17}, + {8.5/17, -3.5/17, 3.5/17, 7.5/17, -2.5/17, 2.5/17}, + {8.5/17, 3.5/17, -3.5/17, 7.5/17, 2.5/17, -2.5/17}, + {7.5/17, -2.5/17, -2.5/17, 8.5/17, -3.5/17, -3.5/17}, + } + }, + tiles = {"throwing_arrow_build.png", "throwing_arrow_build.png", "throwing_arrow_build_back.png", "throwing_arrow_build_front.png", "throwing_arrow_build_2.png", "throwing_arrow_build.png"}, + groups = {not_in_creative_inventory = 1}, +}) + +local THROWING_ARROW_ENTITY = { + physical = false, + timer = 0, + visual = "wielditem", + visual_size = {x = 0.125, y = 0.125}, + textures = {"throwing:arrow_build_box"}, + lastpos= {}, + collisionbox = {0, 0, 0, 0, 0, 0}, + node = "", +} + +THROWING_ARROW_ENTITY.on_step = function(self, dtime) + self.timer = self.timer + dtime + local pos = self.object:getpos() + local node = minetest.get_node(pos) + + if self.timer > 0.2 then + local objs = minetest.get_objects_inside_radius({x = pos.x, y = pos.y, z = pos.z}, 1) + for k, obj in pairs(objs) do + if obj:get_luaentity() ~= nil then + if obj:get_luaentity().name ~= "throwing:arrow_build_entity" and obj:get_luaentity().name ~= "__builtin:item" then + if self.node ~= "" then + minetest.set_node(self.lastpos, {name="default:obsidian_glass"}) + minetest.sound_play("throwing_build_arrow", {pos = self.lastpos}) + end + self.object:remove() + end + else + if self.node ~= "" then + minetest.set_node(self.lastpos, {name="default:obsidian_glass"}) + minetest.sound_play("throwing_build_arrow", {pos = self.lastpos}) + end + self.object:remove() + end + end + end + + if self.lastpos.x ~= nil then + if minetest.registered_nodes[node.name].walkable then + if self.node ~= "" then + minetest.set_node(self.lastpos, {name="default:obsidian_glass"}) + minetest.sound_play("throwing_build_arrow", {pos = self.lastpos}) + end + self.object:remove() + end + end + self.lastpos= {x = pos.x, y = pos.y, z = pos.z} +end + +minetest.register_entity("throwing:arrow_build_entity", THROWING_ARROW_ENTITY) + +minetest.register_craft({ + output = "throwing:arrow_build", + recipe = { + {"default:stick", "default:stick", "default:obsidian_glass"}, + } +}) + +minetest.register_craft({ + output = "throwing:arrow_build", + recipe = { + {"default:obsidian_glass", "default:stick", "default:stick"}, + } +}) diff --git a/mods/throwing/depends.txt b/mods/throwing/depends.txt new file mode 100755 index 00000000..252d6655 --- /dev/null +++ b/mods/throwing/depends.txt @@ -0,0 +1,4 @@ +default +bucket +fire +farming diff --git a/mods/throwing/dig_arrow.lua b/mods/throwing/dig_arrow.lua new file mode 100755 index 00000000..6ba9c104 --- /dev/null +++ b/mods/throwing/dig_arrow.lua @@ -0,0 +1,106 @@ +minetest.register_craftitem("throwing:arrow_dig", { + description = "Dig Arrow", + inventory_image = "throwing_arrow_dig.png", +}) + +minetest.register_node("throwing:arrow_dig_box", { + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + -- Shaft + {-6.5/17, -1.5/17, -1.5/17, 6.5/17, 1.5/17, 1.5/17}, + -- Spitze + {-4.5/17, 2.5/17, 2.5/17, -3.5/17, -2.5/17, -2.5/17}, + {-8.5/17, 0.5/17, 0.5/17, -6.5/17, -0.5/17, -0.5/17}, + -- Federn + {6.5/17, 1.5/17, 1.5/17, 7.5/17, 2.5/17, 2.5/17}, + {7.5/17, -2.5/17, 2.5/17, 6.5/17, -1.5/17, 1.5/17}, + {7.5/17, 2.5/17, -2.5/17, 6.5/17, 1.5/17, -1.5/17}, + {6.5/17, -1.5/17, -1.5/17, 7.5/17, -2.5/17, -2.5/17}, + + {7.5/17, 2.5/17, 2.5/17, 8.5/17, 3.5/17, 3.5/17}, + {8.5/17, -3.5/17, 3.5/17, 7.5/17, -2.5/17, 2.5/17}, + {8.5/17, 3.5/17, -3.5/17, 7.5/17, 2.5/17, -2.5/17}, + {7.5/17, -2.5/17, -2.5/17, 8.5/17, -3.5/17, -3.5/17}, + } + }, + tiles = {"throwing_arrow_dig.png", "throwing_arrow_dig.png", "throwing_arrow_dig_back.png", "throwing_arrow_dig_front.png", "throwing_arrow_dig_2.png", "throwing_arrow_dig.png"}, + groups = {not_in_creative_inventory = 1}, +}) + +local THROWING_ARROW_ENTITY = { + physical = false, + timer = 0, + visual = "wielditem", + visual_size = {x = 0.125, y = 0.125}, + textures = {"throwing:arrow_dig_box"}, + lastpos= {}, + collisionbox = {0, 0, 0, 0, 0, 0}, +} + +THROWING_ARROW_ENTITY.on_step = function(self, dtime) + self.timer = self.timer + dtime + local pos = self.object:getpos() + local node = minetest.get_node(pos) + + if self.timer > 0.2 then + local objs = minetest.get_objects_inside_radius({x = pos.x, y = pos.y, z = pos.z}, 1) + for k, obj in pairs(objs) do + if obj:get_luaentity() ~= nil then + if obj:get_luaentity().name ~= "throwing:arrow_dig_entity" and obj:get_luaentity().name ~= "__builtin:item" then + if not minetest.setting_getbool("creative_mode") then + minetest.add_item(pos, "throwing:arrow_dig") + end + local n = minetest.get_node(pos).name + if n ~= "bedrock:bedrock" and n ~= "default:chest_locked" and n ~= "bones:bones" and n ~= "default:chest" and n ~= "default:furnace" then + minetest.dig_node(pos) + end + minetest.sound_play("throwing_dig_arrow", {pos = self.lastpos, gain = 0.8}) + self.object:remove() + end + else + if not minetest.setting_getbool("creative_mode") then + minetest.add_item(pos, "throwing:arrow_dig") + end + local n = minetest.get_node(pos).name + if n ~= "bedrock:bedrock" and n ~= "default:chest_locked" and n ~= "bones:bones" and n ~= "default:chest" and n ~= "default:furnace" then + minetest.dig_node(pos) + end + minetest.sound_play("throwing_dig_arrow", {pos = self.lastpos, gain = 0.8}) + self.object:remove() + end + end + end + + if self.lastpos.x ~= nil then + if minetest.registered_nodes[node.name].walkable then + if not minetest.setting_getbool("creative_mode") then + minetest.add_item(self.lastpos, "throwing:arrow_dig") + end + local n = minetest.get_node(pos).name + if n ~= "bedrock:bedrock" and n ~= "default:chest_locked" and n ~= "bones:bones" and n ~= "default:chest" and n ~= "default:furnace" then + minetest.dig_node(pos) + end + minetest.sound_play("throwing_dig_arrow", {pos = self.lastpos, gain = 0.8}) + self.object:remove() + end + end + self.lastpos= {x = pos.x, y = pos.y, z = pos.z} +end + +minetest.register_entity("throwing:arrow_dig_entity", THROWING_ARROW_ENTITY) + +minetest.register_craft({ + output = "throwing:arrow_dig", + recipe = { + {"default:stick", "default:stick", "default:pick_wood"}, + } +}) + +minetest.register_craft({ + output = "throwing:arrow_dig", + recipe = { + {"default:pick_wood", "default:stick", "default:stick"}, + } +}) diff --git a/mods/throwing/dig_arrow_admin.lua b/mods/throwing/dig_arrow_admin.lua new file mode 100755 index 00000000..f2367a96 --- /dev/null +++ b/mods/throwing/dig_arrow_admin.lua @@ -0,0 +1,78 @@ +minetest.register_craftitem("throwing:arrow_dig_admin", { + description = "Admin Dig Arrow", + inventory_image = "throwing_arrow_dig_admin.png", + groups = {not_in_creative_inventory = 1}, +}) + +minetest.register_node("throwing:arrow_dig_admin_box", { + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + -- Shaft + {-6.5/17, -1.5/17, -1.5/17, 6.5/17, 1.5/17, 1.5/17}, + -- Spitze + {-4.5/17, 2.5/17, 2.5/17, -3.5/17, -2.5/17, -2.5/17}, + {-8.5/17, 0.5/17, 0.5/17, -6.5/17, -0.5/17, -0.5/17}, + -- Federn + {6.5/17, 1.5/17, 1.5/17, 7.5/17, 2.5/17, 2.5/17}, + {7.5/17, -2.5/17, 2.5/17, 6.5/17, -1.5/17, 1.5/17}, + {7.5/17, 2.5/17, -2.5/17, 6.5/17, 1.5/17, -1.5/17}, + {6.5/17, -1.5/17, -1.5/17, 7.5/17, -2.5/17, -2.5/17}, + + {7.5/17, 2.5/17, 2.5/17, 8.5/17, 3.5/17, 3.5/17}, + {8.5/17, -3.5/17, 3.5/17, 7.5/17, -2.5/17, 2.5/17}, + {8.5/17, 3.5/17, -3.5/17, 7.5/17, 2.5/17, -2.5/17}, + {7.5/17, -2.5/17, -2.5/17, 8.5/17, -3.5/17, -3.5/17}, + } + }, + tiles = {"throwing_arrow_dig_admin.png", "throwing_arrow_dig_admin.png", "throwing_arrow_dig_admin_back.png", "throwing_arrow_dig_admin_front.png", "throwing_arrow_dig_admin_2.png", "throwing_arrow_dig_admin.png"}, + groups = {not_in_creative_inventory = 1}, +}) + +local THROWING_ARROW_ENTITY = { + physical = false, + timer = 0, + visual = "wielditem", + visual_size = {x = 0.125, y = 0.125}, + textures = {"throwing:arrow_dig_admin_box"}, + lastpos= {}, + collisionbox = {0, 0, 0, 0, 0, 0}, +} + +THROWING_ARROW_ENTITY.on_step = function(self, dtime) + self.timer = self.timer + dtime + local pos = self.object:getpos() + local node = minetest.get_node(pos) + + if self.timer > 0.2 then + local objs = minetest.get_objects_inside_radius({x = pos.x, y = pos.y, z = pos.z}, 1) + for k, obj in pairs(objs) do + if obj:get_luaentity() ~= nil then + if obj:get_luaentity().name ~= "throwing:arrow_dig_admin_entity" and obj:get_luaentity().name ~= "__builtin:item" then + local n = minetest.get_node(pos).name + minetest.log("action", n .. " was removed using throwing:arrow_dig_admin at " .. pos_to_string(vector.round(pos)) .. ".") + minetest.remove_node(pos) + self.object:remove() + end + else + local n = minetest.get_node(pos).name + minetest.log("action", n .. " was removed using throwing:arrow_dig_admin at " .. pos_to_string(vector.round(pos)) .. ".") + minetest.remove_node(pos) + self.object:remove() + end + end + end + + if self.lastpos.x ~= nil then + if minetest.registered_nodes[node.name].walkable then + local n = minetest.get_node(pos).name + minetest.log("action", n .. " was removed using throwing:arrow_dig_admin at " .. pos_to_string(vector.round(pos)) .. ".") + minetest.remove_node(pos) + self.object:remove() + end + end + self.lastpos= {x = pos.x, y = pos.y, z = pos.z} +end + +minetest.register_entity("throwing:arrow_dig_admin_entity", THROWING_ARROW_ENTITY) diff --git a/mods/throwing/fire_arrow.lua b/mods/throwing/fire_arrow.lua new file mode 100755 index 00000000..2a98b373 --- /dev/null +++ b/mods/throwing/fire_arrow.lua @@ -0,0 +1,94 @@ +minetest.register_craftitem("throwing:arrow_fire", { + description = "Torch Arrow", + inventory_image = "throwing_arrow_fire.png", +}) + +minetest.register_node("throwing:arrow_fire_box", { + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + -- Shaft + {-6.5/17, -1.5/17, -1.5/17, 6.5/17, 1.5/17, 1.5/17}, + -- Spitze + {-4.5/17, 2.5/17, 2.5/17, -3.5/17, -2.5/17, -2.5/17}, + {-8.5/17, 0.5/17, 0.5/17, -6.5/17, -0.5/17, -0.5/17}, + -- Federn + {6.5/17, 1.5/17, 1.5/17, 7.5/17, 2.5/17, 2.5/17}, + {7.5/17, -2.5/17, 2.5/17, 6.5/17, -1.5/17, 1.5/17}, + {7.5/17, 2.5/17, -2.5/17, 6.5/17, 1.5/17, -1.5/17}, + {6.5/17, -1.5/17, -1.5/17, 7.5/17, -2.5/17, -2.5/17}, + + {7.5/17, 2.5/17, 2.5/17, 8.5/17, 3.5/17, 3.5/17}, + {8.5/17, -3.5/17, 3.5/17, 7.5/17, -2.5/17, 2.5/17}, + {8.5/17, 3.5/17, -3.5/17, 7.5/17, 2.5/17, -2.5/17}, + {7.5/17, -2.5/17, -2.5/17, 8.5/17, -3.5/17, -3.5/17}, + } + }, + tiles = {"throwing_arrow_fire.png", "throwing_arrow_fire.png", "throwing_arrow_fire_back.png", "throwing_arrow_fire_front.png", "throwing_arrow_fire_2.png", "throwing_arrow_fire.png"}, + groups = {not_in_creative_inventory = 1}, +}) + +local THROWING_ARROW_ENTITY = { + physical = false, + timer = 0, + visual = "wielditem", + visual_size = {x = 0.125, y = 0.125}, + textures = {"throwing:arrow_fire_box"}, + lastpos= {}, + collisionbox = {0, 0, 0, 0, 0, 0}, +} + +THROWING_ARROW_ENTITY.on_step = function(self, dtime) + self.timer = self.timer + dtime + local pos = self.object:getpos() + local node = minetest.get_node(pos) + + if self.timer > 0.2 then + local objs = minetest.get_objects_inside_radius({x = pos.x, y = pos.y, z = pos.z}, 1) + for k, obj in pairs(objs) do + if obj:get_luaentity() ~= nil then + if obj:get_luaentity().name ~= "throwing:arrow_fire_entity" and obj:get_luaentity().name ~= "__builtin:item" then + if self.node ~= "" then + minetest.set_node(self.lastpos, {name="default:torch"}) + minetest.sound_play("default_place_node", {pos = self.lastpos}) + end + self.object:remove() + end + else + if self.node ~= "" then + minetest.set_node(self.lastpos, {name="default:torch"}) + minetest.sound_play("default_place_node", {pos = self.lastpos}) + end + self.object:remove() + end + end + end + + if self.lastpos.x ~= nil then + if minetest.registered_nodes[node.name].walkable then + if self.node ~= "" then + minetest.set_node(self.lastpos, {name="default:torch"}) + minetest.sound_play("default_place_node", {pos = self.lastpos}) + end + self.object:remove() + end + end + self.lastpos= {x = pos.x, y = pos.y, z = pos.z} +end + +minetest.register_entity("throwing:arrow_fire_entity", THROWING_ARROW_ENTITY) + +minetest.register_craft({ + output = "throwing:arrow_fire 1", + recipe = { + {"default:stick", "default:stick", "default:torch"}, + }, +}) + +minetest.register_craft({ + output = "throwing:arrow_fire 1", + recipe = { + {"default:torch", "default:stick", "default:stick"}, + }, +}) diff --git a/mods/throwing/golden_arrow.lua b/mods/throwing/golden_arrow.lua new file mode 100755 index 00000000..ead0c203 --- /dev/null +++ b/mods/throwing/golden_arrow.lua @@ -0,0 +1,98 @@ +minetest.register_craftitem("throwing:arrow_gold", { + description = "Golden Arrow", + inventory_image = "throwing_arrow_gold.png", +}) + +minetest.register_node("throwing:arrow_gold_box", { + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + -- Shaft + {-6.5/17, -1.5/17, -1.5/17, 6.5/17, 1.5/17, 1.5/17}, + -- Spitze + {-4.5/17, 2.5/17, 2.5/17, -3.5/17, -2.5/17, -2.5/17}, + {-8.5/17, 0.5/17, 0.5/17, -6.5/17, -0.5/17, -0.5/17}, + -- Federn + {6.5/17, 1.5/17, 1.5/17, 7.5/17, 2.5/17, 2.5/17}, + {7.5/17, -2.5/17, 2.5/17, 6.5/17, -1.5/17, 1.5/17}, + {7.5/17, 2.5/17, -2.5/17, 6.5/17, 1.5/17, -1.5/17}, + {6.5/17, -1.5/17, -1.5/17, 7.5/17, -2.5/17, -2.5/17}, + + {7.5/17, 2.5/17, 2.5/17, 8.5/17, 3.5/17, 3.5/17}, + {8.5/17, -3.5/17, 3.5/17, 7.5/17, -2.5/17, 2.5/17}, + {8.5/17, 3.5/17, -3.5/17, 7.5/17, 2.5/17, -2.5/17}, + {7.5/17, -2.5/17, -2.5/17, 8.5/17, -3.5/17, -3.5/17}, + } + }, + tiles = {"throwing_arrow_gold.png", "throwing_arrow_gold.png", "throwing_arrow_gold_back.png", "throwing_arrow_gold_front.png", "throwing_arrow_gold_2.png", "throwing_arrow_gold.png"}, + groups = {not_in_creative_inventory = 1}, +}) + +local THROWING_arrow_gold_ENTITY = { + physical = false, + timer = 0, + visual = "wielditem", + visual_size = {x = 0.125, y = 0.125}, + textures = {"throwing:arrow_gold_box"}, + lastpos= {}, + collisionbox = {0, 0, 0, 0, 0, 0}, +} + +THROWING_arrow_gold_ENTITY.on_step = function(self, dtime) + self.timer = self.timer + dtime + local pos = self.object:getpos() + local node = minetest.get_node(pos) + + if self.timer > 0.2 then + local objs = minetest.get_objects_inside_radius({x = pos.x, y = pos.y, z = pos.z}, 1) + for k, obj in pairs(objs) do + if obj:get_luaentity() ~= nil then + if obj:get_luaentity().name ~= "throwing:arrow_gold_entity" and obj:get_luaentity().name ~= "__builtin:item" then + local damage = 5 + obj:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups= {fleshy = damage}, + }, nil) + minetest.sound_play("throwing_arrow", {pos = self.lastpos, gain = 0.8}) + self.object:remove() + end + else + local damage = 5 + obj:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups= {fleshy = damage}, + }, nil) + minetest.sound_play("throwing_arrow", {pos = self.lastpos, gain = 0.8}) + self.object:remove() + end + end + end + + if self.lastpos.x ~= nil then + if minetest.registered_nodes[node.name].walkable then + if not minetest.setting_getbool("creative_mode") then + minetest.add_item(self.lastpos, "throwing:arrow_gold") + end + minetest.sound_play("throwing_arrow", {pos = self.lastpos, gain = 0.8}) + self.object:remove() + end + end + self.lastpos= {x = pos.x, y = pos.y, z = pos.z} +end + +minetest.register_entity("throwing:arrow_gold_entity", THROWING_arrow_gold_ENTITY) + +minetest.register_craft({ + output = "throwing:arrow_gold 16", + recipe = { + {"default:stick", "default:stick", "default:gold_ingot"}, + } +}) + +minetest.register_craft({ + output = "throwing:arrow_gold 16", + recipe = { + {"default:gold_ingot", "default:stick", "default:stick"}, + } +}) diff --git a/mods/throwing/init.lua b/mods/throwing/init.lua new file mode 100755 index 00000000..fe6cbb2f --- /dev/null +++ b/mods/throwing/init.lua @@ -0,0 +1,188 @@ +arrows = { + {"throwing:arrow", "throwing:arrow_entity"}, + {"throwing:arrow_gold", "throwing:arrow_gold_entity"}, + {"throwing:arrow_fire", "throwing:arrow_fire_entity"}, + {"throwing:arrow_teleport", "throwing:arrow_teleport_entity"}, + {"throwing:arrow_dig", "throwing:arrow_dig_entity"}, + {"throwing:arrow_dig_admin", "throwing:arrow_dig_admin_entity"}, + {"throwing:arrow_build", "throwing:arrow_build_entity"} +} + +local throwing_shoot_arrow = function(itemstack, player) + for _,arrow in ipairs(arrows) do + if player:get_inventory():get_stack("main", player:get_wield_index()+1):get_name() == arrow[1] then + if not minetest.setting_getbool("creative_mode") then + player:get_inventory():remove_item("main", arrow[1]) + end + local playerpos = player:getpos() + local obj = minetest.add_entity({x=playerpos.x,y=playerpos.y+1.5,z=playerpos.z}, arrow[2]) + local dir = player:get_look_dir() + obj:setvelocity({x=dir.x*19, y=dir.y*19, z=dir.z*19}) + obj:setacceleration({x=dir.x*-3, y=-10, z=dir.z*-3}) + obj:setyaw(player:get_look_yaw()+math.pi) + minetest.sound_play("throwing_sound", {pos=playerpos, gain = 0.5}) + if obj:get_luaentity().player == "" then + obj:get_luaentity().player = player + end + obj:get_luaentity().node = player:get_inventory():get_stack("main", 1):get_name() + return true + end + end + return false +end + + +minetest.register_tool("throwing:bow_wood", { + description = "Wooden Bow", + inventory_image = "throwing_bow_wood.png", + on_use = function(itemstack, user, pointed_thing) + if throwing_shoot_arrow(itemstack, user, pointed_thing) then + if not minetest.setting_getbool("creative_mode") then + itemstack:add_wear(65535/30) + end + end + return itemstack + end, +}) + +minetest.register_craft({ + output = "throwing:bow_wood", + recipe = { + {"farming:cotton", "default:wood", ""}, + {"farming:cotton", "", "default:wood"}, + {"farming:cotton", "default:wood", ""}, + } +}) + + + +minetest.register_tool("throwing:bow_stone", { + description = "Stone Bow", + inventory_image = "throwing_bow_stone.png", + on_use = function(itemstack, user, pointed_thing) + if throwing_shoot_arrow(item, user, pointed_thing) then + if not minetest.setting_getbool("creative_mode") then + itemstack:add_wear(65535/90) + end + end + return itemstack + end, +}) + +minetest.register_craft({ + output = "throwing:bow_stone", + recipe = { + {"farming:cotton", "default:cobble", ""}, + {"farming:cotton", "", "default:cobble"}, + {"farming:cotton", "default:cobble", ""}, + } +}) + + + +minetest.register_tool("throwing:bow_steel", { + description = "Steel Bow", + inventory_image = "throwing_bow_steel.png", + on_use = function(itemstack, user, pointed_thing) + if throwing_shoot_arrow(item, user, pointed_thing) then + if not minetest.setting_getbool("creative_mode") then + itemstack:add_wear(65535/200) + end + end + return itemstack + end, +}) + +minetest.register_craft({ + output = "throwing:bow_steel", + recipe = { + {"farming:cotton", "default:steel_ingot", ""}, + {"farming:cotton", "", "default:steel_ingot"}, + {"farming:cotton", "default:steel_ingot", ""}, + } +}) + + + +minetest.register_tool("throwing:bow_bronze", { + description = "Bronze Bow", + inventory_image = "throwing_bow_bronze.png", + stack_max = 1, + on_use = function(itemstack, user, pointed_thing) + if throwing_shoot_arrow(item, user, pointed_thing) then + if not minetest.setting_getbool("creative_mode") then + itemstack:add_wear(65535/220) + end + end + return itemstack + end, +}) + +minetest.register_craft({ + output = "throwing:bow_bronze", + recipe = { + {"farming:cotton", "default:bronze_ingot", ""}, + {"farming:cotton", "", "default:bronze_ingot"}, + {"farming:cotton", "default:bronze_ingot", ""}, + } +}) + + + +minetest.register_tool("throwing:bow_mese", { + description = "Mese Bow", + inventory_image = "throwing_bow_mese.png", + on_use = function(itemstack, user, pointed_thing) + if throwing_shoot_arrow(item, user, pointed_thing) then + if not minetest.setting_getbool("creative_mode") then + itemstack:add_wear(65535/350) + end + end + return itemstack + end, +}) + +minetest.register_craft({ + output = "throwing:bow_mese", + recipe = { + {"farming:cotton", "default:mese_crystal", ""}, + {"farming:cotton", "", "default:mese_crystal"}, + {"farming:cotton", "default:mese_crystal", ""}, + } +}) + + + +minetest.register_tool("throwing:bow_diamond", { + description = "Diamond Bow", + inventory_image = "throwing_bow_diamond.png", + on_use = function(itemstack, user, pointed_thing) + if throwing_shoot_arrow(item, user, pointed_thing) then + if not minetest.setting_getbool("creative_mode") then + itemstack:add_wear(65535/500) + end + end + return itemstack + end, +}) + +minetest.register_craft({ + output = "throwing:bow_diamond", + recipe = { + {"farming:cotton", "default:diamond", ""}, + {"farming:cotton", "", "default:diamond"}, + {"farming:cotton", "default:diamond", ""}, + } +}) + +dofile(minetest.get_modpath("throwing") .. "/arrow.lua") +dofile(minetest.get_modpath("throwing") .. "/golden_arrow.lua") +dofile(minetest.get_modpath("throwing") .. "/fire_arrow.lua") +dofile(minetest.get_modpath("throwing") .. "/teleport_arrow.lua") +dofile(minetest.get_modpath("throwing") .. "/dig_arrow.lua") +dofile(minetest.get_modpath("throwing") .. "/dig_arrow_admin.lua") +dofile(minetest.get_modpath("throwing") .. "/build_arrow.lua") + +if minetest.setting_getbool("log_mods") then + minetest.log("action", "Carbone: [throwing] loaded.") +end diff --git a/mods/throwing/sounds/throwing_arrow.ogg b/mods/throwing/sounds/throwing_arrow.ogg new file mode 100755 index 00000000..36dc1de7 Binary files /dev/null and b/mods/throwing/sounds/throwing_arrow.ogg differ diff --git a/mods/throwing/sounds/throwing_build_arrow.ogg b/mods/throwing/sounds/throwing_build_arrow.ogg new file mode 100755 index 00000000..339c2e3d Binary files /dev/null and b/mods/throwing/sounds/throwing_build_arrow.ogg differ diff --git a/mods/throwing/sounds/throwing_dig_arrow.ogg b/mods/throwing/sounds/throwing_dig_arrow.ogg new file mode 100755 index 00000000..86abb99c Binary files /dev/null and b/mods/throwing/sounds/throwing_dig_arrow.ogg differ diff --git a/mods/throwing/sounds/throwing_sound.ogg b/mods/throwing/sounds/throwing_sound.ogg new file mode 100755 index 00000000..c5f7964d Binary files /dev/null and b/mods/throwing/sounds/throwing_sound.ogg differ diff --git a/mods/throwing/sounds/throwing_teleport_arrow.ogg b/mods/throwing/sounds/throwing_teleport_arrow.ogg new file mode 100755 index 00000000..579e6fa3 Binary files /dev/null and b/mods/throwing/sounds/throwing_teleport_arrow.ogg differ diff --git a/mods/throwing/teleport_arrow.lua b/mods/throwing/teleport_arrow.lua new file mode 100755 index 00000000..c7e44a28 --- /dev/null +++ b/mods/throwing/teleport_arrow.lua @@ -0,0 +1,98 @@ +minetest.register_craftitem("throwing:arrow_teleport", { + description = "Teleport Arrow", + inventory_image = "throwing_arrow_teleport.png", +}) + +minetest.register_node("throwing:arrow_teleport_box", { + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + -- Shaft + {-6.5/17, -1.5/17, -1.5/17, 6.5/17, 1.5/17, 1.5/17}, + -- Spitze + {-4.5/17, 2.5/17, 2.5/17, -3.5/17, -2.5/17, -2.5/17}, + {-8.5/17, 0.5/17, 0.5/17, -6.5/17, -0.5/17, -0.5/17}, + -- Federn + {6.5/17, 1.5/17, 1.5/17, 7.5/17, 2.5/17, 2.5/17}, + {7.5/17, -2.5/17, 2.5/17, 6.5/17, -1.5/17, 1.5/17}, + {7.5/17, 2.5/17, -2.5/17, 6.5/17, 1.5/17, -1.5/17}, + {6.5/17, -1.5/17, -1.5/17, 7.5/17, -2.5/17, -2.5/17}, + + {7.5/17, 2.5/17, 2.5/17, 8.5/17, 3.5/17, 3.5/17}, + {8.5/17, -3.5/17, 3.5/17, 7.5/17, -2.5/17, 2.5/17}, + {8.5/17, 3.5/17, -3.5/17, 7.5/17, 2.5/17, -2.5/17}, + {7.5/17, -2.5/17, -2.5/17, 8.5/17, -3.5/17, -3.5/17}, + } + }, + tiles = {"throwing_arrow_teleport.png", "throwing_arrow_teleport.png", "throwing_arrow_teleport_back.png", "throwing_arrow_teleport_front.png", "throwing_arrow_teleport_2.png", "throwing_arrow_teleport.png"}, + groups = {not_in_creative_inventory = 1}, +}) + +local THROWING_ARROW_ENTITY = { + physical = false, + timer = 0, + visual = "wielditem", + visual_size = {x = 0.125, y = 0.125}, + textures = {"throwing:arrow_teleport_box"}, + lastpos= {}, + collisionbox = {0, 0, 0, 0, 0, 0}, + player = "", +} + +THROWING_ARROW_ENTITY.on_step = function(self, dtime) + self.timer = self.timer + dtime + local pos = self.object:getpos() + local node = minetest.get_node(pos) + + if self.timer > 0.2 then + local objs = minetest.get_objects_inside_radius({x = pos.x, y = pos.y, z = pos.z}, 2) + for k, obj in pairs(objs) do + if obj:get_luaentity() ~= nil then + if obj:get_luaentity().name ~= "throwing:arrow_teleport_entity" and obj:get_luaentity().name ~= "__builtin:item" then + if self.player ~= "" then + self.player:setpos(pos) + self.player:get_inventory():add_item("main", ItemStack("throwing:arrow_teleport")) + minetest.sound_play("throwing_teleport_arrow", {pos = self.lastpos}) + end + self.object:remove() + end + else + if self.player ~= "" then + self.player:setpos(pos) + self.player:get_inventory():add_item("main", ItemStack("throwing:arrow_teleport")) + minetest.sound_play("throwing_teleport_arrow", {pos = self.lastpos}) + end + self.object:remove() + end + end + end + + if self.lastpos.x ~= nil then + if minetest.registered_nodes[node.name].walkable then + if self.player ~= "" then + self.player:setpos(self.lastpos) + self.player:get_inventory():add_item("main", ItemStack("throwing:arrow_teleport")) + minetest.sound_play("throwing_teleport_arrow", {pos = self.lastpos}) + end + self.object:remove() + end + end + self.lastpos= {x = pos.x, y = pos.y, z = pos.z} +end + +minetest.register_entity("throwing:arrow_teleport_entity", THROWING_ARROW_ENTITY) + +minetest.register_craft({ + output = "throwing:arrow_teleport", + recipe = { + {"default:stick", "default:stick", "default:diamond"}, + } +}) + +minetest.register_craft({ + output = "throwing:arrow_teleport", + recipe = { + {"default:diamond", "default:stick", "default:stick"}, + } +}) diff --git a/mods/throwing/textures/throwing_arrow.png b/mods/throwing/textures/throwing_arrow.png new file mode 100755 index 00000000..95b876c3 Binary files /dev/null and b/mods/throwing/textures/throwing_arrow.png differ diff --git a/mods/throwing/textures/throwing_arrow_2.png b/mods/throwing/textures/throwing_arrow_2.png new file mode 100755 index 00000000..83d1a02b Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_2.png differ diff --git a/mods/throwing/textures/throwing_arrow_back.png b/mods/throwing/textures/throwing_arrow_back.png new file mode 100755 index 00000000..a1630a87 Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_back.png differ diff --git a/mods/throwing/textures/throwing_arrow_build.png b/mods/throwing/textures/throwing_arrow_build.png new file mode 100755 index 00000000..0683f1ed Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_build.png differ diff --git a/mods/throwing/textures/throwing_arrow_build_2.png b/mods/throwing/textures/throwing_arrow_build_2.png new file mode 100755 index 00000000..215b2c4d Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_build_2.png differ diff --git a/mods/throwing/textures/throwing_arrow_build_back.png b/mods/throwing/textures/throwing_arrow_build_back.png new file mode 100755 index 00000000..654b2a9a Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_build_back.png differ diff --git a/mods/throwing/textures/throwing_arrow_build_front.png b/mods/throwing/textures/throwing_arrow_build_front.png new file mode 100755 index 00000000..ac7c6a3b Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_build_front.png differ diff --git a/mods/throwing/textures/throwing_arrow_dig.png b/mods/throwing/textures/throwing_arrow_dig.png new file mode 100755 index 00000000..3499404e Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_dig.png differ diff --git a/mods/throwing/textures/throwing_arrow_dig_2.png b/mods/throwing/textures/throwing_arrow_dig_2.png new file mode 100755 index 00000000..4028eba1 Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_dig_2.png differ diff --git a/mods/throwing/textures/throwing_arrow_dig_admin.png b/mods/throwing/textures/throwing_arrow_dig_admin.png new file mode 100755 index 00000000..582c0349 Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_dig_admin.png differ diff --git a/mods/throwing/textures/throwing_arrow_dig_admin_2.png b/mods/throwing/textures/throwing_arrow_dig_admin_2.png new file mode 100755 index 00000000..89d3dc6c Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_dig_admin_2.png differ diff --git a/mods/throwing/textures/throwing_arrow_dig_admin_back.png b/mods/throwing/textures/throwing_arrow_dig_admin_back.png new file mode 100755 index 00000000..55ab50f2 Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_dig_admin_back.png differ diff --git a/mods/throwing/textures/throwing_arrow_dig_admin_front.png b/mods/throwing/textures/throwing_arrow_dig_admin_front.png new file mode 100755 index 00000000..e182cb7a Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_dig_admin_front.png differ diff --git a/mods/throwing/textures/throwing_arrow_dig_back.png b/mods/throwing/textures/throwing_arrow_dig_back.png new file mode 100755 index 00000000..8246d1d9 Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_dig_back.png differ diff --git a/mods/throwing/textures/throwing_arrow_dig_front.png b/mods/throwing/textures/throwing_arrow_dig_front.png new file mode 100755 index 00000000..a8fbc774 Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_dig_front.png differ diff --git a/mods/throwing/textures/throwing_arrow_fire.png b/mods/throwing/textures/throwing_arrow_fire.png new file mode 100755 index 00000000..0dfb8b9f Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_fire.png differ diff --git a/mods/throwing/textures/throwing_arrow_fire_2.png b/mods/throwing/textures/throwing_arrow_fire_2.png new file mode 100755 index 00000000..010c3ec4 Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_fire_2.png differ diff --git a/mods/throwing/textures/throwing_arrow_fire_back.png b/mods/throwing/textures/throwing_arrow_fire_back.png new file mode 100755 index 00000000..b840508f Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_fire_back.png differ diff --git a/mods/throwing/textures/throwing_arrow_fire_front.png b/mods/throwing/textures/throwing_arrow_fire_front.png new file mode 100755 index 00000000..b56bd830 Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_fire_front.png differ diff --git a/mods/throwing/textures/throwing_arrow_front.png b/mods/throwing/textures/throwing_arrow_front.png new file mode 100755 index 00000000..2fcc3db0 Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_front.png differ diff --git a/mods/throwing/textures/throwing_arrow_gold.png b/mods/throwing/textures/throwing_arrow_gold.png new file mode 100755 index 00000000..4fe80d49 Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_gold.png differ diff --git a/mods/throwing/textures/throwing_arrow_gold_2.png b/mods/throwing/textures/throwing_arrow_gold_2.png new file mode 100755 index 00000000..8a2932cf Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_gold_2.png differ diff --git a/mods/throwing/textures/throwing_arrow_gold_back.png b/mods/throwing/textures/throwing_arrow_gold_back.png new file mode 100755 index 00000000..7831e3aa Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_gold_back.png differ diff --git a/mods/throwing/textures/throwing_arrow_gold_front.png b/mods/throwing/textures/throwing_arrow_gold_front.png new file mode 100755 index 00000000..21c50e78 Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_gold_front.png differ diff --git a/mods/throwing/textures/throwing_arrow_teleport.png b/mods/throwing/textures/throwing_arrow_teleport.png new file mode 100755 index 00000000..e0b6f080 Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_teleport.png differ diff --git a/mods/throwing/textures/throwing_arrow_teleport_2.png b/mods/throwing/textures/throwing_arrow_teleport_2.png new file mode 100755 index 00000000..1a3c6fe9 Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_teleport_2.png differ diff --git a/mods/throwing/textures/throwing_arrow_teleport_back.png b/mods/throwing/textures/throwing_arrow_teleport_back.png new file mode 100755 index 00000000..ecd3e708 Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_teleport_back.png differ diff --git a/mods/throwing/textures/throwing_arrow_teleport_front.png b/mods/throwing/textures/throwing_arrow_teleport_front.png new file mode 100755 index 00000000..1233c148 Binary files /dev/null and b/mods/throwing/textures/throwing_arrow_teleport_front.png differ diff --git a/mods/throwing/textures/throwing_bow_bronze.png b/mods/throwing/textures/throwing_bow_bronze.png new file mode 100755 index 00000000..3ea0e822 Binary files /dev/null and b/mods/throwing/textures/throwing_bow_bronze.png differ diff --git a/mods/throwing/textures/throwing_bow_diamond.png b/mods/throwing/textures/throwing_bow_diamond.png new file mode 100755 index 00000000..9050c220 Binary files /dev/null and b/mods/throwing/textures/throwing_bow_diamond.png differ diff --git a/mods/throwing/textures/throwing_bow_mese.png b/mods/throwing/textures/throwing_bow_mese.png new file mode 100755 index 00000000..38579985 Binary files /dev/null and b/mods/throwing/textures/throwing_bow_mese.png differ diff --git a/mods/throwing/textures/throwing_bow_steel.png b/mods/throwing/textures/throwing_bow_steel.png new file mode 100755 index 00000000..7688b286 Binary files /dev/null and b/mods/throwing/textures/throwing_bow_steel.png differ diff --git a/mods/throwing/textures/throwing_bow_stone.png b/mods/throwing/textures/throwing_bow_stone.png new file mode 100755 index 00000000..6a22e571 Binary files /dev/null and b/mods/throwing/textures/throwing_bow_stone.png differ diff --git a/mods/throwing/textures/throwing_bow_wood.png b/mods/throwing/textures/throwing_bow_wood.png new file mode 100755 index 00000000..163721d3 Binary files /dev/null and b/mods/throwing/textures/throwing_bow_wood.png differ diff --git a/mods/throwing/textures/throwing_empty.png b/mods/throwing/textures/throwing_empty.png new file mode 100755 index 00000000..4b5b3029 Binary files /dev/null and b/mods/throwing/textures/throwing_empty.png differ diff --git a/mods/u_skins/MT_skins_updater.exe b/mods/u_skins/MT_skins_updater.exe new file mode 100755 index 00000000..5b4ee3e4 Binary files /dev/null and b/mods/u_skins/MT_skins_updater.exe differ diff --git a/mods/u_skins/Newtonsoft.Json.dll b/mods/u_skins/Newtonsoft.Json.dll new file mode 100755 index 00000000..054c9337 Binary files /dev/null and b/mods/u_skins/Newtonsoft.Json.dll differ diff --git a/mods/u_skins/README b/mods/u_skins/README new file mode 100755 index 00000000..ff45c166 --- /dev/null +++ b/mods/u_skins/README @@ -0,0 +1,28 @@ +minetest-u_skins +================ +An skin extention for the Minetest mod unified_inventory by Dean Montgomery +It downloads the skins from the Minetest skin database. (http://minetest.fensta.bplaced.net) + +Requires latest unified_inventory from: +https://github.com/minetest-technic/unified_inventory + +To download the latest skins you need to run: + "./update_from_db.py" OR + the win32.NET client + +Licenses: +-------- + +cornernote: + Lua source code (GPLv3) + +Fritigern: + update_skins_db.sh (CC-BY-NC-SA 4.0) + +Krock: + Lua source code (GPLv3) + MT_skins_updater.exe (WTFPL) + +Credits: +-------- +RealyBadAngel unified_inventory and Zeg9 skinsdb diff --git a/mods/u_skins/modpack.txt b/mods/u_skins/modpack.txt new file mode 100755 index 00000000..e69de29b diff --git a/mods/u_skins/u_skins/depends.txt b/mods/u_skins/u_skins/depends.txt new file mode 100755 index 00000000..4b9cd197 --- /dev/null +++ b/mods/u_skins/u_skins/depends.txt @@ -0,0 +1,2 @@ +unified_inventory +default diff --git a/mods/u_skins/u_skins/init.lua b/mods/u_skins/u_skins/init.lua new file mode 100755 index 00000000..a0be27db --- /dev/null +++ b/mods/u_skins/u_skins/init.lua @@ -0,0 +1,165 @@ +-- Unified Skins for Minetest - based modified Bags from unfied_inventory and skins from inventory_plus + +-- Copyright (c) 2012 cornernote, Dean Montgomery +-- License: GPLv3 +u_skins = {} +u_skins.modpath = minetest.get_modpath("u_skins") +u_skins.file = minetest.get_worldpath().."/u_skins.mt" +u_skins.default = "character_1" +u_skins.pages = {} +u_skins.u_skins = {} +u_skins.file_save = false + +-- ( Deprecated +u_skins.type = { SPRITE=0, MODEL=1, ERROR=99 } +u_skins.get_type = function(texture) + if not u_skins.is_skin(texture) then + return u_skins.type.ERROR + end + return u_skins.type.MODEL +end +-- ) + +u_skins.is_skin = function(texture) + if not texture then + return false + end + if not u_skins.meta[texture] then + return false + end + return true +end + +dofile(u_skins.modpath.."/skinlist.lua") +dofile(u_skins.modpath.."/players.lua") + +u_skins.update_player_skin = function(player) + local name = player:get_player_name() + if not u_skins.is_skin(u_skins.u_skins[name]) then + u_skins.u_skins[name] = u_skins.default + end + player:set_properties({ + textures = {u_skins.u_skins[name]..".png"}, + }) + u_skins.file_save = true +end + +-- Display Current Skin +unified_inventory.register_page("u_skins", { + get_formspec = function(player) + local name = player:get_player_name() + if not u_skins.is_skin(u_skins.u_skins[name]) then + u_skins.u_skins[name] = u_skins.default + end + + local formspec = ("background[0.06,0.99;7.92,7.52;ui_misc_form.png]" + .."image[0,.75;1,2;"..u_skins.u_skins[name].."_preview.png]" + .."label[6,.5;Raw texture:]" + .."image[6,1;2,1;"..u_skins.u_skins[name]..".png]") + + local meta = u_skins.meta[u_skins.u_skins[name]] + if meta then + if meta.name ~= "" then + formspec = formspec.."label[2,.5;Name: "..minetest.formspec_escape(meta.name).."]" + end + if meta.author ~= "" then + formspec = formspec.."label[2,1;Author: "..minetest.formspec_escape(meta.author).."]" + end + if meta.license ~= "" then + formspec = formspec.."label[2,1.5;License: "..minetest.formspec_escape(meta.license).."]" + end + if meta.description ~= "" then --what's that?? + formspec = formspec.."label[2,2;Description: "..minetest.formspec_escape(meta.description).."]" + end + end + local page = 0 + if u_skins.pages[name] then + page = u_skins.pages[name] + end + formspec = formspec .. "button[.75,3;6.5,.5;u_skins_page$"..page..";Change]" + return {formspec=formspec} + end, +}) + +unified_inventory.register_button("u_skins", { + type = "image", + image = "u_skins_button.png", +}) + +-- Create all of the skin-picker pages. + +u_skins.generate_pages = function(texture) + local page = 0 + local pages = {} + for i, skin in ipairs(u_skins.list) do + local p_index = (i - 1) % 16 + if p_index == 0 then + page = page + 1 + pages[page] = {} + end + pages[page][p_index + 1] = {i, skin} + end + local total_pages = page + page = 1 + for page, arr in ipairs(pages) do + local formspec = "background[0.06,0.99;7.92,7.52;ui_misc_form.png]" + local y = -0.1 + for i, skin in ipairs(arr) do + local x = (i - 1) % 8 + if i > 1 and x == 0 then + y = 1.8 + end + formspec = (formspec.."image_button["..x..","..y..";1,2;" + ..skin[2].."_preview.png;u_skins_set$"..skin[1]..";]") + end + local page_prev = page - 2 + local page_next = page + if page_prev < 0 then + page_prev = total_pages - 1 + end + if page_next >= total_pages then + page_next = 0 + end + formspec = (formspec + .."button[0,3.8;1,.5;u_skins_page$"..page_prev..";<<]" + .."button[.75,3.8;6.5,.5;u_skins_null;Page "..page.."/"..total_pages.."]" + .."button[7,3.8;1,.5;u_skins_page$"..page_next..";>>]") + + unified_inventory.register_page("u_skins_page$"..(page - 1), { + get_formspec = function(player) + return {formspec=formspec} + end + }) + end +end + +-- click button handlers +minetest.register_on_player_receive_fields(function(player, formname, fields) + if fields.u_skins then + unified_inventory.set_inventory_formspec(player, "craft") + return + end + for field, _ in pairs(fields) do + local current = string.split(field, "$", 2) + if current[1] == "u_skins_set" then + u_skins.u_skins[player:get_player_name()] = u_skins.list[tonumber(current[2])] + u_skins.update_player_skin(player) + unified_inventory.set_inventory_formspec(player, "u_skins") + elseif current[1] == "u_skins_page" then + u_skins.pages[player:get_player_name()] = current[2] + unified_inventory.set_inventory_formspec(player, "u_skins_page$"..current[2]) + end + end +end) + +-- Change skin on join - reset if invalid +minetest.register_on_joinplayer(function(player) + local player_name = player:get_player_name() + if not u_skins.is_skin(u_skins.u_skins[player_name]) then + u_skins.u_skins[player_name] = u_skins.default + end + u_skins.update_player_skin(player) +end) + +u_skins.generate_pages() +u_skins.load_players() \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_1.txt b/mods/u_skins/u_skins/meta/character_1.txt new file mode 100755 index 00000000..7211029f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_1.txt @@ -0,0 +1,3 @@ +Sam 0 +Jordach +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_10.txt b/mods/u_skins/u_skins/meta/character_10.txt new file mode 100644 index 00000000..0739504f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_10.txt @@ -0,0 +1,3 @@ +Tuxedo Sam +Jordach +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_100.txt b/mods/u_skins/u_skins/meta/character_100.txt new file mode 100644 index 00000000..02fce169 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_100.txt @@ -0,0 +1,3 @@ +Franklin +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_101.txt b/mods/u_skins/u_skins/meta/character_101.txt new file mode 100644 index 00000000..37fa997a --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_101.txt @@ -0,0 +1,3 @@ +Trevor +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_102.txt b/mods/u_skins/u_skins/meta/character_102.txt new file mode 100644 index 00000000..a87a451c --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_102.txt @@ -0,0 +1,3 @@ +Bart Simpson +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_103.txt b/mods/u_skins/u_skins/meta/character_103.txt new file mode 100644 index 00000000..68d75491 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_103.txt @@ -0,0 +1,3 @@ +Creeper +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_104.txt b/mods/u_skins/u_skins/meta/character_104.txt new file mode 100644 index 00000000..0621c086 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_104.txt @@ -0,0 +1,3 @@ +War Machine +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_105.txt b/mods/u_skins/u_skins/meta/character_105.txt new file mode 100644 index 00000000..b499e3f8 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_105.txt @@ -0,0 +1,3 @@ +Gangnam Style +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_106.txt b/mods/u_skins/u_skins/meta/character_106.txt new file mode 100644 index 00000000..ef9ab481 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_106.txt @@ -0,0 +1,3 @@ +Sonic The Hedgehog +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_107.txt b/mods/u_skins/u_skins/meta/character_107.txt new file mode 100644 index 00000000..666dcf44 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_107.txt @@ -0,0 +1,3 @@ +Charizard +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_108.txt b/mods/u_skins/u_skins/meta/character_108.txt new file mode 100644 index 00000000..b24fb89d --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_108.txt @@ -0,0 +1,3 @@ +Scarlet Spider-man +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_109.txt b/mods/u_skins/u_skins/meta/character_109.txt new file mode 100644 index 00000000..53acbfc8 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_109.txt @@ -0,0 +1,3 @@ +Ferdi Napoli +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_11.txt b/mods/u_skins/u_skins/meta/character_11.txt new file mode 100644 index 00000000..442e668f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_11.txt @@ -0,0 +1,3 @@ +Semmett9 +Infinatum +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_110.txt b/mods/u_skins/u_skins/meta/character_110.txt new file mode 100644 index 00000000..d2dc0f68 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_110.txt @@ -0,0 +1,3 @@ +Finn The Adventured +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_111.txt b/mods/u_skins/u_skins/meta/character_111.txt new file mode 100644 index 00000000..8d516059 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_111.txt @@ -0,0 +1,3 @@ +Jake +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_112.txt b/mods/u_skins/u_skins/meta/character_112.txt new file mode 100644 index 00000000..887fc486 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_112.txt @@ -0,0 +1,3 @@ +Ferdi Napoli Reserve +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_113.txt b/mods/u_skins/u_skins/meta/character_113.txt new file mode 100644 index 00000000..b163c8c0 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_113.txt @@ -0,0 +1,3 @@ +Joker +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_114.txt b/mods/u_skins/u_skins/meta/character_114.txt new file mode 100644 index 00000000..2880fb70 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_114.txt @@ -0,0 +1,3 @@ +Bleau Steve +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_115.txt b/mods/u_skins/u_skins/meta/character_115.txt new file mode 100644 index 00000000..bcb4a33b --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_115.txt @@ -0,0 +1,3 @@ +Deadpool Bleau +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_116.txt b/mods/u_skins/u_skins/meta/character_116.txt new file mode 100644 index 00000000..d4646319 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_116.txt @@ -0,0 +1,3 @@ +Seth Rollins +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_117.txt b/mods/u_skins/u_skins/meta/character_117.txt new file mode 100644 index 00000000..6bd9482b --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_117.txt @@ -0,0 +1,3 @@ +Daffy Duck +LuxAtheris +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_118.txt b/mods/u_skins/u_skins/meta/character_118.txt new file mode 100644 index 00000000..0de7744a --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_118.txt @@ -0,0 +1,3 @@ +DareDevil +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_119.txt b/mods/u_skins/u_skins/meta/character_119.txt new file mode 100644 index 00000000..58bb3af7 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_119.txt @@ -0,0 +1,3 @@ +Clone +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_12.txt b/mods/u_skins/u_skins/meta/character_12.txt new file mode 100644 index 00000000..148ad734 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_12.txt @@ -0,0 +1,3 @@ +John +Evergreen +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_120.txt b/mods/u_skins/u_skins/meta/character_120.txt new file mode 100644 index 00000000..26a59930 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_120.txt @@ -0,0 +1,3 @@ +Banana Guy +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_121.txt b/mods/u_skins/u_skins/meta/character_121.txt new file mode 100644 index 00000000..99042d55 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_121.txt @@ -0,0 +1,3 @@ +Rubber +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_122.txt b/mods/u_skins/u_skins/meta/character_122.txt new file mode 100644 index 00000000..aeaa49c2 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_122.txt @@ -0,0 +1,3 @@ +Gothic Sam +GingerHunter797 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_123.txt b/mods/u_skins/u_skins/meta/character_123.txt new file mode 100644 index 00000000..267590ff --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_123.txt @@ -0,0 +1,3 @@ +Tails +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_124.txt b/mods/u_skins/u_skins/meta/character_124.txt new file mode 100644 index 00000000..6fde0cd7 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_124.txt @@ -0,0 +1,3 @@ +Aguia Explorer +Davizinho +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_125.txt b/mods/u_skins/u_skins/meta/character_125.txt new file mode 100644 index 00000000..4feecdb6 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_125.txt @@ -0,0 +1,3 @@ +Toad +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_126.txt b/mods/u_skins/u_skins/meta/character_126.txt new file mode 100644 index 00000000..d1d30abb --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_126.txt @@ -0,0 +1,3 @@ +oOChainLynxOo +oOChainLynxOo +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_127.txt b/mods/u_skins/u_skins/meta/character_127.txt new file mode 100644 index 00000000..fd422f87 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_127.txt @@ -0,0 +1,3 @@ +amazing spiderman +mateus +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_128.txt b/mods/u_skins/u_skins/meta/character_128.txt new file mode 100644 index 00000000..20b35519 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_128.txt @@ -0,0 +1,3 @@ +black spiderman +mateus +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_129.txt b/mods/u_skins/u_skins/meta/character_129.txt new file mode 100644 index 00000000..587ce7e9 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_129.txt @@ -0,0 +1,3 @@ +Sam Mese Tee +oOChainLynxOo +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_13.txt b/mods/u_skins/u_skins/meta/character_13.txt new file mode 100644 index 00000000..a159b8b2 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_13.txt @@ -0,0 +1,3 @@ +rotor112 +rotor112 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_130.txt b/mods/u_skins/u_skins/meta/character_130.txt new file mode 100644 index 00000000..ccf8dea5 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_130.txt @@ -0,0 +1,3 @@ +Jesus +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_131.txt b/mods/u_skins/u_skins/meta/character_131.txt new file mode 100644 index 00000000..a130d657 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_131.txt @@ -0,0 +1,3 @@ +Wires +Geopbyte +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_132.txt b/mods/u_skins/u_skins/meta/character_132.txt new file mode 100644 index 00000000..cb141e17 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_132.txt @@ -0,0 +1,3 @@ +Vector +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_133.txt b/mods/u_skins/u_skins/meta/character_133.txt new file mode 100644 index 00000000..9cc4edca --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_133.txt @@ -0,0 +1,3 @@ +Fire Mario +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_134.txt b/mods/u_skins/u_skins/meta/character_134.txt new file mode 100644 index 00000000..e8969047 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_134.txt @@ -0,0 +1,3 @@ +skin minecraft +lestouem +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_135.txt b/mods/u_skins/u_skins/meta/character_135.txt new file mode 100644 index 00000000..76eb142d --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_135.txt @@ -0,0 +1,3 @@ +santa +jordan4ibanez +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_136.txt b/mods/u_skins/u_skins/meta/character_136.txt new file mode 100644 index 00000000..5c1fdf19 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_136.txt @@ -0,0 +1,3 @@ +PenguinDad +PenguinDad +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_137.txt b/mods/u_skins/u_skins/meta/character_137.txt new file mode 100644 index 00000000..61eed6b3 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_137.txt @@ -0,0 +1,3 @@ +New Ferdi Napoli Skin +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_138.txt b/mods/u_skins/u_skins/meta/character_138.txt new file mode 100644 index 00000000..248c8684 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_138.txt @@ -0,0 +1,3 @@ +Jan +Jan +CC BY 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_139.txt b/mods/u_skins/u_skins/meta/character_139.txt new file mode 100644 index 00000000..1eab11f0 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_139.txt @@ -0,0 +1,3 @@ +PilzAdam +PilzAdam +CC BY 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_14.txt b/mods/u_skins/u_skins/meta/character_14.txt new file mode 100644 index 00000000..47aef4d3 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_14.txt @@ -0,0 +1,3 @@ +Older Man Sam +philipbenr +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_140.txt b/mods/u_skins/u_skins/meta/character_140.txt new file mode 100644 index 00000000..99e22584 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_140.txt @@ -0,0 +1,3 @@ +Renan123 +sou o melhor +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_141.txt b/mods/u_skins/u_skins/meta/character_141.txt new file mode 100644 index 00000000..bfbd4477 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_141.txt @@ -0,0 +1,3 @@ +PenguinDad with Cape +PenguinDad +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_142.txt b/mods/u_skins/u_skins/meta/character_142.txt new file mode 100644 index 00000000..9bceeb4e --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_142.txt @@ -0,0 +1,3 @@ +Adarqet +Adarqet +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_143.txt b/mods/u_skins/u_skins/meta/character_143.txt new file mode 100644 index 00000000..96fb029f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_143.txt @@ -0,0 +1,3 @@ +Adarqet(Cape) +Adarqet +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_144.txt b/mods/u_skins/u_skins/meta/character_144.txt new file mode 100644 index 00000000..1ca576e4 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_144.txt @@ -0,0 +1,3 @@ +wither +mario alberto +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_145.txt b/mods/u_skins/u_skins/meta/character_145.txt new file mode 100644 index 00000000..218e097e --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_145.txt @@ -0,0 +1,3 @@ +Cywalk Sam +w_laenger +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_146.txt b/mods/u_skins/u_skins/meta/character_146.txt new file mode 100644 index 00000000..97df805f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_146.txt @@ -0,0 +1,3 @@ +rantathe +ranta +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_147.txt b/mods/u_skins/u_skins/meta/character_147.txt new file mode 100644 index 00000000..ed0c5a43 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_147.txt @@ -0,0 +1,3 @@ +ranta mk 2 +ranta +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_148.txt b/mods/u_skins/u_skins/meta/character_148.txt new file mode 100644 index 00000000..c49728c2 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_148.txt @@ -0,0 +1,3 @@ +gta +vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_149.txt b/mods/u_skins/u_skins/meta/character_149.txt new file mode 100644 index 00000000..7b600b76 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_149.txt @@ -0,0 +1,3 @@ +DJ Gangstar +hansuke123 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_15.txt b/mods/u_skins/u_skins/meta/character_15.txt new file mode 100644 index 00000000..06f4aecb --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_15.txt @@ -0,0 +1,3 @@ +G-Robo v5000 +philipbenr +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_150.txt b/mods/u_skins/u_skins/meta/character_150.txt new file mode 100644 index 00000000..cf832365 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_150.txt @@ -0,0 +1,3 @@ +Blue Tron Man +Novacain +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_151.txt b/mods/u_skins/u_skins/meta/character_151.txt new file mode 100644 index 00000000..908cd857 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_151.txt @@ -0,0 +1,3 @@ +killer man +hansuke123 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_152.txt b/mods/u_skins/u_skins/meta/character_152.txt new file mode 100644 index 00000000..0b263903 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_152.txt @@ -0,0 +1,3 @@ +agent slender +krauserlee +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_153.txt b/mods/u_skins/u_skins/meta/character_153.txt new file mode 100644 index 00000000..f54b9195 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_153.txt @@ -0,0 +1,3 @@ +DJ Gangstar on the cape +hansuke123 +CC BY-NC-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_154.txt b/mods/u_skins/u_skins/meta/character_154.txt new file mode 100644 index 00000000..5181c5a3 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_154.txt @@ -0,0 +1,3 @@ +Steve on the a creeper head +hansuke123 +CC BY 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_155.txt b/mods/u_skins/u_skins/meta/character_155.txt new file mode 100644 index 00000000..ef80ef18 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_155.txt @@ -0,0 +1,3 @@ +Calinou +Calinou +CC BY-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_156.txt b/mods/u_skins/u_skins/meta/character_156.txt new file mode 100644 index 00000000..84e82d76 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_156.txt @@ -0,0 +1,3 @@ +EnderMan +Eu +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_157.txt b/mods/u_skins/u_skins/meta/character_157.txt new file mode 100644 index 00000000..41badcb7 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_157.txt @@ -0,0 +1,3 @@ +Finnzzin +João Neto +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_158.txt b/mods/u_skins/u_skins/meta/character_158.txt new file mode 100644 index 00000000..c223c12d --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_158.txt @@ -0,0 +1,3 @@ +Golden Knight +Nero3605 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_159.txt b/mods/u_skins/u_skins/meta/character_159.txt new file mode 100644 index 00000000..f2288d4f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_159.txt @@ -0,0 +1,3 @@ +wheat farmer +addi +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_16.txt b/mods/u_skins/u_skins/meta/character_16.txt new file mode 100644 index 00000000..6665b8c4 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_16.txt @@ -0,0 +1,3 @@ +jojoa1997 +jojoa1997 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_161.txt b/mods/u_skins/u_skins/meta/character_161.txt new file mode 100644 index 00000000..2b18f253 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_161.txt @@ -0,0 +1,3 @@ +one of my favourite skins +w_laenger +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_162.txt b/mods/u_skins/u_skins/meta/character_162.txt new file mode 100644 index 00000000..9cfae26b --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_162.txt @@ -0,0 +1,3 @@ +Mammu +hansuke123 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_163.txt b/mods/u_skins/u_skins/meta/character_163.txt new file mode 100644 index 00000000..7a11d502 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_163.txt @@ -0,0 +1,3 @@ +Enderman +hansuke123 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_164.txt b/mods/u_skins/u_skins/meta/character_164.txt new file mode 100644 index 00000000..dfd9ac72 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_164.txt @@ -0,0 +1,3 @@ +DanTDM +hansuke123 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_165.txt b/mods/u_skins/u_skins/meta/character_165.txt new file mode 100644 index 00000000..f3f67011 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_165.txt @@ -0,0 +1,3 @@ +Gangstar Herobrine +hansuke123 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_166.txt b/mods/u_skins/u_skins/meta/character_166.txt new file mode 100644 index 00000000..acb061bb --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_166.txt @@ -0,0 +1,3 @@ +Zombie Boss +hansuke123 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_167.txt b/mods/u_skins/u_skins/meta/character_167.txt new file mode 100644 index 00000000..d35244ed --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_167.txt @@ -0,0 +1,3 @@ +Esteban +Esteban +CC BY-NC-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_168.txt b/mods/u_skins/u_skins/meta/character_168.txt new file mode 100644 index 00000000..81b86213 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_168.txt @@ -0,0 +1,3 @@ +Bajancanadian +bajanhgk +CC BY 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_169.txt b/mods/u_skins/u_skins/meta/character_169.txt new file mode 100644 index 00000000..326e1f42 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_169.txt @@ -0,0 +1,3 @@ +boy +bajanhgk +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_17.txt b/mods/u_skins/u_skins/meta/character_17.txt new file mode 100644 index 00000000..6ad4dfdd --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_17.txt @@ -0,0 +1,3 @@ +Zenohelds default player +sdzen +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_170.txt b/mods/u_skins/u_skins/meta/character_170.txt new file mode 100644 index 00000000..7980515f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_170.txt @@ -0,0 +1,3 @@ +Dead pool +bajanhgk +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_171.txt b/mods/u_skins/u_skins/meta/character_171.txt new file mode 100644 index 00000000..e2c9dbd5 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_171.txt @@ -0,0 +1,3 @@ +cool guy +bajanhgk +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_172.txt b/mods/u_skins/u_skins/meta/character_172.txt new file mode 100644 index 00000000..cb7d27ec --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_172.txt @@ -0,0 +1,3 @@ +Cryotic +bajanhgk +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_173.txt b/mods/u_skins/u_skins/meta/character_173.txt new file mode 100644 index 00000000..3dceeb66 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_173.txt @@ -0,0 +1,3 @@ +Altier +bajanhgk +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_174.txt b/mods/u_skins/u_skins/meta/character_174.txt new file mode 100644 index 00000000..e49e4584 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_174.txt @@ -0,0 +1,3 @@ +Sasuke +Bajanhgk +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_175.txt b/mods/u_skins/u_skins/meta/character_175.txt new file mode 100644 index 00000000..fbdb3d36 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_175.txt @@ -0,0 +1,3 @@ +Iron patriot +bajanhgk +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_176.txt b/mods/u_skins/u_skins/meta/character_176.txt new file mode 100644 index 00000000..79ef5e7c --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_176.txt @@ -0,0 +1,3 @@ +Iron spider +bajanhgk +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_177.txt b/mods/u_skins/u_skins/meta/character_177.txt new file mode 100644 index 00000000..3fda5a17 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_177.txt @@ -0,0 +1,3 @@ +Spider man +bajanhgk +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_178.txt b/mods/u_skins/u_skins/meta/character_178.txt new file mode 100644 index 00000000..56812754 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_178.txt @@ -0,0 +1,3 @@ +War machine +bajanhgk +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_179.txt b/mods/u_skins/u_skins/meta/character_179.txt new file mode 100644 index 00000000..27033ba9 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_179.txt @@ -0,0 +1,3 @@ +Dante +bajanhgk +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_18.txt b/mods/u_skins/u_skins/meta/character_18.txt new file mode 100644 index 00000000..aa36be27 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_18.txt @@ -0,0 +1,3 @@ +Sdzen +sdzen +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_180.txt b/mods/u_skins/u_skins/meta/character_180.txt new file mode 100644 index 00000000..91361329 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_180.txt @@ -0,0 +1,3 @@ +Naruto kuiby +bajanhgk +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_181.txt b/mods/u_skins/u_skins/meta/character_181.txt new file mode 100644 index 00000000..4941d4ab --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_181.txt @@ -0,0 +1,3 @@ +Blue iron man +bajnhgk +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_182.txt b/mods/u_skins/u_skins/meta/character_182.txt new file mode 100644 index 00000000..7aa90814 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_182.txt @@ -0,0 +1,3 @@ +Pewdiepie +bajanhgk +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_183.txt b/mods/u_skins/u_skins/meta/character_183.txt new file mode 100644 index 00000000..b0af5ce2 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_183.txt @@ -0,0 +1,3 @@ +Akatsuki sasuke +bajanhgk +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_184.txt b/mods/u_skins/u_skins/meta/character_184.txt new file mode 100644 index 00000000..dfb518e6 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_184.txt @@ -0,0 +1,3 @@ +Notch +bajanhgk +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_185.txt b/mods/u_skins/u_skins/meta/character_185.txt new file mode 100644 index 00000000..cfd5ca24 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_185.txt @@ -0,0 +1,3 @@ +Steve HD +bajanhgk +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_186.txt b/mods/u_skins/u_skins/meta/character_186.txt new file mode 100644 index 00000000..cd4922dd --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_186.txt @@ -0,0 +1,3 @@ +Taco creeper +bajanhgk +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_187.txt b/mods/u_skins/u_skins/meta/character_187.txt new file mode 100644 index 00000000..ffe4f74d --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_187.txt @@ -0,0 +1,3 @@ +Bajancanadians knight +bajanhgk +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_188.txt b/mods/u_skins/u_skins/meta/character_188.txt new file mode 100644 index 00000000..89c79d3e --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_188.txt @@ -0,0 +1,3 @@ +Bajancanadian soldier +bajanhgk +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_189.txt b/mods/u_skins/u_skins/meta/character_189.txt new file mode 100644 index 00000000..9cf89183 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_189.txt @@ -0,0 +1,3 @@ +True MU +bajanhgk +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_19.txt b/mods/u_skins/u_skins/meta/character_19.txt new file mode 100644 index 00000000..1ad2400c --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_19.txt @@ -0,0 +1,3 @@ +horrible spring sdzen +sdzen +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_190.txt b/mods/u_skins/u_skins/meta/character_190.txt new file mode 100644 index 00000000..edabd272 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_190.txt @@ -0,0 +1,3 @@ +Nerd Sam +Pitfiend +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_191.txt b/mods/u_skins/u_skins/meta/character_191.txt new file mode 100644 index 00000000..d5d26625 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_191.txt @@ -0,0 +1,3 @@ +Son Goku +Esteban +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_192.txt b/mods/u_skins/u_skins/meta/character_192.txt new file mode 100644 index 00000000..58c8f853 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_192.txt @@ -0,0 +1,3 @@ +Vegeta +Esteban +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_193.txt b/mods/u_skins/u_skins/meta/character_193.txt new file mode 100644 index 00000000..480b023e --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_193.txt @@ -0,0 +1,3 @@ +Ssj Majin Vegeta +Esteban +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_194.txt b/mods/u_skins/u_skins/meta/character_194.txt new file mode 100644 index 00000000..2fdd33f9 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_194.txt @@ -0,0 +1,3 @@ +Ssj Goku +Esteban +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_195.txt b/mods/u_skins/u_skins/meta/character_195.txt new file mode 100644 index 00000000..51985ffa --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_195.txt @@ -0,0 +1,3 @@ +Esteban (Goku Outfit) +Esteban +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_196.txt b/mods/u_skins/u_skins/meta/character_196.txt new file mode 100644 index 00000000..2a03a334 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_196.txt @@ -0,0 +1,3 @@ +victor +sanuk +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_197.txt b/mods/u_skins/u_skins/meta/character_197.txt new file mode 100644 index 00000000..15547001 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_197.txt @@ -0,0 +1,3 @@ +Rhys +Rhys +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_198.txt b/mods/u_skins/u_skins/meta/character_198.txt new file mode 100644 index 00000000..3749e547 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_198.txt @@ -0,0 +1,3 @@ +In the Navy +Bob Hovercraft +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_199.txt b/mods/u_skins/u_skins/meta/character_199.txt new file mode 100644 index 00000000..437e1535 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_199.txt @@ -0,0 +1,3 @@ +Downs +Downs +CC BY-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_2.txt b/mods/u_skins/u_skins/meta/character_2.txt new file mode 100755 index 00000000..0187cab9 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_2.txt @@ -0,0 +1,3 @@ +Sam I +Jordach +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_20.txt b/mods/u_skins/u_skins/meta/character_20.txt new file mode 100644 index 00000000..dc7e8370 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_20.txt @@ -0,0 +1,3 @@ +B +sdzen +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_200.txt b/mods/u_skins/u_skins/meta/character_200.txt new file mode 100644 index 00000000..d367af03 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_200.txt @@ -0,0 +1,3 @@ +Fre (Brasil) +Fre +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_201.txt b/mods/u_skins/u_skins/meta/character_201.txt new file mode 100644 index 00000000..6bca35a1 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_201.txt @@ -0,0 +1,3 @@ +stormchaser3000 +stormchaser3000 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_202.txt b/mods/u_skins/u_skins/meta/character_202.txt new file mode 100644 index 00000000..8d1203e0 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_202.txt @@ -0,0 +1,3 @@ +TheEpicJames +Block_Guy +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_203.txt b/mods/u_skins/u_skins/meta/character_203.txt new file mode 100644 index 00000000..43f046b2 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_203.txt @@ -0,0 +1,3 @@ +nickli +sazonov.pavlik73-nickli +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_204.txt b/mods/u_skins/u_skins/meta/character_204.txt new file mode 100644 index 00000000..0b9fcc64 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_204.txt @@ -0,0 +1,3 @@ +WindHero +HeroOfTheWinds +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_205.txt b/mods/u_skins/u_skins/meta/character_205.txt new file mode 100644 index 00000000..b85577b3 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_205.txt @@ -0,0 +1,3 @@ +Hunky Simon +Andromeda +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_206.txt b/mods/u_skins/u_skins/meta/character_206.txt new file mode 100644 index 00000000..c61f920f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_206.txt @@ -0,0 +1,3 @@ +Hunky Simon with Jacket +Andromeda +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_207.txt b/mods/u_skins/u_skins/meta/character_207.txt new file mode 100644 index 00000000..b5b5dab1 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_207.txt @@ -0,0 +1,3 @@ +Jayne +Andromeda +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_208.txt b/mods/u_skins/u_skins/meta/character_208.txt new file mode 100644 index 00000000..bf0fdb62 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_208.txt @@ -0,0 +1,3 @@ +Arctic Fox +Andromeda +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_209.txt b/mods/u_skins/u_skins/meta/character_209.txt new file mode 100644 index 00000000..df3a016e --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_209.txt @@ -0,0 +1,3 @@ +darckcraft +gustavomoura +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_21.txt b/mods/u_skins/u_skins/meta/character_21.txt new file mode 100644 index 00000000..752faa7a --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_21.txt @@ -0,0 +1,3 @@ +Demon Farmer Sam (ray8888 server) +sdzen +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_210.txt b/mods/u_skins/u_skins/meta/character_210.txt new file mode 100644 index 00000000..ea3284f3 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_210.txt @@ -0,0 +1,3 @@ +Zuca +ZcaGT +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_211.txt b/mods/u_skins/u_skins/meta/character_211.txt new file mode 100644 index 00000000..daf44061 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_211.txt @@ -0,0 +1,3 @@ +ultrakirbyfan100 MegaMan 7 +unknown +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_212.txt b/mods/u_skins/u_skins/meta/character_212.txt new file mode 100644 index 00000000..4612d751 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_212.txt @@ -0,0 +1,3 @@ +Red-brown-shirt-dude +Krock +CC BY-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_213.txt b/mods/u_skins/u_skins/meta/character_213.txt new file mode 100644 index 00000000..864cec19 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_213.txt @@ -0,0 +1,3 @@ +cx384 +cx3884 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_214.txt b/mods/u_skins/u_skins/meta/character_214.txt new file mode 100644 index 00000000..3f1261f3 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_214.txt @@ -0,0 +1,3 @@ +nickli +sazonov.pavlik73-nickli +CC BY-NC-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_215.txt b/mods/u_skins/u_skins/meta/character_215.txt new file mode 100644 index 00000000..44a7a5e3 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_215.txt @@ -0,0 +1,3 @@ +Jeff The Killer +Colerart_26 +CC BY-NC-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_216.txt b/mods/u_skins/u_skins/meta/character_216.txt new file mode 100644 index 00000000..015bc628 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_216.txt @@ -0,0 +1,3 @@ +HelldogMadness +Colerart_26 +CC BY-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_217.txt b/mods/u_skins/u_skins/meta/character_217.txt new file mode 100644 index 00000000..79a9d161 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_217.txt @@ -0,0 +1,3 @@ +ColerArt26 +Colerart_26 +CC BY-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_218.txt b/mods/u_skins/u_skins/meta/character_218.txt new file mode 100644 index 00000000..43c8bbe9 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_218.txt @@ -0,0 +1,3 @@ +Bangarng Kid +hansuke123 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_219.txt b/mods/u_skins/u_skins/meta/character_219.txt new file mode 100644 index 00000000..c6966314 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_219.txt @@ -0,0 +1,3 @@ +Oliver_MV +hansuke123 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_22.txt b/mods/u_skins/u_skins/meta/character_22.txt new file mode 100644 index 00000000..9a61e9b5 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_22.txt @@ -0,0 +1,3 @@ +Tree +Evergreen +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_220.txt b/mods/u_skins/u_skins/meta/character_220.txt new file mode 100644 index 00000000..d6df76d9 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_220.txt @@ -0,0 +1,3 @@ +nickli +sazonov.pavlik73-nickli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_221.txt b/mods/u_skins/u_skins/meta/character_221.txt new file mode 100644 index 00000000..207757aa --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_221.txt @@ -0,0 +1,3 @@ +Suited bald guy +nman3600 +CC BY-NC-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_222.txt b/mods/u_skins/u_skins/meta/character_222.txt new file mode 100644 index 00000000..7a7c253d --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_222.txt @@ -0,0 +1,3 @@ +victor +1 lobo +CC BY-NC-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_223.txt b/mods/u_skins/u_skins/meta/character_223.txt new file mode 100644 index 00000000..bc26232e --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_223.txt @@ -0,0 +1,3 @@ +bmx xxx +bnw +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_224.txt b/mods/u_skins/u_skins/meta/character_224.txt new file mode 100644 index 00000000..1f77ecd0 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_224.txt @@ -0,0 +1,3 @@ +Th Blue Sorcerer +Nero3605 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_225.txt b/mods/u_skins/u_skins/meta/character_225.txt new file mode 100644 index 00000000..957a3878 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_225.txt @@ -0,0 +1,3 @@ +Nero +Nero3605 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_226.txt b/mods/u_skins/u_skins/meta/character_226.txt new file mode 100644 index 00000000..d26be9ca --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_226.txt @@ -0,0 +1,3 @@ +24 Karatoid +robotest +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_227.txt b/mods/u_skins/u_skins/meta/character_227.txt new file mode 100644 index 00000000..da47268f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_227.txt @@ -0,0 +1,3 @@ +Electroid +robotest +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_228.txt b/mods/u_skins/u_skins/meta/character_228.txt new file mode 100644 index 00000000..e2e6a4c2 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_228.txt @@ -0,0 +1,3 @@ +Electroid II +robotest +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_229.txt b/mods/u_skins/u_skins/meta/character_229.txt new file mode 100644 index 00000000..fb5c32bb --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_229.txt @@ -0,0 +1,3 @@ +El Robo +robotest +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_23.txt b/mods/u_skins/u_skins/meta/character_23.txt new file mode 100644 index 00000000..0ca37895 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_23.txt @@ -0,0 +1,3 @@ +Interstella 5555 guitarist +philipbenr +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_230.txt b/mods/u_skins/u_skins/meta/character_230.txt new file mode 100644 index 00000000..8b244d38 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_230.txt @@ -0,0 +1,3 @@ +Fireworks-toid +robotest +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_232.txt b/mods/u_skins/u_skins/meta/character_232.txt new file mode 100644 index 00000000..8c6dc251 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_232.txt @@ -0,0 +1,3 @@ +erick +tor +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_233.txt b/mods/u_skins/u_skins/meta/character_233.txt new file mode 100644 index 00000000..844bb0be --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_233.txt @@ -0,0 +1,3 @@ +Wii +ClotsPlays +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_234.txt b/mods/u_skins/u_skins/meta/character_234.txt new file mode 100644 index 00000000..04e27b76 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_234.txt @@ -0,0 +1,3 @@ +Boltys_loiro +ClotsPlays +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_235.txt b/mods/u_skins/u_skins/meta/character_235.txt new file mode 100644 index 00000000..74010e32 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_235.txt @@ -0,0 +1,3 @@ +NubinhoBR +NubinhoBR +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_236.txt b/mods/u_skins/u_skins/meta/character_236.txt new file mode 100644 index 00000000..fdc54916 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_236.txt @@ -0,0 +1,3 @@ +XxWeaxX +Gabriel de sa +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_237.txt b/mods/u_skins/u_skins/meta/character_237.txt new file mode 100644 index 00000000..f0339c38 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_237.txt @@ -0,0 +1,3 @@ +Tuts +MãedaFoca +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_238.txt b/mods/u_skins/u_skins/meta/character_238.txt new file mode 100644 index 00000000..a9b4d918 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_238.txt @@ -0,0 +1,3 @@ +pencilSam +sazonov.pavlik73-nickli +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_239.txt b/mods/u_skins/u_skins/meta/character_239.txt new file mode 100644 index 00000000..107b9439 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_239.txt @@ -0,0 +1,3 @@ +drugsSam +sazonov.pavlik73-nickli +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_24.txt b/mods/u_skins/u_skins/meta/character_24.txt new file mode 100644 index 00000000..34a0974b --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_24.txt @@ -0,0 +1,3 @@ +Brett Favre +philipbenr +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_240.txt b/mods/u_skins/u_skins/meta/character_240.txt new file mode 100644 index 00000000..eeb91d45 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_240.txt @@ -0,0 +1,3 @@ +Sam-herobrine +sazonov.pavlik73 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_241.txt b/mods/u_skins/u_skins/meta/character_241.txt new file mode 100644 index 00000000..6fea2990 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_241.txt @@ -0,0 +1,3 @@ +oldman +sazonov.pavlik73-nickli +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_242.txt b/mods/u_skins/u_skins/meta/character_242.txt new file mode 100644 index 00000000..e58f0a8f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_242.txt @@ -0,0 +1,3 @@ +hallowen +sazonov.pavlik73-nickli +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_243.txt b/mods/u_skins/u_skins/meta/character_243.txt new file mode 100644 index 00000000..46d39665 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_243.txt @@ -0,0 +1,3 @@ +extraterrestrial being +sazonov.pavlik73-nickli +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_244.txt b/mods/u_skins/u_skins/meta/character_244.txt new file mode 100644 index 00000000..5c4c18ab --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_244.txt @@ -0,0 +1,3 @@ +Jef the killer +sazonov.pavlik72-nickli +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_245.txt b/mods/u_skins/u_skins/meta/character_245.txt new file mode 100644 index 00000000..3c3e0e8a --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_245.txt @@ -0,0 +1,3 @@ +greenman +sazonov.pavlik73-nickli +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_246.txt b/mods/u_skins/u_skins/meta/character_246.txt new file mode 100644 index 00000000..80f7a4c8 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_246.txt @@ -0,0 +1,3 @@ +XxXplusultrasXxX +Ferdi Diavoloblu +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_247.txt b/mods/u_skins/u_skins/meta/character_247.txt new file mode 100644 index 00000000..0110d99d --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_247.txt @@ -0,0 +1,3 @@ +Normalo +Krock +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_248.txt b/mods/u_skins/u_skins/meta/character_248.txt new file mode 100644 index 00000000..50ae2ee5 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_248.txt @@ -0,0 +1,3 @@ +Enke +Enke +CC BY-NC-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_249.txt b/mods/u_skins/u_skins/meta/character_249.txt new file mode 100644 index 00000000..88f4e942 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_249.txt @@ -0,0 +1,3 @@ +mota +fas +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_25.txt b/mods/u_skins/u_skins/meta/character_25.txt new file mode 100644 index 00000000..a3ce2d71 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_25.txt @@ -0,0 +1,3 @@ +Summer Sam +philipbenr +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_250.txt b/mods/u_skins/u_skins/meta/character_250.txt new file mode 100644 index 00000000..71b8c3b1 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_250.txt @@ -0,0 +1,3 @@ +cheto +chetitogonza +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_251.txt b/mods/u_skins/u_skins/meta/character_251.txt new file mode 100644 index 00000000..57a44635 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_251.txt @@ -0,0 +1,3 @@ +take bake the night herobrine +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_252.txt b/mods/u_skins/u_skins/meta/character_252.txt new file mode 100644 index 00000000..de3ac316 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_252.txt @@ -0,0 +1,3 @@ +take bake the night sensei +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_253.txt b/mods/u_skins/u_skins/meta/character_253.txt new file mode 100644 index 00000000..97b4b3c4 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_253.txt @@ -0,0 +1,3 @@ +take bake the night studant +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_254.txt b/mods/u_skins/u_skins/meta/character_254.txt new file mode 100644 index 00000000..9f8453f7 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_254.txt @@ -0,0 +1,3 @@ +dead man from lottmabs +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_255.txt b/mods/u_skins/u_skins/meta/character_255.txt new file mode 100644 index 00000000..b2e9a3d5 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_255.txt @@ -0,0 +1,3 @@ +dwarf from lottmob +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_256.txt b/mods/u_skins/u_skins/meta/character_256.txt new file mode 100644 index 00000000..a60fd098 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_256.txt @@ -0,0 +1,3 @@ +dunlending from lottmob +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_257.txt b/mods/u_skins/u_skins/meta/character_257.txt new file mode 100644 index 00000000..22bdca05 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_257.txt @@ -0,0 +1,3 @@ +elf from lottmob +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_258.txt b/mods/u_skins/u_skins/meta/character_258.txt new file mode 100644 index 00000000..53dcae17 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_258.txt @@ -0,0 +1,3 @@ +gondor guard from lottmob +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_259.txt b/mods/u_skins/u_skins/meta/character_259.txt new file mode 100644 index 00000000..4db4cc69 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_259.txt @@ -0,0 +1,3 @@ +half troll from lottmob +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_26.txt b/mods/u_skins/u_skins/meta/character_26.txt new file mode 100644 index 00000000..8da93cc9 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_26.txt @@ -0,0 +1,3 @@ +Samantha I +philipbenr +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_260.txt b/mods/u_skins/u_skins/meta/character_260.txt new file mode 100644 index 00000000..f6f8711b --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_260.txt @@ -0,0 +1,3 @@ +hobbit from lottmob +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_261.txt b/mods/u_skins/u_skins/meta/character_261.txt new file mode 100644 index 00000000..249a30fb --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_261.txt @@ -0,0 +1,3 @@ +nazgul old from lottmobs +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_262.txt b/mods/u_skins/u_skins/meta/character_262.txt new file mode 100644 index 00000000..dc17a540 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_262.txt @@ -0,0 +1,3 @@ +orc from lottmob +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_263.txt b/mods/u_skins/u_skins/meta/character_263.txt new file mode 100644 index 00000000..b0d0c120 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_263.txt @@ -0,0 +1,3 @@ +rohan guard from lottmob +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_264.txt b/mods/u_skins/u_skins/meta/character_264.txt new file mode 100644 index 00000000..82e17235 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_264.txt @@ -0,0 +1,3 @@ +uruk hai from lottmob +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_265.txt b/mods/u_skins/u_skins/meta/character_265.txt new file mode 100644 index 00000000..9c353eaf --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_265.txt @@ -0,0 +1,3 @@ +witch king from lottmob +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_266.txt b/mods/u_skins/u_skins/meta/character_266.txt new file mode 100644 index 00000000..41856058 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_266.txt @@ -0,0 +1,3 @@ +npc trader from mobf +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_267.txt b/mods/u_skins/u_skins/meta/character_267.txt new file mode 100644 index 00000000..33c05ef6 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_267.txt @@ -0,0 +1,3 @@ +cheapie +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_268.txt b/mods/u_skins/u_skins/meta/character_268.txt new file mode 100644 index 00000000..6ad6a2e6 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_268.txt @@ -0,0 +1,3 @@ +playzooki +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_269.txt b/mods/u_skins/u_skins/meta/character_269.txt new file mode 100644 index 00000000..7c359c0c --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_269.txt @@ -0,0 +1,3 @@ +shadowzone +crazyginger72 +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_27.txt b/mods/u_skins/u_skins/meta/character_27.txt new file mode 100644 index 00000000..30ba511b --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_27.txt @@ -0,0 +1,3 @@ +Space Sam +philipbenr +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_270.txt b/mods/u_skins/u_skins/meta/character_270.txt new file mode 100644 index 00000000..9c52652b --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_270.txt @@ -0,0 +1,3 @@ +Sokomine +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_271.txt b/mods/u_skins/u_skins/meta/character_271.txt new file mode 100644 index 00000000..829787e9 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_271.txt @@ -0,0 +1,3 @@ +vilager +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_272.txt b/mods/u_skins/u_skins/meta/character_272.txt new file mode 100644 index 00000000..5325f991 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_272.txt @@ -0,0 +1,3 @@ +blue girl +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_273.txt b/mods/u_skins/u_skins/meta/character_273.txt new file mode 100644 index 00000000..5f1fc04b --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_273.txt @@ -0,0 +1,3 @@ +herobrines blody gost +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_274.txt b/mods/u_skins/u_skins/meta/character_274.txt new file mode 100644 index 00000000..93d1568e --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_274.txt @@ -0,0 +1,3 @@ +beatch girl +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_275.txt b/mods/u_skins/u_skins/meta/character_275.txt new file mode 100644 index 00000000..c30dc0d4 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_275.txt @@ -0,0 +1,3 @@ +niaon cat 1 +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_276.txt b/mods/u_skins/u_skins/meta/character_276.txt new file mode 100644 index 00000000..74a5b35a --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_276.txt @@ -0,0 +1,3 @@ +neon cat 2 +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_277.txt b/mods/u_skins/u_skins/meta/character_277.txt new file mode 100644 index 00000000..92bc5c41 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_277.txt @@ -0,0 +1,3 @@ +steave +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_278.txt b/mods/u_skins/u_skins/meta/character_278.txt new file mode 100644 index 00000000..bf7b78c2 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_278.txt @@ -0,0 +1,3 @@ +the all and great danTDM +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_279.txt b/mods/u_skins/u_skins/meta/character_279.txt new file mode 100644 index 00000000..386e34f9 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_279.txt @@ -0,0 +1,3 @@ +vilager 2 +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_28.txt b/mods/u_skins/u_skins/meta/character_28.txt new file mode 100644 index 00000000..9a61e9b5 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_28.txt @@ -0,0 +1,3 @@ +Tree +Evergreen +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_280.txt b/mods/u_skins/u_skins/meta/character_280.txt new file mode 100644 index 00000000..dee23b03 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_280.txt @@ -0,0 +1,3 @@ +the 10the doctor +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_281.txt b/mods/u_skins/u_skins/meta/character_281.txt new file mode 100644 index 00000000..e4f46399 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_281.txt @@ -0,0 +1,3 @@ +creaper +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_282.txt b/mods/u_skins/u_skins/meta/character_282.txt new file mode 100644 index 00000000..bcdc60f1 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_282.txt @@ -0,0 +1,3 @@ +Adventer girl +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_283.txt b/mods/u_skins/u_skins/meta/character_283.txt new file mode 100644 index 00000000..ff08f2f5 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_283.txt @@ -0,0 +1,3 @@ +vineu +vinicius +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_284.txt b/mods/u_skins/u_skins/meta/character_284.txt new file mode 100644 index 00000000..0a31d2a2 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_284.txt @@ -0,0 +1,3 @@ +devil +sazonov.pavlik73-nickli +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_285.txt b/mods/u_skins/u_skins/meta/character_285.txt new file mode 100644 index 00000000..7b12cf89 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_285.txt @@ -0,0 +1,3 @@ +Old Sam +sazonov.pavlik73-nickli +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_286.txt b/mods/u_skins/u_skins/meta/character_286.txt new file mode 100644 index 00000000..cb951074 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_286.txt @@ -0,0 +1,3 @@ +Michal VonFlynee +Michal VonFlynee +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_287.txt b/mods/u_skins/u_skins/meta/character_287.txt new file mode 100644 index 00000000..b29158cc --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_287.txt @@ -0,0 +1,3 @@ +aresgames +aresgames +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_288.txt b/mods/u_skins/u_skins/meta/character_288.txt new file mode 100644 index 00000000..b9c73af8 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_288.txt @@ -0,0 +1,3 @@ +DanTDM Girl +Hansuke123 +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_289.txt b/mods/u_skins/u_skins/meta/character_289.txt new file mode 100644 index 00000000..8491cf1c --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_289.txt @@ -0,0 +1,3 @@ +Shirt-less Shaun +Josh Mars +CC BY 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_29.txt b/mods/u_skins/u_skins/meta/character_29.txt new file mode 100644 index 00000000..ee74fcba --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_29.txt @@ -0,0 +1,3 @@ +steel man +rotor112 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_290.txt b/mods/u_skins/u_skins/meta/character_290.txt new file mode 100644 index 00000000..2884ed0e --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_290.txt @@ -0,0 +1,3 @@ +slenderman +sazonov.pavlik73 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_291.txt b/mods/u_skins/u_skins/meta/character_291.txt new file mode 100644 index 00000000..c7ce8202 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_291.txt @@ -0,0 +1,3 @@ +zombie-Sam +sazonov.pavlik73-nickli +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_292.txt b/mods/u_skins/u_skins/meta/character_292.txt new file mode 100644 index 00000000..e6c5d58e --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_292.txt @@ -0,0 +1,3 @@ +Ghost +sazonov.pavlik73-nickli +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_293.txt b/mods/u_skins/u_skins/meta/character_293.txt new file mode 100644 index 00000000..1b9abf0f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_293.txt @@ -0,0 +1,3 @@ +Snow ghost +sazonov.pavlik73-nickli +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_294.txt b/mods/u_skins/u_skins/meta/character_294.txt new file mode 100644 index 00000000..c68c179f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_294.txt @@ -0,0 +1,3 @@ +Worker +Krock +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_295.txt b/mods/u_skins/u_skins/meta/character_295.txt new file mode 100644 index 00000000..51eb5582 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_295.txt @@ -0,0 +1,3 @@ +DeathRocker +Napiophelios +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_296.txt b/mods/u_skins/u_skins/meta/character_296.txt new file mode 100644 index 00000000..82c18ed8 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_296.txt @@ -0,0 +1,3 @@ +Nerd_TrollBr +Nerd_TrollBr +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_297.txt b/mods/u_skins/u_skins/meta/character_297.txt new file mode 100644 index 00000000..991e5024 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_297.txt @@ -0,0 +1,3 @@ +johan32 +johan chipa vera +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_298.txt b/mods/u_skins/u_skins/meta/character_298.txt new file mode 100644 index 00000000..d6d6cca9 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_298.txt @@ -0,0 +1,3 @@ +Bag dude +Krock +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_299.txt b/mods/u_skins/u_skins/meta/character_299.txt new file mode 100644 index 00000000..a5779342 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_299.txt @@ -0,0 +1,3 @@ +TheNinjaTNT +NinjaCraftBR +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_3.txt b/mods/u_skins/u_skins/meta/character_3.txt new file mode 100644 index 00000000..5c4198ab --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_3.txt @@ -0,0 +1,3 @@ +Sam II +Jordach +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_30.txt b/mods/u_skins/u_skins/meta/character_30.txt new file mode 100644 index 00000000..af74a88d --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_30.txt @@ -0,0 +1,3 @@ +philipbenr +philipbenr +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_300.txt b/mods/u_skins/u_skins/meta/character_300.txt new file mode 100644 index 00000000..7afd3a88 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_300.txt @@ -0,0 +1,3 @@ +Adventurer +XSuperSaintX +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_301.txt b/mods/u_skins/u_skins/meta/character_301.txt new file mode 100644 index 00000000..a85244af --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_301.txt @@ -0,0 +1,3 @@ +Builder +Jyrgenf +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_302.txt b/mods/u_skins/u_skins/meta/character_302.txt new file mode 100644 index 00000000..e47292ca --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_302.txt @@ -0,0 +1,3 @@ +vegetta +edwar masterchieft +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_304.txt b/mods/u_skins/u_skins/meta/character_304.txt new file mode 100644 index 00000000..2380c2e2 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_304.txt @@ -0,0 +1,3 @@ +Craftbot +LazerRay +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_305.txt b/mods/u_skins/u_skins/meta/character_305.txt new file mode 100644 index 00000000..a63487f4 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_305.txt @@ -0,0 +1,3 @@ +diamantes +edwar masterchieft +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_306.txt b/mods/u_skins/u_skins/meta/character_306.txt new file mode 100644 index 00000000..f531f5f0 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_306.txt @@ -0,0 +1,3 @@ +homgallina +edwar masterchieft +CC BY-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_307.txt b/mods/u_skins/u_skins/meta/character_307.txt new file mode 100644 index 00000000..4bdd5b3f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_307.txt @@ -0,0 +1,3 @@ +nman3600 +nman3600 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_308.txt b/mods/u_skins/u_skins/meta/character_308.txt new file mode 100644 index 00000000..de5460f1 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_308.txt @@ -0,0 +1,3 @@ +Orange +Wuzzy +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_309.txt b/mods/u_skins/u_skins/meta/character_309.txt new file mode 100644 index 00000000..841aef05 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_309.txt @@ -0,0 +1,3 @@ +the next derp steave +lovehart +CC BY-NC-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_31.txt b/mods/u_skins/u_skins/meta/character_31.txt new file mode 100644 index 00000000..334c4b73 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_31.txt @@ -0,0 +1,3 @@ +vf +vf +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_310.txt b/mods/u_skins/u_skins/meta/character_310.txt new file mode 100644 index 00000000..6c19bf7d --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_310.txt @@ -0,0 +1,3 @@ +the trool +lovehart +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_311.txt b/mods/u_skins/u_skins/meta/character_311.txt new file mode 100644 index 00000000..e6fbc3a8 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_311.txt @@ -0,0 +1,3 @@ +happy +lovehart +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_312.txt b/mods/u_skins/u_skins/meta/character_312.txt new file mode 100644 index 00000000..c2c75e43 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_312.txt @@ -0,0 +1,3 @@ +Supper sam +lovehart +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_313.txt b/mods/u_skins/u_skins/meta/character_313.txt new file mode 100644 index 00000000..433eb9a9 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_313.txt @@ -0,0 +1,3 @@ +panda +edwar masterchieft +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_314.txt b/mods/u_skins/u_skins/meta/character_314.txt new file mode 100644 index 00000000..7f6a4f5b --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_314.txt @@ -0,0 +1,3 @@ +sorrillo +edwar masterchieft +CC BY-NC-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_315.txt b/mods/u_skins/u_skins/meta/character_315.txt new file mode 100644 index 00000000..e83f713e --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_315.txt @@ -0,0 +1,3 @@ +jajaja nose que nombre xd +edwar masterchieft +CC BY 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_316.txt b/mods/u_skins/u_skins/meta/character_316.txt new file mode 100644 index 00000000..90d486d4 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_316.txt @@ -0,0 +1,3 @@ +thewillyrex +edwar masterchieft +CC BY-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_317.txt b/mods/u_skins/u_skins/meta/character_317.txt new file mode 100644 index 00000000..cd6efd3c --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_317.txt @@ -0,0 +1,3 @@ +a +edwar masterchieft +CC BY 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_318.txt b/mods/u_skins/u_skins/meta/character_318.txt new file mode 100644 index 00000000..32b00708 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_318.txt @@ -0,0 +1,3 @@ +oso malo +edwar masterchieft +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_319.txt b/mods/u_skins/u_skins/meta/character_319.txt new file mode 100644 index 00000000..c8663dcc --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_319.txt @@ -0,0 +1,3 @@ +h +edwar masterchieft +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_32.txt b/mods/u_skins/u_skins/meta/character_32.txt new file mode 100644 index 00000000..1d639a60 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_32.txt @@ -0,0 +1,3 @@ +Summer +lizzie +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_320.txt b/mods/u_skins/u_skins/meta/character_320.txt new file mode 100644 index 00000000..7384162e --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_320.txt @@ -0,0 +1,3 @@ +panda +edwar masterchieft +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_321.txt b/mods/u_skins/u_skins/meta/character_321.txt new file mode 100644 index 00000000..8ba8f091 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_321.txt @@ -0,0 +1,3 @@ +gato rojo +edwar masterchieft +CC BY 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_322.txt b/mods/u_skins/u_skins/meta/character_322.txt new file mode 100644 index 00000000..e5c67870 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_322.txt @@ -0,0 +1,3 @@ +lobo +edwar masterchieft +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_323.txt b/mods/u_skins/u_skins/meta/character_323.txt new file mode 100644 index 00000000..4e2fb67f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_323.txt @@ -0,0 +1,3 @@ +celopan +edwar masterchieft +CC BY-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_324.txt b/mods/u_skins/u_skins/meta/character_324.txt new file mode 100644 index 00000000..294e8509 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_324.txt @@ -0,0 +1,3 @@ +Halo the FBI agent +Halo +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_325.txt b/mods/u_skins/u_skins/meta/character_325.txt new file mode 100644 index 00000000..80b0c356 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_325.txt @@ -0,0 +1,3 @@ +hombre calabaza +edwar masterchieft +CC 0 (1.0) \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_326.txt b/mods/u_skins/u_skins/meta/character_326.txt new file mode 100644 index 00000000..5f4fe6d6 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_326.txt @@ -0,0 +1,3 @@ +super panda +edwar masterchieft +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_327.txt b/mods/u_skins/u_skins/meta/character_327.txt new file mode 100644 index 00000000..84ed829c --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_327.txt @@ -0,0 +1,3 @@ +payaso malo +edwar masterchieft +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_328.txt b/mods/u_skins/u_skins/meta/character_328.txt new file mode 100644 index 00000000..8597f962 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_328.txt @@ -0,0 +1,3 @@ +KoyuLP Skin +Sommerlichter +CC 0 (1.0) \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_329.txt b/mods/u_skins/u_skins/meta/character_329.txt new file mode 100644 index 00000000..561b384e --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_329.txt @@ -0,0 +1,3 @@ +Fluttershy +nman3600 +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_33.txt b/mods/u_skins/u_skins/meta/character_33.txt new file mode 100644 index 00000000..56296da2 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_33.txt @@ -0,0 +1,3 @@ +jojoa1997 2 +jojoa1997 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_330.txt b/mods/u_skins/u_skins/meta/character_330.txt new file mode 100644 index 00000000..f51bbc24 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_330.txt @@ -0,0 +1,3 @@ +PinkiePie +nman3600 +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_331.txt b/mods/u_skins/u_skins/meta/character_331.txt new file mode 100644 index 00000000..7d6da096 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_331.txt @@ -0,0 +1,3 @@ +Rainbow Dash +nman3600 +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_332.txt b/mods/u_skins/u_skins/meta/character_332.txt new file mode 100644 index 00000000..d048261f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_332.txt @@ -0,0 +1,3 @@ +Rarity +nman3600 +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_333.txt b/mods/u_skins/u_skins/meta/character_333.txt new file mode 100644 index 00000000..0cd6015c --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_333.txt @@ -0,0 +1,3 @@ +Twilight sparkle +nman3600 +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_334.txt b/mods/u_skins/u_skins/meta/character_334.txt new file mode 100644 index 00000000..8c549698 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_334.txt @@ -0,0 +1,3 @@ +Applejack +nman3600 +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_335.txt b/mods/u_skins/u_skins/meta/character_335.txt new file mode 100644 index 00000000..26b0ebfc --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_335.txt @@ -0,0 +1,3 @@ +Pikachu +nman3600 +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_336.txt b/mods/u_skins/u_skins/meta/character_336.txt new file mode 100644 index 00000000..7d5536e9 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_336.txt @@ -0,0 +1,3 @@ +crazyginger72 +crazyginger72 +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_337.txt b/mods/u_skins/u_skins/meta/character_337.txt new file mode 100644 index 00000000..602e87a4 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_337.txt @@ -0,0 +1,3 @@ +Rhys the SWAT Agent +Rhys +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_338.txt b/mods/u_skins/u_skins/meta/character_338.txt new file mode 100644 index 00000000..d0d89c99 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_338.txt @@ -0,0 +1,3 @@ +Thunder +Thunder Rhino +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_339.txt b/mods/u_skins/u_skins/meta/character_339.txt new file mode 100644 index 00000000..45e08ac6 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_339.txt @@ -0,0 +1,3 @@ +ComputerizedCraft +NoczuPL +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_34.txt b/mods/u_skins/u_skins/meta/character_34.txt new file mode 100644 index 00000000..422efffa --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_34.txt @@ -0,0 +1,3 @@ +warrior +DJOZZY +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_340.txt b/mods/u_skins/u_skins/meta/character_340.txt new file mode 100644 index 00000000..6210e3de --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_340.txt @@ -0,0 +1,3 @@ +The Iron Cybersuit +Ghanastripes1 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_341.txt b/mods/u_skins/u_skins/meta/character_341.txt new file mode 100644 index 00000000..90078bc0 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_341.txt @@ -0,0 +1,3 @@ +The Golden Samurai +Ghanastripes1 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_342.txt b/mods/u_skins/u_skins/meta/character_342.txt new file mode 100644 index 00000000..f6a523c9 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_342.txt @@ -0,0 +1,3 @@ +The Iron Deadpool +Ghanastripes1 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_343.txt b/mods/u_skins/u_skins/meta/character_343.txt new file mode 100644 index 00000000..3e6cdec5 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_343.txt @@ -0,0 +1,3 @@ +Fre brasil atualizado +Fre +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_344.txt b/mods/u_skins/u_skins/meta/character_344.txt new file mode 100644 index 00000000..b5bf8303 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_344.txt @@ -0,0 +1,3 @@ +Funny_DJF01 +MinecraftersUnite +CC 0 (1.0) \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_345.txt b/mods/u_skins/u_skins/meta/character_345.txt new file mode 100644 index 00000000..9f2eba11 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_345.txt @@ -0,0 +1,3 @@ +Clone Troper +Ghanastripes1 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_346.txt b/mods/u_skins/u_skins/meta/character_346.txt new file mode 100644 index 00000000..d2f1de64 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_346.txt @@ -0,0 +1,3 @@ +The Diamond Guard +Ghanastripes1 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_347.txt b/mods/u_skins/u_skins/meta/character_347.txt new file mode 100644 index 00000000..fb0431ec --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_347.txt @@ -0,0 +1,3 @@ +The Blue Overloard +Ghanastripes1 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_349.txt b/mods/u_skins/u_skins/meta/character_349.txt new file mode 100644 index 00000000..f134585e --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_349.txt @@ -0,0 +1,3 @@ +war-sloop +ange_black69 +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_35.txt b/mods/u_skins/u_skins/meta/character_35.txt new file mode 100644 index 00000000..fb133d27 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_35.txt @@ -0,0 +1,3 @@ +NERD +DJOZZY +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_350.txt b/mods/u_skins/u_skins/meta/character_350.txt new file mode 100644 index 00000000..2090d5a9 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_350.txt @@ -0,0 +1,3 @@ +Batman +unknown +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_351.txt b/mods/u_skins/u_skins/meta/character_351.txt new file mode 100644 index 00000000..cd7754f7 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_351.txt @@ -0,0 +1,3 @@ +Doctor Sam +unknown +CC 0 (1.0) \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_352.txt b/mods/u_skins/u_skins/meta/character_352.txt new file mode 100644 index 00000000..6f1feb01 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_352.txt @@ -0,0 +1,3 @@ +Female Skin +Guvienov +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_355.txt b/mods/u_skins/u_skins/meta/character_355.txt new file mode 100644 index 00000000..8969c22f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_355.txt @@ -0,0 +1,3 @@ +Farofa +Michael Bastos Santana +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_356.txt b/mods/u_skins/u_skins/meta/character_356.txt new file mode 100644 index 00000000..730c665d --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_356.txt @@ -0,0 +1,3 @@ +zetron +zetron +CC 0 (1.0) \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_357.txt b/mods/u_skins/u_skins/meta/character_357.txt new file mode 100644 index 00000000..279b653f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_357.txt @@ -0,0 +1,3 @@ +Badass +Ginsu23 +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_358.txt b/mods/u_skins/u_skins/meta/character_358.txt new file mode 100644 index 00000000..2cb27cd9 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_358.txt @@ -0,0 +1,3 @@ +Batman +Ginsu23 +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_359.txt b/mods/u_skins/u_skins/meta/character_359.txt new file mode 100644 index 00000000..4621a0ed --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_359.txt @@ -0,0 +1,3 @@ +Joker +Ginsu23 +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_36.txt b/mods/u_skins/u_skins/meta/character_36.txt new file mode 100644 index 00000000..d54d3269 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_36.txt @@ -0,0 +1,3 @@ +pj time +DJOZZY +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_360.txt b/mods/u_skins/u_skins/meta/character_360.txt new file mode 100644 index 00000000..02facc1a --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_360.txt @@ -0,0 +1,3 @@ +hitman +Ginsu23 +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_361.txt b/mods/u_skins/u_skins/meta/character_361.txt new file mode 100644 index 00000000..d5eb0214 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_361.txt @@ -0,0 +1,3 @@ +mage +Ginsu23 +CC BY 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_362.txt b/mods/u_skins/u_skins/meta/character_362.txt new file mode 100644 index 00000000..54fd701f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_362.txt @@ -0,0 +1,3 @@ +Ninja +Ginsu23 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_363.txt b/mods/u_skins/u_skins/meta/character_363.txt new file mode 100644 index 00000000..d7f360b3 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_363.txt @@ -0,0 +1,3 @@ +Ryu +Ginsu23 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_364.txt b/mods/u_skins/u_skins/meta/character_364.txt new file mode 100644 index 00000000..c20ef0e8 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_364.txt @@ -0,0 +1,3 @@ +Bond, Sam Bond +Misty +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_365.txt b/mods/u_skins/u_skins/meta/character_365.txt new file mode 100644 index 00000000..83a2cf92 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_365.txt @@ -0,0 +1,3 @@ +farmer girl pink and green +Misty +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_366.txt b/mods/u_skins/u_skins/meta/character_366.txt new file mode 100644 index 00000000..43c866b8 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_366.txt @@ -0,0 +1,3 @@ +Pirate girl +Misty +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_367.txt b/mods/u_skins/u_skins/meta/character_367.txt new file mode 100644 index 00000000..c950b6ad --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_367.txt @@ -0,0 +1,3 @@ +MadMC +MadMC +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_368.txt b/mods/u_skins/u_skins/meta/character_368.txt new file mode 100644 index 00000000..bcff9610 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_368.txt @@ -0,0 +1,3 @@ +Kirby In A Suit +Rhys +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_369.txt b/mods/u_skins/u_skins/meta/character_369.txt new file mode 100644 index 00000000..b5e84969 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_369.txt @@ -0,0 +1,3 @@ +iBallisticSquid +Rhys +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_37.txt b/mods/u_skins/u_skins/meta/character_37.txt new file mode 100644 index 00000000..77828d36 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_37.txt @@ -0,0 +1,3 @@ +adventure +DJOZZY +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_370.txt b/mods/u_skins/u_skins/meta/character_370.txt new file mode 100644 index 00000000..b05015da --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_370.txt @@ -0,0 +1,3 @@ +stampylongnose +Rhys +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_371.txt b/mods/u_skins/u_skins/meta/character_371.txt new file mode 100644 index 00000000..6d95af4b --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_371.txt @@ -0,0 +1,3 @@ +oOChainLynxOo 2.0 +oOChainLynxOo +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_372.txt b/mods/u_skins/u_skins/meta/character_372.txt new file mode 100644 index 00000000..db3257bc --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_372.txt @@ -0,0 +1,3 @@ +test +addi +CC 0 (1.0) \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_373.txt b/mods/u_skins/u_skins/meta/character_373.txt new file mode 100644 index 00000000..19e43b7b --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_373.txt @@ -0,0 +1,3 @@ +orbatos +orbatos +CC BY-NC-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_374.txt b/mods/u_skins/u_skins/meta/character_374.txt new file mode 100644 index 00000000..6a83b09d --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_374.txt @@ -0,0 +1,3 @@ +Sam Pinky +vvasde +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_376.txt b/mods/u_skins/u_skins/meta/character_376.txt new file mode 100644 index 00000000..2fc08b75 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_376.txt @@ -0,0 +1,3 @@ +Igor47 +Igor47 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_377.txt b/mods/u_skins/u_skins/meta/character_377.txt new file mode 100644 index 00000000..f5b8eadc --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_377.txt @@ -0,0 +1,3 @@ +q9c9p +q9c9p +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_378.txt b/mods/u_skins/u_skins/meta/character_378.txt new file mode 100644 index 00000000..6e837023 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_378.txt @@ -0,0 +1,3 @@ +QuiOui +QuiOui +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_379.txt b/mods/u_skins/u_skins/meta/character_379.txt new file mode 100644 index 00000000..c1f6f7a4 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_379.txt @@ -0,0 +1,3 @@ +Corvo Attano +D3R4A5AURU5 +CC BY 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_38.txt b/mods/u_skins/u_skins/meta/character_38.txt new file mode 100644 index 00000000..015acdbd --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_38.txt @@ -0,0 +1,3 @@ +marthon +DJOZZY +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_380.txt b/mods/u_skins/u_skins/meta/character_380.txt new file mode 100644 index 00000000..dc2ad87d --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_380.txt @@ -0,0 +1,3 @@ +GabrielGG +GabrielGG +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_381.txt b/mods/u_skins/u_skins/meta/character_381.txt new file mode 100644 index 00000000..8ce2a47f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_381.txt @@ -0,0 +1,3 @@ +Sam Angel +WidDos +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_382.txt b/mods/u_skins/u_skins/meta/character_382.txt new file mode 100644 index 00000000..3364a774 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_382.txt @@ -0,0 +1,3 @@ +My Halloween Skin 2014 +WidDos +CC BY-NC-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_383.txt b/mods/u_skins/u_skins/meta/character_383.txt new file mode 100644 index 00000000..fbfe2dc5 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_383.txt @@ -0,0 +1,3 @@ +shadowzone +shadowzone +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_384.txt b/mods/u_skins/u_skins/meta/character_384.txt new file mode 100644 index 00000000..4224b14e --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_384.txt @@ -0,0 +1,3 @@ +Someguy +someguy +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_385.txt b/mods/u_skins/u_skins/meta/character_385.txt new file mode 100644 index 00000000..39005039 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_385.txt @@ -0,0 +1,3 @@ +Delaroyas +Delaroyas Laroyas +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_386.txt b/mods/u_skins/u_skins/meta/character_386.txt new file mode 100644 index 00000000..93a99f54 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_386.txt @@ -0,0 +1,3 @@ +Headless Horseman 2 +Misty +CC 0 (1.0) \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_387.txt b/mods/u_skins/u_skins/meta/character_387.txt new file mode 100644 index 00000000..53bea955 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_387.txt @@ -0,0 +1,3 @@ +tima_gt +tima_gt [monuasha@gmail.com] +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_388.txt b/mods/u_skins/u_skins/meta/character_388.txt new file mode 100644 index 00000000..bf08a65e --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_388.txt @@ -0,0 +1,3 @@ +gaga +gaga +CC 0 (1.0) \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_389.txt b/mods/u_skins/u_skins/meta/character_389.txt new file mode 100644 index 00000000..f8c36e76 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_389.txt @@ -0,0 +1,3 @@ +KaLo007 +juanito_lindo9@hotmail.com +CC BY-NC-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_39.txt b/mods/u_skins/u_skins/meta/character_39.txt new file mode 100644 index 00000000..408a467c --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_39.txt @@ -0,0 +1,3 @@ +DASHING +DJOZZY +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_390.txt b/mods/u_skins/u_skins/meta/character_390.txt new file mode 100644 index 00000000..7aa3366f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_390.txt @@ -0,0 +1,3 @@ +Esteban II +Esteban +CC BY-NC-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_391.txt b/mods/u_skins/u_skins/meta/character_391.txt new file mode 100644 index 00000000..eaacbd26 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_391.txt @@ -0,0 +1,3 @@ +Esteban II (Cape Version) +Esteban +CC BY-NC-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_392.txt b/mods/u_skins/u_skins/meta/character_392.txt new file mode 100644 index 00000000..9506e823 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_392.txt @@ -0,0 +1,3 @@ +Esteban (Space Outfit) +Esteban +CC BY-NC-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_393.txt b/mods/u_skins/u_skins/meta/character_393.txt new file mode 100644 index 00000000..3fc76e6d --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_393.txt @@ -0,0 +1,3 @@ +Evil Matoran cape (Bionicle) +Esteban +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_394.txt b/mods/u_skins/u_skins/meta/character_394.txt new file mode 100644 index 00000000..fc9f8391 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_394.txt @@ -0,0 +1,3 @@ +Matoran Jaller (Bionicle) Cape Version +Esteban +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_395.txt b/mods/u_skins/u_skins/meta/character_395.txt new file mode 100644 index 00000000..13ec0cfd --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_395.txt @@ -0,0 +1,3 @@ +Esteban III +Esteban +CC BY-NC-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_396.txt b/mods/u_skins/u_skins/meta/character_396.txt new file mode 100644 index 00000000..4cc50686 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_396.txt @@ -0,0 +1,3 @@ +Adam, The 3th Angel (Neon Genesis Evangelion) +Esteban +CC BY-NC-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_397.txt b/mods/u_skins/u_skins/meta/character_397.txt new file mode 100644 index 00000000..e2beb72e --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_397.txt @@ -0,0 +1,3 @@ +Adam, The 3th Angel (Neon Genesis Evangelion) *fixed* +Esteban +CC BY-NC-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_398.txt b/mods/u_skins/u_skins/meta/character_398.txt new file mode 100644 index 00000000..a7bb2414 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_398.txt @@ -0,0 +1,3 @@ +Cat Bug (Bravest Warriors) Cape bonus +Esteban +CC BY-NC-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_399.txt b/mods/u_skins/u_skins/meta/character_399.txt new file mode 100644 index 00000000..325b6c18 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_399.txt @@ -0,0 +1,3 @@ +Sam II (Dungeon Master Outfit) +Esteban +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_4.txt b/mods/u_skins/u_skins/meta/character_4.txt new file mode 100644 index 00000000..4b5028ae --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_4.txt @@ -0,0 +1,3 @@ +Zeg9 +Zeg9 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_40.txt b/mods/u_skins/u_skins/meta/character_40.txt new file mode 100644 index 00000000..2b0c247c --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_40.txt @@ -0,0 +1,3 @@ +ALTNINJA +DJOZZY +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_400.txt b/mods/u_skins/u_skins/meta/character_400.txt new file mode 100644 index 00000000..7f736992 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_400.txt @@ -0,0 +1,3 @@ +Sam II (Sharpen x7) +Esteban +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_401.txt b/mods/u_skins/u_skins/meta/character_401.txt new file mode 100644 index 00000000..74adbec5 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_401.txt @@ -0,0 +1,3 @@ +Bugcat (Bravest Warriors) Tuxedo Version +Esteban +CC BY-NC-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_402.txt b/mods/u_skins/u_skins/meta/character_402.txt new file mode 100644 index 00000000..d795f921 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_402.txt @@ -0,0 +1,3 @@ +Wolf In Tuxedo +Esteban +CC BY-NC-SA 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_403.txt b/mods/u_skins/u_skins/meta/character_403.txt new file mode 100644 index 00000000..a0a9b298 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_403.txt @@ -0,0 +1,3 @@ +Pumpkin_Man +JAPP +WTFPL diff --git a/mods/u_skins/u_skins/meta/character_41.txt b/mods/u_skins/u_skins/meta/character_41.txt new file mode 100644 index 00000000..c1beae67 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_41.txt @@ -0,0 +1,3 @@ +NK +DJOZZY +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_42.txt b/mods/u_skins/u_skins/meta/character_42.txt new file mode 100644 index 00000000..48df571f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_42.txt @@ -0,0 +1,3 @@ +BORN +DJOZZY +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_43.txt b/mods/u_skins/u_skins/meta/character_43.txt new file mode 100644 index 00000000..9546340f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_43.txt @@ -0,0 +1,3 @@ +DJSTEREO +DJOZZY +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_44.txt b/mods/u_skins/u_skins/meta/character_44.txt new file mode 100644 index 00000000..c202428e --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_44.txt @@ -0,0 +1,3 @@ +villiantest +marshrover +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_45.txt b/mods/u_skins/u_skins/meta/character_45.txt new file mode 100644 index 00000000..3ae3d7da --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_45.txt @@ -0,0 +1,3 @@ +villiantest II +marshrover +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_46.txt b/mods/u_skins/u_skins/meta/character_46.txt new file mode 100644 index 00000000..e5f376b8 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_46.txt @@ -0,0 +1,3 @@ +Infantry man +philipbenr +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_47.txt b/mods/u_skins/u_skins/meta/character_47.txt new file mode 100644 index 00000000..e489486d --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_47.txt @@ -0,0 +1,3 @@ +Natsu (Fairy Tail) +philipbenr +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_48.txt b/mods/u_skins/u_skins/meta/character_48.txt new file mode 100644 index 00000000..e015cf39 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_48.txt @@ -0,0 +1,3 @@ +My younger Brother +philipbenr +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_49.txt b/mods/u_skins/u_skins/meta/character_49.txt new file mode 100644 index 00000000..1f859f28 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_49.txt @@ -0,0 +1,3 @@ +Herobrine +Theggabook +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_5.txt b/mods/u_skins/u_skins/meta/character_5.txt new file mode 100644 index 00000000..21dff9eb --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_5.txt @@ -0,0 +1,3 @@ +VanessaE +Jordach +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_50.txt b/mods/u_skins/u_skins/meta/character_50.txt new file mode 100644 index 00000000..7cee0c53 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_50.txt @@ -0,0 +1,3 @@ +Mcc457 +Mccc457 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_51.txt b/mods/u_skins/u_skins/meta/character_51.txt new file mode 100644 index 00000000..2b9c3e1f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_51.txt @@ -0,0 +1,3 @@ +lisa +hansuke123 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_52.txt b/mods/u_skins/u_skins/meta/character_52.txt new file mode 100644 index 00000000..ede18247 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_52.txt @@ -0,0 +1,3 @@ +creeper man steve +hansuke123 +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_53.txt b/mods/u_skins/u_skins/meta/character_53.txt new file mode 100644 index 00000000..4c7e20de --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_53.txt @@ -0,0 +1,3 @@ +stormchaser30000 +stormchaser3000 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_54.txt b/mods/u_skins/u_skins/meta/character_54.txt new file mode 100644 index 00000000..26f4ab84 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_54.txt @@ -0,0 +1,3 @@ +Devil +viv100 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_55.txt b/mods/u_skins/u_skins/meta/character_55.txt new file mode 100644 index 00000000..bc1ca8c3 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_55.txt @@ -0,0 +1,3 @@ +viv100 +viv100 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_56.txt b/mods/u_skins/u_skins/meta/character_56.txt new file mode 100644 index 00000000..1df28842 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_56.txt @@ -0,0 +1,3 @@ +Zombie +viv100 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_57.txt b/mods/u_skins/u_skins/meta/character_57.txt new file mode 100644 index 00000000..373ff5dc --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_57.txt @@ -0,0 +1,3 @@ +God +viv100 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_58.txt b/mods/u_skins/u_skins/meta/character_58.txt new file mode 100644 index 00000000..baa3ba1b --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_58.txt @@ -0,0 +1,3 @@ +CaligoPL +CaligoPL +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_59.txt b/mods/u_skins/u_skins/meta/character_59.txt new file mode 100644 index 00000000..d7f9417b --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_59.txt @@ -0,0 +1,3 @@ +Emma +Cidney7760 +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_6.txt b/mods/u_skins/u_skins/meta/character_6.txt new file mode 100644 index 00000000..185a6234 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_6.txt @@ -0,0 +1,3 @@ +Iron Man MK. 7 +Jordach +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_60.txt b/mods/u_skins/u_skins/meta/character_60.txt new file mode 100644 index 00000000..0e429347 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_60.txt @@ -0,0 +1,3 @@ +Wants +Wants +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_61.txt b/mods/u_skins/u_skins/meta/character_61.txt new file mode 100644 index 00000000..ce4e27ab --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_61.txt @@ -0,0 +1,3 @@ +villiantest III +marshrover +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_62.txt b/mods/u_skins/u_skins/meta/character_62.txt new file mode 100644 index 00000000..a080763f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_62.txt @@ -0,0 +1,3 @@ +Geopbyte +Geopbyte +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_64.txt b/mods/u_skins/u_skins/meta/character_64.txt new file mode 100644 index 00000000..6808bd70 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_64.txt @@ -0,0 +1,3 @@ +Hobo/Homeless person +Minetestian +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_65.txt b/mods/u_skins/u_skins/meta/character_65.txt new file mode 100644 index 00000000..57e7e79e --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_65.txt @@ -0,0 +1,3 @@ +Block_Guy +Block_Guy +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_66.txt b/mods/u_skins/u_skins/meta/character_66.txt new file mode 100644 index 00000000..c1a1a55b --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_66.txt @@ -0,0 +1,3 @@ +Solid-Color Sam +Block_Guy +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_67.txt b/mods/u_skins/u_skins/meta/character_67.txt new file mode 100644 index 00000000..62ccd870 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_67.txt @@ -0,0 +1,3 @@ +RockerLuke skin +RockerLuke +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_69.txt b/mods/u_skins/u_skins/meta/character_69.txt new file mode 100644 index 00000000..5cc2a7f3 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_69.txt @@ -0,0 +1,3 @@ +Molten Elemental +Dunedubby +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_7.txt b/mods/u_skins/u_skins/meta/character_7.txt new file mode 100644 index 00000000..df451c34 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_7.txt @@ -0,0 +1,3 @@ +C55 +Jordach +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_70.txt b/mods/u_skins/u_skins/meta/character_70.txt new file mode 100644 index 00000000..ce472a53 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_70.txt @@ -0,0 +1,3 @@ +herobrine +Zaki +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_71.txt b/mods/u_skins/u_skins/meta/character_71.txt new file mode 100644 index 00000000..715120ba --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_71.txt @@ -0,0 +1,3 @@ +Link +tux_peng +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_72.txt b/mods/u_skins/u_skins/meta/character_72.txt new file mode 100644 index 00000000..73b15815 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_72.txt @@ -0,0 +1,3 @@ +Saris +Gfiti +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_73.txt b/mods/u_skins/u_skins/meta/character_73.txt new file mode 100644 index 00000000..08af3dcd --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_73.txt @@ -0,0 +1,3 @@ +Malon +SummerCampV +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_74.txt b/mods/u_skins/u_skins/meta/character_74.txt new file mode 100644 index 00000000..cd7792a9 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_74.txt @@ -0,0 +1,3 @@ +Froggy +Linxx +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_75.txt b/mods/u_skins/u_skins/meta/character_75.txt new file mode 100644 index 00000000..30dfce2a --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_75.txt @@ -0,0 +1,3 @@ +Bob +LuxAtheris +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_76.txt b/mods/u_skins/u_skins/meta/character_76.txt new file mode 100644 index 00000000..0e851692 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_76.txt @@ -0,0 +1,3 @@ +Naruto +LuxAtheris +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_77.txt b/mods/u_skins/u_skins/meta/character_77.txt new file mode 100644 index 00000000..d961c821 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_77.txt @@ -0,0 +1,3 @@ +Alien +jmf +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_78.txt b/mods/u_skins/u_skins/meta/character_78.txt new file mode 100644 index 00000000..e0b740fa --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_78.txt @@ -0,0 +1,3 @@ +manoel1500 +manoel1500 +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_79.txt b/mods/u_skins/u_skins/meta/character_79.txt new file mode 100644 index 00000000..738baf36 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_79.txt @@ -0,0 +1,3 @@ +Vile Sam +philipbenr +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_8.txt b/mods/u_skins/u_skins/meta/character_8.txt new file mode 100644 index 00000000..02eb001b --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_8.txt @@ -0,0 +1,3 @@ +Female Sam +Jordach +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_80.txt b/mods/u_skins/u_skins/meta/character_80.txt new file mode 100644 index 00000000..aae6f46b --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_80.txt @@ -0,0 +1,3 @@ +BlueZ Sam II +philipbenr +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_81.txt b/mods/u_skins/u_skins/meta/character_81.txt new file mode 100644 index 00000000..48c5bd69 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_81.txt @@ -0,0 +1,3 @@ +Tetra +philipbenr +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_82.txt b/mods/u_skins/u_skins/meta/character_82.txt new file mode 100644 index 00000000..a74deb1e --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_82.txt @@ -0,0 +1,3 @@ +AMMOnym +AMMOnym +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_83.txt b/mods/u_skins/u_skins/meta/character_83.txt new file mode 100644 index 00000000..5aa0bc2a --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_83.txt @@ -0,0 +1,3 @@ +Soldier +Ragnar +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_84.txt b/mods/u_skins/u_skins/meta/character_84.txt new file mode 100644 index 00000000..2dd0f0b9 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_84.txt @@ -0,0 +1,3 @@ +TestManiac +AMMOnym +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_86.txt b/mods/u_skins/u_skins/meta/character_86.txt new file mode 100644 index 00000000..ce1b3fe9 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_86.txt @@ -0,0 +1,3 @@ +S"am"TEVE +AMMOnym +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_87.txt b/mods/u_skins/u_skins/meta/character_87.txt new file mode 100644 index 00000000..5cbe2537 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_87.txt @@ -0,0 +1,3 @@ +Samerkki +AMMOnym +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_88.txt b/mods/u_skins/u_skins/meta/character_88.txt new file mode 100644 index 00000000..51c2087e --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_88.txt @@ -0,0 +1,3 @@ +Calinou +Calinou +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_9.txt b/mods/u_skins/u_skins/meta/character_9.txt new file mode 100644 index 00000000..3924a419 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_9.txt @@ -0,0 +1,3 @@ +Jordach +Jordach +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_90.txt b/mods/u_skins/u_skins/meta/character_90.txt new file mode 100644 index 00000000..260216e0 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_90.txt @@ -0,0 +1,3 @@ +SuperSam +AMMOnym +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_91.txt b/mods/u_skins/u_skins/meta/character_91.txt new file mode 100644 index 00000000..0e9899f1 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_91.txt @@ -0,0 +1,3 @@ +TrollSam +AMMOnym +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_92.txt b/mods/u_skins/u_skins/meta/character_92.txt new file mode 100644 index 00000000..a87de74b --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_92.txt @@ -0,0 +1,3 @@ +HungrySteve +AMMOnym +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_94.txt b/mods/u_skins/u_skins/meta/character_94.txt new file mode 100644 index 00000000..da1b3f2f --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_94.txt @@ -0,0 +1,3 @@ +Minetestian +Minetestian +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_95.txt b/mods/u_skins/u_skins/meta/character_95.txt new file mode 100644 index 00000000..51c2087e --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_95.txt @@ -0,0 +1,3 @@ +Calinou +Calinou +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_96.txt b/mods/u_skins/u_skins/meta/character_96.txt new file mode 100644 index 00000000..90a84a27 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_96.txt @@ -0,0 +1,3 @@ +lordphoenixmh +lordphoenixmh +CC BY 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_97.txt b/mods/u_skins/u_skins/meta/character_97.txt new file mode 100644 index 00000000..c596bca1 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_97.txt @@ -0,0 +1,3 @@ +Ladyvioletkitty +lordphoenixmh +CC BY 4.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_98.txt b/mods/u_skins/u_skins/meta/character_98.txt new file mode 100644 index 00000000..0743287e --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_98.txt @@ -0,0 +1,3 @@ +4°district +Ferdi Napoli +CC BY-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/character_99.txt b/mods/u_skins/u_skins/meta/character_99.txt new file mode 100644 index 00000000..1ff22796 --- /dev/null +++ b/mods/u_skins/u_skins/meta/character_99.txt @@ -0,0 +1,3 @@ +Chop +Ferdi Napoli +CC BY-NC-SA 3.0 \ No newline at end of file diff --git a/mods/u_skins/u_skins/meta/placeholder.txt b/mods/u_skins/u_skins/meta/placeholder.txt new file mode 100755 index 00000000..a9e6fce1 --- /dev/null +++ b/mods/u_skins/u_skins/meta/placeholder.txt @@ -0,0 +1 @@ +Please run the update_from_db.py script to update the skins. diff --git a/mods/u_skins/u_skins/players.lua b/mods/u_skins/u_skins/players.lua new file mode 100755 index 00000000..30535305 --- /dev/null +++ b/mods/u_skins/u_skins/players.lua @@ -0,0 +1,40 @@ +u_skins.load_players = function() + local file = io.open(u_skins.file, "r") + if file then + for line in file:lines() do + local data = string.split(line, " ", 2) + u_skins.u_skins[data[1]] = data[2] + end + io.close(file) + end +end +u_skins.load_players() + +local ttime = 0 +minetest.register_globalstep(function(t) + ttime = ttime + t + if ttime < 360 then --every 6min' + return + end + ttime = 0 + u_skins.save() +end) + +minetest.register_on_shutdown(function() u_skins.save() end) + +u_skins.save = function() + if not u_skins.file_save then + return + end + u_skins.file_save = false + local output = io.open(u_skins.file, "w") + for name, skin in pairs(u_skins.u_skins) do + if name and skin then + if skin ~= u_skins.default then + output:write(name.." "..skin.."\n") + end + end + end + io.close(output) +end + diff --git a/mods/u_skins/u_skins/skinlist.lua b/mods/u_skins/u_skins/skinlist.lua new file mode 100755 index 00000000..718646ce --- /dev/null +++ b/mods/u_skins/u_skins/skinlist.lua @@ -0,0 +1,26 @@ +u_skins.list = {} +u_skins.meta = {} + +local id = 1 +local internal_id = 1 +local fetched_skip = 0 +while fetched_skip < 40 do + local name = "character_"..id + local file = io.open(u_skins.modpath.."/meta/"..name..".txt", "r") + if file then + local data = string.split(file:read("*all"), "\n", 3) + file:close() + + u_skins.list[internal_id] = name + u_skins.meta[name] = {} + u_skins.meta[name].name = data[1] + u_skins.meta[name].author = data[2] + u_skins.meta[name].license = data[3] + u_skins.meta[name].description = "" --what's that?? + + fetched_skip = 0 + internal_id = internal_id + 1 + end + fetched_skip = fetched_skip + 1 + id = id + 1 +end \ No newline at end of file diff --git a/mods/u_skins/u_skins/textures/character_1.png b/mods/u_skins/u_skins/textures/character_1.png new file mode 100755 index 00000000..8d0dd991 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_1.png differ diff --git a/mods/u_skins/u_skins/textures/character_10.png b/mods/u_skins/u_skins/textures/character_10.png new file mode 100644 index 00000000..456dc580 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_10.png differ diff --git a/mods/u_skins/u_skins/textures/character_100.png b/mods/u_skins/u_skins/textures/character_100.png new file mode 100644 index 00000000..285aa404 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_100.png differ diff --git a/mods/u_skins/u_skins/textures/character_100_preview.png b/mods/u_skins/u_skins/textures/character_100_preview.png new file mode 100644 index 00000000..2ea747d1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_100_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_101.png b/mods/u_skins/u_skins/textures/character_101.png new file mode 100644 index 00000000..5fa12c2c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_101.png differ diff --git a/mods/u_skins/u_skins/textures/character_101_preview.png b/mods/u_skins/u_skins/textures/character_101_preview.png new file mode 100644 index 00000000..7135f8e8 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_101_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_102.png b/mods/u_skins/u_skins/textures/character_102.png new file mode 100644 index 00000000..8002ac54 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_102.png differ diff --git a/mods/u_skins/u_skins/textures/character_102_preview.png b/mods/u_skins/u_skins/textures/character_102_preview.png new file mode 100644 index 00000000..2ae6ce1a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_102_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_103.png b/mods/u_skins/u_skins/textures/character_103.png new file mode 100644 index 00000000..33089a84 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_103.png differ diff --git a/mods/u_skins/u_skins/textures/character_103_preview.png b/mods/u_skins/u_skins/textures/character_103_preview.png new file mode 100644 index 00000000..91b0aa2a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_103_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_104.png b/mods/u_skins/u_skins/textures/character_104.png new file mode 100644 index 00000000..59c91f7d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_104.png differ diff --git a/mods/u_skins/u_skins/textures/character_104_preview.png b/mods/u_skins/u_skins/textures/character_104_preview.png new file mode 100644 index 00000000..e8f9a739 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_104_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_105.png b/mods/u_skins/u_skins/textures/character_105.png new file mode 100644 index 00000000..aa3e1170 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_105.png differ diff --git a/mods/u_skins/u_skins/textures/character_105_preview.png b/mods/u_skins/u_skins/textures/character_105_preview.png new file mode 100644 index 00000000..c2ea67d0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_105_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_106.png b/mods/u_skins/u_skins/textures/character_106.png new file mode 100644 index 00000000..2e3d46bf Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_106.png differ diff --git a/mods/u_skins/u_skins/textures/character_106_preview.png b/mods/u_skins/u_skins/textures/character_106_preview.png new file mode 100644 index 00000000..dc7e656d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_106_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_107.png b/mods/u_skins/u_skins/textures/character_107.png new file mode 100644 index 00000000..1bbe954e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_107.png differ diff --git a/mods/u_skins/u_skins/textures/character_107_preview.png b/mods/u_skins/u_skins/textures/character_107_preview.png new file mode 100644 index 00000000..044b630f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_107_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_108.png b/mods/u_skins/u_skins/textures/character_108.png new file mode 100644 index 00000000..2658f28e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_108.png differ diff --git a/mods/u_skins/u_skins/textures/character_108_preview.png b/mods/u_skins/u_skins/textures/character_108_preview.png new file mode 100644 index 00000000..2ef96a68 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_108_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_109.png b/mods/u_skins/u_skins/textures/character_109.png new file mode 100644 index 00000000..0567ef38 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_109.png differ diff --git a/mods/u_skins/u_skins/textures/character_109_preview.png b/mods/u_skins/u_skins/textures/character_109_preview.png new file mode 100644 index 00000000..a7e6c377 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_109_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_10_preview.png b/mods/u_skins/u_skins/textures/character_10_preview.png new file mode 100644 index 00000000..9c959805 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_10_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_11.png b/mods/u_skins/u_skins/textures/character_11.png new file mode 100644 index 00000000..d12421e4 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_11.png differ diff --git a/mods/u_skins/u_skins/textures/character_110.png b/mods/u_skins/u_skins/textures/character_110.png new file mode 100644 index 00000000..790e7d1b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_110.png differ diff --git a/mods/u_skins/u_skins/textures/character_110_preview.png b/mods/u_skins/u_skins/textures/character_110_preview.png new file mode 100644 index 00000000..5e113764 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_110_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_111.png b/mods/u_skins/u_skins/textures/character_111.png new file mode 100644 index 00000000..92edde6b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_111.png differ diff --git a/mods/u_skins/u_skins/textures/character_111_preview.png b/mods/u_skins/u_skins/textures/character_111_preview.png new file mode 100644 index 00000000..f0945dc9 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_111_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_112.png b/mods/u_skins/u_skins/textures/character_112.png new file mode 100644 index 00000000..21007fe0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_112.png differ diff --git a/mods/u_skins/u_skins/textures/character_112_preview.png b/mods/u_skins/u_skins/textures/character_112_preview.png new file mode 100644 index 00000000..a5237070 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_112_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_113.png b/mods/u_skins/u_skins/textures/character_113.png new file mode 100644 index 00000000..eb7a5507 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_113.png differ diff --git a/mods/u_skins/u_skins/textures/character_113_preview.png b/mods/u_skins/u_skins/textures/character_113_preview.png new file mode 100644 index 00000000..c10393fe Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_113_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_114.png b/mods/u_skins/u_skins/textures/character_114.png new file mode 100644 index 00000000..94555fbb Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_114.png differ diff --git a/mods/u_skins/u_skins/textures/character_114_preview.png b/mods/u_skins/u_skins/textures/character_114_preview.png new file mode 100644 index 00000000..06f6c512 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_114_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_115.png b/mods/u_skins/u_skins/textures/character_115.png new file mode 100644 index 00000000..a1b39f46 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_115.png differ diff --git a/mods/u_skins/u_skins/textures/character_115_preview.png b/mods/u_skins/u_skins/textures/character_115_preview.png new file mode 100644 index 00000000..aca005ad Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_115_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_116.png b/mods/u_skins/u_skins/textures/character_116.png new file mode 100644 index 00000000..2dde6d49 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_116.png differ diff --git a/mods/u_skins/u_skins/textures/character_116_preview.png b/mods/u_skins/u_skins/textures/character_116_preview.png new file mode 100644 index 00000000..49562281 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_116_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_117.png b/mods/u_skins/u_skins/textures/character_117.png new file mode 100644 index 00000000..a36a52cb Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_117.png differ diff --git a/mods/u_skins/u_skins/textures/character_117_preview.png b/mods/u_skins/u_skins/textures/character_117_preview.png new file mode 100644 index 00000000..5500856b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_117_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_118.png b/mods/u_skins/u_skins/textures/character_118.png new file mode 100644 index 00000000..9bb1cc70 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_118.png differ diff --git a/mods/u_skins/u_skins/textures/character_118_preview.png b/mods/u_skins/u_skins/textures/character_118_preview.png new file mode 100644 index 00000000..911d42c5 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_118_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_119.png b/mods/u_skins/u_skins/textures/character_119.png new file mode 100644 index 00000000..dfc4a69a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_119.png differ diff --git a/mods/u_skins/u_skins/textures/character_119_preview.png b/mods/u_skins/u_skins/textures/character_119_preview.png new file mode 100644 index 00000000..239a9ca5 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_119_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_11_preview.png b/mods/u_skins/u_skins/textures/character_11_preview.png new file mode 100644 index 00000000..b2ac095b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_11_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_12.png b/mods/u_skins/u_skins/textures/character_12.png new file mode 100644 index 00000000..e6d2adce Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_12.png differ diff --git a/mods/u_skins/u_skins/textures/character_120.png b/mods/u_skins/u_skins/textures/character_120.png new file mode 100644 index 00000000..1a3add8c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_120.png differ diff --git a/mods/u_skins/u_skins/textures/character_120_preview.png b/mods/u_skins/u_skins/textures/character_120_preview.png new file mode 100644 index 00000000..024e4be2 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_120_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_121.png b/mods/u_skins/u_skins/textures/character_121.png new file mode 100644 index 00000000..a1bbde56 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_121.png differ diff --git a/mods/u_skins/u_skins/textures/character_121_preview.png b/mods/u_skins/u_skins/textures/character_121_preview.png new file mode 100644 index 00000000..1d6b2bee Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_121_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_122.png b/mods/u_skins/u_skins/textures/character_122.png new file mode 100644 index 00000000..4b4cc30f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_122.png differ diff --git a/mods/u_skins/u_skins/textures/character_122_preview.png b/mods/u_skins/u_skins/textures/character_122_preview.png new file mode 100644 index 00000000..a3ad0a78 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_122_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_123.png b/mods/u_skins/u_skins/textures/character_123.png new file mode 100644 index 00000000..e14606e7 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_123.png differ diff --git a/mods/u_skins/u_skins/textures/character_123_preview.png b/mods/u_skins/u_skins/textures/character_123_preview.png new file mode 100644 index 00000000..00519d74 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_123_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_124.png b/mods/u_skins/u_skins/textures/character_124.png new file mode 100644 index 00000000..09d4100b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_124.png differ diff --git a/mods/u_skins/u_skins/textures/character_124_preview.png b/mods/u_skins/u_skins/textures/character_124_preview.png new file mode 100644 index 00000000..8f6bc7de Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_124_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_125.png b/mods/u_skins/u_skins/textures/character_125.png new file mode 100644 index 00000000..b4979727 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_125.png differ diff --git a/mods/u_skins/u_skins/textures/character_125_preview.png b/mods/u_skins/u_skins/textures/character_125_preview.png new file mode 100644 index 00000000..560a88ef Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_125_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_126.png b/mods/u_skins/u_skins/textures/character_126.png new file mode 100644 index 00000000..cd67cb2e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_126.png differ diff --git a/mods/u_skins/u_skins/textures/character_126_preview.png b/mods/u_skins/u_skins/textures/character_126_preview.png new file mode 100644 index 00000000..5dcd4f18 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_126_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_127.png b/mods/u_skins/u_skins/textures/character_127.png new file mode 100644 index 00000000..e123579b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_127.png differ diff --git a/mods/u_skins/u_skins/textures/character_127_preview.png b/mods/u_skins/u_skins/textures/character_127_preview.png new file mode 100644 index 00000000..8513c117 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_127_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_128.png b/mods/u_skins/u_skins/textures/character_128.png new file mode 100644 index 00000000..e4bbb278 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_128.png differ diff --git a/mods/u_skins/u_skins/textures/character_128_preview.png b/mods/u_skins/u_skins/textures/character_128_preview.png new file mode 100644 index 00000000..6ebb8813 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_128_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_129.png b/mods/u_skins/u_skins/textures/character_129.png new file mode 100644 index 00000000..3568bf31 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_129.png differ diff --git a/mods/u_skins/u_skins/textures/character_129_preview.png b/mods/u_skins/u_skins/textures/character_129_preview.png new file mode 100644 index 00000000..b8d654b9 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_129_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_12_preview.png b/mods/u_skins/u_skins/textures/character_12_preview.png new file mode 100644 index 00000000..c546dace Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_12_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_13.png b/mods/u_skins/u_skins/textures/character_13.png new file mode 100644 index 00000000..358715ef Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_13.png differ diff --git a/mods/u_skins/u_skins/textures/character_130.png b/mods/u_skins/u_skins/textures/character_130.png new file mode 100644 index 00000000..d55aa6a8 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_130.png differ diff --git a/mods/u_skins/u_skins/textures/character_130_preview.png b/mods/u_skins/u_skins/textures/character_130_preview.png new file mode 100644 index 00000000..613416c2 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_130_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_131.png b/mods/u_skins/u_skins/textures/character_131.png new file mode 100644 index 00000000..df547db8 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_131.png differ diff --git a/mods/u_skins/u_skins/textures/character_131_preview.png b/mods/u_skins/u_skins/textures/character_131_preview.png new file mode 100644 index 00000000..81c3bb9c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_131_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_132.png b/mods/u_skins/u_skins/textures/character_132.png new file mode 100644 index 00000000..b3103b97 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_132.png differ diff --git a/mods/u_skins/u_skins/textures/character_132_preview.png b/mods/u_skins/u_skins/textures/character_132_preview.png new file mode 100644 index 00000000..e15fb83c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_132_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_133.png b/mods/u_skins/u_skins/textures/character_133.png new file mode 100644 index 00000000..dcac92f2 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_133.png differ diff --git a/mods/u_skins/u_skins/textures/character_133_preview.png b/mods/u_skins/u_skins/textures/character_133_preview.png new file mode 100644 index 00000000..f848c27f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_133_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_134.png b/mods/u_skins/u_skins/textures/character_134.png new file mode 100644 index 00000000..439296e0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_134.png differ diff --git a/mods/u_skins/u_skins/textures/character_134_preview.png b/mods/u_skins/u_skins/textures/character_134_preview.png new file mode 100644 index 00000000..e9604da0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_134_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_135.png b/mods/u_skins/u_skins/textures/character_135.png new file mode 100644 index 00000000..0ac19a2a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_135.png differ diff --git a/mods/u_skins/u_skins/textures/character_135_preview.png b/mods/u_skins/u_skins/textures/character_135_preview.png new file mode 100644 index 00000000..98595563 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_135_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_136.png b/mods/u_skins/u_skins/textures/character_136.png new file mode 100644 index 00000000..6c90431b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_136.png differ diff --git a/mods/u_skins/u_skins/textures/character_136_preview.png b/mods/u_skins/u_skins/textures/character_136_preview.png new file mode 100644 index 00000000..485cd68c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_136_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_137.png b/mods/u_skins/u_skins/textures/character_137.png new file mode 100644 index 00000000..b907736c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_137.png differ diff --git a/mods/u_skins/u_skins/textures/character_137_preview.png b/mods/u_skins/u_skins/textures/character_137_preview.png new file mode 100644 index 00000000..523121f9 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_137_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_138.png b/mods/u_skins/u_skins/textures/character_138.png new file mode 100644 index 00000000..61489778 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_138.png differ diff --git a/mods/u_skins/u_skins/textures/character_138_preview.png b/mods/u_skins/u_skins/textures/character_138_preview.png new file mode 100644 index 00000000..10c742c9 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_138_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_139.png b/mods/u_skins/u_skins/textures/character_139.png new file mode 100644 index 00000000..5a43dea8 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_139.png differ diff --git a/mods/u_skins/u_skins/textures/character_139_preview.png b/mods/u_skins/u_skins/textures/character_139_preview.png new file mode 100644 index 00000000..89e61cf4 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_139_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_13_preview.png b/mods/u_skins/u_skins/textures/character_13_preview.png new file mode 100644 index 00000000..ef8668ee Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_13_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_14.png b/mods/u_skins/u_skins/textures/character_14.png new file mode 100644 index 00000000..3ca5b719 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_14.png differ diff --git a/mods/u_skins/u_skins/textures/character_140.png b/mods/u_skins/u_skins/textures/character_140.png new file mode 100644 index 00000000..09bc2c31 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_140.png differ diff --git a/mods/u_skins/u_skins/textures/character_140_preview.png b/mods/u_skins/u_skins/textures/character_140_preview.png new file mode 100644 index 00000000..55c5b39b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_140_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_141.png b/mods/u_skins/u_skins/textures/character_141.png new file mode 100644 index 00000000..cf346fd9 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_141.png differ diff --git a/mods/u_skins/u_skins/textures/character_141_preview.png b/mods/u_skins/u_skins/textures/character_141_preview.png new file mode 100644 index 00000000..485cd68c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_141_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_142.png b/mods/u_skins/u_skins/textures/character_142.png new file mode 100644 index 00000000..c9ccaf32 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_142.png differ diff --git a/mods/u_skins/u_skins/textures/character_142_preview.png b/mods/u_skins/u_skins/textures/character_142_preview.png new file mode 100644 index 00000000..a15727da Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_142_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_143.png b/mods/u_skins/u_skins/textures/character_143.png new file mode 100644 index 00000000..13714537 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_143.png differ diff --git a/mods/u_skins/u_skins/textures/character_143_preview.png b/mods/u_skins/u_skins/textures/character_143_preview.png new file mode 100644 index 00000000..a15727da Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_143_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_144.png b/mods/u_skins/u_skins/textures/character_144.png new file mode 100644 index 00000000..19956740 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_144.png differ diff --git a/mods/u_skins/u_skins/textures/character_144_preview.png b/mods/u_skins/u_skins/textures/character_144_preview.png new file mode 100644 index 00000000..4a958d90 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_144_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_145.png b/mods/u_skins/u_skins/textures/character_145.png new file mode 100644 index 00000000..0ba6bae0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_145.png differ diff --git a/mods/u_skins/u_skins/textures/character_145_preview.png b/mods/u_skins/u_skins/textures/character_145_preview.png new file mode 100644 index 00000000..621f5fb0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_145_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_146.png b/mods/u_skins/u_skins/textures/character_146.png new file mode 100644 index 00000000..f0e4e025 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_146.png differ diff --git a/mods/u_skins/u_skins/textures/character_146_preview.png b/mods/u_skins/u_skins/textures/character_146_preview.png new file mode 100644 index 00000000..b48c5523 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_146_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_147.png b/mods/u_skins/u_skins/textures/character_147.png new file mode 100644 index 00000000..a0396f44 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_147.png differ diff --git a/mods/u_skins/u_skins/textures/character_147_preview.png b/mods/u_skins/u_skins/textures/character_147_preview.png new file mode 100644 index 00000000..1ded3ebc Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_147_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_148.png b/mods/u_skins/u_skins/textures/character_148.png new file mode 100644 index 00000000..9d197baa Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_148.png differ diff --git a/mods/u_skins/u_skins/textures/character_148_preview.png b/mods/u_skins/u_skins/textures/character_148_preview.png new file mode 100644 index 00000000..8b5341ad Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_148_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_149.png b/mods/u_skins/u_skins/textures/character_149.png new file mode 100644 index 00000000..ae1a6b4e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_149.png differ diff --git a/mods/u_skins/u_skins/textures/character_149_preview.png b/mods/u_skins/u_skins/textures/character_149_preview.png new file mode 100644 index 00000000..a5b86318 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_149_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_14_preview.png b/mods/u_skins/u_skins/textures/character_14_preview.png new file mode 100644 index 00000000..e9a541b0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_14_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_15.png b/mods/u_skins/u_skins/textures/character_15.png new file mode 100644 index 00000000..af62d7a5 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_15.png differ diff --git a/mods/u_skins/u_skins/textures/character_150.png b/mods/u_skins/u_skins/textures/character_150.png new file mode 100644 index 00000000..880cda9a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_150.png differ diff --git a/mods/u_skins/u_skins/textures/character_150_preview.png b/mods/u_skins/u_skins/textures/character_150_preview.png new file mode 100644 index 00000000..0e5c1525 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_150_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_151.png b/mods/u_skins/u_skins/textures/character_151.png new file mode 100644 index 00000000..58c511e3 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_151.png differ diff --git a/mods/u_skins/u_skins/textures/character_151_preview.png b/mods/u_skins/u_skins/textures/character_151_preview.png new file mode 100644 index 00000000..6b8e20f2 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_151_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_152.png b/mods/u_skins/u_skins/textures/character_152.png new file mode 100644 index 00000000..bc6ce125 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_152.png differ diff --git a/mods/u_skins/u_skins/textures/character_152_preview.png b/mods/u_skins/u_skins/textures/character_152_preview.png new file mode 100644 index 00000000..95ee6037 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_152_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_153.png b/mods/u_skins/u_skins/textures/character_153.png new file mode 100644 index 00000000..2bcdeb4f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_153.png differ diff --git a/mods/u_skins/u_skins/textures/character_153_preview.png b/mods/u_skins/u_skins/textures/character_153_preview.png new file mode 100644 index 00000000..aa915471 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_153_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_154.png b/mods/u_skins/u_skins/textures/character_154.png new file mode 100644 index 00000000..f29b74a7 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_154.png differ diff --git a/mods/u_skins/u_skins/textures/character_154_preview.png b/mods/u_skins/u_skins/textures/character_154_preview.png new file mode 100644 index 00000000..c33b0641 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_154_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_155.png b/mods/u_skins/u_skins/textures/character_155.png new file mode 100644 index 00000000..684aa808 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_155.png differ diff --git a/mods/u_skins/u_skins/textures/character_155_preview.png b/mods/u_skins/u_skins/textures/character_155_preview.png new file mode 100644 index 00000000..571fc339 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_155_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_156.png b/mods/u_skins/u_skins/textures/character_156.png new file mode 100644 index 00000000..02d78207 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_156.png differ diff --git a/mods/u_skins/u_skins/textures/character_156_preview.png b/mods/u_skins/u_skins/textures/character_156_preview.png new file mode 100644 index 00000000..e3d253b4 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_156_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_157.png b/mods/u_skins/u_skins/textures/character_157.png new file mode 100644 index 00000000..e5a98331 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_157.png differ diff --git a/mods/u_skins/u_skins/textures/character_157_preview.png b/mods/u_skins/u_skins/textures/character_157_preview.png new file mode 100644 index 00000000..515ea53d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_157_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_158.png b/mods/u_skins/u_skins/textures/character_158.png new file mode 100644 index 00000000..4eb53fb0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_158.png differ diff --git a/mods/u_skins/u_skins/textures/character_158_preview.png b/mods/u_skins/u_skins/textures/character_158_preview.png new file mode 100644 index 00000000..dde61ac8 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_158_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_159.png b/mods/u_skins/u_skins/textures/character_159.png new file mode 100644 index 00000000..ad7e7162 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_159.png differ diff --git a/mods/u_skins/u_skins/textures/character_159_preview.png b/mods/u_skins/u_skins/textures/character_159_preview.png new file mode 100644 index 00000000..e59d455b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_159_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_15_preview.png b/mods/u_skins/u_skins/textures/character_15_preview.png new file mode 100644 index 00000000..fed8fccc Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_15_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_16.png b/mods/u_skins/u_skins/textures/character_16.png new file mode 100644 index 00000000..f1658a25 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_16.png differ diff --git a/mods/u_skins/u_skins/textures/character_160.png b/mods/u_skins/u_skins/textures/character_160.png new file mode 100644 index 00000000..f0fd368a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_160.png differ diff --git a/mods/u_skins/u_skins/textures/character_160_preview.png b/mods/u_skins/u_skins/textures/character_160_preview.png new file mode 100644 index 00000000..642af38e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_160_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_161.png b/mods/u_skins/u_skins/textures/character_161.png new file mode 100644 index 00000000..ec32017a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_161.png differ diff --git a/mods/u_skins/u_skins/textures/character_161_preview.png b/mods/u_skins/u_skins/textures/character_161_preview.png new file mode 100644 index 00000000..e84038f2 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_161_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_162.png b/mods/u_skins/u_skins/textures/character_162.png new file mode 100644 index 00000000..97123890 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_162.png differ diff --git a/mods/u_skins/u_skins/textures/character_162_preview.png b/mods/u_skins/u_skins/textures/character_162_preview.png new file mode 100644 index 00000000..b8eea30c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_162_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_163.png b/mods/u_skins/u_skins/textures/character_163.png new file mode 100644 index 00000000..f55368dd Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_163.png differ diff --git a/mods/u_skins/u_skins/textures/character_163_preview.png b/mods/u_skins/u_skins/textures/character_163_preview.png new file mode 100644 index 00000000..6f254373 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_163_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_164.png b/mods/u_skins/u_skins/textures/character_164.png new file mode 100644 index 00000000..313827c9 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_164.png differ diff --git a/mods/u_skins/u_skins/textures/character_164_preview.png b/mods/u_skins/u_skins/textures/character_164_preview.png new file mode 100644 index 00000000..767ff411 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_164_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_165.png b/mods/u_skins/u_skins/textures/character_165.png new file mode 100644 index 00000000..f26e5ac8 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_165.png differ diff --git a/mods/u_skins/u_skins/textures/character_165_preview.png b/mods/u_skins/u_skins/textures/character_165_preview.png new file mode 100644 index 00000000..f86370b6 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_165_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_166.png b/mods/u_skins/u_skins/textures/character_166.png new file mode 100644 index 00000000..81cc2171 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_166.png differ diff --git a/mods/u_skins/u_skins/textures/character_166_preview.png b/mods/u_skins/u_skins/textures/character_166_preview.png new file mode 100644 index 00000000..477e9fc9 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_166_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_167.png b/mods/u_skins/u_skins/textures/character_167.png new file mode 100644 index 00000000..980a298c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_167.png differ diff --git a/mods/u_skins/u_skins/textures/character_167_preview.png b/mods/u_skins/u_skins/textures/character_167_preview.png new file mode 100644 index 00000000..c32856de Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_167_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_168.png b/mods/u_skins/u_skins/textures/character_168.png new file mode 100644 index 00000000..6d181faf Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_168.png differ diff --git a/mods/u_skins/u_skins/textures/character_168_preview.png b/mods/u_skins/u_skins/textures/character_168_preview.png new file mode 100644 index 00000000..7ffc026c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_168_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_169.png b/mods/u_skins/u_skins/textures/character_169.png new file mode 100644 index 00000000..d07695c6 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_169.png differ diff --git a/mods/u_skins/u_skins/textures/character_169_preview.png b/mods/u_skins/u_skins/textures/character_169_preview.png new file mode 100644 index 00000000..105a7736 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_169_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_16_preview.png b/mods/u_skins/u_skins/textures/character_16_preview.png new file mode 100644 index 00000000..87667c59 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_16_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_17.png b/mods/u_skins/u_skins/textures/character_17.png new file mode 100644 index 00000000..35a81262 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_17.png differ diff --git a/mods/u_skins/u_skins/textures/character_170.png b/mods/u_skins/u_skins/textures/character_170.png new file mode 100644 index 00000000..06fd5019 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_170.png differ diff --git a/mods/u_skins/u_skins/textures/character_170_preview.png b/mods/u_skins/u_skins/textures/character_170_preview.png new file mode 100644 index 00000000..f8b6fb40 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_170_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_171.png b/mods/u_skins/u_skins/textures/character_171.png new file mode 100644 index 00000000..d1f2d104 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_171.png differ diff --git a/mods/u_skins/u_skins/textures/character_171_preview.png b/mods/u_skins/u_skins/textures/character_171_preview.png new file mode 100644 index 00000000..a378d3c4 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_171_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_172.png b/mods/u_skins/u_skins/textures/character_172.png new file mode 100644 index 00000000..bda7d77d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_172.png differ diff --git a/mods/u_skins/u_skins/textures/character_172_preview.png b/mods/u_skins/u_skins/textures/character_172_preview.png new file mode 100644 index 00000000..9c168122 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_172_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_173.png b/mods/u_skins/u_skins/textures/character_173.png new file mode 100644 index 00000000..f00dd2ac Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_173.png differ diff --git a/mods/u_skins/u_skins/textures/character_173_preview.png b/mods/u_skins/u_skins/textures/character_173_preview.png new file mode 100644 index 00000000..0773c3ac Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_173_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_174.png b/mods/u_skins/u_skins/textures/character_174.png new file mode 100644 index 00000000..8632c61f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_174.png differ diff --git a/mods/u_skins/u_skins/textures/character_174_preview.png b/mods/u_skins/u_skins/textures/character_174_preview.png new file mode 100644 index 00000000..3658aa0d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_174_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_175.png b/mods/u_skins/u_skins/textures/character_175.png new file mode 100644 index 00000000..275214d7 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_175.png differ diff --git a/mods/u_skins/u_skins/textures/character_175_preview.png b/mods/u_skins/u_skins/textures/character_175_preview.png new file mode 100644 index 00000000..758f4288 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_175_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_176.png b/mods/u_skins/u_skins/textures/character_176.png new file mode 100644 index 00000000..25ceadf4 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_176.png differ diff --git a/mods/u_skins/u_skins/textures/character_176_preview.png b/mods/u_skins/u_skins/textures/character_176_preview.png new file mode 100644 index 00000000..ebad19ee Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_176_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_177.png b/mods/u_skins/u_skins/textures/character_177.png new file mode 100644 index 00000000..a4af514c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_177.png differ diff --git a/mods/u_skins/u_skins/textures/character_177_preview.png b/mods/u_skins/u_skins/textures/character_177_preview.png new file mode 100644 index 00000000..fcedaf39 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_177_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_178.png b/mods/u_skins/u_skins/textures/character_178.png new file mode 100644 index 00000000..18712e78 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_178.png differ diff --git a/mods/u_skins/u_skins/textures/character_178_preview.png b/mods/u_skins/u_skins/textures/character_178_preview.png new file mode 100644 index 00000000..e4aa7633 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_178_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_179.png b/mods/u_skins/u_skins/textures/character_179.png new file mode 100644 index 00000000..732e43ee Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_179.png differ diff --git a/mods/u_skins/u_skins/textures/character_179_preview.png b/mods/u_skins/u_skins/textures/character_179_preview.png new file mode 100644 index 00000000..05e89ec4 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_179_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_17_preview.png b/mods/u_skins/u_skins/textures/character_17_preview.png new file mode 100644 index 00000000..19fafe8c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_17_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_18.png b/mods/u_skins/u_skins/textures/character_18.png new file mode 100644 index 00000000..ad53a919 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_18.png differ diff --git a/mods/u_skins/u_skins/textures/character_180.png b/mods/u_skins/u_skins/textures/character_180.png new file mode 100644 index 00000000..aabd1145 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_180.png differ diff --git a/mods/u_skins/u_skins/textures/character_180_preview.png b/mods/u_skins/u_skins/textures/character_180_preview.png new file mode 100644 index 00000000..799a15bb Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_180_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_181.png b/mods/u_skins/u_skins/textures/character_181.png new file mode 100644 index 00000000..04147143 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_181.png differ diff --git a/mods/u_skins/u_skins/textures/character_181_preview.png b/mods/u_skins/u_skins/textures/character_181_preview.png new file mode 100644 index 00000000..2c6975bf Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_181_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_182.png b/mods/u_skins/u_skins/textures/character_182.png new file mode 100644 index 00000000..ac52879e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_182.png differ diff --git a/mods/u_skins/u_skins/textures/character_182_preview.png b/mods/u_skins/u_skins/textures/character_182_preview.png new file mode 100644 index 00000000..cdb743e9 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_182_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_183.png b/mods/u_skins/u_skins/textures/character_183.png new file mode 100644 index 00000000..9ee02040 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_183.png differ diff --git a/mods/u_skins/u_skins/textures/character_183_preview.png b/mods/u_skins/u_skins/textures/character_183_preview.png new file mode 100644 index 00000000..79f7bfb2 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_183_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_184.png b/mods/u_skins/u_skins/textures/character_184.png new file mode 100644 index 00000000..08bb0ef9 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_184.png differ diff --git a/mods/u_skins/u_skins/textures/character_184_preview.png b/mods/u_skins/u_skins/textures/character_184_preview.png new file mode 100644 index 00000000..edf6c6e1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_184_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_185.png b/mods/u_skins/u_skins/textures/character_185.png new file mode 100644 index 00000000..6879d8ba Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_185.png differ diff --git a/mods/u_skins/u_skins/textures/character_185_preview.png b/mods/u_skins/u_skins/textures/character_185_preview.png new file mode 100644 index 00000000..2ac6317d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_185_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_186.png b/mods/u_skins/u_skins/textures/character_186.png new file mode 100644 index 00000000..75108f0b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_186.png differ diff --git a/mods/u_skins/u_skins/textures/character_186_preview.png b/mods/u_skins/u_skins/textures/character_186_preview.png new file mode 100644 index 00000000..8869e107 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_186_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_187.png b/mods/u_skins/u_skins/textures/character_187.png new file mode 100644 index 00000000..fc9d41b6 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_187.png differ diff --git a/mods/u_skins/u_skins/textures/character_187_preview.png b/mods/u_skins/u_skins/textures/character_187_preview.png new file mode 100644 index 00000000..d3e2441b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_187_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_188.png b/mods/u_skins/u_skins/textures/character_188.png new file mode 100644 index 00000000..dddd0a68 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_188.png differ diff --git a/mods/u_skins/u_skins/textures/character_188_preview.png b/mods/u_skins/u_skins/textures/character_188_preview.png new file mode 100644 index 00000000..bd387949 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_188_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_189.png b/mods/u_skins/u_skins/textures/character_189.png new file mode 100644 index 00000000..4819fbd1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_189.png differ diff --git a/mods/u_skins/u_skins/textures/character_189_preview.png b/mods/u_skins/u_skins/textures/character_189_preview.png new file mode 100644 index 00000000..9e6feaee Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_189_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_18_preview.png b/mods/u_skins/u_skins/textures/character_18_preview.png new file mode 100644 index 00000000..b0f0a952 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_18_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_19.png b/mods/u_skins/u_skins/textures/character_19.png new file mode 100644 index 00000000..9b32851d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_19.png differ diff --git a/mods/u_skins/u_skins/textures/character_190.png b/mods/u_skins/u_skins/textures/character_190.png new file mode 100644 index 00000000..baa97f6f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_190.png differ diff --git a/mods/u_skins/u_skins/textures/character_190_preview.png b/mods/u_skins/u_skins/textures/character_190_preview.png new file mode 100644 index 00000000..fd24a6fe Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_190_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_191.png b/mods/u_skins/u_skins/textures/character_191.png new file mode 100644 index 00000000..9700ce16 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_191.png differ diff --git a/mods/u_skins/u_skins/textures/character_191_preview.png b/mods/u_skins/u_skins/textures/character_191_preview.png new file mode 100644 index 00000000..c3bf555d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_191_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_192.png b/mods/u_skins/u_skins/textures/character_192.png new file mode 100644 index 00000000..cff154be Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_192.png differ diff --git a/mods/u_skins/u_skins/textures/character_192_preview.png b/mods/u_skins/u_skins/textures/character_192_preview.png new file mode 100644 index 00000000..ea8a514b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_192_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_193.png b/mods/u_skins/u_skins/textures/character_193.png new file mode 100644 index 00000000..3d460222 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_193.png differ diff --git a/mods/u_skins/u_skins/textures/character_193_preview.png b/mods/u_skins/u_skins/textures/character_193_preview.png new file mode 100644 index 00000000..a05d64de Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_193_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_194.png b/mods/u_skins/u_skins/textures/character_194.png new file mode 100644 index 00000000..07dcf10c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_194.png differ diff --git a/mods/u_skins/u_skins/textures/character_194_preview.png b/mods/u_skins/u_skins/textures/character_194_preview.png new file mode 100644 index 00000000..c56c2c74 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_194_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_195.png b/mods/u_skins/u_skins/textures/character_195.png new file mode 100644 index 00000000..26c8ac43 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_195.png differ diff --git a/mods/u_skins/u_skins/textures/character_195_preview.png b/mods/u_skins/u_skins/textures/character_195_preview.png new file mode 100644 index 00000000..ab50c209 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_195_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_196.png b/mods/u_skins/u_skins/textures/character_196.png new file mode 100644 index 00000000..4fbed3ba Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_196.png differ diff --git a/mods/u_skins/u_skins/textures/character_196_preview.png b/mods/u_skins/u_skins/textures/character_196_preview.png new file mode 100644 index 00000000..b5b67447 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_196_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_197.png b/mods/u_skins/u_skins/textures/character_197.png new file mode 100644 index 00000000..2e9d9380 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_197.png differ diff --git a/mods/u_skins/u_skins/textures/character_197_preview.png b/mods/u_skins/u_skins/textures/character_197_preview.png new file mode 100644 index 00000000..b068ac29 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_197_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_198.png b/mods/u_skins/u_skins/textures/character_198.png new file mode 100644 index 00000000..0ef4b57b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_198.png differ diff --git a/mods/u_skins/u_skins/textures/character_198_preview.png b/mods/u_skins/u_skins/textures/character_198_preview.png new file mode 100644 index 00000000..7f20acc2 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_198_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_199.png b/mods/u_skins/u_skins/textures/character_199.png new file mode 100644 index 00000000..ecac77d7 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_199.png differ diff --git a/mods/u_skins/u_skins/textures/character_199_preview.png b/mods/u_skins/u_skins/textures/character_199_preview.png new file mode 100644 index 00000000..237c6ff0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_199_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_19_preview.png b/mods/u_skins/u_skins/textures/character_19_preview.png new file mode 100644 index 00000000..311d2770 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_19_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_1_preview.png b/mods/u_skins/u_skins/textures/character_1_preview.png new file mode 100755 index 00000000..62a9ff2d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_1_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_2.png b/mods/u_skins/u_skins/textures/character_2.png new file mode 100755 index 00000000..d794b870 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_2.png differ diff --git a/mods/u_skins/u_skins/textures/character_20.png b/mods/u_skins/u_skins/textures/character_20.png new file mode 100644 index 00000000..690171ce Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_20.png differ diff --git a/mods/u_skins/u_skins/textures/character_200.png b/mods/u_skins/u_skins/textures/character_200.png new file mode 100644 index 00000000..c50b239f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_200.png differ diff --git a/mods/u_skins/u_skins/textures/character_200_preview.png b/mods/u_skins/u_skins/textures/character_200_preview.png new file mode 100644 index 00000000..6bd54ef5 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_200_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_201.png b/mods/u_skins/u_skins/textures/character_201.png new file mode 100644 index 00000000..0c4cd743 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_201.png differ diff --git a/mods/u_skins/u_skins/textures/character_201_preview.png b/mods/u_skins/u_skins/textures/character_201_preview.png new file mode 100644 index 00000000..8358d1f5 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_201_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_202.png b/mods/u_skins/u_skins/textures/character_202.png new file mode 100644 index 00000000..eae5d284 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_202.png differ diff --git a/mods/u_skins/u_skins/textures/character_202_preview.png b/mods/u_skins/u_skins/textures/character_202_preview.png new file mode 100644 index 00000000..7e772225 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_202_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_203.png b/mods/u_skins/u_skins/textures/character_203.png new file mode 100644 index 00000000..c3961869 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_203.png differ diff --git a/mods/u_skins/u_skins/textures/character_203_preview.png b/mods/u_skins/u_skins/textures/character_203_preview.png new file mode 100644 index 00000000..de1505f6 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_203_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_204.png b/mods/u_skins/u_skins/textures/character_204.png new file mode 100644 index 00000000..06b5296f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_204.png differ diff --git a/mods/u_skins/u_skins/textures/character_204_preview.png b/mods/u_skins/u_skins/textures/character_204_preview.png new file mode 100644 index 00000000..c3ef56ea Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_204_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_205.png b/mods/u_skins/u_skins/textures/character_205.png new file mode 100644 index 00000000..3baaa93a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_205.png differ diff --git a/mods/u_skins/u_skins/textures/character_205_preview.png b/mods/u_skins/u_skins/textures/character_205_preview.png new file mode 100644 index 00000000..28a1bcf1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_205_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_206.png b/mods/u_skins/u_skins/textures/character_206.png new file mode 100644 index 00000000..047c74b1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_206.png differ diff --git a/mods/u_skins/u_skins/textures/character_206_preview.png b/mods/u_skins/u_skins/textures/character_206_preview.png new file mode 100644 index 00000000..5ffe90ff Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_206_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_207.png b/mods/u_skins/u_skins/textures/character_207.png new file mode 100644 index 00000000..61a2d51b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_207.png differ diff --git a/mods/u_skins/u_skins/textures/character_207_preview.png b/mods/u_skins/u_skins/textures/character_207_preview.png new file mode 100644 index 00000000..6cb02816 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_207_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_208.png b/mods/u_skins/u_skins/textures/character_208.png new file mode 100644 index 00000000..d9770e81 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_208.png differ diff --git a/mods/u_skins/u_skins/textures/character_208_preview.png b/mods/u_skins/u_skins/textures/character_208_preview.png new file mode 100644 index 00000000..a41d5ff9 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_208_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_209.png b/mods/u_skins/u_skins/textures/character_209.png new file mode 100644 index 00000000..5d454744 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_209.png differ diff --git a/mods/u_skins/u_skins/textures/character_209_preview.png b/mods/u_skins/u_skins/textures/character_209_preview.png new file mode 100644 index 00000000..5f9e3f0a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_209_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_20_preview.png b/mods/u_skins/u_skins/textures/character_20_preview.png new file mode 100644 index 00000000..ef824e10 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_20_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_21.png b/mods/u_skins/u_skins/textures/character_21.png new file mode 100644 index 00000000..a3d7b598 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_21.png differ diff --git a/mods/u_skins/u_skins/textures/character_210.png b/mods/u_skins/u_skins/textures/character_210.png new file mode 100644 index 00000000..dcf02185 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_210.png differ diff --git a/mods/u_skins/u_skins/textures/character_210_preview.png b/mods/u_skins/u_skins/textures/character_210_preview.png new file mode 100644 index 00000000..dbf99481 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_210_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_211.png b/mods/u_skins/u_skins/textures/character_211.png new file mode 100644 index 00000000..23c27e5b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_211.png differ diff --git a/mods/u_skins/u_skins/textures/character_211_preview.png b/mods/u_skins/u_skins/textures/character_211_preview.png new file mode 100644 index 00000000..283a7931 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_211_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_212.png b/mods/u_skins/u_skins/textures/character_212.png new file mode 100644 index 00000000..f5b928fc Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_212.png differ diff --git a/mods/u_skins/u_skins/textures/character_212_preview.png b/mods/u_skins/u_skins/textures/character_212_preview.png new file mode 100644 index 00000000..512e356f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_212_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_213.png b/mods/u_skins/u_skins/textures/character_213.png new file mode 100644 index 00000000..3633e120 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_213.png differ diff --git a/mods/u_skins/u_skins/textures/character_213_preview.png b/mods/u_skins/u_skins/textures/character_213_preview.png new file mode 100644 index 00000000..e9a9a4a7 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_213_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_214.png b/mods/u_skins/u_skins/textures/character_214.png new file mode 100644 index 00000000..730d3919 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_214.png differ diff --git a/mods/u_skins/u_skins/textures/character_214_preview.png b/mods/u_skins/u_skins/textures/character_214_preview.png new file mode 100644 index 00000000..8a06d9c8 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_214_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_215.png b/mods/u_skins/u_skins/textures/character_215.png new file mode 100644 index 00000000..df8f76c7 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_215.png differ diff --git a/mods/u_skins/u_skins/textures/character_215_preview.png b/mods/u_skins/u_skins/textures/character_215_preview.png new file mode 100644 index 00000000..997ae926 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_215_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_216.png b/mods/u_skins/u_skins/textures/character_216.png new file mode 100644 index 00000000..3ca51abd Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_216.png differ diff --git a/mods/u_skins/u_skins/textures/character_216_preview.png b/mods/u_skins/u_skins/textures/character_216_preview.png new file mode 100644 index 00000000..ccdad25b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_216_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_217.png b/mods/u_skins/u_skins/textures/character_217.png new file mode 100644 index 00000000..aa859032 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_217.png differ diff --git a/mods/u_skins/u_skins/textures/character_217_preview.png b/mods/u_skins/u_skins/textures/character_217_preview.png new file mode 100644 index 00000000..f14d0516 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_217_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_218.png b/mods/u_skins/u_skins/textures/character_218.png new file mode 100644 index 00000000..de459d74 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_218.png differ diff --git a/mods/u_skins/u_skins/textures/character_218_preview.png b/mods/u_skins/u_skins/textures/character_218_preview.png new file mode 100644 index 00000000..966bfdcd Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_218_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_219.png b/mods/u_skins/u_skins/textures/character_219.png new file mode 100644 index 00000000..d68197e6 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_219.png differ diff --git a/mods/u_skins/u_skins/textures/character_219_preview.png b/mods/u_skins/u_skins/textures/character_219_preview.png new file mode 100644 index 00000000..45161dd1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_219_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_21_preview.png b/mods/u_skins/u_skins/textures/character_21_preview.png new file mode 100644 index 00000000..373b123a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_21_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_22.png b/mods/u_skins/u_skins/textures/character_22.png new file mode 100644 index 00000000..388d9c5a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_22.png differ diff --git a/mods/u_skins/u_skins/textures/character_220.png b/mods/u_skins/u_skins/textures/character_220.png new file mode 100644 index 00000000..2af29069 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_220.png differ diff --git a/mods/u_skins/u_skins/textures/character_220_preview.png b/mods/u_skins/u_skins/textures/character_220_preview.png new file mode 100644 index 00000000..dabc3b63 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_220_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_221.png b/mods/u_skins/u_skins/textures/character_221.png new file mode 100644 index 00000000..581585eb Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_221.png differ diff --git a/mods/u_skins/u_skins/textures/character_221_preview.png b/mods/u_skins/u_skins/textures/character_221_preview.png new file mode 100644 index 00000000..8dcd0431 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_221_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_222.png b/mods/u_skins/u_skins/textures/character_222.png new file mode 100644 index 00000000..54fb9323 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_222.png differ diff --git a/mods/u_skins/u_skins/textures/character_222_preview.png b/mods/u_skins/u_skins/textures/character_222_preview.png new file mode 100644 index 00000000..2ea747d1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_222_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_223.png b/mods/u_skins/u_skins/textures/character_223.png new file mode 100644 index 00000000..0b19f75a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_223.png differ diff --git a/mods/u_skins/u_skins/textures/character_223_preview.png b/mods/u_skins/u_skins/textures/character_223_preview.png new file mode 100644 index 00000000..e4aa7633 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_223_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_224.png b/mods/u_skins/u_skins/textures/character_224.png new file mode 100644 index 00000000..a3820ed0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_224.png differ diff --git a/mods/u_skins/u_skins/textures/character_224_preview.png b/mods/u_skins/u_skins/textures/character_224_preview.png new file mode 100644 index 00000000..0eb83616 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_224_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_225.png b/mods/u_skins/u_skins/textures/character_225.png new file mode 100644 index 00000000..68b9a629 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_225.png differ diff --git a/mods/u_skins/u_skins/textures/character_225_preview.png b/mods/u_skins/u_skins/textures/character_225_preview.png new file mode 100644 index 00000000..3f06a085 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_225_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_226.png b/mods/u_skins/u_skins/textures/character_226.png new file mode 100644 index 00000000..57935500 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_226.png differ diff --git a/mods/u_skins/u_skins/textures/character_226_preview.png b/mods/u_skins/u_skins/textures/character_226_preview.png new file mode 100644 index 00000000..b4139035 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_226_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_227.png b/mods/u_skins/u_skins/textures/character_227.png new file mode 100644 index 00000000..318acf80 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_227.png differ diff --git a/mods/u_skins/u_skins/textures/character_227_preview.png b/mods/u_skins/u_skins/textures/character_227_preview.png new file mode 100644 index 00000000..4151fef4 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_227_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_228.png b/mods/u_skins/u_skins/textures/character_228.png new file mode 100644 index 00000000..2defe056 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_228.png differ diff --git a/mods/u_skins/u_skins/textures/character_228_preview.png b/mods/u_skins/u_skins/textures/character_228_preview.png new file mode 100644 index 00000000..aa08ed08 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_228_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_229.png b/mods/u_skins/u_skins/textures/character_229.png new file mode 100644 index 00000000..97963e3c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_229.png differ diff --git a/mods/u_skins/u_skins/textures/character_229_preview.png b/mods/u_skins/u_skins/textures/character_229_preview.png new file mode 100644 index 00000000..b1f5eb84 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_229_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_22_preview.png b/mods/u_skins/u_skins/textures/character_22_preview.png new file mode 100644 index 00000000..02d12c2e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_22_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_23.png b/mods/u_skins/u_skins/textures/character_23.png new file mode 100644 index 00000000..71814813 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_23.png differ diff --git a/mods/u_skins/u_skins/textures/character_230.png b/mods/u_skins/u_skins/textures/character_230.png new file mode 100644 index 00000000..f720c868 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_230.png differ diff --git a/mods/u_skins/u_skins/textures/character_230_preview.png b/mods/u_skins/u_skins/textures/character_230_preview.png new file mode 100644 index 00000000..0b00be47 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_230_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_231.png b/mods/u_skins/u_skins/textures/character_231.png new file mode 100644 index 00000000..4dac90bb Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_231.png differ diff --git a/mods/u_skins/u_skins/textures/character_231_preview.png b/mods/u_skins/u_skins/textures/character_231_preview.png new file mode 100644 index 00000000..4db1927b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_231_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_232.png b/mods/u_skins/u_skins/textures/character_232.png new file mode 100644 index 00000000..4e9b9a59 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_232.png differ diff --git a/mods/u_skins/u_skins/textures/character_232_preview.png b/mods/u_skins/u_skins/textures/character_232_preview.png new file mode 100644 index 00000000..19fafe8c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_232_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_233.png b/mods/u_skins/u_skins/textures/character_233.png new file mode 100644 index 00000000..ad2ccdd9 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_233.png differ diff --git a/mods/u_skins/u_skins/textures/character_233_preview.png b/mods/u_skins/u_skins/textures/character_233_preview.png new file mode 100644 index 00000000..59b64b50 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_233_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_234.png b/mods/u_skins/u_skins/textures/character_234.png new file mode 100644 index 00000000..0df06f73 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_234.png differ diff --git a/mods/u_skins/u_skins/textures/character_234_preview.png b/mods/u_skins/u_skins/textures/character_234_preview.png new file mode 100644 index 00000000..2bf25043 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_234_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_235.png b/mods/u_skins/u_skins/textures/character_235.png new file mode 100644 index 00000000..b4ffdd49 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_235.png differ diff --git a/mods/u_skins/u_skins/textures/character_235_preview.png b/mods/u_skins/u_skins/textures/character_235_preview.png new file mode 100644 index 00000000..8f018f74 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_235_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_236.png b/mods/u_skins/u_skins/textures/character_236.png new file mode 100644 index 00000000..c489865b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_236.png differ diff --git a/mods/u_skins/u_skins/textures/character_236_preview.png b/mods/u_skins/u_skins/textures/character_236_preview.png new file mode 100644 index 00000000..f51ecd55 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_236_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_237.png b/mods/u_skins/u_skins/textures/character_237.png new file mode 100644 index 00000000..d6bb5f00 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_237.png differ diff --git a/mods/u_skins/u_skins/textures/character_237_preview.png b/mods/u_skins/u_skins/textures/character_237_preview.png new file mode 100644 index 00000000..d0379b99 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_237_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_238.png b/mods/u_skins/u_skins/textures/character_238.png new file mode 100644 index 00000000..5025b538 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_238.png differ diff --git a/mods/u_skins/u_skins/textures/character_238_preview.png b/mods/u_skins/u_skins/textures/character_238_preview.png new file mode 100644 index 00000000..dc85ec69 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_238_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_239.png b/mods/u_skins/u_skins/textures/character_239.png new file mode 100644 index 00000000..8518cd26 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_239.png differ diff --git a/mods/u_skins/u_skins/textures/character_239_preview.png b/mods/u_skins/u_skins/textures/character_239_preview.png new file mode 100644 index 00000000..50a58c99 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_239_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_23_preview.png b/mods/u_skins/u_skins/textures/character_23_preview.png new file mode 100644 index 00000000..b7a02dc4 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_23_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_24.png b/mods/u_skins/u_skins/textures/character_24.png new file mode 100644 index 00000000..fe58fa00 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_24.png differ diff --git a/mods/u_skins/u_skins/textures/character_240.png b/mods/u_skins/u_skins/textures/character_240.png new file mode 100644 index 00000000..796b41f7 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_240.png differ diff --git a/mods/u_skins/u_skins/textures/character_240_preview.png b/mods/u_skins/u_skins/textures/character_240_preview.png new file mode 100644 index 00000000..106c7292 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_240_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_241.png b/mods/u_skins/u_skins/textures/character_241.png new file mode 100644 index 00000000..186c7877 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_241.png differ diff --git a/mods/u_skins/u_skins/textures/character_241_preview.png b/mods/u_skins/u_skins/textures/character_241_preview.png new file mode 100644 index 00000000..53d8e9c5 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_241_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_242.png b/mods/u_skins/u_skins/textures/character_242.png new file mode 100644 index 00000000..5ff58b88 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_242.png differ diff --git a/mods/u_skins/u_skins/textures/character_242_preview.png b/mods/u_skins/u_skins/textures/character_242_preview.png new file mode 100644 index 00000000..f2659fc0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_242_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_243.png b/mods/u_skins/u_skins/textures/character_243.png new file mode 100644 index 00000000..749598cf Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_243.png differ diff --git a/mods/u_skins/u_skins/textures/character_243_preview.png b/mods/u_skins/u_skins/textures/character_243_preview.png new file mode 100644 index 00000000..c529b87f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_243_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_244.png b/mods/u_skins/u_skins/textures/character_244.png new file mode 100644 index 00000000..8afa2d06 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_244.png differ diff --git a/mods/u_skins/u_skins/textures/character_244_preview.png b/mods/u_skins/u_skins/textures/character_244_preview.png new file mode 100644 index 00000000..b104838f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_244_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_245.png b/mods/u_skins/u_skins/textures/character_245.png new file mode 100644 index 00000000..897bd839 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_245.png differ diff --git a/mods/u_skins/u_skins/textures/character_245_preview.png b/mods/u_skins/u_skins/textures/character_245_preview.png new file mode 100644 index 00000000..ed74619b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_245_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_246.png b/mods/u_skins/u_skins/textures/character_246.png new file mode 100644 index 00000000..2aac3faa Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_246.png differ diff --git a/mods/u_skins/u_skins/textures/character_246_preview.png b/mods/u_skins/u_skins/textures/character_246_preview.png new file mode 100644 index 00000000..b55b86b9 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_246_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_247.png b/mods/u_skins/u_skins/textures/character_247.png new file mode 100644 index 00000000..70e9afce Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_247.png differ diff --git a/mods/u_skins/u_skins/textures/character_247_preview.png b/mods/u_skins/u_skins/textures/character_247_preview.png new file mode 100644 index 00000000..aa0649b5 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_247_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_248.png b/mods/u_skins/u_skins/textures/character_248.png new file mode 100644 index 00000000..b6191c3e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_248.png differ diff --git a/mods/u_skins/u_skins/textures/character_248_preview.png b/mods/u_skins/u_skins/textures/character_248_preview.png new file mode 100644 index 00000000..3ce4ce24 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_248_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_249.png b/mods/u_skins/u_skins/textures/character_249.png new file mode 100644 index 00000000..811ba4f0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_249.png differ diff --git a/mods/u_skins/u_skins/textures/character_249_preview.png b/mods/u_skins/u_skins/textures/character_249_preview.png new file mode 100644 index 00000000..b5b67447 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_249_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_24_preview.png b/mods/u_skins/u_skins/textures/character_24_preview.png new file mode 100644 index 00000000..c9dc0650 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_24_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_25.png b/mods/u_skins/u_skins/textures/character_25.png new file mode 100644 index 00000000..d246e6cd Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_25.png differ diff --git a/mods/u_skins/u_skins/textures/character_250.png b/mods/u_skins/u_skins/textures/character_250.png new file mode 100644 index 00000000..c4930835 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_250.png differ diff --git a/mods/u_skins/u_skins/textures/character_250_preview.png b/mods/u_skins/u_skins/textures/character_250_preview.png new file mode 100644 index 00000000..cdd4e6ec Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_250_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_251.png b/mods/u_skins/u_skins/textures/character_251.png new file mode 100644 index 00000000..c92c7f45 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_251.png differ diff --git a/mods/u_skins/u_skins/textures/character_251_preview.png b/mods/u_skins/u_skins/textures/character_251_preview.png new file mode 100644 index 00000000..3a442e09 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_251_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_252.png b/mods/u_skins/u_skins/textures/character_252.png new file mode 100644 index 00000000..b4e09446 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_252.png differ diff --git a/mods/u_skins/u_skins/textures/character_252_preview.png b/mods/u_skins/u_skins/textures/character_252_preview.png new file mode 100644 index 00000000..df35b684 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_252_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_253.png b/mods/u_skins/u_skins/textures/character_253.png new file mode 100644 index 00000000..c7633bd6 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_253.png differ diff --git a/mods/u_skins/u_skins/textures/character_253_preview.png b/mods/u_skins/u_skins/textures/character_253_preview.png new file mode 100644 index 00000000..f46bfaa2 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_253_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_254.png b/mods/u_skins/u_skins/textures/character_254.png new file mode 100644 index 00000000..242ec958 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_254.png differ diff --git a/mods/u_skins/u_skins/textures/character_254_preview.png b/mods/u_skins/u_skins/textures/character_254_preview.png new file mode 100644 index 00000000..387ec435 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_254_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_255.png b/mods/u_skins/u_skins/textures/character_255.png new file mode 100644 index 00000000..ba1b033c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_255.png differ diff --git a/mods/u_skins/u_skins/textures/character_255_preview.png b/mods/u_skins/u_skins/textures/character_255_preview.png new file mode 100644 index 00000000..3cb8f1ee Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_255_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_256.png b/mods/u_skins/u_skins/textures/character_256.png new file mode 100644 index 00000000..db0de27a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_256.png differ diff --git a/mods/u_skins/u_skins/textures/character_256_preview.png b/mods/u_skins/u_skins/textures/character_256_preview.png new file mode 100644 index 00000000..a55620dc Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_256_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_257.png b/mods/u_skins/u_skins/textures/character_257.png new file mode 100644 index 00000000..bc2c7516 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_257.png differ diff --git a/mods/u_skins/u_skins/textures/character_257_preview.png b/mods/u_skins/u_skins/textures/character_257_preview.png new file mode 100644 index 00000000..9a656aef Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_257_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_258.png b/mods/u_skins/u_skins/textures/character_258.png new file mode 100644 index 00000000..76ecf3e2 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_258.png differ diff --git a/mods/u_skins/u_skins/textures/character_258_preview.png b/mods/u_skins/u_skins/textures/character_258_preview.png new file mode 100644 index 00000000..93810ffb Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_258_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_259.png b/mods/u_skins/u_skins/textures/character_259.png new file mode 100644 index 00000000..c4ec58e2 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_259.png differ diff --git a/mods/u_skins/u_skins/textures/character_259_preview.png b/mods/u_skins/u_skins/textures/character_259_preview.png new file mode 100644 index 00000000..a0d30fbd Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_259_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_25_preview.png b/mods/u_skins/u_skins/textures/character_25_preview.png new file mode 100644 index 00000000..6e5e9559 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_25_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_26.png b/mods/u_skins/u_skins/textures/character_26.png new file mode 100644 index 00000000..a8d01634 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_26.png differ diff --git a/mods/u_skins/u_skins/textures/character_260.png b/mods/u_skins/u_skins/textures/character_260.png new file mode 100644 index 00000000..d8c9e5d5 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_260.png differ diff --git a/mods/u_skins/u_skins/textures/character_260_preview.png b/mods/u_skins/u_skins/textures/character_260_preview.png new file mode 100644 index 00000000..e7b97b2a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_260_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_261.png b/mods/u_skins/u_skins/textures/character_261.png new file mode 100644 index 00000000..ca611831 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_261.png differ diff --git a/mods/u_skins/u_skins/textures/character_261_preview.png b/mods/u_skins/u_skins/textures/character_261_preview.png new file mode 100644 index 00000000..a262193b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_261_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_262.png b/mods/u_skins/u_skins/textures/character_262.png new file mode 100644 index 00000000..83450bf6 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_262.png differ diff --git a/mods/u_skins/u_skins/textures/character_262_preview.png b/mods/u_skins/u_skins/textures/character_262_preview.png new file mode 100644 index 00000000..c6b8db0c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_262_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_263.png b/mods/u_skins/u_skins/textures/character_263.png new file mode 100644 index 00000000..9e0500fb Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_263.png differ diff --git a/mods/u_skins/u_skins/textures/character_263_preview.png b/mods/u_skins/u_skins/textures/character_263_preview.png new file mode 100644 index 00000000..06cc57ba Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_263_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_264.png b/mods/u_skins/u_skins/textures/character_264.png new file mode 100644 index 00000000..e4704b47 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_264.png differ diff --git a/mods/u_skins/u_skins/textures/character_264_preview.png b/mods/u_skins/u_skins/textures/character_264_preview.png new file mode 100644 index 00000000..d962ea76 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_264_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_265.png b/mods/u_skins/u_skins/textures/character_265.png new file mode 100644 index 00000000..7cb475d1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_265.png differ diff --git a/mods/u_skins/u_skins/textures/character_265_preview.png b/mods/u_skins/u_skins/textures/character_265_preview.png new file mode 100644 index 00000000..0840d64c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_265_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_266.png b/mods/u_skins/u_skins/textures/character_266.png new file mode 100644 index 00000000..285ab4df Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_266.png differ diff --git a/mods/u_skins/u_skins/textures/character_266_preview.png b/mods/u_skins/u_skins/textures/character_266_preview.png new file mode 100644 index 00000000..e35696d1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_266_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_267.png b/mods/u_skins/u_skins/textures/character_267.png new file mode 100644 index 00000000..19c2efff Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_267.png differ diff --git a/mods/u_skins/u_skins/textures/character_267_preview.png b/mods/u_skins/u_skins/textures/character_267_preview.png new file mode 100644 index 00000000..55db26d5 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_267_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_268.png b/mods/u_skins/u_skins/textures/character_268.png new file mode 100644 index 00000000..dbf9925f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_268.png differ diff --git a/mods/u_skins/u_skins/textures/character_268_preview.png b/mods/u_skins/u_skins/textures/character_268_preview.png new file mode 100644 index 00000000..0b3da9bd Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_268_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_269.png b/mods/u_skins/u_skins/textures/character_269.png new file mode 100644 index 00000000..6f1b28cd Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_269.png differ diff --git a/mods/u_skins/u_skins/textures/character_269_preview.png b/mods/u_skins/u_skins/textures/character_269_preview.png new file mode 100644 index 00000000..54d9f82b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_269_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_26_preview.png b/mods/u_skins/u_skins/textures/character_26_preview.png new file mode 100644 index 00000000..fa80a9b5 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_26_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_27.png b/mods/u_skins/u_skins/textures/character_27.png new file mode 100644 index 00000000..065a3375 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_27.png differ diff --git a/mods/u_skins/u_skins/textures/character_270.png b/mods/u_skins/u_skins/textures/character_270.png new file mode 100644 index 00000000..5885f1a9 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_270.png differ diff --git a/mods/u_skins/u_skins/textures/character_270_preview.png b/mods/u_skins/u_skins/textures/character_270_preview.png new file mode 100644 index 00000000..426e5b83 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_270_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_271.png b/mods/u_skins/u_skins/textures/character_271.png new file mode 100644 index 00000000..037e5b9d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_271.png differ diff --git a/mods/u_skins/u_skins/textures/character_271_preview.png b/mods/u_skins/u_skins/textures/character_271_preview.png new file mode 100644 index 00000000..41201c7b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_271_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_272.png b/mods/u_skins/u_skins/textures/character_272.png new file mode 100644 index 00000000..5d38bb16 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_272.png differ diff --git a/mods/u_skins/u_skins/textures/character_272_preview.png b/mods/u_skins/u_skins/textures/character_272_preview.png new file mode 100644 index 00000000..bd74bf26 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_272_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_273.png b/mods/u_skins/u_skins/textures/character_273.png new file mode 100644 index 00000000..7996be8f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_273.png differ diff --git a/mods/u_skins/u_skins/textures/character_273_preview.png b/mods/u_skins/u_skins/textures/character_273_preview.png new file mode 100644 index 00000000..4e5c94f4 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_273_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_274.png b/mods/u_skins/u_skins/textures/character_274.png new file mode 100644 index 00000000..efce6ab1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_274.png differ diff --git a/mods/u_skins/u_skins/textures/character_274_preview.png b/mods/u_skins/u_skins/textures/character_274_preview.png new file mode 100644 index 00000000..a785b596 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_274_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_275.png b/mods/u_skins/u_skins/textures/character_275.png new file mode 100644 index 00000000..6fe6fea0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_275.png differ diff --git a/mods/u_skins/u_skins/textures/character_275_preview.png b/mods/u_skins/u_skins/textures/character_275_preview.png new file mode 100644 index 00000000..934abe8a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_275_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_276.png b/mods/u_skins/u_skins/textures/character_276.png new file mode 100644 index 00000000..8997ae1f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_276.png differ diff --git a/mods/u_skins/u_skins/textures/character_276_preview.png b/mods/u_skins/u_skins/textures/character_276_preview.png new file mode 100644 index 00000000..ed806689 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_276_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_277.png b/mods/u_skins/u_skins/textures/character_277.png new file mode 100644 index 00000000..34562a15 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_277.png differ diff --git a/mods/u_skins/u_skins/textures/character_277_preview.png b/mods/u_skins/u_skins/textures/character_277_preview.png new file mode 100644 index 00000000..e0fb53fb Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_277_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_278.png b/mods/u_skins/u_skins/textures/character_278.png new file mode 100644 index 00000000..69c13b09 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_278.png differ diff --git a/mods/u_skins/u_skins/textures/character_278_preview.png b/mods/u_skins/u_skins/textures/character_278_preview.png new file mode 100644 index 00000000..7cdff526 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_278_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_279.png b/mods/u_skins/u_skins/textures/character_279.png new file mode 100644 index 00000000..3bc4a787 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_279.png differ diff --git a/mods/u_skins/u_skins/textures/character_279_preview.png b/mods/u_skins/u_skins/textures/character_279_preview.png new file mode 100644 index 00000000..e7f55fd7 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_279_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_27_preview.png b/mods/u_skins/u_skins/textures/character_27_preview.png new file mode 100644 index 00000000..1f76b063 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_27_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_28.png b/mods/u_skins/u_skins/textures/character_28.png new file mode 100644 index 00000000..39b9bee5 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_28.png differ diff --git a/mods/u_skins/u_skins/textures/character_280.png b/mods/u_skins/u_skins/textures/character_280.png new file mode 100644 index 00000000..43572409 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_280.png differ diff --git a/mods/u_skins/u_skins/textures/character_280_preview.png b/mods/u_skins/u_skins/textures/character_280_preview.png new file mode 100644 index 00000000..d32bff58 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_280_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_281.png b/mods/u_skins/u_skins/textures/character_281.png new file mode 100644 index 00000000..239e3517 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_281.png differ diff --git a/mods/u_skins/u_skins/textures/character_281_preview.png b/mods/u_skins/u_skins/textures/character_281_preview.png new file mode 100644 index 00000000..3c5bfdd6 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_281_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_282.png b/mods/u_skins/u_skins/textures/character_282.png new file mode 100644 index 00000000..539cb83c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_282.png differ diff --git a/mods/u_skins/u_skins/textures/character_282_preview.png b/mods/u_skins/u_skins/textures/character_282_preview.png new file mode 100644 index 00000000..fa3ae2a6 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_282_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_283.png b/mods/u_skins/u_skins/textures/character_283.png new file mode 100644 index 00000000..b841d5e2 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_283.png differ diff --git a/mods/u_skins/u_skins/textures/character_283_preview.png b/mods/u_skins/u_skins/textures/character_283_preview.png new file mode 100644 index 00000000..ec268d2b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_283_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_284.png b/mods/u_skins/u_skins/textures/character_284.png new file mode 100644 index 00000000..0a277d72 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_284.png differ diff --git a/mods/u_skins/u_skins/textures/character_284_preview.png b/mods/u_skins/u_skins/textures/character_284_preview.png new file mode 100644 index 00000000..1b597222 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_284_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_285.png b/mods/u_skins/u_skins/textures/character_285.png new file mode 100644 index 00000000..123c402b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_285.png differ diff --git a/mods/u_skins/u_skins/textures/character_285_preview.png b/mods/u_skins/u_skins/textures/character_285_preview.png new file mode 100644 index 00000000..055c65b3 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_285_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_286.png b/mods/u_skins/u_skins/textures/character_286.png new file mode 100644 index 00000000..afe1df3d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_286.png differ diff --git a/mods/u_skins/u_skins/textures/character_286_preview.png b/mods/u_skins/u_skins/textures/character_286_preview.png new file mode 100644 index 00000000..0e400999 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_286_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_287.png b/mods/u_skins/u_skins/textures/character_287.png new file mode 100644 index 00000000..855f2d6c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_287.png differ diff --git a/mods/u_skins/u_skins/textures/character_287_preview.png b/mods/u_skins/u_skins/textures/character_287_preview.png new file mode 100644 index 00000000..4fdf296c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_287_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_288.png b/mods/u_skins/u_skins/textures/character_288.png new file mode 100644 index 00000000..04c569ad Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_288.png differ diff --git a/mods/u_skins/u_skins/textures/character_288_preview.png b/mods/u_skins/u_skins/textures/character_288_preview.png new file mode 100644 index 00000000..73a2541d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_288_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_289.png b/mods/u_skins/u_skins/textures/character_289.png new file mode 100644 index 00000000..57fd6a10 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_289.png differ diff --git a/mods/u_skins/u_skins/textures/character_289_preview.png b/mods/u_skins/u_skins/textures/character_289_preview.png new file mode 100644 index 00000000..de0081e6 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_289_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_28_preview.png b/mods/u_skins/u_skins/textures/character_28_preview.png new file mode 100644 index 00000000..a93e0b48 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_28_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_29.png b/mods/u_skins/u_skins/textures/character_29.png new file mode 100644 index 00000000..357ecde8 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_29.png differ diff --git a/mods/u_skins/u_skins/textures/character_290.png b/mods/u_skins/u_skins/textures/character_290.png new file mode 100644 index 00000000..e8d4bfa5 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_290.png differ diff --git a/mods/u_skins/u_skins/textures/character_290_preview.png b/mods/u_skins/u_skins/textures/character_290_preview.png new file mode 100644 index 00000000..368c6067 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_290_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_291.png b/mods/u_skins/u_skins/textures/character_291.png new file mode 100644 index 00000000..dd9b678f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_291.png differ diff --git a/mods/u_skins/u_skins/textures/character_291_preview.png b/mods/u_skins/u_skins/textures/character_291_preview.png new file mode 100644 index 00000000..bdec18e6 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_291_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_292.png b/mods/u_skins/u_skins/textures/character_292.png new file mode 100644 index 00000000..00a28efc Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_292.png differ diff --git a/mods/u_skins/u_skins/textures/character_292_preview.png b/mods/u_skins/u_skins/textures/character_292_preview.png new file mode 100644 index 00000000..08e7c254 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_292_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_293.png b/mods/u_skins/u_skins/textures/character_293.png new file mode 100644 index 00000000..ddeaf098 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_293.png differ diff --git a/mods/u_skins/u_skins/textures/character_293_preview.png b/mods/u_skins/u_skins/textures/character_293_preview.png new file mode 100644 index 00000000..b9e9f79c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_293_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_294.png b/mods/u_skins/u_skins/textures/character_294.png new file mode 100644 index 00000000..ae761f37 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_294.png differ diff --git a/mods/u_skins/u_skins/textures/character_294_preview.png b/mods/u_skins/u_skins/textures/character_294_preview.png new file mode 100644 index 00000000..7d226529 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_294_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_295.png b/mods/u_skins/u_skins/textures/character_295.png new file mode 100644 index 00000000..62275f74 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_295.png differ diff --git a/mods/u_skins/u_skins/textures/character_295_preview.png b/mods/u_skins/u_skins/textures/character_295_preview.png new file mode 100644 index 00000000..0e78e07b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_295_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_296.png b/mods/u_skins/u_skins/textures/character_296.png new file mode 100644 index 00000000..8fa277d5 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_296.png differ diff --git a/mods/u_skins/u_skins/textures/character_296_preview.png b/mods/u_skins/u_skins/textures/character_296_preview.png new file mode 100644 index 00000000..1d2dec8b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_296_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_297.png b/mods/u_skins/u_skins/textures/character_297.png new file mode 100644 index 00000000..81fa4a5b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_297.png differ diff --git a/mods/u_skins/u_skins/textures/character_297_preview.png b/mods/u_skins/u_skins/textures/character_297_preview.png new file mode 100644 index 00000000..38301b78 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_297_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_298.png b/mods/u_skins/u_skins/textures/character_298.png new file mode 100644 index 00000000..95f8b55c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_298.png differ diff --git a/mods/u_skins/u_skins/textures/character_298_preview.png b/mods/u_skins/u_skins/textures/character_298_preview.png new file mode 100644 index 00000000..bdbcefb3 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_298_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_299.png b/mods/u_skins/u_skins/textures/character_299.png new file mode 100644 index 00000000..9ee3bd8c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_299.png differ diff --git a/mods/u_skins/u_skins/textures/character_299_preview.png b/mods/u_skins/u_skins/textures/character_299_preview.png new file mode 100644 index 00000000..70dedecb Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_299_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_29_preview.png b/mods/u_skins/u_skins/textures/character_29_preview.png new file mode 100644 index 00000000..05eac9f2 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_29_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_2_preview.png b/mods/u_skins/u_skins/textures/character_2_preview.png new file mode 100755 index 00000000..0736defa Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_2_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_3.png b/mods/u_skins/u_skins/textures/character_3.png new file mode 100644 index 00000000..2d34c13f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_3.png differ diff --git a/mods/u_skins/u_skins/textures/character_30.png b/mods/u_skins/u_skins/textures/character_30.png new file mode 100644 index 00000000..6287c5c3 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_30.png differ diff --git a/mods/u_skins/u_skins/textures/character_300.png b/mods/u_skins/u_skins/textures/character_300.png new file mode 100644 index 00000000..0bb3d70b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_300.png differ diff --git a/mods/u_skins/u_skins/textures/character_300_preview.png b/mods/u_skins/u_skins/textures/character_300_preview.png new file mode 100644 index 00000000..e31d18f3 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_300_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_301.png b/mods/u_skins/u_skins/textures/character_301.png new file mode 100644 index 00000000..5c92658a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_301.png differ diff --git a/mods/u_skins/u_skins/textures/character_301_preview.png b/mods/u_skins/u_skins/textures/character_301_preview.png new file mode 100644 index 00000000..14b85f29 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_301_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_302.png b/mods/u_skins/u_skins/textures/character_302.png new file mode 100644 index 00000000..9a251f6c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_302.png differ diff --git a/mods/u_skins/u_skins/textures/character_302_preview.png b/mods/u_skins/u_skins/textures/character_302_preview.png new file mode 100644 index 00000000..3d8fff99 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_302_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_303.png b/mods/u_skins/u_skins/textures/character_303.png new file mode 100644 index 00000000..8c8a6e94 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_303.png differ diff --git a/mods/u_skins/u_skins/textures/character_303_preview.png b/mods/u_skins/u_skins/textures/character_303_preview.png new file mode 100644 index 00000000..1e920de4 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_303_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_304.png b/mods/u_skins/u_skins/textures/character_304.png new file mode 100644 index 00000000..120a4af8 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_304.png differ diff --git a/mods/u_skins/u_skins/textures/character_304_preview.png b/mods/u_skins/u_skins/textures/character_304_preview.png new file mode 100644 index 00000000..6fba10fd Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_304_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_305.png b/mods/u_skins/u_skins/textures/character_305.png new file mode 100644 index 00000000..162bac5c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_305.png differ diff --git a/mods/u_skins/u_skins/textures/character_305_preview.png b/mods/u_skins/u_skins/textures/character_305_preview.png new file mode 100644 index 00000000..c3c806dc Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_305_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_306.png b/mods/u_skins/u_skins/textures/character_306.png new file mode 100644 index 00000000..d8ed3e9a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_306.png differ diff --git a/mods/u_skins/u_skins/textures/character_306_preview.png b/mods/u_skins/u_skins/textures/character_306_preview.png new file mode 100644 index 00000000..cd07017e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_306_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_307.png b/mods/u_skins/u_skins/textures/character_307.png new file mode 100644 index 00000000..4b581f6d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_307.png differ diff --git a/mods/u_skins/u_skins/textures/character_307_preview.png b/mods/u_skins/u_skins/textures/character_307_preview.png new file mode 100644 index 00000000..4e4b08c2 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_307_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_308.png b/mods/u_skins/u_skins/textures/character_308.png new file mode 100644 index 00000000..2f6ea00e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_308.png differ diff --git a/mods/u_skins/u_skins/textures/character_308_preview.png b/mods/u_skins/u_skins/textures/character_308_preview.png new file mode 100644 index 00000000..7cb46e40 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_308_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_309.png b/mods/u_skins/u_skins/textures/character_309.png new file mode 100644 index 00000000..61462587 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_309.png differ diff --git a/mods/u_skins/u_skins/textures/character_309_preview.png b/mods/u_skins/u_skins/textures/character_309_preview.png new file mode 100644 index 00000000..37ef07cb Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_309_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_30_preview.png b/mods/u_skins/u_skins/textures/character_30_preview.png new file mode 100644 index 00000000..a295e8b0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_30_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_31.png b/mods/u_skins/u_skins/textures/character_31.png new file mode 100644 index 00000000..155671e8 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_31.png differ diff --git a/mods/u_skins/u_skins/textures/character_310.png b/mods/u_skins/u_skins/textures/character_310.png new file mode 100644 index 00000000..cb51a4bf Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_310.png differ diff --git a/mods/u_skins/u_skins/textures/character_310_preview.png b/mods/u_skins/u_skins/textures/character_310_preview.png new file mode 100644 index 00000000..e233a6c3 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_310_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_311.png b/mods/u_skins/u_skins/textures/character_311.png new file mode 100644 index 00000000..5833b8bd Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_311.png differ diff --git a/mods/u_skins/u_skins/textures/character_311_preview.png b/mods/u_skins/u_skins/textures/character_311_preview.png new file mode 100644 index 00000000..91f81230 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_311_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_312.png b/mods/u_skins/u_skins/textures/character_312.png new file mode 100644 index 00000000..f8debd8c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_312.png differ diff --git a/mods/u_skins/u_skins/textures/character_312_preview.png b/mods/u_skins/u_skins/textures/character_312_preview.png new file mode 100644 index 00000000..0736defa Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_312_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_313.png b/mods/u_skins/u_skins/textures/character_313.png new file mode 100644 index 00000000..884edff0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_313.png differ diff --git a/mods/u_skins/u_skins/textures/character_313_preview.png b/mods/u_skins/u_skins/textures/character_313_preview.png new file mode 100644 index 00000000..369b944d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_313_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_314.png b/mods/u_skins/u_skins/textures/character_314.png new file mode 100644 index 00000000..7acbddb8 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_314.png differ diff --git a/mods/u_skins/u_skins/textures/character_314_preview.png b/mods/u_skins/u_skins/textures/character_314_preview.png new file mode 100644 index 00000000..b0397b1a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_314_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_315.png b/mods/u_skins/u_skins/textures/character_315.png new file mode 100644 index 00000000..a8c25809 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_315.png differ diff --git a/mods/u_skins/u_skins/textures/character_315_preview.png b/mods/u_skins/u_skins/textures/character_315_preview.png new file mode 100644 index 00000000..4bbad407 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_315_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_316.png b/mods/u_skins/u_skins/textures/character_316.png new file mode 100644 index 00000000..00eafca0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_316.png differ diff --git a/mods/u_skins/u_skins/textures/character_316_preview.png b/mods/u_skins/u_skins/textures/character_316_preview.png new file mode 100644 index 00000000..aca4e4e0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_316_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_317.png b/mods/u_skins/u_skins/textures/character_317.png new file mode 100644 index 00000000..426b28af Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_317.png differ diff --git a/mods/u_skins/u_skins/textures/character_317_preview.png b/mods/u_skins/u_skins/textures/character_317_preview.png new file mode 100644 index 00000000..f372a53d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_317_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_318.png b/mods/u_skins/u_skins/textures/character_318.png new file mode 100644 index 00000000..f3c3a900 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_318.png differ diff --git a/mods/u_skins/u_skins/textures/character_318_preview.png b/mods/u_skins/u_skins/textures/character_318_preview.png new file mode 100644 index 00000000..94d48d23 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_318_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_319.png b/mods/u_skins/u_skins/textures/character_319.png new file mode 100644 index 00000000..1d1667cf Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_319.png differ diff --git a/mods/u_skins/u_skins/textures/character_319_preview.png b/mods/u_skins/u_skins/textures/character_319_preview.png new file mode 100644 index 00000000..51e45f10 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_319_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_31_preview.png b/mods/u_skins/u_skins/textures/character_31_preview.png new file mode 100644 index 00000000..7b1acf43 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_31_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_32.png b/mods/u_skins/u_skins/textures/character_32.png new file mode 100644 index 00000000..bf3adc6e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_32.png differ diff --git a/mods/u_skins/u_skins/textures/character_320.png b/mods/u_skins/u_skins/textures/character_320.png new file mode 100644 index 00000000..f60ca72d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_320.png differ diff --git a/mods/u_skins/u_skins/textures/character_320_preview.png b/mods/u_skins/u_skins/textures/character_320_preview.png new file mode 100644 index 00000000..5dd7621b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_320_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_321.png b/mods/u_skins/u_skins/textures/character_321.png new file mode 100644 index 00000000..93fb6f3d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_321.png differ diff --git a/mods/u_skins/u_skins/textures/character_321_preview.png b/mods/u_skins/u_skins/textures/character_321_preview.png new file mode 100644 index 00000000..e8addf21 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_321_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_322.png b/mods/u_skins/u_skins/textures/character_322.png new file mode 100644 index 00000000..2b445e31 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_322.png differ diff --git a/mods/u_skins/u_skins/textures/character_322_preview.png b/mods/u_skins/u_skins/textures/character_322_preview.png new file mode 100644 index 00000000..1a1dbc3f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_322_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_323.png b/mods/u_skins/u_skins/textures/character_323.png new file mode 100644 index 00000000..a58a2b89 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_323.png differ diff --git a/mods/u_skins/u_skins/textures/character_323_preview.png b/mods/u_skins/u_skins/textures/character_323_preview.png new file mode 100644 index 00000000..7e805299 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_323_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_324.png b/mods/u_skins/u_skins/textures/character_324.png new file mode 100644 index 00000000..6500e8d9 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_324.png differ diff --git a/mods/u_skins/u_skins/textures/character_324_preview.png b/mods/u_skins/u_skins/textures/character_324_preview.png new file mode 100644 index 00000000..d1ea7e21 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_324_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_325.png b/mods/u_skins/u_skins/textures/character_325.png new file mode 100644 index 00000000..e52a9ee9 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_325.png differ diff --git a/mods/u_skins/u_skins/textures/character_325_preview.png b/mods/u_skins/u_skins/textures/character_325_preview.png new file mode 100644 index 00000000..98897196 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_325_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_326.png b/mods/u_skins/u_skins/textures/character_326.png new file mode 100644 index 00000000..66ca272e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_326.png differ diff --git a/mods/u_skins/u_skins/textures/character_326_preview.png b/mods/u_skins/u_skins/textures/character_326_preview.png new file mode 100644 index 00000000..dad51145 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_326_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_327.png b/mods/u_skins/u_skins/textures/character_327.png new file mode 100644 index 00000000..63df633d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_327.png differ diff --git a/mods/u_skins/u_skins/textures/character_327_preview.png b/mods/u_skins/u_skins/textures/character_327_preview.png new file mode 100644 index 00000000..d676dde0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_327_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_328.png b/mods/u_skins/u_skins/textures/character_328.png new file mode 100644 index 00000000..ed30c50e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_328.png differ diff --git a/mods/u_skins/u_skins/textures/character_328_preview.png b/mods/u_skins/u_skins/textures/character_328_preview.png new file mode 100644 index 00000000..74eeb856 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_328_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_329.png b/mods/u_skins/u_skins/textures/character_329.png new file mode 100644 index 00000000..157feb04 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_329.png differ diff --git a/mods/u_skins/u_skins/textures/character_329_preview.png b/mods/u_skins/u_skins/textures/character_329_preview.png new file mode 100644 index 00000000..b5092fe9 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_329_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_32_preview.png b/mods/u_skins/u_skins/textures/character_32_preview.png new file mode 100644 index 00000000..1ad8adb7 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_32_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_33.png b/mods/u_skins/u_skins/textures/character_33.png new file mode 100644 index 00000000..77e66034 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_33.png differ diff --git a/mods/u_skins/u_skins/textures/character_330.png b/mods/u_skins/u_skins/textures/character_330.png new file mode 100644 index 00000000..bbc555ad Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_330.png differ diff --git a/mods/u_skins/u_skins/textures/character_330_preview.png b/mods/u_skins/u_skins/textures/character_330_preview.png new file mode 100644 index 00000000..34f26d76 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_330_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_331.png b/mods/u_skins/u_skins/textures/character_331.png new file mode 100644 index 00000000..39d8ee92 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_331.png differ diff --git a/mods/u_skins/u_skins/textures/character_331_preview.png b/mods/u_skins/u_skins/textures/character_331_preview.png new file mode 100644 index 00000000..6201389e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_331_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_332.png b/mods/u_skins/u_skins/textures/character_332.png new file mode 100644 index 00000000..e2f6ea60 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_332.png differ diff --git a/mods/u_skins/u_skins/textures/character_332_preview.png b/mods/u_skins/u_skins/textures/character_332_preview.png new file mode 100644 index 00000000..423fde77 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_332_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_333.png b/mods/u_skins/u_skins/textures/character_333.png new file mode 100644 index 00000000..a9ead923 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_333.png differ diff --git a/mods/u_skins/u_skins/textures/character_333_preview.png b/mods/u_skins/u_skins/textures/character_333_preview.png new file mode 100644 index 00000000..7bba4529 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_333_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_334.png b/mods/u_skins/u_skins/textures/character_334.png new file mode 100644 index 00000000..f6ee84f0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_334.png differ diff --git a/mods/u_skins/u_skins/textures/character_334_preview.png b/mods/u_skins/u_skins/textures/character_334_preview.png new file mode 100644 index 00000000..c62b3904 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_334_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_335.png b/mods/u_skins/u_skins/textures/character_335.png new file mode 100644 index 00000000..df30cc94 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_335.png differ diff --git a/mods/u_skins/u_skins/textures/character_335_preview.png b/mods/u_skins/u_skins/textures/character_335_preview.png new file mode 100644 index 00000000..2fd5ac09 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_335_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_336.png b/mods/u_skins/u_skins/textures/character_336.png new file mode 100644 index 00000000..febd8fea Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_336.png differ diff --git a/mods/u_skins/u_skins/textures/character_336_preview.png b/mods/u_skins/u_skins/textures/character_336_preview.png new file mode 100644 index 00000000..d2947709 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_336_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_337.png b/mods/u_skins/u_skins/textures/character_337.png new file mode 100644 index 00000000..4955ae70 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_337.png differ diff --git a/mods/u_skins/u_skins/textures/character_337_preview.png b/mods/u_skins/u_skins/textures/character_337_preview.png new file mode 100644 index 00000000..c63e2480 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_337_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_338.png b/mods/u_skins/u_skins/textures/character_338.png new file mode 100644 index 00000000..0e9afc5b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_338.png differ diff --git a/mods/u_skins/u_skins/textures/character_338_preview.png b/mods/u_skins/u_skins/textures/character_338_preview.png new file mode 100644 index 00000000..1b2bc9c1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_338_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_339.png b/mods/u_skins/u_skins/textures/character_339.png new file mode 100644 index 00000000..50f8a5ae Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_339.png differ diff --git a/mods/u_skins/u_skins/textures/character_339_preview.png b/mods/u_skins/u_skins/textures/character_339_preview.png new file mode 100644 index 00000000..f2dd6ed1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_339_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_33_preview.png b/mods/u_skins/u_skins/textures/character_33_preview.png new file mode 100644 index 00000000..4689795b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_33_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_34.png b/mods/u_skins/u_skins/textures/character_34.png new file mode 100644 index 00000000..9f2eb1a5 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_34.png differ diff --git a/mods/u_skins/u_skins/textures/character_340.png b/mods/u_skins/u_skins/textures/character_340.png new file mode 100644 index 00000000..520711ea Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_340.png differ diff --git a/mods/u_skins/u_skins/textures/character_340_preview.png b/mods/u_skins/u_skins/textures/character_340_preview.png new file mode 100644 index 00000000..e7d24522 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_340_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_341.png b/mods/u_skins/u_skins/textures/character_341.png new file mode 100644 index 00000000..8c668076 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_341.png differ diff --git a/mods/u_skins/u_skins/textures/character_341_preview.png b/mods/u_skins/u_skins/textures/character_341_preview.png new file mode 100644 index 00000000..ccc8ed7a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_341_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_342.png b/mods/u_skins/u_skins/textures/character_342.png new file mode 100644 index 00000000..ddf2125d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_342.png differ diff --git a/mods/u_skins/u_skins/textures/character_342_preview.png b/mods/u_skins/u_skins/textures/character_342_preview.png new file mode 100644 index 00000000..8a9f8428 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_342_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_343.png b/mods/u_skins/u_skins/textures/character_343.png new file mode 100644 index 00000000..daf86a6c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_343.png differ diff --git a/mods/u_skins/u_skins/textures/character_343_preview.png b/mods/u_skins/u_skins/textures/character_343_preview.png new file mode 100644 index 00000000..9a3745e9 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_343_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_344.png b/mods/u_skins/u_skins/textures/character_344.png new file mode 100644 index 00000000..957b0582 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_344.png differ diff --git a/mods/u_skins/u_skins/textures/character_344_preview.png b/mods/u_skins/u_skins/textures/character_344_preview.png new file mode 100644 index 00000000..fb2212ed Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_344_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_345.png b/mods/u_skins/u_skins/textures/character_345.png new file mode 100644 index 00000000..67ba81ad Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_345.png differ diff --git a/mods/u_skins/u_skins/textures/character_345_preview.png b/mods/u_skins/u_skins/textures/character_345_preview.png new file mode 100644 index 00000000..f66e8775 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_345_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_346.png b/mods/u_skins/u_skins/textures/character_346.png new file mode 100644 index 00000000..80fb6089 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_346.png differ diff --git a/mods/u_skins/u_skins/textures/character_346_preview.png b/mods/u_skins/u_skins/textures/character_346_preview.png new file mode 100644 index 00000000..1f9d2ea8 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_346_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_347.png b/mods/u_skins/u_skins/textures/character_347.png new file mode 100644 index 00000000..06eb6ad1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_347.png differ diff --git a/mods/u_skins/u_skins/textures/character_347_preview.png b/mods/u_skins/u_skins/textures/character_347_preview.png new file mode 100644 index 00000000..4bee2bc8 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_347_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_348.png b/mods/u_skins/u_skins/textures/character_348.png new file mode 100644 index 00000000..0b804cd0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_348.png differ diff --git a/mods/u_skins/u_skins/textures/character_348_preview.png b/mods/u_skins/u_skins/textures/character_348_preview.png new file mode 100644 index 00000000..7a001b8a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_348_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_349.png b/mods/u_skins/u_skins/textures/character_349.png new file mode 100644 index 00000000..e9eaf909 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_349.png differ diff --git a/mods/u_skins/u_skins/textures/character_349_preview.png b/mods/u_skins/u_skins/textures/character_349_preview.png new file mode 100644 index 00000000..07e50b05 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_349_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_34_preview.png b/mods/u_skins/u_skins/textures/character_34_preview.png new file mode 100644 index 00000000..dc703243 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_34_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_35.png b/mods/u_skins/u_skins/textures/character_35.png new file mode 100644 index 00000000..f8dba179 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_35.png differ diff --git a/mods/u_skins/u_skins/textures/character_350.png b/mods/u_skins/u_skins/textures/character_350.png new file mode 100644 index 00000000..5217bcc6 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_350.png differ diff --git a/mods/u_skins/u_skins/textures/character_350_preview.png b/mods/u_skins/u_skins/textures/character_350_preview.png new file mode 100644 index 00000000..4f26839c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_350_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_351.png b/mods/u_skins/u_skins/textures/character_351.png new file mode 100644 index 00000000..ec7e6469 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_351.png differ diff --git a/mods/u_skins/u_skins/textures/character_351_preview.png b/mods/u_skins/u_skins/textures/character_351_preview.png new file mode 100644 index 00000000..490fe137 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_351_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_352.png b/mods/u_skins/u_skins/textures/character_352.png new file mode 100644 index 00000000..de180dc7 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_352.png differ diff --git a/mods/u_skins/u_skins/textures/character_352_preview.png b/mods/u_skins/u_skins/textures/character_352_preview.png new file mode 100644 index 00000000..9ad8e6fa Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_352_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_353.png b/mods/u_skins/u_skins/textures/character_353.png new file mode 100644 index 00000000..d0a3eee0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_353.png differ diff --git a/mods/u_skins/u_skins/textures/character_353_preview.png b/mods/u_skins/u_skins/textures/character_353_preview.png new file mode 100644 index 00000000..99da9bdc Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_353_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_354.png b/mods/u_skins/u_skins/textures/character_354.png new file mode 100644 index 00000000..88d8b7b7 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_354.png differ diff --git a/mods/u_skins/u_skins/textures/character_354_preview.png b/mods/u_skins/u_skins/textures/character_354_preview.png new file mode 100644 index 00000000..ebd0c04c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_354_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_355.png b/mods/u_skins/u_skins/textures/character_355.png new file mode 100644 index 00000000..c487fcf6 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_355.png differ diff --git a/mods/u_skins/u_skins/textures/character_355_preview.png b/mods/u_skins/u_skins/textures/character_355_preview.png new file mode 100644 index 00000000..45161dd1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_355_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_356.png b/mods/u_skins/u_skins/textures/character_356.png new file mode 100644 index 00000000..a1a0fe89 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_356.png differ diff --git a/mods/u_skins/u_skins/textures/character_356_preview.png b/mods/u_skins/u_skins/textures/character_356_preview.png new file mode 100644 index 00000000..3bcb5726 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_356_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_357.png b/mods/u_skins/u_skins/textures/character_357.png new file mode 100644 index 00000000..680e2b53 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_357.png differ diff --git a/mods/u_skins/u_skins/textures/character_357_preview.png b/mods/u_skins/u_skins/textures/character_357_preview.png new file mode 100644 index 00000000..4139bd50 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_357_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_358.png b/mods/u_skins/u_skins/textures/character_358.png new file mode 100644 index 00000000..40b60850 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_358.png differ diff --git a/mods/u_skins/u_skins/textures/character_358_preview.png b/mods/u_skins/u_skins/textures/character_358_preview.png new file mode 100644 index 00000000..f1ff796c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_358_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_359.png b/mods/u_skins/u_skins/textures/character_359.png new file mode 100644 index 00000000..61aa7cc3 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_359.png differ diff --git a/mods/u_skins/u_skins/textures/character_359_preview.png b/mods/u_skins/u_skins/textures/character_359_preview.png new file mode 100644 index 00000000..1118ca46 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_359_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_35_preview.png b/mods/u_skins/u_skins/textures/character_35_preview.png new file mode 100644 index 00000000..eac29b87 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_35_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_36.png b/mods/u_skins/u_skins/textures/character_36.png new file mode 100644 index 00000000..c434f0ef Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_36.png differ diff --git a/mods/u_skins/u_skins/textures/character_360.png b/mods/u_skins/u_skins/textures/character_360.png new file mode 100644 index 00000000..752e90c4 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_360.png differ diff --git a/mods/u_skins/u_skins/textures/character_360_preview.png b/mods/u_skins/u_skins/textures/character_360_preview.png new file mode 100644 index 00000000..edae152e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_360_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_361.png b/mods/u_skins/u_skins/textures/character_361.png new file mode 100644 index 00000000..918c97c3 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_361.png differ diff --git a/mods/u_skins/u_skins/textures/character_361_preview.png b/mods/u_skins/u_skins/textures/character_361_preview.png new file mode 100644 index 00000000..6040c29c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_361_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_362.png b/mods/u_skins/u_skins/textures/character_362.png new file mode 100644 index 00000000..ca9d5ead Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_362.png differ diff --git a/mods/u_skins/u_skins/textures/character_362_preview.png b/mods/u_skins/u_skins/textures/character_362_preview.png new file mode 100644 index 00000000..1742c130 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_362_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_363.png b/mods/u_skins/u_skins/textures/character_363.png new file mode 100644 index 00000000..11104d6f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_363.png differ diff --git a/mods/u_skins/u_skins/textures/character_363_preview.png b/mods/u_skins/u_skins/textures/character_363_preview.png new file mode 100644 index 00000000..330ea9eb Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_363_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_364.png b/mods/u_skins/u_skins/textures/character_364.png new file mode 100644 index 00000000..b6bf9725 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_364.png differ diff --git a/mods/u_skins/u_skins/textures/character_364_preview.png b/mods/u_skins/u_skins/textures/character_364_preview.png new file mode 100644 index 00000000..6f5e167b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_364_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_365.png b/mods/u_skins/u_skins/textures/character_365.png new file mode 100644 index 00000000..ce402164 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_365.png differ diff --git a/mods/u_skins/u_skins/textures/character_365_preview.png b/mods/u_skins/u_skins/textures/character_365_preview.png new file mode 100644 index 00000000..6bef15e2 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_365_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_366.png b/mods/u_skins/u_skins/textures/character_366.png new file mode 100644 index 00000000..84644b7e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_366.png differ diff --git a/mods/u_skins/u_skins/textures/character_366_preview.png b/mods/u_skins/u_skins/textures/character_366_preview.png new file mode 100644 index 00000000..6e29c88b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_366_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_367.png b/mods/u_skins/u_skins/textures/character_367.png new file mode 100644 index 00000000..547449ea Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_367.png differ diff --git a/mods/u_skins/u_skins/textures/character_367_preview.png b/mods/u_skins/u_skins/textures/character_367_preview.png new file mode 100644 index 00000000..b494f7c8 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_367_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_368.png b/mods/u_skins/u_skins/textures/character_368.png new file mode 100644 index 00000000..2d6e29f5 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_368.png differ diff --git a/mods/u_skins/u_skins/textures/character_368_preview.png b/mods/u_skins/u_skins/textures/character_368_preview.png new file mode 100644 index 00000000..f84e09ce Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_368_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_369.png b/mods/u_skins/u_skins/textures/character_369.png new file mode 100644 index 00000000..0158f62d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_369.png differ diff --git a/mods/u_skins/u_skins/textures/character_369_preview.png b/mods/u_skins/u_skins/textures/character_369_preview.png new file mode 100644 index 00000000..6969f2c5 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_369_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_36_preview.png b/mods/u_skins/u_skins/textures/character_36_preview.png new file mode 100644 index 00000000..b6649c46 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_36_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_37.png b/mods/u_skins/u_skins/textures/character_37.png new file mode 100644 index 00000000..9087fdc1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_37.png differ diff --git a/mods/u_skins/u_skins/textures/character_370.png b/mods/u_skins/u_skins/textures/character_370.png new file mode 100644 index 00000000..9a75bb8b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_370.png differ diff --git a/mods/u_skins/u_skins/textures/character_370_preview.png b/mods/u_skins/u_skins/textures/character_370_preview.png new file mode 100644 index 00000000..f67fc2f1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_370_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_371.png b/mods/u_skins/u_skins/textures/character_371.png new file mode 100644 index 00000000..487e2fa4 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_371.png differ diff --git a/mods/u_skins/u_skins/textures/character_371_preview.png b/mods/u_skins/u_skins/textures/character_371_preview.png new file mode 100644 index 00000000..f11e71fe Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_371_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_372.png b/mods/u_skins/u_skins/textures/character_372.png new file mode 100644 index 00000000..a6202d9f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_372.png differ diff --git a/mods/u_skins/u_skins/textures/character_372_preview.png b/mods/u_skins/u_skins/textures/character_372_preview.png new file mode 100644 index 00000000..2cdf9e25 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_372_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_373.png b/mods/u_skins/u_skins/textures/character_373.png new file mode 100644 index 00000000..8939f568 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_373.png differ diff --git a/mods/u_skins/u_skins/textures/character_373_preview.png b/mods/u_skins/u_skins/textures/character_373_preview.png new file mode 100644 index 00000000..1f13bfdc Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_373_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_374.png b/mods/u_skins/u_skins/textures/character_374.png new file mode 100644 index 00000000..6528d9c1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_374.png differ diff --git a/mods/u_skins/u_skins/textures/character_374_preview.png b/mods/u_skins/u_skins/textures/character_374_preview.png new file mode 100644 index 00000000..1c84ddb1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_374_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_375.png b/mods/u_skins/u_skins/textures/character_375.png new file mode 100644 index 00000000..351383a7 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_375.png differ diff --git a/mods/u_skins/u_skins/textures/character_375_preview.png b/mods/u_skins/u_skins/textures/character_375_preview.png new file mode 100644 index 00000000..bd0f7ec1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_375_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_376.png b/mods/u_skins/u_skins/textures/character_376.png new file mode 100644 index 00000000..a6d9fab0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_376.png differ diff --git a/mods/u_skins/u_skins/textures/character_376_preview.png b/mods/u_skins/u_skins/textures/character_376_preview.png new file mode 100644 index 00000000..39779f9a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_376_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_377.png b/mods/u_skins/u_skins/textures/character_377.png new file mode 100644 index 00000000..f15d1263 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_377.png differ diff --git a/mods/u_skins/u_skins/textures/character_377_preview.png b/mods/u_skins/u_skins/textures/character_377_preview.png new file mode 100644 index 00000000..2cfb96ca Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_377_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_378.png b/mods/u_skins/u_skins/textures/character_378.png new file mode 100644 index 00000000..e52f8f5e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_378.png differ diff --git a/mods/u_skins/u_skins/textures/character_378_preview.png b/mods/u_skins/u_skins/textures/character_378_preview.png new file mode 100644 index 00000000..ede89590 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_378_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_379.png b/mods/u_skins/u_skins/textures/character_379.png new file mode 100644 index 00000000..d03b373b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_379.png differ diff --git a/mods/u_skins/u_skins/textures/character_379_preview.png b/mods/u_skins/u_skins/textures/character_379_preview.png new file mode 100644 index 00000000..556d4fe3 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_379_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_37_preview.png b/mods/u_skins/u_skins/textures/character_37_preview.png new file mode 100644 index 00000000..1646f9ac Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_37_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_38.png b/mods/u_skins/u_skins/textures/character_38.png new file mode 100644 index 00000000..894ffccd Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_38.png differ diff --git a/mods/u_skins/u_skins/textures/character_380.png b/mods/u_skins/u_skins/textures/character_380.png new file mode 100644 index 00000000..fdce2201 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_380.png differ diff --git a/mods/u_skins/u_skins/textures/character_380_preview.png b/mods/u_skins/u_skins/textures/character_380_preview.png new file mode 100644 index 00000000..6ab0764c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_380_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_381.png b/mods/u_skins/u_skins/textures/character_381.png new file mode 100644 index 00000000..ef6ff645 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_381.png differ diff --git a/mods/u_skins/u_skins/textures/character_381_preview.png b/mods/u_skins/u_skins/textures/character_381_preview.png new file mode 100644 index 00000000..5cd024c9 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_381_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_382.png b/mods/u_skins/u_skins/textures/character_382.png new file mode 100644 index 00000000..fb418637 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_382.png differ diff --git a/mods/u_skins/u_skins/textures/character_382_preview.png b/mods/u_skins/u_skins/textures/character_382_preview.png new file mode 100644 index 00000000..bcb5a04a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_382_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_383.png b/mods/u_skins/u_skins/textures/character_383.png new file mode 100644 index 00000000..91ec1f36 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_383.png differ diff --git a/mods/u_skins/u_skins/textures/character_383_preview.png b/mods/u_skins/u_skins/textures/character_383_preview.png new file mode 100644 index 00000000..9bf55d41 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_383_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_384.png b/mods/u_skins/u_skins/textures/character_384.png new file mode 100644 index 00000000..fb512d3e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_384.png differ diff --git a/mods/u_skins/u_skins/textures/character_384_preview.png b/mods/u_skins/u_skins/textures/character_384_preview.png new file mode 100644 index 00000000..5855914e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_384_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_385.png b/mods/u_skins/u_skins/textures/character_385.png new file mode 100644 index 00000000..a1b3b843 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_385.png differ diff --git a/mods/u_skins/u_skins/textures/character_385_preview.png b/mods/u_skins/u_skins/textures/character_385_preview.png new file mode 100644 index 00000000..9cf2f76d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_385_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_386.png b/mods/u_skins/u_skins/textures/character_386.png new file mode 100644 index 00000000..f52a8ce2 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_386.png differ diff --git a/mods/u_skins/u_skins/textures/character_386_preview.png b/mods/u_skins/u_skins/textures/character_386_preview.png new file mode 100644 index 00000000..5c3b6d98 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_386_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_387.png b/mods/u_skins/u_skins/textures/character_387.png new file mode 100644 index 00000000..d7351a17 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_387.png differ diff --git a/mods/u_skins/u_skins/textures/character_387_preview.png b/mods/u_skins/u_skins/textures/character_387_preview.png new file mode 100644 index 00000000..c336ad67 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_387_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_388.png b/mods/u_skins/u_skins/textures/character_388.png new file mode 100644 index 00000000..108b7855 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_388.png differ diff --git a/mods/u_skins/u_skins/textures/character_388_preview.png b/mods/u_skins/u_skins/textures/character_388_preview.png new file mode 100644 index 00000000..13b3233e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_388_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_389.png b/mods/u_skins/u_skins/textures/character_389.png new file mode 100644 index 00000000..e92e0537 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_389.png differ diff --git a/mods/u_skins/u_skins/textures/character_389_preview.png b/mods/u_skins/u_skins/textures/character_389_preview.png new file mode 100644 index 00000000..05f2340a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_389_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_38_preview.png b/mods/u_skins/u_skins/textures/character_38_preview.png new file mode 100644 index 00000000..d66e2520 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_38_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_39.png b/mods/u_skins/u_skins/textures/character_39.png new file mode 100644 index 00000000..19a35d20 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_39.png differ diff --git a/mods/u_skins/u_skins/textures/character_390.png b/mods/u_skins/u_skins/textures/character_390.png new file mode 100644 index 00000000..94240609 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_390.png differ diff --git a/mods/u_skins/u_skins/textures/character_390_preview.png b/mods/u_skins/u_skins/textures/character_390_preview.png new file mode 100644 index 00000000..6a7f0895 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_390_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_391.png b/mods/u_skins/u_skins/textures/character_391.png new file mode 100644 index 00000000..db83d1ea Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_391.png differ diff --git a/mods/u_skins/u_skins/textures/character_391_preview.png b/mods/u_skins/u_skins/textures/character_391_preview.png new file mode 100644 index 00000000..6a7f0895 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_391_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_392.png b/mods/u_skins/u_skins/textures/character_392.png new file mode 100644 index 00000000..705e1528 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_392.png differ diff --git a/mods/u_skins/u_skins/textures/character_392_preview.png b/mods/u_skins/u_skins/textures/character_392_preview.png new file mode 100644 index 00000000..d81b7eb9 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_392_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_393.png b/mods/u_skins/u_skins/textures/character_393.png new file mode 100644 index 00000000..337ebd1a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_393.png differ diff --git a/mods/u_skins/u_skins/textures/character_393_preview.png b/mods/u_skins/u_skins/textures/character_393_preview.png new file mode 100644 index 00000000..1e3c1c4d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_393_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_394.png b/mods/u_skins/u_skins/textures/character_394.png new file mode 100644 index 00000000..b5931cb4 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_394.png differ diff --git a/mods/u_skins/u_skins/textures/character_394_preview.png b/mods/u_skins/u_skins/textures/character_394_preview.png new file mode 100644 index 00000000..ae4cc9ca Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_394_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_395.png b/mods/u_skins/u_skins/textures/character_395.png new file mode 100644 index 00000000..93498065 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_395.png differ diff --git a/mods/u_skins/u_skins/textures/character_395_preview.png b/mods/u_skins/u_skins/textures/character_395_preview.png new file mode 100644 index 00000000..b999631c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_395_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_396.png b/mods/u_skins/u_skins/textures/character_396.png new file mode 100644 index 00000000..2d7ec748 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_396.png differ diff --git a/mods/u_skins/u_skins/textures/character_396_preview.png b/mods/u_skins/u_skins/textures/character_396_preview.png new file mode 100644 index 00000000..3941b32b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_396_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_397.png b/mods/u_skins/u_skins/textures/character_397.png new file mode 100644 index 00000000..c0cbe449 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_397.png differ diff --git a/mods/u_skins/u_skins/textures/character_397_preview.png b/mods/u_skins/u_skins/textures/character_397_preview.png new file mode 100644 index 00000000..1bae9999 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_397_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_398.png b/mods/u_skins/u_skins/textures/character_398.png new file mode 100644 index 00000000..825a54f3 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_398.png differ diff --git a/mods/u_skins/u_skins/textures/character_398_preview.png b/mods/u_skins/u_skins/textures/character_398_preview.png new file mode 100644 index 00000000..74cce344 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_398_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_399.png b/mods/u_skins/u_skins/textures/character_399.png new file mode 100644 index 00000000..1ab12bc0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_399.png differ diff --git a/mods/u_skins/u_skins/textures/character_399_preview.png b/mods/u_skins/u_skins/textures/character_399_preview.png new file mode 100644 index 00000000..31ae17b8 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_399_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_39_preview.png b/mods/u_skins/u_skins/textures/character_39_preview.png new file mode 100644 index 00000000..043323b1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_39_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_3_preview.png b/mods/u_skins/u_skins/textures/character_3_preview.png new file mode 100644 index 00000000..a6e6dc2a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_3_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_4.png b/mods/u_skins/u_skins/textures/character_4.png new file mode 100644 index 00000000..ca604beb Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_4.png differ diff --git a/mods/u_skins/u_skins/textures/character_40.png b/mods/u_skins/u_skins/textures/character_40.png new file mode 100644 index 00000000..690cd25e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_40.png differ diff --git a/mods/u_skins/u_skins/textures/character_400.png b/mods/u_skins/u_skins/textures/character_400.png new file mode 100644 index 00000000..250b402c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_400.png differ diff --git a/mods/u_skins/u_skins/textures/character_400_preview.png b/mods/u_skins/u_skins/textures/character_400_preview.png new file mode 100644 index 00000000..315d7026 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_400_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_401.png b/mods/u_skins/u_skins/textures/character_401.png new file mode 100644 index 00000000..9aac4428 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_401.png differ diff --git a/mods/u_skins/u_skins/textures/character_401_preview.png b/mods/u_skins/u_skins/textures/character_401_preview.png new file mode 100644 index 00000000..9d8968bd Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_401_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_402.png b/mods/u_skins/u_skins/textures/character_402.png new file mode 100644 index 00000000..72336610 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_402.png differ diff --git a/mods/u_skins/u_skins/textures/character_402_preview.png b/mods/u_skins/u_skins/textures/character_402_preview.png new file mode 100644 index 00000000..886e9ac4 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_402_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_403.png b/mods/u_skins/u_skins/textures/character_403.png new file mode 100644 index 00000000..38ae5d63 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_403.png differ diff --git a/mods/u_skins/u_skins/textures/character_403_preview.png b/mods/u_skins/u_skins/textures/character_403_preview.png new file mode 100644 index 00000000..226e8aae Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_403_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_40_preview.png b/mods/u_skins/u_skins/textures/character_40_preview.png new file mode 100644 index 00000000..e3c42f2b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_40_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_41.png b/mods/u_skins/u_skins/textures/character_41.png new file mode 100644 index 00000000..5ab5128b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_41.png differ diff --git a/mods/u_skins/u_skins/textures/character_41_preview.png b/mods/u_skins/u_skins/textures/character_41_preview.png new file mode 100644 index 00000000..7413adb1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_41_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_42.png b/mods/u_skins/u_skins/textures/character_42.png new file mode 100644 index 00000000..b5b2a796 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_42.png differ diff --git a/mods/u_skins/u_skins/textures/character_42_preview.png b/mods/u_skins/u_skins/textures/character_42_preview.png new file mode 100644 index 00000000..3fe49c9c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_42_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_43.png b/mods/u_skins/u_skins/textures/character_43.png new file mode 100644 index 00000000..67044f15 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_43.png differ diff --git a/mods/u_skins/u_skins/textures/character_43_preview.png b/mods/u_skins/u_skins/textures/character_43_preview.png new file mode 100644 index 00000000..1d1bc6a1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_43_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_44.png b/mods/u_skins/u_skins/textures/character_44.png new file mode 100644 index 00000000..689653b4 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_44.png differ diff --git a/mods/u_skins/u_skins/textures/character_44_preview.png b/mods/u_skins/u_skins/textures/character_44_preview.png new file mode 100644 index 00000000..9a2c93b4 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_44_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_45.png b/mods/u_skins/u_skins/textures/character_45.png new file mode 100644 index 00000000..a7d417ba Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_45.png differ diff --git a/mods/u_skins/u_skins/textures/character_45_preview.png b/mods/u_skins/u_skins/textures/character_45_preview.png new file mode 100644 index 00000000..74fc146e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_45_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_46.png b/mods/u_skins/u_skins/textures/character_46.png new file mode 100644 index 00000000..0029863f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_46.png differ diff --git a/mods/u_skins/u_skins/textures/character_46_preview.png b/mods/u_skins/u_skins/textures/character_46_preview.png new file mode 100644 index 00000000..54fc52c3 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_46_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_47.png b/mods/u_skins/u_skins/textures/character_47.png new file mode 100644 index 00000000..ba9160da Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_47.png differ diff --git a/mods/u_skins/u_skins/textures/character_47_preview.png b/mods/u_skins/u_skins/textures/character_47_preview.png new file mode 100644 index 00000000..74aeb372 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_47_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_48.png b/mods/u_skins/u_skins/textures/character_48.png new file mode 100644 index 00000000..46d5baff Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_48.png differ diff --git a/mods/u_skins/u_skins/textures/character_48_preview.png b/mods/u_skins/u_skins/textures/character_48_preview.png new file mode 100644 index 00000000..f7b4b514 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_48_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_49.png b/mods/u_skins/u_skins/textures/character_49.png new file mode 100644 index 00000000..6341b183 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_49.png differ diff --git a/mods/u_skins/u_skins/textures/character_49_preview.png b/mods/u_skins/u_skins/textures/character_49_preview.png new file mode 100644 index 00000000..6cba76b3 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_49_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_4_preview.png b/mods/u_skins/u_skins/textures/character_4_preview.png new file mode 100644 index 00000000..c15fc16b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_4_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_5.png b/mods/u_skins/u_skins/textures/character_5.png new file mode 100644 index 00000000..bccb4bba Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_5.png differ diff --git a/mods/u_skins/u_skins/textures/character_50.png b/mods/u_skins/u_skins/textures/character_50.png new file mode 100644 index 00000000..91df4ce5 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_50.png differ diff --git a/mods/u_skins/u_skins/textures/character_50_preview.png b/mods/u_skins/u_skins/textures/character_50_preview.png new file mode 100644 index 00000000..c4207a58 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_50_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_51.png b/mods/u_skins/u_skins/textures/character_51.png new file mode 100644 index 00000000..a1c44e16 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_51.png differ diff --git a/mods/u_skins/u_skins/textures/character_51_preview.png b/mods/u_skins/u_skins/textures/character_51_preview.png new file mode 100644 index 00000000..62f2be51 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_51_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_52.png b/mods/u_skins/u_skins/textures/character_52.png new file mode 100644 index 00000000..fac09e77 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_52.png differ diff --git a/mods/u_skins/u_skins/textures/character_52_preview.png b/mods/u_skins/u_skins/textures/character_52_preview.png new file mode 100644 index 00000000..43a5bd20 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_52_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_53.png b/mods/u_skins/u_skins/textures/character_53.png new file mode 100644 index 00000000..123dc197 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_53.png differ diff --git a/mods/u_skins/u_skins/textures/character_53_preview.png b/mods/u_skins/u_skins/textures/character_53_preview.png new file mode 100644 index 00000000..6947e10b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_53_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_54.png b/mods/u_skins/u_skins/textures/character_54.png new file mode 100644 index 00000000..f0e161c6 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_54.png differ diff --git a/mods/u_skins/u_skins/textures/character_54_preview.png b/mods/u_skins/u_skins/textures/character_54_preview.png new file mode 100644 index 00000000..5bf7cb3a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_54_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_55.png b/mods/u_skins/u_skins/textures/character_55.png new file mode 100644 index 00000000..9ad319c9 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_55.png differ diff --git a/mods/u_skins/u_skins/textures/character_55_preview.png b/mods/u_skins/u_skins/textures/character_55_preview.png new file mode 100644 index 00000000..4ae700f6 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_55_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_56.png b/mods/u_skins/u_skins/textures/character_56.png new file mode 100644 index 00000000..970fcc0f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_56.png differ diff --git a/mods/u_skins/u_skins/textures/character_56_preview.png b/mods/u_skins/u_skins/textures/character_56_preview.png new file mode 100644 index 00000000..451619ec Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_56_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_57.png b/mods/u_skins/u_skins/textures/character_57.png new file mode 100644 index 00000000..bce67c57 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_57.png differ diff --git a/mods/u_skins/u_skins/textures/character_57_preview.png b/mods/u_skins/u_skins/textures/character_57_preview.png new file mode 100644 index 00000000..9858e4dd Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_57_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_58.png b/mods/u_skins/u_skins/textures/character_58.png new file mode 100644 index 00000000..dfff44d2 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_58.png differ diff --git a/mods/u_skins/u_skins/textures/character_58_preview.png b/mods/u_skins/u_skins/textures/character_58_preview.png new file mode 100644 index 00000000..9e2919df Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_58_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_59.png b/mods/u_skins/u_skins/textures/character_59.png new file mode 100644 index 00000000..a066956b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_59.png differ diff --git a/mods/u_skins/u_skins/textures/character_59_preview.png b/mods/u_skins/u_skins/textures/character_59_preview.png new file mode 100644 index 00000000..61e58343 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_59_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_5_preview.png b/mods/u_skins/u_skins/textures/character_5_preview.png new file mode 100644 index 00000000..820a1094 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_5_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_6.png b/mods/u_skins/u_skins/textures/character_6.png new file mode 100644 index 00000000..bb2f94a2 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_6.png differ diff --git a/mods/u_skins/u_skins/textures/character_60.png b/mods/u_skins/u_skins/textures/character_60.png new file mode 100644 index 00000000..184b1a6e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_60.png differ diff --git a/mods/u_skins/u_skins/textures/character_60_preview.png b/mods/u_skins/u_skins/textures/character_60_preview.png new file mode 100644 index 00000000..9ed0c4f7 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_60_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_61.png b/mods/u_skins/u_skins/textures/character_61.png new file mode 100644 index 00000000..bb21063b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_61.png differ diff --git a/mods/u_skins/u_skins/textures/character_61_preview.png b/mods/u_skins/u_skins/textures/character_61_preview.png new file mode 100644 index 00000000..20ece0ab Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_61_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_62.png b/mods/u_skins/u_skins/textures/character_62.png new file mode 100644 index 00000000..7dec4b92 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_62.png differ diff --git a/mods/u_skins/u_skins/textures/character_62_preview.png b/mods/u_skins/u_skins/textures/character_62_preview.png new file mode 100644 index 00000000..481a60a8 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_62_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_63.png b/mods/u_skins/u_skins/textures/character_63.png new file mode 100644 index 00000000..d810e237 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_63.png differ diff --git a/mods/u_skins/u_skins/textures/character_63_preview.png b/mods/u_skins/u_skins/textures/character_63_preview.png new file mode 100644 index 00000000..b3a9bb82 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_63_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_64.png b/mods/u_skins/u_skins/textures/character_64.png new file mode 100644 index 00000000..e61d663e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_64.png differ diff --git a/mods/u_skins/u_skins/textures/character_64_preview.png b/mods/u_skins/u_skins/textures/character_64_preview.png new file mode 100644 index 00000000..605648cc Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_64_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_65.png b/mods/u_skins/u_skins/textures/character_65.png new file mode 100644 index 00000000..76f78214 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_65.png differ diff --git a/mods/u_skins/u_skins/textures/character_65_preview.png b/mods/u_skins/u_skins/textures/character_65_preview.png new file mode 100644 index 00000000..292c0040 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_65_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_66.png b/mods/u_skins/u_skins/textures/character_66.png new file mode 100644 index 00000000..f2c502fc Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_66.png differ diff --git a/mods/u_skins/u_skins/textures/character_66_preview.png b/mods/u_skins/u_skins/textures/character_66_preview.png new file mode 100644 index 00000000..17035850 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_66_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_67.png b/mods/u_skins/u_skins/textures/character_67.png new file mode 100644 index 00000000..cd786242 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_67.png differ diff --git a/mods/u_skins/u_skins/textures/character_67_preview.png b/mods/u_skins/u_skins/textures/character_67_preview.png new file mode 100644 index 00000000..5f1e03b2 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_67_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_68.png b/mods/u_skins/u_skins/textures/character_68.png new file mode 100644 index 00000000..3782f043 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_68.png differ diff --git a/mods/u_skins/u_skins/textures/character_68_preview.png b/mods/u_skins/u_skins/textures/character_68_preview.png new file mode 100644 index 00000000..960730d0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_68_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_69.png b/mods/u_skins/u_skins/textures/character_69.png new file mode 100644 index 00000000..08f19fab Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_69.png differ diff --git a/mods/u_skins/u_skins/textures/character_69_preview.png b/mods/u_skins/u_skins/textures/character_69_preview.png new file mode 100644 index 00000000..02ec101e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_69_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_6_preview.png b/mods/u_skins/u_skins/textures/character_6_preview.png new file mode 100644 index 00000000..7ede346d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_6_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_7.png b/mods/u_skins/u_skins/textures/character_7.png new file mode 100644 index 00000000..b26cb077 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_7.png differ diff --git a/mods/u_skins/u_skins/textures/character_70.png b/mods/u_skins/u_skins/textures/character_70.png new file mode 100644 index 00000000..201a717a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_70.png differ diff --git a/mods/u_skins/u_skins/textures/character_70_preview.png b/mods/u_skins/u_skins/textures/character_70_preview.png new file mode 100644 index 00000000..7e1121d7 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_70_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_71.png b/mods/u_skins/u_skins/textures/character_71.png new file mode 100644 index 00000000..4cf5e4e4 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_71.png differ diff --git a/mods/u_skins/u_skins/textures/character_71_preview.png b/mods/u_skins/u_skins/textures/character_71_preview.png new file mode 100644 index 00000000..2f34ba1d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_71_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_72.png b/mods/u_skins/u_skins/textures/character_72.png new file mode 100644 index 00000000..89f9cdae Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_72.png differ diff --git a/mods/u_skins/u_skins/textures/character_72_preview.png b/mods/u_skins/u_skins/textures/character_72_preview.png new file mode 100644 index 00000000..f8a11e25 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_72_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_73.png b/mods/u_skins/u_skins/textures/character_73.png new file mode 100644 index 00000000..a34fc46e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_73.png differ diff --git a/mods/u_skins/u_skins/textures/character_73_preview.png b/mods/u_skins/u_skins/textures/character_73_preview.png new file mode 100644 index 00000000..fa1b5d88 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_73_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_74.png b/mods/u_skins/u_skins/textures/character_74.png new file mode 100644 index 00000000..1a8d2f81 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_74.png differ diff --git a/mods/u_skins/u_skins/textures/character_74_preview.png b/mods/u_skins/u_skins/textures/character_74_preview.png new file mode 100644 index 00000000..bc07a1b1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_74_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_75.png b/mods/u_skins/u_skins/textures/character_75.png new file mode 100644 index 00000000..41c23dcd Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_75.png differ diff --git a/mods/u_skins/u_skins/textures/character_75_preview.png b/mods/u_skins/u_skins/textures/character_75_preview.png new file mode 100644 index 00000000..25d2a926 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_75_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_76.png b/mods/u_skins/u_skins/textures/character_76.png new file mode 100644 index 00000000..f0e492e7 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_76.png differ diff --git a/mods/u_skins/u_skins/textures/character_76_preview.png b/mods/u_skins/u_skins/textures/character_76_preview.png new file mode 100644 index 00000000..a6616e9a Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_76_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_77.png b/mods/u_skins/u_skins/textures/character_77.png new file mode 100644 index 00000000..966b87cc Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_77.png differ diff --git a/mods/u_skins/u_skins/textures/character_77_preview.png b/mods/u_skins/u_skins/textures/character_77_preview.png new file mode 100644 index 00000000..010d89f0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_77_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_78.png b/mods/u_skins/u_skins/textures/character_78.png new file mode 100644 index 00000000..e9abfa67 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_78.png differ diff --git a/mods/u_skins/u_skins/textures/character_78_preview.png b/mods/u_skins/u_skins/textures/character_78_preview.png new file mode 100644 index 00000000..e5c48ff1 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_78_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_79.png b/mods/u_skins/u_skins/textures/character_79.png new file mode 100644 index 00000000..b76eab23 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_79.png differ diff --git a/mods/u_skins/u_skins/textures/character_79_preview.png b/mods/u_skins/u_skins/textures/character_79_preview.png new file mode 100644 index 00000000..2c24bf66 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_79_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_7_preview.png b/mods/u_skins/u_skins/textures/character_7_preview.png new file mode 100644 index 00000000..a9a4e5f9 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_7_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_8.png b/mods/u_skins/u_skins/textures/character_8.png new file mode 100644 index 00000000..119a2e84 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_8.png differ diff --git a/mods/u_skins/u_skins/textures/character_80.png b/mods/u_skins/u_skins/textures/character_80.png new file mode 100644 index 00000000..736a3e65 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_80.png differ diff --git a/mods/u_skins/u_skins/textures/character_80_preview.png b/mods/u_skins/u_skins/textures/character_80_preview.png new file mode 100644 index 00000000..390a6cf0 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_80_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_81.png b/mods/u_skins/u_skins/textures/character_81.png new file mode 100644 index 00000000..5fb4b0ec Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_81.png differ diff --git a/mods/u_skins/u_skins/textures/character_81_preview.png b/mods/u_skins/u_skins/textures/character_81_preview.png new file mode 100644 index 00000000..701c6782 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_81_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_82.png b/mods/u_skins/u_skins/textures/character_82.png new file mode 100644 index 00000000..0a881748 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_82.png differ diff --git a/mods/u_skins/u_skins/textures/character_82_preview.png b/mods/u_skins/u_skins/textures/character_82_preview.png new file mode 100644 index 00000000..3b0599b8 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_82_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_83.png b/mods/u_skins/u_skins/textures/character_83.png new file mode 100644 index 00000000..af4b11e8 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_83.png differ diff --git a/mods/u_skins/u_skins/textures/character_83_preview.png b/mods/u_skins/u_skins/textures/character_83_preview.png new file mode 100644 index 00000000..1b8c269e Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_83_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_84.png b/mods/u_skins/u_skins/textures/character_84.png new file mode 100644 index 00000000..46b4aeb5 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_84.png differ diff --git a/mods/u_skins/u_skins/textures/character_84_preview.png b/mods/u_skins/u_skins/textures/character_84_preview.png new file mode 100644 index 00000000..47900d9f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_84_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_85.png b/mods/u_skins/u_skins/textures/character_85.png new file mode 100644 index 00000000..d665f189 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_85.png differ diff --git a/mods/u_skins/u_skins/textures/character_85_preview.png b/mods/u_skins/u_skins/textures/character_85_preview.png new file mode 100644 index 00000000..9b617eea Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_85_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_86.png b/mods/u_skins/u_skins/textures/character_86.png new file mode 100644 index 00000000..35daa357 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_86.png differ diff --git a/mods/u_skins/u_skins/textures/character_86_preview.png b/mods/u_skins/u_skins/textures/character_86_preview.png new file mode 100644 index 00000000..0736defa Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_86_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_87.png b/mods/u_skins/u_skins/textures/character_87.png new file mode 100644 index 00000000..e38cf061 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_87.png differ diff --git a/mods/u_skins/u_skins/textures/character_87_preview.png b/mods/u_skins/u_skins/textures/character_87_preview.png new file mode 100644 index 00000000..3cc60633 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_87_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_88.png b/mods/u_skins/u_skins/textures/character_88.png new file mode 100644 index 00000000..4ccade60 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_88.png differ diff --git a/mods/u_skins/u_skins/textures/character_88_preview.png b/mods/u_skins/u_skins/textures/character_88_preview.png new file mode 100644 index 00000000..85c80704 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_88_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_89.png b/mods/u_skins/u_skins/textures/character_89.png new file mode 100644 index 00000000..c050ff9d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_89.png differ diff --git a/mods/u_skins/u_skins/textures/character_89_preview.png b/mods/u_skins/u_skins/textures/character_89_preview.png new file mode 100644 index 00000000..a911bebd Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_89_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_8_preview.png b/mods/u_skins/u_skins/textures/character_8_preview.png new file mode 100644 index 00000000..3f83760d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_8_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_9.png b/mods/u_skins/u_skins/textures/character_9.png new file mode 100644 index 00000000..cf6e54b2 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_9.png differ diff --git a/mods/u_skins/u_skins/textures/character_90.png b/mods/u_skins/u_skins/textures/character_90.png new file mode 100644 index 00000000..b6624f1b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_90.png differ diff --git a/mods/u_skins/u_skins/textures/character_90_preview.png b/mods/u_skins/u_skins/textures/character_90_preview.png new file mode 100644 index 00000000..90f5c451 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_90_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_91.png b/mods/u_skins/u_skins/textures/character_91.png new file mode 100644 index 00000000..109b11f6 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_91.png differ diff --git a/mods/u_skins/u_skins/textures/character_91_preview.png b/mods/u_skins/u_skins/textures/character_91_preview.png new file mode 100644 index 00000000..912feadb Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_91_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_92.png b/mods/u_skins/u_skins/textures/character_92.png new file mode 100644 index 00000000..c4566c3d Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_92.png differ diff --git a/mods/u_skins/u_skins/textures/character_92_preview.png b/mods/u_skins/u_skins/textures/character_92_preview.png new file mode 100644 index 00000000..17ed0af6 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_92_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_93.png b/mods/u_skins/u_skins/textures/character_93.png new file mode 100644 index 00000000..205d2a83 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_93.png differ diff --git a/mods/u_skins/u_skins/textures/character_93_preview.png b/mods/u_skins/u_skins/textures/character_93_preview.png new file mode 100644 index 00000000..013d3132 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_93_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_94.png b/mods/u_skins/u_skins/textures/character_94.png new file mode 100644 index 00000000..fa0385c4 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_94.png differ diff --git a/mods/u_skins/u_skins/textures/character_94_preview.png b/mods/u_skins/u_skins/textures/character_94_preview.png new file mode 100644 index 00000000..0b6a7fcd Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_94_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_95.png b/mods/u_skins/u_skins/textures/character_95.png new file mode 100644 index 00000000..40cf510f Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_95.png differ diff --git a/mods/u_skins/u_skins/textures/character_95_preview.png b/mods/u_skins/u_skins/textures/character_95_preview.png new file mode 100644 index 00000000..259d436c Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_95_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_96.png b/mods/u_skins/u_skins/textures/character_96.png new file mode 100644 index 00000000..817b91c5 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_96.png differ diff --git a/mods/u_skins/u_skins/textures/character_96_preview.png b/mods/u_skins/u_skins/textures/character_96_preview.png new file mode 100644 index 00000000..a99d2228 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_96_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_97.png b/mods/u_skins/u_skins/textures/character_97.png new file mode 100644 index 00000000..c9511b92 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_97.png differ diff --git a/mods/u_skins/u_skins/textures/character_97_preview.png b/mods/u_skins/u_skins/textures/character_97_preview.png new file mode 100644 index 00000000..b4288fe6 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_97_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_98.png b/mods/u_skins/u_skins/textures/character_98.png new file mode 100644 index 00000000..dd98d484 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_98.png differ diff --git a/mods/u_skins/u_skins/textures/character_98_preview.png b/mods/u_skins/u_skins/textures/character_98_preview.png new file mode 100644 index 00000000..007f7c08 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_98_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_99.png b/mods/u_skins/u_skins/textures/character_99.png new file mode 100644 index 00000000..21781bee Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_99.png differ diff --git a/mods/u_skins/u_skins/textures/character_99_preview.png b/mods/u_skins/u_skins/textures/character_99_preview.png new file mode 100644 index 00000000..be775c29 Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_99_preview.png differ diff --git a/mods/u_skins/u_skins/textures/character_9_preview.png b/mods/u_skins/u_skins/textures/character_9_preview.png new file mode 100644 index 00000000..f130ce6b Binary files /dev/null and b/mods/u_skins/u_skins/textures/character_9_preview.png differ diff --git a/mods/u_skins/u_skins/textures/inventory_plus_skins.png b/mods/u_skins/u_skins/textures/inventory_plus_skins.png new file mode 100755 index 00000000..781b42ff Binary files /dev/null and b/mods/u_skins/u_skins/textures/inventory_plus_skins.png differ diff --git a/mods/u_skins/u_skins/textures/u_skins_button.png b/mods/u_skins/u_skins/textures/u_skins_button.png new file mode 100755 index 00000000..cb495317 Binary files /dev/null and b/mods/u_skins/u_skins/textures/u_skins_button.png differ diff --git a/mods/u_skins/u_skins/textures/ui_misc_form.png b/mods/u_skins/u_skins/textures/ui_misc_form.png new file mode 100755 index 00000000..d34d3264 Binary files /dev/null and b/mods/u_skins/u_skins/textures/ui_misc_form.png differ diff --git a/mods/u_skins/update_from_db.py b/mods/u_skins/update_from_db.py new file mode 100755 index 00000000..be6930c1 --- /dev/null +++ b/mods/u_skins/update_from_db.py @@ -0,0 +1,61 @@ +#!/usr/bin/python3 +from http.client import HTTPConnection +import json +import base64 + +server = "minetest.fensta.bplaced.net" +skinsdir = "u_skins/textures/" +metadir = "u_skins/meta/" +i = 1 +pages = 1 + +c = HTTPConnection(server) +def addpage(page): + global i, pages + print("Page: " + str(page)) + r = 0 + try: + c.request("GET", "/api/get.json.php?getlist&page=" + str(page) + "&outformat=base64") + r = c.getresponse() + except Exception: + if r != 0: + if r.status != 200: + print("Error", r.status) + exit(r.status) + return + + data = r.read().decode() + l = json.loads(data) + if not l["success"]: + print("Success != True") + exit(1) + r = 0 + pages = int(l["pages"]) + for s in l["skins"]: + f = open(skinsdir + "character_" + str(i) + ".png", "wb") + f.write(base64.b64decode(bytes(s["img"], 'utf-8'))) + f.close() + f = open(metadir + "character_" + str(i) + ".txt", "w") + f.write(str(s["name"]) + '\n') + f.write(str(s["author"]) + '\n') + f.write(str(s["license"])) + f.close() + try: + c.request("GET", "/skins/1/" + str(s["id"]) + ".png") + r = c.getresponse() + except Exception: + if r != 0: + if r.status != 200: + print("Error", r.status) + continue + + data = r.read() + f = open(skinsdir + "character_" + str(i) + "_preview.png", "wb") + f.write(data) + f.close() + i = i + 1 +addpage(1) +if pages > 1: + for p in range(pages-1): + addpage(p+2) +print("Skins have been updated!") diff --git a/mods/u_skins/update_skins_db.sh b/mods/u_skins/update_skins_db.sh new file mode 100755 index 00000000..8bf9e1a2 --- /dev/null +++ b/mods/u_skins/update_skins_db.sh @@ -0,0 +1,78 @@ +#!/bin/bash +#### +# Licenced under Attribution-NonCommercial-ShareAlike 4.0 International +# http://creativecommons.org/licenses/by-nc-sa/4.0/ +#### ATTENTION #### +## This script requires that jq and coreutils are installed on your system ## +## In Debian-based distros, open a terminal and run +## sudo apt-get install jq coreutils +################### + +# == Set variables === +# ==================== +NUMPAGES="1" # Number of pages. Default is 1 page +PERPAGE="2000" # Number of items per page. Default is 2000. +JSONURL="http://minetest.fensta.bplaced.net/api/get.json.php?getlist&page=$NUMPAGES&outformat=base64&per_page=$PERPAGE" # The URL to the database +PREVIEWURL="http://minetest.fensta.bplaced.net/skins/1/" # The url to the location of the previews. +temp=$PWD/tmp # Where the temp folder will be. Default is $PWD/tmp, which means that the tmp folder will be put in the current folder +METADEST=$PWD/u_skins/meta # This is the folder where the meta data will be saved +TEXTUREDEST=$PWD/u_skins/textures # This is the folder where the skins and the previews will be saved + + +# === Make a bunch of folders and download the db === +# =================================================== +if [ -d "$temp" ]; then + rm -r $temp # If the temp dir exists we will remove it and its contents. +fi +mkdir $temp # Make a new temp dir. Redundant? No. We will get rid of it later. + +if [ ! -d "$METADEST" ]; then # Check to see if the meta dir exists, and if not, create it + mkdir $METADEST +fi + +if [ ! -d "$TEXTUREDEST" ]; then # Check to see if the textures dir exists, and if not, create it + mkdir $TEXTUREDEST +fi + +wget $JSONURL -O $temp/rawdb.txt # Download the entire database + + +# === Do the JSON thing === +# ========================= +i="0" # This will be the counter. +while [ "$ID" != "null" ] # Repeat for as long as there is data to process + do + ID=$(cat $temp/rawdb.txt | jq ".skins[$i].id") + + # The next lines are kinda complex. sed is being used to strip the quotes from the variables. I had help... + meta_name=$(echo $(cat $temp/rawdb.txt | jq ".skins[$i].name") | sed -e 's/^"//' -e 's/"$//') + meta_author=$(echo $(cat $temp/rawdb.txt | jq ".skins[$i].author") | sed -e 's/^"//' -e 's/"$//') + meta_license=$(echo $(cat $temp/rawdb.txt | jq ".skins[$i].license") | sed -e 's/^"//' -e 's/"$//') + + if [[ "$ID" != "null" ]]; then # Check to see if ID has a value + echo "#"$ID "name:" $meta_name "author:" $meta_author "license:" $meta_license # Verbosity to show that the script is working. + + echo $meta_name > $METADEST/character_$ID.txt # Save the meta data to files, this line overwrites the data inside the file + echo $meta_author >> $METADEST/character_$ID.txt # Save the meta data to files, this line is added to the file + echo $meta_license >> $METADEST/character_$ID.txt # Save the meta data to files, and this line is added to the file as well. + + + # === Extract and save the image from the JSON file === + # ====================================================== + skin=$(echo $(cat $temp/rawdb.txt | jq ".skins[$i].img") | sed -e 's/^"//' -e 's/"$//') # Strip the quotes from the base64 encoded string + echo $skin | base64 --decode > $TEXTUREDEST"/character_"$ID".png" # Decode the string, and save it as a .png file + + + # === Download a preview image whilst we're at it === + # ==================================================== + wget -nv $PREVIEWURL/$ID".png" -O $TEXTUREDEST"/character_"$ID"_preview.png" # Downloads a preview of the skin that we just saved. + + fi + i=$[$i+1] # Increase the counter by one. + done + +# === Now we'll clean up the mess === +# =================================== +rm -r $temp # Remove the temp dir and its contents. + +exit # Not strictly needed, but i like to use it to wrap things up. diff --git a/mods/unified_inventory/.gitignore b/mods/unified_inventory/.gitignore new file mode 100644 index 00000000..5236e1e4 --- /dev/null +++ b/mods/unified_inventory/.gitignore @@ -0,0 +1,2 @@ +*~ + diff --git a/mods/unified_inventory/README.md b/mods/unified_inventory/README.md new file mode 100644 index 00000000..6f5e2d41 --- /dev/null +++ b/mods/unified_inventory/README.md @@ -0,0 +1,22 @@ +Unified inventory +================= + +Unified Inventory replaces the default survival and creative inventory. +It adds a nicer interface and a number of features, such as a crafting guide. + +License +======= + +Copyright (C) 2012-2014 Maciej Kasatkin (RealBadAngel) + +Unified inventory code is licensed under the GNU LGPLv2+. + +Licenses for textures: + +VanessaE: (WTFPL) + * ui\_group.png + +RealBadAngel: (WTFPL) + * Everything else. + + diff --git a/mods/unified_inventory/api.lua b/mods/unified_inventory/api.lua new file mode 100644 index 00000000..1ab19fc6 --- /dev/null +++ b/mods/unified_inventory/api.lua @@ -0,0 +1,223 @@ +local S +if intllib then + S = intllib.Getter() +else + S = function(s) return s end +end + +-- Create detached creative inventory after loading all mods +minetest.after(0.01, function() + local rev_aliases = {} + for source, target in pairs(minetest.registered_aliases) do + if not rev_aliases[target] then rev_aliases[target] = {} end + table.insert(rev_aliases[target], source) + end + unified_inventory.items_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(unified_inventory.items_list, name) + local all_names = rev_aliases[name] or {} + table.insert(all_names, name) + for _, name in ipairs(all_names) do + local recipes = minetest.get_all_craft_recipes(name) + if recipes then + for _, recipe in ipairs(recipes) do + unified_inventory.register_craft(recipe) + end + end + end + end + end + table.sort(unified_inventory.items_list) + unified_inventory.items_list_size = #unified_inventory.items_list + print("Unified Inventory. inventory size: "..unified_inventory.items_list_size) + for _, name in ipairs(unified_inventory.items_list) do + local def = minetest.registered_items[name] + if type(def.drop) == "string" then + local dstack = ItemStack(def.drop) + if not dstack:is_empty() and dstack:get_name() ~= name then + unified_inventory.register_craft({ + type = "digging", + items = {name}, + output = def.drop, + width = 0, + }) + + end + end + end + for _, recipes in pairs(unified_inventory.crafts_for.recipe) do + for _, recipe in ipairs(recipes) do + local ingredient_items = {} + for _, spec in ipairs(recipe.items) do + local matches_spec = unified_inventory.canonical_item_spec_matcher(spec) + for _, name in ipairs(unified_inventory.items_list) do + if matches_spec(name) then + ingredient_items[name] = true + end + end + end + for name, _ in pairs(ingredient_items) do + if unified_inventory.crafts_for.usage[name] == nil then + unified_inventory.crafts_for.usage[name] = {} + end + table.insert(unified_inventory.crafts_for.usage[name], recipe) + end + end + end +end) + + +-- load_home +local function load_home() + local input = io.open(unified_inventory.home_filename, "r") + if input then + while true do + 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") + unified_inventory.home_pos[name:sub(2)] = {x = x, y = y, z = z} + end + io.close(input) + else + unified_inventory.home_pos = {} + end +end +load_home() + +function unified_inventory.set_home(player, pos) + local player_name = player:get_player_name() + unified_inventory.home_pos[player_name] = pos + -- save the home data from the table to the file + local output = io.open(unified_inventory.home_filename, "w") + for k, v in pairs(unified_inventory.home_pos) do + if v ~= nil then + output:write(math.floor(v.x).." " + ..math.floor(v.y).." " + ..math.floor(v.z).." " + ..k.."\n") + end + end + io.close(output) +end + +function unified_inventory.go_home(player) + local pos = unified_inventory.home_pos[player:get_player_name()] + if pos ~= nil then + player:setpos(pos) + end +end + +-- register_craft +function unified_inventory.register_craft(options) + if options.output == nil then + return + end + local itemstack = ItemStack(options.output) + if itemstack:is_empty() then + return + end + if options.type == "normal" and options.width == 0 then + options = { type = "shapeless", items = options.items, output = options.output, width = 0 } + end + if unified_inventory.crafts_for.recipe[itemstack:get_name()] == nil then + unified_inventory.crafts_for.recipe[itemstack:get_name()] = {} + end + table.insert(unified_inventory.crafts_for.recipe[itemstack:get_name()],options) +end + + +local craft_type_defaults = { + width = 3, + height = 3, + uses_crafting_grid = false, +} + + +function unified_inventory.craft_type_defaults(name, options) + if not options.description then + options.description = name + end + setmetatable(options, {__index = craft_type_defaults}) + return options +end + + +function unified_inventory.register_craft_type(name, options) + unified_inventory.registered_craft_types[name] = + unified_inventory.craft_type_defaults(name, options) +end + + +unified_inventory.register_craft_type("normal", { + description = "Crafting", + width = 3, + height = 3, + get_shaped_craft_width = function (craft) return craft.width end, + dynamic_display_size = function (craft) + local w = craft.width + local h = math.ceil(table.maxn(craft.items) / craft.width) + local g = w < h and h or w + return { width = g, height = g } + end, + uses_crafting_grid = true, +}) + + +unified_inventory.register_craft_type("shapeless", { + description = "Mixing", + width = 3, + height = 3, + dynamic_display_size = function (craft) + local maxn = table.maxn(craft.items) + local g = 1 + while g*g < maxn do g = g + 1 end + return { width = g, height = g } + end, + uses_crafting_grid = true, +}) + + +unified_inventory.register_craft_type("cooking", { + description = "Cooking", + width = 1, + height = 1, +}) + + +unified_inventory.register_craft_type("digging", { + description = "Digging", + width = 1, + height = 1, +}) + + +function unified_inventory.register_page(name, def) + unified_inventory.pages[name] = def +end + + +function unified_inventory.register_button(name, def) + if not def.action then + def.action = function(player) + unified_inventory.set_inventory_formspec(player, name) + end + end + def.name = name + table.insert(unified_inventory.buttons, def) +end + + +function unified_inventory.is_creative(playername) + if minetest.check_player_privs(playername, {creative=true}) or + minetest.setting_getbool("creative_mode") then + return true + end +end + diff --git a/mods/unified_inventory/bags.lua b/mods/unified_inventory/bags.lua new file mode 100644 index 00000000..10196f59 --- /dev/null +++ b/mods/unified_inventory/bags.lua @@ -0,0 +1,158 @@ +-- Bags for Minetest + +-- Copyright (c) 2012 cornernote, Brett O'Donnell +-- License: GPLv3 + +local S +if intllib then + S = intllib.Getter() +else + S = function(s) return s end +end + +unified_inventory.register_page("bags", { + get_formspec = function(player) + local player_name = player:get_player_name() + local formspec = "background[0.06,0.99;7.92,7.52;ui_bags_main_form.png]" + formspec = formspec.."label[0,0;"..S("Bags").."]" + formspec = formspec.."button[0,2;2,0.5;bag1;Bag 1]" + formspec = formspec.."button[2,2;2,0.5;bag2;Bag 2]" + formspec = formspec.."button[4,2;2,0.5;bag3;Bag 3]" + formspec = formspec.."button[6,2;2,0.5;bag4;Bag 4]" + formspec = formspec.."listcolors[#00000000;#00000000]" + formspec = formspec.."list[detached:"..minetest.formspec_escape(player_name).."_bags;bag1;0.5,1;1,1;]" + formspec = formspec.."list[detached:"..minetest.formspec_escape(player_name).."_bags;bag2;2.5,1;1,1;]" + formspec = formspec.."list[detached:"..minetest.formspec_escape(player_name).."_bags;bag3;4.5,1;1,1;]" + formspec = formspec.."list[detached:"..minetest.formspec_escape(player_name).."_bags;bag4;6.5,1;1,1;]" + return {formspec=formspec} + end, +}) + +unified_inventory.register_button("bags", { + type = "image", + image = "ui_bags_icon.png", + tooltip = S("Bags") +}) + +for i = 1, 4 do + unified_inventory.register_page("bag"..i, { + get_formspec = function(player) + local stack = player:get_inventory():get_stack("bag"..i, 1) + local image = stack:get_definition().inventory_image + local formspec = "image[7,0;1,1;"..image.."]" + formspec = formspec.."label[0,0;Bag "..i.."]" + formspec = formspec.."listcolors[#00000000;#00000000]" + formspec = formspec.."list[current_player;bag"..i.."contents;0,1;8,3;]" + local slots = stack:get_definition().groups.bagslots + if slots == 8 then + formspec = formspec.."background[0.06,0.99;7.92,7.52;ui_bags_sm_form.png]" + elseif slots == 16 then + formspec = formspec.."background[0.06,0.99;7.92,7.52;ui_bags_med_form.png]" + elseif slots == 24 then + formspec = formspec.."background[0.06,0.99;7.92,7.52;ui_bags_lg_form.png]" + end + return {formspec=formspec} + end, + }) +end + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "" then + return + end + for i = 1, 4 do + if fields["bag"..i] then + local stack = player:get_inventory():get_stack("bag"..i, 1) + if not stack:get_definition().groups.bagslots then + return + end + unified_inventory.set_inventory_formspec(player, "bag"..i) + return + end + end +end) + +minetest.register_on_joinplayer(function(player) + local player_inv = player:get_inventory() + local bags_inv = minetest.create_detached_inventory(player:get_player_name().."_bags",{ + on_put = function(inv, listname, index, stack, player) + player:get_inventory():set_stack(listname, index, stack) + player:get_inventory():set_size(listname.."contents", + stack:get_definition().groups.bagslots) + end, + on_take = function(inv, listname, index, stack, player) + player:get_inventory():set_stack(listname, index, nil) + end, + allow_put = function(inv, listname, index, stack, player) + if stack:get_definition().groups.bagslots then + return 1 + else + return 0 + end + end, + allow_take = function(inv, listname, index, stack, player) + if player:get_inventory():is_empty(listname.."contents") then + return stack:get_count() + else + return 0 + end + end, + allow_move = function(inv, from_list, from_index, to_list, to_index, count, player) + return 0 + end, + }) + for i=1,4 do + local bag = "bag"..i + player_inv:set_size(bag, 1) + bags_inv:set_size(bag, 1) + bags_inv:set_stack(bag, 1, player_inv:get_stack(bag, 1)) + end +end) + +-- register bag tools +minetest.register_tool("unified_inventory:bag_small", { + description = S("Small Bag"), + inventory_image = "bags_small.png", + groups = {bagslots=8}, +}) + +minetest.register_tool("unified_inventory:bag_medium", { + description = S("Medium Bag"), + inventory_image = "bags_medium.png", + groups = {bagslots=16}, +}) + +minetest.register_tool("unified_inventory:bag_large", { + description = S("Large Bag"), + inventory_image = "bags_large.png", + groups = {bagslots=24}, +}) + +-- register bag crafts +minetest.register_craft({ + output = "unified_inventory:bag_small", + recipe = { + {"", "default:stick", ""}, + {"group:wood", "group:wood", "group:wood"}, + {"group:wood", "group:wood", "group:wood"}, + }, +}) + +minetest.register_craft({ + output = "unified_inventory:bag_medium", + recipe = { + {"", "", ""}, + {"default:stick", "unified_inventory:bag_small", "default:stick"}, + {"default:stick", "unified_inventory:bag_small", "default:stick"}, + }, +}) + +minetest.register_craft({ + output = "unified_inventory:bag_large", + recipe = { + {"", "", ""}, + {"default:stick", "unified_inventory:bag_medium", "default:stick"}, + {"default:stick", "unified_inventory:bag_medium", "default:stick"}, + }, +}) + diff --git a/mods/unified_inventory/callbacks.lua b/mods/unified_inventory/callbacks.lua new file mode 100644 index 00000000..605d8e55 --- /dev/null +++ b/mods/unified_inventory/callbacks.lua @@ -0,0 +1,182 @@ +local function default_refill(stack) + stack:set_count(stack:get_stack_max()) + local itemdef = minetest.registered_items[stack:get_name()] + if itemdef and (itemdef.wear_represents or "mechanical_wear") == "mechanical_wear" and stack:get_wear() ~= 0 then + stack:set_wear(0) + end + return stack +end + +minetest.register_on_joinplayer(function(player) + local player_name = player:get_player_name() + unified_inventory.players[player_name] = {} + unified_inventory.current_index[player_name] = 1 + unified_inventory.filtered_items_list[player_name] = + unified_inventory.items_list + unified_inventory.activefilter[player_name] = "" + unified_inventory.active_search_direction[player_name] = "nochange" + unified_inventory.apply_filter(player, "", "nochange") + unified_inventory.current_searchbox[player_name] = "" + unified_inventory.alternate[player_name] = 1 + unified_inventory.current_item[player_name] = nil + unified_inventory.current_craft_direction[player_name] = "recipe" + unified_inventory.set_inventory_formspec(player, + unified_inventory.default) + + -- Refill slot + local refill = minetest.create_detached_inventory(player_name.."refill", { + allow_put = function(inv, listname, index, stack, player) + local player_name = player:get_player_name() + if unified_inventory.is_creative(player_name) then + return stack:get_count() + else + return 0 + end + end, + on_put = function(inv, listname, index, stack, player) + local player_name = player:get_player_name() + local handle_refill = (minetest.registered_items[stack:get_name()] or {}).on_refill or default_refill + stack = handle_refill(stack) + inv:set_stack(listname, index, stack) + minetest.sound_play("electricity", + {to_player=player_name, gain = 1.0}) + end, + }) + refill:set_size("main", 1) +end) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "" then + return + end + local player_name = player:get_player_name() + + -- always take new search text, even if not searching on it yet + if fields.searchbox ~= nil and fields.searchbox ~= unified_inventory.current_searchbox[player_name] then + unified_inventory.current_searchbox[player_name] = fields.searchbox + unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) + end + + for i, def in pairs(unified_inventory.buttons) do + if fields[def.name] then + def.action(player) + minetest.sound_play("click", + {to_player=player_name, gain = 0.1}) + return + end + end + + -- Inventory page controls + local start = math.floor( + unified_inventory.current_index[player_name] / 80 + 1) + local start_i = start + local pagemax = math.floor( + (#unified_inventory.filtered_items_list[player_name] - 1) + / (80) + 1) + + if fields.start_list then + start_i = 1 + end + if fields.rewind1 then + start_i = start_i - 1 + end + if fields.forward1 then + start_i = start_i + 1 + end + if fields.rewind3 then + start_i = start_i - 3 + end + if fields.forward3 then + start_i = start_i + 3 + end + if fields.end_list then + start_i = pagemax + end + if start_i < 1 then + start_i = 1 + end + if start_i > pagemax then + start_i = pagemax + end + if not (start_i == start) then + minetest.sound_play("paperflip1", + {to_player=player_name, gain = 1.0}) + unified_inventory.current_index[player_name] = (start_i - 1) * 80 + 1 + unified_inventory.set_inventory_formspec(player, + unified_inventory.current_page[player_name]) + end + + local clicked_item = nil + for name, value in pairs(fields) do + if string.sub(name, 1, 12) == "item_button_" then + local new_dir, mangled_item = string.match(name, "^item_button_([a-z]+)_(.*)$") + clicked_item = unified_inventory.demangle_for_formspec(mangled_item) + if string.sub(clicked_item, 1, 6) == "group:" then + minetest.sound_play("click", {to_player=player_name, gain = 0.1}) + unified_inventory.apply_filter(player, clicked_item, new_dir) + return + end + if new_dir == "recipe" or new_dir == "usage" then + unified_inventory.current_craft_direction[player_name] = new_dir + end + break + end + end + if clicked_item then + minetest.sound_play("click", + {to_player=player_name, gain = 0.1}) + local page = unified_inventory.current_page[player_name] + if not unified_inventory.is_creative(player_name) then + page = "craftguide" + end + if page == "craftguide" then + unified_inventory.current_item[player_name] = clicked_item + unified_inventory.alternate[player_name] = 1 + unified_inventory.set_inventory_formspec(player, + "craftguide") + else + if unified_inventory.is_creative(player_name) then + local inv = player:get_inventory() + local stack = ItemStack(clicked_item) + stack:set_count(stack:get_stack_max()) + if inv:room_for_item("main", stack) then + inv:add_item("main", stack) + end + end + end + end + + if fields.searchbutton then + unified_inventory.apply_filter(player, unified_inventory.current_searchbox[player_name], "nochange") + unified_inventory.current_searchbox[player_name] = "" + unified_inventory.set_inventory_formspec(player, + unified_inventory.current_page[player_name]) + minetest.sound_play("paperflip2", + {to_player=player_name, gain = 1.0}) + end + + -- alternate button + if fields.alternate then + minetest.sound_play("click", + {to_player=player_name, gain = 0.1}) + local item_name = unified_inventory.current_item[player_name] + if item_name then + local alternates = 0 + local alternate = unified_inventory.alternate[player_name] + local crafts = unified_inventory.crafts_for[unified_inventory.current_craft_direction[player_name]][item_name] + if crafts ~= nil then + alternates = #crafts + end + if alternates > 1 then + alternate = alternate + 1 + if alternate > alternates then + alternate = 1 + end + unified_inventory.alternate[player_name] = alternate + unified_inventory.set_inventory_formspec(player, + unified_inventory.current_page[player_name]) + end + end + end +end) + diff --git a/mods/unified_inventory/depends.txt b/mods/unified_inventory/depends.txt new file mode 100644 index 00000000..a1ea5568 --- /dev/null +++ b/mods/unified_inventory/depends.txt @@ -0,0 +1,4 @@ +creative? +intllib? +datastorage? + diff --git a/mods/unified_inventory/group.lua b/mods/unified_inventory/group.lua new file mode 100644 index 00000000..9bf6895e --- /dev/null +++ b/mods/unified_inventory/group.lua @@ -0,0 +1,108 @@ +function unified_inventory.canonical_item_spec_matcher(spec) + local specname = ItemStack(spec):get_name() + if specname:sub(1, 6) == "group:" then + local group_names = specname:sub(7):split(",") + return function (itemname) + local itemdef = minetest.registered_items[itemname] + for _, group_name in ipairs(group_names) do + if (itemdef.groups[group_name] or 0) == 0 then + return false + end + end + return true + end + else + return function (itemname) return itemname == specname end + end +end + +function unified_inventory.item_matches_spec(item, spec) + local itemname = ItemStack(item):get_name() + return unified_inventory.canonical_item_spec_matcher(spec)(itemname) +end + +unified_inventory.registered_group_items = { + mesecon_conductor_craftable = "mesecons:wire_00000000_off", + stone = "default:cobble", + wool = "wool:white", +} + +function unified_inventory.register_group_item(groupname, itemname) + unified_inventory.registered_group_items[groupname] = itemname +end + + +-- This is used when displaying craft recipes, where an ingredient is +-- specified by group rather than as a specific item. A single-item group +-- is represented by that item, with the single-item status signalled +-- in the "sole" field. If the group contains no items at all, the item +-- field will be nil. +-- +-- Within a multiple-item group, we prefer to use an item that has the +-- same specific name as the group, and if there are more than one of +-- those items we prefer the one registered for the group by a mod. +-- Among equally-preferred items, we just pick the one with the +-- lexicographically earliest name. +-- +-- The parameter to this function isn't just a single group name. +-- It may be a comma-separated list of group names. This is really a +-- "group:..." ingredient specification, minus the "group:" prefix. + +local function compute_group_item(group_name_list) + local group_names = group_name_list:split(",") + local candidate_items = {} + for itemname, itemdef in pairs(minetest.registered_items) do + if (itemdef.groups.not_in_creative_inventory or 0) == 0 then + local all = true + for _, group_name in ipairs(group_names) do + if (itemdef.groups[group_name] or 0) == 0 then + all = false + end + end + if all then table.insert(candidate_items, itemname) end + end + end + local num_candidates = #candidate_items + if num_candidates == 0 then + return {sole = true} + elseif num_candidates == 1 then + return {item = candidate_items[1], sole = true} + end + local is_group = {} + local registered_rep = {} + for _, group_name in ipairs(group_names) do + is_group[group_name] = true + local rep = unified_inventory.registered_group_items[group_name] + if rep then registered_rep[rep] = true end + end + local bestitem = "" + local bestpref = 0 + for _, item in ipairs(candidate_items) do + local pref + if registered_rep[item] then + pref = 4 + elseif string.sub(item, 1, 8) == "default:" and is_group[string.sub(item, 9)] then + pref = 3 + elseif is_group[item:gsub("^[^:]*:", "")] then + pref = 2 + else + pref = 1 + end + if pref > bestpref or (pref == bestpref and item < bestitem) then + bestitem = item + bestpref = pref + end + end + return {item = bestitem, sole = false} +end + + +local group_item_cache = {} + +function unified_inventory.get_group_item(group_name) + if not group_item_cache[group_name] then + group_item_cache[group_name] = compute_group_item(group_name) + end + return group_item_cache[group_name] +end + diff --git a/mods/unified_inventory/image_credits.txt b/mods/unified_inventory/image_credits.txt new file mode 100644 index 00000000..b1489e4f --- /dev/null +++ b/mods/unified_inventory/image_credits.txt @@ -0,0 +1,66 @@ +bags_small.png: + http://www.clker.com/clipart-moneybag-empty.html + +bags_medium.png: + http://www.clker.com/clipart-backpack-1.html + +bags_large.png / ui_bags_icon.png: + http://www.clker.com/clipart-backpack-green-brown.html + +ui_craftguide_icon.png / ui_craft_icon.png + http://commons.wikimedia.org/wiki/File:Advancedsettings.png + +ui_doubleleft_icon.png + http://commons.wikimedia.org/wiki/File:Media-seek-backward.svg + +ui_doubleright_icon.png + http://commons.wikimedia.org/wiki/File:Media-seek-forward.svg + +ui_left_icon.png / ui_right_icon.png + http://commons.wikimedia.org/wiki/File:Media-playback-start.svg + +ui_skip_backward_icon.png + http://commons.wikimedia.org/wiki/File:Media-skip-backward.svg + +ui_skip_forward_icon.png + http://commons.wikimedia.org/wiki/File:Media-skip-forward.svg + +ui_gohome_icon.png / ui_home_icon.png / ui_sethome_icon.png + http://commons.wikimedia.org/wiki/File:Home_256x256.png + +ui_moon_icon.png + http://commons.wikimedia.org/wiki/File:FullMoon2010.jpg + +ui_sun_icon.png + http://commons.wikimedia.org/wiki/File:2012-10-13_15-29-35-sun.jpg + +ui_trash_icon.png + http://www.clker.com/clipart-29090.html + http://www.clker.com/clipart-trash.html + +ui_search_icon.png + http://www.clker.com/clipart-24887.html + +ui_off_icon.png / ui_on_icon.png + http://www.clker.com/clipart-on-off-switches.html + +ui_waypoints_icon.png + http://www.clker.com/clipart-map-pin-red.html + +ui_circular_arrows_icon.png + http://www.clker.com/clipart-circular-arrow-pattern.html + +ui_pencil_icon.pnc + http://www.clker.com/clipart-2256.html + +ui_waypoint_set_icon.png + http://www.clker.com/clipart-larger-flag.html + +ui_xyz_off_icon.png + http://commons.wikimedia.org/wiki/File:No_sign.svg + +ui_ok_icon.png + http://commons.wikimedia.org/wiki/File:Yes_check.svg + +inventory_plus_worldedit_gui.png + http://commons.wikimedia.org/wiki/File:Erioll_world_2.svg diff --git a/mods/unified_inventory/init.lua b/mods/unified_inventory/init.lua new file mode 100644 index 00000000..866660c5 --- /dev/null +++ b/mods/unified_inventory/init.lua @@ -0,0 +1,50 @@ +-- Unified Inventory for Minetest 0.4.8+ + +local modpath = minetest.get_modpath(minetest.get_current_modname()) +local worldpath = minetest.get_worldpath() + +-- Data tables definitions +unified_inventory = {} +unified_inventory.activefilter = {} +unified_inventory.active_search_direction = {} +unified_inventory.alternate = {} +unified_inventory.current_page = {} +unified_inventory.current_searchbox = {} +unified_inventory.current_index = {} +unified_inventory.current_item = {} +unified_inventory.current_craft_direction = {} +unified_inventory.registered_craft_types = {} +unified_inventory.crafts_for = { usage = {}, recipe = {} } +unified_inventory.players = {} +unified_inventory.items_list_size = 0 +unified_inventory.items_list = {} +unified_inventory.filtered_items_list_size = {} +unified_inventory.filtered_items_list = {} +unified_inventory.pages = {} +unified_inventory.buttons = {} + +-- Homepos stuff +unified_inventory.home_pos = {} +unified_inventory.home_filename = + worldpath.."/unified_inventory_home.home" + +-- Default inventory page +unified_inventory.default = "craft" + +-- Disable default creative inventory +if creative_inventory then + function creative_inventory.set_creative_formspec(player, start_i, pagenum) + return + end +end + +dofile(modpath.."/group.lua") +dofile(modpath.."/api.lua") +dofile(modpath.."/internal.lua") +dofile(modpath.."/callbacks.lua") +dofile(modpath.."/register.lua") +dofile(modpath.."/bags.lua") +dofile(modpath.."/item_names.lua") +if minetest.get_modpath("datastorage") then + dofile(modpath.."/waypoints.lua") +end diff --git a/mods/unified_inventory/internal.lua b/mods/unified_inventory/internal.lua new file mode 100644 index 00000000..281653e4 --- /dev/null +++ b/mods/unified_inventory/internal.lua @@ -0,0 +1,233 @@ +local S +if intllib then + S = intllib.Getter() +else + S = function(s) return s end +end + +-- This pair of encoding functions is used where variable text must go in +-- button names, where the text might contain formspec metacharacters. +-- We can escape button names for the formspec, to avoid screwing up +-- form structure overall, but they then don't get de-escaped, and so +-- the input we get back from the button contains the formspec escaping. +-- This is a game engine bug, and in the anticipation that it might be +-- fixed some day we don't want to rely on it. So for safety we apply +-- an encoding that avoids all formspec metacharacters. +function unified_inventory.mangle_for_formspec(str) + return string.gsub(str, "([^A-Za-z0-9])", function (c) return string.format("_%d_", string.byte(c)) end) +end +function unified_inventory.demangle_for_formspec(str) + return string.gsub(str, "_([0-9]+)_", function (v) return string.char(v) end) +end + +function unified_inventory.get_formspec(player, page) + if not player then + return "" + end + local player_name = player:get_player_name() + unified_inventory.current_page[player_name] = page + local pagedef = unified_inventory.pages[page] + + local formspec = "size[14,10]" + local fsdata = nil + + -- Background + formspec = formspec .. "background[-0.19,-0.25;14.4,10.75;ui_form_bg.png]" + -- Current page + if unified_inventory.pages[page] then + fsdata = pagedef.get_formspec(player) + formspec = formspec .. fsdata.formspec + else + return "" -- Invalid page name + end + + -- Main buttons + for i, def in pairs(unified_inventory.buttons) do + local tooltip = def.tooltip or "" + if def.type == "image" then + formspec = formspec.."image_button[" + ..(0.65 * (i - 1))..",9;0.8,0.8;" + ..minetest.formspec_escape(def.image)..";" + ..minetest.formspec_escape(def.name)..";]" + .."tooltip["..minetest.formspec_escape(def.name) + ..";"..tooltip.."]" + end + end + + if fsdata.draw_inventory ~= false then + -- Player inventory + formspec = formspec.."listcolors[#00000000;#00000000]" + formspec = formspec .. "list[current_player;main;0,4.5;8,4;]" + end + + if fsdata.draw_item_list == false then + return formspec + end + + -- Controls to flip items pages + local start_x = 9.2 + formspec = formspec + .. "image_button[" .. (start_x + 0.6 * 0) + .. ",9;.8,.8;ui_skip_backward_icon.png;start_list;]" + .. "tooltip[start_list;" .. minetest.formspec_escape(S("First page")) .. "]" + + .. "image_button[" .. (start_x + 0.6 * 1) + .. ",9;.8,.8;ui_doubleleft_icon.png;rewind3;]" + .. "tooltip[rewind3;" .. minetest.formspec_escape(S("Back three pages")) .. "]" + + .. "image_button[" .. (start_x + 0.6 * 2) + .. ",9;.8,.8;ui_left_icon.png;rewind1;]" + .. "tooltip[rewind1;" .. minetest.formspec_escape(S("Back one page")) .. "]" + + .. "image_button[" .. (start_x + 0.6 * 3) + .. ",9;.8,.8;ui_right_icon.png;forward1;]" + .. "tooltip[forward1;" .. minetest.formspec_escape(S("Forward one page")) .. "]" + + .. "image_button[" .. (start_x + 0.6 * 4) + .. ",9;.8,.8;ui_doubleright_icon.png;forward3;]" + .. "tooltip[forward3;" .. minetest.formspec_escape(S("Forward three pages")) .. "]" + + .. "image_button[" .. (start_x + 0.6 * 5) + .. ",9;.8,.8;ui_skip_forward_icon.png;end_list;]" + .. "tooltip[end_list;" .. minetest.formspec_escape(S("Last page")) .. "]" + + -- Search box + formspec = formspec .. "field[9.5,8.325;3,1;searchbox;;" + .. minetest.formspec_escape(unified_inventory.current_searchbox[player_name]) .. "]" + formspec = formspec .. "image_button[12.2,8.1;.8,.8;ui_search_icon.png;searchbutton;]" + .. "tooltip[searchbutton;" ..S("Search") .. "]" + + -- Items list + if #unified_inventory.filtered_items_list[player_name] == 0 then + formspec = formspec.."label[8.2,0;" .. S("No matching items") .. "]" + else + local dir = unified_inventory.active_search_direction[player_name] + local list_index = unified_inventory.current_index[player_name] + local page = math.floor(list_index / (80) + 1) + local pagemax = math.floor( + (#unified_inventory.filtered_items_list[player_name] - 1) + / (80) + 1) + local item = {} + for y = 0, 9 do + for x = 0, 7 do + local name = unified_inventory.filtered_items_list[player_name][list_index] + if minetest.registered_items[name] then + formspec = formspec.."item_image_button[" + ..(8.2 + x * 0.7).."," + ..(1 + y * 0.7)..";.81,.81;" + ..name..";item_button_"..dir.."_" + ..unified_inventory.mangle_for_formspec(name)..";]" + list_index = list_index + 1 + end + end + end + formspec = formspec.."label[8.2,0;"..S("Page") .. ": " + .. S("%s of %s"):format(page,pagemax).."]" + end + if unified_inventory.activefilter[player_name] ~= "" then + formspec = formspec.."label[8.2,0.4;" .. S("Filter") .. ":]" + formspec = formspec.."label[9,0.4;"..minetest.formspec_escape(unified_inventory.activefilter[player_name]).."]" + end + return formspec +end + +function unified_inventory.set_inventory_formspec(player, page) + if player then + local formspec = unified_inventory.get_formspec(player, page) + player:set_inventory_formspec(formspec) + end +end + +--apply filter to the inventory list (create filtered copy of full one) +function unified_inventory.apply_filter(player, filter, search_dir) + local player_name = player:get_player_name() + local lfilter = string.lower(filter) + local ffilter + if lfilter:sub(1, 6) == "group:" then + local groups = lfilter:sub(7):split(",") + ffilter = function(name, def) + for _, group in ipairs(groups) do + if not ((def.groups[group] or 0) > 0) then + return false + end + end + return true + end + else + ffilter = function(name, def) + local lname = string.lower(name) + local ldesc = string.lower(def.description) + return string.find(lname, lfilter, 1, true) or string.find(ldesc, lfilter, 1, true) + end + end + unified_inventory.filtered_items_list[player_name]={} + for name, def in pairs(minetest.registered_items) do + if (def.groups.not_in_creative_inventory or 0) == 0 and (def.description or "") ~= "" and ffilter(name, def) then + table.insert(unified_inventory.filtered_items_list[player_name], name) + end + end + table.sort(unified_inventory.filtered_items_list[player_name]) + unified_inventory.filtered_items_list_size[player_name] = #unified_inventory.filtered_items_list[player_name] + unified_inventory.current_index[player_name] = 1 + unified_inventory.activefilter[player_name] = filter + unified_inventory.active_search_direction[player_name] = search_dir + unified_inventory.set_inventory_formspec(player, + unified_inventory.current_page[player_name]) +end + +function unified_inventory.items_in_group(groups) + local items = {} + for name, item in pairs(minetest.registered_items) do + for _, group in pairs(groups:split(',')) do + if item.groups[group] then + table.insert(items, name) + end + end + end + return items +end + +function unified_inventory.sort_inventory(inv) + local inlist = inv:get_list("main") + local typecnt = {} + local typekeys = {} + for _, st in ipairs(inlist) do + if not st:is_empty() then + local n = st:get_name() + local w = st:get_wear() + local m = st:get_metadata() + local k = string.format("%s %05d %s", n, w, m) + if not typecnt[k] then + typecnt[k] = { + name = n, + wear = w, + metadata = m, + stack_max = st:get_stack_max(), + count = 0, + } + table.insert(typekeys, k) + end + typecnt[k].count = typecnt[k].count + st:get_count() + end + end + table.sort(typekeys) + local outlist = {} + for _, k in ipairs(typekeys) do + local tc = typecnt[k] + while tc.count > 0 do + local c = math.min(tc.count, tc.stack_max) + table.insert(outlist, ItemStack({ + name = tc.name, + wear = tc.wear, + metadata = tc.metadata, + count = c, + })) + tc.count = tc.count - c + end + end + if #outlist > #inlist then return end + while #outlist < #inlist do + table.insert(outlist, ItemStack(nil)) + end + inv:set_list("main", outlist) +end diff --git a/mods/unified_inventory/item_names.lua b/mods/unified_inventory/item_names.lua new file mode 100644 index 00000000..31c2b3f5 --- /dev/null +++ b/mods/unified_inventory/item_names.lua @@ -0,0 +1,58 @@ +-- code based on 4itemnames mod by 4aiman + +local wield = {} +local huds = {} +local dtimes = {} +local dlimit = 3 -- hud will be hidden after this much seconds +local airhudmod = minetest.get_modpath("4air") + +local function get_desc(item) + if minetest.registered_nodes[item] then return minetest.registered_nodes[item]["description"] end + if minetest.registered_items[item] then return minetest.registered_items[item]["description"] end + if minetest.registered_craftitems[item] then return minetest.registered_craftitems[item]["description"] end + if minetest.registered_tools[item] then return minetest.registered_tools[item]["description"] end + return "" +end + +minetest.register_on_joinplayer(function(player) + minetest.after(0.0, function() + local player_name = player:get_player_name() + local off = {x=0, y=-70} + if airhudmod then + off.y=off.y-20 + end + huds[player_name] = player:hud_add({ + hud_elem_type = "text", + position = {x=0.5, y=1}, + offset = off, + alignment = {x=0, y=0}, + number = 0xFFFFFF , + text = "", + }) + --print(dump("item hud id: "..huds[player_name])) + end) +end) + +minetest.register_globalstep(function(dtime) + local players = minetest.get_connected_players() + for i,player in ipairs(players) do + local player_name = player:get_player_name() + local wstack = player:get_wielded_item():get_name() + + if dtimes[player_name] and dtimes[player_name] < dlimit then + dtimes[player_name] = dtimes[player_name] + dtime + if dtimes[player_name] > dlimit and huds[player_name] then + player:hud_change(huds[player_name], 'text', "") + end + end + + if wstack ~= wield[player_name] then + wield[player_name] = wstack + local desc = get_desc(wstack) + dtimes[player_name] = 0 + if huds[player_name] then + player:hud_change(huds[player_name], 'text', desc) + end + end + end +end) diff --git a/mods/unified_inventory/locale/de.txt b/mods/unified_inventory/locale/de.txt new file mode 100644 index 00000000..9f12d8c4 --- /dev/null +++ b/mods/unified_inventory/locale/de.txt @@ -0,0 +1,71 @@ +# Translation by Xanthin + +### bags.lua ### +Bags = Rucksaecke +Bag 1 = Rucksack 1 +Bag 2 = Rucksack 2 +Bag 3 = Rucksack 3 +Bag 4 = Rucksack 4 +Small Bag = Rucksack (klein) +Medium Bag = Rucksack (mittel) +Large Bag = Rucksack (gross) + +### inernal.lua ### +First page = +Back three pages = +Back one page = +Forward one page = +Forward three pages = +Last page = +No matching items = +Page = Seite +%s of %s = %s von %s +Filter = Suche +Search = + +### register.lua ### +Can use the creative inventory = Kann das Kreativinventar nutzen +Home position set to: %s = Ausgangsposition nach: %s gesetzt +Time of day set to 6am = Tageszeit auf 6 Uhr morgens geaendert +You don't have the settime priviledge! = Du hast nicht das "settime" Privileg! +Time of day set to 9pm = Tageszeit auf 9 Uhr abends geaendert +This button has been disabled outside of creative mode to prevent accidental inventory trashing. Use the trash slot instead. = Diese Funktion ist ausserhalb des Kreativmodus deaktiviert um ein versehentliches Loeschen des ganzen Inventars zu verhindern.\nNutze stattdessen das Muellfeld. +Inventory Cleared! = Inventar geleert! +Crafting = Bauen +Trash: = Muell: +Refill: = Nachfuellen: +Crafting Guide = Bauanleitung +Method: = Methode: +Result: %s = Ergebnis: %s +crafting = Bauen +shapeless crafting = Formloses Bauen +cooking = Kochen +alloy cooking = Legierung Kochen +Copy to craft grid: = Kopiere ins Baufeld: +All = Alles +Recipe %s of %s = Rezept %s von %s +Alternate = Alternative +Crafting Grid = + +### waypoints.lua ### +White = +Yellow = +Red = +Green = +Blue = +Waypoints = +Waypoint active = +Waypoint inactive = +World position = +Name = +HUD text color = +Edit waypoint name = +Rename waypoint = +Change color of waypoint display = +Set waypoint to current location = +Make waypoint visible = +Make waypoint invisible = +Disable display of waypoint coordinates = +Enable display of waypoint coordinates = +Finish editing = +Select Waypoint #%d = diff --git a/mods/unified_inventory/locale/es.txt b/mods/unified_inventory/locale/es.txt new file mode 100644 index 00000000..9382c79c --- /dev/null +++ b/mods/unified_inventory/locale/es.txt @@ -0,0 +1,72 @@ +# Translation by Diego Martínez + +# Template +### bags.lua ### +Bags = Bolsas +Bag 1 = Bolsa 1 +Bag 2 = Bolsa 2 +Bag 3 = Bolsa 3 +Bag 4 = Bolsa 4 +Small Bag = Bolsa Pequeña +Medium Bag = Bolsa Mediana +Large Bag = Bolsa Grande + +### inernal.lua ### +First page = +Back three pages = +Back one page = +Forward one page = +Forward three pages = +Last page = +No matching items = +Page = Página +%s of %s = %s de %s +Filter = Filtro +Search = + +### register.lua ### +Can use the creative inventory = Puede usar el inventario creativo +Home position set to: %s = Posición de hogar cambiada a: %s +Time of day set to 6am = Hora del día cambiada a 6AM +You don't have the settime priviledge! = ¡No tienes el privilegio `settime'! +Time of day set to 9pm = Hora del día cambiada a 9PM +This button has been disabled outside of creative mode to prevent accidental inventory trashing. Use the trash slot instead. = Éste botón ha sido deshabilitado para prevenir la destrucción accidental del inventario.\nUsa la ranura para basura en su lugar. +Inventory Cleared! = ¡Inventario limpio! +Crafting = Elaboración +Trash: = Basura: +Refill: = Rellenar: +Crafting Guide = Guía de Elaboración +Method: = Método: +Result: %s = Resultado: %s +crafting = elaboración +shapeless crafting = elaboración sin forma +cooking = hornear +alloy cooking = horneado de aleación +Copy to craft grid: = Copiar al cuadro de elaboración +All = Todos +Recipe %s of %s = Receta %s de %s +Alternate = Alternar +Crafting Grid = + +### waypoints.lua ### +White = Blanco +Yellow = Amarillo +Red = Rojo +Green = Verde +Blue = Azul +Waypoints = Puntos de paso +Waypoint active = Punto de paso activo +Waypoint inactive = Punto de paso inactivo +World position = Posición en el mundo +Name = Nombre +HUD text color = Color del HUD +Edit waypoint name = +Rename waypoint = +Change color of waypoint display = +Set waypoint to current location = +Make waypoint visible = +Make waypoint invisible = +Disable display of waypoint coordinates = +Enable display of waypoint coordinates = +Finish editing = +Select Waypoint #%d = diff --git a/mods/unified_inventory/locale/pl.txt b/mods/unified_inventory/locale/pl.txt new file mode 100644 index 00000000..33003d8d --- /dev/null +++ b/mods/unified_inventory/locale/pl.txt @@ -0,0 +1,71 @@ +# Translation by RealBadAngel + +### bags.lua ### +Bags = Plecaki +Bag 1 = Plecak 1 +Bag 2 = Plecak 2 +Bag 3 = Plecak 3 +Bag 4 = Plecak 4 +Small Bag = Maly plecak +Medium Bag = Sredni plecak +Large Bag = Duzy plecak + +### inernal.lua ### +First page = Pierwsza strona +Back three pages = 3 strony w tyl +Back one page = 1 strona w tyl +Forward one page = 1 strona do przodu +Forward three pages = 3 strony do przodu +Last page = Ostatnia strona +No matching items = Brak pasujacych przedmiotow +Page = Strona +%s of %s = %s z %s +Filter = Filtr +Search = Szukaj + +### register.lua ### +Can use the creative inventory = +Home position set to: %s = Pozycja domowa ustawiona na: %s +Time of day set to 6am = Czas ustawiony na 6:00 +You don't have the settime priviledge! = Nie masz uprawnien do zmiany czasu (settime)! +Time of day set to 9pm = Czas ustawiony na 21:00 +This button has been disabled outside of creative mode to prevent accidental inventory trashing.\nUse the trash slot instead. = +Inventory Cleared! = +Crafting = +Trash: = Smietnik: +Refill: = Uzupelnianie: +Crafting Guide = +Method: = Metoda: +Result: %s = Wynik: %s +crafting = +shapeless crafting = +cooking = +alloy cooking = +Copy to craft grid: = +All = Wszystko +Recipe %s of %s = Recepta %s z %s +Alternate = Alternatywa +Crafting Grid = + +### waypoints.lua ### +White = Bialy +Yellow = Zolty +Red = Czerwony +Green = Zielony +Blue = Niebieski +Waypoints = Punkty orientacyjne +Waypoint active = Punkt wlaczony +Waypoint inactive = Punkt wylaczony +World position = Pozycja +Name = Nazwa +HUD text color = Kolor tekstu HUD +Edit waypoint name = Edytuj nazwe punktu +Rename waypoint = Zmien nazwe punktu +Change color of waypoint display = Zmien kolor punktu +Set waypoint to current location = Ustaw punkt orientacyjny na biezacej pozycji +Make waypoint visible = Pokaz punkt +Make waypoint invisible = Nie pokazuj punktu +Disable display of waypoint coordinates = Pokazuj koordynaty punktu +Enable display of waypoint coordinates = Nie pokazuj koordynatow punktu +Finish editing = Zakoncz edycje +Select Waypoint #%d = Wybierz punkt #%d diff --git a/mods/unified_inventory/locale/template.txt b/mods/unified_inventory/locale/template.txt new file mode 100644 index 00000000..ae382e32 --- /dev/null +++ b/mods/unified_inventory/locale/template.txt @@ -0,0 +1,72 @@ +# Translation by + +# Template +### bags.lua ### +Bags = +Bag 1 = +Bag 2 = +Bag 3 = +Bag 4 = +Small Bag = +Medium Bag = +Large Bag = + +### inernal.lua ### +First page = +Back three pages = +Back one page = +Forward one page = +Forward three pages = +Last page = +No matching items = +Page = +%s of %s = +Filter = +Search = + +### register.lua ### +Can use the creative inventory = +Home position set to: %s = +Time of day set to 6am = +You don't have the settime priviledge! = +Time of day set to 9pm = +This button has been disabled outside of creative mode to prevent accidental inventory trashing.\nUse the trash slot instead. = +Inventory Cleared! = +Crafting = +Trash: = +Refill: = +Crafting Guide = +Method: = +Result: %s = +crafting = +shapeless crafting = +cooking = +alloy cooking = +Copy to craft grid: = +All = +Recipe %s of %s = +Alternate = +Crafting Grid = + +### waypoints.lua ### +White = +Yellow = +Red = +Green = +Blue = +Waypoints = +Waypoint active = +Waypoint inactive = +World position = +Name = +HUD text color = +Edit waypoint name = +Rename waypoint = +Change color of waypoint display = +Set waypoint to current location = +Make waypoint visible = +Make waypoint invisible = +Disable display of waypoint coordinates = +Enable display of waypoint coordinates = +Finish editing = +Select Waypoint #%d = diff --git a/mods/unified_inventory/register.lua b/mods/unified_inventory/register.lua new file mode 100644 index 00000000..bc379ee1 --- /dev/null +++ b/mods/unified_inventory/register.lua @@ -0,0 +1,346 @@ +local S +if intllib then + S = intllib.Getter() +else + S = function(s) return s end +end + +minetest.register_privilege("creative", { + description = "Can use the creative inventory", + give_to_singleplayer = false, +}) + +local trash = minetest.create_detached_inventory("trash", { + --allow_put = function(inv, listname, index, stack, player) + -- if unified_inventory.is_creative(player:get_player_name()) then + -- return stack:get_count() + -- else + -- return 0 + -- end + --end, + on_put = function(inv, listname, index, stack, player) + inv:set_stack(listname, index, nil) + local player_name = player:get_player_name() + minetest.sound_play("trash", {to_player=player_name, gain = 1.0}) + end, +}) +trash:set_size("main", 1) + +unified_inventory.register_button("craft", { + type = "image", + image = "ui_craft_icon.png", + tooltip = S("Crafting Grid") +}) + +unified_inventory.register_button("craftguide", { + type = "image", + image = "ui_craftguide_icon.png", + tooltip = S("Crafting Guide") +}) + +unified_inventory.register_button("home_gui_set", { + type = "image", + image = "ui_sethome_icon.png", + tooltip = S("Set home position"), + action = function(player) + local player_name = player:get_player_name() + unified_inventory.set_home(player, player:getpos()) + local home = unified_inventory.home_pos[player_name] + if home ~= nil then + minetest.sound_play("dingdong", + {to_player=player_name, gain = 1.0}) + minetest.chat_send_player(player_name, + S("Home position set to: %s"):format(minetest.pos_to_string(home))) + end + end, +}) + +unified_inventory.register_button("home_gui_go", { + type = "image", + image = "ui_gohome_icon.png", + tooltip = S("Go home"), + action = function(player) + minetest.sound_play("teleport", + {to_player=player:get_player_name(), gain = 1.0}) + unified_inventory.go_home(player) + end, +}) + +unified_inventory.register_button("misc_set_day", { + type = "image", + image = "ui_sun_icon.png", + tooltip = S("Set time to day"), + action = function(player) + local player_name = player:get_player_name() + if minetest.check_player_privs(player_name, {settime=true}) then + minetest.sound_play("birds", + {to_player=player_name, gain = 1.0}) + minetest.set_timeofday((6000 % 24000) / 24000) + minetest.chat_send_player(player_name, + S("Time of day set to 6am")) + else + minetest.chat_send_player(player_name, + S("You don't have the settime priviledge!")) + end + end, +}) + +unified_inventory.register_button("misc_set_night", { + type = "image", + image = "ui_moon_icon.png", + tooltip = S("Set time to night"), + action = function(player) + local player_name = player:get_player_name() + if minetest.check_player_privs(player_name, {settime=true}) then + minetest.sound_play("owl", + {to_player=player_name, gain = 1.0}) + minetest.set_timeofday((21000 % 24000) / 24000) + minetest.chat_send_player(player_name, + S("Time of day set to 9pm")) + else + minetest.chat_send_player(player_name, + S("You don't have the settime priviledge!")) + end + end, +}) + +unified_inventory.register_button("clear_inv", { + type = "image", + image = "ui_trash_icon.png", + tooltip = S("Clear inventory"), + action = function(player) + local player_name = player:get_player_name() + if not unified_inventory.is_creative(player_name) then + minetest.chat_send_player(player_name, + S("This button has been disabled outside" + .." of creative mode to prevent" + .." accidental inventory trashing." + .."\nUse the trash slot instead.")) + return + end + player:get_inventory():set_list("main", {}) + minetest.chat_send_player(player_name, 'Inventory Cleared!') + minetest.sound_play("trash_all", + {to_player=player_name, gain = 1.0}) + end, +}) + +unified_inventory.register_page("craft", { + get_formspec = function(player, formspec) + local player_name = player:get_player_name() + local formspec = "background[0,1;8,3;ui_crafting_form.png]" + formspec = formspec.."background[0,4.5;8,4;ui_main_inventory.png]" + formspec = formspec.."label[0,0;Crafting]" + formspec = formspec.."listcolors[#00000000;#00000000]" + formspec = formspec.."list[current_player;craftpreview;6,1;1,1;]" + formspec = formspec.."list[current_player;craft;2,1;3,3;]" + formspec = formspec.."label[7,2.5;" .. S("Trash:") .. "]" + formspec = formspec.."list[detached:trash;main;7,3;1,1;]" + if unified_inventory.is_creative(player_name) then + formspec = formspec.."label[0,2.5;" .. S("Refill:") .. "]" + formspec = formspec.."list[detached:"..minetest.formspec_escape(player_name).."refill;main;0,3;1,1;]" + end + return {formspec=formspec} + end, +}) + + +-- stack_image_button(): generate a form button displaying a stack of items +-- +-- Normally a simple item_image_button[] is used. If the stack contains +-- more than one item, item_image_button[] doesn't have an option to +-- display an item count in the way that an inventory slot does, so +-- we have to fake it using the label facility. +-- +-- The specified item may be a group. In that case, the group will be +-- represented by some item in the group, along with a flag indicating +-- that it's a group. If the group contains only one item, it will be +-- treated as if that item had been specified directly. + +local function stack_image_button(x, y, w, h, buttonname_prefix, item) + local name = item:get_name() + local count = item:get_count() + local show_is_group = false + local displayitem = name + local selectitem = name + if name:sub(1, 6) == "group:" then + local group_name = name:sub(7) + local group_item = unified_inventory.get_group_item(group_name) + show_is_group = not group_item.sole + displayitem = group_item.item or "unknown" + selectitem = group_item.sole and displayitem or name + end + local label = string.format("\n\n%s%7d", show_is_group and "G" or " ", count):gsub(" 1$", " .") + if label == "\n\n ." then label = "" end + return string.format("item_image_button[%u,%u;%u,%u;%s;%s;%s]", + x, y, w, h, + minetest.formspec_escape(displayitem), + minetest.formspec_escape(buttonname_prefix..unified_inventory.mangle_for_formspec(selectitem)), + label) +end + +local recipe_text = { + recipe = "Recipe", + usage = "Usage", +} +local no_recipe_text = { + recipe = "No recipes", + usage = "No usages", +} +local role_text = { + recipe = "Result", + usage = "Ingredient", +} +local other_dir = { + recipe = "usage", + usage = "recipe", +} + +unified_inventory.register_page("craftguide", { + get_formspec = function(player) + local player_name = player:get_player_name() + local formspec = "" + formspec = formspec.."background[0,4.5;8,4;ui_main_inventory.png]" + formspec = formspec.."label[0,0;" .. S("Crafting Guide") .. "]" + formspec = formspec.."listcolors[#00000000;#00000000]" + local item_name = unified_inventory.current_item[player_name] + if not item_name then return {formspec=formspec} end + + local dir = unified_inventory.current_craft_direction[player_name] + local crafts = unified_inventory.crafts_for[dir][item_name] + local alternate = unified_inventory.alternate[player_name] + local alternates, craft + if crafts ~= nil and #crafts > 0 then + alternates = #crafts + craft = crafts[alternate] + end + + formspec = formspec.."background[0,1;8,3;ui_craftguide_form.png]" + formspec = formspec.."textarea[0.3,0.6;10,1;;"..minetest.formspec_escape(role_text[dir]..": "..item_name)..";]" + + if not craft then + formspec = formspec.."label[6,3.35;"..minetest.formspec_escape(no_recipe_text[dir]).."]" + local no_pos = dir == "recipe" and 4 or 6 + local item_pos = dir == "recipe" and 6 or 4 + formspec = formspec.."image["..no_pos..",1;1.1,1.1;ui_no.png]" + formspec = formspec..stack_image_button(item_pos, 1, 1.1, 1.1, "item_button_"..other_dir[dir].."_", ItemStack(item_name)) + return {formspec = formspec} + end + + local craft_type = unified_inventory.registered_craft_types[craft.type] or + unified_inventory.craft_type_defaults(craft.type, {}) + formspec = formspec.."label[6,3.35;" .. S("Method:") .. "]" + formspec = formspec.."label[6,3.75;" + ..minetest.formspec_escape(craft_type.description).."]" + formspec = formspec..stack_image_button(6, 1, 1.1, 1.1, "item_button_usage_", ItemStack(craft.output)) + local display_size = craft_type.dynamic_display_size and craft_type.dynamic_display_size(craft) or { width = craft_type.width, height = craft_type.height } + local craft_width = craft_type.get_shaped_craft_width and craft_type.get_shaped_craft_width(craft) or display_size.width + + -- This keeps recipes aligned to the right, + -- so that they're close to the arrow. + local xoffset = 1 + (3 - display_size.width) + for y = 1, display_size.height do + for x = 1, display_size.width do + local item + if craft and x <= craft_width then + item = craft.items[(y-1) * craft_width + x] + end + if item then + formspec = formspec..stack_image_button( + xoffset + x, y, 1.1, 1.1, + "item_button_recipe_", + ItemStack(item)) + else + -- Fake buttons just to make grid + formspec = formspec.."image_button[" + ..tostring(xoffset + x)..","..tostring(y) + ..";1,1;ui_blank_image.png;;]" + end + end + end + + if craft_type.uses_crafting_grid then + formspec = formspec.."label[6,1.95;" .. S("Copy to craft grid:") .. "]" + .."button[6,2.5;0.6,0.5;craftguide_craft_1;1]" + .."button[6.6,2.5;0.6,0.5;craftguide_craft_10;10]" + .."button[7.2,2.5;0.6,0.5;craftguide_craft_max;" .. S("All") .. "]" + end + + if alternates and alternates > 1 then + formspec = formspec.."label[0,2.6;"..recipe_text[dir].." " + ..tostring(alternate).." of " + ..tostring(alternates).."]" + .."button[0,3.15;2,1;alternate;" .. S("Alternate") .. "]" + end + return {formspec = formspec} + end, +}) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local amount + for k, v in pairs(fields) do + amount = k:match("craftguide_craft_(.*)") + if amount then break end + end + if not amount then return end + local player_name = player:get_player_name() + + local output = unified_inventory.current_item[player_name] + if (not output) or (output == "") then return end + + local player_inv = player:get_inventory() + + local crafts = unified_inventory.crafts_for[unified_inventory.current_craft_direction[player_name]][output] + if (not crafts) or (#crafts == 0) then return end + + local alternate = unified_inventory.alternate[player_name] + + local craft = crafts[alternate] + if craft.width > 3 then return end + + local needed = craft.items + + local craft_list = player_inv:get_list("craft") + + local width = craft.width + if width == 0 then + -- Shapeless recipe + width = 3 + end + + if amount == "max" then + amount = 99 -- Arbitrary; need better way to do this. + else + amount = tonumber(amount) + end + + for iter = 1, amount do + local index = 1 + for y = 1, 3 do + for x = 1, width do + local needed_item = needed[index] + if needed_item then + local craft_index = ((y - 1) * 3) + x + local craft_item = craft_list[craft_index] + if (not craft_item) or (craft_item:is_empty()) or (craft_item:get_name() == needed_item) then + itemname = craft_item and craft_item:get_name() or needed_item + local needed_stack = ItemStack(needed_item) + if player_inv:contains_item("main", needed_stack) then + local count = (craft_item and craft_item:get_count() or 0) + 1 + if count <= needed_stack:get_definition().stack_max then + local stack = ItemStack({name=needed_item, count=count}) + craft_list[craft_index] = stack + player_inv:remove_item("main", needed_stack) + end + end + end + end + index = index + 1 + end + end + end + + player_inv:set_list("craft", craft_list) + + unified_inventory.set_inventory_formspec(player, "craft") +end) diff --git a/mods/unified_inventory/sounds/birds.ogg b/mods/unified_inventory/sounds/birds.ogg new file mode 100644 index 00000000..4a933954 Binary files /dev/null and b/mods/unified_inventory/sounds/birds.ogg differ diff --git a/mods/unified_inventory/sounds/click.ogg b/mods/unified_inventory/sounds/click.ogg new file mode 100644 index 00000000..3db63a07 Binary files /dev/null and b/mods/unified_inventory/sounds/click.ogg differ diff --git a/mods/unified_inventory/sounds/dingdong.ogg b/mods/unified_inventory/sounds/dingdong.ogg new file mode 100644 index 00000000..2c9d7ef7 Binary files /dev/null and b/mods/unified_inventory/sounds/dingdong.ogg differ diff --git a/mods/unified_inventory/sounds/electricity.ogg b/mods/unified_inventory/sounds/electricity.ogg new file mode 100644 index 00000000..4cd7c846 Binary files /dev/null and b/mods/unified_inventory/sounds/electricity.ogg differ diff --git a/mods/unified_inventory/sounds/owl.ogg b/mods/unified_inventory/sounds/owl.ogg new file mode 100644 index 00000000..f30d0b3c Binary files /dev/null and b/mods/unified_inventory/sounds/owl.ogg differ diff --git a/mods/unified_inventory/sounds/paperflip1.ogg b/mods/unified_inventory/sounds/paperflip1.ogg new file mode 100644 index 00000000..eaed13f8 Binary files /dev/null and b/mods/unified_inventory/sounds/paperflip1.ogg differ diff --git a/mods/unified_inventory/sounds/paperflip2.ogg b/mods/unified_inventory/sounds/paperflip2.ogg new file mode 100644 index 00000000..321bc487 Binary files /dev/null and b/mods/unified_inventory/sounds/paperflip2.ogg differ diff --git a/mods/unified_inventory/sounds/teleport.ogg b/mods/unified_inventory/sounds/teleport.ogg new file mode 100644 index 00000000..ca32f745 Binary files /dev/null and b/mods/unified_inventory/sounds/teleport.ogg differ diff --git a/mods/unified_inventory/sounds/trash.ogg b/mods/unified_inventory/sounds/trash.ogg new file mode 100644 index 00000000..51e4f24a Binary files /dev/null and b/mods/unified_inventory/sounds/trash.ogg differ diff --git a/mods/unified_inventory/sounds/trash_all.ogg b/mods/unified_inventory/sounds/trash_all.ogg new file mode 100644 index 00000000..85c3f66c Binary files /dev/null and b/mods/unified_inventory/sounds/trash_all.ogg differ diff --git a/mods/unified_inventory/textures/bags_large.png b/mods/unified_inventory/textures/bags_large.png new file mode 100644 index 00000000..c26f0753 Binary files /dev/null and b/mods/unified_inventory/textures/bags_large.png differ diff --git a/mods/unified_inventory/textures/bags_medium.png b/mods/unified_inventory/textures/bags_medium.png new file mode 100644 index 00000000..7bc8030c Binary files /dev/null and b/mods/unified_inventory/textures/bags_medium.png differ diff --git a/mods/unified_inventory/textures/bags_small.png b/mods/unified_inventory/textures/bags_small.png new file mode 100644 index 00000000..e9656a58 Binary files /dev/null and b/mods/unified_inventory/textures/bags_small.png differ diff --git a/mods/unified_inventory/textures/ui_1_icon.png b/mods/unified_inventory/textures/ui_1_icon.png new file mode 100644 index 00000000..43605e07 Binary files /dev/null and b/mods/unified_inventory/textures/ui_1_icon.png differ diff --git a/mods/unified_inventory/textures/ui_2_icon.png b/mods/unified_inventory/textures/ui_2_icon.png new file mode 100644 index 00000000..dd645109 Binary files /dev/null and b/mods/unified_inventory/textures/ui_2_icon.png differ diff --git a/mods/unified_inventory/textures/ui_3_icon.png b/mods/unified_inventory/textures/ui_3_icon.png new file mode 100644 index 00000000..132dc3a3 Binary files /dev/null and b/mods/unified_inventory/textures/ui_3_icon.png differ diff --git a/mods/unified_inventory/textures/ui_4_icon.png b/mods/unified_inventory/textures/ui_4_icon.png new file mode 100644 index 00000000..9b7e430f Binary files /dev/null and b/mods/unified_inventory/textures/ui_4_icon.png differ diff --git a/mods/unified_inventory/textures/ui_5_icon.png b/mods/unified_inventory/textures/ui_5_icon.png new file mode 100644 index 00000000..699e08b2 Binary files /dev/null and b/mods/unified_inventory/textures/ui_5_icon.png differ diff --git a/mods/unified_inventory/textures/ui_bags_icon.png b/mods/unified_inventory/textures/ui_bags_icon.png new file mode 100644 index 00000000..d75ff8bf Binary files /dev/null and b/mods/unified_inventory/textures/ui_bags_icon.png differ diff --git a/mods/unified_inventory/textures/ui_bags_lg_form.png b/mods/unified_inventory/textures/ui_bags_lg_form.png new file mode 100644 index 00000000..15f511d2 Binary files /dev/null and b/mods/unified_inventory/textures/ui_bags_lg_form.png differ diff --git a/mods/unified_inventory/textures/ui_bags_main_form.png b/mods/unified_inventory/textures/ui_bags_main_form.png new file mode 100644 index 00000000..26e69386 Binary files /dev/null and b/mods/unified_inventory/textures/ui_bags_main_form.png differ diff --git a/mods/unified_inventory/textures/ui_bags_med_form.png b/mods/unified_inventory/textures/ui_bags_med_form.png new file mode 100644 index 00000000..f7868063 Binary files /dev/null and b/mods/unified_inventory/textures/ui_bags_med_form.png differ diff --git a/mods/unified_inventory/textures/ui_bags_sm_form.png b/mods/unified_inventory/textures/ui_bags_sm_form.png new file mode 100644 index 00000000..c77ff7c2 Binary files /dev/null and b/mods/unified_inventory/textures/ui_bags_sm_form.png differ diff --git a/mods/unified_inventory/textures/ui_blank_image.png b/mods/unified_inventory/textures/ui_blank_image.png new file mode 100644 index 00000000..f9bcda27 Binary files /dev/null and b/mods/unified_inventory/textures/ui_blank_image.png differ diff --git a/mods/unified_inventory/textures/ui_blue_icon_background.png b/mods/unified_inventory/textures/ui_blue_icon_background.png new file mode 100644 index 00000000..b4fa356f Binary files /dev/null and b/mods/unified_inventory/textures/ui_blue_icon_background.png differ diff --git a/mods/unified_inventory/textures/ui_circular_arrows_icon.png b/mods/unified_inventory/textures/ui_circular_arrows_icon.png new file mode 100644 index 00000000..968e4048 Binary files /dev/null and b/mods/unified_inventory/textures/ui_circular_arrows_icon.png differ diff --git a/mods/unified_inventory/textures/ui_colorbutton0.png b/mods/unified_inventory/textures/ui_colorbutton0.png new file mode 100644 index 00000000..35b7db27 Binary files /dev/null and b/mods/unified_inventory/textures/ui_colorbutton0.png differ diff --git a/mods/unified_inventory/textures/ui_colorbutton1.png b/mods/unified_inventory/textures/ui_colorbutton1.png new file mode 100644 index 00000000..cbf095df Binary files /dev/null and b/mods/unified_inventory/textures/ui_colorbutton1.png differ diff --git a/mods/unified_inventory/textures/ui_colorbutton10.png b/mods/unified_inventory/textures/ui_colorbutton10.png new file mode 100644 index 00000000..8dfc5f02 Binary files /dev/null and b/mods/unified_inventory/textures/ui_colorbutton10.png differ diff --git a/mods/unified_inventory/textures/ui_colorbutton11.png b/mods/unified_inventory/textures/ui_colorbutton11.png new file mode 100644 index 00000000..3b279e00 Binary files /dev/null and b/mods/unified_inventory/textures/ui_colorbutton11.png differ diff --git a/mods/unified_inventory/textures/ui_colorbutton12.png b/mods/unified_inventory/textures/ui_colorbutton12.png new file mode 100644 index 00000000..a387b5f9 Binary files /dev/null and b/mods/unified_inventory/textures/ui_colorbutton12.png differ diff --git a/mods/unified_inventory/textures/ui_colorbutton13.png b/mods/unified_inventory/textures/ui_colorbutton13.png new file mode 100644 index 00000000..b1e7790c Binary files /dev/null and b/mods/unified_inventory/textures/ui_colorbutton13.png differ diff --git a/mods/unified_inventory/textures/ui_colorbutton14.png b/mods/unified_inventory/textures/ui_colorbutton14.png new file mode 100644 index 00000000..c4ad4868 Binary files /dev/null and b/mods/unified_inventory/textures/ui_colorbutton14.png differ diff --git a/mods/unified_inventory/textures/ui_colorbutton15.png b/mods/unified_inventory/textures/ui_colorbutton15.png new file mode 100644 index 00000000..b7060d67 Binary files /dev/null and b/mods/unified_inventory/textures/ui_colorbutton15.png differ diff --git a/mods/unified_inventory/textures/ui_colorbutton2.png b/mods/unified_inventory/textures/ui_colorbutton2.png new file mode 100644 index 00000000..caf1fc6f Binary files /dev/null and b/mods/unified_inventory/textures/ui_colorbutton2.png differ diff --git a/mods/unified_inventory/textures/ui_colorbutton3.png b/mods/unified_inventory/textures/ui_colorbutton3.png new file mode 100644 index 00000000..6ac79a35 Binary files /dev/null and b/mods/unified_inventory/textures/ui_colorbutton3.png differ diff --git a/mods/unified_inventory/textures/ui_colorbutton4.png b/mods/unified_inventory/textures/ui_colorbutton4.png new file mode 100644 index 00000000..dc435921 Binary files /dev/null and b/mods/unified_inventory/textures/ui_colorbutton4.png differ diff --git a/mods/unified_inventory/textures/ui_colorbutton5.png b/mods/unified_inventory/textures/ui_colorbutton5.png new file mode 100644 index 00000000..98b8c67f Binary files /dev/null and b/mods/unified_inventory/textures/ui_colorbutton5.png differ diff --git a/mods/unified_inventory/textures/ui_colorbutton6.png b/mods/unified_inventory/textures/ui_colorbutton6.png new file mode 100644 index 00000000..66478bc5 Binary files /dev/null and b/mods/unified_inventory/textures/ui_colorbutton6.png differ diff --git a/mods/unified_inventory/textures/ui_colorbutton7.png b/mods/unified_inventory/textures/ui_colorbutton7.png new file mode 100644 index 00000000..85f6b93b Binary files /dev/null and b/mods/unified_inventory/textures/ui_colorbutton7.png differ diff --git a/mods/unified_inventory/textures/ui_colorbutton8.png b/mods/unified_inventory/textures/ui_colorbutton8.png new file mode 100644 index 00000000..868c35d0 Binary files /dev/null and b/mods/unified_inventory/textures/ui_colorbutton8.png differ diff --git a/mods/unified_inventory/textures/ui_colorbutton9.png b/mods/unified_inventory/textures/ui_colorbutton9.png new file mode 100644 index 00000000..50eac0b5 Binary files /dev/null and b/mods/unified_inventory/textures/ui_colorbutton9.png differ diff --git a/mods/unified_inventory/textures/ui_copper_chest_inventory.png b/mods/unified_inventory/textures/ui_copper_chest_inventory.png new file mode 100644 index 00000000..debc9fca Binary files /dev/null and b/mods/unified_inventory/textures/ui_copper_chest_inventory.png differ diff --git a/mods/unified_inventory/textures/ui_craft_icon.png b/mods/unified_inventory/textures/ui_craft_icon.png new file mode 100644 index 00000000..727b645f Binary files /dev/null and b/mods/unified_inventory/textures/ui_craft_icon.png differ diff --git a/mods/unified_inventory/textures/ui_craftguide_form.png b/mods/unified_inventory/textures/ui_craftguide_form.png new file mode 100644 index 00000000..e103c049 Binary files /dev/null and b/mods/unified_inventory/textures/ui_craftguide_form.png differ diff --git a/mods/unified_inventory/textures/ui_craftguide_icon.png b/mods/unified_inventory/textures/ui_craftguide_icon.png new file mode 100644 index 00000000..079aacbf Binary files /dev/null and b/mods/unified_inventory/textures/ui_craftguide_icon.png differ diff --git a/mods/unified_inventory/textures/ui_crafting_form.png b/mods/unified_inventory/textures/ui_crafting_form.png new file mode 100644 index 00000000..74389ed3 Binary files /dev/null and b/mods/unified_inventory/textures/ui_crafting_form.png differ diff --git a/mods/unified_inventory/textures/ui_doubleleft_icon.png b/mods/unified_inventory/textures/ui_doubleleft_icon.png new file mode 100644 index 00000000..b9dcfc40 Binary files /dev/null and b/mods/unified_inventory/textures/ui_doubleleft_icon.png differ diff --git a/mods/unified_inventory/textures/ui_doubleright_icon.png b/mods/unified_inventory/textures/ui_doubleright_icon.png new file mode 100644 index 00000000..f56d4048 Binary files /dev/null and b/mods/unified_inventory/textures/ui_doubleright_icon.png differ diff --git a/mods/unified_inventory/textures/ui_form_bg.png b/mods/unified_inventory/textures/ui_form_bg.png new file mode 100644 index 00000000..37683f05 Binary files /dev/null and b/mods/unified_inventory/textures/ui_form_bg.png differ diff --git a/mods/unified_inventory/textures/ui_furnace_inventory.png b/mods/unified_inventory/textures/ui_furnace_inventory.png new file mode 100644 index 00000000..ce84efb1 Binary files /dev/null and b/mods/unified_inventory/textures/ui_furnace_inventory.png differ diff --git a/mods/unified_inventory/textures/ui_gohome_icon.png b/mods/unified_inventory/textures/ui_gohome_icon.png new file mode 100644 index 00000000..57b448cf Binary files /dev/null and b/mods/unified_inventory/textures/ui_gohome_icon.png differ diff --git a/mods/unified_inventory/textures/ui_gold_chest_inventory.png b/mods/unified_inventory/textures/ui_gold_chest_inventory.png new file mode 100644 index 00000000..b19524b3 Binary files /dev/null and b/mods/unified_inventory/textures/ui_gold_chest_inventory.png differ diff --git a/mods/unified_inventory/textures/ui_green_icon_background.png b/mods/unified_inventory/textures/ui_green_icon_background.png new file mode 100644 index 00000000..21b4f414 Binary files /dev/null and b/mods/unified_inventory/textures/ui_green_icon_background.png differ diff --git a/mods/unified_inventory/textures/ui_group.png b/mods/unified_inventory/textures/ui_group.png new file mode 100644 index 00000000..8de5a775 Binary files /dev/null and b/mods/unified_inventory/textures/ui_group.png differ diff --git a/mods/unified_inventory/textures/ui_home_icon.png b/mods/unified_inventory/textures/ui_home_icon.png new file mode 100644 index 00000000..6e1efca9 Binary files /dev/null and b/mods/unified_inventory/textures/ui_home_icon.png differ diff --git a/mods/unified_inventory/textures/ui_hv_battery_box.png b/mods/unified_inventory/textures/ui_hv_battery_box.png new file mode 100644 index 00000000..61c55deb Binary files /dev/null and b/mods/unified_inventory/textures/ui_hv_battery_box.png differ diff --git a/mods/unified_inventory/textures/ui_iron_chest_inventory.png b/mods/unified_inventory/textures/ui_iron_chest_inventory.png new file mode 100644 index 00000000..1785f888 Binary files /dev/null and b/mods/unified_inventory/textures/ui_iron_chest_inventory.png differ diff --git a/mods/unified_inventory/textures/ui_left_icon.png b/mods/unified_inventory/textures/ui_left_icon.png new file mode 100644 index 00000000..2534c777 Binary files /dev/null and b/mods/unified_inventory/textures/ui_left_icon.png differ diff --git a/mods/unified_inventory/textures/ui_lv_alloy_furnace.png b/mods/unified_inventory/textures/ui_lv_alloy_furnace.png new file mode 100644 index 00000000..3b986500 Binary files /dev/null and b/mods/unified_inventory/textures/ui_lv_alloy_furnace.png differ diff --git a/mods/unified_inventory/textures/ui_lv_battery_box.png b/mods/unified_inventory/textures/ui_lv_battery_box.png new file mode 100644 index 00000000..61c55deb Binary files /dev/null and b/mods/unified_inventory/textures/ui_lv_battery_box.png differ diff --git a/mods/unified_inventory/textures/ui_lv_electric_furnace.png b/mods/unified_inventory/textures/ui_lv_electric_furnace.png new file mode 100644 index 00000000..a91b241a Binary files /dev/null and b/mods/unified_inventory/textures/ui_lv_electric_furnace.png differ diff --git a/mods/unified_inventory/textures/ui_lv_grinder.png b/mods/unified_inventory/textures/ui_lv_grinder.png new file mode 100644 index 00000000..7af5155f Binary files /dev/null and b/mods/unified_inventory/textures/ui_lv_grinder.png differ diff --git a/mods/unified_inventory/textures/ui_main_inventory.png b/mods/unified_inventory/textures/ui_main_inventory.png new file mode 100644 index 00000000..b65dabbb Binary files /dev/null and b/mods/unified_inventory/textures/ui_main_inventory.png differ diff --git a/mods/unified_inventory/textures/ui_misc_form.png b/mods/unified_inventory/textures/ui_misc_form.png new file mode 100644 index 00000000..d34d3264 Binary files /dev/null and b/mods/unified_inventory/textures/ui_misc_form.png differ diff --git a/mods/unified_inventory/textures/ui_mithril_chest_inventory.png b/mods/unified_inventory/textures/ui_mithril_chest_inventory.png new file mode 100644 index 00000000..90547756 Binary files /dev/null and b/mods/unified_inventory/textures/ui_mithril_chest_inventory.png differ diff --git a/mods/unified_inventory/textures/ui_moon_icon.png b/mods/unified_inventory/textures/ui_moon_icon.png new file mode 100644 index 00000000..f43fff84 Binary files /dev/null and b/mods/unified_inventory/textures/ui_moon_icon.png differ diff --git a/mods/unified_inventory/textures/ui_mv_battery_box.png b/mods/unified_inventory/textures/ui_mv_battery_box.png new file mode 100644 index 00000000..61c55deb Binary files /dev/null and b/mods/unified_inventory/textures/ui_mv_battery_box.png differ diff --git a/mods/unified_inventory/textures/ui_no.png b/mods/unified_inventory/textures/ui_no.png new file mode 100644 index 00000000..ad9470bc Binary files /dev/null and b/mods/unified_inventory/textures/ui_no.png differ diff --git a/mods/unified_inventory/textures/ui_off_icon.png b/mods/unified_inventory/textures/ui_off_icon.png new file mode 100644 index 00000000..1933742d Binary files /dev/null and b/mods/unified_inventory/textures/ui_off_icon.png differ diff --git a/mods/unified_inventory/textures/ui_ok_icon.png b/mods/unified_inventory/textures/ui_ok_icon.png new file mode 100644 index 00000000..e22b2bc4 Binary files /dev/null and b/mods/unified_inventory/textures/ui_ok_icon.png differ diff --git a/mods/unified_inventory/textures/ui_on_icon.png b/mods/unified_inventory/textures/ui_on_icon.png new file mode 100644 index 00000000..bb34cebe Binary files /dev/null and b/mods/unified_inventory/textures/ui_on_icon.png differ diff --git a/mods/unified_inventory/textures/ui_pencil_icon.png b/mods/unified_inventory/textures/ui_pencil_icon.png new file mode 100644 index 00000000..ab5ed5eb Binary files /dev/null and b/mods/unified_inventory/textures/ui_pencil_icon.png differ diff --git a/mods/unified_inventory/textures/ui_red_icon_background.png b/mods/unified_inventory/textures/ui_red_icon_background.png new file mode 100644 index 00000000..c925689c Binary files /dev/null and b/mods/unified_inventory/textures/ui_red_icon_background.png differ diff --git a/mods/unified_inventory/textures/ui_right_icon.png b/mods/unified_inventory/textures/ui_right_icon.png new file mode 100644 index 00000000..5c2e7c56 Binary files /dev/null and b/mods/unified_inventory/textures/ui_right_icon.png differ diff --git a/mods/unified_inventory/textures/ui_search_icon.png b/mods/unified_inventory/textures/ui_search_icon.png new file mode 100644 index 00000000..b7284d13 Binary files /dev/null and b/mods/unified_inventory/textures/ui_search_icon.png differ diff --git a/mods/unified_inventory/textures/ui_sethome_icon.png b/mods/unified_inventory/textures/ui_sethome_icon.png new file mode 100644 index 00000000..7dbf1dc8 Binary files /dev/null and b/mods/unified_inventory/textures/ui_sethome_icon.png differ diff --git a/mods/unified_inventory/textures/ui_silver_chest_inventory.png b/mods/unified_inventory/textures/ui_silver_chest_inventory.png new file mode 100644 index 00000000..a61c4b96 Binary files /dev/null and b/mods/unified_inventory/textures/ui_silver_chest_inventory.png differ diff --git a/mods/unified_inventory/textures/ui_skip_backward_icon.png b/mods/unified_inventory/textures/ui_skip_backward_icon.png new file mode 100644 index 00000000..695d410c Binary files /dev/null and b/mods/unified_inventory/textures/ui_skip_backward_icon.png differ diff --git a/mods/unified_inventory/textures/ui_skip_forward_icon.png b/mods/unified_inventory/textures/ui_skip_forward_icon.png new file mode 100644 index 00000000..bd6948e2 Binary files /dev/null and b/mods/unified_inventory/textures/ui_skip_forward_icon.png differ diff --git a/mods/unified_inventory/textures/ui_sun_icon.png b/mods/unified_inventory/textures/ui_sun_icon.png new file mode 100644 index 00000000..89bb77c5 Binary files /dev/null and b/mods/unified_inventory/textures/ui_sun_icon.png differ diff --git a/mods/unified_inventory/textures/ui_trash_icon.png b/mods/unified_inventory/textures/ui_trash_icon.png new file mode 100644 index 00000000..180c827a Binary files /dev/null and b/mods/unified_inventory/textures/ui_trash_icon.png differ diff --git a/mods/unified_inventory/textures/ui_waypoint_set_icon.png b/mods/unified_inventory/textures/ui_waypoint_set_icon.png new file mode 100644 index 00000000..ee44c4cb Binary files /dev/null and b/mods/unified_inventory/textures/ui_waypoint_set_icon.png differ diff --git a/mods/unified_inventory/textures/ui_waypoints_icon.png b/mods/unified_inventory/textures/ui_waypoints_icon.png new file mode 100644 index 00000000..e0281af0 Binary files /dev/null and b/mods/unified_inventory/textures/ui_waypoints_icon.png differ diff --git a/mods/unified_inventory/textures/ui_wooden_chest_inventory.png b/mods/unified_inventory/textures/ui_wooden_chest_inventory.png new file mode 100644 index 00000000..145d9d22 Binary files /dev/null and b/mods/unified_inventory/textures/ui_wooden_chest_inventory.png differ diff --git a/mods/unified_inventory/textures/ui_xyz_icon.png b/mods/unified_inventory/textures/ui_xyz_icon.png new file mode 100644 index 00000000..dabea81b Binary files /dev/null and b/mods/unified_inventory/textures/ui_xyz_icon.png differ diff --git a/mods/unified_inventory/textures/ui_xyz_off_icon.png b/mods/unified_inventory/textures/ui_xyz_off_icon.png new file mode 100644 index 00000000..8e459464 Binary files /dev/null and b/mods/unified_inventory/textures/ui_xyz_off_icon.png differ diff --git a/mods/unified_inventory/textures/ui_xyz_on_icon.png b/mods/unified_inventory/textures/ui_xyz_on_icon.png new file mode 100644 index 00000000..dabea81b Binary files /dev/null and b/mods/unified_inventory/textures/ui_xyz_on_icon.png differ diff --git a/mods/unified_inventory/waypoints.lua b/mods/unified_inventory/waypoints.lua new file mode 100644 index 00000000..062814d8 --- /dev/null +++ b/mods/unified_inventory/waypoints.lua @@ -0,0 +1,245 @@ +local S +if intllib then + S = intllib.Getter() +else + S = function(s) return s end +end + +local hud_colors = { + {"#FFFFFF", 0xFFFFFF, S("White")}, + {"#DBBB00", 0xf1d32c, S("Yellow")}, + {"#DD0000", 0xDD0000, S("Red")}, + {"#2cf136", 0x2cf136, S("Green")}, + {"#2c4df1", 0x2c4df1, S("Blue")}, +} + +local hud_colors_max = #hud_colors + +-- Stores temporary player data (persists until player leaves) +local waypoints_temp = {} + +unified_inventory.register_page("waypoints", { + get_formspec = function(player) + local player_name = player:get_player_name() + local waypoints = datastorage.get(player_name, "waypoints") + local formspec = "background[0,4.5;8,4;ui_main_inventory.png]" .. + "image[0,0;1,1;ui_waypoints_icon.png]" .. + "label[1,0;" .. S("Waypoints") .. "]" + + -- Tabs buttons: + for i = 1, 5, 1 do + formspec = formspec .. + "image_button[0.0," .. 0.2 + i * 0.7 .. ";.8,.8;" .. + (i == waypoints.selected and "ui_blue_icon_background.png^" or "") .. + "ui_" .. i .. "_icon.png;" .. + "select_waypoint" .. i .. ";]" .. + "tooltip[select_waypoint" .. i .. ";" + .. minetest.formspec_escape(S("Select Waypoint #%d"):format(i)).."]" + end + + local i = waypoints.selected or 1 + local waypoint = waypoints[i] or {} + local temp = waypoints_temp[player_name][i] or {} + local default_name = "Waypoint "..i + + -- Main buttons: + formspec = formspec .. + "image_button[4.5,3.7;.8,.8;".. + "ui_waypoint_set_icon.png;".. + "set_waypoint"..i..";]".. + "tooltip[set_waypoint" .. i .. ";" + .. minetest.formspec_escape(S("Set waypoint to current location")).."]" + + formspec = formspec .. + "image_button[5.2,3.7;.8,.8;".. + (waypoint.active and "ui_on_icon.png" or "ui_off_icon.png")..";".. + "toggle_waypoint"..i..";]".. + "tooltip[toggle_waypoint" .. i .. ";" + .. minetest.formspec_escape(S("Make waypoint " + ..(waypoint.active and "invisible" or "visible"))).."]" + + formspec = formspec .. + "image_button[5.9,3.7;.8,.8;".. + (waypoint.display_pos and "ui_green_icon_background.png" or "ui_red_icon_background.png").."^ui_xyz_icon.png;".. + "toggle_display_pos" .. i .. ";]".. + "tooltip[toggle_display_pos" .. i .. ";" + .. minetest.formspec_escape(S((waypoint.display_pos and "Disable" or "Enable") + .." display of waypoint coordinates")).."]" + + formspec = formspec .. + "image_button[6.6,3.7;.8,.8;".. + "ui_circular_arrows_icon.png;".. + "toggle_color"..i..";]".. + "tooltip[toggle_color" .. i .. ";" + .. minetest.formspec_escape(S("Change color of waypoint display")).."]" + + formspec = formspec .. + "image_button[7.3,3.7;.8,.8;".. + "ui_pencil_icon.png;".. + "rename_waypoint"..i..";]".. + "tooltip[rename_waypoint" .. i .. ";" + .. minetest.formspec_escape(S("Edit waypoint name")).."]" + + -- Waypoint's info: + if waypoint.active then + formspec = formspec .. "label[1,0.8;"..S("Waypoint active").."]" + else + formspec = formspec .. "label[1,0.8;"..S("Waypoint inactive").."]" + end + + if temp.edit then + formspec = formspec .. + "field[1.3,3.2;6,.8;rename_box" .. i .. ";;" + ..(waypoint.name or default_name).."]" .. + "image_button[7.3,2.9;.8,.8;".. + "ui_ok_icon.png;".. + "confirm_rename"..i.. ";]".. + "tooltip[confirm_rename" .. i .. ";" + .. minetest.formspec_escape(S("Finish editing")).."]" + end + + formspec = formspec .. "label[1,1.3;"..S("World position")..": " .. + minetest.pos_to_string(waypoint.world_pos or vector.new()) .. "]" .. + "label[1,1.8;"..S("Name")..": ".. (waypoint.name or default_name) .. "]" .. + "label[1,2.3;"..S("HUD text color")..": " .. + hud_colors[waypoint.color or 1][3] .. "]" + + return {formspec=formspec} + end, +}) + +unified_inventory.register_button("waypoints", { + type = "image", + image = "ui_waypoints_icon.png", + tooltip = S("Waypoints"), +}) + +local function update_hud(player, waypoints, temp, i) + local waypoint = waypoints[i] + if not waypoint then return end + temp[i] = temp[i] or {} + temp = temp[i] + local pos = waypoint.world_pos or vector.new() + local name + if waypoint.display_pos then + name = minetest.pos_to_string(pos) + if waypoint.name then + name = name..", "..waypoint.name + end + else + name = waypoint.name or "Waypoint "..i + end + if temp.hud then + player:hud_remove(temp.hud) + end + if waypoint.active then + temp.hud = player:hud_add({ + hud_elem_type = "waypoint", + number = hud_colors[waypoint.color or 1][2] , + name = name, + text = "m", + world_pos = pos + }) + else + temp.hud = nil + end +end + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "" then return end + + local player_name = player:get_player_name() + local update_formspec = false + local need_update_hud = false + local hit = false + + local waypoints = datastorage.get(player_name, "waypoints") + local temp = waypoints_temp[player_name] + for i = 1, 5, 1 do + if fields["select_waypoint"..i] then + hit = true + waypoints.selected = i + update_formspec = true + end + + if fields["toggle_waypoint"..i] then + hit = true + waypoints[i] = waypoints[i] or {} + waypoints[i].active = not (waypoints[i].active) + need_update_hud = true + update_formspec = true + end + + if fields["set_waypoint"..i] then + hit = true + local pos = player:getpos() + pos.x = math.floor(pos.x) + pos.y = math.floor(pos.y) + pos.z = math.floor(pos.z) + waypoints[i] = waypoints[i] or {} + waypoints[i].world_pos = pos + need_update_hud = true + update_formspec = true + end + + if fields["rename_waypoint"..i] then + hit = true + waypoints[i] = waypoints[i] or {} + temp[i].edit = true + update_formspec = true + end + + if fields["toggle_display_pos"..i] then + hit = true + waypoints[i] = waypoints[i] or {} + waypoints[i].display_pos = not waypoints[i].display_pos + need_update_hud = true + update_formspec = true + end + + if fields["toggle_color"..i] then + hit = true + waypoints[i] = waypoints[i] or {} + local color = waypoints[i].color or 1 + color = color + 1 + if color > hud_colors_max then + color = 1 + end + waypoints[i].color = color + need_update_hud = true + update_formspec = true + end + + if fields["confirm_rename"..i] then + hit = true + waypoints[i] = waypoints[i] or {} + temp[i].edit = false + waypoints[i].name = fields["rename_box"..i] + need_update_hud = true + update_formspec = true + end + if need_update_hud then + update_hud(player, waypoints, temp, i) + end + if update_formspec then + unified_inventory.set_inventory_formspec(player, "waypoints") + end + if hit then return end + end +end) + + +minetest.register_on_joinplayer(function(player) + local player_name = player:get_player_name() + local waypoints = datastorage.get(player_name, "waypoints") + local temp = {} + waypoints_temp[player_name] = temp + for i = 1, 5 do + update_hud(player, waypoints, temp, i) + end +end) + +minetest.register_on_leaveplayer(function(player) + waypoints_temp[player:get_player_name()] = nil +end) + diff --git a/mods/unifieddyes/.gitignore b/mods/unifieddyes/.gitignore new file mode 100755 index 00000000..b25c15b8 --- /dev/null +++ b/mods/unifieddyes/.gitignore @@ -0,0 +1 @@ +*~ diff --git a/mods/unifieddyes/LICENSE b/mods/unifieddyes/LICENSE new file mode 100755 index 00000000..e01d2312 --- /dev/null +++ b/mods/unifieddyes/LICENSE @@ -0,0 +1,614 @@ +LICENSING INFORMATION + +For everything but the bucket textures, GPL 2.0 + +----- + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) 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 +this service 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 make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. 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. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +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 +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the 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 a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE 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. + + END OF TERMS AND CONDITIONS + +============================================================================== + +For the bucket textures, CC-BY-SA 3.0 + +----- + +CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL +SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT +RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. +CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND +DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. + +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE +COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY +COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS +AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE +BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE +CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE +IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + + "Adaptation" means a work based upon the Work, or upon the Work and other +pre-existing works, such as a translation, adaptation, derivative work, +arrangement of music or other alterations of a literary or artistic work, or +phonogram or performance and includes cinematographic adaptations or any other +form in which the Work may be recast, transformed, or adapted including in any +form recognizably derived from the original, except that a work that +constitutes a Collection will not be considered an Adaptation for the purpose +of this License. For the avoidance of doubt, where the Work is a musical work, +performance or phonogram, the synchronization of the Work in timed-relation +with a moving image ("synching") will be considered an Adaptation for the +purpose of this License. + "Collection" means a collection of literary or artistic works, such as +encyclopedias and anthologies, or performances, phonograms or broadcasts, or +other works or subject matter other than works listed in Section 1(f) below, +which, by reason of the selection and arrangement of their contents, constitute +intellectual creations, in which the Work is included in its entirety in +unmodified form along with one or more other contributions, each constituting +separate and independent works in themselves, which together are assembled into +a collective whole. A work that constitutes a Collection will not be considered +an Adaptation (as defined below) for the purposes of this License. + "Creative Commons Compatible License" means a license that is listed at +http://creativecommons.org/compatiblelicenses that has been approved by +Creative Commons as being essentially equivalent to this License, including, at +a minimum, because that license: (i) contains terms that have the same purpose, +meaning and effect as the License Elements of this License; and, (ii) +explicitly permits the relicensing of adaptations of works made available under +that license under this License or a Creative Commons jurisdiction license with +the same License Elements as this License. + "Distribute" means to make available to the public the original and copies +of the Work or Adaptation, as appropriate, through sale or other transfer of +ownership. + "License Elements" means the following high-level license attributes as +selected by Licensor and indicated in the title of this License: Attribution, +ShareAlike. + "Licensor" means the individual, individuals, entity or entities that +offer(s) the Work under the terms of this License. + "Original Author" means, in the case of a literary or artistic work, the +individual, individuals, entity or entities who created the Work or if no +individual or entity can be identified, the publisher; and in addition (i) in +the case of a performance the actors, singers, musicians, dancers, and other +persons who act, sing, deliver, declaim, play in, interpret or otherwise +perform literary or artistic works or expressions of folklore; (ii) in the case +of a phonogram the producer being the person or legal entity who first fixes +the sounds of a performance or other sounds; and, (iii) in the case of +broadcasts, the organization that transmits the broadcast. + "Work" means the literary and/or artistic work offered under the terms of +this License including without limitation any production in the literary, +scientific and artistic domain, whatever may be the mode or form of its +expression including digital form, such as a book, pamphlet and other writing; +a lecture, address, sermon or other work of the same nature; a dramatic or +dramatico-musical work; a choreographic work or entertainment in dumb show; a +musical composition with or without words; a cinematographic work to which are +assimilated works expressed by a process analogous to cinematography; a work of +drawing, painting, architecture, sculpture, engraving or lithography; a +photographic work to which are assimilated works expressed by a process +analogous to photography; a work of applied art; an illustration, map, plan, +sketch or three-dimensional work relative to geography, topography, +architecture or science; a performance; a broadcast; a phonogram; a compilation +of data to the extent it is protected as a copyrightable work; or a work +performed by a variety or circus performer to the extent it is not otherwise +considered a literary or artistic work. + "You" means an individual or entity exercising rights under this License +who has not previously violated the terms of this License with respect to the +Work, or who has received express permission from the Licensor to exercise +rights under this License despite a previous violation. + "Publicly Perform" means to perform public recitations of the Work and to +communicate to the public those public recitations, by any means or process, +including by wire or wireless means or public digital performances; to make +available to the public Works in such a way that members of the public may +access these Works from a place and at a place individually chosen by them; to +perform the Work to the public by any means or process and the communication to +the public of the performances of the Work, including by public digital +performance; to broadcast and rebroadcast the Work by any means including +signs, sounds or images. + "Reproduce" means to make copies of the Work by any means including without +limitation by sound or visual recordings and the right of fixation and +reproducing fixations of the Work, including storage of a protected performance +or phonogram in digital form or other electronic medium. + +2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, +or restrict any uses free from copyright or rights arising from limitations or +exceptions that are provided for in connection with the copyright protection +under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor +hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the +duration of the applicable copyright) license to exercise the rights in the +Work as stated below: + + to Reproduce the Work, to incorporate the Work into one or more +Collections, and to Reproduce the Work as incorporated in the Collections; + to create and Reproduce Adaptations provided that any such Adaptation, +including any translation in any medium, takes reasonable steps to clearly +label, demarcate or otherwise identify that changes were made to the original +Work. For example, a translation could be marked "The original work was +translated from English to Spanish," or a modification could indicate "The +original work has been modified."; + to Distribute and Publicly Perform the Work including as incorporated in +Collections; and, + to Distribute and Publicly Perform Adaptations. + + For the avoidance of doubt: + Non-waivable Compulsory License Schemes. In those jurisdictions in +which the right to collect royalties through any statutory or compulsory +licensing scheme cannot be waived, the Licensor reserves the exclusive right to +collect such royalties for any exercise by You of the rights granted under this +License; + Waivable Compulsory License Schemes. In those jurisdictions in which +the right to collect royalties through any statutory or compulsory licensing +scheme can be waived, the Licensor waives the exclusive right to collect such +royalties for any exercise by You of the rights granted under this License; +and, + Voluntary License Schemes. The Licensor waives the right to collect +royalties, whether individually or, in the event that the Licensor is a member +of a collecting society that administers voluntary licensing schemes, via that +society, from any exercise by You of the rights granted under this License. + +The above rights may be exercised in all media and formats whether now known or +hereafter devised. The above rights include the right to make such +modifications as are technically necessary to exercise the rights in other +media and formats. Subject to Section 8(f), all rights not expressly granted by +Licensor are hereby reserved. + +4. Restrictions. The license granted in Section 3 above is expressly made +subject to and limited by the following restrictions: + + You may Distribute or Publicly Perform the Work only under the terms of +this License. You must include a copy of, or the Uniform Resource Identifier +(URI) for, this License with every copy of the Work You Distribute or Publicly +Perform. You may not offer or impose any terms on the Work that restrict the +terms of this License or the ability of the recipient of the Work to exercise +the rights granted to that recipient under the terms of the License. You may +not sublicense the Work. You must keep intact all notices that refer to this +License and to the disclaimer of warranties with every copy of the Work You +Distribute or Publicly Perform. When You Distribute or Publicly Perform the +Work, You may not impose any effective technological measures on the Work that +restrict the ability of a recipient of the Work from You to exercise the rights +granted to that recipient under the terms of the License. This Section 4(a) +applies to the Work as incorporated in a Collection, but this does not require +the Collection apart from the Work itself to be made subject to the terms of +this License. If You create a Collection, upon notice from any Licensor You +must, to the extent practicable, remove from the Collection any credit as +required by Section 4(c), as requested. If You create an Adaptation, upon +notice from any Licensor You must, to the extent practicable, remove from the +Adaptation any credit as required by Section 4(c), as requested. + You may Distribute or Publicly Perform an Adaptation only under the terms +of: (i) this License; (ii) a later version of this License with the same +License Elements as this License; (iii) a Creative Commons jurisdiction license +(either this or a later license version) that contains the same License +Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a +Creative Commons Compatible License. If you license the Adaptation under one of +the licenses mentioned in (iv), you must comply with the terms of that license. +If you license the Adaptation under the terms of any of the licenses mentioned +in (i), (ii) or (iii) (the "Applicable License"), you must comply with the +terms of the Applicable License generally and the following provisions: (I) You +must include a copy of, or the URI for, the Applicable License with every copy +of each Adaptation You Distribute or Publicly Perform; (II) You may not offer +or impose any terms on the Adaptation that restrict the terms of the Applicable +License or the ability of the recipient of the Adaptation to exercise the +rights granted to that recipient under the terms of the Applicable License; +(III) You must keep intact all notices that refer to the Applicable License and +to the disclaimer of warranties with every copy of the Work as included in the +Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or +Publicly Perform the Adaptation, You may not impose any effective technological +measures on the Adaptation that restrict the ability of a recipient of the +Adaptation from You to exercise the rights granted to that recipient under the +terms of the Applicable License. This Section 4(b) applies to the Adaptation as +incorporated in a Collection, but this does not require the Collection apart +from the Adaptation itself to be made subject to the terms of the Applicable +License. + If You Distribute, or Publicly Perform the Work or any Adaptations or +Collections, You must, unless a request has been made pursuant to Section 4(a), +keep intact all copyright notices for the Work and provide, reasonable to the +medium or means You are utilizing: (i) the name of the Original Author (or +pseudonym, if applicable) if supplied, and/or if the Original Author and/or +Licensor designate another party or parties (e.g., a sponsor institute, +publishing entity, journal) for attribution ("Attribution Parties") in +Licensor's copyright notice, terms of service or by other reasonable means, the +name of such party or parties; (ii) the title of the Work if supplied; (iii) to +the extent reasonably practicable, the URI, if any, that Licensor specifies to +be associated with the Work, unless such URI does not refer to the copyright +notice or licensing information for the Work; and (iv) , consistent with +Ssection 3(b), in the case of an Adaptation, a credit identifying the use of +the Work in the Adaptation (e.g., "French translation of the Work by Original +Author," or "Screenplay based on original Work by Original Author"). The credit +required by this Section 4(c) may be implemented in any reasonable manner; +provided, however, that in the case of a Adaptation or Collection, at a minimum +such credit will appear, if a credit for all contributing authors of the +Adaptation or Collection appears, then as part of these credits and in a manner +at least as prominent as the credits for the other contributing authors. For +the avoidance of doubt, You may only use the credit required by this Section +for the purpose of attribution in the manner set out above and, by exercising +Your rights under this License, You may not implicitly or explicitly assert or +imply any connection with, sponsorship or endorsement by the Original Author, +Licensor and/or Attribution Parties, as appropriate, of You or Your use of the +Work, without the separate, express prior written permission of the Original +Author, Licensor and/or Attribution Parties. + Except as otherwise agreed in writing by the Licensor or as may be +otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly +Perform the Work either by itself or as part of any Adaptations or Collections, +You must not distort, mutilate, modify or take other derogatory action in +relation to the Work which would be prejudicial to the Original Author's honor +or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in +which any exercise of the right granted in Section 3(b) of this License (the +right to make Adaptations) would be deemed to be a distortion, mutilation, +modification or other derogatory action prejudicial to the Original Author's +honor and reputation, the Licensor will waive or not assert, as appropriate, +this Section, to the fullest extent permitted by the applicable national law, +to enable You to reasonably exercise Your right under Section 3(b) of this +License (right to make Adaptations) but not otherwise. + +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS +THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND +CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, +WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A +PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, +ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. +SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH +EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN +NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, +INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS +LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +7. Termination + + This License and the rights granted hereunder will terminate automatically +upon any breach by You of the terms of this License. Individuals or entities +who have received Adaptations or Collections from You under this License, +however, will not have their licenses terminated provided such individuals or +entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, +and 8 will survive any termination of this License. + Subject to the above terms and conditions, the license granted here is +perpetual (for the duration of the applicable copyright in the Work). +Notwithstanding the above, Licensor reserves the right to release the Work +under different license terms or to stop distributing the Work at any time; +provided, however that any such election will not serve to withdraw this +License (or any other license that has been, or is required to be, granted +under the terms of this License), and this License will continue in full force +and effect unless terminated as stated above. + +8. Miscellaneous + + Each time You Distribute or Publicly Perform the Work or a Collection, the +Licensor offers to the recipient a license to the Work on the same terms and +conditions as the license granted to You under this License. + Each time You Distribute or Publicly Perform an Adaptation, Licensor offers +to the recipient a license to the original Work on the same terms and +conditions as the license granted to You under this License. + If any provision of this License is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of the +remainder of the terms of this License, and without further action by the +parties to this agreement, such provision shall be reformed to the minimum +extent necessary to make such provision valid and enforceable. + No term or provision of this License shall be deemed waived and no breach +consented to unless such waiver or consent shall be in writing and signed by +the party to be charged with such waiver or consent. + This License constitutes the entire agreement between the parties with +respect to the Work licensed here. There are no understandings, agreements or +representations with respect to the Work not specified here. Licensor shall not +be bound by any additional provisions that may appear in any communication from +You. This License may not be modified without the mutual written agreement of +the Licensor and You. + The rights granted under, and the subject matter referenced, in this +License were drafted utilizing the terminology of the Berne Convention for the +Protection of Literary and Artistic Works (as amended on September 28, 1979), +the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO +Performances and Phonograms Treaty of 1996 and the Universal Copyright +Convention (as revised on July 24, 1971). These rights and subject matter take +effect in the relevant jurisdiction in which the License terms are sought to be +enforced according to the corresponding provisions of the implementation of +those treaty provisions in the applicable national law. If the standard suite +of rights granted under applicable copyright law includes additional rights not +granted under this License, such additional rights are deemed to be included in +the License; this License is not intended to restrict the license of any rights +under applicable law. + + Creative Commons Notice + + Creative Commons is not a party to this License, and makes no warranty +whatsoever in connection with the Work. Creative Commons will not be liable to +You or any party on any legal theory for any damages whatsoever, including +without limitation any general, special, incidental or consequential damages +arising in connection to this license. Notwithstanding the foregoing two (2) +sentences, if Creative Commons has expressly identified itself as the Licensor +hereunder, it shall have all rights and obligations of Licensor. + + Except for the limited purpose of indicating to the public that the Work is +licensed under the CCPL, Creative Commons does not authorize the use by either +party of the trademark "Creative Commons" or any related trademark or logo of +Creative Commons without the prior written consent of Creative Commons. Any +permitted use will be in compliance with Creative Commons' then-current +trademark usage guidelines, as may be published on its website or otherwise +made available upon request from time to time. For the avoidance of doubt, this +trademark restriction does not form part of the License. + + Creative Commons may be contacted at http://creativecommons.org/. diff --git a/mods/unifieddyes/README b/mods/unifieddyes/README new file mode 100755 index 00000000..d9d9e687 --- /dev/null +++ b/mods/unifieddyes/README @@ -0,0 +1,248 @@ +VanessaE's Unified Dyes +======================= + +The purpose of this mod originally was to supply a complete set of colors for +Minetest mod authors to use in their recipes. Since the default dyes mod that +is supplied with Minetest "common" is now usable (via flowers, also included in +"common"), this mod has become more of an extension pack. + +Unified Dyes expands the standard dye set from 15 to 90 colors. + +IMPORTANT: This mod is not intended to suggest that you should use the entire +palette. Rather, I was hoping people would just choose maybe the dozen or so +most useful colors to use in their mods. + +Dependencies: default and dye from Minetest "common". This mod will NOT work +without these. This mod will NOT work without these. The default dye mod is +normally activated only in the standard "build" and "minetest_game" games, or perhaps if +someone has a modpack or game that includes them. + +Recommends: flowers from common. + +License: GPL 2.0 or higher for the code, CC-by-SA 3.0 for the textures. + +Install: Unzip the distribution file, rename the resultant +VanessaE-unifieddyes-blahblah folder to just "unifieddyes", and move it into +Minetest's mods folder. + +The Palette: + +[ http://digitalaudioconcepts.com/vanessa/hobbies/minetest/screenshots/color-swatches.png ] +[ The official palette, showing 84 colors and 5 greys. ] + +In the image above, the "50%" markings on the left next to each shade mean 50% +saturation for all hues in that shade line. Note that the "light" shades don't +have (or need) that variant. For the greys, the percentages shown are of +brightness relative to pure white. There are three special cases: Light red +has been aliased to default pink dye, and dark green has been aliased to +default dark greey dye. Brown dye also exists in the default set, it's just +not shown in the palette above. + + +Usage instructions, technical information +========================================= + +Getting Started +--------------- + +First thing's first: you're going to need to harvest some materials to make the +dyes from. For this, you need one or more of the following: roses (red), +tulips (orange), yellow dandelions (yellow), cactus (green), geraniums (blue), +violas (purple), coal (black), or white dandelions (white). Simply wander +around your world and collect whichever of the above you need to get your +colors. + +[ http://digitalaudioconcepts.com/vanessa/hobbies/minetest/screenshots/unifieddyes1.png ] +[ The 8 base colors directly obtainable from a material in the world. ] + +Simply place one of the above materials into the crafting grid to obtain four +portions of dye in that color From those initial 8 colors, you can directly +fashion another 11, for a total of 19 standard colors (including the various +greys): + +[ http://digitalaudioconcepts.com/vanessa/hobbies/minetest/screenshots/unifieddyes2.png ] +[ The complete 19-color standard set. ] + +The standardized colors and their crafting methods are as follows: + +* Red (0°): one rose +* Orange (30°): one tulip, or put one red dye and one yellow dye into the + crafting grid to mix them (yields 2) +* Yellow (60°): one yellow dandelion +* Lime (90°): mix yellow + green (yields 2) +* Green (120°): one cactus, or mix yellow + blue (yields 2) +* Aqua (150°): mix green + cyan (yields 2) +* Cyan (180°): mix green + blue (yields 2) +* Sky blue (210°): mix cyan + blue (yields 2) +* Blue (240°): one geranium +* Violet (270°): one viola, or mix blue + magenta (yields 2). +* Magenta (300°): mix blue + red (yields 2) +* Red-violet (330°): mix magenta + red (yields 2) + +* Black (7.5%): one piece of coal +* Dark grey (25%): mix one white + two black (yields 3) +* Medium grey (50%): mix one white and one black (yields 2) +* Light grey (75%): Mix two white and one black (yields 3) +* White (95%): one white dandelion. + +The degree figures are the colors' hues on a standard HSV color wheel, and are +what I used in the textures supplied with this mod. For the greys, the figures +in parenthesis indicate the intended brightness of the shade, relative to +white. Note that black and white don't go all the way to the bottom/top of the +scale, as doing so may crush some details in textures made in those shades (see +below, regarding semi-automatic texture generation). + + +Darker/Lighter colors +--------------------- + +To obtain a dark (33%) version of a given color, use two portions of black dye +along with the base color from the list above, which yields three portions of +the final color. + +To obtain a medium-brightness (66%) version of a given color, mix one portion +the base color with one portion of black dye (for example, medium lime = lime + +black). All such mixtures yield two portions of the final color. + +To obtain a light (150% over full) version of a given color, mix one portion of +the base color with one portion of white dye. Yields 2 portions of the final +color. + + +Low-saturation colors +--------------------- + +To get the low saturation (50%) version of one of the base colors, mix one or +more of white, black, or a shade of grey with the desired base color: + +Dark, low saturation: dark grey dye + color (yields 2), or two blacks + 1 white ++ color (yields 4). For example, dark, low-saturation red = red + dark grey, +or red + two black + one white. + +Medium brightness, low saturation: medium grey dye + color (yields 2), or black ++ white + color (yields 3). For example, medium, low-saturation green = green ++ medium grey, or green + black + white. + +Full, low saturation: light grey dye + color (yields 2), or 1 black + 2 whites ++ color (yields 4). For example, bright, low-saturation blue = blue + light +grey, or blue + black + 2 white. + +There is no low-saturation version of the "light" colors. + +Red + white always returns default pink dye, and black + green always returns +default dark green dye. + + +RGB values +---------- + +All RGB values and filenames for all colors and shades of grey are represented +in the file "colors.txt" (which was generated with the bash script +"listcolors.sh"), included in the distribution directory. Note that +listcolors.sh is an example only and was written for a different set of +textures than what Unified Dyes includes now. + + +Misc. Notes +----------- + +If you need to use /give commands, the item names for the standard set of 12 +regular "full" colors (plus pink, brown, and dark green) is simply "dye:color", +e.g. "dye:red", "dye:pink", or "dye:skyblue". Greys have a similar naming +convention: dye:white, dye:light_grey, dye:grey, dye:dark_grey, or dye:black. + +For everything beyond those initial 19 colors, the item names are of the +following format: + +unifieddyes:{"light_" or "medium_" or "dark_"}{color}{nothing or "_s50"}. + +For example, low saturation dark yellow is "unifieddyes:dark_yellow_s50", while +light normal-saturation red-violet would be "unifieddyes:light_redviolet". + +See the texture filenames in the textures/ folder for further hints - all of +the item names follow the same format as the corresponding filenames, save for +having a colon (:) instead of the first underscore (_). + + +Semi-automatic generation of textures +===================================== + +The texture generator script +---------------------------- + +Obviously, in order for this mod or the above template to be useful, you'll +need textures. If you plan to support the entire range of colors offered by +Unified Dyes, there is a BASH script included with this mod as well with the +above template named gentextures.sh, which will, with an appropriately- colored +and appropriately-named source texture, and possibly an overlay texture, +generate a complete set of colored and greyscale textures. + +The script requires bc (the calculator program) to handle some basic math +regarding the hue adjustments, and Imagemagick's "convert" program handles all +of the actual conversions. + +First thing's first though - you need source textures. Using your favorite +image editor, create a single version of your desired texture. Draw it in the +brightest, deepest shade of RED you can muster without losing any detail, and +save it out. Ideally, you will want the average color of the texture, when +taking into account all bright and dark areas, to be as close as possible to +the hex value #FF0000 (0 degrees, 100% saturation, pure red) without losing any +appreciable #detail. + +Save this source texture out as a PNG image, with a filename of +"whatever_base.png", where "whatever" is the one-word name of your mod - for +example, mymod_base.png. + +If you want to add an image on top of the colored blocks, such as a frame, +which you want to be the same color throughout all of the textures, create it +now. It should consist only of those parts of the textures that you want to +leave unchanged, with some level of alpha transparency everywhere else, +depending on how much of the image needs to remain unchanged. Save it out as a +PNG image, using any filename you want, for example myoverlay.png. + +Now, use chmod to make the script executable, if necessary, and run it. + +If you don't need the overlay, you just need to supply one command line +argument: the base name of your mod. The script will use that parameter as the +basis of its texture filenames. For example: + +./gentextures.sh mymod + +The script will then look for mymod_base.png and copy and convert it into +things like mymod_red.png, mymod_dark_blue.png, and so on. + +If you want to use an overlay also, skip the above step and run the script with +the base name as the first parameter, and the complete filename of your overlay +as the second instead. For example: + +./gentextures.sh mymod myoverlay.png + +Otherwise, the program will iterate through all of the hues and shades that are +supported by unifieddyes (though this is done manually, not by reading anything +from the mod), compositing your overlay image in after the recolor step, if +you're using that option. + +All of the output files will be placed in a new folder, generated-textures/ in +the current directory. Note that the script looks for the above files in the +current directory also. + +The script has a third mode as well: + +./gentextures.sh -t mymod myoverlay.png + +In this mode, the script will leave the base texture mymod_base.png unchanged, +and instead will rotate the colors of the overlay image and then composite that +onto the base texture. The same color changes will happen with the overlay in +this mode, so it's a good idea to make the overlay some fairly saturated shade +of red. Along with that, the base image should be some neutral color; any +color is fine as long as the result is what you wanted. + +The program attempts to verify that the files you've asked it to use will +actually work, and will exit immediately if the any are invalid, missing, etc. + +Use your favorite image browser or file manager to review the results in +generated-textures/, and if they're right, copy them over to the textures/ +folder in your mod. + +Note that this script does not generate brown and pink variations of your base +texture - you'll have to do those two manually. diff --git a/mods/unifieddyes/bottle_overlay.png b/mods/unifieddyes/bottle_overlay.png new file mode 100755 index 00000000..58888501 Binary files /dev/null and b/mods/unifieddyes/bottle_overlay.png differ diff --git a/mods/unifieddyes/changelog.txt b/mods/unifieddyes/changelog.txt new file mode 100755 index 00000000..f556fb9c --- /dev/null +++ b/mods/unifieddyes/changelog.txt @@ -0,0 +1,101 @@ +Changelog +--------- + +2013-04-30: Multiple changes + +* Refactored the code to use default "common" dyes +rather than directly from flowers. + +* This mod now depends on "default" and "dye" from the Minetest common +sub-game. Since the default dye mod uses default flowers, this mod no +longer checks for what version of flowers you're using, or even depends +on it. + +* Bottle-based textures have been replaced with piles of dye powder, based +on the default red dye texture. + +* All dyes are obtained by crafting, not cooking, for consistency with the +default dye mod. + +* The somewhat-complicated method using separate "pigment" powders, glass +bottles and "liquid dye base" has been done away with. Now it's just +dry dye powders, as with the default dye mod. + +* Also, got rid of the whole paint scheme, in favor of dry powders. + +* All old dyes, paints, and Unified Dyes pigment powders have been aliased +back to the standard dye powders. + +2012-07-26: Added a "version" check for the flowers dependency: If the +flowers mod defines "flowers:flower_geranium" (as is the case with my +update of 2012-08-01), then those will be used to get blue pigment +powder, and violas will produce violet powder, both of which can be +directly used to create their respective liquid dye colors. If it is +not defined (e.g. the user has an older version of the flowers mod), +then violas produce blue dye powder. Violet dye can still be formed by +mixing blue and magenta or blue and red dyes, as before. + +2012-07-26: Better bottle textures. Note that these are blended against +the 50% grey field they normally appear on in the inventory display, so +they will show artifacts if you try to wield them. Don't do that. :-) + +2012-07-26: Split off glass bottles into a separate mod, "Vessels". +This mod now depends on it. + +2012-07-25 (almost immediately after): Fixed a copy&paste error for +black dye. + +2012-07-25: Replaced missing craftitem entries and got rid of some +redundant code left over from last update. Added group settings for all +dyes according to recently-published standard. Fixed a few typos in +item descriptions, and straightened up capitalization. + +2012-07-24: Added some extra steps to the dye-making process, added +recommendation that empty bottles be given back to the player on use. +Dyes are still easy to make, they just require a more realistic (and +this, harder) process now. + +2012-07-16 (a bit later): fixed a minor error in generation of medium +grey. + +2012-07-16: Added a new set of colors, "light" (brightness of 150% +versus the 'full' shade), for a total of 89. No 50% saturation version +of this set. Added a palette image showing the full set of colors. + +2012-07-13: Fixed some missing commas. + +2012-07-13: Added a script to aid in the generation of new textures for +mods that depend on unifieddyes. Moved this changelog from the forum +into the distribution directory. Rewrote the README to contain +everything from the forum post, and expanded it to document the new +generation script. + +2012-07-12 (a bit later): added groups = {dye=1}, to each +register_craftitem call, to make it easier for other mods to identify +the dyes and categorize them. + +2012-07-12: moved project to github. + +2012-07-11 (continuing): Tweaked the script to remove titanium dioxide +from the output, since it isn't intended to be directly used as a +dye/paint (but rather, to make paint that can then be used). +Regenerated colors.txt. + +2012-07-11 (immediately after): The script was reading the wrong pixel +from the image, resulting in lighter-than-correct colors. Fixed it and +regenerated the colors.txt file. + +2012-07-11: Added a script to list all of the colors and their RGB +values and texture filenames, and a text file containing the output +thereof. + +2012-07-08 (a bit later): deleted a few unused files (copy&paste error). + +2012-07-08: Major boost in the number of available colors - was 8, now +77. Should cover pretty much the entire spectrum of colors one might +use in this game. + +2012-07-02: Deleted a few redundant files (leftovers from when I wanted +to merge in flowers and then changed my mind). + +2012-06-26: Initial upload. diff --git a/mods/unifieddyes/colors.txt b/mods/unifieddyes/colors.txt new file mode 100755 index 00000000..f05b8a46 --- /dev/null +++ b/mods/unifieddyes/colors.txt @@ -0,0 +1,90 @@ + + +Full-saturation colors: +----------------------- + +dark aqua 0, 84, 42 unifieddyes_dark_aqua.png +dark blue 0, 0, 84 unifieddyes_dark_blue.png +dark cyan 0, 84, 83 unifieddyes_dark_cyan.png +dark green 0, 84, 0 unifieddyes_dark_green.png +dark lime 43, 84, 0 unifieddyes_dark_lime.png +dark magenta 84, 0, 83 unifieddyes_dark_magenta.png +dark orange 84, 42, 0 unifieddyes_dark_orange.png +dark red 84, 0, 0 unifieddyes_dark_red.png +dark redviolet 84, 0, 42 unifieddyes_dark_redviolet.png +dark skyblue 0, 42, 84 unifieddyes_dark_skyblue.png +dark violet 43, 0, 84 unifieddyes_dark_violet.png +dark yellow 84, 83, 0 unifieddyes_dark_yellow.png +medium aqua 0,169, 84 unifieddyes_medium_aqua.png +medium blue 0, 0,169 unifieddyes_medium_blue.png +medium cyan 0,169,167 unifieddyes_medium_cyan.png +medium green 0,169, 0 unifieddyes_medium_green.png +medium lime 87,169, 0 unifieddyes_medium_lime.png +medium magenta 169, 0,167 unifieddyes_medium_magenta.png +medium orange 169, 84, 0 unifieddyes_medium_orange.png +medium red 168, 0, 0 unifieddyes_medium_red.png +medium redviolet 169, 0, 84 unifieddyes_medium_redviolet.png +medium skyblue 0, 84,169 unifieddyes_medium_skyblue.png +medium violet 87, 0,169 unifieddyes_medium_violet.png +medium yellow 169,167, 0 unifieddyes_medium_yellow.png +aqua 1,255,127 unifieddyes_aqua.png +blue 1, 1,255 unifieddyes_blue.png +cyan 1,255,252 unifieddyes_cyan.png +green 1,255, 1 unifieddyes_green.png +lime 132,255, 1 unifieddyes_lime.png +magenta 255, 1,252 unifieddyes_magenta.png +orange 255,127, 1 unifieddyes_orange.png +red 255, 0, 0 unifieddyes_red.png +redviolet 255, 1,127 unifieddyes_redviolet.png +skyblue 1,127,255 unifieddyes_skyblue.png +violet 132, 1,255 unifieddyes_violet.png +yellow 255,252, 1 unifieddyes_yellow.png + +Low-saturation colors: +---------------------- + +dark aqua 50% saturation 21, 63, 42 unifieddyes_dark_aqua_s50.png +dark blue 50% saturation 21, 21, 63 unifieddyes_dark_blue_s50.png +dark cyan 50% saturation 21, 63, 63 unifieddyes_dark_cyan_s50.png +dark green 50% saturation 21, 63, 21 unifieddyes_dark_green_s50.png +dark lime 50% saturation 43, 63, 21 unifieddyes_dark_lime_s50.png +dark magenta 50% saturation 63, 21, 63 unifieddyes_dark_magenta_s50.png +dark orange 50% saturation 63, 42, 21 unifieddyes_dark_orange_s50.png +dark red 50% saturation 63, 21, 21 unifieddyes_dark_red_s50.png +dark redviolet 50% saturation 63, 21, 42 unifieddyes_dark_redviolet_s50.png +dark skyblue 50% saturation 21, 42, 63 unifieddyes_dark_skyblue_s50.png +dark violet 50% saturation 43, 21, 63 unifieddyes_dark_violet_s50.png +dark yellow 50% saturation 63, 63, 21 unifieddyes_dark_yellow_s50.png +medium aqua 50% saturation 42,126, 84 unifieddyes_medium_aqua_s50.png +medium blue 50% saturation 42, 42,126 unifieddyes_medium_blue_s50.png +medium cyan 50% saturation 42,126,126 unifieddyes_medium_cyan_s50.png +medium green 50% saturation 42,126, 42 unifieddyes_medium_green_s50.png +medium lime 50% saturation 86,126, 42 unifieddyes_medium_lime_s50.png +medium magenta 50% saturation 126, 42,126 unifieddyes_medium_magenta_s50.png +medium orange 50% saturation 126, 84, 42 unifieddyes_medium_orange_s50.png +medium red 50% saturation 127, 42, 42 unifieddyes_medium_red_s50.png +medium redviolet 50% saturation 126, 42, 84 unifieddyes_medium_redviolet_s50.png +medium skyblue 50% saturation 42, 84,126 unifieddyes_medium_skyblue_s50.png +medium violet 50% saturation 86, 42,126 unifieddyes_medium_violet_s50.png +medium yellow 50% saturation 126,126, 42 unifieddyes_medium_yellow_s50.png +aqua 50% saturation 65,191,127 unifieddyes_aqua_s50.png +blue 50% saturation 65, 65,191 unifieddyes_blue_s50.png +cyan 50% saturation 65,191,190 unifieddyes_cyan_s50.png +green 50% saturation 65,191, 65 unifieddyes_green_s50.png +lime 50% saturation 130,191, 65 unifieddyes_lime_s50.png +magenta 50% saturation 191, 65,190 unifieddyes_magenta_s50.png +orange 50% saturation 191,127, 65 unifieddyes_orange_s50.png +red 50% saturation 192, 64, 64 unifieddyes_red_s50.png +redviolet 50% saturation 191, 65,127 unifieddyes_redviolet_s50.png +skyblue 50% saturation 65,127,191 unifieddyes_skyblue_s50.png +violet 50% saturation 130, 65,191 unifieddyes_violet_s50.png +yellow 50% saturation 191,190, 65 unifieddyes_yellow_s50.png + +Greyscale: +---------- + +black 0, 0, 0 unifieddyes_black.png +dark grey 64, 64, 64 unifieddyes_darkgrey_paint.png +medium grey 128,128,128 unifieddyes_grey_paint.png +light grey 192,192,192 unifieddyes_lightgrey_paint.png +white 255,255,255 unifieddyes_white_paint.png diff --git a/mods/unifieddyes/depends.txt b/mods/unifieddyes/depends.txt new file mode 100755 index 00000000..2717befb --- /dev/null +++ b/mods/unifieddyes/depends.txt @@ -0,0 +1,2 @@ +default +dye diff --git a/mods/unifieddyes/gentextures-jpg.sh b/mods/unifieddyes/gentextures-jpg.sh new file mode 100755 index 00000000..a7cad60e --- /dev/null +++ b/mods/unifieddyes/gentextures-jpg.sh @@ -0,0 +1,183 @@ +#!/bin/bash + +# This program auto-generates colorized textures for all 89 of the Unified +# Dyes colors, based on one or two input files. + +# Copyright (C) 2012-2013, Vanessa Ezekowitz +# Email: vanessaezekowitz@gmail.com +# +# 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 2 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, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +if [ -z "`which convert`" ] ; then { + echo "Please install Imagemagick." + exit 1 +} fi + +if [ -z "`which bc`" ] ; then { + echo "Please install GNU bc." + exit 1 +} fi + +if [ $1 = "-t" ] ; then { + TINT_OVERLAY=$1 + BASE=$2 + COMPOSITE=$3 +} else { + TINT_OVERLAY="" + BASE=$1 + COMPOSITE=$2 +} fi + +if [ -z $1 ] || [ $1 == "--help" ] || [ $1 == "-h" ] || [[ $1 == "-t" && -z $3 ]] ; then { + + echo -e "\nUsage: +\ngentextures.sh basename [overlay_filename] +gentextures.sh -t basename overlay_filename + +\nThis script requires up to three parameters which supply the base +filename of the textures, an optional .png overlay, and possibly the +'-t' switch. The 'basename' is the first part of the filename that your +textures will use when your mod is done, which should almost always be +the same as the one-word name of your mod. For example, if you supply +the word 'mymod', this script will produce filenames like mymod_red.jpg +or 'mymod_dark_blue_s50.jpg'. The texture that this script will read +and recolor is derived from this parameter, and will be of the form +'basename_base.jpg', i.e. 'mymod_base.jpg'. \nYou can also supply an +overlay image filename. This image needs to be a .png or .gif or some +other alpha-capable format supported by ImageMagick, and will be +composited onto the output files after they have been colorized, but +without being modified. This is useful when you have some part of your +base image that will either get changed undesirably (for example, the +mortar among several bricks, or the shading detail of a stone pattern). +Simply draw two images: one containing the whole image to be colored, +and one containing the parts that should not be changed, with either +full or partial alpha transparency where the re-colored base image +should show through. Skilled use of color and alpha on this overlay can +lead to some interesting effects. \nIf you add '-t' as the first +parameter, the script will switch to 'tint overlay' mode. For this mode +to work, you must also supply the base name as usual, and you must +include an overlay image filename. Rather than re-color the base +texture, the script will alter the hue/saturation/value of the overlay +texture file instead, and leave the base texture unchanged. When using +this mode, the base texture should be drawn in some neutral color, but +any color is fine if it results in what you wanted.\n" + + + exit 1 +} fi + +if [[ ! -e $BASE"_base.jpg" ]]; then { + echo -e "\nThe basename '"$BASE"_base.jpg' was not found." + echo -e "\nAborting.\n" + exit 1 +} fi + +if [[ ! -z $COMPOSITE && ! -e $COMPOSITE ]]; then { + echo -e "\nThe requested composite file '"$COMPOSITE"' was not found." + echo -e "\nAborting.\n" + exit 1 +} fi + +convert $BASE"_base.jpg" -modulate 1,2,3 tempfile.jpg 1>/dev/null 2>/dev/null + +if (( $? )) ; then { + echo -e "\nImagemagick failed while testing the base texture file." + echo -e "\nEither the base file '"$BASE"_base.jpg' isn't an image," + echo "or it is broken, or Imagemagick itself just didn't work." + echo -e "\nPlease check and correct your base image and try again." + echo -e "\nAborting.\n" + exit 1 +} fi + +if [ ! -z $COMPOSITE ] ; then { + convert $BASE"_base.jpg" -modulate 1,2,3 $COMPOSITE -composite tempfile.jpg 1>/dev/null 2>/dev/null + + if (( $? )) ; then { + echo -e "\nImagemagick failed while testing the composite file." + echo -e "\nEither the composite file '"$COMPOSITE"' isn't an image" + echo "or it is broken, or Imagemagick itself just didn't work." + echo -e "\nPlease check and correct your composite image and try again." + echo -e "\nAborting.\n" + exit 1 + } fi +} fi + +rm tempfile.jpg + +base_colors="red orange yellow lime green aqua cyan skyblue blue violet magenta redviolet" + +echo -e -n "\nGenerating filenames based on "$BASE"_base.jpg" +if [ ! -z $COMPOSITE ] ; then { + echo "," + echo -n "using "$COMPOSITE" as an overlay" +} fi + +if [ ! -z $TINT_OVERLAY ] ; then { + echo "," + echo -n "and tinting the overlay instead of the base texture" +} fi + +echo -e "...\n" + +mkdir -p generated-textures + +function generate_texture () { + name=$1 + h=$2 + s=$3 + v=$4 + if [ -z $TINT_OVERLAY ]; then { + if [ -z $COMPOSITE ]; then { + convert $BASE"_base.jpg" -modulate $v,$s,$h -quality 97 "generated-textures/"$BASE"_"$name".jpg" + } else { + convert $BASE"_base.jpg" -modulate $v,$s,$h -quality 97 $COMPOSITE -composite "generated-textures/"$BASE"_"$name".jpg" + } fi + } else { + convert $COMPOSITE -modulate $v,$s,$h -quality 97 MIFF:- | composite MIFF:- $BASE"_base.jpg" "generated-textures/"$BASE"_"$name".jpg" + } fi +} + +hue=0 +for color_name in $base_colors ; do + hue2=`echo "scale=10; ("$hue"*200/360)+100" |bc` + echo $color_name "("$hue" degrees)" + echo " dark" + generate_texture "dark_"$color_name $hue2 100 33 + echo " medium" + generate_texture "medium_"$color_name $hue2 100 66 + echo " full" + generate_texture $color_name $hue2 100 100 + echo " light" + generate_texture "light_"$color_name $hue2 100 150 + echo " dark, 50% saturation" + generate_texture "dark_"$color_name"_s50" $hue2 50 33 + echo " medium, 50% saturation" + generate_texture "medium_"$color_name"_s50" $hue2 50 66 + echo " full, 50% saturation" + generate_texture $color_name"_s50" $hue2 50 100 + hue=$((hue+30)) +done + +echo "greyscales" +echo " black" +generate_texture black 0 0 15 +echo " dark grey" +generate_texture darkgrey 0 0 50 +echo " medium grey" +generate_texture grey 0 0 100 +echo " light grey" +generate_texture lightgrey 0 0 150 +echo " white" +generate_texture white 0 0 190 diff --git a/mods/unifieddyes/gentextures.sh b/mods/unifieddyes/gentextures.sh new file mode 100755 index 00000000..842817ec --- /dev/null +++ b/mods/unifieddyes/gentextures.sh @@ -0,0 +1,177 @@ +#!/bin/bash + +# This program auto-generates colorized textures for all 89 of the Unified +# Dyes colors, based on one or two input files. + +# Copyright (C) 2012-2013, Vanessa Ezekowitz +# Email: vanessaezekowitz@gmail.com +# +# 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 2 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, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +if [ -z "`which convert`" ] ; then { + echo "Please install Imagemagick." + exit 1 +} fi + +if [ -z "`which bc`" ] ; then { + echo "Please install GNU bc." + exit 1 +} fi + +if [ $1 = "-t" ] ; then { + TINT_OVERLAY=$1 + BASE=$2 + COMPOSITE=$3 +} else { + TINT_OVERLAY="" + BASE=$1 + COMPOSITE=$2 +} fi + +if [ -z $1 ] || [ $1 == "--help" ] || [ $1 == "-h" ] || [[ $1 == "-t" && -z $3 ]] ; then { + + echo -e "\nUsage: +\ngentextures.sh basename [overlay_filename] +gentextures.sh -t basename overlay_filename +\nThis script requires up to three parameters which supply the base filename +of the textures, an optional overlay, and possibly the '-t' switch. The +'basename' is the first part of the filename that your textures will use when +your mod is done, which should almost always be the same as the one-word name +of your mod. For example, if you supply the word 'mymod', this script will +produce filenames like mymod_red.png or 'mymod_dark_blue_s50.png'. The +texture that this script will read and recolor is derived from this parameter, +and will be of the form 'basename_base.png', i.e. 'mymod_base.png'. +\nYou can also supply an optional overlay image filename. This image will be +composited onto the output files after they have been colorized, but without +being modified. This is useful when you have some part of your base image +that will either get changed undesirably (for example, the mortar among +several bricks, or the shading detail of a stone pattern). Simply draw two +images: one containing the whole image to be colored, and one containing the +parts that should not be changed, with either full or partial alpha +transparency where the re-colored base image should show through. Skilled use +of color and alpha on this overlay can lead to some interesting effects. +\nIf you add '-t' as the first parameter, the script will switch to 'tint +overlay' mode. For this mode to work, you must also supply the base name as +usual, and you must include an overlay image filename. Rather than re-color +the base texture, the script will alter the hue/saturation/value of the +overlay texture file instead, and leave the base texture unchanged. When +using this mode, the base texture should be drawn in some neutral color, but +any color is fine if it results in what you wanted.\n" + exit 1 +} fi + +if [[ ! -e $BASE"_base.png" ]]; then { + echo -e "\nThe basename '"$BASE"_base.png' was not found." + echo -e "\nAborting.\n" + exit 1 +} fi + +if [[ ! -z $COMPOSITE && ! -e $COMPOSITE ]]; then { + echo -e "\nThe requested composite file '"$COMPOSITE"' was not found." + echo -e "\nAborting.\n" + exit 1 +} fi + +convert $BASE"_base.png" -modulate 1,2,3 tempfile.png 1>/dev/null 2>/dev/null + +if (( $? )) ; then { + echo -e "\nImagemagick failed while testing the base texture file." + echo -e "\nEither the base file '"$BASE"_base.png' isn't an image," + echo "or it is broken, or Imagemagick itself just didn't work." + echo -e "\nPlease check and correct your base image and try again." + echo -e "\nAborting.\n" + exit 1 +} fi + +if [ ! -z $COMPOSITE ] ; then { + convert $BASE"_base.png" -modulate 1,2,3 $COMPOSITE -composite tempfile.png 1>/dev/null 2>/dev/null + + if (( $? )) ; then { + echo -e "\nImagemagick failed while testing the composite file." + echo -e "\nEither the composite file '"$COMPOSITE"' isn't an image" + echo "or it is broken, or Imagemagick itself just didn't work." + echo -e "\nPlease check and correct your composite image and try again." + echo -e "\nAborting.\n" + exit 1 + } fi +} fi + +rm tempfile.png + +base_colors="red orange yellow lime green aqua cyan skyblue blue violet magenta redviolet" + +echo -e -n "\nGenerating filenames based on "$BASE"_base.png" +if [ ! -z $COMPOSITE ] ; then { + echo "," + echo -n "using "$COMPOSITE" as an overlay" +} fi + +if [ ! -z $TINT_OVERLAY ] ; then { + echo "," + echo -n "and tinting the overlay instead of the base texture" +} fi + +echo -e "...\n" + +mkdir -p generated-textures + +function generate_texture () { + name=$1 + h=$2 + s=$3 + v=$4 + if [ -z $TINT_OVERLAY ]; then { + if [ -z $COMPOSITE ]; then { + convert $BASE"_base.png" -modulate $v,$s,$h "generated-textures/"$BASE"_"$name".png" + } else { + convert $BASE"_base.png" -modulate $v,$s,$h $COMPOSITE -composite "generated-textures/"$BASE"_"$name".png" + } fi + } else { + convert $COMPOSITE -modulate $v,$s,$h MIFF:- | composite MIFF:- $BASE"_base.png" "generated-textures/"$BASE"_"$name".png" + } fi +} + +hue=0 +for color_name in $base_colors ; do + hue2=`echo "scale=10; ("$hue"*200/360)+100" |bc` + echo $color_name "("$hue" degrees)" + echo " dark" + generate_texture "dark_"$color_name $hue2 100 33 + echo " medium" + generate_texture "medium_"$color_name $hue2 100 66 + echo " full" + generate_texture $color_name $hue2 100 100 + echo " light" + generate_texture "light_"$color_name $hue2 100 150 + echo " dark, 50% saturation" + generate_texture "dark_"$color_name"_s50" $hue2 50 33 + echo " medium, 50% saturation" + generate_texture "medium_"$color_name"_s50" $hue2 50 66 + echo " full, 50% saturation" + generate_texture $color_name"_s50" $hue2 50 100 + hue=$((hue+30)) +done + +echo "greyscales" +echo " black" +generate_texture black 0 0 15 +echo " dark grey" +generate_texture darkgrey 0 0 50 +echo " medium grey" +generate_texture grey 0 0 100 +echo " light grey" +generate_texture lightgrey 0 0 150 +echo " white" +generate_texture white 0 0 190 diff --git a/mods/unifieddyes/init.lua b/mods/unifieddyes/init.lua new file mode 100755 index 00000000..e8c36b7a --- /dev/null +++ b/mods/unifieddyes/init.lua @@ -0,0 +1,377 @@ +--[[ + +Unified Dyes + +This mod provides an extension to the Minetest 0.4.x dye system + +============================================================================== + +Copyright (C) 2012-2013, Vanessa Ezekowitz +Email: vanessaezekowitz@gmail.com + +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 2 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, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +============================================================================== + +--]] + +--===================================================================== + +-- Boilerplate to support localized strings if intllib mod is installed. +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) +else + S = function ( s ) return s end +end + + +-- Items/recipes needed to generate the few base colors that are not +-- provided by the standard dyes mod. + +-- Lime + +minetest.register_craftitem(":dye:lime", { + description = S("Lime Dye"), + inventory_image = "unifieddyes_lime.png", + groups = { dye=1, excolor_lime=1, unicolor_lime=1, not_in_creative_inventory=1 } +}) + +minetest.register_craft( { + type = "shapeless", + output = "dye:lime 2", + recipe = { + "dye:yellow", + "dye:green", + }, +}) + +-- Aqua + +minetest.register_craftitem(":dye:aqua", { + description = S("Aqua Dye"), + inventory_image = "unifieddyes_aqua.png", + groups = { dye=1, excolor_aqua=1, unicolor_aqua=1, not_in_creative_inventory=1 } +}) + +minetest.register_craft( { + type = "shapeless", + output = "dye:aqua 2", + recipe = { + "dye:cyan", + "dye:green", + }, +}) + +-- Sky blue + +minetest.register_craftitem(":dye:skyblue", { + description = S("Sky-blue Dye"), + inventory_image = "unifieddyes_skyblue.png", + groups = { dye=1, excolor_sky_blue=1, unicolor_sky_blue=1, not_in_creative_inventory=1 } +}) + +minetest.register_craft( { + type = "shapeless", + output = "dye:skyblue 2", + recipe = { + "dye:cyan", + "dye:blue", + }, +}) + +-- Red-violet + +minetest.register_craftitem(":dye:redviolet", { + description = S("Red-violet Dye"), + inventory_image = "unifieddyes_redviolet.png", + groups = { dye=1, excolor_red_violet=1, unicolor_red_violet=1, not_in_creative_inventory=1 } +}) + +minetest.register_craft( { + type = "shapeless", + output = "dye:redviolet 2", + recipe = { + "dye:red", + "dye:magenta", + }, +}) + + +-- Light grey + +minetest.register_craftitem(":dye:light_grey", { + description = S("Light Grey Dye"), + inventory_image = "unifieddyes_lightgrey.png", + groups = { dye=1, excolor_lightgrey=1, unicolor_light_grey=1, not_in_creative_inventory=1 } +}) + +minetest.register_craft( { + type = "shapeless", + output = "dye:light_grey 2", + recipe = { + "dye:grey", + "dye:white", + }, +}) + +-- Extra craft for black dye + +minetest.register_craft( { + type = "shapeless", + output = "dye:black 4", + recipe = { + "default:coal_lump", + }, +}) + +-- Extra craft for dark grey dye + +minetest.register_craft( { + type = "shapeless", + output = "dye:dark_grey 3", + recipe = { + "dye:black", + "dye:black", + "dye:white", + }, +}) + +-- Extra craft for light grey dye + +minetest.register_craft( { + type = "shapeless", + output = "dye:light_grey 3", + recipe = { + "dye:black", + "dye:white", + "dye:white", + }, +}) + +-- Extra craft for green dye + +minetest.register_craft( { + type = "shapeless", + output = "dye:green 4", + recipe = { + "default:cactus", + }, +}) + +-- ================================================================= + +-- Generate all of additional variants of hue, saturation, and +-- brightness. + +-- "s50" in a file/item name means "saturation: 50%". +-- Brightness levels in the textures are 33% ("dark"), 66% ("medium"), +-- 100% ("full", but not so-named), and 150% ("light"). + +local HUES = { + "red", + "orange", + "yellow", + "lime", + "green", + "aqua", + "cyan", + "skyblue", + "blue", + "violet", + "magenta", + "redviolet" +} + +local HUES2 = { + "Red", + "Orange", + "Yellow", + "Lime", + "Green", + "Aqua", + "Cyan", + "Sky-blue", + "Blue", + "Violet", + "Magenta", + "Red-violet" +} + + +for i = 1, 12 do + + local hue = HUES[i] + local hue2 = HUES2[i] + + minetest.register_craft( { + type = "shapeless", + output = "unifieddyes:dark_" .. hue .. "_s50 2", + recipe = { + "dye:" .. hue, + "dye:dark_grey", + }, + }) + + minetest.register_craft( { + type = "shapeless", + output = "unifieddyes:dark_" .. hue .. "_s50 4", + recipe = { + "dye:" .. hue, + "dye:black", + "dye:black", + "dye:white" + }, + }) + + if hue == "green" then + + minetest.register_craft( { + type = "shapeless", + output = "dye:dark_green 3", + recipe = { + "dye:" .. hue, + "dye:black", + "dye:black", + }, + }) + else + minetest.register_craft( { + type = "shapeless", + output = "unifieddyes:dark_" .. hue .. " 3", + recipe = { + "dye:" .. hue, + "dye:black", + "dye:black", + }, + }) + end + + minetest.register_craft( { + type = "shapeless", + output = "unifieddyes:medium_" .. hue .. "_s50 2", + recipe = { + "dye:" .. hue, + "dye:grey", + }, + }) + + minetest.register_craft( { + type = "shapeless", + output = "unifieddyes:medium_" .. hue .. "_s50 3", + recipe = { + "dye:" .. hue, + "dye:black", + "dye:white", + }, + }) + + minetest.register_craft( { + type = "shapeless", + output = "unifieddyes:medium_" .. hue .. " 2", + recipe = { + "dye:" .. hue, + "dye:black", + }, + }) + + minetest.register_craft( { + type = "shapeless", + output = "unifieddyes:" .. hue .. "_s50 2", + recipe = { + "dye:" .. hue, + "dye:grey", + "dye:white", + }, + }) + + minetest.register_craft( { + type = "shapeless", + output = "unifieddyes:" .. hue .. "_s50 4", + recipe = { + "dye:" .. hue, + "dye:white", + "dye:white", + "dye:black", + }, + }) + + if hue ~= "red" then + minetest.register_craft( { + type = "shapeless", + output = "unifieddyes:light_" .. hue .. " 2", + recipe = { + "dye:" .. hue, + "dye:white", + }, + }) + end + + minetest.register_craftitem("unifieddyes:dark_" .. hue .. "_s50", { + description = S("Dark " .. hue2 .. " Dye (low saturation)"), + inventory_image = "unifieddyes_dark_" .. hue .. "_s50.png", + groups = { dye=1, ["unicolor_dark_"..hue.."_s50"]=1, not_in_creative_inventory=1 } + }) + + if hue ~= "green" then + minetest.register_craftitem("unifieddyes:dark_" .. hue, { + description = S("Dark " .. hue2 .. " Dye"), + inventory_image = "unifieddyes_dark_" .. hue .. ".png", + groups = { dye=1, ["unicolor_dark_"..hue]=1, not_in_creative_inventory=1 } + }) + end + + minetest.register_craftitem("unifieddyes:medium_" .. hue .. "_s50", { + description = S("Medium " .. hue2 .. " Dye (low saturation)"), + inventory_image = "unifieddyes_medium_" .. hue .. "_s50.png", + groups = { dye=1, ["unicolor_medium_"..hue.."_s50"]=1, not_in_creative_inventory=1 } + }) + + minetest.register_craftitem("unifieddyes:medium_" .. hue, { + description = S("Medium " .. hue2 .. " Dye"), + inventory_image = "unifieddyes_medium_" .. hue .. ".png", + groups = { dye=1, ["unicolor_medium_"..hue]=1, not_in_creative_inventory=1 } + }) + + minetest.register_craftitem("unifieddyes:" .. hue .. "_s50", { + description = S(hue2 .. " Dye (low saturation)"), + inventory_image = "unifieddyes_" .. hue .. "_s50.png", + groups = { dye=1, ["unicolor_"..hue.."_s50"]=1, not_in_creative_inventory=1 } + }) + + if hue ~= "red" then + minetest.register_craftitem("unifieddyes:light_" .. hue, { + description = S("Light " .. hue2 .. " Dye"), + inventory_image = "unifieddyes_light_" .. hue .. ".png", + groups = { dye=1, ["unicolor_light_"..hue]=1, not_in_creative_inventory=1 } + }) + end + minetest.register_alias("unifieddyes:"..hue, "dye:"..hue) + minetest.register_alias("unifieddyes:pigment_"..hue, "dye:"..hue) +end + +minetest.register_alias("unifieddyes:light_red", "dye:pink") +minetest.register_alias("unifieddyes:dark_green", "dye:dark_green") + +minetest.register_alias("unifieddyes:white_paint", "dye:white") +minetest.register_alias("unifieddyes:titanium_dioxide", "dye:white") +minetest.register_alias("unifieddyes:lightgrey_paint", "dye:light_grey") +minetest.register_alias("unifieddyes:grey_paint", "dye:grey") +minetest.register_alias("unifieddyes:darkgrey_paint", "dye:dark_grey") +minetest.register_alias("unifieddyes:carbon_black", "dye:black") + +print(S("[UnifiedDyes] Loaded!")) + diff --git a/mods/unifieddyes/listcolors.sh b/mods/unifieddyes/listcolors.sh new file mode 100755 index 00000000..53e18060 --- /dev/null +++ b/mods/unifieddyes/listcolors.sh @@ -0,0 +1,79 @@ +#!/bin/bash + +# This program lists out the RGB triads for the colors used in each of the 89 +# dyes found in the Unified Dyes mod. + +# Copyright (C) 2012-2013, Vanessa Ezekowitz +# Email: vanessaezekowitz@gmail.com +# +# 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 2 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, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +pushd . >/dev/null + +cd textures + +echo -e "\n\nFull-saturation colors:" +echo -e "-----------------------\n" + +for i in `ls *dark*.png|grep -v _s50|grep -v paint|grep -v black` ; do + rgb=`convert $i -crop 1x1+8+11 -depth 8 txt: |grep "0,0: (" |cut -f 2- -d "(" |cut -f 1-3 -d ","` + color=`basename $i .png | sed 's/_/ /g; s/unifieddyes //; s/s50/50% saturation/'` + printf "%-32s %-12s %s\n" "$color" "$rgb" "$i" +done |sort + +for i in `ls *medium*.png|grep -v _s50|grep -v paint|grep -v black` ; do + rgb=`convert $i -crop 1x1+8+11 -depth 8 txt: |grep "0,0: (" |cut -f 2- -d "(" |cut -f 1-3 -d ","` + color=`basename $i .png | sed 's/_/ /g; s/unifieddyes //; s/s50/50% saturation/'` + printf "%-32s %-12s %s\n" "$color" "$rgb" "$i" +done |sort + +for i in `ls *.png|grep -v medium |grep -v dark|grep -v _s50|grep -v paint|grep -v black|grep -v titanium` ; do + rgb=`convert $i -crop 1x1+8+11 -depth 8 txt: |grep "0,0: (" |cut -f 2- -d "(" |cut -f 1-3 -d ","` + color=`basename $i .png | sed 's/_/ /g; s/unifieddyes //; s/s50/50% saturation/'` + printf "%-32s %-12s %s\n" "$color" "$rgb" "$i" +done |sort + + +echo -e "\nLow-saturation colors:" +echo -e "----------------------\n" + +for i in `ls *dark*_s50.png|grep -v paint|grep -v black` ; do + rgb=`convert $i -crop 1x1+8+11 -depth 8 txt: |grep "0,0: (" |cut -f 2- -d "(" |cut -f 1-3 -d ","` + color=`basename $i .png | sed 's/_/ /g; s/unifieddyes //; s/s50/50% saturation/'` + printf "%-32s %-12s %s\n" "$color" "$rgb" "$i" +done |sort + +for i in `ls *medium*_s50.png|grep -v paint|grep -v black` ; do + rgb=`convert $i -crop 1x1+8+11 -depth 8 txt: |grep "0,0: (" |cut -f 2- -d "(" |cut -f 1-3 -d ","` + color=`basename $i .png | sed 's/_/ /g; s/unifieddyes //; s/s50/50% saturation/'` + printf "%-32s %-12s %s\n" "$color" "$rgb" "$i" +done |sort + +for i in `ls *_s50.png|grep -v dark|grep -v medium|grep -v paint|grep -v black` ; do + rgb=`convert $i -crop 1x1+8+11 -depth 8 txt: |grep "0,0: (" |cut -f 2- -d "(" |cut -f 1-3 -d ","` + color=`basename $i .png | sed 's/_/ /g; s/unifieddyes //; s/s50/50% saturation/'` + printf "%-32s %-12s %s\n" "$color" "$rgb" "$i" +done |sort + +echo -e "\nGreyscale:" +echo -e "----------\n" + +printf "%-32s %-12s %s\n" "black" " 0, 0, 0" "unifieddyes_black.png" +printf "%-32s %-12s %s\n" "dark grey" " 64, 64, 64" "unifieddyes_darkgrey_paint.png" +printf "%-32s %-12s %s\n" "medium grey" "128,128,128" "unifieddyes_grey_paint.png" +printf "%-32s %-12s %s\n" "light grey" "192,192,192" "unifieddyes_lightgrey_paint.png" +printf "%-32s %-12s %s\n" "white" "255,255,255" "unifieddyes_white_paint.png" + +popd >/dev/null diff --git a/mods/unifieddyes/locale/de.txt b/mods/unifieddyes/locale/de.txt new file mode 100755 index 00000000..01d6da4e --- /dev/null +++ b/mods/unifieddyes/locale/de.txt @@ -0,0 +1,74 @@ +# Translation by Xanthin + +Lime Dye = Gelbgruener Farbstoff (Gelbgruen) +Aqua Dye = Aqua Farbstoff +Sky-blue Dye = Himmelblauer Farbstoff +Red-violet Dye = Rotvioletter Farbstoff +Light Grey Dye = Hellgrauer Farbstoff + +Dark Red Dye (low saturation) = Dunkelroter Farbstoff (geringe Saettigung) +Dark Orange Dye (low saturation) = Dunkeloranger Farbstoff (geringe Saettigung) +Dark Yellow Dye (low saturation) = Dunkelgelber Farbstoff (geringe Saettigung) +Dark Lime Dye (low saturation) = Gelbgruenerlime Farbstoff (geringe Saettigung) +Dark Green Dye (low saturation) = Dunkelgruener Farbstoff (geringe Saettigung) +Dark Aqua Dye (low saturation) = Dunkelaqua Farbstoff (geringe Saettigung) +Dark Cyan Dye (low saturation) = Dunkeltuerkiser Farbstoff (geringe Saettigung) +Dark Sky-blue Dye (low saturation) = Dunkelhimmelblauer Farbstoff (geringe Saettigung) +Dark Blue Dye (low saturation) = Dunkelblauer Farbstoff (geringe Saettigung) +Dark Violet Dye (low saturation) = Dunkelvioletter Farbstoff (geringe Saettigung) +Dark Magenta Dye (low saturation) = Dunkelmagenta Farbstoff (geringe Saettigung) +Dark Red-violet Dye (low saturation) = Dunkelrotvioletter Farbstoff (geringe Saettigung) + +Dark Red Dye = Dunkelroter Farbstoff +Dark Orange Dye = Dunkeloranger Farbstoff +Dark Yellow Dye = Dunkelgelber Farbstoff +Dark Lime Dye = Dunkelgelbgruener Farbstoff +Dark Green Dye = Dunkelgruener Farbstoff +Dark Aqua Dye = Dunkelaqua Farbstoff +Dark Cyan Dye = Dunkeltuerkiser Farbstoff +Dark Sky-blue Dye = Dunkelhimmelblauer Farbstoff +Dark Blue Dye = Dunkelblauer Farbstoff +Dark Violet Dye = Dunkelvioletter Farbstoff +Dark Magenta Dye = Dunkelmagenta Farbstoff +Dark Red-violet Dye = Dunkelrotvioletter Farbstoff + +Medium Red Dye (low saturation) = Mittelroter Farbstoff (geringe Saettigung) +Medium Orange Dye (low saturation) = Mitteloranger Farbstoff (geringe Saettigung) +Medium Yellow Dye (low saturation) = Mittelgelber Farbstoff (geringe Saettigung) +Medium Lime Dye (low saturation) = Mittelgelbgruener Farbstoff (geringe Saettigung) +Medium Green Dye (low saturation) = Mittelgruener Farbstoff (geringe Saettigung) +Medium Aqua Dye (low saturation) = Mittelaqua Farbstoff (geringe Saettigung) +Medium Cyan Dye (low saturation) = Mitteltuerkiser Farbstoff (geringe Saettigung) +Medium Sky-blue Dye (low saturation) = Mittelhimmelblauer Farbstoff (geringe Saettigung) +Medium Blue Dye (low saturation) = Mittelblauer Farbstoff (geringe Saettigung) +Medium Violet Dye (low saturation) = Mittelvioletter Farbstoff (geringe Saettigung) +Medium Magenta Dye (low saturation) = Mittelmagenta Farbstoff (geringe Saettigung) +Medium Red-violet Dye (low saturation) = Mittelrotvioletter Farbstoff (geringe Saettigung) + +Medium Red Dye = Mittelroter Farbstoff +Medium Orange Dye = Mitteloranger Farbstoff +Medium Yellow Dye = Mittelgelber Farbstoff +Medium Lime Dye = Mittelgelbgruener Farbstoff +Medium Green Dye = Mittelgruener Farbstoff +Medium Aqua Dye = Mittelaqua Farbstoff +Medium Cyan Dye = Mitteltuerkiser Farbstoff +Medium Sky-blue = Mittelhimmelblauer Farbstoff +Medium Blue Dye = Mittelblauer Farbstoff +Medium Violet Dye = Mittelvioletter Farbstoff +Medium Magenta Dye = Mittelmagenta Farbstoff +Medium Red-violet Dye = Mittelrotvioletter Farbstoff + +Red Dye (low saturation) = Roter Farbstoff (geringe Saettigung) +Orange Dye (low saturation) = Oranger Farbstoff (geringe Saettigung) +Yellow Dye (low saturation) = Gelber Farbstoff (geringe Saettigung) +Lime Dye (low saturation) = Gelbgruener Farbstoff (geringe Saettigung) +Green Dye (low saturation) = Gruener Farbstoff (geringe Saettigung) +Aqua Dye (low saturation) = Aqua Farbstoff (geringe Saettigung) +Cyan Dye (low saturation) = Tuerkiser Farbstoff (geringe Saettigung) +Sky-blue Dye (low saturation) = Himmelblauer Farbstoff (geringe Saettigung) +Blue Dye (low saturation) = Blauer Farbstoff (geringe Saettigung) +Violet Dye (low saturation) = Violetter Farbstoff (geringe Saettigung) +Magenta Dye (low saturation) = Magenta Farbstoff (geringe Saettigung) lila +Red-violet Dye (low saturation) = Rotvioletter Farbstoff (geringe Saettigung) + +[UnifiedDyes] Loaded! = [UnifiedDyes] geladen! diff --git a/mods/unifieddyes/locale/template.txt b/mods/unifieddyes/locale/template.txt new file mode 100755 index 00000000..126bef81 --- /dev/null +++ b/mods/unifieddyes/locale/template.txt @@ -0,0 +1,87 @@ +# Template + +Lime Dye = +Aqua Dye = +Sky-blue Dye = +Red-violet Dye = +Light Grey Dye = + +Dark Red Dye (low saturation) = +Dark Orange Dye (low saturation) = +Dark Yellow Dye (low saturation) = +Dark Lime Dye (low saturation) = +Dark Green Dye (low saturation) = +Dark Aqua Dye (low saturation) = +Dark Cyan Dye (low saturation) = +Dark Sky-blue Dye (low saturation) = +Dark Blue Dye (low saturation) = +Dark Violet Dye (low saturation) = +Dark Magenta Dye (low saturation) = +Dark Red-violet Dye (low saturation) = + +Dark Red Dye = +Dark Orange Dye = +Dark Yellow Dye = +Dark Lime Dye = +Dark Green Dye = +Dark Aqua Dye = +Dark Cyan Dye = +Dark Sky-blue Dye = +Dark Blue Dye = +Dark Violet Dye = +Dark Magenta Dye = +Dark Red-violet Dye = + +Medium Red Dye (low saturation) = +Medium Orange Dye (low saturation) = +Medium Yellow Dye (low saturation) = +Medium Lime Dye (low saturation) = +Medium Green Dye (low saturation) = +Medium Aqua Dye (low saturation) = +Medium Cyan Dye (low saturation) = +Medium Sky-blue Dye (low saturation) = +Medium Blue Dye (low saturation) = +Medium Violet Dye (low saturation) = +Medium Magenta Dye (low saturation) = +Medium Red-violet Dye (low saturation) = + +Medium Red Dye = +Medium Orange Dye = +Medium Yellow Dye = +Medium Lime Dye = +Medium Green Dye = +Medium Aqua Dye = +Medium Cyan Dye = +Medium Sky-blue = +Medium Blue Dye = +Medium Violet Dye = +Medium Magenta Dye = +Medium Red-violet Dye = + +Red Dye (low saturation) = +Orange Dye (low saturation) = +Yellow Dye (low saturation) = +Lime Dye (low saturation) = +Green Dye (low saturation) = +Aqua Dye (low saturation) = +Cyan Dye (low saturation) = +Sky-blue Dye (low saturation) = +Blue Dye (low saturation) = +Violet Dye (low saturation) = +Magenta Dye (low saturation) = +Red-violet Dye (low saturation) = + +Red Dye = +Orange Dye = +Yellow Dye = +Lime Dye = +Green Dye = +Aqua Dye = +Cyan Dye = +Sky-blue Dye = +Blue Dye = +Violet Dye = +Magenta Dye = +Red-violet Dye = + +[UnifiedDyes] Loaded! = diff --git a/mods/unifieddyes/textures/unifieddyes_aqua.png b/mods/unifieddyes/textures/unifieddyes_aqua.png new file mode 100755 index 00000000..da73e215 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_aqua.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_aqua_s50.png b/mods/unifieddyes/textures/unifieddyes_aqua_s50.png new file mode 100755 index 00000000..d737e670 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_aqua_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_blue_s50.png b/mods/unifieddyes/textures/unifieddyes_blue_s50.png new file mode 100755 index 00000000..33ab9501 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_blue_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_cyan_s50.png b/mods/unifieddyes/textures/unifieddyes_cyan_s50.png new file mode 100755 index 00000000..7f304b7d Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_cyan_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_aqua.png b/mods/unifieddyes/textures/unifieddyes_dark_aqua.png new file mode 100755 index 00000000..6a146ea0 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_aqua.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_aqua_s50.png b/mods/unifieddyes/textures/unifieddyes_dark_aqua_s50.png new file mode 100755 index 00000000..5dbf4bda Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_aqua_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_blue.png b/mods/unifieddyes/textures/unifieddyes_dark_blue.png new file mode 100755 index 00000000..2a62a388 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_blue.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_blue_s50.png b/mods/unifieddyes/textures/unifieddyes_dark_blue_s50.png new file mode 100755 index 00000000..4eceeff0 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_blue_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_cyan.png b/mods/unifieddyes/textures/unifieddyes_dark_cyan.png new file mode 100755 index 00000000..4cfbee46 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_cyan.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_cyan_s50.png b/mods/unifieddyes/textures/unifieddyes_dark_cyan_s50.png new file mode 100755 index 00000000..857c4700 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_cyan_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_green.png b/mods/unifieddyes/textures/unifieddyes_dark_green.png new file mode 100755 index 00000000..19caa483 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_green.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_green_s50.png b/mods/unifieddyes/textures/unifieddyes_dark_green_s50.png new file mode 100755 index 00000000..686a49ef Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_green_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_lime.png b/mods/unifieddyes/textures/unifieddyes_dark_lime.png new file mode 100755 index 00000000..927ddf8e Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_lime.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_lime_s50.png b/mods/unifieddyes/textures/unifieddyes_dark_lime_s50.png new file mode 100755 index 00000000..f274909e Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_lime_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_magenta.png b/mods/unifieddyes/textures/unifieddyes_dark_magenta.png new file mode 100755 index 00000000..4f622b86 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_magenta.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_magenta_s50.png b/mods/unifieddyes/textures/unifieddyes_dark_magenta_s50.png new file mode 100755 index 00000000..1c461dc5 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_magenta_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_orange.png b/mods/unifieddyes/textures/unifieddyes_dark_orange.png new file mode 100755 index 00000000..10bfdd27 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_orange.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_orange_s50.png b/mods/unifieddyes/textures/unifieddyes_dark_orange_s50.png new file mode 100755 index 00000000..2a794de8 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_orange_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_red.png b/mods/unifieddyes/textures/unifieddyes_dark_red.png new file mode 100755 index 00000000..504c3597 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_red.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_red_s50.png b/mods/unifieddyes/textures/unifieddyes_dark_red_s50.png new file mode 100755 index 00000000..4e7f01bc Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_red_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_redviolet.png b/mods/unifieddyes/textures/unifieddyes_dark_redviolet.png new file mode 100755 index 00000000..79f1b153 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_redviolet.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_redviolet_s50.png b/mods/unifieddyes/textures/unifieddyes_dark_redviolet_s50.png new file mode 100755 index 00000000..889329e1 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_redviolet_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_skyblue.png b/mods/unifieddyes/textures/unifieddyes_dark_skyblue.png new file mode 100755 index 00000000..dc6e928a Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_skyblue.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_skyblue_s50.png b/mods/unifieddyes/textures/unifieddyes_dark_skyblue_s50.png new file mode 100755 index 00000000..ac32c492 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_skyblue_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_violet.png b/mods/unifieddyes/textures/unifieddyes_dark_violet.png new file mode 100755 index 00000000..b093fd03 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_violet.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_violet_s50.png b/mods/unifieddyes/textures/unifieddyes_dark_violet_s50.png new file mode 100755 index 00000000..c5074911 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_violet_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_yellow.png b/mods/unifieddyes/textures/unifieddyes_dark_yellow.png new file mode 100755 index 00000000..7bb62251 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_yellow.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_dark_yellow_s50.png b/mods/unifieddyes/textures/unifieddyes_dark_yellow_s50.png new file mode 100755 index 00000000..c391292c Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_dark_yellow_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_darkgrey.png b/mods/unifieddyes/textures/unifieddyes_darkgrey.png new file mode 100755 index 00000000..61b13d03 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_darkgrey.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_green_s50.png b/mods/unifieddyes/textures/unifieddyes_green_s50.png new file mode 100755 index 00000000..8f8fb738 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_green_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_light_aqua.png b/mods/unifieddyes/textures/unifieddyes_light_aqua.png new file mode 100755 index 00000000..80458e27 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_light_aqua.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_light_blue.png b/mods/unifieddyes/textures/unifieddyes_light_blue.png new file mode 100755 index 00000000..19f001d4 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_light_blue.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_light_cyan.png b/mods/unifieddyes/textures/unifieddyes_light_cyan.png new file mode 100755 index 00000000..1ff55805 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_light_cyan.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_light_green.png b/mods/unifieddyes/textures/unifieddyes_light_green.png new file mode 100755 index 00000000..e549c6f0 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_light_green.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_light_lime.png b/mods/unifieddyes/textures/unifieddyes_light_lime.png new file mode 100755 index 00000000..e5d797ed Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_light_lime.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_light_magenta.png b/mods/unifieddyes/textures/unifieddyes_light_magenta.png new file mode 100755 index 00000000..08bed5b4 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_light_magenta.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_light_orange.png b/mods/unifieddyes/textures/unifieddyes_light_orange.png new file mode 100755 index 00000000..b92b000b Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_light_orange.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_light_red.png b/mods/unifieddyes/textures/unifieddyes_light_red.png new file mode 100755 index 00000000..ecc8bd8e Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_light_red.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_light_redviolet.png b/mods/unifieddyes/textures/unifieddyes_light_redviolet.png new file mode 100755 index 00000000..2e01d6fa Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_light_redviolet.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_light_skyblue.png b/mods/unifieddyes/textures/unifieddyes_light_skyblue.png new file mode 100755 index 00000000..9fc1a442 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_light_skyblue.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_light_violet.png b/mods/unifieddyes/textures/unifieddyes_light_violet.png new file mode 100755 index 00000000..41d45fa0 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_light_violet.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_light_yellow.png b/mods/unifieddyes/textures/unifieddyes_light_yellow.png new file mode 100755 index 00000000..ed140d15 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_light_yellow.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_lightgrey.png b/mods/unifieddyes/textures/unifieddyes_lightgrey.png new file mode 100755 index 00000000..97ab01f7 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_lightgrey.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_lime.png b/mods/unifieddyes/textures/unifieddyes_lime.png new file mode 100755 index 00000000..5e6d5bf4 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_lime.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_lime_s50.png b/mods/unifieddyes/textures/unifieddyes_lime_s50.png new file mode 100755 index 00000000..d02762ec Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_lime_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_magenta_s50.png b/mods/unifieddyes/textures/unifieddyes_magenta_s50.png new file mode 100755 index 00000000..aaf9d518 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_magenta_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_aqua.png b/mods/unifieddyes/textures/unifieddyes_medium_aqua.png new file mode 100755 index 00000000..3659c188 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_aqua.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_aqua_s50.png b/mods/unifieddyes/textures/unifieddyes_medium_aqua_s50.png new file mode 100755 index 00000000..fcd8869e Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_aqua_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_blue.png b/mods/unifieddyes/textures/unifieddyes_medium_blue.png new file mode 100755 index 00000000..4da240d5 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_blue.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_blue_s50.png b/mods/unifieddyes/textures/unifieddyes_medium_blue_s50.png new file mode 100755 index 00000000..bd6e0f99 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_blue_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_cyan.png b/mods/unifieddyes/textures/unifieddyes_medium_cyan.png new file mode 100755 index 00000000..e8015f6c Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_cyan.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_cyan_s50.png b/mods/unifieddyes/textures/unifieddyes_medium_cyan_s50.png new file mode 100755 index 00000000..de14506e Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_cyan_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_green.png b/mods/unifieddyes/textures/unifieddyes_medium_green.png new file mode 100755 index 00000000..ecc5f066 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_green.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_green_s50.png b/mods/unifieddyes/textures/unifieddyes_medium_green_s50.png new file mode 100755 index 00000000..c9681b3c Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_green_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_lime.png b/mods/unifieddyes/textures/unifieddyes_medium_lime.png new file mode 100755 index 00000000..2060bac1 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_lime.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_lime_s50.png b/mods/unifieddyes/textures/unifieddyes_medium_lime_s50.png new file mode 100755 index 00000000..6eadc255 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_lime_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_magenta.png b/mods/unifieddyes/textures/unifieddyes_medium_magenta.png new file mode 100755 index 00000000..0f6144d2 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_magenta.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_magenta_s50.png b/mods/unifieddyes/textures/unifieddyes_medium_magenta_s50.png new file mode 100755 index 00000000..d5ca0dd9 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_magenta_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_orange.png b/mods/unifieddyes/textures/unifieddyes_medium_orange.png new file mode 100755 index 00000000..d131b9c5 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_orange.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_orange_s50.png b/mods/unifieddyes/textures/unifieddyes_medium_orange_s50.png new file mode 100755 index 00000000..7e08bcfb Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_orange_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_red.png b/mods/unifieddyes/textures/unifieddyes_medium_red.png new file mode 100755 index 00000000..28bc56dc Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_red.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_red_s50.png b/mods/unifieddyes/textures/unifieddyes_medium_red_s50.png new file mode 100755 index 00000000..0eef9167 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_red_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_redviolet.png b/mods/unifieddyes/textures/unifieddyes_medium_redviolet.png new file mode 100755 index 00000000..1143e27e Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_redviolet.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_redviolet_s50.png b/mods/unifieddyes/textures/unifieddyes_medium_redviolet_s50.png new file mode 100755 index 00000000..a3149352 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_redviolet_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_skyblue.png b/mods/unifieddyes/textures/unifieddyes_medium_skyblue.png new file mode 100755 index 00000000..f1e935f3 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_skyblue.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_skyblue_s50.png b/mods/unifieddyes/textures/unifieddyes_medium_skyblue_s50.png new file mode 100755 index 00000000..bd2423ed Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_skyblue_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_violet.png b/mods/unifieddyes/textures/unifieddyes_medium_violet.png new file mode 100755 index 00000000..dd8b5fa3 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_violet.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_violet_s50.png b/mods/unifieddyes/textures/unifieddyes_medium_violet_s50.png new file mode 100755 index 00000000..4b6de6a3 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_violet_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_yellow.png b/mods/unifieddyes/textures/unifieddyes_medium_yellow.png new file mode 100755 index 00000000..578f5b95 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_yellow.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_medium_yellow_s50.png b/mods/unifieddyes/textures/unifieddyes_medium_yellow_s50.png new file mode 100755 index 00000000..ce141da1 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_medium_yellow_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_orange_s50.png b/mods/unifieddyes/textures/unifieddyes_orange_s50.png new file mode 100755 index 00000000..fe62b73b Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_orange_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_red_s50.png b/mods/unifieddyes/textures/unifieddyes_red_s50.png new file mode 100755 index 00000000..6aef4c68 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_red_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_redviolet.png b/mods/unifieddyes/textures/unifieddyes_redviolet.png new file mode 100755 index 00000000..2cb06921 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_redviolet.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_redviolet_s50.png b/mods/unifieddyes/textures/unifieddyes_redviolet_s50.png new file mode 100755 index 00000000..a438d9d7 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_redviolet_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_skyblue.png b/mods/unifieddyes/textures/unifieddyes_skyblue.png new file mode 100755 index 00000000..85aa3c5d Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_skyblue.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_skyblue_s50.png b/mods/unifieddyes/textures/unifieddyes_skyblue_s50.png new file mode 100755 index 00000000..1d6834b6 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_skyblue_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_violet_s50.png b/mods/unifieddyes/textures/unifieddyes_violet_s50.png new file mode 100755 index 00000000..620e42c5 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_violet_s50.png differ diff --git a/mods/unifieddyes/textures/unifieddyes_yellow_s50.png b/mods/unifieddyes/textures/unifieddyes_yellow_s50.png new file mode 100755 index 00000000..a3b5f0b5 Binary files /dev/null and b/mods/unifieddyes/textures/unifieddyes_yellow_s50.png differ diff --git a/mods/unifieddyes/unifieddyes_base.png b/mods/unifieddyes/unifieddyes_base.png new file mode 100755 index 00000000..a51e50d1 Binary files /dev/null and b/mods/unifieddyes/unifieddyes_base.png differ diff --git a/mods/whoison/init.lua b/mods/whoison/init.lua new file mode 100644 index 00000000..1be980e7 --- /dev/null +++ b/mods/whoison/init.lua @@ -0,0 +1,132 @@ +whoison = {} +whoison.lastrun = os.time() +whoison.lastseen = {} + +local filename = minetest.get_worldpath().."/online-players" +local seenfile = minetest.get_worldpath().."/last-seen" + +function whoison.createFile(loopit) + local file = io.open(filename, "w") + file:write(os.time().."\n") + file:write(minetest.get_server_status().."\n") + for _,player in ipairs(minetest.get_connected_players()) do + + local name = player:get_player_name() + whoison.updateStats(name) + local ppos = minetest.pos_to_string(player:getpos()) + local datastring = name.."|"..ppos.."\n" + file:write( datastring ) + end + file:close() + minetest.log("action","Updated online player file") + if ( loopit == true ) then + minetest.after(300,whoison.createFile,true) + end + whoison.lastrun = os.time() +end + +function whoison.saveLastSeen() + local f = io.open(seenfile,"w") + f:write(minetest.serialize(whoison.lastseen)) + f:close() +end + +function whoison.loadLastSeen() + local f = io.open(seenfile,"r") + if ( f ~= nil ) then + local ls = f:read("*all") + f:close() + if ( ls ~= nil and ls ~= "" ) then + whoison.lastseen = minetest.deserialize(ls) + end + end +end + +function whoison.getLastOnline(name) + whoison.updateFormat(name) + return whoison.lastseen[name]['lastonline'] +end + +function whoison.getTimeOnline(name) + whoison.updateFormat(name) + return whoison.lastseen[name]['timeonline'] +end + +function whoison.updateStats(name) + whoison.updateFormat(name) + whoison.lastseen[name]['timeonline'] = whoison.lastseen[name]['timeonline'] + ( os.time() - whoison.lastrun ) + whoison.lastseen[name]['lastonline'] = os.time() +end + +function whoison.updateFormat(name) + if ( type(whoison.lastseen[name]) ~= "table" ) then + -- update old data to new format + minetest.log("action",name.." lastseen is not a table... fixing...") + local lo = whoison.lastseen[name] + whoison.lastseen[name] = {timeonline=0,lastonline=lo} + end +end + +minetest.register_on_joinplayer(function (player) + whoison.createFile(false) + whoison.saveLastSeen() +end) + +minetest.register_on_leaveplayer(function (player) + whoison.createFile(false) + whoison.saveLastSeen() +end) + +minetest.register_chatcommand("seen",{ + param = "", + description = "Tells the last time a player was online", + func = function (name, param) + if ( param ~= nil ) then + local t = whoison.getLastOnline(param) + if ( t ~= nil ) then + local diff = (os.time() - t) + minetest.chat_send_player(name,param.." was last online "..breakdowntime(diff).." ago") + else + minetest.chat_send_player(name,"Sorry, I have no record of "..param) + end + else + minetest.chat_send_player(name,"Usage is /seen ") + end + end +} +) + +minetest.register_chatcommand("timeonline",{ + param = "", + description = "Shows the cumulative time a player has been online", + func = function (name, param) + if ( param ~= nil ) then + local t = whoison.getTimeOnline(param) + if ( t ~= nil ) then + minetest.chat_send_player(name,param.." has been online for "..breakdowntime(t)) + else + minetest.chat_send_player(name,"Sorry, I have no record of "..param) + end + else + minetest.chat_send_player(name,"Usage is /timeonline ") + end + end +} +) + + +function breakdowntime(t) + local eng = {"Seconds","Minutes","Hours","Days","Weeks","Months","Years"} + local inc = {60,60,24,7,4,12,1} + for k,v in ipairs(inc) do + if ( t > v ) then + t = math.floor( (t / v) ) + else + return tostring(t).." "..eng[k] + end + end +end + +minetest.after(10,whoison.createFile,true) + +whoison.loadLastSeen() diff --git a/mods/wiki/LICENSE.txt b/mods/wiki/LICENSE.txt new file mode 100755 index 00000000..ebac2db4 --- /dev/null +++ b/mods/wiki/LICENSE.txt @@ -0,0 +1,25 @@ + +Copyright (c) 2013, Diego Martínez +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/mods/wiki/README.txt b/mods/wiki/README.txt new file mode 100755 index 00000000..6c413bef --- /dev/null +++ b/mods/wiki/README.txt @@ -0,0 +1,35 @@ + +Wiki Mod +-------- + +Another random mod by me. + +This mod provides a "Wiki" block. You can create and edit pages with it. + +The pages are saved as /wiki/. All spaces in the page name +are converted to underscores, and all other characters not in [A-Za-z0-9-] are +converted to hex notation %XX. + +The text can contain hyperlinks in the form of [link text] to other pages. Such +links are added at the bottom of the form. + +You can craft a "Wiki block" by putting 9 bookshelves in the crafting grid. + +Only players with the "wiki" priv can create/edit pages. + + +License +------- + 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/wiki/depends.txt b/mods/wiki/depends.txt new file mode 100755 index 00000000..4ad96d51 --- /dev/null +++ b/mods/wiki/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/wiki/init.lua b/mods/wiki/init.lua new file mode 100755 index 00000000..01f15384 --- /dev/null +++ b/mods/wiki/init.lua @@ -0,0 +1,12 @@ + +local MODPATH = minetest.get_modpath("wiki") + +wikilib = { } + +dofile(MODPATH.."/strfile.lua") +dofile(MODPATH.."/oshelpers.lua") +dofile(MODPATH.."/wikilib.lua") +dofile(MODPATH.."/internal.lua") +dofile(MODPATH.."/plugins.lua") + +dofile(MODPATH.."/plugin_forum.lua") diff --git a/mods/wiki/internal.lua b/mods/wiki/internal.lua new file mode 100755 index 00000000..11fe8ad9 --- /dev/null +++ b/mods/wiki/internal.lua @@ -0,0 +1,144 @@ + +wikilib.internal_pages = { +---------------------------------------------------------------- +---------------------------------------------------------------- +[".Intro"] = [[ +Thank you for using the Wiki Mod. + +This is a mod that allows one to edit pages via a block. You +can use it to document interesting places in a server, to provide +a place to post griefing reports, or any kind of text you want. + +To create a new page, enter the name in the field at the top of the +form, then click "Go". If the page already exists, it's contents will +be displayed. Edit the page as you see fit, then click on "Save" to +write the changes to disk. + +Please note that page names starting with a dot ('.') are reserved +for internal topics such as this one. Users cannot edit/create such +pages from the mod interface. + +See also: + * [.Tags] + * [.License] +]], +---------------------------------------------------------------- +---------------------------------------------------------------- +[".Tags"] = [[ +The wiki supports some special tags. + +You can place hyperlinks to other pages in the Wiki, by surrounding +text in square brackets (for example, [.Intro]). Such links will +appear at the bottom of the form. + +See also: + * [.Intro] +]], +---------------------------------------------------------------- +---------------------------------------------------------------- +[".License"] = [[ + +Copyright (c) 2013, Diego Martínez +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + * Go to [.Intro]. +]], +---------------------------------------------------------------- +---------------------------------------------------------------- +[".NotFound_Internal"] = [[ +The specified internal page cannot be found. You may want to: + + * Back to [Main]. + * Go to [.Intro]. +]], +---------------------------------------------------------------- +---------------------------------------------------------------- +[".NotFound"] = [[ +This page does not exist yet. + + * Back to [Main]. +]], +---------------------------------------------------------------- +---------------------------------------------------------------- +[".BadPageName"] = [[ +The page name you entered is wrong. See [.Page Names] for more info. + + * Back to [Main]. +]], +---------------------------------------------------------------- +---------------------------------------------------------------- +[".Forbidden"] = [[ +You have not enough privileges to view this page. + + * Back to [Main]. +]], +---------------------------------------------------------------- +---------------------------------------------------------------- +[".Help Index"] = [[ + * [.Page Names] + * [.User Pages] + + * Back to [Main]. +]], +---------------------------------------------------------------- +---------------------------------------------------------------- +[".Page Names"] = [[ +Page names must be in any of the following formats: + + Display global page . + : + Display page from your user space. must be a number between + 0 and 9. See [.User Pages] for more info. + : + This is equivalent to ":0" (shows your private page). + :: + Display page "Page Name" from the specified user's space. Note that page + number 0 is never accessible this way, even if you specify yourself as + . + + * Back to [.Help Index]. + * Back to [Main]. +]], +---------------------------------------------------------------- +---------------------------------------------------------------- +[".User Pages"] = [[ +Users can have up to 10 pages in their "user space", numbered 0-9. These pages +are accessed through the special page names ":", and "::". Page 0 +is your private page. This page is not accessible to anyone but you. You can +use it to write down secret locations, etc. + + * Back to [.Help Index]. + * Back to [Main]. +]], +---------------------------------------------------------------- +---------------------------------------------------------------- +[".My Pages"] = [[ + * Profile: [:profile] + * Private page: [:0] + * Pages: [:1] [:2] [:3] [:4] [:5] [:6] [:7] [:8] [:9] +]], +---------------------------------------------------------------- +---------------------------------------------------------------- +} diff --git a/mods/wiki/oshelpers.lua b/mods/wiki/oshelpers.lua new file mode 100755 index 00000000..89591e22 --- /dev/null +++ b/mods/wiki/oshelpers.lua @@ -0,0 +1,29 @@ + +local WIN32, DIR_SEP + +if os.getenv("WINDIR") then + WIN32 = true + DIR_SEP = "\\" +else + WIN32 = false + DIR_SEP = "/" +end + +function os.mkdir(dir) + local f = io.open(dir..DIR_SEP..".dummy") + if f then + f:close() + else + if WIN32 then + dir = dir:gsub("/", "\\") + else + dir = dir:gsub("\\", "/") + end + os.execute("mkdir \""..dir.."\"") + local f = io.open(dir..DIR_SEP..".dummy", "w") + if f then + f:write("DO NOT DELETE!!!\n") + f:close() + end + end +end diff --git a/mods/wiki/plugin_forum.lua b/mods/wiki/plugin_forum.lua new file mode 100755 index 00000000..d8f8e9c1 --- /dev/null +++ b/mods/wiki/plugin_forum.lua @@ -0,0 +1,83 @@ + +--os.mkdir(WP.."/plugins") +--os.mkdir(WP.."/plugins/ml") + +local posts = { } + +local player_states = { } + +local BACKLOG = 5 + +local function get_player_state(name) + if not player_states[name] then + player_states[name] = { } + end + return player_states[name] +end + +wikilib.register_plugin({ + regex = "^/ml/.*", + description = "Mailing List", + load_page = function(entry, player) --> text, allow_save + local state = get_player_state(player) + local what = entry:match("^/ml/(.*)") + if not what then + what = "recent" + end + what = what:lower() + if what == "recent" then + local text = "Recent Posts:\n\n" + for i = #posts - BACKLOG, #posts do + local p = posts[i] + if p then + local nl = ((p.text:sub(-1) == "\n") and "" or "\n") + text = (text + .. "[/ml/"..i.."] " + .. p.who..":\n" + .. p.text..nl + .. "\n" + ) + end + end + text = text.."\n * [/ml/Post] a new message" + text = text.."\n * Back to [Main]" + return text, false + elseif what:match("[0-9]+") then + local n = tonumber(what) + local text + if posts[n] then + local nl = ((posts[n].text:sub(-1) == "\n") and "" or "\n") + text = ("Post #"..n.." " + .. posts[n].who..": [:"..posts[n].who..":profile]\n" + .. posts[n].text..nl + .. "\n" + ) + else + text = "No such post.\n\n" + end + text = text.."\n * [/ml/Post] a new message" + text = text.."\n * View [/ml/Recent] messages" + text = text.."\n * Back to [Main]" + return text, false + elseif what == "post" then + return "Subject:\n\n", true + end + return "Wrong request.", false + end, + save_page = function(entry, player, text) --> bool + local state = get_player_state(player) + local what = entry:match("^/ml/(.*)") + if not what then + what = "post" + end + what = what:lower() + if what == "post" then + posts[#posts + 1] = { + who = player, + text = text, + } + return "/ml/recent" + end + return true + end, +}) diff --git a/mods/wiki/plugins.lua b/mods/wiki/plugins.lua new file mode 100755 index 00000000..28b64656 --- /dev/null +++ b/mods/wiki/plugins.lua @@ -0,0 +1,33 @@ + +--[[ +plugindef = { + regex = "^/foo/bar/.*", + description = "My Awesome Plugin", + load_page = func(entry, player), + ^ Must return text, allow_save + save_page = func(entry, player), + ^ Must return bool +} +]] + +local plugin_defs = { } + +function wikilib.register_plugin(def) + plugin_defs[#plugin_defs + 1] = def +end + +local function do_handle(what, entry, player, text) + for _,pi in ipairs(plugin_defs) do + if entry:match(pi.regex) then + return pi[what](entry, player, text) + end + end +end + +function wikilib.plugin_handle_load(entry, player) + return do_handle("load_page", entry, player) +end + +function wikilib.plugin_handle_save(entry, player, text) + return do_handle("save_page", entry, player, text) +end diff --git a/mods/wiki/strfile.lua b/mods/wiki/strfile.lua new file mode 100755 index 00000000..b21e0e31 --- /dev/null +++ b/mods/wiki/strfile.lua @@ -0,0 +1,28 @@ + +strfile = { } + +function strfile.open(s) + return { + _buf = s, + _pos = 1, + _readline = function(self) + if self._pos == nil then + return nil + end + local nl = self._buf:find("\n", self._pos, true) + local line + if nl then + line = self._buf:sub(self._pos, nl - 1) + nl = nl + 1 + else + line = self._buf:sub(self._pos) + end + self._pos = nl + return line + end, + lines = function(self) + return self._readline, self, true + end, + close = function(self) end, + } +end diff --git a/mods/wiki/wikilib.lua b/mods/wiki/wikilib.lua new file mode 100755 index 00000000..00e1efbb --- /dev/null +++ b/mods/wiki/wikilib.lua @@ -0,0 +1,222 @@ + +local WP = minetest.get_worldpath().."/wiki" + +wikilib.path = WP + +local WIKI_FORMNAME = "wiki:wiki" + +os.mkdir(WP) +os.mkdir(WP.."/users") + +local function name_to_filename(name) + + name = name:gsub("[^A-Za-z0-9-]", function(c) + if c == " " then + return "_" + else + return ("%%%02X"):format(c:byte(1)) + end + end) + return name:lower() + +end +wikilib.name_to_filename = name_to_filename + +local function get_page_path(name, player) --> path, is_file, allow_save + + local allow_save = minetest.check_player_privs(player, {wiki=true}) + + if name:sub(1, 1) == "." then + local text = wikilib.internal_pages[name] or wikilib.internal_pages[".NotFound_Internal"] + return text, false, false + elseif name:sub(1, 1) == ":" then + if name:match("^:[0-9]?$") then + local n = tonumber(name:sub(2,2)) or 0 + path = "users/"..player.."/page"..n + os.mkdir(WP.."/users/"..player) + elseif name == ":profile" then + path = "users/"..player.."/profile" + os.mkdir(WP.."/users/"..player) + elseif name:match("^:.-:[0-9]$") then + local user, n = name:match("^:(.-):([0-9])$") + if user:find("..[/\\]") then + return wikilib.internal_pages[".BadPageName"], false, false + end + if (n == "0") and (not minetest.check_player_privs(player, {wiki_admin=true})) then + return wikilib.internal_pages[".Forbidden"], false, false + end + path = "users/"..user.."/page"..n + os.mkdir(WP.."/users/"..user) + allow_save = false + elseif name:match("^:.-:profile$") then + local user = name:match("^:(.-):.*$") + if user:find("..[/\\]") then + return wikilib.internal_pages[".BadPageName"], false, false + end + path = "users/"..user.."/profile" + os.mkdir(WP.."/users/"..user) + allow_save = false + else + return wikilib.internal_pages[".BadPageName"], false, false + end + else + path = name_to_filename(name) + end + + return WP.."/"..path, true, allow_save + +end + +local function find_links(lines) --> links + local links = { } + local links_n = 0 + for _,line in ipairs(lines) do + for link in line:gmatch("%[(.-)%]") do + links_n = links_n + 1 + links[links_n] = link + end + end + return links +end + +local function load_page(name, player) --> text, links, allow_save + local text, allow_save = wikilib.plugin_handle_load(name, player) + if text then + return text, find_links(text:split("\n")), allow_save + end + local path, is_file, allow_save = get_page_path(name, player) + local f + if is_file then + f = io.open(path) + if not f then + f = strfile.open(wikilib.internal_pages[".NotFound"]) + end + else + f = strfile.open(path) + end + local lines = { } + local lines_n = 0 + for line in f:lines() do + lines_n = lines_n + 1 + lines[lines_n] = line + end + f:close() + local text = table.concat(lines, "\n") + local links = find_links(lines) + return text, links, allow_save +end + +local function save_page(name, player, text) + + local ok = wikilib.plugin_handle_save(name, player, text) + if ok then return ok end + + local path, is_file, allow_save = get_page_path(name, player) + + if (not is_file) or (not allow_save) then return end + + local f = io.open(path, "w") + if not f then return end + + f:write(text) + + f:close() + +end + +local esc = minetest.formspec_escape + +function wikilib.show_wiki_page(player, name) + + if name == "" then name = "Main" end + + local text, links, allow_save = load_page(name, player) + + local buttons = "" + local bx = 0 + local by = 7.5 + + for i, link in ipairs(links) do + if ((i - 1) % 5) == 0 then + bx = 0 + by = by + 0.5 + end + link = esc(link) + buttons = buttons..(("button[%f,%f;2.4,0.3;page_%s;%s]"):format(bx, by, link, link)) + bx = bx + 2.4 + end + + local toolbar + + if allow_save then + toolbar = "button[0,9;2.4,1;save;Save]" + else + toolbar = "label[0,9;You are not authorized to edit this page.]" + end + + minetest.show_formspec(player, WIKI_FORMNAME, ("size[12,10]" + .. "field[0,1;11,1;page;Page;"..esc(name).."]" + .. "button[11,1;1,0.5;go;Go]" + .. "textarea[0,2;12,6;text;"..esc(name)..";"..esc(text).."]" + .. buttons + .. toolbar + )) + +end + +minetest.register_node("wiki:wiki", { + description = "Wiki", + tiles = { "default_wood.png", "default_wood.png", "default_bookshelf.png" }, + 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("infotext", "Wiki") + end, + on_rightclick = function(pos, node, clicker, itemstack) + if clicker then + wikilib.show_wiki_page(clicker:get_player_name(), "Main") + end + end, +}) + +minetest.register_privilege("wiki", { + description = "Allow editing wiki pages in the global space", + give_to_singleplayer = false, +}) + +minetest.register_privilege("wiki_admin", { + description = "Allow editing wiki pages in any space", + give_to_singleplayer = false, +}) + +local BS = "default:bookshelf" +local BSL = { BS, BS, BS } +minetest.register_craft({ + output = "wiki:wiki", + recipe = { BSL, BSL, BSL }, +}) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if (not formname) or (formname ~= WIKI_FORMNAME) then return end + local plname = player:get_player_name() + if fields.save then + local r = save_page(fields.page, plname, fields.text) + if type(r) == "string" then + wikilib.show_wiki_page(plname, r) + else + wikilib.show_wiki_page(plname, fields.page) + end + elseif fields.go then + wikilib.show_wiki_page(plname, fields.page) + else + for k in pairs(fields) do + if type(k) == "string" then + local name = k:match("^page_(.*)") + if name then + wikilib.show_wiki_page(plname, name) + end + end + end + end +end) diff --git a/mods/xban/LICENSE.txt b/mods/xban/LICENSE.txt new file mode 100755 index 00000000..ebac2db4 --- /dev/null +++ b/mods/xban/LICENSE.txt @@ -0,0 +1,25 @@ + +Copyright (c) 2013, Diego Martínez +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/mods/xban/README.txt b/mods/xban/README.txt new file mode 100755 index 00000000..fa1864a9 --- /dev/null +++ b/mods/xban/README.txt @@ -0,0 +1,115 @@ + +Extended Ban Mod for Minetest +----------------------------- + +This mod registers all the IPs used by individual players, and can ban the +player when using any of them, even if he is not online at the moment. + +License +------- + +See file 'LICENSE.txt'. + +Chat Commands +------------- + +/xban [] + Ban given player and all his IPs. If reason not given, it defaults to + "because random". If player is online at the moment, he/she is shown it. If + user is not online, it saves it in a list, and next time he connects from any + IP, or connects from a banned IP with different name, it gets banned again, + and new IP/username recorded. + +/xtempban